diff --git a/cspell.json b/cspell.json index fd8c6ab3..27b27b5f 100644 --- a/cspell.json +++ b/cspell.json @@ -23,11 +23,10 @@ "**/*.lock", "**/go*.mod", "**/go*.sum", - "**/node_modules/**", "cspell.json", "CODEOWNERS", - "bin/**", "docs/assets/**", + "**/testdata/**", "pkg/rules/string_test.go", "context7.json" ], @@ -38,6 +37,8 @@ "Fset", "Messagef", "Skłodowska", + "UNECE", + "UNSD", "UUIDRFC", "afbf", "atoi", @@ -61,12 +62,14 @@ "govytest", "issn", "ldflags", + "Leonean", "luhn", "mypkg", "nobl", "pkgs", "println", "rtmp", + "renminbi", "sloctl", "strconv", "structs", diff --git a/go.mod b/go.mod index 0529a981..636c70c9 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,10 @@ module github.com/nobl9/govy go 1.25.5 -require golang.org/x/tools v0.48.0 +require ( + golang.org/x/text v0.38.0 + golang.org/x/tools v0.48.0 +) require ( golang.org/x/mod v0.38.0 // indirect diff --git a/go.sum b/go.sum index 2a37fb76..9773fdc4 100644 --- a/go.sum +++ b/go.sum @@ -4,5 +4,7 @@ golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= diff --git a/go.work.sum b/go.work.sum index 8967f2a2..356fdb87 100644 --- a/go.work.sum +++ b/go.work.sum @@ -20,6 +20,7 @@ golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= @@ -83,7 +84,6 @@ golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= -golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= @@ -91,3 +91,4 @@ golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= diff --git a/internal/messagetemplates/templatekey_string.go b/internal/messagetemplates/templatekey_string.go index 61beb277..1f7eb616 100644 --- a/internal/messagetemplates/templatekey_string.go +++ b/internal/messagetemplates/templatekey_string.go @@ -87,16 +87,25 @@ func _() { _ = x[StringCrontabTemplate-77] _ = x[StringDateTimeTemplate-78] _ = x[StringTimeZoneTemplate-79] - _ = x[StringKubernetesQualifiedNameTemplate-80] - _ = x[StringMongoDBObjectIDTemplate-81] - _ = x[URLTemplate-82] - _ = x[SliceUniqueTemplate-83] - _ = x[UniquePropertiesTemplate-84] + _ = x[StringBCP47LanguageTagTemplate-80] + _ = x[StringBCP47StrictLanguageTagTemplate-81] + _ = x[StringISO3166Alpha2Template-82] + _ = x[StringISO3166Alpha3Template-83] + _ = x[StringISO3166NumericTemplate-84] + _ = x[StringISO31662Template-85] + _ = x[StringISO4217Template-86] + _ = x[StringLatitudeTemplate-87] + _ = x[StringLongitudeTemplate-88] + _ = x[StringKubernetesQualifiedNameTemplate-89] + _ = x[StringMongoDBObjectIDTemplate-90] + _ = x[URLTemplate-91] + _ = x[SliceUniqueTemplate-92] + _ = x[UniquePropertiesTemplate-93] } -const _templateKey_name = "LengthTemplateMinLengthTemplateMaxLengthTemplateEQTemplateNEQTemplateGTTemplateGTETemplateLTTemplateLTETemplateEqualPropertiesTemplateGTPropertiesTemplateGTEPropertiesTemplateLTPropertiesTemplateLTEPropertiesTemplateGTComparablePropertiesTemplateGTEComparablePropertiesTemplateLTComparablePropertiesTemplateLTEComparablePropertiesTemplateDurationPrecisionTemplateForbiddenTemplateOneOfTemplateNotOneOfTemplateOneOfPropertiesTemplateMutuallyExclusiveTemplateMutuallyDependentTemplateRequiredTemplateStringNonEmptyTemplateStringMatchRegexpTemplateStringDenyRegexpTemplateStringBase64TemplateStringBase64URLTemplateStringBase64RawURLTemplateStringHexadecimalTemplateStringMD5TemplateStringSHA256TemplateStringSHA384TemplateStringSHA512TemplateStringEmailTemplateStringE164TemplateStringMACTemplateStringIPTemplateStringIPv4TemplateStringIPv6TemplateStringCIDRTemplateStringCIDRv4TemplateStringCIDRv6TemplateStringCreditCardTemplateStringLuhnChecksumTemplateStringBICTemplateStringBICISO93622014TemplateStringUUIDRFC4122TemplateStringUUIDv3TemplateStringUUIDv4TemplateStringUUIDv5TemplateStringULIDTemplateStringEINTemplateStringSSNTemplateStringJSONTemplateStringSemverTemplateStringCVETemplateStringISBNTemplateStringISBN10TemplateStringISBN13TemplateStringISSNTemplateStringJWTTemplateStringContainsTemplateStringExcludesTemplateStringStartsWithTemplateStringEndsWithTemplateStringTitleTemplateStringGitRefTemplateStringFileSystemPathTemplateStringFilePathTemplateStringDirPathTemplateStringMatchFileSystemPathTemplateStringRegexpTemplateStringCrontabTemplateStringDateTimeTemplateStringTimeZoneTemplateStringKubernetesQualifiedNameTemplateStringMongoDBObjectIDTemplateURLTemplateSliceUniqueTemplateUniquePropertiesTemplate" +const _templateKey_name = "LengthTemplateMinLengthTemplateMaxLengthTemplateEQTemplateNEQTemplateGTTemplateGTETemplateLTTemplateLTETemplateEqualPropertiesTemplateGTPropertiesTemplateGTEPropertiesTemplateLTPropertiesTemplateLTEPropertiesTemplateGTComparablePropertiesTemplateGTEComparablePropertiesTemplateLTComparablePropertiesTemplateLTEComparablePropertiesTemplateDurationPrecisionTemplateForbiddenTemplateOneOfTemplateNotOneOfTemplateOneOfPropertiesTemplateMutuallyExclusiveTemplateMutuallyDependentTemplateRequiredTemplateStringNonEmptyTemplateStringMatchRegexpTemplateStringDenyRegexpTemplateStringBase64TemplateStringBase64URLTemplateStringBase64RawURLTemplateStringHexadecimalTemplateStringMD5TemplateStringSHA256TemplateStringSHA384TemplateStringSHA512TemplateStringEmailTemplateStringE164TemplateStringMACTemplateStringIPTemplateStringIPv4TemplateStringIPv6TemplateStringCIDRTemplateStringCIDRv4TemplateStringCIDRv6TemplateStringCreditCardTemplateStringLuhnChecksumTemplateStringBICTemplateStringBICISO93622014TemplateStringUUIDRFC4122TemplateStringUUIDv3TemplateStringUUIDv4TemplateStringUUIDv5TemplateStringULIDTemplateStringEINTemplateStringSSNTemplateStringJSONTemplateStringSemverTemplateStringCVETemplateStringISBNTemplateStringISBN10TemplateStringISBN13TemplateStringISSNTemplateStringJWTTemplateStringContainsTemplateStringExcludesTemplateStringStartsWithTemplateStringEndsWithTemplateStringTitleTemplateStringGitRefTemplateStringFileSystemPathTemplateStringFilePathTemplateStringDirPathTemplateStringMatchFileSystemPathTemplateStringRegexpTemplateStringCrontabTemplateStringDateTimeTemplateStringTimeZoneTemplateStringBCP47LanguageTagTemplateStringBCP47StrictLanguageTagTemplateStringISO3166Alpha2TemplateStringISO3166Alpha3TemplateStringISO3166NumericTemplateStringISO31662TemplateStringISO4217TemplateStringLatitudeTemplateStringLongitudeTemplateStringKubernetesQualifiedNameTemplateStringMongoDBObjectIDTemplateURLTemplateSliceUniqueTemplateUniquePropertiesTemplate" -var _templateKey_index = [...]uint16{0, 14, 31, 48, 58, 69, 79, 90, 100, 111, 134, 154, 175, 195, 216, 246, 277, 307, 338, 363, 380, 393, 409, 432, 457, 482, 498, 520, 545, 569, 589, 612, 638, 663, 680, 700, 720, 740, 759, 777, 794, 810, 828, 846, 864, 884, 904, 928, 954, 971, 999, 1024, 1044, 1064, 1084, 1102, 1119, 1136, 1154, 1174, 1191, 1209, 1229, 1249, 1267, 1284, 1306, 1328, 1352, 1374, 1393, 1413, 1441, 1463, 1484, 1517, 1537, 1558, 1580, 1602, 1639, 1668, 1679, 1698, 1722} +var _templateKey_index = [...]uint16{0, 14, 31, 48, 58, 69, 79, 90, 100, 111, 134, 154, 175, 195, 216, 246, 277, 307, 338, 363, 380, 393, 409, 432, 457, 482, 498, 520, 545, 569, 589, 612, 638, 663, 680, 700, 720, 740, 759, 777, 794, 810, 828, 846, 864, 884, 904, 928, 954, 971, 999, 1024, 1044, 1064, 1084, 1102, 1119, 1136, 1154, 1174, 1191, 1209, 1229, 1249, 1267, 1284, 1306, 1328, 1352, 1374, 1393, 1413, 1441, 1463, 1484, 1517, 1537, 1558, 1580, 1602, 1632, 1668, 1695, 1722, 1750, 1772, 1793, 1815, 1838, 1875, 1904, 1915, 1934, 1958} func (i templateKey) String() string { idx := int(i) - 1 diff --git a/internal/messagetemplates/templates.go b/internal/messagetemplates/templates.go index c16741a1..c22eff9e 100644 --- a/internal/messagetemplates/templates.go +++ b/internal/messagetemplates/templates.go @@ -92,6 +92,15 @@ const ( StringCrontabTemplate StringDateTimeTemplate StringTimeZoneTemplate + StringBCP47LanguageTagTemplate + StringBCP47StrictLanguageTagTemplate + StringISO3166Alpha2Template + StringISO3166Alpha3Template + StringISO3166NumericTemplate + StringISO31662Template + StringISO4217Template + StringLatitudeTemplate + StringLongitudeTemplate StringKubernetesQualifiedNameTemplate StringMongoDBObjectIDTemplate URLTemplate @@ -211,14 +220,23 @@ var rawMessageTemplates = map[templateKey]string{ string must be a valid git reference {{- end }} `, - StringFileSystemPathTemplate: "string must be an existing file system path{{- if .Error }}: {{ .Error }}{{- end }}", - StringFilePathTemplate: "string must be a file system path to an existing file{{- if .Error }}: {{ .Error }}{{- end }}", - StringDirPathTemplate: "string must be a file system path to an existing directory{{- if .Error }}: {{ .Error }}{{- end }}", - StringMatchFileSystemPathTemplate: "string must match file path pattern: '{{ .ComparisonValue }}'{{- if .Error }}: {{ .Error }}{{- end }}", - StringRegexpTemplate: "string must be a valid regular expression{{- if .Error }}: {{ .Error }}{{- end }}", - StringCrontabTemplate: "string must be a valid cron schedule expression", - StringDateTimeTemplate: "string must be a valid date and time in '{{ .ComparisonValue }}' format{{- if .Error }}: {{ .Error }}{{- end }}", - StringTimeZoneTemplate: "string must be a valid IANA Time Zone Database code{{- if .Error }}: {{ .Error }}{{- end }}", + StringFileSystemPathTemplate: "string must be an existing file system path{{- if .Error }}: {{ .Error }}{{- end }}", + StringFilePathTemplate: "string must be a file system path to an existing file{{- if .Error }}: {{ .Error }}{{- end }}", + StringDirPathTemplate: "string must be a file system path to an existing directory{{- if .Error }}: {{ .Error }}{{- end }}", + StringMatchFileSystemPathTemplate: "string must match file path pattern: '{{ .ComparisonValue }}'{{- if .Error }}: {{ .Error }}{{- end }}", + StringRegexpTemplate: "string must be a valid regular expression{{- if .Error }}: {{ .Error }}{{- end }}", + StringCrontabTemplate: "string must be a valid cron schedule expression", + StringDateTimeTemplate: "string must be a valid date and time in '{{ .ComparisonValue }}' format{{- if .Error }}: {{ .Error }}{{- end }}", + StringTimeZoneTemplate: "string must be a valid IANA Time Zone Database code{{- if .Error }}: {{ .Error }}{{- end }}", + StringBCP47LanguageTagTemplate: "string must be a valid BCP 47 language tag", + StringBCP47StrictLanguageTagTemplate: "string must be a valid canonical BCP 47 language tag", + StringISO3166Alpha2Template: "string must be a valid ISO 3166-1 alpha-2 country code", + StringISO3166Alpha3Template: "string must be a valid ISO 3166-1 alpha-3 country code", + StringISO3166NumericTemplate: "string must be a valid ISO 3166-1 numeric-3 country code", + StringISO31662Template: "string must be a valid ISO 3166-2 country subdivision code", + StringISO4217Template: "string must be a valid ISO 4217 three-letter alphabetic currency code", + StringLatitudeTemplate: "string must be a valid latitude coordinate", + StringLongitudeTemplate: "string must be a valid longitude coordinate", StringKubernetesQualifiedNameTemplate: ` {{- if eq .Custom.EmptyPrefixPart true -}} prefix part must not be empty diff --git a/pkg/rules/error_codes.go b/pkg/rules/error_codes.go index 073c9de3..829c5066 100644 --- a/pkg/rules/error_codes.go +++ b/pkg/rules/error_codes.go @@ -75,6 +75,15 @@ const ( ErrorCodeStringCrontab govy.ErrorCode = "string_crontab" ErrorCodeStringDateTime govy.ErrorCode = "string_date_time" ErrorCodeStringTimeZone govy.ErrorCode = "string_time_zone" + ErrorCodeStringBCP47LanguageTag govy.ErrorCode = "string_bcp47_language_tag" + ErrorCodeStringBCP47StrictLanguageTag govy.ErrorCode = "string_bcp47_strict_language_tag" + ErrorCodeStringISO3166Alpha2 govy.ErrorCode = "string_iso3166_alpha2" + ErrorCodeStringISO3166Alpha3 govy.ErrorCode = "string_iso3166_alpha3" + ErrorCodeStringISO3166Numeric govy.ErrorCode = "string_iso3166_numeric" + ErrorCodeStringISO31662 govy.ErrorCode = "string_iso3166_2" + ErrorCodeStringISO4217 govy.ErrorCode = "string_iso4217" + ErrorCodeStringLatitude govy.ErrorCode = "string_latitude" + ErrorCodeStringLongitude govy.ErrorCode = "string_longitude" ErrorCodeStringAlpha govy.ErrorCode = "string_alpha" ErrorCodeStringAlphanumeric govy.ErrorCode = "string_alphanumeric" ErrorCodeStringAlphaUnicode govy.ErrorCode = "string_alpha_unicode" diff --git a/pkg/rules/string_locale_geo.go b/pkg/rules/string_locale_geo.go new file mode 100644 index 00000000..450526d7 --- /dev/null +++ b/pkg/rules/string_locale_geo.go @@ -0,0 +1,762 @@ +package rules + +// cspell:ignore guoyu lojban mingo xiang + +import ( + "strconv" + "strings" + "sync" + + textcurrency "golang.org/x/text/currency" + "golang.org/x/text/language" + + "github.com/nobl9/govy/internal/messagetemplates" + "github.com/nobl9/govy/pkg/govy" +) + +// These BCP 47 compatibility tables are derived from every applicable record +// in the IANA Language Subtag Registry dated 2026-06-14. The source SHA-256 is +// be1fad86a99e3a932d07b80c9b3c271ec2381a5909ce22420144e5077ab0a43a. +const ( + bcp47LanguagePreferredValueBasesData = ` +bh in iw ji jw mo aam adp ajp ajt asd aue ayx bgm bic bjd blg ccq cjr cka cmk coy cqu dek dit drh +drr drw gav gfx ggn gli gti guv hrr ibi ilw jeg kgc kgh kgm koj krm ktr kvs kwq kxe kxl kzj kzt +lak lii llo lmm meg mst mwj myd myt nad ncp nns nnx nom nte nts nxu oun pat pcr pmc pmk pmu ppa +ppr prp pry puz sca skk smd snb szd tdu thc thw thx tie tkk tlw tmk tmp tne tnf tpw tsf uok xba +xia xkh xrq xss ybd yma ymt yol yos yuu zir zkb +` + bcp47TagPreferredValuesData = ` +art-lojban en-GB-oed i-ami i-bnn i-hak i-klingon i-lux i-navajo i-pwn i-tao i-tay i-tsu no-bok +no-nyn sgn-BE-FR sgn-BE-NL sgn-CH-DE zh-guoyu zh-hakka zh-min-nan zh-xiang sgn-BR sgn-CO sgn-DE +sgn-DK sgn-ES sgn-FR sgn-GB sgn-GR sgn-IE sgn-IT sgn-JP sgn-MX sgn-NI sgn-NL sgn-NO sgn-PT +sgn-SE sgn-US sgn-ZA zh-cmn zh-cmn-Hans zh-cmn-Hant zh-gan zh-wuu zh-yue +` + bcp47ParserOverrideBasesData = ` +bih cls dyl hnm isv lfb luh oak olb osd rrm scz sjc tvg vsn ynb zhk +` + bcp47GrandfatheredWithoutPreferredValueData = ` +cel-gaulish i-default i-enochian i-mingo zh-min +` + bcp47NeutralParserBase = "qaa" +) + +var ( + bcp47LanguagePreferredValueBases = lazyLookupMap(func() map[string]struct{} { + return buildStringLookup(bcp47LanguagePreferredValueBasesData) + }) + bcp47TagPreferredValues = lazyLookupMap(func() map[string]struct{} { + return buildStringLookup(bcp47TagPreferredValuesData) + }) + bcp47ParserOverrideBases = lazyLookupMap(func() map[string]struct{} { + return buildStringLookup(bcp47ParserOverrideBasesData) + }) + bcp47GrandfatheredWithoutPreferredValue = lazyLookupMap(func() map[string]struct{} { + return buildStringLookup(bcp47GrandfatheredWithoutPreferredValueData) + }) +) + +// iso3166Alpha2Codes returns the accepted ISO 3166-1 alpha-2 code elements. +// x/text also recognizes aliases, reserved codes, and deleted codes. +var iso3166Alpha2Codes = lazyLookupMap(func() map[string]struct{} { + return map[string]struct{}{ + "AD": {}, + "AE": {}, + "AF": {}, + "AG": {}, + "AI": {}, + "AL": {}, + "AM": {}, + "AO": {}, + "AQ": {}, + "AR": {}, + "AS": {}, + "AT": {}, + "AU": {}, + "AW": {}, + "AX": {}, + "AZ": {}, + "BA": {}, + "BB": {}, + "BD": {}, + "BE": {}, + "BF": {}, + "BG": {}, + "BH": {}, + "BI": {}, + "BJ": {}, + "BL": {}, + "BM": {}, + "BN": {}, + "BO": {}, + "BQ": {}, + "BR": {}, + "BS": {}, + "BT": {}, + "BV": {}, + "BW": {}, + "BY": {}, + "BZ": {}, + "CA": {}, + "CC": {}, + "CD": {}, + "CF": {}, + "CG": {}, + "CH": {}, + "CI": {}, + "CK": {}, + "CL": {}, + "CM": {}, + "CN": {}, + "CO": {}, + "CR": {}, + "CU": {}, + "CV": {}, + "CW": {}, + "CX": {}, + "CY": {}, + "CZ": {}, + "DE": {}, + "DJ": {}, + "DK": {}, + "DM": {}, + "DO": {}, + "DZ": {}, + "EC": {}, + "EE": {}, + "EG": {}, + "EH": {}, + "ER": {}, + "ES": {}, + "ET": {}, + "FI": {}, + "FJ": {}, + "FK": {}, + "FM": {}, + "FO": {}, + "FR": {}, + "GA": {}, + "GB": {}, + "GD": {}, + "GE": {}, + "GF": {}, + "GG": {}, + "GH": {}, + "GI": {}, + "GL": {}, + "GM": {}, + "GN": {}, + "GP": {}, + "GQ": {}, + "GR": {}, + "GS": {}, + "GT": {}, + "GU": {}, + "GW": {}, + "GY": {}, + "HK": {}, + "HM": {}, + "HN": {}, + "HR": {}, + "HT": {}, + "HU": {}, + "ID": {}, + "IE": {}, + "IL": {}, + "IM": {}, + "IN": {}, + "IO": {}, + "IQ": {}, + "IR": {}, + "IS": {}, + "IT": {}, + "JE": {}, + "JM": {}, + "JO": {}, + "JP": {}, + "KE": {}, + "KG": {}, + "KH": {}, + "KI": {}, + "KM": {}, + "KN": {}, + "KP": {}, + "KR": {}, + "KW": {}, + "KY": {}, + "KZ": {}, + "LA": {}, + "LB": {}, + "LC": {}, + "LI": {}, + "LK": {}, + "LR": {}, + "LS": {}, + "LT": {}, + "LU": {}, + "LV": {}, + "LY": {}, + "MA": {}, + "MC": {}, + "MD": {}, + "ME": {}, + "MF": {}, + "MG": {}, + "MH": {}, + "MK": {}, + "ML": {}, + "MM": {}, + "MN": {}, + "MO": {}, + "MP": {}, + "MQ": {}, + "MR": {}, + "MS": {}, + "MT": {}, + "MU": {}, + "MV": {}, + "MW": {}, + "MX": {}, + "MY": {}, + "MZ": {}, + "NA": {}, + "NC": {}, + "NE": {}, + "NF": {}, + "NG": {}, + "NI": {}, + "NL": {}, + "NO": {}, + "NP": {}, + "NR": {}, + "NU": {}, + "NZ": {}, + "OM": {}, + "PA": {}, + "PE": {}, + "PF": {}, + "PG": {}, + "PH": {}, + "PK": {}, + "PL": {}, + "PM": {}, + "PN": {}, + "PR": {}, + "PS": {}, + "PT": {}, + "PW": {}, + "PY": {}, + "QA": {}, + "RE": {}, + "RO": {}, + "RS": {}, + "RU": {}, + "RW": {}, + "SA": {}, + "SB": {}, + "SC": {}, + "SD": {}, + "SE": {}, + "SG": {}, + "SH": {}, + "SI": {}, + "SJ": {}, + "SK": {}, + "SL": {}, + "SM": {}, + "SN": {}, + "SO": {}, + "SR": {}, + "SS": {}, + "ST": {}, + "SV": {}, + "SX": {}, + "SY": {}, + "SZ": {}, + "TC": {}, + "TD": {}, + "TF": {}, + "TG": {}, + "TH": {}, + "TJ": {}, + "TK": {}, + "TL": {}, + "TM": {}, + "TN": {}, + "TO": {}, + "TR": {}, + "TT": {}, + "TV": {}, + "TW": {}, + "TZ": {}, + "UA": {}, + "UG": {}, + "UM": {}, + "US": {}, + "UY": {}, + "UZ": {}, + "VA": {}, + "VC": {}, + "VE": {}, + "VG": {}, + "VI": {}, + "VN": {}, + "VU": {}, + "WF": {}, + "WS": {}, + "YE": {}, + "YT": {}, + "ZA": {}, + "ZM": {}, + "ZW": {}, + } +}) + +// iso4217Codes returns current tender and non-tender ISO 4217 code elements. +// ParseISO also recognizes withdrawn codes. +var iso4217Codes = lazyLookupMap(buildISO4217Codes) + +// StringBCP47LanguageTag ensures the property's value is a valid BCP 47 language tag. +func StringBCP47LanguageTag() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringBCP47LanguageTagTemplate) + + return govy.NewRule(func(s string) error { + if !isBCP47LanguageTag(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringBCP47LanguageTag). + WithMessageTemplate(tpl). + WithExamples("en", "en-US", "zh-Hant-TW"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringBCP47StrictLanguageTag ensures the property's value is a valid canonical BCP 47 language tag. +func StringBCP47StrictLanguageTag() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringBCP47StrictLanguageTagTemplate) + + return govy.NewRule(func(s string) error { + if !isCanonicalBCP47LanguageTag(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringBCP47StrictLanguageTag). + WithMessageTemplate(tpl). + WithExamples("en", "en-US", "zh-Hant-TW"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringISO3166Alpha2 ensures the property's value is a valid ISO 3166-1 alpha-2 country code. +func StringISO3166Alpha2() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringISO3166Alpha2Template) + + return govy.NewRule(func(s string) error { + if !isISO3166Alpha2(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringISO3166Alpha2). + WithMessageTemplate(tpl). + WithExamples("US", "PL", "JP"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringISO3166Alpha3 ensures the property's value is a valid ISO 3166-1 alpha-3 country code. +func StringISO3166Alpha3() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringISO3166Alpha3Template) + + return govy.NewRule(func(s string) error { + if !isISO3166Alpha3(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringISO3166Alpha3). + WithMessageTemplate(tpl). + WithExamples("USA", "POL", "JPN"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringISO3166Numeric ensures the property's value is a valid ISO 3166-1 numeric-3 country code. +func StringISO3166Numeric() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringISO3166NumericTemplate) + + return govy.NewRule(func(s string) error { + if !isISO3166Numeric(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringISO3166Numeric). + WithMessageTemplate(tpl). + WithExamples("840", "616", "392"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringISO31662 ensures the property's value is a valid ISO 3166-2 country subdivision code. +func StringISO31662() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringISO31662Template) + + return govy.NewRule(func(s string) error { + if !isISO31662(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringISO31662). + WithMessageTemplate(tpl). + WithExamples("US-CA", "GB-ENG", "PL-14"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringISO4217 ensures the property's value is a valid ISO 4217 three-letter alphabetic currency code. +func StringISO4217() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringISO4217Template) + + return govy.NewRule(func(s string) error { + if !isISO4217(s) { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringISO4217). + WithMessageTemplate(tpl). + WithExamples("USD", "EUR", "JPY"). + WithDescription(mustExecuteTemplate(tpl, govy.TemplateVars{})) +} + +// StringLatitude ensures the property's value is a decimal latitude coordinate between -90 and 90 degrees. +func StringLatitude() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringLatitudeTemplate) + + return govy.NewRule(func(s string) error { + if !isCoordinate(s, "90") { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringLatitude). + WithMessageTemplate(tpl). + WithExamples("0", "-45.25", "90"). + WithDescription("string must be a decimal latitude coordinate between -90 and 90 degrees") +} + +// StringLongitude ensures the property's value is a decimal longitude coordinate between -180 and 180 degrees. +func StringLongitude() govy.Rule[string] { + tpl := messagetemplates.Get(messagetemplates.StringLongitudeTemplate) + + return govy.NewRule(func(s string) error { + if !isCoordinate(s, "180") { + return govy.NewRuleErrorTemplate(govy.TemplateVars{ + PropertyValue: s, + }) + } + return nil + }). + WithErrorCode(ErrorCodeStringLongitude). + WithMessageTemplate(tpl). + WithExamples("0", "-122.4194", "180"). + WithDescription("string must be a decimal longitude coordinate between -180 and 180 degrees") +} + +func isBCP47LanguageTag(s string) bool { + if strings.Contains(s, "_") || hasDuplicateBCP47Subtags(s) { + return false + } + base, _, _ := strings.Cut(s, "-") + if _, ok := bcp47ParserOverrideBases()[strings.ToLower(base)]; ok { + _, err := language.Default.Parse(withBCP47NeutralParserBase(s)) + return err == nil + } + _, err := language.Parse(s) + return err == nil +} + +func isCanonicalBCP47LanguageTag(s string) bool { + if strings.Contains(s, "_") || hasDuplicateBCP47Subtags(s) { + return false + } + if isCanonicalBCP47GrandfatheredTag(s) { + return true + } + if hasBCP47PreferredTagPrefix(s) { + return false + } + base, _, _ := strings.Cut(s, "-") + if _, ok := bcp47LanguagePreferredValueBases()[strings.ToLower(base)]; ok { + return false + } + if _, ok := bcp47ParserOverrideBases()[base]; ok { + neutralTag := withBCP47NeutralParserBase(s) + tag, err := language.Deprecated.Parse(neutralTag) + return err == nil && tag.String() == neutralTag + } + tag, err := language.Deprecated.Parse(s) + return err == nil && tag.String() == s +} + +func hasBCP47PreferredTagPrefix(s string) bool { + preferredTags := bcp47TagPreferredValues() + for { + if _, ok := preferredTags[s]; ok { + return true + } + separator := strings.LastIndexByte(s, '-') + if separator < 0 { + return false + } + s = s[:separator] + } +} + +func withBCP47NeutralParserBase(s string) string { + _, suffix, found := strings.Cut(s, "-") + if !found { + return bcp47NeutralParserBase + } + return bcp47NeutralParserBase + "-" + suffix +} + +// hasDuplicateBCP47Subtags reports duplicates that RFC 5646 prohibits even +// though x/text accepts and normalizes them. +func hasDuplicateBCP47Subtags(s string) bool { + seenSingletons := make(map[string]struct{}) + seenVariants := make(map[string]struct{}) + inExtension := false + for index, subtag := range strings.Split(s, "-") { + subtag = strings.ToLower(subtag) + if index == 0 { + if subtag == "x" { + break + } + continue + } + + if len(subtag) == 1 { + if subtag == "x" { + break + } + if _, ok := seenSingletons[subtag]; ok { + return true + } + seenSingletons[subtag] = struct{}{} + inExtension = true + continue + } + if inExtension || !isBCP47VariantSubtag(subtag) { + continue + } + if _, ok := seenVariants[subtag]; ok { + return true + } + seenVariants[subtag] = struct{}{} + } + return false +} + +func isBCP47VariantSubtag(subtag string) bool { + return len(subtag) >= 5 && len(subtag) <= 8 || + len(subtag) == 4 && subtag[0] >= '0' && subtag[0] <= '9' +} + +// isCanonicalBCP47GrandfatheredTag reports registered tags without a +// Preferred-Value that x/text rewrites to private-use representations. +func isCanonicalBCP47GrandfatheredTag(s string) bool { + _, ok := bcp47GrandfatheredWithoutPreferredValue()[s] + return ok +} + +func isISO3166Alpha2(s string) bool { + if len(s) != 2 || !isASCIIUpper(s) { + return false + } + region, err := language.ParseRegion(s) + return err == nil && isISO3166CountryRegion(region) && region.String() == s +} + +func isISO3166Alpha3(s string) bool { + if len(s) != 3 || !isASCIIUpper(s) { + return false + } + region, err := language.ParseRegion(s) + return err == nil && isISO3166CountryRegion(region) && region.ISO3() == s +} + +func isISO3166Numeric(s string) bool { + if len(s) != 3 || !isASCIIDigits(s) { + return false + } + region, err := language.ParseRegion(s) + if err != nil || !isISO3166CountryRegion(region) { + return false + } + code, _ := strconv.Atoi(s) + return region.M49() == code +} + +func isISO31662(s string) bool { + if len(s) < 4 || len(s) > 6 || + s[0] < 'A' || s[0] > 'Z' || + s[1] < 'A' || s[1] > 'Z' || + s[2] != '-' { + return false + } + for index := 3; index < len(s); index++ { + char := s[index] + if (char < 'A' || char > 'Z') && (char < '0' || char > '9') { + return false + } + } + _, ok := iso31662Codes()[s] + return ok +} + +func isISO4217(s string) bool { + if len(s) != 3 || !isASCIIUpper(s) { + return false + } + _, ok := iso4217Codes()[s] + return ok +} + +func buildISO4217Codes() map[string]struct{} { + codes := map[string]struct{}{} + for iter := textcurrency.Query(textcurrency.NonTender); iter.Next(); { + codes[iter.Unit().String()] = struct{}{} + } + listOneAdditions := [...]string{"MRU", "SLE", "SVC", "UYW", "VED", "VES", "XAD", "XCG", "ZWG"} + for _, code := range listOneAdditions { + codes[code] = struct{}{} + } + listOneRemovals := [...]string{"ANG", "BGN", "CNH", "CUC", "HRK", "MRO", "SLL", "VEF"} + for _, code := range listOneRemovals { + delete(codes, code) + } + return codes +} + +func lazyLookupMap(build func() map[string]struct{}) func() map[string]struct{} { + var ( + lookup map[string]struct{} + once sync.Once + ) + return func() map[string]struct{} { + once.Do(func() { + lookup = build() + }) + return lookup + } +} + +func buildStringLookup(data string) map[string]struct{} { + values := strings.Fields(data) + lookup := make(map[string]struct{}, len(values)) + for _, value := range values { + lookup[value] = struct{}{} + } + return lookup +} + +func isISO3166CountryRegion(region language.Region) bool { + if !region.IsCountry() { + return false + } + _, ok := iso3166Alpha2Codes()[region.String()] + return ok +} + +func isCoordinate(s, maxMagnitude string) bool { + if s == "" { + return false + } + if s[0] == '-' || s[0] == '+' { + s = s[1:] + if s == "" { + return false + } + } + + index := 0 + significantDigits := 0 + comparisonToMaximum := 0 + for index < len(s) && s[index] >= '0' && s[index] <= '9' { + digit := s[index] + index++ + if significantDigits == 0 && digit == '0' { + continue + } + if significantDigits == len(maxMagnitude) { + return false + } + if comparisonToMaximum == 0 { + switch { + case digit < maxMagnitude[significantDigits]: + comparisonToMaximum = -1 + case digit > maxMagnitude[significantDigits]: + comparisonToMaximum = 1 + } + } + significantDigits++ + } + if index == 0 && s[index] != '.' { + return false + } + if significantDigits == len(maxMagnitude) && comparisonToMaximum > 0 { + return false + } + if index == len(s) { + return true + } + if s[index] != '.' || index == len(s)-1 { + return false + } + + atMaximum := significantDigits == len(maxMagnitude) && comparisonToMaximum == 0 + index++ + for index < len(s) { + if s[index] < '0' || s[index] > '9' { + return false + } + if atMaximum && s[index] != '0' { + return false + } + index++ + } + return true +} + +func isASCIIUpper(s string) bool { + for _, c := range s { + if c < 'A' || c > 'Z' { + return false + } + } + return true +} + +func isASCIIDigits(s string) bool { + for _, c := range s { + if c < '0' || c > '9' { + return false + } + } + return true +} diff --git a/pkg/rules/string_locale_geo_iso31662.go b/pkg/rules/string_locale_geo_iso31662.go new file mode 100644 index 00000000..75a44be0 --- /dev/null +++ b/pkg/rules/string_locale_geo_iso31662.go @@ -0,0 +1,362 @@ +package rules + +import "strings" + +const iso31662CodeCount = 5213 + +var iso31662Codes = lazyLookupMap(buildISO31662Codes) + +func buildISO31662Codes() map[string]struct{} { + lookup := make(map[string]struct{}, iso31662CodeCount) + for code := range strings.FieldsSeq(iso31662CodesData + iso31662Codes2024_2AdditionsData) { + lookup[code] = struct{}{} + } + return lookup +} + +// iso31662Codes2024_2AdditionsData supplements the copied lookup data with +// every identifier it lacks from UNECE's ISO 3166-2-derived 2024-2 list at +// commit 03032eb5f0eed1db15dc5255f7dcc0942d7b6238. The source SHA-256 is +// b6fcf7c4a554598db32a372fd935a6e12291490ca76a8a0dd712ad849ff7cac6. +const iso31662Codes2024_2AdditionsData = ` +BI-MY BW-FR BW-GA BW-JW BW-LO BW-SP BW-ST CD-BU CD-HL CD-HU CD-KL CD-LO CD-MN CD-MO CD-NU CD-SU +CD-TU CN-HK CN-MO CN-TW DM-11 DO-32 DO-33 DO-34 DO-35 DO-36 DO-37 DO-38 DO-39 DO-40 DO-41 DO-42 +DZ-50 DZ-52 DZ-54 DZ-58 ET-SI ET-SW FJ-01 FJ-02 FJ-03 FJ-04 FJ-05 FJ-06 FJ-07 FJ-08 FJ-09 FJ-10 +FJ-11 FJ-12 FJ-13 FJ-14 FR-69M FR-6AE FR-75C FR-H GB-BCP GB-NNH GB-WNH GH-NE GH-OT GH-SV GH-WN GQ-DJ +IT-SU KH-25 KP-14 KP-15 LC-12 LR-GP LR-RG LT-01 LT-02 LT-03 LT-04 LT-05 LT-06 LT-07 LT-08 LT-09 +LT-10 LT-11 LT-12 LT-13 LT-14 LT-15 LT-16 LT-17 LT-18 LT-19 LT-20 LT-21 LT-22 LT-23 LT-24 LT-25 +LT-26 LT-27 LT-28 LT-29 LT-30 LT-31 LT-32 LT-33 LT-34 LT-35 LT-36 LT-37 LT-38 LT-39 LT-40 LT-41 +LT-42 LT-43 LT-44 LT-45 LT-46 LT-47 LT-48 LT-49 LT-50 LT-51 LT-52 LT-53 LT-54 LT-55 LT-56 LT-57 +LT-58 LT-59 LT-60 MA-BRR MA-DRI MA-FQH MA-GUF MA-MAR MA-MDF MA-MID MA-OUZ MA-REH MA-SIB MA-SIF MA-SIL MA-TAF +MA-TIN MA-YUS MH-WTH MK-203 MK-204 MK-304 MK-313 MK-407 MK-504 MK-603 MK-706 MK-801 MK-802 MK-805 MK-808 MK-815 +MK-817 ML-10 ML-9 MR-14 MR-15 PA-10 PA-NT PG-HLA PG-JWK PH-DVO QA-SH SC-26 SC-27 SL-NW ST-02 ST-03 +ST-04 ST-05 ST-06 TD-EE TD-EO TV-NIU UG-119 UG-125 UG-126 UG-231 UG-232 UG-233 UG-234 UG-235 UG-236 UG-237 +UG-244 UG-329 UG-331 UG-332 UG-333 UG-334 UG-335 UG-336 UG-337 UG-427 UG-428 UG-429 UG-430 UG-431 UG-432 UG-433 +UG-434 UG-435 UZ-KH YE-SU +` + +// The code list is derived from go-playground/validator's MIT-licensed country_codes.go. +// It is stored as text so the lookup map is allocated only when [StringISO31662] is used. +const iso31662CodesData = ` +AD-02 AD-03 AD-04 AD-05 AD-06 AD-07 AD-08 AE-AJ AE-AZ AE-DU AE-FU AE-RK AE-SH AE-UQ AF-BAL AF-BAM +AF-BDG AF-BDS AF-BGL AF-DAY AF-FRA AF-FYB AF-GHA AF-GHO AF-HEL AF-HER AF-JOW AF-KAB AF-KAN AF-KAP +AF-KDZ AF-KHO AF-KNR AF-LAG AF-LOG AF-NAN AF-NIM AF-NUR AF-PAN AF-PAR AF-PIA AF-PKA AF-SAM AF-SAR +AF-TAK AF-URU AF-WAR AF-ZAB AG-03 AG-04 AG-05 AG-06 AG-07 AG-08 AG-10 AG-11 AL-01 AL-02 AL-03 AL-04 +AL-05 AL-06 AL-07 AL-08 AL-09 AL-10 AL-11 AL-12 AL-BR AL-BU AL-DI AL-DL AL-DR AL-DV AL-EL AL-ER +AL-FR AL-GJ AL-GR AL-HA AL-KA AL-KB AL-KC AL-KO AL-KR AL-KU AL-LB AL-LE AL-LU AL-MK AL-MM AL-MR +AL-MT AL-PG AL-PQ AL-PR AL-PU AL-SH AL-SK AL-SR AL-TE AL-TP AL-TR AL-VL AM-AG AM-AR AM-AV AM-ER +AM-GR AM-KT AM-LO AM-SH AM-SU AM-TV AM-VD AO-BGO AO-BGU AO-BIE AO-CAB AO-CCU AO-CNN AO-CNO AO-CUS +AO-HUA AO-HUI AO-LNO AO-LSU AO-LUA AO-MAL AO-MOX AO-NAM AO-UIG AO-ZAI AR-A AR-B AR-C AR-D AR-E AR-F +AR-G AR-H AR-J AR-K AR-L AR-M AR-N AR-P AR-Q AR-R AR-S AR-T AR-U AR-V AR-W AR-X AR-Y AR-Z AT-1 AT-2 +AT-3 AT-4 AT-5 AT-6 AT-7 AT-8 AT-9 AU-ACT AU-NSW AU-NT AU-QLD AU-SA AU-TAS AU-VIC AU-WA AZ-ABS +AZ-AGA AZ-AGC AZ-AGM AZ-AGS AZ-AGU AZ-AST AZ-BA AZ-BAB AZ-BAL AZ-BAR AZ-BEY AZ-BIL AZ-CAB AZ-CAL +AZ-CUL AZ-DAS AZ-FUZ AZ-GA AZ-GAD AZ-GOR AZ-GOY AZ-GYG AZ-HAC AZ-IMI AZ-ISM AZ-KAL AZ-KAN AZ-KUR +AZ-LA AZ-LAC AZ-LAN AZ-LER AZ-MAS AZ-MI AZ-NA AZ-NEF AZ-NV AZ-NX AZ-OGU AZ-ORD AZ-QAB AZ-QAX AZ-QAZ +AZ-QBA AZ-QBI AZ-QOB AZ-QUS AZ-SA AZ-SAB AZ-SAD AZ-SAH AZ-SAK AZ-SAL AZ-SAR AZ-SAT AZ-SBN AZ-SIY +AZ-SKR AZ-SM AZ-SMI AZ-SMX AZ-SR AZ-SUS AZ-TAR AZ-TOV AZ-UCA AZ-XA AZ-XAC AZ-XCI AZ-XIZ AZ-XVD +AZ-YAR AZ-YE AZ-YEV AZ-ZAN AZ-ZAQ AZ-ZAR BA-01 BA-02 BA-03 BA-04 BA-05 BA-06 BA-07 BA-08 BA-09 BA-10 +BA-BIH BA-BRC BA-SRP BB-01 BB-02 BB-03 BB-04 BB-05 BB-06 BB-07 BB-08 BB-09 BB-10 BB-11 BD-01 BD-02 +BD-03 BD-04 BD-05 BD-06 BD-07 BD-08 BD-09 BD-10 BD-11 BD-12 BD-13 BD-14 BD-15 BD-16 BD-17 BD-18 +BD-19 BD-20 BD-21 BD-22 BD-23 BD-24 BD-25 BD-26 BD-27 BD-28 BD-29 BD-30 BD-31 BD-32 BD-33 BD-34 +BD-35 BD-36 BD-37 BD-38 BD-39 BD-40 BD-41 BD-42 BD-43 BD-44 BD-45 BD-46 BD-47 BD-48 BD-49 BD-50 +BD-51 BD-52 BD-53 BD-54 BD-55 BD-56 BD-57 BD-58 BD-59 BD-60 BD-61 BD-62 BD-63 BD-64 BD-A BD-B BD-C +BD-D BD-E BD-F BD-G BD-H BE-BRU BE-VAN BE-VBR BE-VLG BE-VLI BE-VOV BE-VWV BE-WAL BE-WBR BE-WHT +BE-WLG BE-WLX BE-WNA BF-01 BF-02 BF-03 BF-04 BF-05 BF-06 BF-07 BF-08 BF-09 BF-10 BF-11 BF-12 BF-13 +BF-BAL BF-BAM BF-BAN BF-BAZ BF-BGR BF-BLG BF-BLK BF-COM BF-GAN BF-GNA BF-GOU BF-HOU BF-IOB BF-KAD +BF-KEN BF-KMD BF-KMP BF-KOP BF-KOS BF-KOT BF-KOW BF-LER BF-LOR BF-MOU BF-NAM BF-NAO BF-NAY BF-NOU +BF-OUB BF-OUD BF-PAS BF-PON BF-SEN BF-SIS BF-SMT BF-SNG BF-SOM BF-SOR BF-TAP BF-TUI BF-YAG BF-YAT +BF-ZIR BF-ZON BF-ZOU BG-01 BG-02 BG-03 BG-04 BG-05 BG-06 BG-07 BG-08 BG-09 BG-10 BG-11 BG-12 BG-13 +BG-14 BG-15 BG-16 BG-17 BG-18 BG-19 BG-20 BG-21 BG-22 BG-23 BG-24 BG-25 BG-26 BG-27 BG-28 BH-13 +BH-14 BH-15 BH-16 BH-17 BI-BB BI-BL BI-BM BI-BR BI-CA BI-CI BI-GI BI-KI BI-KR BI-KY BI-MA BI-MU +BI-MW BI-NG BI-RM BI-RT BI-RY BJ-AK BJ-AL BJ-AQ BJ-BO BJ-CO BJ-DO BJ-KO BJ-LI BJ-MO BJ-OU BJ-PL +BJ-ZO BN-BE BN-BM BN-TE BN-TU BO-B BO-C BO-H BO-L BO-N BO-O BO-P BO-S BO-T BQ-BO BQ-SA BQ-SE BR-AC +BR-AL BR-AM BR-AP BR-BA BR-CE BR-DF BR-ES BR-FN BR-GO BR-MA BR-MG BR-MS BR-MT BR-PA BR-PB BR-PE +BR-PI BR-PR BR-RJ BR-RN BR-RO BR-RR BR-RS BR-SC BR-SE BR-SP BR-TO BS-AK BS-BI BS-BP BS-BY BS-CE +BS-CI BS-CK BS-CO BS-CS BS-EG BS-EX BS-FP BS-GC BS-HI BS-HT BS-IN BS-LI BS-MC BS-MG BS-MI BS-NE +BS-NO BS-NP BS-NS BS-RC BS-RI BS-SA BS-SE BS-SO BS-SS BS-SW BS-WG BT-11 BT-12 BT-13 BT-14 BT-15 +BT-21 BT-22 BT-23 BT-24 BT-31 BT-32 BT-33 BT-34 BT-41 BT-42 BT-43 BT-44 BT-45 BT-GA BT-TY BW-CE +BW-CH BW-GH BW-KG BW-KL BW-KW BW-NE BW-NW BW-SE BW-SO BY-BR BY-HM BY-HO BY-HR BY-MA BY-MI BY-VI +BZ-BZ BZ-CY BZ-CZL BZ-OW BZ-SC BZ-TOL CA-AB CA-BC CA-MB CA-NB CA-NL CA-NS CA-NT CA-NU CA-ON CA-PE +CA-QC CA-SK CA-YT CD-BC CD-BN CD-EQ CD-HK CD-IT CD-KA CD-KC CD-KE CD-KG CD-KN CD-KS CD-KW CD-LU +CD-MA CD-NK CD-OR CD-SA CD-SK CD-TA CD-TO CF-AC CF-BB CF-BGF CF-BK CF-HK CF-HM CF-HS CF-KB CF-KG +CF-LB CF-MB CF-MP CF-NM CF-OP CF-SE CF-UK CF-VK CG-11 CG-12 CG-13 CG-14 CG-15 CG-16 CG-2 CG-5 CG-7 +CG-8 CG-9 CG-BZV CH-AG CH-AI CH-AR CH-BE CH-BL CH-BS CH-FR CH-GE CH-GL CH-GR CH-JU CH-LU CH-NE CH-NW +CH-OW CH-SG CH-SH CH-SO CH-SZ CH-TG CH-TI CH-UR CH-VD CH-VS CH-ZG CH-ZH CI-AB CI-BS CI-CM CI-DN +CI-GD CI-LC CI-LG CI-MG CI-SM CI-SV CI-VB CI-WR CI-YM CI-ZZ CL-AI CL-AN CL-AP CL-AR CL-AT CL-BI +CL-CO CL-LI CL-LL CL-LR CL-MA CL-ML CL-NB CL-RM CL-TA CL-VS CM-AD CM-CE CM-EN CM-ES CM-LT CM-NO +CM-NW CM-OU CM-SU CM-SW CN-AH CN-BJ CN-CQ CN-FJ CN-GD CN-GS CN-GX CN-GZ CN-HA CN-HB CN-HE CN-HI +CN-HL CN-HN CN-JL CN-JS CN-JX CN-LN CN-NM CN-NX CN-QH CN-SC CN-SD CN-SH CN-SN CN-SX CN-TJ CN-XJ +CN-XZ CN-YN CN-ZJ CO-AMA CO-ANT CO-ARA CO-ATL CO-BOL CO-BOY CO-CAL CO-CAQ CO-CAS CO-CAU CO-CES +CO-CHO CO-COR CO-CUN CO-DC CO-GUA CO-GUV CO-HUI CO-LAG CO-MAG CO-MET CO-NAR CO-NSA CO-PUT CO-QUI +CO-RIS CO-SAN CO-SAP CO-SUC CO-TOL CO-VAC CO-VAU CO-VID CR-A CR-C CR-G CR-H CR-L CR-P CR-SJ CU-01 +CU-02 CU-03 CU-04 CU-05 CU-06 CU-07 CU-08 CU-09 CU-10 CU-11 CU-12 CU-13 CU-14 CU-15 CU-16 CU-99 CV-B +CV-BR CV-BV CV-CA CV-CF CV-CR CV-MA CV-MO CV-PA CV-PN CV-PR CV-RB CV-RG CV-RS CV-S CV-SD CV-SF CV-SL +CV-SM CV-SO CV-SS CV-SV CV-TA CV-TS CY-01 CY-02 CY-03 CY-04 CY-05 CY-06 CZ-10 CZ-101 CZ-102 CZ-103 +CZ-104 CZ-105 CZ-106 CZ-107 CZ-108 CZ-109 CZ-110 CZ-111 CZ-112 CZ-113 CZ-114 CZ-115 CZ-116 CZ-117 +CZ-118 CZ-119 CZ-120 CZ-121 CZ-122 CZ-20 CZ-201 CZ-202 CZ-203 CZ-204 CZ-205 CZ-206 CZ-207 CZ-208 +CZ-209 CZ-20A CZ-20B CZ-20C CZ-31 CZ-311 CZ-312 CZ-313 CZ-314 CZ-315 CZ-316 CZ-317 CZ-32 CZ-321 +CZ-322 CZ-323 CZ-324 CZ-325 CZ-326 CZ-327 CZ-41 CZ-411 CZ-412 CZ-413 CZ-42 CZ-421 CZ-422 CZ-423 +CZ-424 CZ-425 CZ-426 CZ-427 CZ-51 CZ-511 CZ-512 CZ-513 CZ-514 CZ-52 CZ-521 CZ-522 CZ-523 CZ-524 +CZ-525 CZ-53 CZ-531 CZ-532 CZ-533 CZ-534 CZ-63 CZ-631 CZ-632 CZ-633 CZ-634 CZ-635 CZ-64 CZ-641 +CZ-642 CZ-643 CZ-644 CZ-645 CZ-646 CZ-647 CZ-71 CZ-711 CZ-712 CZ-713 CZ-714 CZ-715 CZ-72 CZ-721 +CZ-722 CZ-723 CZ-724 CZ-80 CZ-801 CZ-802 CZ-803 CZ-804 CZ-805 CZ-806 DE-BB DE-BE DE-BW DE-BY DE-HB +DE-HE DE-HH DE-MV DE-NI DE-NW DE-RP DE-SH DE-SL DE-SN DE-ST DE-TH DJ-AR DJ-AS DJ-DI DJ-DJ DJ-OB +DJ-TA DK-81 DK-82 DK-83 DK-84 DK-85 DM-01 DM-02 DM-03 DM-04 DM-05 DM-06 DM-07 DM-08 DM-09 DM-10 +DO-01 DO-02 DO-03 DO-04 DO-05 DO-06 DO-07 DO-08 DO-09 DO-10 DO-11 DO-12 DO-13 DO-14 DO-15 DO-16 +DO-17 DO-18 DO-19 DO-20 DO-21 DO-22 DO-23 DO-24 DO-25 DO-26 DO-27 DO-28 DO-29 DO-30 DO-31 DZ-01 +DZ-02 DZ-03 DZ-04 DZ-05 DZ-06 DZ-07 DZ-08 DZ-09 DZ-10 DZ-11 DZ-12 DZ-13 DZ-14 DZ-15 DZ-16 DZ-17 +DZ-18 DZ-19 DZ-20 DZ-21 DZ-22 DZ-23 DZ-24 DZ-25 DZ-26 DZ-27 DZ-28 DZ-29 DZ-30 DZ-31 DZ-32 DZ-33 +DZ-34 DZ-35 DZ-36 DZ-37 DZ-38 DZ-39 DZ-40 DZ-41 DZ-42 DZ-43 DZ-44 DZ-45 DZ-46 DZ-47 DZ-48 DZ-49 +DZ-51 DZ-53 DZ-55 DZ-56 DZ-57 EC-A EC-B EC-C EC-D EC-E EC-F EC-G EC-H EC-I EC-L EC-M EC-N EC-O EC-P +EC-R EC-S EC-SD EC-SE EC-T EC-U EC-W EC-X EC-Y EC-Z EE-37 EE-39 EE-44 EE-45 EE-49 EE-50 EE-51 EE-52 +EE-56 EE-57 EE-59 EE-60 EE-64 EE-65 EE-67 EE-68 EE-70 EE-71 EE-74 EE-78 EE-79 EE-81 EE-82 EE-84 +EE-86 EE-87 EG-ALX EG-ASN EG-AST EG-BA EG-BH EG-BNS EG-C EG-DK EG-DT EG-FYM EG-GH EG-GZ EG-HU EG-IS +EG-JS EG-KB EG-KFS EG-KN EG-LX EG-MN EG-MNF EG-MT EG-PTS EG-SHG EG-SHR EG-SIN EG-SU EG-SUZ EG-WAD +ER-AN ER-DK ER-DU ER-GB ER-MA ER-SK ES-A ES-AB ES-AL ES-AN ES-AR ES-AS ES-AV ES-B ES-BA ES-BI ES-BU +ES-C ES-CA ES-CB ES-CC ES-CE ES-CL ES-CM ES-CN ES-CO ES-CR ES-CS ES-CT ES-CU ES-EX ES-GA ES-GC ES-GI +ES-GR ES-GU ES-H ES-HU ES-IB ES-J ES-L ES-LE ES-LO ES-LU ES-M ES-MA ES-MC ES-MD ES-ML ES-MU ES-NA +ES-NC ES-O ES-OR ES-P ES-PM ES-PO ES-PV ES-RI ES-S ES-SA ES-SE ES-SG ES-SO ES-SS ES-T ES-TE ES-TF +ES-TO ES-V ES-VA ES-VC ES-VI ES-Z ES-ZA ET-AA ET-AF ET-AM ET-BE ET-DD ET-GA ET-HA ET-OR ET-SN ET-SO +ET-TI FI-01 FI-02 FI-03 FI-04 FI-05 FI-06 FI-07 FI-08 FI-09 FI-10 FI-11 FI-12 FI-13 FI-14 FI-15 +FI-16 FI-17 FI-18 FI-19 FJ-C FJ-E FJ-N FJ-R FJ-W FM-KSA FM-PNI FM-TRK FM-YAP FR-01 FR-02 FR-03 FR-04 +FR-05 FR-06 FR-07 FR-08 FR-09 FR-10 FR-11 FR-12 FR-13 FR-14 FR-15 FR-16 FR-17 FR-18 FR-19 FR-20R +FR-21 FR-22 FR-23 FR-24 FR-25 FR-26 FR-27 FR-28 FR-29 FR-2A FR-2B FR-30 FR-31 FR-32 FR-33 FR-34 +FR-35 FR-36 FR-37 FR-38 FR-39 FR-40 FR-41 FR-42 FR-43 FR-44 FR-45 FR-46 FR-47 FR-48 FR-49 FR-50 +FR-51 FR-52 FR-53 FR-54 FR-55 FR-56 FR-57 FR-58 FR-59 FR-60 FR-61 FR-62 FR-63 FR-64 FR-65 FR-66 +FR-67 FR-68 FR-69 FR-70 FR-71 FR-72 FR-73 FR-74 FR-75 FR-76 FR-77 FR-78 FR-79 FR-80 FR-81 FR-82 +FR-83 FR-84 FR-85 FR-86 FR-87 FR-88 FR-89 FR-90 FR-91 FR-92 FR-93 FR-94 FR-95 FR-ARA FR-BFC FR-BL +FR-BRE FR-COR FR-CP FR-CVL FR-GES FR-GF FR-GP FR-GUA FR-HDF FR-IDF FR-LRE FR-MAY FR-MF FR-MQ FR-NAQ +FR-NC FR-NOR FR-OCC FR-PAC FR-PDL FR-PF FR-PM FR-RE FR-TF FR-WF FR-YT GA-1 GA-2 GA-3 GA-4 GA-5 GA-6 +GA-7 GA-8 GA-9 GB-ABC GB-ABD GB-ABE GB-AGB GB-AGY GB-AND GB-ANN GB-ANS GB-BAS GB-BBD GB-BDF GB-BDG +GB-BEN GB-BEX GB-BFS GB-BGE GB-BGW GB-BIR GB-BKM GB-BMH GB-BNE GB-BNH GB-BNS GB-BOL GB-BPL GB-BRC +GB-BRD GB-BRY GB-BST GB-BUR GB-CAM GB-CAY GB-CBF GB-CCG GB-CGN GB-CHE GB-CHW GB-CLD GB-CLK GB-CMA +GB-CMD GB-CMN GB-CON GB-COV GB-CRF GB-CRY GB-CWY GB-DAL GB-DBY GB-DEN GB-DER GB-DEV GB-DGY GB-DNC +GB-DND GB-DOR GB-DRS GB-DUD GB-DUR GB-EAL GB-EAW GB-EAY GB-EDH GB-EDU GB-ELN GB-ELS GB-ENF GB-ENG +GB-ERW GB-ERY GB-ESS GB-ESX GB-FAL GB-FIF GB-FLN GB-FMO GB-GAT GB-GBN GB-GLG GB-GLS GB-GRE GB-GWN +GB-HAL GB-HAM GB-HAV GB-HCK GB-HEF GB-HIL GB-HLD GB-HMF GB-HNS GB-HPL GB-HRT GB-HRW GB-HRY GB-IOS +GB-IOW GB-ISL GB-IVC GB-KEC GB-KEN GB-KHL GB-KIR GB-KTT GB-KWL GB-LAN GB-LBC GB-LBH GB-LCE GB-LDS +GB-LEC GB-LEW GB-LIN GB-LIV GB-LND GB-LUT GB-MAN GB-MDB GB-MDW GB-MEA GB-MIK GB-MLN GB-MON GB-MRT +GB-MRY GB-MTY GB-MUL GB-NAY GB-NBL GB-NEL GB-NET GB-NFK GB-NGM GB-NIR GB-NLK GB-NLN GB-NMD GB-NSM +GB-NTH GB-NTL GB-NTT GB-NTY GB-NWM GB-NWP GB-NYK GB-OLD GB-ORK GB-OXF GB-PEM GB-PKN GB-PLY GB-POL +GB-POR GB-POW GB-PTE GB-RCC GB-RCH GB-RCT GB-RDB GB-RDG GB-RFW GB-RIC GB-ROT GB-RUT GB-SAW GB-SAY +GB-SCB GB-SCT GB-SFK GB-SFT GB-SGC GB-SHF GB-SHN GB-SHR GB-SKP GB-SLF GB-SLG GB-SLK GB-SND GB-SOL +GB-SOM GB-SOS GB-SRY GB-STE GB-STG GB-STH GB-STN GB-STS GB-STT GB-STY GB-SWA GB-SWD GB-SWK GB-TAM +GB-TFW GB-THR GB-TOB GB-TOF GB-TRF GB-TWH GB-UKM GB-VGL GB-WAR GB-WBK GB-WDU GB-WFT GB-WGN GB-WIL +GB-WKF GB-WLL GB-WLN GB-WLS GB-WLV GB-WND GB-WNM GB-WOK GB-WOR GB-WRL GB-WRT GB-WRX GB-WSM GB-WSX +GB-YOR GB-ZET GD-01 GD-02 GD-03 GD-04 GD-05 GD-06 GD-10 GE-AB GE-AJ GE-GU GE-IM GE-KA GE-KK GE-MM +GE-RL GE-SJ GE-SK GE-SZ GE-TB GH-AA GH-AF GH-AH GH-BA GH-BE GH-BO GH-CP GH-EP GH-NP GH-TV GH-UE +GH-UW GH-WP GL-AV GL-KU GL-QA GL-QE GL-QT GL-SM GM-B GM-L GM-M GM-N GM-U GM-W GN-B GN-BE GN-BF GN-BK +GN-C GN-CO GN-D GN-DB GN-DI GN-DL GN-DU GN-F GN-FA GN-FO GN-FR GN-GA GN-GU GN-K GN-KA GN-KB GN-KD +GN-KE GN-KN GN-KO GN-KS GN-L GN-LA GN-LE GN-LO GN-M GN-MC GN-MD GN-ML GN-MM GN-N GN-NZ GN-PI GN-SI +GN-TE GN-TO GN-YO GQ-AN GQ-BN GQ-BS GQ-C GQ-CS GQ-I GQ-KN GQ-LI GQ-WN GR-01 GR-03 GR-04 GR-05 GR-06 +GR-07 GR-11 GR-12 GR-13 GR-14 GR-15 GR-16 GR-17 GR-21 GR-22 GR-23 GR-24 GR-31 GR-32 GR-33 GR-34 +GR-41 GR-42 GR-43 GR-44 GR-51 GR-52 GR-53 GR-54 GR-55 GR-56 GR-57 GR-58 GR-59 GR-61 GR-62 GR-63 +GR-64 GR-69 GR-71 GR-72 GR-73 GR-81 GR-82 GR-83 GR-84 GR-85 GR-91 GR-92 GR-93 GR-94 GR-A GR-A1 GR-B +GR-C GR-D GR-E GR-F GR-G GR-H GR-I GR-J GR-K GR-L GR-M GT-01 GT-02 GT-03 GT-04 GT-05 GT-06 GT-07 +GT-08 GT-09 GT-10 GT-11 GT-12 GT-13 GT-14 GT-15 GT-16 GT-17 GT-18 GT-19 GT-20 GT-21 GT-22 GW-BA +GW-BL GW-BM GW-BS GW-CA GW-GA GW-L GW-N GW-OI GW-QU GW-S GW-TO GY-BA GY-CU GY-DE GY-EB GY-ES GY-MA +GY-PM GY-PT GY-UD GY-UT HN-AT HN-CH HN-CL HN-CM HN-CP HN-CR HN-EP HN-FM HN-GD HN-IB HN-IN HN-LE +HN-LP HN-OC HN-OL HN-SB HN-VA HN-YO HR-01 HR-02 HR-03 HR-04 HR-05 HR-06 HR-07 HR-08 HR-09 HR-10 +HR-11 HR-12 HR-13 HR-14 HR-15 HR-16 HR-17 HR-18 HR-19 HR-20 HR-21 HT-AR HT-CE HT-GA HT-ND HT-NE +HT-NI HT-NO HT-OU HT-SD HT-SE HU-BA HU-BC HU-BE HU-BK HU-BU HU-BZ HU-CS HU-DE HU-DU HU-EG HU-ER +HU-FE HU-GS HU-GY HU-HB HU-HE HU-HV HU-JN HU-KE HU-KM HU-KV HU-MI HU-NK HU-NO HU-NY HU-PE HU-PS +HU-SD HU-SF HU-SH HU-SK HU-SN HU-SO HU-SS HU-ST HU-SZ HU-TB HU-TO HU-VA HU-VE HU-VM HU-ZA HU-ZE +ID-AC ID-BA ID-BB ID-BE ID-BT ID-GO ID-IJ ID-JA ID-JB ID-JI ID-JK ID-JT ID-JW ID-KA ID-KB ID-KI +ID-KR ID-KS ID-KT ID-KU ID-LA ID-MA ID-ML ID-MU ID-NB ID-NT ID-NU ID-PA ID-PB ID-PD ID-PE ID-PP +ID-PS ID-PT ID-RI ID-SA ID-SB ID-SG ID-SL ID-SM ID-SN ID-SR ID-SS ID-ST ID-SU ID-YO IE-C IE-CE IE-CN +IE-CO IE-CW IE-D IE-DL IE-G IE-KE IE-KK IE-KY IE-L IE-LD IE-LH IE-LK IE-LM IE-LS IE-M IE-MH IE-MN +IE-MO IE-OY IE-RN IE-SO IE-TA IE-U IE-WD IE-WH IE-WW IE-WX IL-D IL-HA IL-JM IL-M IL-TA IL-Z IN-AN +IN-AP IN-AR IN-AS IN-BR IN-CH IN-CT IN-DH IN-DL IN-DN IN-GA IN-GJ IN-HP IN-HR IN-JH IN-JK IN-KA +IN-KL IN-LA IN-LD IN-MH IN-ML IN-MN IN-MP IN-MZ IN-NL IN-OR IN-PB IN-PY IN-RJ IN-SK IN-TG IN-TN +IN-TR IN-UP IN-UT IN-WB IQ-AN IQ-AR IQ-BA IQ-BB IQ-BG IQ-DA IQ-DI IQ-DQ IQ-KA IQ-KI IQ-MA IQ-MU +IQ-NA IQ-NI IQ-QA IQ-SD IQ-SU IQ-SW IQ-TS IQ-WA IR-00 IR-01 IR-02 IR-03 IR-04 IR-05 IR-06 IR-07 +IR-08 IR-09 IR-10 IR-11 IR-12 IR-13 IR-14 IR-15 IR-16 IR-17 IR-18 IR-19 IR-20 IR-21 IR-22 IR-23 +IR-24 IR-25 IR-26 IR-27 IR-28 IR-29 IR-30 IR-31 IS-0 IS-1 IS-2 IS-3 IS-4 IS-5 IS-6 IS-7 IS-8 IT-21 +IT-23 IT-25 IT-32 IT-34 IT-36 IT-42 IT-45 IT-52 IT-55 IT-57 IT-62 IT-65 IT-67 IT-72 IT-75 IT-77 +IT-78 IT-82 IT-88 IT-AG IT-AL IT-AN IT-AO IT-AP IT-AQ IT-AR IT-AT IT-AV IT-BA IT-BG IT-BI IT-BL +IT-BN IT-BO IT-BR IT-BS IT-BT IT-BZ IT-CA IT-CB IT-CE IT-CH IT-CI IT-CL IT-CN IT-CO IT-CR IT-CS +IT-CT IT-CZ IT-EN IT-FC IT-FE IT-FG IT-FI IT-FM IT-FR IT-GE IT-GO IT-GR IT-IM IT-IS IT-KR IT-LC +IT-LE IT-LI IT-LO IT-LT IT-LU IT-MB IT-MC IT-ME IT-MI IT-MN IT-MO IT-MS IT-MT IT-NA IT-NO IT-NU +IT-OG IT-OR IT-OT IT-PA IT-PC IT-PD IT-PE IT-PG IT-PI IT-PN IT-PO IT-PR IT-PT IT-PU IT-PV IT-PZ +IT-RA IT-RC IT-RE IT-RG IT-RI IT-RM IT-RN IT-RO IT-SA IT-SI IT-SO IT-SP IT-SR IT-SS IT-SV IT-TA +IT-TE IT-TN IT-TO IT-TP IT-TR IT-TS IT-TV IT-UD IT-VA IT-VB IT-VC IT-VE IT-VI IT-VR IT-VS IT-VT +IT-VV JM-01 JM-02 JM-03 JM-04 JM-05 JM-06 JM-07 JM-08 JM-09 JM-10 JM-11 JM-12 JM-13 JM-14 JO-AJ +JO-AM JO-AQ JO-AT JO-AZ JO-BA JO-IR JO-JA JO-KA JO-MA JO-MD JO-MN JP-01 JP-02 JP-03 JP-04 JP-05 +JP-06 JP-07 JP-08 JP-09 JP-10 JP-11 JP-12 JP-13 JP-14 JP-15 JP-16 JP-17 JP-18 JP-19 JP-20 JP-21 +JP-22 JP-23 JP-24 JP-25 JP-26 JP-27 JP-28 JP-29 JP-30 JP-31 JP-32 JP-33 JP-34 JP-35 JP-36 JP-37 +JP-38 JP-39 JP-40 JP-41 JP-42 JP-43 JP-44 JP-45 JP-46 JP-47 KE-01 KE-02 KE-03 KE-04 KE-05 KE-06 +KE-07 KE-08 KE-09 KE-10 KE-11 KE-12 KE-13 KE-14 KE-15 KE-16 KE-17 KE-18 KE-19 KE-20 KE-21 KE-22 +KE-23 KE-24 KE-25 KE-26 KE-27 KE-28 KE-29 KE-30 KE-31 KE-32 KE-33 KE-34 KE-35 KE-36 KE-37 KE-38 +KE-39 KE-40 KE-41 KE-42 KE-43 KE-44 KE-45 KE-46 KE-47 KG-B KG-C KG-GB KG-GO KG-J KG-N KG-O KG-T KG-Y +KH-1 KH-10 KH-11 KH-12 KH-13 KH-14 KH-15 KH-16 KH-17 KH-18 KH-19 KH-2 KH-20 KH-21 KH-22 KH-23 KH-24 +KH-3 KH-4 KH-5 KH-6 KH-7 KH-8 KH-9 KI-G KI-L KI-P KM-A KM-G KM-M KN-01 KN-02 KN-03 KN-04 KN-05 KN-06 +KN-07 KN-08 KN-09 KN-10 KN-11 KN-12 KN-13 KN-15 KN-K KN-N KP-01 KP-02 KP-03 KP-04 KP-05 KP-06 KP-07 +KP-08 KP-09 KP-10 KP-13 KR-11 KR-26 KR-27 KR-28 KR-29 KR-30 KR-31 KR-41 KR-42 KR-43 KR-44 KR-45 +KR-46 KR-47 KR-48 KR-49 KR-50 KW-AH KW-FA KW-HA KW-JA KW-KU KW-MU KZ-10 KZ-11 KZ-15 KZ-19 KZ-23 +KZ-27 KZ-31 KZ-33 KZ-35 KZ-39 KZ-43 KZ-47 KZ-55 KZ-59 KZ-61 KZ-62 KZ-63 KZ-71 KZ-75 KZ-79 LA-AT +LA-BK LA-BL LA-CH LA-HO LA-KH LA-LM LA-LP LA-OU LA-PH LA-SL LA-SV LA-VI LA-VT LA-XA LA-XE LA-XI +LA-XS LB-AK LB-AS LB-BA LB-BH LB-BI LB-JA LB-JL LB-NA LC-01 LC-02 LC-03 LC-05 LC-06 LC-07 LC-08 +LC-10 LC-11 LI-01 LI-02 LI-03 LI-04 LI-05 LI-06 LI-07 LI-08 LI-09 LI-10 LI-11 LK-1 LK-11 LK-12 LK-13 +LK-2 LK-21 LK-22 LK-23 LK-3 LK-31 LK-32 LK-33 LK-4 LK-41 LK-42 LK-43 LK-44 LK-45 LK-5 LK-51 LK-52 +LK-53 LK-6 LK-61 LK-62 LK-7 LK-71 LK-72 LK-8 LK-81 LK-82 LK-9 LK-91 LK-92 LR-BG LR-BM LR-CM LR-GB +LR-GG LR-GK LR-LO LR-MG LR-MO LR-MY LR-NI LR-RI LR-SI LS-A LS-B LS-C LS-D LS-E LS-F LS-G LS-H LS-J +LS-K LT-AL LT-KL LT-KU LT-MR LT-PN LT-SA LT-TA LT-TE LT-UT LT-VL LU-CA LU-CL LU-D LU-DI LU-EC LU-ES +LU-G LU-GR LU-L LU-LU LU-ME LU-RD LU-RM LU-VD LU-WI LV-001 LV-002 LV-003 LV-004 LV-005 LV-006 LV-007 +LV-008 LV-009 LV-010 LV-011 LV-012 LV-013 LV-014 LV-015 LV-016 LV-017 LV-018 LV-019 LV-020 LV-021 +LV-022 LV-023 LV-024 LV-025 LV-026 LV-027 LV-028 LV-029 LV-030 LV-031 LV-032 LV-033 LV-034 LV-035 +LV-036 LV-037 LV-038 LV-039 LV-040 LV-041 LV-042 LV-043 LV-044 LV-045 LV-046 LV-047 LV-048 LV-049 +LV-050 LV-051 LV-052 LV-053 LV-054 LV-055 LV-056 LV-057 LV-058 LV-059 LV-060 LV-061 LV-062 LV-063 +LV-064 LV-065 LV-066 LV-067 LV-068 LV-069 LV-070 LV-071 LV-072 LV-073 LV-074 LV-075 LV-076 LV-077 +LV-078 LV-079 LV-080 LV-081 LV-082 LV-083 LV-084 LV-085 LV-086 LV-087 LV-088 LV-089 LV-090 LV-091 +LV-092 LV-093 LV-094 LV-095 LV-096 LV-097 LV-098 LV-099 LV-100 LV-101 LV-102 LV-103 LV-104 LV-105 +LV-106 LV-107 LV-108 LV-109 LV-110 LV-111 LV-112 LV-113 LV-DGV LV-JEL LV-JKB LV-JUR LV-LPX LV-REZ +LV-RIX LV-VEN LV-VMR LY-BA LY-BU LY-DR LY-GT LY-JA LY-JB LY-JG LY-JI LY-JU LY-KF LY-MB LY-MI LY-MJ +LY-MQ LY-NL LY-NQ LY-SB LY-SR LY-TB LY-WA LY-WD LY-WS LY-ZA MA-01 MA-02 MA-03 MA-04 MA-05 MA-06 +MA-07 MA-08 MA-09 MA-10 MA-11 MA-12 MA-13 MA-14 MA-15 MA-16 MA-AGD MA-AOU MA-ASZ MA-AZI MA-BEM +MA-BER MA-BES MA-BOD MA-BOM MA-CAS MA-CHE MA-CHI MA-CHT MA-ERR MA-ESI MA-ESM MA-FAH MA-FES MA-FIG +MA-GUE MA-HAJ MA-HAO MA-HOC MA-IFR MA-INE MA-JDI MA-JRA MA-KEN MA-KES MA-KHE MA-KHN MA-KHO MA-LAA +MA-LAR MA-MED MA-MEK MA-MMD MA-MMN MA-MOH MA-MOU MA-NAD MA-NOU MA-OUA MA-OUD MA-OUJ MA-RAB MA-SAF +MA-SAL MA-SEF MA-SET MA-SIK MA-SKH MA-SYB MA-TAI MA-TAO MA-TAR MA-TAT MA-TAZ MA-TET MA-TIZ MA-TNG +MA-TNT MA-ZAG MC-CL MC-CO MC-FO MC-GA MC-JE MC-LA MC-MA MC-MC MC-MG MC-MO MC-MU MC-PH MC-SD MC-SO +MC-SP MC-SR MC-VR MD-AN MD-BA MD-BD MD-BR MD-BS MD-CA MD-CL MD-CM MD-CR MD-CS MD-CT MD-CU MD-DO +MD-DR MD-DU MD-ED MD-FA MD-FL MD-GA MD-GL MD-HI MD-IA MD-LE MD-NI MD-OC MD-OR MD-RE MD-RI MD-SD +MD-SI MD-SN MD-SO MD-ST MD-SV MD-TA MD-TE MD-UN ME-01 ME-02 ME-03 ME-04 ME-05 ME-06 ME-07 ME-08 +ME-09 ME-10 ME-11 ME-12 ME-13 ME-14 ME-15 ME-16 ME-17 ME-18 ME-19 ME-20 ME-21 ME-22 ME-23 ME-24 +ME-25 MG-A MG-D MG-F MG-M MG-T MG-U MH-ALK MH-ALL MH-ARN MH-AUR MH-EBO MH-ENI MH-JAB MH-JAL MH-KIL +MH-KWA MH-L MH-LAE MH-LIB MH-LIK MH-MAJ MH-MAL MH-MEJ MH-MIL MH-NMK MH-NMU MH-RON MH-T MH-UJA MH-UTI +MH-WTJ MH-WTN MK-101 MK-102 MK-103 MK-104 MK-105 MK-106 MK-107 MK-108 MK-109 MK-201 MK-202 MK-205 +MK-206 MK-207 MK-208 MK-209 MK-210 MK-211 MK-301 MK-303 MK-307 MK-308 MK-310 MK-311 MK-312 MK-401 +MK-402 MK-403 MK-404 MK-405 MK-406 MK-408 MK-409 MK-410 MK-501 MK-502 MK-503 MK-505 MK-506 MK-507 +MK-508 MK-509 MK-601 MK-602 MK-604 MK-605 MK-606 MK-607 MK-608 MK-609 MK-701 MK-702 MK-703 MK-704 +MK-705 MK-803 MK-804 MK-806 MK-807 MK-809 MK-810 MK-811 MK-812 MK-813 MK-814 MK-816 ML-1 ML-2 ML-3 +ML-4 ML-5 ML-6 ML-7 ML-8 ML-BKO MM-01 MM-02 MM-03 MM-04 MM-05 MM-06 MM-07 MM-11 MM-12 MM-13 MM-14 +MM-15 MM-16 MM-17 MM-18 MN-035 MN-037 MN-039 MN-041 MN-043 MN-046 MN-047 MN-049 MN-051 MN-053 MN-055 +MN-057 MN-059 MN-061 MN-063 MN-064 MN-065 MN-067 MN-069 MN-071 MN-073 MN-1 MR-01 MR-02 MR-03 MR-04 +MR-05 MR-06 MR-07 MR-08 MR-09 MR-10 MR-11 MR-12 MR-13 MR-NKC MT-01 MT-02 MT-03 MT-04 MT-05 MT-06 +MT-07 MT-08 MT-09 MT-10 MT-11 MT-12 MT-13 MT-14 MT-15 MT-16 MT-17 MT-18 MT-19 MT-20 MT-21 MT-22 +MT-23 MT-24 MT-25 MT-26 MT-27 MT-28 MT-29 MT-30 MT-31 MT-32 MT-33 MT-34 MT-35 MT-36 MT-37 MT-38 +MT-39 MT-40 MT-41 MT-42 MT-43 MT-44 MT-45 MT-46 MT-47 MT-48 MT-49 MT-50 MT-51 MT-52 MT-53 MT-54 +MT-55 MT-56 MT-57 MT-58 MT-59 MT-60 MT-61 MT-62 MT-63 MT-64 MT-65 MT-66 MT-67 MT-68 MU-AG MU-BL +MU-BR MU-CC MU-CU MU-FL MU-GP MU-MO MU-PA MU-PL MU-PU MU-PW MU-QB MU-RO MU-RP MU-RR MU-SA MU-VP +MV-00 MV-01 MV-02 MV-03 MV-04 MV-05 MV-07 MV-08 MV-12 MV-13 MV-14 MV-17 MV-20 MV-23 MV-24 MV-25 +MV-26 MV-27 MV-28 MV-29 MV-CE MV-MLE MV-NC MV-NO MV-SC MV-SU MV-UN MV-US MW-BA MW-BL MW-C MW-CK +MW-CR MW-CT MW-DE MW-DO MW-KR MW-KS MW-LI MW-LK MW-MC MW-MG MW-MH MW-MU MW-MW MW-MZ MW-N MW-NB MW-NE +MW-NI MW-NK MW-NS MW-NU MW-PH MW-RU MW-S MW-SA MW-TH MW-ZO MX-AGU MX-BCN MX-BCS MX-CAM MX-CHH MX-CHP +MX-CMX MX-COA MX-COL MX-DIF MX-DUR MX-GRO MX-GUA MX-HID MX-JAL MX-MEX MX-MIC MX-MOR MX-NAY MX-NLE +MX-OAX MX-PUE MX-QUE MX-ROO MX-SIN MX-SLP MX-SON MX-TAB MX-TAM MX-TLA MX-VER MX-YUC MX-ZAC MY-01 +MY-02 MY-03 MY-04 MY-05 MY-06 MY-07 MY-08 MY-09 MY-10 MY-11 MY-12 MY-13 MY-14 MY-15 MY-16 MZ-A MZ-B +MZ-G MZ-I MZ-L MZ-MPM MZ-N MZ-P MZ-Q MZ-S MZ-T NA-CA NA-ER NA-HA NA-KA NA-KE NA-KH NA-KU NA-KW NA-OD +NA-OH NA-OK NA-ON NA-OS NA-OT NA-OW NE-1 NE-2 NE-3 NE-4 NE-5 NE-6 NE-7 NE-8 NG-AB NG-AD NG-AK NG-AN +NG-BA NG-BE NG-BO NG-BY NG-CR NG-DE NG-EB NG-ED NG-EK NG-EN NG-FC NG-GO NG-IM NG-JI NG-KD NG-KE +NG-KN NG-KO NG-KT NG-KW NG-LA NG-NA NG-NI NG-OG NG-ON NG-OS NG-OY NG-PL NG-RI NG-SO NG-TA NG-YO +NG-ZA NI-AN NI-AS NI-BO NI-CA NI-CI NI-CO NI-ES NI-GR NI-JI NI-LE NI-MD NI-MN NI-MS NI-MT NI-NS +NI-RI NI-SJ NL-AW NL-BQ1 NL-BQ2 NL-BQ3 NL-CW NL-DR NL-FL NL-FR NL-GE NL-GR NL-LI NL-NB NL-NH NL-OV +NL-SX NL-UT NL-ZE NL-ZH NO-03 NO-11 NO-15 NO-16 NO-17 NO-18 NO-21 NO-22 NO-30 NO-34 NO-38 NO-42 +NO-46 NO-50 NO-54 NP-1 NP-2 NP-3 NP-4 NP-5 NP-BA NP-BH NP-DH NP-GA NP-JA NP-KA NP-KO NP-LU NP-MA +NP-ME NP-NA NP-P1 NP-P2 NP-P3 NP-P4 NP-P5 NP-P6 NP-P7 NP-RA NP-SA NP-SE NR-01 NR-02 NR-03 NR-04 +NR-05 NR-06 NR-07 NR-08 NR-09 NR-10 NR-11 NR-12 NR-13 NR-14 NZ-AUK NZ-BOP NZ-CAN NZ-CIT NZ-GIS +NZ-HKB NZ-MBH NZ-MWT NZ-N NZ-NSN NZ-NTL NZ-OTA NZ-S NZ-STL NZ-TAS NZ-TKI NZ-WGN NZ-WKO NZ-WTC OM-BA +OM-BJ OM-BS OM-BU OM-DA OM-MA OM-MU OM-SH OM-SJ OM-SS OM-WU OM-ZA OM-ZU PA-1 PA-2 PA-3 PA-4 PA-5 +PA-6 PA-7 PA-8 PA-9 PA-EM PA-KY PA-NB PE-AMA PE-ANC PE-APU PE-ARE PE-AYA PE-CAJ PE-CAL PE-CUS PE-HUC +PE-HUV PE-ICA PE-JUN PE-LAL PE-LAM PE-LIM PE-LMA PE-LOR PE-MDD PE-MOQ PE-PAS PE-PIU PE-PUN PE-SAM +PE-TAC PE-TUM PE-UCA PG-CPK PG-CPM PG-EBR PG-EHG PG-EPW PG-ESW PG-GPK PG-MBA PG-MPL PG-MPM PG-MRL +PG-NCD PG-NIK PG-NPP PG-NSB PG-SAN PG-SHM PG-WBK PG-WHM PG-WPD PH-00 PH-01 PH-02 PH-03 PH-05 PH-06 +PH-07 PH-08 PH-09 PH-10 PH-11 PH-12 PH-13 PH-14 PH-15 PH-40 PH-41 PH-ABR PH-AGN PH-AGS PH-AKL PH-ALB +PH-ANT PH-APA PH-AUR PH-BAN PH-BAS PH-BEN PH-BIL PH-BOH PH-BTG PH-BTN PH-BUK PH-BUL PH-CAG PH-CAM +PH-CAN PH-CAP PH-CAS PH-CAT PH-CAV PH-CEB PH-COM PH-DAO PH-DAS PH-DAV PH-DIN PH-EAS PH-GUI PH-IFU +PH-ILI PH-ILN PH-ILS PH-ISA PH-KAL PH-LAG PH-LAN PH-LAS PH-LEY PH-LUN PH-MAD PH-MAG PH-MAS PH-MDC +PH-MDR PH-MOU PH-MSC PH-MSR PH-NCO PH-NEC PH-NER PH-NSA PH-NUE PH-NUV PH-PAM PH-PAN PH-PLW PH-QUE +PH-QUI PH-RIZ PH-ROM PH-SAR PH-SCO PH-SIG PH-SLE PH-SLU PH-SOR PH-SUK PH-SUN PH-SUR PH-TAR PH-TAW +PH-WSA PH-ZAN PH-ZAS PH-ZMB PH-ZSI PK-BA PK-GB PK-IS PK-JK PK-KP PK-PB PK-SD PK-TA PL-02 PL-04 PL-06 +PL-08 PL-10 PL-12 PL-14 PL-16 PL-18 PL-20 PL-22 PL-24 PL-26 PL-28 PL-30 PL-32 PS-BTH PS-DEB PS-GZA +PS-HBN PS-JEM PS-JEN PS-JRH PS-KYS PS-NBS PS-NGZ PS-QQA PS-RBH PS-RFH PS-SLT PS-TBS PS-TKM PT-01 +PT-02 PT-03 PT-04 PT-05 PT-06 PT-07 PT-08 PT-09 PT-10 PT-11 PT-12 PT-13 PT-14 PT-15 PT-16 PT-17 +PT-18 PT-20 PT-30 PW-002 PW-004 PW-010 PW-050 PW-100 PW-150 PW-212 PW-214 PW-218 PW-222 PW-224 +PW-226 PW-227 PW-228 PW-350 PW-370 PY-1 PY-10 PY-11 PY-12 PY-13 PY-14 PY-15 PY-16 PY-19 PY-2 PY-3 +PY-4 PY-5 PY-6 PY-7 PY-8 PY-9 PY-ASU QA-DA QA-KH QA-MS QA-RA QA-US QA-WA QA-ZA RO-AB RO-AG RO-AR +RO-B RO-BC RO-BH RO-BN RO-BR RO-BT RO-BV RO-BZ RO-CJ RO-CL RO-CS RO-CT RO-CV RO-DB RO-DJ RO-GJ RO-GL +RO-GR RO-HD RO-HR RO-IF RO-IL RO-IS RO-MH RO-MM RO-MS RO-NT RO-OT RO-PH RO-SB RO-SJ RO-SM RO-SV +RO-TL RO-TM RO-TR RO-VL RO-VN RO-VS RS-00 RS-01 RS-02 RS-03 RS-04 RS-05 RS-06 RS-07 RS-08 RS-09 +RS-10 RS-11 RS-12 RS-13 RS-14 RS-15 RS-16 RS-17 RS-18 RS-19 RS-20 RS-21 RS-22 RS-23 RS-24 RS-25 +RS-26 RS-27 RS-28 RS-29 RS-KM RS-VO RU-AD RU-AL RU-ALT RU-AMU RU-ARK RU-AST RU-BA RU-BEL RU-BRY +RU-BU RU-CE RU-CHE RU-CHU RU-CU RU-DA RU-IN RU-IRK RU-IVA RU-KAM RU-KB RU-KC RU-KDA RU-KEM RU-KGD +RU-KGN RU-KHA RU-KHM RU-KIR RU-KK RU-KL RU-KLU RU-KO RU-KOS RU-KR RU-KRS RU-KYA RU-LEN RU-LIP RU-MAG +RU-ME RU-MO RU-MOS RU-MOW RU-MUR RU-NEN RU-NGR RU-NIZ RU-NVS RU-OMS RU-ORE RU-ORL RU-PER RU-PNZ +RU-PRI RU-PSK RU-ROS RU-RYA RU-SA RU-SAK RU-SAM RU-SAR RU-SE RU-SMO RU-SPE RU-STA RU-SVE RU-TA +RU-TAM RU-TOM RU-TUL RU-TVE RU-TY RU-TYU RU-UD RU-ULY RU-VGG RU-VLA RU-VLG RU-VOR RU-YAN RU-YAR +RU-YEV RU-ZAB RW-01 RW-02 RW-03 RW-04 RW-05 SA-01 SA-02 SA-03 SA-04 SA-05 SA-06 SA-07 SA-08 SA-09 +SA-10 SA-11 SA-12 SA-14 SB-CE SB-CH SB-CT SB-GU SB-IS SB-MK SB-ML SB-RB SB-TE SB-WE SC-01 SC-02 +SC-03 SC-04 SC-05 SC-06 SC-07 SC-08 SC-09 SC-10 SC-11 SC-12 SC-13 SC-14 SC-15 SC-16 SC-17 SC-18 +SC-19 SC-20 SC-21 SC-22 SC-23 SC-24 SC-25 SD-DC SD-DE SD-DN SD-DS SD-DW SD-GD SD-GK SD-GZ SD-KA +SD-KH SD-KN SD-KS SD-NB SD-NO SD-NR SD-NW SD-RS SD-SI SE-AB SE-AC SE-BD SE-C SE-D SE-E SE-F SE-G +SE-H SE-I SE-K SE-M SE-N SE-O SE-S SE-T SE-U SE-W SE-X SE-Y SE-Z SG-01 SG-02 SG-03 SG-04 SG-05 SH-AC +SH-HL SH-TA SI-001 SI-002 SI-003 SI-004 SI-005 SI-006 SI-007 SI-008 SI-009 SI-010 SI-011 SI-012 +SI-013 SI-014 SI-015 SI-016 SI-017 SI-018 SI-019 SI-020 SI-021 SI-022 SI-023 SI-024 SI-025 SI-026 +SI-027 SI-028 SI-029 SI-030 SI-031 SI-032 SI-033 SI-034 SI-035 SI-036 SI-037 SI-038 SI-039 SI-040 +SI-041 SI-042 SI-043 SI-044 SI-045 SI-046 SI-047 SI-048 SI-049 SI-050 SI-051 SI-052 SI-053 SI-054 +SI-055 SI-056 SI-057 SI-058 SI-059 SI-060 SI-061 SI-062 SI-063 SI-064 SI-065 SI-066 SI-067 SI-068 +SI-069 SI-070 SI-071 SI-072 SI-073 SI-074 SI-075 SI-076 SI-077 SI-078 SI-079 SI-080 SI-081 SI-082 +SI-083 SI-084 SI-085 SI-086 SI-087 SI-088 SI-089 SI-090 SI-091 SI-092 SI-093 SI-094 SI-095 SI-096 +SI-097 SI-098 SI-099 SI-100 SI-101 SI-102 SI-103 SI-104 SI-105 SI-106 SI-107 SI-108 SI-109 SI-110 +SI-111 SI-112 SI-113 SI-114 SI-115 SI-116 SI-117 SI-118 SI-119 SI-120 SI-121 SI-122 SI-123 SI-124 +SI-125 SI-126 SI-127 SI-128 SI-129 SI-130 SI-131 SI-132 SI-133 SI-134 SI-135 SI-136 SI-137 SI-138 +SI-139 SI-140 SI-141 SI-142 SI-143 SI-144 SI-146 SI-147 SI-148 SI-149 SI-150 SI-151 SI-152 SI-153 +SI-154 SI-155 SI-156 SI-157 SI-158 SI-159 SI-160 SI-161 SI-162 SI-163 SI-164 SI-165 SI-166 SI-167 +SI-168 SI-169 SI-170 SI-171 SI-172 SI-173 SI-174 SI-175 SI-176 SI-177 SI-178 SI-179 SI-180 SI-181 +SI-182 SI-183 SI-184 SI-185 SI-186 SI-187 SI-188 SI-189 SI-190 SI-191 SI-192 SI-193 SI-194 SI-195 +SI-196 SI-197 SI-198 SI-199 SI-200 SI-201 SI-202 SI-203 SI-204 SI-205 SI-206 SI-207 SI-208 SI-209 +SI-210 SI-211 SI-212 SI-213 SK-BC SK-BL SK-KI SK-NI SK-PV SK-TA SK-TC SK-ZI SL-E SL-N SL-S SL-W +SM-01 SM-02 SM-03 SM-04 SM-05 SM-06 SM-07 SM-08 SM-09 SN-DB SN-DK SN-FK SN-KA SN-KD SN-KE SN-KL +SN-LG SN-MT SN-SE SN-SL SN-TC SN-TH SN-ZG SO-AW SO-BK SO-BN SO-BR SO-BY SO-GA SO-GE SO-HI SO-JD +SO-JH SO-MU SO-NU SO-SA SO-SD SO-SH SO-SO SO-TO SO-WO SR-BR SR-CM SR-CR SR-MA SR-NI SR-PM SR-PR +SR-SA SR-SI SR-WA SS-BN SS-BW SS-EC SS-EE SS-EE8 SS-EW SS-JG SS-LK SS-NU SS-UY SS-WR ST-01 ST-P ST-S +SV-AH SV-CA SV-CH SV-CU SV-LI SV-MO SV-PA SV-SA SV-SM SV-SO SV-SS SV-SV SV-UN SV-US SY-DI SY-DR +SY-DY SY-HA SY-HI SY-HL SY-HM SY-ID SY-LA SY-QU SY-RA SY-RD SY-SU SY-TA SZ-HH SZ-LU SZ-MA SZ-SH +TD-BA TD-BG TD-BO TD-CB TD-EN TD-GR TD-HL TD-KA TD-LC TD-LO TD-LR TD-MA TD-MC TD-ME TD-MO TD-ND +TD-OD TD-SA TD-SI TD-TA TD-TI TD-WF TG-C TG-K TG-M TG-P TG-S TH-10 TH-11 TH-12 TH-13 TH-14 TH-15 +TH-16 TH-17 TH-18 TH-19 TH-20 TH-21 TH-22 TH-23 TH-24 TH-25 TH-26 TH-27 TH-30 TH-31 TH-32 TH-33 +TH-34 TH-35 TH-36 TH-37 TH-38 TH-39 TH-40 TH-41 TH-42 TH-43 TH-44 TH-45 TH-46 TH-47 TH-48 TH-49 +TH-50 TH-51 TH-52 TH-53 TH-54 TH-55 TH-56 TH-57 TH-58 TH-60 TH-61 TH-62 TH-63 TH-64 TH-65 TH-66 +TH-67 TH-70 TH-71 TH-72 TH-73 TH-74 TH-75 TH-76 TH-77 TH-80 TH-81 TH-82 TH-83 TH-84 TH-85 TH-86 +TH-90 TH-91 TH-92 TH-93 TH-94 TH-95 TH-96 TH-S TJ-DU TJ-GB TJ-KT TJ-RA TJ-SU TL-AL TL-AN TL-BA TL-BO +TL-CO TL-DI TL-ER TL-LA TL-LI TL-MF TL-MT TL-OE TL-VI TM-A TM-B TM-D TM-L TM-M TM-S TN-11 TN-12 +TN-13 TN-14 TN-21 TN-22 TN-23 TN-31 TN-32 TN-33 TN-34 TN-41 TN-42 TN-43 TN-51 TN-52 TN-53 TN-61 +TN-71 TN-72 TN-73 TN-81 TN-82 TN-83 TO-01 TO-02 TO-03 TO-04 TO-05 TR-01 TR-02 TR-03 TR-04 TR-05 +TR-06 TR-07 TR-08 TR-09 TR-10 TR-11 TR-12 TR-13 TR-14 TR-15 TR-16 TR-17 TR-18 TR-19 TR-20 TR-21 +TR-22 TR-23 TR-24 TR-25 TR-26 TR-27 TR-28 TR-29 TR-30 TR-31 TR-32 TR-33 TR-34 TR-35 TR-36 TR-37 +TR-38 TR-39 TR-40 TR-41 TR-42 TR-43 TR-44 TR-45 TR-46 TR-47 TR-48 TR-49 TR-50 TR-51 TR-52 TR-53 +TR-54 TR-55 TR-56 TR-57 TR-58 TR-59 TR-60 TR-61 TR-62 TR-63 TR-64 TR-65 TR-66 TR-67 TR-68 TR-69 +TR-70 TR-71 TR-72 TR-73 TR-74 TR-75 TR-76 TR-77 TR-78 TR-79 TR-80 TR-81 TT-ARI TT-CHA TT-CTT TT-DMN +TT-ETO TT-MRC TT-PED TT-POS TT-PRT TT-PTF TT-RCM TT-SFO TT-SGE TT-SIP TT-SJL TT-TOB TT-TUP TT-WTO +TV-FUN TV-NIT TV-NKF TV-NKL TV-NMA TV-NMG TV-NUI TV-VAI TW-CHA TW-CYI TW-CYQ TW-HSQ TW-HSZ TW-HUA +TW-ILA TW-KEE TW-KHH TW-KHQ TW-KIN TW-LIE TW-MIA TW-NAN TW-NWT TW-PEN TW-PIF TW-TAO TW-TNN TW-TNQ +TW-TPE TW-TPQ TW-TTT TW-TXG TW-TXQ TW-YUN TZ-01 TZ-02 TZ-03 TZ-04 TZ-05 TZ-06 TZ-07 TZ-08 TZ-09 +TZ-10 TZ-11 TZ-12 TZ-13 TZ-14 TZ-15 TZ-16 TZ-17 TZ-18 TZ-19 TZ-20 TZ-21 TZ-22 TZ-23 TZ-24 TZ-25 +TZ-26 TZ-27 TZ-28 TZ-29 TZ-30 TZ-31 UA-05 UA-07 UA-09 UA-12 UA-14 UA-18 UA-21 UA-23 UA-26 UA-30 +UA-32 UA-35 UA-40 UA-43 UA-46 UA-48 UA-51 UA-53 UA-56 UA-59 UA-61 UA-63 UA-65 UA-68 UA-71 UA-74 +UA-77 UG-101 UG-102 UG-103 UG-104 UG-105 UG-106 UG-107 UG-108 UG-109 UG-110 UG-111 UG-112 UG-113 +UG-114 UG-115 UG-116 UG-117 UG-118 UG-120 UG-121 UG-122 UG-123 UG-124 UG-201 UG-202 UG-203 UG-204 +UG-205 UG-206 UG-207 UG-208 UG-209 UG-210 UG-211 UG-212 UG-213 UG-214 UG-215 UG-216 UG-217 UG-218 +UG-219 UG-220 UG-221 UG-222 UG-223 UG-224 UG-225 UG-226 UG-227 UG-228 UG-229 UG-230 UG-301 UG-302 +UG-303 UG-304 UG-305 UG-306 UG-307 UG-308 UG-309 UG-310 UG-311 UG-312 UG-313 UG-314 UG-315 UG-316 +UG-317 UG-318 UG-319 UG-320 UG-321 UG-322 UG-323 UG-325 UG-326 UG-327 UG-328 UG-330 UG-401 UG-402 +UG-403 UG-404 UG-405 UG-406 UG-407 UG-408 UG-409 UG-410 UG-411 UG-412 UG-413 UG-414 UG-415 UG-416 +UG-417 UG-418 UG-419 UG-420 UG-421 UG-422 UG-423 UG-424 UG-425 UG-426 UG-C UG-E UG-N UG-W UM-67 +UM-71 UM-76 UM-79 UM-81 UM-84 UM-86 UM-89 UM-95 US-AK US-AL US-AR US-AS US-AZ US-CA US-CO US-CT +US-DC US-DE US-FL US-GA US-GU US-HI US-IA US-ID US-IL US-IN US-KS US-KY US-LA US-MA US-MD US-ME +US-MI US-MN US-MO US-MP US-MS US-MT US-NC US-ND US-NE US-NH US-NJ US-NM US-NV US-NY US-OH US-OK +US-OR US-PA US-PR US-RI US-SC US-SD US-TN US-TX US-UM US-UT US-VA US-VI US-VT US-WA US-WI US-WV +US-WY UY-AR UY-CA UY-CL UY-CO UY-DU UY-FD UY-FS UY-LA UY-MA UY-MO UY-PA UY-RN UY-RO UY-RV UY-SA +UY-SJ UY-SO UY-TA UY-TT UZ-AN UZ-BU UZ-FA UZ-JI UZ-NG UZ-NW UZ-QA UZ-QR UZ-SA UZ-SI UZ-SU UZ-TK +UZ-TO UZ-XO VC-01 VC-02 VC-03 VC-04 VC-05 VC-06 VE-A VE-B VE-C VE-D VE-E VE-F VE-G VE-H VE-I VE-J +VE-K VE-L VE-M VE-N VE-O VE-P VE-R VE-S VE-T VE-U VE-V VE-W VE-X VE-Y VE-Z VN-01 VN-02 VN-03 VN-04 +VN-05 VN-06 VN-07 VN-09 VN-13 VN-14 VN-15 VN-18 VN-20 VN-21 VN-22 VN-23 VN-24 VN-25 VN-26 VN-27 +VN-28 VN-29 VN-30 VN-31 VN-32 VN-33 VN-34 VN-35 VN-36 VN-37 VN-39 VN-40 VN-41 VN-43 VN-44 VN-45 +VN-46 VN-47 VN-49 VN-50 VN-51 VN-52 VN-53 VN-54 VN-55 VN-56 VN-57 VN-58 VN-59 VN-61 VN-63 VN-66 +VN-67 VN-68 VN-69 VN-70 VN-71 VN-72 VN-73 VN-CT VN-DN VN-HN VN-HP VN-SG VU-MAP VU-PAM VU-SAM VU-SEE +VU-TAE VU-TOB WF-SG WF-UV WS-AA WS-AL WS-AT WS-FA WS-GE WS-GI WS-PA WS-SA WS-TU WS-VF WS-VS YE-AB +YE-AD YE-AM YE-BA YE-DA YE-DH YE-HD YE-HJ YE-HU YE-IB YE-JA YE-LA YE-MA YE-MR YE-MU YE-MW YE-RA +YE-SA YE-SD YE-SH YE-SN YE-TA ZA-EC ZA-FS ZA-GP ZA-KZN ZA-LP ZA-MP ZA-NC ZA-NW ZA-WC ZA-ZN ZM-01 +ZM-02 ZM-03 ZM-04 ZM-05 ZM-06 ZM-07 ZM-08 ZM-09 ZM-10 ZW-BU ZW-HA ZW-MA ZW-MC ZW-ME ZW-MI ZW-MN +ZW-MS ZW-MV ZW-MW +` diff --git a/pkg/rules/string_locale_geo_test.go b/pkg/rules/string_locale_geo_test.go new file mode 100644 index 00000000..d1b483cd --- /dev/null +++ b/pkg/rules/string_locale_geo_test.go @@ -0,0 +1,1288 @@ +package rules + +// cspell:ignore biske mingo phonebk Qaaa rozaj USAA + +import ( + "crypto/sha256" + "encoding/hex" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/nobl9/govy/internal/assert" + "github.com/nobl9/govy/pkg/govy" +) + +type stringRuleCase struct { + name string + input string +} + +func TestLazyLookupMap(t *testing.T) { + calls := 0 + lazyMap := lazyLookupMap(func() map[string]struct{} { + calls++ + return map[string]struct{}{ + "test": {}, + } + }) + + assert.Equal(t, 0, calls) + + lookup := lazyMap() + _, ok := lookup["test"] + assert.True(t, ok) + assert.Equal(t, 1, calls) + + _ = lazyMap() + assert.Equal(t, 1, calls) +} + +func TestBuildISO31662Codes(t *testing.T) { + values := strings.Fields(iso31662CodesData + iso31662Codes2024_2AdditionsData) + assert.Equal(t, iso31662CodeCount, len(values)) + expected := make(map[string]struct{}, len(values)) + for _, value := range values { + expected[value] = struct{}{} + } + + actual := buildISO31662Codes() + assert.Equal(t, expected, actual) +} + +var validStringBCP47LanguageTagCases = []stringRuleCase{ + {name: "language", input: "en"}, + {name: "language and region", input: "en-US"}, + {name: "language script and region", input: "zh-Hant-TW"}, + {name: "deprecated language", input: "iw"}, + {name: "variant", input: "de-CH-1901"}, + {name: "multiple variants", input: "sl-rozaj-biske-1994"}, + {name: "Unicode extension", input: "en-US-u-ca-gregory"}, + {name: "multiple extensions", input: "en-t-ja-u-ca-gregory"}, + {name: "private use suffix", input: "de-CH-x-phonebk"}, + {name: "private use only", input: "x-whatever"}, + {name: "repeated private use subtag", input: "x-abcde-abcde"}, + {name: "grandfathered regular tag", input: "i-default"}, + {name: "grandfathered irregular tag", input: "en-GB-oed"}, + {name: "grandfathered tag with multiple subtags", input: "zh-min-nan"}, + {name: "redundant tag", input: "zh-cmn-Hans-CN"}, + {name: "private use language script and region", input: "qaa-Qaaa-QM-x-southern"}, + {name: "current language unknown to x/text", input: "cls-Latn-US"}, + {name: "case-insensitive current language unknown to x/text", input: "CLS-latn-us"}, +} + +var invalidStringBCP47LanguageTagCases = []stringRuleCase{ + {name: "underscore separator", input: "en_GB"}, + {name: "non-tag word", input: "English"}, + {name: "empty", input: ""}, + {name: "trailing separator", input: "en-"}, + {name: "leading whitespace", input: " en"}, + {name: "trailing whitespace", input: "en "}, + {name: "duplicate extension singleton", input: "en-a-bbb-a-ccc"}, + {name: "duplicate variant", input: "de-1901-1901"}, + {name: "extension without value", input: "en-a-foo-b"}, + {name: "extension without value on current language unknown to x/text", input: "cls-a"}, + {name: "Unicode hyphen", input: "en‐US"}, +} + +func TestStringBCP47LanguageTag(t *testing.T) { + rule := StringBCP47LanguageTag() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringBCP47LanguageTagCases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringBCP47LanguageTagCases) + err := rule.Validate(invalidStringBCP47LanguageTagCases[0].input) + assert.EqualError( + t, + err, + "string must be a valid BCP 47 language tag (e.g. 'en', 'en-US', 'zh-Hant-TW')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringBCP47LanguageTag)) + }) +} + +func BenchmarkStringBCP47LanguageTag(b *testing.B) { + benchmarkStringRuleCases( + b, + StringBCP47LanguageTag(), + validStringBCP47LanguageTagCases, + invalidStringBCP47LanguageTagCases, + ) +} + +var validStringBCP47StrictLanguageTagCases = []stringRuleCase{ + {name: "language", input: "en"}, + {name: "language and region", input: "en-US"}, + {name: "language script and region", input: "zh-Hant-TW"}, + {name: "variant", input: "de-CH-1901"}, + {name: "multiple variants", input: "sl-rozaj-biske-1994"}, + {name: "Unicode extension", input: "en-US-u-ca-gregory"}, + {name: "multiple extensions", input: "en-t-ja-u-ca-gregory"}, + {name: "private use suffix", input: "de-CH-x-phonebk"}, + {name: "private use only", input: "x-whatever"}, + {name: "repeated private use subtag", input: "x-abcde-abcde"}, + {name: "extended language with script and region", input: "cmn-Hans-CN"}, + {name: "private use language script and region", input: "qaa-Qaaa-QM-x-southern"}, + {name: "registered suppress script for English", input: "en-Latn"}, + {name: "registered suppress script for Bosnian", input: "bs-Latn"}, + {name: "grandfathered Celtic Gaulish", input: "cel-gaulish"}, + {name: "grandfathered default language", input: "i-default"}, + {name: "grandfathered Enochian", input: "i-enochian"}, + {name: "grandfathered Mingo", input: "i-mingo"}, + {name: "grandfathered Min Chinese", input: "zh-min"}, +} + +var invalidStringBCP47StrictLanguageTagCases = []stringRuleCase{ + {name: "deprecated language", input: "iw"}, + {name: "non-canonical case", input: "EN-us"}, + {name: "underscore separator", input: "en_GB"}, + {name: "non-tag word", input: "English"}, + {name: "empty", input: ""}, + {name: "deprecated grandfathered tag", input: "en-GB-oed"}, + {name: "deprecated grandfathered tag with multiple subtags", input: "zh-min-nan"}, + {name: "redundant extended language", input: "zh-cmn-Hans-CN"}, + {name: "extension subtag too short", input: "tlh-a-b-foo"}, + {name: "duplicate extension singleton", input: "en-a-bbb-a-ccc"}, + {name: "duplicate variant", input: "de-1901-1901"}, + {name: "non-canonical extension order", input: "en-b-foo-a-bar"}, + {name: "non-canonical extension order on current language unknown to x/text", input: "cls-b-foo-a-bar"}, + {name: "extension without value", input: "en-a-foo-b"}, + {name: "extension without value on current language unknown to x/text", input: "cls-a"}, + {name: "non-canonical case on current language unknown to x/text", input: "CLS-Latn-US"}, + {name: "trailing separator", input: "en-"}, + {name: "leading whitespace", input: " en"}, + {name: "trailing whitespace", input: "en "}, + {name: "Unicode hyphen", input: "en‐US"}, +} + +func TestStringBCP47StrictLanguageTag(t *testing.T) { + rule := StringBCP47StrictLanguageTag() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringBCP47StrictLanguageTagCases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringBCP47StrictLanguageTagCases) + err := rule.Validate(invalidStringBCP47StrictLanguageTagCases[0].input) + assert.EqualError( + t, + err, + "string must be a valid canonical BCP 47 language tag (e.g. 'en', 'en-US', 'zh-Hant-TW')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringBCP47StrictLanguageTag)) + }) +} + +func BenchmarkStringBCP47StrictLanguageTag(b *testing.B) { + benchmarkStringRuleCases( + b, + StringBCP47StrictLanguageTag(), + validStringBCP47StrictLanguageTagCases, + invalidStringBCP47StrictLanguageTagCases, + ) +} + +// The fixture contains every independently complete language-tag input in the +// IANA Language Subtag Registry dated 2026-06-14: +// https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry +// The source SHA-256 is be1fad86a99e3a932d07b80c9b3c271ec2381a5909ce22420144e5077ab0a43a. +// The normalized fixture SHA-256 is +// 939fc7568793edaa505b8f2fc62d17c6de8a9955e46b096d4778b5349084786a. +// It has 8,275 literal language subtags, all 520 expansions of qaa..qtz, +// 26 grandfathered Tags, and 67 redundant Tags: 8,888 unique inputs total. +// RFC 5646 section 4.5 makes 8,732 canonical and rejects the 156 records +// with a Preferred-Value. The 258 extlang records duplicate language inputs. +// The 225 script, 305 region, and 139 variant records are excluded because +// none is independently a complete language tag. +func TestStringBCP47IANACompleteInputCorpus(t *testing.T) { + records := loadIANACompleteInputCorpus(t) + languageTagRule := StringBCP47LanguageTag() + strictLanguageTagRule := StringBCP47StrictLanguageTag() + + for line, record := range records { + if err := languageTagRule.Validate(record.input); err != nil { + t.Errorf("IANA fixture line %d: non-strict rule rejected %q: %v", line+1, record.input, err) + } + + err := strictLanguageTagRule.Validate(record.input) + switch record.strictOutcome { + case "accept": + if err != nil { + t.Errorf("IANA fixture line %d: strict rule rejected %q: %v", line+1, record.input, err) + } + case "reject": + if err == nil { + t.Errorf("IANA fixture line %d: strict rule accepted non-canonical %q", line+1, record.input) + } else if !govy.HasErrorCode(err, ErrorCodeStringBCP47StrictLanguageTag) { + t.Errorf("IANA fixture line %d: strict error for %q lacks code %q: %v", + line+1, record.input, ErrorCodeStringBCP47StrictLanguageTag, err) + } + default: + t.Fatalf("IANA fixture line %d: unknown strict outcome %q", line+1, record.strictOutcome) + } + } +} + +func TestStringBCP47CurrentIANAParserOverrides(t *testing.T) { + bases := []string{ + "bih", "cls", "dyl", "hnm", "isv", "lfb", "luh", "oak", "olb", + "osd", "rrm", "scz", "sjc", "tvg", "vsn", "ynb", "zhk", + } + suffixes := []string{"", "-Latn-US", "-u-ca-gregory", "-a-foo-b-bar"} + languageTagRule := StringBCP47LanguageTag() + strictLanguageTagRule := StringBCP47StrictLanguageTag() + + for _, base := range bases { + for _, suffix := range suffixes { + input := base + suffix + t.Run(input, func(t *testing.T) { + assert.NoError(t, languageTagRule.Validate(input)) + assert.NoError(t, strictLanguageTagRule.Validate(input)) + }) + } + } +} + +func TestStringBCP47IANAPreferredValues(t *testing.T) { + records := loadIANACompleteInputCorpus(t) + languageTagRule := StringBCP47LanguageTag() + strictLanguageTagRule := StringBCP47StrictLanguageTag() + languageCompositeCount := 0 + wholeTagCount := 0 + redundantSignTagCount := 0 + + for _, record := range records { + if record.preferredValue == "" { + continue + } + switch record.sourceKind { + case "language": + input := record.input + "-US" + if err := languageTagRule.Validate(input); err != nil { + t.Errorf("non-strict rule rejected Preferred-Value language composite %q: %v", input, err) + } + if err := strictLanguageTagRule.Validate(input); err == nil { + t.Errorf("strict rule accepted Preferred-Value language composite %q", input) + } + languageCompositeCount++ + case "grandfathered", "redundant": + if err := languageTagRule.Validate(record.input); err != nil { + t.Errorf("non-strict rule rejected Preferred-Value Tag %q: %v", record.input, err) + } + if err := strictLanguageTagRule.Validate(record.input); err == nil { + t.Errorf("strict rule accepted Preferred-Value Tag %q", record.input) + } + wholeTagCount++ + if record.sourceKind == "redundant" && strings.HasPrefix(record.input, "sgn-") { + redundantSignTagCount++ + } + default: + t.Fatalf("unexpected source kind %q", record.sourceKind) + } + } + + assert.Equal(t, 110, languageCompositeCount) + assert.Equal(t, 46, wholeTagCount) + assert.Equal(t, 19, redundantSignTagCount) +} + +func TestStringBCP47IANAPreferredSignTagExtensions(t *testing.T) { + records := loadIANACompleteInputCorpus(t) + languageTagRule := StringBCP47LanguageTag() + strictLanguageTagRule := StringBCP47StrictLanguageTag() + suffixes := []string{"-x-foo", "-a-foo"} + baseCount := 0 + inputCount := 0 + + for _, record := range records { + if record.sourceKind != "redundant" || record.preferredValue == "" || + !strings.HasPrefix(record.input, "sgn-") { + continue + } + baseCount++ + for _, suffix := range suffixes { + input := record.input + suffix + inputCount++ + t.Run(input, func(t *testing.T) { + assert.NoError(t, languageTagRule.Validate(input)) + err := strictLanguageTagRule.Validate(input) + if err == nil { + t.Errorf("strict rule accepted Preferred-Value Tag extension %q", input) + return + } + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringBCP47StrictLanguageTag)) + }) + } + } + + assert.Equal(t, 19, baseCount) + assert.Equal(t, 38, inputCount) +} + +var validStringISO3166Alpha2Cases = []stringRuleCase{ + {name: "AD AND 020", input: "AD"}, + {name: "AX ALA 248", input: "AX"}, + {name: "BQ BES 535", input: "BQ"}, + {name: "CW CUW 531", input: "CW"}, + {name: "SS SSD 728", input: "SS"}, + {name: "UM UMI 581", input: "UM"}, + {name: "US USA 840", input: "US"}, + {name: "PL POL 616", input: "PL"}, + {name: "JP JPN 392", input: "JP"}, + {name: "TW TWN 158", input: "TW"}, + {name: "ZW ZWE 716", input: "ZW"}, +} + +var invalidStringISO3166Alpha2Cases = []stringRuleCase{ + {name: "numeric code", input: "001"}, + {name: "lowercase", input: "us"}, + {name: "unassigned", input: "ZZ"}, + {name: "exceptionally reserved", input: "UK"}, + {name: "deleted Soviet Union code", input: "SU"}, + {name: "deleted Netherlands Antilles code", input: "AN"}, + {name: "user-assigned Kosovo code", input: "XK"}, + {name: "exceptionally reserved territory", input: "AC"}, + {name: "too short", input: "U"}, + {name: "too long", input: "USA"}, + {name: "non-letter", input: "U1"}, + {name: "leading whitespace", input: " US"}, + {name: "trailing whitespace", input: "US "}, + {name: "full-width letters", input: "US"}, +} + +func TestStringISO3166Alpha2(t *testing.T) { + rule := StringISO3166Alpha2() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringISO3166Alpha2Cases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringISO3166Alpha2Cases) + err := rule.Validate(invalidStringISO3166Alpha2Cases[0].input) + assert.EqualError( + t, + err, + "string must be a valid ISO 3166-1 alpha-2 country code (e.g. 'US', 'PL', 'JP')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringISO3166Alpha2)) + }) +} + +func BenchmarkStringISO3166Alpha2(b *testing.B) { + benchmarkStringRuleCases( + b, + StringISO3166Alpha2(), + validStringISO3166Alpha2Cases, + invalidStringISO3166Alpha2Cases, + ) +} + +var validStringISO3166Alpha3Cases = []stringRuleCase{ + {name: "AD AND 020", input: "AND"}, + {name: "AX ALA 248", input: "ALA"}, + {name: "BQ BES 535", input: "BES"}, + {name: "CW CUW 531", input: "CUW"}, + {name: "SS SSD 728", input: "SSD"}, + {name: "UM UMI 581", input: "UMI"}, + {name: "US USA 840", input: "USA"}, + {name: "PL POL 616", input: "POL"}, + {name: "JP JPN 392", input: "JPN"}, + {name: "TW TWN 158", input: "TWN"}, + {name: "ZW ZWE 716", input: "ZWE"}, +} + +var invalidStringISO3166Alpha3Cases = []stringRuleCase{ + {name: "numeric code", input: "001"}, + {name: "lowercase", input: "usa"}, + {name: "unassigned", input: "ZZZ"}, + {name: "deleted Soviet Union code", input: "SUN"}, + {name: "deleted Netherlands Antilles code", input: "ANT"}, + {name: "deleted East Germany code", input: "DDR"}, + {name: "user-assigned Kosovo code", input: "XKK"}, + {name: "exceptionally reserved territory", input: "ASC"}, + {name: "too short", input: "US"}, + {name: "too long", input: "USAA"}, + {name: "non-letter", input: "US1"}, + {name: "leading whitespace", input: " USA"}, + {name: "trailing whitespace", input: "USA "}, + {name: "full-width letters", input: "USA"}, +} + +func TestStringISO3166Alpha3(t *testing.T) { + rule := StringISO3166Alpha3() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringISO3166Alpha3Cases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringISO3166Alpha3Cases) + err := rule.Validate(invalidStringISO3166Alpha3Cases[0].input) + assert.EqualError( + t, + err, + "string must be a valid ISO 3166-1 alpha-3 country code (e.g. 'USA', 'POL', 'JPN')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringISO3166Alpha3)) + }) +} + +func BenchmarkStringISO3166Alpha3(b *testing.B) { + benchmarkStringRuleCases( + b, + StringISO3166Alpha3(), + validStringISO3166Alpha3Cases, + invalidStringISO3166Alpha3Cases, + ) +} + +var validStringISO3166NumericCases = []stringRuleCase{ + {name: "AD AND 020", input: "020"}, + {name: "AX ALA 248", input: "248"}, + {name: "BQ BES 535", input: "535"}, + {name: "CW CUW 531", input: "531"}, + {name: "SS SSD 728", input: "728"}, + {name: "UM UMI 581", input: "581"}, + {name: "US USA 840", input: "840"}, + {name: "PL POL 616", input: "616"}, + {name: "JP JPN 392", input: "392"}, + {name: "TW TWN 158", input: "158"}, + {name: "ZW ZWE 716", input: "716"}, +} + +var invalidStringISO3166NumericCases = []stringRuleCase{ + {name: "world aggregate", input: "001"}, + {name: "too short", input: "84"}, + {name: "too long", input: "0840"}, + {name: "alphabetic", input: "USA"}, + {name: "non-digit", input: "84O"}, + {name: "deleted Soviet Union code", input: "810"}, + {name: "deleted Netherlands Antilles code", input: "530"}, + {name: "deleted East Germany code", input: "278"}, + {name: "user-assigned Kosovo code", input: "983"}, + {name: "leading whitespace", input: " 840"}, + {name: "trailing whitespace", input: "840 "}, + {name: "full-width digits", input: "840"}, +} + +func TestStringISO3166Numeric(t *testing.T) { + rule := StringISO3166Numeric() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringISO3166NumericCases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringISO3166NumericCases) + err := rule.Validate(invalidStringISO3166NumericCases[0].input) + assert.EqualError( + t, + err, + "string must be a valid ISO 3166-1 numeric-3 country code (e.g. '840', '616', '392')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringISO3166Numeric)) + }) +} + +func BenchmarkStringISO3166Numeric(b *testing.B) { + benchmarkStringRuleCases( + b, + StringISO3166Numeric(), + validStringISO3166NumericCases, + invalidStringISO3166NumericCases, + ) +} + +// The fixture contains all 249 current ISO 3166-1 alpha-2, alpha-3, and +// numeric triplets. It normalizes the 248 triplets in the English table at +// https://unstats.un.org/unsd/methodology/m49/overview/ (source SHA-256 +// 748f6ff7380c8a50ea9448f068b79e3a1ee31be63207249e8cc89bf1eb969d11) +// and adds TW/TWN/158 from https://www.iso.org/obp/ui/#iso:code:3166:TW. +// The normalized fixture SHA-256 is +// d7679f496d423a8071e22852dddcc2e261c0ba12da94a7418ad95582e701e033. +// UNSD aggregate and geographic-group rows are excluded because they have no +// ISO alpha code elements; localized duplicate tables are also excluded. +func TestStringISO31661CurrentCodeCorpus(t *testing.T) { + triplets := loadISO31661Triplets(t) + alpha2Rule := StringISO3166Alpha2() + alpha3Rule := StringISO3166Alpha3() + numericRule := StringISO3166Numeric() + + for line, triplet := range triplets { + if err := alpha2Rule.Validate(triplet.alpha2); err != nil { + t.Fatalf("ISO 3166-1 fixture line %d: alpha-2 %q rejected: %v", line+1, triplet.alpha2, err) + } + if err := alpha3Rule.Validate(triplet.alpha3); err != nil { + t.Fatalf("ISO 3166-1 fixture line %d: alpha-3 %q rejected: %v", line+1, triplet.alpha3, err) + } + if err := numericRule.Validate(triplet.numeric); err != nil { + t.Fatalf("ISO 3166-1 fixture line %d: numeric %q rejected: %v", line+1, triplet.numeric, err) + } + } +} + +var validStringISO31662Cases = []stringRuleCase{ + {name: "US state", input: "US-CA"}, + {name: "UK country", input: "GB-ENG"}, + {name: "Polish region", input: "PL-14"}, + {name: "two-digit subdivision", input: "AD-02"}, + {name: "mixed subdivision", input: "CZ-20A"}, + {name: "three-digit subdivision", input: "PW-002"}, + {name: "one-letter subdivision", input: "BD-H"}, + {name: "two-letter subdivision", input: "ID-PD"}, + {name: "Indian subdivision", input: "IN-LA"}, + {name: "Korean subdivision", input: "KR-50"}, + {name: "letter and digit subdivision", input: "NP-P7"}, + {name: "Metropole de Lyon", input: "FR-69M"}, +} + +var invalidStringISO31662Cases = []stringRuleCase{ + {name: "unknown US subdivision", input: "US-XXX"}, + {name: "unknown French subdivision", input: "FR-999"}, + {name: "unknown country", input: "ZZ-CA"}, + {name: "lowercase country", input: "us-CA"}, + {name: "lowercase subdivision", input: "US-ca"}, + {name: "lowercase and oversized subdivision", input: "US-cal"}, + {name: "underscore separator", input: "US_CA"}, + {name: "whitespace before separator", input: "US -CA"}, + {name: "trailing whitespace", input: "US-CA "}, + {name: "country code too long", input: "USA-CA"}, + {name: "subdivision code too long", input: "US-0000"}, + {name: "exceptionally reserved country", input: "UK-ENG"}, + {name: "deleted Soviet Union country", input: "SU-MOW"}, + {name: "deleted Netherlands Antilles country", input: "AN-CW"}, + {name: "user-assigned Kosovo country", input: "XK-01"}, + {name: "exceptionally reserved territory", input: "AC-SH"}, +} + +func TestStringISO31662(t *testing.T) { + rule := StringISO31662() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringISO31662Cases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringISO31662Cases) + err := rule.Validate(invalidStringISO31662Cases[0].input) + assert.EqualError( + t, + err, + "string must be a valid ISO 3166-2 country subdivision code (e.g. 'US-CA', 'GB-ENG', 'PL-14')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringISO31662)) + }) +} + +func BenchmarkStringISO31662(b *testing.B) { + benchmarkStringRuleCases( + b, + StringISO31662(), + validStringISO31662Cases, + invalidStringISO31662Cases, + ) +} + +func BenchmarkBuildISO31662Codes(b *testing.B) { + for b.Loop() { + _ = buildISO31662Codes() + } +} + +// The fixture projects the country and subdivision fields from every record +// in UNECE's ISO 3166-2-derived UN/LOCODE 2024-2 SubdivisionCodes.csv at tag +// commit 03032eb5f0eed1db15dc5255f7dcc0942d7b6238: +// https://opensource.unicc.org/un/unece/uncefact/vocab-locode/-/raw/03032eb5f0eed1db15dc5255f7dcc0942d7b6238/iso-3166/SubdivisionCodes.csv +// The source SHA-256 is b6fcf7c4a554598db32a372fd935a6e12291490ca76a8a0dd712ad849ff7cac6; +// the normalized fixture SHA-256 is +// 020b4ad2c330f2d9cd7e42bd53e84e6b9546ce5462475e6fc348fcd1c73620b9. +// All 4,676 source records are preserved, including the duplicate identifiers +// IN-JK, MA-CHT, MA-KES, and MK-205; there are 4,672 distinct identifiers. +// Names and subdivision types are excluded because this rule accepts only the +// complete country-subdivision identifier. +func TestStringISO31662UNECE2024_2Corpus(t *testing.T) { + rule := StringISO31662() + for line, code := range loadISO31662Codes(t) { + if err := rule.Validate(code); err != nil { + t.Fatalf("UNECE ISO 3166-2 fixture line %d: code %q rejected: %v", line+1, code, err) + } + } +} + +var validStringISO4217Cases = []stringRuleCase{ + {name: "US dollar", input: "USD"}, + {name: "euro", input: "EUR"}, + {name: "Japanese yen", input: "JPY"}, + {name: "Bolivian settlement fund", input: "BOV"}, + {name: "Chilean unit of account", input: "CLF"}, + {name: "Colombian real value unit", input: "COU"}, + {name: "Mexican investment unit", input: "MXV"}, + {name: "WIR euro", input: "CHE"}, + {name: "WIR franc", input: "CHW"}, + {name: "US dollar next day", input: "USN"}, + {name: "Uruguay peso indexed unit", input: "UYI"}, + {name: "gold", input: "XAU"}, + {name: "silver", input: "XAG"}, + {name: "palladium", input: "XPD"}, + {name: "platinum", input: "XPT"}, + {name: "testing code", input: "XTS"}, + {name: "no currency", input: "XXX"}, + {name: "Mauritanian ouguiya", input: "MRU"}, + {name: "Sierra Leonean leone", input: "SLE"}, + {name: "Salvadoran colon", input: "SVC"}, + {name: "Uruguay nominal wage index unit", input: "UYW"}, + {name: "Venezuelan digital bolivar", input: "VED"}, + {name: "Venezuelan bolivar", input: "VES"}, + {name: "Arab accounting dinar", input: "XAD"}, + {name: "Caribbean guilder", input: "XCG"}, + {name: "Zimbabwe gold", input: "ZWG"}, +} + +var invalidStringISO4217Cases = []stringRuleCase{ + {name: "lowercase", input: "usd"}, + {name: "unassigned", input: "ZZZ"}, + {name: "too short", input: "US"}, + {name: "too long", input: "USDD"}, + {name: "non-letter", input: "US1"}, + {name: "withdrawn Andorran peseta", input: "ADP"}, + {name: "withdrawn Estonian kroon", input: "EEK"}, + {name: "withdrawn Zimbabwe dollar", input: "ZWD"}, + {name: "withdrawn Russian ruble", input: "RUR"}, + {name: "withdrawn Belarusian ruble", input: "BYR"}, + {name: "withdrawn Netherlands Antillean guilder", input: "ANG"}, + {name: "withdrawn Bulgarian lev", input: "BGN"}, + {name: "unassigned offshore renminbi", input: "CNH"}, + {name: "withdrawn Cuban convertible peso", input: "CUC"}, + {name: "withdrawn Croatian kuna", input: "HRK"}, + {name: "withdrawn Mauritanian ouguiya", input: "MRO"}, + {name: "withdrawn Sierra Leonean leone", input: "SLL"}, + {name: "withdrawn Venezuelan bolivar", input: "VEF"}, + {name: "leading whitespace", input: " USD"}, + {name: "trailing whitespace", input: "USD "}, + {name: "full-width letters", input: "USD"}, +} + +func TestStringISO4217(t *testing.T) { + rule := StringISO4217() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringISO4217Cases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringISO4217Cases) + err := rule.Validate(invalidStringISO4217Cases[0].input) + assert.EqualError( + t, + err, + "string must be a valid ISO 4217 three-letter alphabetic currency code (e.g. 'USD', 'EUR', 'JPY')", + ) + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringISO4217)) + }) +} + +func BenchmarkStringISO4217(b *testing.B) { + benchmarkStringRuleCases( + b, + StringISO4217(), + validStringISO4217Cases, + invalidStringISO4217Cases, + ) +} + +// The fixture contains every distinct populated Ccy value from SIX ISO 4217 +// List One published 2026-01-01: +// https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml +// The XML source SHA-256 is +// 838dfb991648cf36df939edd5fe3811737962b75a32252847d239cedd1e291c9; +// the 178-code fixture SHA-256 is +// 6bd74ecf83510ca425c07b1cef1117f9f5a7d76c3e5079365feb841ababa3466. +// Repeated country uses of a currency are collapsed because this rule validates +// the code element. Names, numeric codes, and minor units are excluded. +func TestStringISO4217SIXListOneCorpus(t *testing.T) { + rule := StringISO4217() + for line, code := range loadISO4217Codes(t) { + if err := rule.Validate(code); err != nil { + t.Fatalf("SIX ISO 4217 fixture line %d: code %q rejected: %v", line+1, code, err) + } + } +} + +var validStringLatitudeCases = []stringRuleCase{ + {name: "south boundary", input: "-90"}, + {name: "north boundary", input: "90"}, + {name: "southern interior", input: "-89.999999"}, + {name: "northern interior", input: "89.999999"}, + {name: "equator", input: "0"}, + {name: "negative zero", input: "-0"}, + {name: "decimal degrees", input: "12.345678"}, + {name: "high-precision north boundary", input: "90.0000000000000000000"}, + {name: "high-precision south boundary", input: "-90.0000000000000000000"}, + {name: "high-precision northern interior", input: "89.9999999999999999999"}, + {name: "high-precision southern interior", input: "-89.9999999999999999999"}, +} + +var invalidStringLatitudeCases = []stringRuleCase{ + {name: "above north boundary", input: "90.1"}, + {name: "below south boundary", input: "-90.1"}, + {name: "high-precision above north boundary", input: "90.0000000000000000001"}, + {name: "high-precision below south boundary", input: "-90.0000000000000000001"}, + {name: "cardinal direction", input: "north"}, + {name: "exponent notation", input: "1e1"}, + {name: "not a number", input: "NaN"}, + {name: "positive infinity", input: "+Inf"}, + {name: "negative infinity", input: "-Inf"}, + {name: "leading whitespace", input: " 45"}, + {name: "trailing whitespace", input: "45 "}, + {name: "decimal comma", input: "45,5"}, + {name: "full-width digits", input: "45"}, + {name: "empty", input: ""}, +} + +func TestStringLatitude(t *testing.T) { + rule := StringLatitude() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringLatitudeCases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringLatitudeCases) + err := rule.Validate(invalidStringLatitudeCases[0].input) + assert.EqualError(t, err, "string must be a valid latitude coordinate (e.g. '0', '-45.25', '90')") + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringLatitude)) + }) +} + +func BenchmarkStringLatitude(b *testing.B) { + benchmarkStringRuleCases( + b, + StringLatitude(), + validStringLatitudeCases, + invalidStringLatitudeCases, + ) +} + +var validStringLongitudeCases = []stringRuleCase{ + {name: "west boundary", input: "-180"}, + {name: "east boundary", input: "180"}, + {name: "western interior", input: "-179.999999"}, + {name: "eastern interior", input: "179.999999"}, + {name: "prime meridian", input: "0"}, + {name: "negative zero", input: "-0"}, + {name: "decimal degrees", input: "122.4194"}, + {name: "high-precision east boundary", input: "180.0000000000000000000"}, + {name: "high-precision west boundary", input: "-180.0000000000000000000"}, + {name: "high-precision eastern interior", input: "179.9999999999999999999"}, + {name: "high-precision western interior", input: "-179.9999999999999999999"}, +} + +var invalidStringLongitudeCases = []stringRuleCase{ + {name: "past east boundary", input: "180.1"}, + {name: "past west boundary", input: "-180.1"}, + {name: "high-precision past east boundary", input: "180.0000000000000000001"}, + {name: "high-precision past west boundary", input: "-180.0000000000000000001"}, + {name: "cardinal direction", input: "east"}, + {name: "exponent notation", input: "1e2"}, + {name: "not a number", input: "NaN"}, + {name: "positive infinity", input: "+Inf"}, + {name: "negative infinity", input: "-Inf"}, + {name: "leading whitespace", input: " 45"}, + {name: "trailing whitespace", input: "45 "}, + {name: "decimal comma", input: "45,5"}, + {name: "full-width digits", input: "45"}, + {name: "empty", input: ""}, +} + +func TestStringLongitude(t *testing.T) { + rule := StringLongitude() + t.Run("valid inputs", func(t *testing.T) { + testStringRuleAccepts(t, rule, validStringLongitudeCases) + }) + t.Run("invalid inputs", func(t *testing.T) { + testStringRuleRejects(t, rule, invalidStringLongitudeCases) + err := rule.Validate(invalidStringLongitudeCases[0].input) + assert.EqualError(t, err, "string must be a valid longitude coordinate (e.g. '0', '-122.4194', '180')") + assert.True(t, govy.HasErrorCode(err, ErrorCodeStringLongitude)) + }) +} + +func BenchmarkStringLongitude(b *testing.B) { + benchmarkStringRuleCases( + b, + StringLongitude(), + validStringLongitudeCases, + invalidStringLongitudeCases, + ) +} + +func Test_isCoordinate(t *testing.T) { + tests := map[string]struct { + input string + maxMagnitude string + expected bool + }{ + "positive sign": {input: "+45", maxMagnitude: "90", expected: true}, + "positive zero": {input: "+0", maxMagnitude: "90", expected: true}, + "leading decimal point": {input: ".5", maxMagnitude: "90", expected: true}, + "signed leading decimal point": {input: "-.5", maxMagnitude: "90", expected: true}, + "leading zero boundary": {input: "00090.000", maxMagnitude: "90", expected: true}, + "sign without digits": {input: "-", maxMagnitude: "90", expected: false}, + "too many significant digits": {input: "900", maxMagnitude: "90", expected: false}, + "non-digit in fractional part": {input: "45.5a", maxMagnitude: "90", expected: false}, + "missing fractional digits": {input: "45.", maxMagnitude: "90", expected: false}, + "decimal point without digits": {input: ".", maxMagnitude: "90", expected: false}, + "multiple decimal points": {input: "1.2.3", maxMagnitude: "90", expected: false}, + "non-decimal character after sign": {input: "+x", maxMagnitude: "90", expected: false}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + assert.Equal(t, test.expected, isCoordinate(test.input, test.maxMagnitude)) + }) + } +} + +// These tables contain every distinct latitude and longitude scalar literal +// used by RFC 5870's geo URI examples and invalid-location example: +// https://www.rfc-editor.org/rfc/rfc5870.txt +// The source SHA-256 is a3bf93084c422508bbf64976e9adee1eae88d688a2e7f7fc3a531aa44ceb3bb1. +// Formatting variants such as 22.300/22.3, -118.44/-118.4400, and 66/66.0 +// remain distinct. Repeated literals, altitude, uncertainty, parameters, and +// template placeholders are excluded. Latitude 94 is the RFC's invalid value. +func TestStringCoordinatesRFC5870ScalarCorpus(t *testing.T) { + type coordinateCase struct { + input string + valid bool + } + tests := map[string]struct { + rule govy.Rule[string] + cases []coordinateCase + }{ + "latitude": { + rule: StringLatitude(), + cases: []coordinateCase{ + {input: "13.4125", valid: true}, + {input: "48.2010", valid: true}, + {input: "48.198634", valid: true}, + {input: "90", valid: true}, + {input: "22.300", valid: true}, + {input: "22.3", valid: true}, + {input: "66", valid: true}, + {input: "66.0", valid: true}, + {input: "70", valid: true}, + {input: "47", valid: true}, + {input: "22", valid: true}, + {input: "94", valid: false}, + }, + }, + "longitude": { + rule: StringLongitude(), + cases: []coordinateCase{ + {input: "103.8667", valid: true}, + {input: "16.3695", valid: true}, + {input: "16.371648", valid: true}, + {input: "-22.43", valid: true}, + {input: "46", valid: true}, + {input: "-118.44", valid: true}, + {input: "-118.4400", valid: true}, + {input: "30", valid: true}, + {input: "20", valid: true}, + {input: "11", valid: true}, + {input: "0", valid: true}, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + for _, testCase := range test.cases { + t.Run(testCase.input, func(t *testing.T) { + err := test.rule.Validate(testCase.input) + if testCase.valid { + assert.NoError(t, err) + } else { + assert.Error(t, err) + } + }) + } + }) + } +} + +type ianaCompleteInputRecord struct { + sourceKind string + input string + preferredValue string + strictOutcome string + strictReason string +} + +type iso31661Triplet struct { + alpha2 string + alpha3 string + numeric string +} + +func loadISO31661Triplets(t *testing.T) []iso31661Triplet { + t.Helper() + + const fixture = "iso_3166_1_triplets_2026-07-21.txt" + path, lines := loadFixtureLines( + t, + fixture, + 249, + "d7679f496d423a8071e22852dddcc2e261c0ba12da94a7418ad95582e701e033", + ) + + triplets := make([]iso31661Triplet, 0, len(lines)) + seenAlpha2 := make(map[string]int, len(lines)) + seenAlpha3 := make(map[string]int, len(lines)) + seenNumeric := make(map[string]int, len(lines)) + hasTaiwan := false + for line, value := range lines { + fields := strings.Split(value, ",") + if len(fields) != 3 { + t.Fatalf("%s:%d: got %d fields; want 3", path, line+1, len(fields)) + } + triplet := iso31661Triplet{alpha2: fields[0], alpha3: fields[1], numeric: fields[2]} + if !isASCIIUpperTestValue(triplet.alpha2, 2) { + t.Fatalf("%s:%d: invalid alpha-2 field %q", path, line+1, triplet.alpha2) + } + if !isASCIIUpperTestValue(triplet.alpha3, 3) { + t.Fatalf("%s:%d: invalid alpha-3 field %q", path, line+1, triplet.alpha3) + } + if !isASCIIDigitTestValue(triplet.numeric, 3) { + t.Fatalf("%s:%d: invalid numeric field %q", path, line+1, triplet.numeric) + } + checkUniqueFixtureValue(t, path, line+1, "alpha-2", triplet.alpha2, seenAlpha2) + checkUniqueFixtureValue(t, path, line+1, "alpha-3", triplet.alpha3, seenAlpha3) + checkUniqueFixtureValue(t, path, line+1, "numeric", triplet.numeric, seenNumeric) + if triplet == (iso31661Triplet{alpha2: "TW", alpha3: "TWN", numeric: "158"}) { + hasTaiwan = true + } + triplets = append(triplets, triplet) + } + if !hasTaiwan { + t.Fatalf("%s must contain TW,TWN,158", path) + } + return triplets +} + +func loadISO4217Codes(t *testing.T) []string { + t.Helper() + + const fixture = "six_iso4217_list_one_2026-01-01.txt" + path, codes := loadFixtureLines( + t, + fixture, + 178, + "6bd74ecf83510ca425c07b1cef1117f9f5a7d76c3e5079365feb841ababa3466", + ) + seen := make(map[string]int, len(codes)) + for line, code := range codes { + if !isASCIIUpperTestValue(code, 3) { + t.Fatalf("%s:%d: invalid currency code %q", path, line+1, code) + } + checkUniqueFixtureValue(t, path, line+1, "currency code", code, seen) + } + return codes +} + +func loadISO31662Codes(t *testing.T) []string { + t.Helper() + + const fixture = "unece_iso3166_2_2024-2.txt" + path, codes := loadFixtureLines( + t, + fixture, + 4676, + "020b4ad2c330f2d9cd7e42bd53e84e6b9546ce5462475e6fc348fcd1c73620b9", + ) + + counts := make(map[string]int, 4672) + for line, code := range codes { + country, subdivision, ok := strings.Cut(code, "-") + if !ok || !isASCIIUpperTestValue(country, 2) || !isASCIIUpperDigitTestValue(subdivision, 1, 3) { + t.Fatalf("%s:%d: invalid subdivision identifier %q", path, line+1, code) + } + counts[code]++ + } + if len(counts) != 4672 { + t.Fatalf("%s contains %d distinct identifiers; want 4672", path, len(counts)) + } + + expectedDuplicates := map[string]struct{}{ + "IN-JK": {}, + "MA-CHT": {}, + "MA-KES": {}, + "MK-205": {}, + } + for code, count := range counts { + _, expectedDuplicate := expectedDuplicates[code] + switch { + case count == 1 && !expectedDuplicate: + case count == 2 && expectedDuplicate: + delete(expectedDuplicates, code) + default: + t.Fatalf("%s: identifier %q occurs %d times", path, code, count) + } + } + if len(expectedDuplicates) != 0 { + t.Fatalf("%s is missing expected duplicate identifiers: %v", path, expectedDuplicates) + } + if counts["FR-69M"] != 1 { + t.Fatalf("%s must contain FR-69M exactly once", path) + } + return codes +} + +func loadIANACompleteInputCorpus(t *testing.T) []ianaCompleteInputRecord { + t.Helper() + + const fixture = "iana_bcp47_complete_inputs_2026-06-14.txt" + path, lines := loadFixtureLines( + t, + fixture, + 8888, + "939fc7568793edaa505b8f2fc62d17c6de8a9955e46b096d4778b5349084786a", + ) + + records := make([]ianaCompleteInputRecord, 0, len(lines)) + seenInputs := make(map[string]int, len(lines)) + rangeInputs := make(map[string]struct{}, 520) + kindCounts := make(map[string]int, 4) + languageOutcomeCounts := make(map[string]int, 2) + tagOutcomeCounts := make(map[string]int, 2) + reasonCounts := make(map[string]int, 1) + for line, value := range lines { + record := parseIANACompleteInputRecord(t, path, line+1, value) + if record.sourceKind == "language-range" { + rangeInputs[record.input] = struct{}{} + } + + if firstLine, ok := seenInputs[record.input]; ok { + t.Fatalf("%s:%d: duplicate input %q first seen on line %d", path, line+1, record.input, firstLine) + } + seenInputs[record.input] = line + 1 + + kindCounts[record.sourceKind]++ + if record.sourceKind == "language" || record.sourceKind == "language-range" { + languageOutcomeCounts[record.strictOutcome]++ + } else { + tagOutcomeCounts[record.strictOutcome]++ + } + reasonCounts[record.strictReason]++ + records = append(records, record) + } + + if kindCounts["language"] != 8275 || kindCounts["language-range"] != 520 || + kindCounts["grandfathered"] != 26 || kindCounts["redundant"] != 67 { + t.Fatalf("%s: source-kind counts are language=%d language-range=%d grandfathered=%d redundant=%d", + path, + kindCounts["language"], + kindCounts["language-range"], + kindCounts["grandfathered"], + kindCounts["redundant"], + ) + } + if len(rangeInputs) != 520 { + t.Fatalf("%s expands %d qaa..qtz inputs; want 520", path, len(rangeInputs)) + } + for second := 'a'; second <= 't'; second++ { + for third := 'a'; third <= 'z'; third++ { + input := string([]rune{'q', second, third}) + if _, ok := rangeInputs[input]; !ok { + t.Fatalf("%s is missing range expansion %q", path, input) + } + } + } + if languageOutcomeCounts["accept"] != 8685 || languageOutcomeCounts["reject"] != 110 { + t.Fatalf("%s: language strict outcomes are accept=%d reject=%d; want 8685 and 110", + path, languageOutcomeCounts["accept"], languageOutcomeCounts["reject"]) + } + if tagOutcomeCounts["accept"] != 47 || tagOutcomeCounts["reject"] != 46 { + t.Fatalf("%s: Tag strict outcomes are accept=%d reject=%d; want 47 and 46", + path, tagOutcomeCounts["accept"], tagOutcomeCounts["reject"]) + } + if reasonCounts["preferred-value"] != 156 || reasonCounts[""] != 8732 { + t.Fatalf("%s: reasons are Preferred-Value=%d empty=%d; want 156 and 8732", + path, reasonCounts["preferred-value"], reasonCounts[""]) + } + return records +} + +func parseIANACompleteInputRecord( + t *testing.T, + path string, + line int, + value string, +) ianaCompleteInputRecord { + t.Helper() + + fields := strings.Split(value, "|") + if len(fields) != 5 { + t.Fatalf("%s:%d: got %d fields; want 5", path, line, len(fields)) + } + record := ianaCompleteInputRecord{ + sourceKind: fields[0], + input: fields[1], + preferredValue: fields[2], + strictOutcome: fields[3], + strictReason: fields[4], + } + + switch record.sourceKind { + case "language": + if !isASCIILowerTestValue(record.input, 2, 8) { + t.Fatalf("%s:%d: invalid language input %q", path, line, record.input) + } + case "language-range": + if len(record.input) != 3 || record.input[0] != 'q' || + record.input[1] < 'a' || record.input[1] > 't' || + record.input[2] < 'a' || record.input[2] > 'z' { + t.Fatalf("%s:%d: input %q is outside qaa..qtz", path, line, record.input) + } + case "grandfathered", "redundant": + if record.input == "" { + t.Fatalf("%s:%d: empty Tag field", path, line) + } + default: + t.Fatalf("%s:%d: unknown source kind %q", path, line, record.sourceKind) + } + + switch record.strictOutcome { + case "accept": + if record.preferredValue != "" || record.strictReason != "" { + t.Fatalf("%s:%d: accepted input has Preferred-Value %q and reason %q", + path, line, record.preferredValue, record.strictReason) + } + case "reject": + if record.preferredValue == "" || record.strictReason != "preferred-value" { + t.Fatalf("%s:%d: rejection has Preferred-Value %q and reason %q", + path, line, record.preferredValue, record.strictReason) + } + default: + t.Fatalf("%s:%d: unknown strict outcome %q", path, line, record.strictOutcome) + } + return record +} + +func loadFixtureLines( + t *testing.T, + fixture string, + expectedCount int, + expectedSHA256 string, +) (path string, lines []string) { + t.Helper() + + path = filepath.Join("testdata", fixture) + data, err := os.ReadFile(path) + if err != nil { + t.Fatalf("read %s: %v", path, err) + } + if len(data) == 0 || data[len(data)-1] != '\n' { + t.Fatalf("%s must be non-empty and end with a newline", path) + } + if strings.ContainsRune(string(data), '\r') { + t.Fatalf("%s must use LF line endings", path) + } + sum := sha256.Sum256(data) + if actualSHA256 := hex.EncodeToString(sum[:]); actualSHA256 != expectedSHA256 { + t.Fatalf("%s SHA-256 is %s; want %s", path, actualSHA256, expectedSHA256) + } + + lines = strings.Split(strings.TrimSuffix(string(data), "\n"), "\n") + if len(lines) != expectedCount { + t.Fatalf("%s contains %d records; want %d", path, len(lines), expectedCount) + } + return path, lines +} + +func isASCIIUpperTestValue(value string, expectedLength int) bool { + if len(value) != expectedLength { + return false + } + for _, char := range value { + if char < 'A' || char > 'Z' { + return false + } + } + return true +} + +func isASCIILowerTestValue(value string, minLength, maxLength int) bool { + if len(value) < minLength || len(value) > maxLength { + return false + } + for _, char := range value { + if char < 'a' || char > 'z' { + return false + } + } + return true +} + +func isASCIIDigitTestValue(value string, expectedLength int) bool { + if len(value) != expectedLength { + return false + } + for _, char := range value { + if char < '0' || char > '9' { + return false + } + } + return true +} + +func isASCIIUpperDigitTestValue(value string, minLength, maxLength int) bool { + if len(value) < minLength || len(value) > maxLength { + return false + } + for _, char := range value { + if (char < 'A' || char > 'Z') && (char < '0' || char > '9') { + return false + } + } + return true +} + +func checkUniqueFixtureValue( + t *testing.T, + path string, + line int, + field string, + value string, + seen map[string]int, +) { + t.Helper() + if firstLine, ok := seen[value]; ok { + t.Fatalf("%s:%d: duplicate %s %q first seen on line %d", path, line, field, value, firstLine) + } + seen[value] = line +} + +func testStringRuleAccepts(t *testing.T, rule govy.Rule[string], cases []stringRuleCase) { + t.Helper() + for _, testCase := range cases { + t.Run(testCase.name, func(t *testing.T) { + assert.NoError(t, rule.Validate(testCase.input)) + }) + } +} + +func testStringRuleRejects(t *testing.T, rule govy.Rule[string], cases []stringRuleCase) { + t.Helper() + for _, testCase := range cases { + t.Run(testCase.name, func(t *testing.T) { + assert.Error(t, rule.Validate(testCase.input)) + }) + } +} + +func benchmarkStringRuleCases( + b *testing.B, + rule govy.Rule[string], + validCases []stringRuleCase, + invalidCases []stringRuleCase, +) { + b.Helper() + for b.Loop() { + for _, testCase := range validCases { + _ = rule.Validate(testCase.input) + } + for _, testCase := range invalidCases { + _ = rule.Validate(testCase.input) + } + } +} diff --git a/pkg/rules/testdata/iana_bcp47_complete_inputs_2026-06-14.txt b/pkg/rules/testdata/iana_bcp47_complete_inputs_2026-06-14.txt new file mode 100644 index 00000000..6618670a --- /dev/null +++ b/pkg/rules/testdata/iana_bcp47_complete_inputs_2026-06-14.txt @@ -0,0 +1,8888 @@ +language|aa||accept| +language|ab||accept| +language|ae||accept| +language|af||accept| +language|ak||accept| +language|am||accept| +language|an||accept| +language|ar||accept| +language|as||accept| +language|av||accept| +language|ay||accept| +language|az||accept| +language|ba||accept| +language|be||accept| +language|bg||accept| +language|bh|bih|reject|preferred-value +language|bi||accept| +language|bm||accept| +language|bn||accept| +language|bo||accept| +language|br||accept| +language|bs||accept| +language|ca||accept| +language|ce||accept| +language|ch||accept| +language|co||accept| +language|cr||accept| +language|cs||accept| +language|cu||accept| +language|cv||accept| +language|cy||accept| +language|da||accept| +language|de||accept| +language|dv||accept| +language|dz||accept| +language|ee||accept| +language|el||accept| +language|en||accept| +language|eo||accept| +language|es||accept| +language|et||accept| +language|eu||accept| +language|fa||accept| +language|ff||accept| +language|fi||accept| +language|fj||accept| +language|fo||accept| +language|fr||accept| +language|fy||accept| +language|ga||accept| +language|gd||accept| +language|gl||accept| +language|gn||accept| +language|gu||accept| +language|gv||accept| +language|ha||accept| +language|he||accept| +language|hi||accept| +language|ho||accept| +language|hr||accept| +language|ht||accept| +language|hu||accept| +language|hy||accept| +language|hz||accept| +language|ia||accept| +language|id||accept| +language|ie||accept| +language|ig||accept| +language|ii||accept| +language|ik||accept| +language|in|id|reject|preferred-value +language|io||accept| +language|is||accept| +language|it||accept| +language|iu||accept| +language|iw|he|reject|preferred-value +language|ja||accept| +language|ji|yi|reject|preferred-value +language|jv||accept| +language|jw|jv|reject|preferred-value +language|ka||accept| +language|kg||accept| +language|ki||accept| +language|kj||accept| +language|kk||accept| +language|kl||accept| +language|km||accept| +language|kn||accept| +language|ko||accept| +language|kr||accept| +language|ks||accept| +language|ku||accept| +language|kv||accept| +language|kw||accept| +language|ky||accept| +language|la||accept| +language|lb||accept| +language|lg||accept| +language|li||accept| +language|ln||accept| +language|lo||accept| +language|lt||accept| +language|lu||accept| +language|lv||accept| +language|mg||accept| +language|mh||accept| +language|mi||accept| +language|mk||accept| +language|ml||accept| +language|mn||accept| +language|mo|ro|reject|preferred-value +language|mr||accept| +language|ms||accept| +language|mt||accept| +language|my||accept| +language|na||accept| +language|nb||accept| +language|nd||accept| +language|ne||accept| +language|ng||accept| +language|nl||accept| +language|nn||accept| +language|no||accept| +language|nr||accept| +language|nv||accept| +language|ny||accept| +language|oc||accept| +language|oj||accept| +language|om||accept| +language|or||accept| +language|os||accept| +language|pa||accept| +language|pi||accept| +language|pl||accept| +language|ps||accept| +language|pt||accept| +language|qu||accept| +language|rm||accept| +language|rn||accept| +language|ro||accept| +language|ru||accept| +language|rw||accept| +language|sa||accept| +language|sc||accept| +language|sd||accept| +language|se||accept| +language|sg||accept| +language|sh||accept| +language|si||accept| +language|sk||accept| +language|sl||accept| +language|sm||accept| +language|sn||accept| +language|so||accept| +language|sq||accept| +language|sr||accept| +language|ss||accept| +language|st||accept| +language|su||accept| +language|sv||accept| +language|sw||accept| +language|ta||accept| +language|te||accept| +language|tg||accept| +language|th||accept| +language|ti||accept| +language|tk||accept| +language|tl||accept| +language|tn||accept| +language|to||accept| +language|tr||accept| +language|ts||accept| +language|tt||accept| +language|tw||accept| +language|ty||accept| +language|ug||accept| +language|uk||accept| +language|ur||accept| +language|uz||accept| +language|ve||accept| +language|vi||accept| +language|vo||accept| +language|wa||accept| +language|wo||accept| +language|xh||accept| +language|yi||accept| +language|yo||accept| +language|za||accept| +language|zh||accept| +language|zu||accept| +language|aaa||accept| +language|aab||accept| +language|aac||accept| +language|aad||accept| +language|aae||accept| +language|aaf||accept| +language|aag||accept| +language|aah||accept| +language|aai||accept| +language|aak||accept| +language|aal||accept| +language|aam|aas|reject|preferred-value +language|aan||accept| +language|aao||accept| +language|aap||accept| +language|aaq||accept| +language|aas||accept| +language|aat||accept| +language|aau||accept| +language|aav||accept| +language|aaw||accept| +language|aax||accept| +language|aaz||accept| +language|aba||accept| +language|abb||accept| +language|abc||accept| +language|abd||accept| +language|abe||accept| +language|abf||accept| +language|abg||accept| +language|abh||accept| +language|abi||accept| +language|abj||accept| +language|abl||accept| +language|abm||accept| +language|abn||accept| +language|abo||accept| +language|abp||accept| +language|abq||accept| +language|abr||accept| +language|abs||accept| +language|abt||accept| +language|abu||accept| +language|abv||accept| +language|abw||accept| +language|abx||accept| +language|aby||accept| +language|abz||accept| +language|aca||accept| +language|acb||accept| +language|acd||accept| +language|ace||accept| +language|acf||accept| +language|ach||accept| +language|aci||accept| +language|ack||accept| +language|acl||accept| +language|acm||accept| +language|acn||accept| +language|acp||accept| +language|acq||accept| +language|acr||accept| +language|acs||accept| +language|act||accept| +language|acu||accept| +language|acv||accept| +language|acw||accept| +language|acx||accept| +language|acy||accept| +language|acz||accept| +language|ada||accept| +language|adb||accept| +language|add||accept| +language|ade||accept| +language|adf||accept| +language|adg||accept| +language|adh||accept| +language|adi||accept| +language|adj||accept| +language|adl||accept| +language|adn||accept| +language|ado||accept| +language|adp|dz|reject|preferred-value +language|adq||accept| +language|adr||accept| +language|ads||accept| +language|adt||accept| +language|adu||accept| +language|adw||accept| +language|adx||accept| +language|ady||accept| +language|adz||accept| +language|aea||accept| +language|aeb||accept| +language|aec||accept| +language|aed||accept| +language|aee||accept| +language|aek||accept| +language|ael||accept| +language|aem||accept| +language|aen||accept| +language|aeq||accept| +language|aer||accept| +language|aes||accept| +language|aeu||accept| +language|aew||accept| +language|aey||accept| +language|aez||accept| +language|afa||accept| +language|afb||accept| +language|afd||accept| +language|afe||accept| +language|afg||accept| +language|afh||accept| +language|afi||accept| +language|afk||accept| +language|afn||accept| +language|afo||accept| +language|afp||accept| +language|afs||accept| +language|aft||accept| +language|afu||accept| +language|afz||accept| +language|aga||accept| +language|agb||accept| +language|agc||accept| +language|agd||accept| +language|age||accept| +language|agf||accept| +language|agg||accept| +language|agh||accept| +language|agi||accept| +language|agj||accept| +language|agk||accept| +language|agl||accept| +language|agm||accept| +language|agn||accept| +language|ago||accept| +language|agp||accept| +language|agq||accept| +language|agr||accept| +language|ags||accept| +language|agt||accept| +language|agu||accept| +language|agv||accept| +language|agw||accept| +language|agx||accept| +language|agy||accept| +language|agz||accept| +language|aha||accept| +language|ahb||accept| +language|ahg||accept| +language|ahh||accept| +language|ahi||accept| +language|ahk||accept| +language|ahl||accept| +language|ahm||accept| +language|ahn||accept| +language|aho||accept| +language|ahp||accept| +language|ahr||accept| +language|ahs||accept| +language|aht||accept| +language|aia||accept| +language|aib||accept| +language|aic||accept| +language|aid||accept| +language|aie||accept| +language|aif||accept| +language|aig||accept| +language|aih||accept| +language|aii||accept| +language|aij||accept| +language|aik||accept| +language|ail||accept| +language|aim||accept| +language|ain||accept| +language|aio||accept| +language|aip||accept| +language|aiq||accept| +language|air||accept| +language|ais||accept| +language|ait||accept| +language|aiw||accept| +language|aix||accept| +language|aiy||accept| +language|aja||accept| +language|ajg||accept| +language|aji||accept| +language|ajn||accept| +language|ajp|apc|reject|preferred-value +language|ajs||accept| +language|ajt|aeb|reject|preferred-value +language|aju||accept| +language|ajw||accept| +language|ajz||accept| +language|akb||accept| +language|akc||accept| +language|akd||accept| +language|ake||accept| +language|akf||accept| +language|akg||accept| +language|akh||accept| +language|aki||accept| +language|akj||accept| +language|akk||accept| +language|akl||accept| +language|akm||accept| +language|ako||accept| +language|akp||accept| +language|akq||accept| +language|akr||accept| +language|aks||accept| +language|akt||accept| +language|aku||accept| +language|akv||accept| +language|akw||accept| +language|akx||accept| +language|aky||accept| +language|akz||accept| +language|ala||accept| +language|alc||accept| +language|ald||accept| +language|ale||accept| +language|alf||accept| +language|alg||accept| +language|alh||accept| +language|ali||accept| +language|alj||accept| +language|alk||accept| +language|all||accept| +language|alm||accept| +language|aln||accept| +language|alo||accept| +language|alp||accept| +language|alq||accept| +language|alr||accept| +language|als||accept| +language|alt||accept| +language|alu||accept| +language|alv||accept| +language|alw||accept| +language|alx||accept| +language|aly||accept| +language|alz||accept| +language|ama||accept| +language|amb||accept| +language|amc||accept| +language|ame||accept| +language|amf||accept| +language|amg||accept| +language|ami||accept| +language|amj||accept| +language|amk||accept| +language|aml||accept| +language|amm||accept| +language|amn||accept| +language|amo||accept| +language|amp||accept| +language|amq||accept| +language|amr||accept| +language|ams||accept| +language|amt||accept| +language|amu||accept| +language|amv||accept| +language|amw||accept| +language|amx||accept| +language|amy||accept| +language|amz||accept| +language|ana||accept| +language|anb||accept| +language|anc||accept| +language|and||accept| +language|ane||accept| +language|anf||accept| +language|ang||accept| +language|anh||accept| +language|ani||accept| +language|anj||accept| +language|ank||accept| +language|anl||accept| +language|anm||accept| +language|ann||accept| +language|ano||accept| +language|anp||accept| +language|anq||accept| +language|anr||accept| +language|ans||accept| +language|ant||accept| +language|anu||accept| +language|anv||accept| +language|anw||accept| +language|anx||accept| +language|any||accept| +language|anz||accept| +language|aoa||accept| +language|aob||accept| +language|aoc||accept| +language|aod||accept| +language|aoe||accept| +language|aof||accept| +language|aog||accept| +language|aoh||accept| +language|aoi||accept| +language|aoj||accept| +language|aok||accept| +language|aol||accept| +language|aom||accept| +language|aon||accept| +language|aor||accept| +language|aos||accept| +language|aot||accept| +language|aou||accept| +language|aox||accept| +language|aoz||accept| +language|apa||accept| +language|apb||accept| +language|apc||accept| +language|apd||accept| +language|ape||accept| +language|apf||accept| +language|apg||accept| +language|aph||accept| +language|api||accept| +language|apj||accept| +language|apk||accept| +language|apl||accept| +language|apm||accept| +language|apn||accept| +language|apo||accept| +language|app||accept| +language|apq||accept| +language|apr||accept| +language|aps||accept| +language|apt||accept| +language|apu||accept| +language|apv||accept| +language|apw||accept| +language|apx||accept| +language|apy||accept| +language|apz||accept| +language|aqa||accept| +language|aqc||accept| +language|aqd||accept| +language|aqg||accept| +language|aqk||accept| +language|aql||accept| +language|aqm||accept| +language|aqn||accept| +language|aqp||accept| +language|aqr||accept| +language|aqt||accept| +language|aqz||accept| +language|arb||accept| +language|arc||accept| +language|ard||accept| +language|are||accept| +language|arh||accept| +language|ari||accept| +language|arj||accept| +language|ark||accept| +language|arl||accept| +language|arn||accept| +language|aro||accept| +language|arp||accept| +language|arq||accept| +language|arr||accept| +language|ars||accept| +language|art||accept| +language|aru||accept| +language|arv||accept| +language|arw||accept| +language|arx||accept| +language|ary||accept| +language|arz||accept| +language|asa||accept| +language|asb||accept| +language|asc||accept| +language|asd|snz|reject|preferred-value +language|ase||accept| +language|asf||accept| +language|asg||accept| +language|ash||accept| +language|asi||accept| +language|asj||accept| +language|ask||accept| +language|asl||accept| +language|asn||accept| +language|aso||accept| +language|asp||accept| +language|asq||accept| +language|asr||accept| +language|ass||accept| +language|ast||accept| +language|asu||accept| +language|asv||accept| +language|asw||accept| +language|asx||accept| +language|asy||accept| +language|asz||accept| +language|ata||accept| +language|atb||accept| +language|atc||accept| +language|atd||accept| +language|ate||accept| +language|atg||accept| +language|ath||accept| +language|ati||accept| +language|atj||accept| +language|atk||accept| +language|atl||accept| +language|atm||accept| +language|atn||accept| +language|ato||accept| +language|atp||accept| +language|atq||accept| +language|atr||accept| +language|ats||accept| +language|att||accept| +language|atu||accept| +language|atv||accept| +language|atw||accept| +language|atx||accept| +language|aty||accept| +language|atz||accept| +language|aua||accept| +language|aub||accept| +language|auc||accept| +language|aud||accept| +language|aue|ktz|reject|preferred-value +language|auf||accept| +language|aug||accept| +language|auh||accept| +language|aui||accept| +language|auj||accept| +language|auk||accept| +language|aul||accept| +language|aum||accept| +language|aun||accept| +language|auo||accept| +language|aup||accept| +language|auq||accept| +language|aur||accept| +language|aus||accept| +language|aut||accept| +language|auu||accept| +language|auw||accept| +language|aux||accept| +language|auy||accept| +language|auz||accept| +language|avb||accept| +language|avd||accept| +language|avi||accept| +language|avk||accept| +language|avl||accept| +language|avm||accept| +language|avn||accept| +language|avo||accept| +language|avs||accept| +language|avt||accept| +language|avu||accept| +language|avv||accept| +language|awa||accept| +language|awb||accept| +language|awc||accept| +language|awd||accept| +language|awe||accept| +language|awg||accept| +language|awh||accept| +language|awi||accept| +language|awk||accept| +language|awm||accept| +language|awn||accept| +language|awo||accept| +language|awr||accept| +language|aws||accept| +language|awt||accept| +language|awu||accept| +language|awv||accept| +language|aww||accept| +language|awx||accept| +language|awy||accept| +language|axb||accept| +language|axe||accept| +language|axg||accept| +language|axk||accept| +language|axl||accept| +language|axm||accept| +language|axx||accept| +language|aya||accept| +language|ayb||accept| +language|ayc||accept| +language|ayd||accept| +language|aye||accept| +language|ayg||accept| +language|ayh||accept| +language|ayi||accept| +language|ayk||accept| +language|ayl||accept| +language|ayn||accept| +language|ayo||accept| +language|ayp||accept| +language|ayq||accept| +language|ayr||accept| +language|ays||accept| +language|ayt||accept| +language|ayu||accept| +language|ayx|nun|reject|preferred-value +language|ayy||accept| +language|ayz||accept| +language|aza||accept| +language|azb||accept| +language|azc||accept| +language|azd||accept| +language|azg||accept| +language|azj||accept| +language|azm||accept| +language|azn||accept| +language|azo||accept| +language|azt||accept| +language|azz||accept| +language|baa||accept| +language|bab||accept| +language|bac||accept| +language|bad||accept| +language|bae||accept| +language|baf||accept| +language|bag||accept| +language|bah||accept| +language|bai||accept| +language|baj||accept| +language|bal||accept| +language|ban||accept| +language|bao||accept| +language|bap||accept| +language|bar||accept| +language|bas||accept| +language|bat||accept| +language|bau||accept| +language|bav||accept| +language|baw||accept| +language|bax||accept| +language|bay||accept| +language|baz||accept| +language|bba||accept| +language|bbb||accept| +language|bbc||accept| +language|bbd||accept| +language|bbe||accept| +language|bbf||accept| +language|bbg||accept| +language|bbh||accept| +language|bbi||accept| +language|bbj||accept| +language|bbk||accept| +language|bbl||accept| +language|bbm||accept| +language|bbn||accept| +language|bbo||accept| +language|bbp||accept| +language|bbq||accept| +language|bbr||accept| +language|bbs||accept| +language|bbt||accept| +language|bbu||accept| +language|bbv||accept| +language|bbw||accept| +language|bbx||accept| +language|bby||accept| +language|bbz||accept| +language|bca||accept| +language|bcb||accept| +language|bcc||accept| +language|bcd||accept| +language|bce||accept| +language|bcf||accept| +language|bcg||accept| +language|bch||accept| +language|bci||accept| +language|bcj||accept| +language|bck||accept| +language|bcl||accept| +language|bcm||accept| +language|bcn||accept| +language|bco||accept| +language|bcp||accept| +language|bcq||accept| +language|bcr||accept| +language|bcs||accept| +language|bct||accept| +language|bcu||accept| +language|bcv||accept| +language|bcw||accept| +language|bcy||accept| +language|bcz||accept| +language|bda||accept| +language|bdb||accept| +language|bdc||accept| +language|bdd||accept| +language|bde||accept| +language|bdf||accept| +language|bdg||accept| +language|bdh||accept| +language|bdi||accept| +language|bdj||accept| +language|bdk||accept| +language|bdl||accept| +language|bdm||accept| +language|bdn||accept| +language|bdo||accept| +language|bdp||accept| +language|bdq||accept| +language|bdr||accept| +language|bds||accept| +language|bdt||accept| +language|bdu||accept| +language|bdv||accept| +language|bdw||accept| +language|bdx||accept| +language|bdy||accept| +language|bdz||accept| +language|bea||accept| +language|beb||accept| +language|bec||accept| +language|bed||accept| +language|bee||accept| +language|bef||accept| +language|beg||accept| +language|beh||accept| +language|bei||accept| +language|bej||accept| +language|bek||accept| +language|bem||accept| +language|beo||accept| +language|bep||accept| +language|beq||accept| +language|ber||accept| +language|bes||accept| +language|bet||accept| +language|beu||accept| +language|bev||accept| +language|bew||accept| +language|bex||accept| +language|bey||accept| +language|bez||accept| +language|bfa||accept| +language|bfb||accept| +language|bfc||accept| +language|bfd||accept| +language|bfe||accept| +language|bff||accept| +language|bfg||accept| +language|bfh||accept| +language|bfi||accept| +language|bfj||accept| +language|bfk||accept| +language|bfl||accept| +language|bfm||accept| +language|bfn||accept| +language|bfo||accept| +language|bfp||accept| +language|bfq||accept| +language|bfr||accept| +language|bfs||accept| +language|bft||accept| +language|bfu||accept| +language|bfw||accept| +language|bfx||accept| +language|bfy||accept| +language|bfz||accept| +language|bga||accept| +language|bgb||accept| +language|bgc||accept| +language|bgd||accept| +language|bge||accept| +language|bgf||accept| +language|bgg||accept| +language|bgi||accept| +language|bgj||accept| +language|bgk||accept| +language|bgl||accept| +language|bgm|bcg|reject|preferred-value +language|bgn||accept| +language|bgo||accept| +language|bgp||accept| +language|bgq||accept| +language|bgr||accept| +language|bgs||accept| +language|bgt||accept| +language|bgu||accept| +language|bgv||accept| +language|bgw||accept| +language|bgx||accept| +language|bgy||accept| +language|bgz||accept| +language|bha||accept| +language|bhb||accept| +language|bhc||accept| +language|bhd||accept| +language|bhe||accept| +language|bhf||accept| +language|bhg||accept| +language|bhh||accept| +language|bhi||accept| +language|bhj||accept| +language|bhk||accept| +language|bhl||accept| +language|bhm||accept| +language|bhn||accept| +language|bho||accept| +language|bhp||accept| +language|bhq||accept| +language|bhr||accept| +language|bhs||accept| +language|bht||accept| +language|bhu||accept| +language|bhv||accept| +language|bhw||accept| +language|bhx||accept| +language|bhy||accept| +language|bhz||accept| +language|bia||accept| +language|bib||accept| +language|bic|bir|reject|preferred-value +language|bid||accept| +language|bie||accept| +language|bif||accept| +language|big||accept| +language|bih||accept| +language|bij||accept| +language|bik||accept| +language|bil||accept| +language|bim||accept| +language|bin||accept| +language|bio||accept| +language|bip||accept| +language|biq||accept| +language|bir||accept| +language|bit||accept| +language|biu||accept| +language|biv||accept| +language|biw||accept| +language|bix||accept| +language|biy||accept| +language|biz||accept| +language|bja||accept| +language|bjb||accept| +language|bjc||accept| +language|bjd|drl|reject|preferred-value +language|bje||accept| +language|bjf||accept| +language|bjg||accept| +language|bjh||accept| +language|bji||accept| +language|bjj||accept| +language|bjk||accept| +language|bjl||accept| +language|bjm||accept| +language|bjn||accept| +language|bjo||accept| +language|bjp||accept| +language|bjq||accept| +language|bjr||accept| +language|bjs||accept| +language|bjt||accept| +language|bju||accept| +language|bjv||accept| +language|bjw||accept| +language|bjx||accept| +language|bjy||accept| +language|bjz||accept| +language|bka||accept| +language|bkb||accept| +language|bkc||accept| +language|bkd||accept| +language|bkf||accept| +language|bkg||accept| +language|bkh||accept| +language|bki||accept| +language|bkj||accept| +language|bkk||accept| +language|bkl||accept| +language|bkm||accept| +language|bkn||accept| +language|bko||accept| +language|bkp||accept| +language|bkq||accept| +language|bkr||accept| +language|bks||accept| +language|bkt||accept| +language|bku||accept| +language|bkv||accept| +language|bkw||accept| +language|bkx||accept| +language|bky||accept| +language|bkz||accept| +language|bla||accept| +language|blb||accept| +language|blc||accept| +language|bld||accept| +language|ble||accept| +language|blf||accept| +language|blg|iba|reject|preferred-value +language|blh||accept| +language|bli||accept| +language|blj||accept| +language|blk||accept| +language|bll||accept| +language|blm||accept| +language|bln||accept| +language|blo||accept| +language|blp||accept| +language|blq||accept| +language|blr||accept| +language|bls||accept| +language|blt||accept| +language|blv||accept| +language|blw||accept| +language|blx||accept| +language|bly||accept| +language|blz||accept| +language|bma||accept| +language|bmb||accept| +language|bmc||accept| +language|bmd||accept| +language|bme||accept| +language|bmf||accept| +language|bmg||accept| +language|bmh||accept| +language|bmi||accept| +language|bmj||accept| +language|bmk||accept| +language|bml||accept| +language|bmm||accept| +language|bmn||accept| +language|bmo||accept| +language|bmp||accept| +language|bmq||accept| +language|bmr||accept| +language|bms||accept| +language|bmt||accept| +language|bmu||accept| +language|bmv||accept| +language|bmw||accept| +language|bmx||accept| +language|bmy||accept| +language|bmz||accept| +language|bna||accept| +language|bnb||accept| +language|bnc||accept| +language|bnd||accept| +language|bne||accept| +language|bnf||accept| +language|bng||accept| +language|bni||accept| +language|bnj||accept| +language|bnk||accept| +language|bnl||accept| +language|bnm||accept| +language|bnn||accept| +language|bno||accept| +language|bnp||accept| +language|bnq||accept| +language|bnr||accept| +language|bns||accept| +language|bnt||accept| +language|bnu||accept| +language|bnv||accept| +language|bnw||accept| +language|bnx||accept| +language|bny||accept| +language|bnz||accept| +language|boa||accept| +language|bob||accept| +language|boe||accept| +language|bof||accept| +language|bog||accept| +language|boh||accept| +language|boi||accept| +language|boj||accept| +language|bok||accept| +language|bol||accept| +language|bom||accept| +language|bon||accept| +language|boo||accept| +language|bop||accept| +language|boq||accept| +language|bor||accept| +language|bot||accept| +language|bou||accept| +language|bov||accept| +language|bow||accept| +language|box||accept| +language|boy||accept| +language|boz||accept| +language|bpa||accept| +language|bpb||accept| +language|bpc||accept| +language|bpd||accept| +language|bpe||accept| +language|bpg||accept| +language|bph||accept| +language|bpi||accept| +language|bpj||accept| +language|bpk||accept| +language|bpl||accept| +language|bpm||accept| +language|bpn||accept| +language|bpo||accept| +language|bpp||accept| +language|bpq||accept| +language|bpr||accept| +language|bps||accept| +language|bpt||accept| +language|bpu||accept| +language|bpv||accept| +language|bpw||accept| +language|bpx||accept| +language|bpy||accept| +language|bpz||accept| +language|bqa||accept| +language|bqb||accept| +language|bqc||accept| +language|bqd||accept| +language|bqf||accept| +language|bqg||accept| +language|bqh||accept| +language|bqi||accept| +language|bqj||accept| +language|bqk||accept| +language|bql||accept| +language|bqm||accept| +language|bqn||accept| +language|bqo||accept| +language|bqp||accept| +language|bqq||accept| +language|bqr||accept| +language|bqs||accept| +language|bqt||accept| +language|bqu||accept| +language|bqv||accept| +language|bqw||accept| +language|bqx||accept| +language|bqy||accept| +language|bqz||accept| +language|bra||accept| +language|brb||accept| +language|brc||accept| +language|brd||accept| +language|brf||accept| +language|brg||accept| +language|brh||accept| +language|bri||accept| +language|brj||accept| +language|brk||accept| +language|brl||accept| +language|brm||accept| +language|brn||accept| +language|bro||accept| +language|brp||accept| +language|brq||accept| +language|brr||accept| +language|brs||accept| +language|brt||accept| +language|bru||accept| +language|brv||accept| +language|brw||accept| +language|brx||accept| +language|bry||accept| +language|brz||accept| +language|bsa||accept| +language|bsb||accept| +language|bsc||accept| +language|bse||accept| +language|bsf||accept| +language|bsg||accept| +language|bsh||accept| +language|bsi||accept| +language|bsj||accept| +language|bsk||accept| +language|bsl||accept| +language|bsm||accept| +language|bsn||accept| +language|bso||accept| +language|bsp||accept| +language|bsq||accept| +language|bsr||accept| +language|bss||accept| +language|bst||accept| +language|bsu||accept| +language|bsv||accept| +language|bsw||accept| +language|bsx||accept| +language|bsy||accept| +language|bta||accept| +language|btb||accept| +language|btc||accept| +language|btd||accept| +language|bte||accept| +language|btf||accept| +language|btg||accept| +language|bth||accept| +language|bti||accept| +language|btj||accept| +language|btk||accept| +language|btl||accept| +language|btm||accept| +language|btn||accept| +language|bto||accept| +language|btp||accept| +language|btq||accept| +language|btr||accept| +language|bts||accept| +language|btt||accept| +language|btu||accept| +language|btv||accept| +language|btw||accept| +language|btx||accept| +language|bty||accept| +language|btz||accept| +language|bua||accept| +language|bub||accept| +language|buc||accept| +language|bud||accept| +language|bue||accept| +language|buf||accept| +language|bug||accept| +language|buh||accept| +language|bui||accept| +language|buj||accept| +language|buk||accept| +language|bum||accept| +language|bun||accept| +language|buo||accept| +language|bup||accept| +language|buq||accept| +language|bus||accept| +language|but||accept| +language|buu||accept| +language|buv||accept| +language|buw||accept| +language|bux||accept| +language|buy||accept| +language|buz||accept| +language|bva||accept| +language|bvb||accept| +language|bvc||accept| +language|bvd||accept| +language|bve||accept| +language|bvf||accept| +language|bvg||accept| +language|bvh||accept| +language|bvi||accept| +language|bvj||accept| +language|bvk||accept| +language|bvl||accept| +language|bvm||accept| +language|bvn||accept| +language|bvo||accept| +language|bvp||accept| +language|bvq||accept| +language|bvr||accept| +language|bvt||accept| +language|bvu||accept| +language|bvv||accept| +language|bvw||accept| +language|bvx||accept| +language|bvy||accept| +language|bvz||accept| +language|bwa||accept| +language|bwb||accept| +language|bwc||accept| +language|bwd||accept| +language|bwe||accept| +language|bwf||accept| +language|bwg||accept| +language|bwh||accept| +language|bwi||accept| +language|bwj||accept| +language|bwk||accept| +language|bwl||accept| +language|bwm||accept| +language|bwn||accept| +language|bwo||accept| +language|bwp||accept| +language|bwq||accept| +language|bwr||accept| +language|bws||accept| +language|bwt||accept| +language|bwu||accept| +language|bww||accept| +language|bwx||accept| +language|bwy||accept| +language|bwz||accept| +language|bxa||accept| +language|bxb||accept| +language|bxc||accept| +language|bxd||accept| +language|bxe||accept| +language|bxf||accept| +language|bxg||accept| +language|bxh||accept| +language|bxi||accept| +language|bxj||accept| +language|bxk||accept| +language|bxl||accept| +language|bxm||accept| +language|bxn||accept| +language|bxo||accept| +language|bxp||accept| +language|bxq||accept| +language|bxr||accept| +language|bxs||accept| +language|bxu||accept| +language|bxv||accept| +language|bxw||accept| +language|bxx||accept| +language|bxz||accept| +language|bya||accept| +language|byb||accept| +language|byc||accept| +language|byd||accept| +language|bye||accept| +language|byf||accept| +language|byg||accept| +language|byh||accept| +language|byi||accept| +language|byj||accept| +language|byk||accept| +language|byl||accept| +language|bym||accept| +language|byn||accept| +language|byo||accept| +language|byp||accept| +language|byq||accept| +language|byr||accept| +language|bys||accept| +language|byt||accept| +language|byv||accept| +language|byw||accept| +language|byx||accept| +language|byy||accept| +language|byz||accept| +language|bza||accept| +language|bzb||accept| +language|bzc||accept| +language|bzd||accept| +language|bze||accept| +language|bzf||accept| +language|bzg||accept| +language|bzh||accept| +language|bzi||accept| +language|bzj||accept| +language|bzk||accept| +language|bzl||accept| +language|bzm||accept| +language|bzn||accept| +language|bzo||accept| +language|bzp||accept| +language|bzq||accept| +language|bzr||accept| +language|bzs||accept| +language|bzt||accept| +language|bzu||accept| +language|bzv||accept| +language|bzw||accept| +language|bzx||accept| +language|bzy||accept| +language|bzz||accept| +language|caa||accept| +language|cab||accept| +language|cac||accept| +language|cad||accept| +language|cae||accept| +language|caf||accept| +language|cag||accept| +language|cah||accept| +language|cai||accept| +language|caj||accept| +language|cak||accept| +language|cal||accept| +language|cam||accept| +language|can||accept| +language|cao||accept| +language|cap||accept| +language|caq||accept| +language|car||accept| +language|cas||accept| +language|cau||accept| +language|cav||accept| +language|caw||accept| +language|cax||accept| +language|cay||accept| +language|caz||accept| +language|cba||accept| +language|cbb||accept| +language|cbc||accept| +language|cbd||accept| +language|cbe||accept| +language|cbg||accept| +language|cbh||accept| +language|cbi||accept| +language|cbj||accept| +language|cbk||accept| +language|cbl||accept| +language|cbn||accept| +language|cbo||accept| +language|cbq||accept| +language|cbr||accept| +language|cbs||accept| +language|cbt||accept| +language|cbu||accept| +language|cbv||accept| +language|cbw||accept| +language|cby||accept| +language|cca||accept| +language|ccc||accept| +language|ccd||accept| +language|cce||accept| +language|ccg||accept| +language|cch||accept| +language|ccj||accept| +language|ccl||accept| +language|ccm||accept| +language|ccn||accept| +language|cco||accept| +language|ccp||accept| +language|ccq|rki|reject|preferred-value +language|ccr||accept| +language|ccs||accept| +language|cda||accept| +language|cdc||accept| +language|cdd||accept| +language|cde||accept| +language|cdf||accept| +language|cdg||accept| +language|cdh||accept| +language|cdi||accept| +language|cdj||accept| +language|cdm||accept| +language|cdn||accept| +language|cdo||accept| +language|cdr||accept| +language|cds||accept| +language|cdy||accept| +language|cdz||accept| +language|cea||accept| +language|ceb||accept| +language|ceg||accept| +language|cek||accept| +language|cel||accept| +language|cen||accept| +language|cet||accept| +language|cey||accept| +language|cfa||accept| +language|cfd||accept| +language|cfg||accept| +language|cfm||accept| +language|cga||accept| +language|cgc||accept| +language|cgg||accept| +language|cgk||accept| +language|chb||accept| +language|chc||accept| +language|chd||accept| +language|chf||accept| +language|chg||accept| +language|chh||accept| +language|chj||accept| +language|chk||accept| +language|chl||accept| +language|chm||accept| +language|chn||accept| +language|cho||accept| +language|chp||accept| +language|chq||accept| +language|chr||accept| +language|cht||accept| +language|chw||accept| +language|chx||accept| +language|chy||accept| +language|chz||accept| +language|cia||accept| +language|cib||accept| +language|cic||accept| +language|cid||accept| +language|cie||accept| +language|cih||accept| +language|cik||accept| +language|cim||accept| +language|cin||accept| +language|cip||accept| +language|cir||accept| +language|ciw||accept| +language|ciy||accept| +language|cja||accept| +language|cje||accept| +language|cjh||accept| +language|cji||accept| +language|cjk||accept| +language|cjm||accept| +language|cjn||accept| +language|cjo||accept| +language|cjp||accept| +language|cjr|mom|reject|preferred-value +language|cjs||accept| +language|cjv||accept| +language|cjy||accept| +language|cka|cmr|reject|preferred-value +language|ckb||accept| +language|ckh||accept| +language|ckl||accept| +language|ckm||accept| +language|ckn||accept| +language|cko||accept| +language|ckq||accept| +language|ckr||accept| +language|cks||accept| +language|ckt||accept| +language|cku||accept| +language|ckv||accept| +language|ckx||accept| +language|cky||accept| +language|ckz||accept| +language|cla||accept| +language|clc||accept| +language|cld||accept| +language|cle||accept| +language|clh||accept| +language|cli||accept| +language|clj||accept| +language|clk||accept| +language|cll||accept| +language|clm||accept| +language|clo||accept| +language|cls||accept| +language|clt||accept| +language|clu||accept| +language|clw||accept| +language|cly||accept| +language|cma||accept| +language|cmc||accept| +language|cme||accept| +language|cmg||accept| +language|cmi||accept| +language|cmk|xch|reject|preferred-value +language|cml||accept| +language|cmm||accept| +language|cmn||accept| +language|cmo||accept| +language|cmr||accept| +language|cms||accept| +language|cmt||accept| +language|cna||accept| +language|cnb||accept| +language|cnc||accept| +language|cng||accept| +language|cnh||accept| +language|cni||accept| +language|cnk||accept| +language|cnl||accept| +language|cno||accept| +language|cnp||accept| +language|cnq||accept| +language|cnr||accept| +language|cns||accept| +language|cnt||accept| +language|cnu||accept| +language|cnw||accept| +language|cnx||accept| +language|coa||accept| +language|cob||accept| +language|coc||accept| +language|cod||accept| +language|coe||accept| +language|cof||accept| +language|cog||accept| +language|coh||accept| +language|coj||accept| +language|cok||accept| +language|col||accept| +language|com||accept| +language|con||accept| +language|coo||accept| +language|cop||accept| +language|coq||accept| +language|cot||accept| +language|cou||accept| +language|cov||accept| +language|cow||accept| +language|cox||accept| +language|coy|pij|reject|preferred-value +language|coz||accept| +language|cpa||accept| +language|cpb||accept| +language|cpc||accept| +language|cpe||accept| +language|cpf||accept| +language|cpg||accept| +language|cpi||accept| +language|cpn||accept| +language|cpo||accept| +language|cpp||accept| +language|cps||accept| +language|cpu||accept| +language|cpx||accept| +language|cpy||accept| +language|cqd||accept| +language|cqu|quh|reject|preferred-value +language|cra||accept| +language|crb||accept| +language|crc||accept| +language|crd||accept| +language|crf||accept| +language|crg||accept| +language|crh||accept| +language|cri||accept| +language|crj||accept| +language|crk||accept| +language|crl||accept| +language|crm||accept| +language|crn||accept| +language|cro||accept| +language|crp||accept| +language|crq||accept| +language|crr||accept| +language|crs||accept| +language|crt||accept| +language|crv||accept| +language|crw||accept| +language|crx||accept| +language|cry||accept| +language|crz||accept| +language|csa||accept| +language|csb||accept| +language|csc||accept| +language|csd||accept| +language|cse||accept| +language|csf||accept| +language|csg||accept| +language|csh||accept| +language|csi||accept| +language|csj||accept| +language|csk||accept| +language|csl||accept| +language|csm||accept| +language|csn||accept| +language|cso||accept| +language|csp||accept| +language|csq||accept| +language|csr||accept| +language|css||accept| +language|cst||accept| +language|csu||accept| +language|csv||accept| +language|csw||accept| +language|csx||accept| +language|csy||accept| +language|csz||accept| +language|cta||accept| +language|ctc||accept| +language|ctd||accept| +language|cte||accept| +language|ctg||accept| +language|cth||accept| +language|ctl||accept| +language|ctm||accept| +language|ctn||accept| +language|cto||accept| +language|ctp||accept| +language|cts||accept| +language|ctt||accept| +language|ctu||accept| +language|cty||accept| +language|ctz||accept| +language|cua||accept| +language|cub||accept| +language|cuc||accept| +language|cug||accept| +language|cuh||accept| +language|cui||accept| +language|cuj||accept| +language|cuk||accept| +language|cul||accept| +language|cum||accept| +language|cuo||accept| +language|cup||accept| +language|cuq||accept| +language|cur||accept| +language|cus||accept| +language|cut||accept| +language|cuu||accept| +language|cuv||accept| +language|cuw||accept| +language|cux||accept| +language|cuy||accept| +language|cvg||accept| +language|cvn||accept| +language|cwa||accept| +language|cwb||accept| +language|cwd||accept| +language|cwe||accept| +language|cwg||accept| +language|cwt||accept| +language|cxh||accept| +language|cya||accept| +language|cyb||accept| +language|cyo||accept| +language|czh||accept| +language|czk||accept| +language|czn||accept| +language|czo||accept| +language|czt||accept| +language|daa||accept| +language|dac||accept| +language|dad||accept| +language|dae||accept| +language|daf||accept| +language|dag||accept| +language|dah||accept| +language|dai||accept| +language|daj||accept| +language|dak||accept| +language|dal||accept| +language|dam||accept| +language|dao||accept| +language|dap||accept| +language|daq||accept| +language|dar||accept| +language|das||accept| +language|dau||accept| +language|dav||accept| +language|daw||accept| +language|dax||accept| +language|day||accept| +language|daz||accept| +language|dba||accept| +language|dbb||accept| +language|dbd||accept| +language|dbe||accept| +language|dbf||accept| +language|dbg||accept| +language|dbi||accept| +language|dbj||accept| +language|dbl||accept| +language|dbm||accept| +language|dbn||accept| +language|dbo||accept| +language|dbp||accept| +language|dbq||accept| +language|dbr||accept| +language|dbt||accept| +language|dbu||accept| +language|dbv||accept| +language|dbw||accept| +language|dby||accept| +language|dcc||accept| +language|dcr||accept| +language|dda||accept| +language|ddd||accept| +language|dde||accept| +language|ddg||accept| +language|ddi||accept| +language|ddj||accept| +language|ddn||accept| +language|ddo||accept| +language|ddr||accept| +language|dds||accept| +language|ddw||accept| +language|dec||accept| +language|ded||accept| +language|dee||accept| +language|def||accept| +language|deg||accept| +language|deh||accept| +language|dei||accept| +language|dek|sqm|reject|preferred-value +language|del||accept| +language|dem||accept| +language|den||accept| +language|dep||accept| +language|deq||accept| +language|der||accept| +language|des||accept| +language|dev||accept| +language|dez||accept| +language|dga||accept| +language|dgb||accept| +language|dgc||accept| +language|dgd||accept| +language|dge||accept| +language|dgg||accept| +language|dgh||accept| +language|dgi||accept| +language|dgk||accept| +language|dgl||accept| +language|dgn||accept| +language|dgo||accept| +language|dgr||accept| +language|dgs||accept| +language|dgt||accept| +language|dgu||accept| +language|dgw||accept| +language|dgx||accept| +language|dgz||accept| +language|dha||accept| +language|dhd||accept| +language|dhg||accept| +language|dhi||accept| +language|dhl||accept| +language|dhm||accept| +language|dhn||accept| +language|dho||accept| +language|dhr||accept| +language|dhs||accept| +language|dhu||accept| +language|dhv||accept| +language|dhw||accept| +language|dhx||accept| +language|dia||accept| +language|dib||accept| +language|dic||accept| +language|did||accept| +language|dif||accept| +language|dig||accept| +language|dih||accept| +language|dii||accept| +language|dij||accept| +language|dik||accept| +language|dil||accept| +language|dim||accept| +language|din||accept| +language|dio||accept| +language|dip||accept| +language|diq||accept| +language|dir||accept| +language|dis||accept| +language|dit|dif|reject|preferred-value +language|diu||accept| +language|diw||accept| +language|dix||accept| +language|diy||accept| +language|diz||accept| +language|dja||accept| +language|djb||accept| +language|djc||accept| +language|djd||accept| +language|dje||accept| +language|djf||accept| +language|dji||accept| +language|djj||accept| +language|djk||accept| +language|djl||accept| +language|djm||accept| +language|djn||accept| +language|djo||accept| +language|djr||accept| +language|dju||accept| +language|djw||accept| +language|dka||accept| +language|dkg||accept| +language|dkk||accept| +language|dkl||accept| +language|dkr||accept| +language|dks||accept| +language|dkx||accept| +language|dlg||accept| +language|dlk||accept| +language|dlm||accept| +language|dln||accept| +language|dma||accept| +language|dmb||accept| +language|dmc||accept| +language|dmd||accept| +language|dme||accept| +language|dmf||accept| +language|dmg||accept| +language|dmk||accept| +language|dml||accept| +language|dmm||accept| +language|dmn||accept| +language|dmo||accept| +language|dmr||accept| +language|dms||accept| +language|dmu||accept| +language|dmv||accept| +language|dmw||accept| +language|dmx||accept| +language|dmy||accept| +language|dna||accept| +language|dnd||accept| +language|dne||accept| +language|dng||accept| +language|dni||accept| +language|dnj||accept| +language|dnk||accept| +language|dnn||accept| +language|dno||accept| +language|dnr||accept| +language|dnt||accept| +language|dnu||accept| +language|dnv||accept| +language|dnw||accept| +language|dny||accept| +language|doa||accept| +language|dob||accept| +language|doc||accept| +language|doe||accept| +language|dof||accept| +language|doh||accept| +language|doi||accept| +language|dok||accept| +language|dol||accept| +language|don||accept| +language|doo||accept| +language|dop||accept| +language|doq||accept| +language|dor||accept| +language|dos||accept| +language|dot||accept| +language|dov||accept| +language|dow||accept| +language|dox||accept| +language|doy||accept| +language|doz||accept| +language|dpp||accept| +language|dra||accept| +language|drb||accept| +language|drc||accept| +language|drd||accept| +language|dre||accept| +language|drg||accept| +language|drh|khk|reject|preferred-value +language|dri||accept| +language|drl||accept| +language|drn||accept| +language|dro||accept| +language|drq||accept| +language|drr|kzk|reject|preferred-value +language|drs||accept| +language|drt||accept| +language|dru||accept| +language|drw|prs|reject|preferred-value +language|dry||accept| +language|dsb||accept| +language|dse||accept| +language|dsh||accept| +language|dsi||accept| +language|dsk||accept| +language|dsl||accept| +language|dsn||accept| +language|dso||accept| +language|dsq||accept| +language|dsz||accept| +language|dta||accept| +language|dtb||accept| +language|dtd||accept| +language|dth||accept| +language|dti||accept| +language|dtk||accept| +language|dtm||accept| +language|dtn||accept| +language|dto||accept| +language|dtp||accept| +language|dtr||accept| +language|dts||accept| +language|dtt||accept| +language|dtu||accept| +language|dty||accept| +language|dua||accept| +language|dub||accept| +language|duc||accept| +language|dud||accept| +language|due||accept| +language|duf||accept| +language|dug||accept| +language|duh||accept| +language|dui||accept| +language|duj||accept| +language|duk||accept| +language|dul||accept| +language|dum||accept| +language|dun||accept| +language|duo||accept| +language|dup||accept| +language|duq||accept| +language|dur||accept| +language|dus||accept| +language|duu||accept| +language|duv||accept| +language|duw||accept| +language|dux||accept| +language|duy||accept| +language|duz||accept| +language|dva||accept| +language|dwa||accept| +language|dwk||accept| +language|dwl||accept| +language|dwr||accept| +language|dws||accept| +language|dwu||accept| +language|dww||accept| +language|dwy||accept| +language|dwz||accept| +language|dya||accept| +language|dyb||accept| +language|dyd||accept| +language|dyg||accept| +language|dyi||accept| +language|dyl||accept| +language|dym||accept| +language|dyn||accept| +language|dyo||accept| +language|dyr||accept| +language|dyu||accept| +language|dyy||accept| +language|dza||accept| +language|dzd||accept| +language|dze||accept| +language|dzg||accept| +language|dzl||accept| +language|dzn||accept| +language|eaa||accept| +language|ebc||accept| +language|ebg||accept| +language|ebk||accept| +language|ebo||accept| +language|ebr||accept| +language|ebu||accept| +language|ecr||accept| +language|ecs||accept| +language|ecy||accept| +language|eee||accept| +language|efa||accept| +language|efe||accept| +language|efi||accept| +language|ega||accept| +language|egl||accept| +language|egm||accept| +language|ego||accept| +language|egx||accept| +language|egy||accept| +language|ehs||accept| +language|ehu||accept| +language|eip||accept| +language|eit||accept| +language|eiv||accept| +language|eja||accept| +language|eka||accept| +language|ekc||accept| +language|eke||accept| +language|ekg||accept| +language|eki||accept| +language|ekk||accept| +language|ekl||accept| +language|ekm||accept| +language|eko||accept| +language|ekp||accept| +language|ekr||accept| +language|eky||accept| +language|ele||accept| +language|elh||accept| +language|eli||accept| +language|elk||accept| +language|elm||accept| +language|elo||accept| +language|elp||accept| +language|elu||accept| +language|elx||accept| +language|ema||accept| +language|emb||accept| +language|eme||accept| +language|emg||accept| +language|emi||accept| +language|emk||accept| +language|emm||accept| +language|emn||accept| +language|emo||accept| +language|emp||accept| +language|emq||accept| +language|ems||accept| +language|emu||accept| +language|emw||accept| +language|emx||accept| +language|emy||accept| +language|emz||accept| +language|ena||accept| +language|enb||accept| +language|enc||accept| +language|end||accept| +language|enf||accept| +language|enh||accept| +language|enl||accept| +language|enm||accept| +language|enn||accept| +language|eno||accept| +language|enq||accept| +language|enr||accept| +language|enu||accept| +language|env||accept| +language|enw||accept| +language|enx||accept| +language|eot||accept| +language|epi||accept| +language|era||accept| +language|erg||accept| +language|erh||accept| +language|eri||accept| +language|erk||accept| +language|ero||accept| +language|err||accept| +language|ers||accept| +language|ert||accept| +language|erw||accept| +language|ese||accept| +language|esg||accept| +language|esh||accept| +language|esi||accept| +language|esk||accept| +language|esl||accept| +language|esm||accept| +language|esn||accept| +language|eso||accept| +language|esq||accept| +language|ess||accept| +language|esu||accept| +language|esx||accept| +language|esy||accept| +language|etb||accept| +language|etc||accept| +language|eth||accept| +language|etn||accept| +language|eto||accept| +language|etr||accept| +language|ets||accept| +language|ett||accept| +language|etu||accept| +language|etx||accept| +language|etz||accept| +language|eud||accept| +language|euq||accept| +language|eve||accept| +language|evh||accept| +language|evn||accept| +language|ewo||accept| +language|ext||accept| +language|eya||accept| +language|eyo||accept| +language|eza||accept| +language|eze||accept| +language|faa||accept| +language|fab||accept| +language|fad||accept| +language|faf||accept| +language|fag||accept| +language|fah||accept| +language|fai||accept| +language|faj||accept| +language|fak||accept| +language|fal||accept| +language|fam||accept| +language|fan||accept| +language|fap||accept| +language|far||accept| +language|fat||accept| +language|fau||accept| +language|fax||accept| +language|fay||accept| +language|faz||accept| +language|fbl||accept| +language|fcs||accept| +language|fer||accept| +language|ffi||accept| +language|ffm||accept| +language|fgr||accept| +language|fia||accept| +language|fie||accept| +language|fif||accept| +language|fil||accept| +language|fip||accept| +language|fir||accept| +language|fit||accept| +language|fiu||accept| +language|fiw||accept| +language|fkk||accept| +language|fkv||accept| +language|fla||accept| +language|flh||accept| +language|fli||accept| +language|fll||accept| +language|fln||accept| +language|flr||accept| +language|fly||accept| +language|fmp||accept| +language|fmu||accept| +language|fnb||accept| +language|fng||accept| +language|fni||accept| +language|fod||accept| +language|foi||accept| +language|fom||accept| +language|fon||accept| +language|for||accept| +language|fos||accept| +language|fox||accept| +language|fpe||accept| +language|fqs||accept| +language|frc||accept| +language|frd||accept| +language|frk||accept| +language|frm||accept| +language|fro||accept| +language|frp||accept| +language|frq||accept| +language|frr||accept| +language|frs||accept| +language|frt||accept| +language|fse||accept| +language|fsl||accept| +language|fss||accept| +language|fub||accept| +language|fuc||accept| +language|fud||accept| +language|fue||accept| +language|fuf||accept| +language|fuh||accept| +language|fui||accept| +language|fuj||accept| +language|fum||accept| +language|fun||accept| +language|fuq||accept| +language|fur||accept| +language|fut||accept| +language|fuu||accept| +language|fuv||accept| +language|fuy||accept| +language|fvr||accept| +language|fwa||accept| +language|fwe||accept| +language|gaa||accept| +language|gab||accept| +language|gac||accept| +language|gad||accept| +language|gae||accept| +language|gaf||accept| +language|gag||accept| +language|gah||accept| +language|gai||accept| +language|gaj||accept| +language|gak||accept| +language|gal||accept| +language|gam||accept| +language|gan||accept| +language|gao||accept| +language|gap||accept| +language|gaq||accept| +language|gar||accept| +language|gas||accept| +language|gat||accept| +language|gau||accept| +language|gav|dev|reject|preferred-value +language|gaw||accept| +language|gax||accept| +language|gay||accept| +language|gaz||accept| +language|gba||accept| +language|gbb||accept| +language|gbc||accept| +language|gbd||accept| +language|gbe||accept| +language|gbf||accept| +language|gbg||accept| +language|gbh||accept| +language|gbi||accept| +language|gbj||accept| +language|gbk||accept| +language|gbl||accept| +language|gbm||accept| +language|gbn||accept| +language|gbo||accept| +language|gbp||accept| +language|gbq||accept| +language|gbr||accept| +language|gbs||accept| +language|gbu||accept| +language|gbv||accept| +language|gbw||accept| +language|gbx||accept| +language|gby||accept| +language|gbz||accept| +language|gcc||accept| +language|gcd||accept| +language|gce||accept| +language|gcf||accept| +language|gcl||accept| +language|gcn||accept| +language|gcr||accept| +language|gct||accept| +language|gda||accept| +language|gdb||accept| +language|gdc||accept| +language|gdd||accept| +language|gde||accept| +language|gdf||accept| +language|gdg||accept| +language|gdh||accept| +language|gdi||accept| +language|gdj||accept| +language|gdk||accept| +language|gdl||accept| +language|gdm||accept| +language|gdn||accept| +language|gdo||accept| +language|gdq||accept| +language|gdr||accept| +language|gds||accept| +language|gdt||accept| +language|gdu||accept| +language|gdx||accept| +language|gea||accept| +language|geb||accept| +language|gec||accept| +language|ged||accept| +language|gef||accept| +language|geg||accept| +language|geh||accept| +language|gei||accept| +language|gej||accept| +language|gek||accept| +language|gel||accept| +language|gem||accept| +language|geq||accept| +language|ges||accept| +language|gev||accept| +language|gew||accept| +language|gex||accept| +language|gey||accept| +language|gez||accept| +language|gfk||accept| +language|gft||accept| +language|gfx|vaj|reject|preferred-value +language|gga||accept| +language|ggb||accept| +language|ggd||accept| +language|gge||accept| +language|ggg||accept| +language|ggk||accept| +language|ggl||accept| +language|ggn|gvr|reject|preferred-value +language|ggo||accept| +language|ggr||accept| +language|ggt||accept| +language|ggu||accept| +language|ggw||accept| +language|gha||accept| +language|ghc||accept| +language|ghe||accept| +language|ghh||accept| +language|ghk||accept| +language|ghl||accept| +language|ghn||accept| +language|gho||accept| +language|ghr||accept| +language|ghs||accept| +language|ght||accept| +language|gia||accept| +language|gib||accept| +language|gic||accept| +language|gid||accept| +language|gie||accept| +language|gig||accept| +language|gih||accept| +language|gii||accept| +language|gil||accept| +language|gim||accept| +language|gin||accept| +language|gio||accept| +language|gip||accept| +language|giq||accept| +language|gir||accept| +language|gis||accept| +language|git||accept| +language|giu||accept| +language|giw||accept| +language|gix||accept| +language|giy||accept| +language|giz||accept| +language|gji||accept| +language|gjk||accept| +language|gjm||accept| +language|gjn||accept| +language|gjr||accept| +language|gju||accept| +language|gka||accept| +language|gkd||accept| +language|gke||accept| +language|gkn||accept| +language|gko||accept| +language|gkp||accept| +language|gku||accept| +language|glb||accept| +language|glc||accept| +language|gld||accept| +language|glh||accept| +language|gli|kzk|reject|preferred-value +language|glj||accept| +language|glk||accept| +language|gll||accept| +language|glo||accept| +language|glr||accept| +language|glu||accept| +language|glw||accept| +language|gly||accept| +language|gma||accept| +language|gmb||accept| +language|gmd||accept| +language|gme||accept| +language|gmg||accept| +language|gmh||accept| +language|gml||accept| +language|gmm||accept| +language|gmn||accept| +language|gmq||accept| +language|gmr||accept| +language|gmu||accept| +language|gmv||accept| +language|gmw||accept| +language|gmx||accept| +language|gmy||accept| +language|gmz||accept| +language|gna||accept| +language|gnb||accept| +language|gnc||accept| +language|gnd||accept| +language|gne||accept| +language|gng||accept| +language|gnh||accept| +language|gni||accept| +language|gnj||accept| +language|gnk||accept| +language|gnl||accept| +language|gnm||accept| +language|gnn||accept| +language|gno||accept| +language|gnq||accept| +language|gnr||accept| +language|gnt||accept| +language|gnu||accept| +language|gnw||accept| +language|gnz||accept| +language|goa||accept| +language|gob||accept| +language|goc||accept| +language|god||accept| +language|goe||accept| +language|gof||accept| +language|gog||accept| +language|goh||accept| +language|goi||accept| +language|goj||accept| +language|gok||accept| +language|gol||accept| +language|gom||accept| +language|gon||accept| +language|goo||accept| +language|gop||accept| +language|goq||accept| +language|gor||accept| +language|gos||accept| +language|got||accept| +language|gou||accept| +language|gov||accept| +language|gow||accept| +language|gox||accept| +language|goy||accept| +language|goz||accept| +language|gpa||accept| +language|gpe||accept| +language|gpn||accept| +language|gqa||accept| +language|gqi||accept| +language|gqn||accept| +language|gqr||accept| +language|gqu||accept| +language|gra||accept| +language|grb||accept| +language|grc||accept| +language|grd||accept| +language|grg||accept| +language|grh||accept| +language|gri||accept| +language|grj||accept| +language|grk||accept| +language|grm||accept| +language|gro||accept| +language|grq||accept| +language|grr||accept| +language|grs||accept| +language|grt||accept| +language|gru||accept| +language|grv||accept| +language|grw||accept| +language|grx||accept| +language|gry||accept| +language|grz||accept| +language|gse||accept| +language|gsg||accept| +language|gsl||accept| +language|gsm||accept| +language|gsn||accept| +language|gso||accept| +language|gsp||accept| +language|gss||accept| +language|gsw||accept| +language|gta||accept| +language|gti|nyc|reject|preferred-value +language|gtu||accept| +language|gua||accept| +language|gub||accept| +language|guc||accept| +language|gud||accept| +language|gue||accept| +language|guf||accept| +language|gug||accept| +language|guh||accept| +language|gui||accept| +language|guk||accept| +language|gul||accept| +language|gum||accept| +language|gun||accept| +language|guo||accept| +language|gup||accept| +language|guq||accept| +language|gur||accept| +language|gus||accept| +language|gut||accept| +language|guu||accept| +language|guv|duz|reject|preferred-value +language|guw||accept| +language|gux||accept| +language|guz||accept| +language|gva||accept| +language|gvc||accept| +language|gve||accept| +language|gvf||accept| +language|gvj||accept| +language|gvl||accept| +language|gvm||accept| +language|gvn||accept| +language|gvo||accept| +language|gvp||accept| +language|gvr||accept| +language|gvs||accept| +language|gvy||accept| +language|gwa||accept| +language|gwb||accept| +language|gwc||accept| +language|gwd||accept| +language|gwe||accept| +language|gwf||accept| +language|gwg||accept| +language|gwi||accept| +language|gwj||accept| +language|gwm||accept| +language|gwn||accept| +language|gwr||accept| +language|gwt||accept| +language|gwu||accept| +language|gww||accept| +language|gwx||accept| +language|gxx||accept| +language|gya||accept| +language|gyb||accept| +language|gyd||accept| +language|gye||accept| +language|gyf||accept| +language|gyg||accept| +language|gyi||accept| +language|gyl||accept| +language|gym||accept| +language|gyn||accept| +language|gyo||accept| +language|gyr||accept| +language|gyy||accept| +language|gyz||accept| +language|gza||accept| +language|gzi||accept| +language|gzn||accept| +language|haa||accept| +language|hab||accept| +language|hac||accept| +language|had||accept| +language|hae||accept| +language|haf||accept| +language|hag||accept| +language|hah||accept| +language|hai||accept| +language|haj||accept| +language|hak||accept| +language|hal||accept| +language|ham||accept| +language|han||accept| +language|hao||accept| +language|hap||accept| +language|haq||accept| +language|har||accept| +language|has||accept| +language|hav||accept| +language|haw||accept| +language|hax||accept| +language|hay||accept| +language|haz||accept| +language|hba||accept| +language|hbb||accept| +language|hbn||accept| +language|hbo||accept| +language|hbu||accept| +language|hca||accept| +language|hch||accept| +language|hdn||accept| +language|hds||accept| +language|hdy||accept| +language|hea||accept| +language|hed||accept| +language|heg||accept| +language|heh||accept| +language|hei||accept| +language|hem||accept| +language|hgm||accept| +language|hgw||accept| +language|hhi||accept| +language|hhr||accept| +language|hhy||accept| +language|hia||accept| +language|hib||accept| +language|hid||accept| +language|hif||accept| +language|hig||accept| +language|hih||accept| +language|hii||accept| +language|hij||accept| +language|hik||accept| +language|hil||accept| +language|him||accept| +language|hio||accept| +language|hir||accept| +language|hit||accept| +language|hiw||accept| +language|hix||accept| +language|hji||accept| +language|hka||accept| +language|hke||accept| +language|hkh||accept| +language|hkk||accept| +language|hkn||accept| +language|hks||accept| +language|hla||accept| +language|hlb||accept| +language|hld||accept| +language|hle||accept| +language|hlt||accept| +language|hlu||accept| +language|hma||accept| +language|hmb||accept| +language|hmc||accept| +language|hmd||accept| +language|hme||accept| +language|hmf||accept| +language|hmg||accept| +language|hmh||accept| +language|hmi||accept| +language|hmj||accept| +language|hmk||accept| +language|hml||accept| +language|hmm||accept| +language|hmn||accept| +language|hmp||accept| +language|hmq||accept| +language|hmr||accept| +language|hms||accept| +language|hmt||accept| +language|hmu||accept| +language|hmv||accept| +language|hmw||accept| +language|hmx||accept| +language|hmy||accept| +language|hmz||accept| +language|hna||accept| +language|hnd||accept| +language|hne||accept| +language|hng||accept| +language|hnh||accept| +language|hni||accept| +language|hnj||accept| +language|hnm||accept| +language|hnn||accept| +language|hno||accept| +language|hns||accept| +language|hnu||accept| +language|hoa||accept| +language|hob||accept| +language|hoc||accept| +language|hod||accept| +language|hoe||accept| +language|hoh||accept| +language|hoi||accept| +language|hoj||accept| +language|hok||accept| +language|hol||accept| +language|hom||accept| +language|hoo||accept| +language|hop||accept| +language|hor||accept| +language|hos||accept| +language|hot||accept| +language|hov||accept| +language|how||accept| +language|hoy||accept| +language|hoz||accept| +language|hpo||accept| +language|hps||accept| +language|hra||accept| +language|hrc||accept| +language|hre||accept| +language|hrk||accept| +language|hrm||accept| +language|hro||accept| +language|hrp||accept| +language|hrr|jal|reject|preferred-value +language|hrt||accept| +language|hru||accept| +language|hrw||accept| +language|hrx||accept| +language|hrz||accept| +language|hsb||accept| +language|hsh||accept| +language|hsl||accept| +language|hsn||accept| +language|hss||accept| +language|hti||accept| +language|hto||accept| +language|hts||accept| +language|htu||accept| +language|htx||accept| +language|hub||accept| +language|huc||accept| +language|hud||accept| +language|hue||accept| +language|huf||accept| +language|hug||accept| +language|huh||accept| +language|hui||accept| +language|huj||accept| +language|huk||accept| +language|hul||accept| +language|hum||accept| +language|huo||accept| +language|hup||accept| +language|huq||accept| +language|hur||accept| +language|hus||accept| +language|hut||accept| +language|huu||accept| +language|huv||accept| +language|huw||accept| +language|hux||accept| +language|huy||accept| +language|huz||accept| +language|hvc||accept| +language|hve||accept| +language|hvk||accept| +language|hvn||accept| +language|hvv||accept| +language|hwa||accept| +language|hwc||accept| +language|hwo||accept| +language|hya||accept| +language|hyw||accept| +language|hyx||accept| +language|iai||accept| +language|ian||accept| +language|iap||accept| +language|iar||accept| +language|iba||accept| +language|ibb||accept| +language|ibd||accept| +language|ibe||accept| +language|ibg||accept| +language|ibh||accept| +language|ibi|opa|reject|preferred-value +language|ibl||accept| +language|ibm||accept| +language|ibn||accept| +language|ibr||accept| +language|ibu||accept| +language|iby||accept| +language|ica||accept| +language|ich||accept| +language|icl||accept| +language|icr||accept| +language|ida||accept| +language|idb||accept| +language|idc||accept| +language|idd||accept| +language|ide||accept| +language|idi||accept| +language|idr||accept| +language|ids||accept| +language|idt||accept| +language|idu||accept| +language|ifa||accept| +language|ifb||accept| +language|ife||accept| +language|iff||accept| +language|ifk||accept| +language|ifm||accept| +language|ifu||accept| +language|ify||accept| +language|igb||accept| +language|ige||accept| +language|igg||accept| +language|igl||accept| +language|igm||accept| +language|ign||accept| +language|igo||accept| +language|igs||accept| +language|igw||accept| +language|ihb||accept| +language|ihi||accept| +language|ihp||accept| +language|ihw||accept| +language|iin||accept| +language|iir||accept| +language|ijc||accept| +language|ije||accept| +language|ijj||accept| +language|ijn||accept| +language|ijo||accept| +language|ijs||accept| +language|ike||accept| +language|ikh||accept| +language|iki||accept| +language|ikk||accept| +language|ikl||accept| +language|iko||accept| +language|ikp||accept| +language|ikr||accept| +language|iks||accept| +language|ikt||accept| +language|ikv||accept| +language|ikw||accept| +language|ikx||accept| +language|ikz||accept| +language|ila||accept| +language|ilb||accept| +language|ilg||accept| +language|ili||accept| +language|ilk||accept| +language|ill||accept| +language|ilm||accept| +language|ilo||accept| +language|ilp||accept| +language|ils||accept| +language|ilu||accept| +language|ilv||accept| +language|ilw|gal|reject|preferred-value +language|ima||accept| +language|ime||accept| +language|imi||accept| +language|iml||accept| +language|imn||accept| +language|imo||accept| +language|imr||accept| +language|ims||accept| +language|imt||accept| +language|imy||accept| +language|inb||accept| +language|inc||accept| +language|ine||accept| +language|ing||accept| +language|inh||accept| +language|inj||accept| +language|inl||accept| +language|inm||accept| +language|inn||accept| +language|ino||accept| +language|inp||accept| +language|ins||accept| +language|int||accept| +language|inz||accept| +language|ior||accept| +language|iou||accept| +language|iow||accept| +language|ipi||accept| +language|ipo||accept| +language|iqu||accept| +language|iqw||accept| +language|ira||accept| +language|ire||accept| +language|irh||accept| +language|iri||accept| +language|irk||accept| +language|irn||accept| +language|iro||accept| +language|irr||accept| +language|iru||accept| +language|irx||accept| +language|iry||accept| +language|isa||accept| +language|isc||accept| +language|isd||accept| +language|ise||accept| +language|isg||accept| +language|ish||accept| +language|isi||accept| +language|isk||accept| +language|ism||accept| +language|isn||accept| +language|iso||accept| +language|isr||accept| +language|ist||accept| +language|isu||accept| +language|isv||accept| +language|itb||accept| +language|itc||accept| +language|itd||accept| +language|ite||accept| +language|iti||accept| +language|itk||accept| +language|itl||accept| +language|itm||accept| +language|ito||accept| +language|itr||accept| +language|its||accept| +language|itt||accept| +language|itv||accept| +language|itw||accept| +language|itx||accept| +language|ity||accept| +language|itz||accept| +language|ium||accept| +language|ivb||accept| +language|ivv||accept| +language|iwk||accept| +language|iwm||accept| +language|iwo||accept| +language|iws||accept| +language|ixc||accept| +language|ixl||accept| +language|iya||accept| +language|iyo||accept| +language|iyx||accept| +language|izh||accept| +language|izi||accept| +language|izm||accept| +language|izr||accept| +language|izz||accept| +language|jaa||accept| +language|jab||accept| +language|jac||accept| +language|jad||accept| +language|jae||accept| +language|jaf||accept| +language|jah||accept| +language|jaj||accept| +language|jak||accept| +language|jal||accept| +language|jam||accept| +language|jan||accept| +language|jao||accept| +language|jaq||accept| +language|jar||accept| +language|jas||accept| +language|jat||accept| +language|jau||accept| +language|jax||accept| +language|jay||accept| +language|jaz||accept| +language|jbe||accept| +language|jbi||accept| +language|jbj||accept| +language|jbk||accept| +language|jbm||accept| +language|jbn||accept| +language|jbo||accept| +language|jbr||accept| +language|jbt||accept| +language|jbu||accept| +language|jbw||accept| +language|jcs||accept| +language|jct||accept| +language|jda||accept| +language|jdg||accept| +language|jdt||accept| +language|jeb||accept| +language|jee||accept| +language|jeg|oyb|reject|preferred-value +language|jeh||accept| +language|jei||accept| +language|jek||accept| +language|jel||accept| +language|jen||accept| +language|jer||accept| +language|jet||accept| +language|jeu||accept| +language|jgb||accept| +language|jge||accept| +language|jgk||accept| +language|jgo||accept| +language|jhi||accept| +language|jhs||accept| +language|jia||accept| +language|jib||accept| +language|jic||accept| +language|jid||accept| +language|jie||accept| +language|jig||accept| +language|jih||accept| +language|jii||accept| +language|jil||accept| +language|jim||accept| +language|jio||accept| +language|jiq||accept| +language|jit||accept| +language|jiu||accept| +language|jiv||accept| +language|jiy||accept| +language|jje||accept| +language|jjr||accept| +language|jka||accept| +language|jkm||accept| +language|jko||accept| +language|jkp||accept| +language|jkr||accept| +language|jks||accept| +language|jku||accept| +language|jle||accept| +language|jls||accept| +language|jma||accept| +language|jmb||accept| +language|jmc||accept| +language|jmd||accept| +language|jmi||accept| +language|jml||accept| +language|jmn||accept| +language|jmr||accept| +language|jms||accept| +language|jmw||accept| +language|jmx||accept| +language|jna||accept| +language|jnd||accept| +language|jng||accept| +language|jni||accept| +language|jnj||accept| +language|jnl||accept| +language|jns||accept| +language|job||accept| +language|jod||accept| +language|jog||accept| +language|jor||accept| +language|jos||accept| +language|jow||accept| +language|jpa||accept| +language|jpr||accept| +language|jpx||accept| +language|jqr||accept| +language|jra||accept| +language|jrb||accept| +language|jrr||accept| +language|jrt||accept| +language|jru||accept| +language|jsl||accept| +language|jua||accept| +language|jub||accept| +language|juc||accept| +language|jud||accept| +language|juh||accept| +language|jui||accept| +language|juk||accept| +language|jul||accept| +language|jum||accept| +language|jun||accept| +language|juo||accept| +language|jup||accept| +language|jur||accept| +language|jus||accept| +language|jut||accept| +language|juu||accept| +language|juw||accept| +language|juy||accept| +language|jvd||accept| +language|jvn||accept| +language|jwi||accept| +language|jya||accept| +language|jye||accept| +language|jyy||accept| +language|kaa||accept| +language|kab||accept| +language|kac||accept| +language|kad||accept| +language|kae||accept| +language|kaf||accept| +language|kag||accept| +language|kah||accept| +language|kai||accept| +language|kaj||accept| +language|kak||accept| +language|kam||accept| +language|kao||accept| +language|kap||accept| +language|kaq||accept| +language|kar||accept| +language|kav||accept| +language|kaw||accept| +language|kax||accept| +language|kay||accept| +language|kba||accept| +language|kbb||accept| +language|kbc||accept| +language|kbd||accept| +language|kbe||accept| +language|kbf||accept| +language|kbg||accept| +language|kbh||accept| +language|kbi||accept| +language|kbj||accept| +language|kbk||accept| +language|kbl||accept| +language|kbm||accept| +language|kbn||accept| +language|kbo||accept| +language|kbp||accept| +language|kbq||accept| +language|kbr||accept| +language|kbs||accept| +language|kbt||accept| +language|kbu||accept| +language|kbv||accept| +language|kbw||accept| +language|kbx||accept| +language|kby||accept| +language|kbz||accept| +language|kca||accept| +language|kcb||accept| +language|kcc||accept| +language|kcd||accept| +language|kce||accept| +language|kcf||accept| +language|kcg||accept| +language|kch||accept| +language|kci||accept| +language|kcj||accept| +language|kck||accept| +language|kcl||accept| +language|kcm||accept| +language|kcn||accept| +language|kco||accept| +language|kcp||accept| +language|kcq||accept| +language|kcr||accept| +language|kcs||accept| +language|kct||accept| +language|kcu||accept| +language|kcv||accept| +language|kcw||accept| +language|kcx||accept| +language|kcy||accept| +language|kcz||accept| +language|kda||accept| +language|kdc||accept| +language|kdd||accept| +language|kde||accept| +language|kdf||accept| +language|kdg||accept| +language|kdh||accept| +language|kdi||accept| +language|kdj||accept| +language|kdk||accept| +language|kdl||accept| +language|kdm||accept| +language|kdn||accept| +language|kdo||accept| +language|kdp||accept| +language|kdq||accept| +language|kdr||accept| +language|kdt||accept| +language|kdu||accept| +language|kdv||accept| +language|kdw||accept| +language|kdx||accept| +language|kdy||accept| +language|kdz||accept| +language|kea||accept| +language|keb||accept| +language|kec||accept| +language|ked||accept| +language|kee||accept| +language|kef||accept| +language|keg||accept| +language|keh||accept| +language|kei||accept| +language|kej||accept| +language|kek||accept| +language|kel||accept| +language|kem||accept| +language|ken||accept| +language|keo||accept| +language|kep||accept| +language|keq||accept| +language|ker||accept| +language|kes||accept| +language|ket||accept| +language|keu||accept| +language|kev||accept| +language|kew||accept| +language|kex||accept| +language|key||accept| +language|kez||accept| +language|kfa||accept| +language|kfb||accept| +language|kfc||accept| +language|kfd||accept| +language|kfe||accept| +language|kff||accept| +language|kfg||accept| +language|kfh||accept| +language|kfi||accept| +language|kfj||accept| +language|kfk||accept| +language|kfl||accept| +language|kfm||accept| +language|kfn||accept| +language|kfo||accept| +language|kfp||accept| +language|kfq||accept| +language|kfr||accept| +language|kfs||accept| +language|kft||accept| +language|kfu||accept| +language|kfv||accept| +language|kfw||accept| +language|kfx||accept| +language|kfy||accept| +language|kfz||accept| +language|kga||accept| +language|kgb||accept| +language|kgc|tdf|reject|preferred-value +language|kgd||accept| +language|kge||accept| +language|kgf||accept| +language|kgg||accept| +language|kgh|kml|reject|preferred-value +language|kgi||accept| +language|kgj||accept| +language|kgk||accept| +language|kgl||accept| +language|kgm|plu|reject|preferred-value +language|kgn||accept| +language|kgo||accept| +language|kgp||accept| +language|kgq||accept| +language|kgr||accept| +language|kgs||accept| +language|kgt||accept| +language|kgu||accept| +language|kgv||accept| +language|kgw||accept| +language|kgx||accept| +language|kgy||accept| +language|kha||accept| +language|khb||accept| +language|khc||accept| +language|khd||accept| +language|khe||accept| +language|khf||accept| +language|khg||accept| +language|khh||accept| +language|khi||accept| +language|khj||accept| +language|khk||accept| +language|khl||accept| +language|khn||accept| +language|kho||accept| +language|khp||accept| +language|khq||accept| +language|khr||accept| +language|khs||accept| +language|kht||accept| +language|khu||accept| +language|khv||accept| +language|khw||accept| +language|khx||accept| +language|khy||accept| +language|khz||accept| +language|kia||accept| +language|kib||accept| +language|kic||accept| +language|kid||accept| +language|kie||accept| +language|kif||accept| +language|kig||accept| +language|kih||accept| +language|kii||accept| +language|kij||accept| +language|kil||accept| +language|kim||accept| +language|kio||accept| +language|kip||accept| +language|kiq||accept| +language|kis||accept| +language|kit||accept| +language|kiu||accept| +language|kiv||accept| +language|kiw||accept| +language|kix||accept| +language|kiy||accept| +language|kiz||accept| +language|kja||accept| +language|kjb||accept| +language|kjc||accept| +language|kjd||accept| +language|kje||accept| +language|kjf||accept| +language|kjg||accept| +language|kjh||accept| +language|kji||accept| +language|kjj||accept| +language|kjk||accept| +language|kjl||accept| +language|kjm||accept| +language|kjn||accept| +language|kjo||accept| +language|kjp||accept| +language|kjq||accept| +language|kjr||accept| +language|kjs||accept| +language|kjt||accept| +language|kju||accept| +language|kjv||accept| +language|kjx||accept| +language|kjy||accept| +language|kjz||accept| +language|kka||accept| +language|kkb||accept| +language|kkc||accept| +language|kkd||accept| +language|kke||accept| +language|kkf||accept| +language|kkg||accept| +language|kkh||accept| +language|kki||accept| +language|kkj||accept| +language|kkk||accept| +language|kkl||accept| +language|kkm||accept| +language|kkn||accept| +language|kko||accept| +language|kkp||accept| +language|kkq||accept| +language|kkr||accept| +language|kks||accept| +language|kkt||accept| +language|kku||accept| +language|kkv||accept| +language|kkw||accept| +language|kkx||accept| +language|kky||accept| +language|kkz||accept| +language|kla||accept| +language|klb||accept| +language|klc||accept| +language|kld||accept| +language|kle||accept| +language|klf||accept| +language|klg||accept| +language|klh||accept| +language|kli||accept| +language|klj||accept| +language|klk||accept| +language|kll||accept| +language|klm||accept| +language|kln||accept| +language|klo||accept| +language|klp||accept| +language|klq||accept| +language|klr||accept| +language|kls||accept| +language|klt||accept| +language|klu||accept| +language|klv||accept| +language|klw||accept| +language|klx||accept| +language|kly||accept| +language|klz||accept| +language|kma||accept| +language|kmb||accept| +language|kmc||accept| +language|kmd||accept| +language|kme||accept| +language|kmf||accept| +language|kmg||accept| +language|kmh||accept| +language|kmi||accept| +language|kmj||accept| +language|kmk||accept| +language|kml||accept| +language|kmm||accept| +language|kmn||accept| +language|kmo||accept| +language|kmp||accept| +language|kmq||accept| +language|kmr||accept| +language|kms||accept| +language|kmt||accept| +language|kmu||accept| +language|kmv||accept| +language|kmw||accept| +language|kmx||accept| +language|kmy||accept| +language|kmz||accept| +language|kna||accept| +language|knb||accept| +language|knc||accept| +language|knd||accept| +language|kne||accept| +language|knf||accept| +language|kng||accept| +language|kni||accept| +language|knj||accept| +language|knk||accept| +language|knl||accept| +language|knm||accept| +language|knn||accept| +language|kno||accept| +language|knp||accept| +language|knq||accept| +language|knr||accept| +language|kns||accept| +language|knt||accept| +language|knu||accept| +language|knv||accept| +language|knw||accept| +language|knx||accept| +language|kny||accept| +language|knz||accept| +language|koa||accept| +language|koc||accept| +language|kod||accept| +language|koe||accept| +language|kof||accept| +language|kog||accept| +language|koh||accept| +language|koi||accept| +language|koj|kwv|reject|preferred-value +language|kok||accept| +language|kol||accept| +language|koo||accept| +language|kop||accept| +language|koq||accept| +language|kos||accept| +language|kot||accept| +language|kou||accept| +language|kov||accept| +language|kow||accept| +language|kox||accept| +language|koy||accept| +language|koz||accept| +language|kpa||accept| +language|kpb||accept| +language|kpc||accept| +language|kpd||accept| +language|kpe||accept| +language|kpf||accept| +language|kpg||accept| +language|kph||accept| +language|kpi||accept| +language|kpj||accept| +language|kpk||accept| +language|kpl||accept| +language|kpm||accept| +language|kpn||accept| +language|kpo||accept| +language|kpp||accept| +language|kpq||accept| +language|kpr||accept| +language|kps||accept| +language|kpt||accept| +language|kpu||accept| +language|kpv||accept| +language|kpw||accept| +language|kpx||accept| +language|kpy||accept| +language|kpz||accept| +language|kqa||accept| +language|kqb||accept| +language|kqc||accept| +language|kqd||accept| +language|kqe||accept| +language|kqf||accept| +language|kqg||accept| +language|kqh||accept| +language|kqi||accept| +language|kqj||accept| +language|kqk||accept| +language|kql||accept| +language|kqm||accept| +language|kqn||accept| +language|kqo||accept| +language|kqp||accept| +language|kqq||accept| +language|kqr||accept| +language|kqs||accept| +language|kqt||accept| +language|kqu||accept| +language|kqv||accept| +language|kqw||accept| +language|kqx||accept| +language|kqy||accept| +language|kqz||accept| +language|kra||accept| +language|krb||accept| +language|krc||accept| +language|krd||accept| +language|kre||accept| +language|krf||accept| +language|krh||accept| +language|kri||accept| +language|krj||accept| +language|krk||accept| +language|krl||accept| +language|krm|bmf|reject|preferred-value +language|krn||accept| +language|kro||accept| +language|krp||accept| +language|krr||accept| +language|krs||accept| +language|krt||accept| +language|kru||accept| +language|krv||accept| +language|krw||accept| +language|krx||accept| +language|kry||accept| +language|krz||accept| +language|ksa||accept| +language|ksb||accept| +language|ksc||accept| +language|ksd||accept| +language|kse||accept| +language|ksf||accept| +language|ksg||accept| +language|ksh||accept| +language|ksi||accept| +language|ksj||accept| +language|ksk||accept| +language|ksl||accept| +language|ksm||accept| +language|ksn||accept| +language|kso||accept| +language|ksp||accept| +language|ksq||accept| +language|ksr||accept| +language|kss||accept| +language|kst||accept| +language|ksu||accept| +language|ksv||accept| +language|ksw||accept| +language|ksx||accept| +language|ksy||accept| +language|ksz||accept| +language|kta||accept| +language|ktb||accept| +language|ktc||accept| +language|ktd||accept| +language|kte||accept| +language|ktf||accept| +language|ktg||accept| +language|kth||accept| +language|kti||accept| +language|ktj||accept| +language|ktk||accept| +language|ktl||accept| +language|ktm||accept| +language|ktn||accept| +language|kto||accept| +language|ktp||accept| +language|ktq||accept| +language|ktr|dtp|reject|preferred-value +language|kts||accept| +language|ktt||accept| +language|ktu||accept| +language|ktv||accept| +language|ktw||accept| +language|ktx||accept| +language|kty||accept| +language|ktz||accept| +language|kub||accept| +language|kuc||accept| +language|kud||accept| +language|kue||accept| +language|kuf||accept| +language|kug||accept| +language|kuh||accept| +language|kui||accept| +language|kuj||accept| +language|kuk||accept| +language|kul||accept| +language|kum||accept| +language|kun||accept| +language|kuo||accept| +language|kup||accept| +language|kuq||accept| +language|kus||accept| +language|kut||accept| +language|kuu||accept| +language|kuv||accept| +language|kuw||accept| +language|kux||accept| +language|kuy||accept| +language|kuz||accept| +language|kva||accept| +language|kvb||accept| +language|kvc||accept| +language|kvd||accept| +language|kve||accept| +language|kvf||accept| +language|kvg||accept| +language|kvh||accept| +language|kvi||accept| +language|kvj||accept| +language|kvk||accept| +language|kvl||accept| +language|kvm||accept| +language|kvn||accept| +language|kvo||accept| +language|kvp||accept| +language|kvq||accept| +language|kvr||accept| +language|kvs|gdj|reject|preferred-value +language|kvt||accept| +language|kvu||accept| +language|kvv||accept| +language|kvw||accept| +language|kvx||accept| +language|kvy||accept| +language|kvz||accept| +language|kwa||accept| +language|kwb||accept| +language|kwc||accept| +language|kwd||accept| +language|kwe||accept| +language|kwf||accept| +language|kwg||accept| +language|kwh||accept| +language|kwi||accept| +language|kwj||accept| +language|kwk||accept| +language|kwl||accept| +language|kwm||accept| +language|kwn||accept| +language|kwo||accept| +language|kwp||accept| +language|kwq|yam|reject|preferred-value +language|kwr||accept| +language|kws||accept| +language|kwt||accept| +language|kwu||accept| +language|kwv||accept| +language|kww||accept| +language|kwx||accept| +language|kwy||accept| +language|kwz||accept| +language|kxa||accept| +language|kxb||accept| +language|kxc||accept| +language|kxd||accept| +language|kxe|tvd|reject|preferred-value +language|kxf||accept| +language|kxh||accept| +language|kxi||accept| +language|kxj||accept| +language|kxk||accept| +language|kxl|kru|reject|preferred-value +language|kxm||accept| +language|kxn||accept| +language|kxo||accept| +language|kxp||accept| +language|kxq||accept| +language|kxr||accept| +language|kxs||accept| +language|kxt||accept| +language|kxu||accept| +language|kxv||accept| +language|kxw||accept| +language|kxx||accept| +language|kxy||accept| +language|kxz||accept| +language|kya||accept| +language|kyb||accept| +language|kyc||accept| +language|kyd||accept| +language|kye||accept| +language|kyf||accept| +language|kyg||accept| +language|kyh||accept| +language|kyi||accept| +language|kyj||accept| +language|kyk||accept| +language|kyl||accept| +language|kym||accept| +language|kyn||accept| +language|kyo||accept| +language|kyp||accept| +language|kyq||accept| +language|kyr||accept| +language|kys||accept| +language|kyt||accept| +language|kyu||accept| +language|kyv||accept| +language|kyw||accept| +language|kyx||accept| +language|kyy||accept| +language|kyz||accept| +language|kza||accept| +language|kzb||accept| +language|kzc||accept| +language|kzd||accept| +language|kze||accept| +language|kzf||accept| +language|kzg||accept| +language|kzh||accept| +language|kzi||accept| +language|kzj|dtp|reject|preferred-value +language|kzk||accept| +language|kzl||accept| +language|kzm||accept| +language|kzn||accept| +language|kzo||accept| +language|kzp||accept| +language|kzq||accept| +language|kzr||accept| +language|kzs||accept| +language|kzt|dtp|reject|preferred-value +language|kzu||accept| +language|kzv||accept| +language|kzw||accept| +language|kzx||accept| +language|kzy||accept| +language|kzz||accept| +language|laa||accept| +language|lab||accept| +language|lac||accept| +language|lad||accept| +language|lae||accept| +language|laf||accept| +language|lag||accept| +language|lah||accept| +language|lai||accept| +language|laj||accept| +language|lak|ksp|reject|preferred-value +language|lal||accept| +language|lam||accept| +language|lan||accept| +language|lap||accept| +language|laq||accept| +language|lar||accept| +language|las||accept| +language|lau||accept| +language|law||accept| +language|lax||accept| +language|lay||accept| +language|laz||accept| +language|lba||accept| +language|lbb||accept| +language|lbc||accept| +language|lbe||accept| +language|lbf||accept| +language|lbg||accept| +language|lbi||accept| +language|lbj||accept| +language|lbk||accept| +language|lbl||accept| +language|lbm||accept| +language|lbn||accept| +language|lbo||accept| +language|lbq||accept| +language|lbr||accept| +language|lbs||accept| +language|lbt||accept| +language|lbu||accept| +language|lbv||accept| +language|lbw||accept| +language|lbx||accept| +language|lby||accept| +language|lbz||accept| +language|lcc||accept| +language|lcd||accept| +language|lce||accept| +language|lcf||accept| +language|lch||accept| +language|lcl||accept| +language|lcm||accept| +language|lcp||accept| +language|lcq||accept| +language|lcs||accept| +language|lda||accept| +language|ldb||accept| +language|ldd||accept| +language|ldg||accept| +language|ldh||accept| +language|ldi||accept| +language|ldj||accept| +language|ldk||accept| +language|ldl||accept| +language|ldm||accept| +language|ldn||accept| +language|ldo||accept| +language|ldp||accept| +language|ldq||accept| +language|lea||accept| +language|leb||accept| +language|lec||accept| +language|led||accept| +language|lee||accept| +language|lef||accept| +language|leg||accept| +language|leh||accept| +language|lei||accept| +language|lej||accept| +language|lek||accept| +language|lel||accept| +language|lem||accept| +language|len||accept| +language|leo||accept| +language|lep||accept| +language|leq||accept| +language|ler||accept| +language|les||accept| +language|let||accept| +language|leu||accept| +language|lev||accept| +language|lew||accept| +language|lex||accept| +language|ley||accept| +language|lez||accept| +language|lfa||accept| +language|lfb||accept| +language|lfn||accept| +language|lga||accept| +language|lgb||accept| +language|lgg||accept| +language|lgh||accept| +language|lgi||accept| +language|lgk||accept| +language|lgl||accept| +language|lgm||accept| +language|lgn||accept| +language|lgo||accept| +language|lgq||accept| +language|lgr||accept| +language|lgs||accept| +language|lgt||accept| +language|lgu||accept| +language|lgz||accept| +language|lha||accept| +language|lhh||accept| +language|lhi||accept| +language|lhl||accept| +language|lhm||accept| +language|lhn||accept| +language|lhp||accept| +language|lhs||accept| +language|lht||accept| +language|lhu||accept| +language|lia||accept| +language|lib||accept| +language|lic||accept| +language|lid||accept| +language|lie||accept| +language|lif||accept| +language|lig||accept| +language|lih||accept| +language|lii|raq|reject|preferred-value +language|lij||accept| +language|lik||accept| +language|lil||accept| +language|lio||accept| +language|lip||accept| +language|liq||accept| +language|lir||accept| +language|lis||accept| +language|liu||accept| +language|liv||accept| +language|liw||accept| +language|lix||accept| +language|liy||accept| +language|liz||accept| +language|lja||accept| +language|lje||accept| +language|lji||accept| +language|ljl||accept| +language|ljp||accept| +language|ljw||accept| +language|ljx||accept| +language|lka||accept| +language|lkb||accept| +language|lkc||accept| +language|lkd||accept| +language|lke||accept| +language|lkh||accept| +language|lki||accept| +language|lkj||accept| +language|lkl||accept| +language|lkm||accept| +language|lkn||accept| +language|lko||accept| +language|lkr||accept| +language|lks||accept| +language|lkt||accept| +language|lku||accept| +language|lky||accept| +language|lla||accept| +language|llb||accept| +language|llc||accept| +language|lld||accept| +language|lle||accept| +language|llf||accept| +language|llg||accept| +language|llh||accept| +language|lli||accept| +language|llj||accept| +language|llk||accept| +language|lll||accept| +language|llm||accept| +language|lln||accept| +language|llo|ngt|reject|preferred-value +language|llp||accept| +language|llq||accept| +language|lls||accept| +language|llu||accept| +language|llx||accept| +language|lma||accept| +language|lmb||accept| +language|lmc||accept| +language|lmd||accept| +language|lme||accept| +language|lmf||accept| +language|lmg||accept| +language|lmh||accept| +language|lmi||accept| +language|lmj||accept| +language|lmk||accept| +language|lml||accept| +language|lmm|rmx|reject|preferred-value +language|lmn||accept| +language|lmo||accept| +language|lmp||accept| +language|lmq||accept| +language|lmr||accept| +language|lmu||accept| +language|lmv||accept| +language|lmw||accept| +language|lmx||accept| +language|lmy||accept| +language|lmz||accept| +language|lna||accept| +language|lnb||accept| +language|lnd||accept| +language|lng||accept| +language|lnh||accept| +language|lni||accept| +language|lnj||accept| +language|lnl||accept| +language|lnm||accept| +language|lnn||accept| +language|lno||accept| +language|lns||accept| +language|lnu||accept| +language|lnw||accept| +language|lnz||accept| +language|loa||accept| +language|lob||accept| +language|loc||accept| +language|loe||accept| +language|lof||accept| +language|log||accept| +language|loh||accept| +language|loi||accept| +language|loj||accept| +language|lok||accept| +language|lol||accept| +language|lom||accept| +language|lon||accept| +language|loo||accept| +language|lop||accept| +language|loq||accept| +language|lor||accept| +language|los||accept| +language|lot||accept| +language|lou||accept| +language|lov||accept| +language|low||accept| +language|lox||accept| +language|loy||accept| +language|loz||accept| +language|lpa||accept| +language|lpe||accept| +language|lpn||accept| +language|lpo||accept| +language|lpx||accept| +language|lqr||accept| +language|lra||accept| +language|lrc||accept| +language|lre||accept| +language|lrg||accept| +language|lri||accept| +language|lrk||accept| +language|lrl||accept| +language|lrm||accept| +language|lrn||accept| +language|lro||accept| +language|lrr||accept| +language|lrt||accept| +language|lrv||accept| +language|lrz||accept| +language|lsa||accept| +language|lsb||accept| +language|lsc||accept| +language|lsd||accept| +language|lse||accept| +language|lsg||accept| +language|lsh||accept| +language|lsi||accept| +language|lsl||accept| +language|lsm||accept| +language|lsn||accept| +language|lso||accept| +language|lsp||accept| +language|lsr||accept| +language|lss||accept| +language|lst||accept| +language|lsv||accept| +language|lsw||accept| +language|lsy||accept| +language|ltc||accept| +language|ltg||accept| +language|lth||accept| +language|lti||accept| +language|ltn||accept| +language|lto||accept| +language|lts||accept| +language|ltu||accept| +language|lua||accept| +language|luc||accept| +language|lud||accept| +language|lue||accept| +language|luf||accept| +language|luh||accept| +language|lui||accept| +language|luj||accept| +language|luk||accept| +language|lul||accept| +language|lum||accept| +language|lun||accept| +language|luo||accept| +language|lup||accept| +language|luq||accept| +language|lur||accept| +language|lus||accept| +language|lut||accept| +language|luu||accept| +language|luv||accept| +language|luw||accept| +language|luy||accept| +language|luz||accept| +language|lva||accept| +language|lvi||accept| +language|lvk||accept| +language|lvl||accept| +language|lvs||accept| +language|lvu||accept| +language|lwa||accept| +language|lwe||accept| +language|lwg||accept| +language|lwh||accept| +language|lwl||accept| +language|lwm||accept| +language|lwo||accept| +language|lws||accept| +language|lwt||accept| +language|lwu||accept| +language|lww||accept| +language|lxm||accept| +language|lya||accept| +language|lyg||accept| +language|lyn||accept| +language|lzh||accept| +language|lzl||accept| +language|lzn||accept| +language|lzz||accept| +language|maa||accept| +language|mab||accept| +language|mad||accept| +language|mae||accept| +language|maf||accept| +language|mag||accept| +language|mai||accept| +language|maj||accept| +language|mak||accept| +language|mam||accept| +language|man||accept| +language|map||accept| +language|maq||accept| +language|mas||accept| +language|mat||accept| +language|mau||accept| +language|mav||accept| +language|maw||accept| +language|max||accept| +language|maz||accept| +language|mba||accept| +language|mbb||accept| +language|mbc||accept| +language|mbd||accept| +language|mbe||accept| +language|mbf||accept| +language|mbh||accept| +language|mbi||accept| +language|mbj||accept| +language|mbk||accept| +language|mbl||accept| +language|mbm||accept| +language|mbn||accept| +language|mbo||accept| +language|mbp||accept| +language|mbq||accept| +language|mbr||accept| +language|mbs||accept| +language|mbt||accept| +language|mbu||accept| +language|mbv||accept| +language|mbw||accept| +language|mbx||accept| +language|mby||accept| +language|mbz||accept| +language|mca||accept| +language|mcb||accept| +language|mcc||accept| +language|mcd||accept| +language|mce||accept| +language|mcf||accept| +language|mcg||accept| +language|mch||accept| +language|mci||accept| +language|mcj||accept| +language|mck||accept| +language|mcl||accept| +language|mcm||accept| +language|mcn||accept| +language|mco||accept| +language|mcp||accept| +language|mcq||accept| +language|mcr||accept| +language|mcs||accept| +language|mct||accept| +language|mcu||accept| +language|mcv||accept| +language|mcw||accept| +language|mcx||accept| +language|mcy||accept| +language|mcz||accept| +language|mda||accept| +language|mdb||accept| +language|mdc||accept| +language|mdd||accept| +language|mde||accept| +language|mdf||accept| +language|mdg||accept| +language|mdh||accept| +language|mdi||accept| +language|mdj||accept| +language|mdk||accept| +language|mdl||accept| +language|mdm||accept| +language|mdn||accept| +language|mdp||accept| +language|mdq||accept| +language|mdr||accept| +language|mds||accept| +language|mdt||accept| +language|mdu||accept| +language|mdv||accept| +language|mdw||accept| +language|mdx||accept| +language|mdy||accept| +language|mdz||accept| +language|mea||accept| +language|meb||accept| +language|mec||accept| +language|med||accept| +language|mee||accept| +language|mef||accept| +language|meg|cir|reject|preferred-value +language|meh||accept| +language|mei||accept| +language|mej||accept| +language|mek||accept| +language|mel||accept| +language|mem||accept| +language|men||accept| +language|meo||accept| +language|mep||accept| +language|meq||accept| +language|mer||accept| +language|mes||accept| +language|met||accept| +language|meu||accept| +language|mev||accept| +language|mew||accept| +language|mey||accept| +language|mez||accept| +language|mfa||accept| +language|mfb||accept| +language|mfc||accept| +language|mfd||accept| +language|mfe||accept| +language|mff||accept| +language|mfg||accept| +language|mfh||accept| +language|mfi||accept| +language|mfj||accept| +language|mfk||accept| +language|mfl||accept| +language|mfm||accept| +language|mfn||accept| +language|mfo||accept| +language|mfp||accept| +language|mfq||accept| +language|mfr||accept| +language|mfs||accept| +language|mft||accept| +language|mfu||accept| +language|mfv||accept| +language|mfw||accept| +language|mfx||accept| +language|mfy||accept| +language|mfz||accept| +language|mga||accept| +language|mgb||accept| +language|mgc||accept| +language|mgd||accept| +language|mge||accept| +language|mgf||accept| +language|mgg||accept| +language|mgh||accept| +language|mgi||accept| +language|mgj||accept| +language|mgk||accept| +language|mgl||accept| +language|mgm||accept| +language|mgn||accept| +language|mgo||accept| +language|mgp||accept| +language|mgq||accept| +language|mgr||accept| +language|mgs||accept| +language|mgt||accept| +language|mgu||accept| +language|mgv||accept| +language|mgw||accept| +language|mgx||accept| +language|mgy||accept| +language|mgz||accept| +language|mha||accept| +language|mhb||accept| +language|mhc||accept| +language|mhd||accept| +language|mhe||accept| +language|mhf||accept| +language|mhg||accept| +language|mhh||accept| +language|mhi||accept| +language|mhj||accept| +language|mhk||accept| +language|mhl||accept| +language|mhm||accept| +language|mhn||accept| +language|mho||accept| +language|mhp||accept| +language|mhq||accept| +language|mhr||accept| +language|mhs||accept| +language|mht||accept| +language|mhu||accept| +language|mhw||accept| +language|mhx||accept| +language|mhy||accept| +language|mhz||accept| +language|mia||accept| +language|mib||accept| +language|mic||accept| +language|mid||accept| +language|mie||accept| +language|mif||accept| +language|mig||accept| +language|mih||accept| +language|mii||accept| +language|mij||accept| +language|mik||accept| +language|mil||accept| +language|mim||accept| +language|min||accept| +language|mio||accept| +language|mip||accept| +language|miq||accept| +language|mir||accept| +language|mis||accept| +language|mit||accept| +language|miu||accept| +language|miw||accept| +language|mix||accept| +language|miy||accept| +language|miz||accept| +language|mja||accept| +language|mjb||accept| +language|mjc||accept| +language|mjd||accept| +language|mje||accept| +language|mjg||accept| +language|mjh||accept| +language|mji||accept| +language|mjj||accept| +language|mjk||accept| +language|mjl||accept| +language|mjm||accept| +language|mjn||accept| +language|mjo||accept| +language|mjp||accept| +language|mjq||accept| +language|mjr||accept| +language|mjs||accept| +language|mjt||accept| +language|mju||accept| +language|mjv||accept| +language|mjw||accept| +language|mjx||accept| +language|mjy||accept| +language|mjz||accept| +language|mka||accept| +language|mkb||accept| +language|mkc||accept| +language|mke||accept| +language|mkf||accept| +language|mkg||accept| +language|mkh||accept| +language|mki||accept| +language|mkj||accept| +language|mkk||accept| +language|mkl||accept| +language|mkm||accept| +language|mkn||accept| +language|mko||accept| +language|mkp||accept| +language|mkq||accept| +language|mkr||accept| +language|mks||accept| +language|mkt||accept| +language|mku||accept| +language|mkv||accept| +language|mkw||accept| +language|mkx||accept| +language|mky||accept| +language|mkz||accept| +language|mla||accept| +language|mlb||accept| +language|mlc||accept| +language|mld||accept| +language|mle||accept| +language|mlf||accept| +language|mlh||accept| +language|mli||accept| +language|mlj||accept| +language|mlk||accept| +language|mll||accept| +language|mlm||accept| +language|mln||accept| +language|mlo||accept| +language|mlp||accept| +language|mlq||accept| +language|mlr||accept| +language|mls||accept| +language|mlu||accept| +language|mlv||accept| +language|mlw||accept| +language|mlx||accept| +language|mlz||accept| +language|mma||accept| +language|mmb||accept| +language|mmc||accept| +language|mmd||accept| +language|mme||accept| +language|mmf||accept| +language|mmg||accept| +language|mmh||accept| +language|mmi||accept| +language|mmj||accept| +language|mmk||accept| +language|mml||accept| +language|mmm||accept| +language|mmn||accept| +language|mmo||accept| +language|mmp||accept| +language|mmq||accept| +language|mmr||accept| +language|mmt||accept| +language|mmu||accept| +language|mmv||accept| +language|mmw||accept| +language|mmx||accept| +language|mmy||accept| +language|mmz||accept| +language|mna||accept| +language|mnb||accept| +language|mnc||accept| +language|mnd||accept| +language|mne||accept| +language|mnf||accept| +language|mng||accept| +language|mnh||accept| +language|mni||accept| +language|mnj||accept| +language|mnk||accept| +language|mnl||accept| +language|mnm||accept| +language|mnn||accept| +language|mno||accept| +language|mnp||accept| +language|mnq||accept| +language|mnr||accept| +language|mns||accept| +language|mnt||accept| +language|mnu||accept| +language|mnv||accept| +language|mnw||accept| +language|mnx||accept| +language|mny||accept| +language|mnz||accept| +language|moa||accept| +language|moc||accept| +language|mod||accept| +language|moe||accept| +language|mof||accept| +language|mog||accept| +language|moh||accept| +language|moi||accept| +language|moj||accept| +language|mok||accept| +language|mom||accept| +language|moo||accept| +language|mop||accept| +language|moq||accept| +language|mor||accept| +language|mos||accept| +language|mot||accept| +language|mou||accept| +language|mov||accept| +language|mow||accept| +language|mox||accept| +language|moy||accept| +language|moz||accept| +language|mpa||accept| +language|mpb||accept| +language|mpc||accept| +language|mpd||accept| +language|mpe||accept| +language|mpg||accept| +language|mph||accept| +language|mpi||accept| +language|mpj||accept| +language|mpk||accept| +language|mpl||accept| +language|mpm||accept| +language|mpn||accept| +language|mpo||accept| +language|mpp||accept| +language|mpq||accept| +language|mpr||accept| +language|mps||accept| +language|mpt||accept| +language|mpu||accept| +language|mpv||accept| +language|mpw||accept| +language|mpx||accept| +language|mpy||accept| +language|mpz||accept| +language|mqa||accept| +language|mqb||accept| +language|mqc||accept| +language|mqe||accept| +language|mqf||accept| +language|mqg||accept| +language|mqh||accept| +language|mqi||accept| +language|mqj||accept| +language|mqk||accept| +language|mql||accept| +language|mqm||accept| +language|mqn||accept| +language|mqo||accept| +language|mqp||accept| +language|mqq||accept| +language|mqr||accept| +language|mqs||accept| +language|mqt||accept| +language|mqu||accept| +language|mqv||accept| +language|mqw||accept| +language|mqx||accept| +language|mqy||accept| +language|mqz||accept| +language|mra||accept| +language|mrb||accept| +language|mrc||accept| +language|mrd||accept| +language|mre||accept| +language|mrf||accept| +language|mrg||accept| +language|mrh||accept| +language|mrj||accept| +language|mrk||accept| +language|mrl||accept| +language|mrm||accept| +language|mrn||accept| +language|mro||accept| +language|mrp||accept| +language|mrq||accept| +language|mrr||accept| +language|mrs||accept| +language|mrt||accept| +language|mru||accept| +language|mrv||accept| +language|mrw||accept| +language|mrx||accept| +language|mry||accept| +language|mrz||accept| +language|msb||accept| +language|msc||accept| +language|msd||accept| +language|mse||accept| +language|msf||accept| +language|msg||accept| +language|msh||accept| +language|msi||accept| +language|msj||accept| +language|msk||accept| +language|msl||accept| +language|msm||accept| +language|msn||accept| +language|mso||accept| +language|msp||accept| +language|msq||accept| +language|msr||accept| +language|mss||accept| +language|mst|mry|reject|preferred-value +language|msu||accept| +language|msv||accept| +language|msw||accept| +language|msx||accept| +language|msy||accept| +language|msz||accept| +language|mta||accept| +language|mtb||accept| +language|mtc||accept| +language|mtd||accept| +language|mte||accept| +language|mtf||accept| +language|mtg||accept| +language|mth||accept| +language|mti||accept| +language|mtj||accept| +language|mtk||accept| +language|mtl||accept| +language|mtm||accept| +language|mtn||accept| +language|mto||accept| +language|mtp||accept| +language|mtq||accept| +language|mtr||accept| +language|mts||accept| +language|mtt||accept| +language|mtu||accept| +language|mtv||accept| +language|mtw||accept| +language|mtx||accept| +language|mty||accept| +language|mua||accept| +language|mub||accept| +language|muc||accept| +language|mud||accept| +language|mue||accept| +language|mug||accept| +language|muh||accept| +language|mui||accept| +language|muj||accept| +language|muk||accept| +language|mul||accept| +language|mum||accept| +language|mun||accept| +language|muo||accept| +language|mup||accept| +language|muq||accept| +language|mur||accept| +language|mus||accept| +language|mut||accept| +language|muu||accept| +language|muv||accept| +language|mux||accept| +language|muy||accept| +language|muz||accept| +language|mva||accept| +language|mvb||accept| +language|mvd||accept| +language|mve||accept| +language|mvf||accept| +language|mvg||accept| +language|mvh||accept| +language|mvi||accept| +language|mvk||accept| +language|mvl||accept| +language|mvm||accept| +language|mvn||accept| +language|mvo||accept| +language|mvp||accept| +language|mvq||accept| +language|mvr||accept| +language|mvs||accept| +language|mvt||accept| +language|mvu||accept| +language|mvv||accept| +language|mvw||accept| +language|mvx||accept| +language|mvy||accept| +language|mvz||accept| +language|mwa||accept| +language|mwb||accept| +language|mwc||accept| +language|mwd||accept| +language|mwe||accept| +language|mwf||accept| +language|mwg||accept| +language|mwh||accept| +language|mwi||accept| +language|mwj|vaj|reject|preferred-value +language|mwk||accept| +language|mwl||accept| +language|mwm||accept| +language|mwn||accept| +language|mwo||accept| +language|mwp||accept| +language|mwq||accept| +language|mwr||accept| +language|mws||accept| +language|mwt||accept| +language|mwu||accept| +language|mwv||accept| +language|mww||accept| +language|mwx||accept| +language|mwy||accept| +language|mwz||accept| +language|mxa||accept| +language|mxb||accept| +language|mxc||accept| +language|mxd||accept| +language|mxe||accept| +language|mxf||accept| +language|mxg||accept| +language|mxh||accept| +language|mxi||accept| +language|mxj||accept| +language|mxk||accept| +language|mxl||accept| +language|mxm||accept| +language|mxn||accept| +language|mxo||accept| +language|mxp||accept| +language|mxq||accept| +language|mxr||accept| +language|mxs||accept| +language|mxt||accept| +language|mxu||accept| +language|mxv||accept| +language|mxw||accept| +language|mxx||accept| +language|mxy||accept| +language|mxz||accept| +language|myb||accept| +language|myc||accept| +language|myd|aog|reject|preferred-value +language|mye||accept| +language|myf||accept| +language|myg||accept| +language|myh||accept| +language|myi||accept| +language|myj||accept| +language|myk||accept| +language|myl||accept| +language|mym||accept| +language|myn||accept| +language|myo||accept| +language|myp||accept| +language|myq||accept| +language|myr||accept| +language|mys||accept| +language|myt|mry|reject|preferred-value +language|myu||accept| +language|myv||accept| +language|myw||accept| +language|myx||accept| +language|myy||accept| +language|myz||accept| +language|mza||accept| +language|mzb||accept| +language|mzc||accept| +language|mzd||accept| +language|mze||accept| +language|mzg||accept| +language|mzh||accept| +language|mzi||accept| +language|mzj||accept| +language|mzk||accept| +language|mzl||accept| +language|mzm||accept| +language|mzn||accept| +language|mzo||accept| +language|mzp||accept| +language|mzq||accept| +language|mzr||accept| +language|mzs||accept| +language|mzt||accept| +language|mzu||accept| +language|mzv||accept| +language|mzw||accept| +language|mzx||accept| +language|mzy||accept| +language|mzz||accept| +language|naa||accept| +language|nab||accept| +language|nac||accept| +language|nad|xny|reject|preferred-value +language|nae||accept| +language|naf||accept| +language|nag||accept| +language|nah||accept| +language|nai||accept| +language|naj||accept| +language|nak||accept| +language|nal||accept| +language|nam||accept| +language|nan||accept| +language|nao||accept| +language|nap||accept| +language|naq||accept| +language|nar||accept| +language|nas||accept| +language|nat||accept| +language|naw||accept| +language|nax||accept| +language|nay||accept| +language|naz||accept| +language|nba||accept| +language|nbb||accept| +language|nbc||accept| +language|nbd||accept| +language|nbe||accept| +language|nbf||accept| +language|nbg||accept| +language|nbh||accept| +language|nbi||accept| +language|nbj||accept| +language|nbk||accept| +language|nbm||accept| +language|nbn||accept| +language|nbo||accept| +language|nbp||accept| +language|nbq||accept| +language|nbr||accept| +language|nbs||accept| +language|nbt||accept| +language|nbu||accept| +language|nbv||accept| +language|nbw||accept| +language|nbx||accept| +language|nby||accept| +language|nca||accept| +language|ncb||accept| +language|ncc||accept| +language|ncd||accept| +language|nce||accept| +language|ncf||accept| +language|ncg||accept| +language|nch||accept| +language|nci||accept| +language|ncj||accept| +language|nck||accept| +language|ncl||accept| +language|ncm||accept| +language|ncn||accept| +language|nco||accept| +language|ncp|kdz|reject|preferred-value +language|ncq||accept| +language|ncr||accept| +language|ncs||accept| +language|nct||accept| +language|ncu||accept| +language|ncx||accept| +language|ncz||accept| +language|nda||accept| +language|ndb||accept| +language|ndc||accept| +language|ndd||accept| +language|ndf||accept| +language|ndg||accept| +language|ndh||accept| +language|ndi||accept| +language|ndj||accept| +language|ndk||accept| +language|ndl||accept| +language|ndm||accept| +language|ndn||accept| +language|ndp||accept| +language|ndq||accept| +language|ndr||accept| +language|nds||accept| +language|ndt||accept| +language|ndu||accept| +language|ndv||accept| +language|ndw||accept| +language|ndx||accept| +language|ndy||accept| +language|ndz||accept| +language|nea||accept| +language|neb||accept| +language|nec||accept| +language|ned||accept| +language|nee||accept| +language|nef||accept| +language|neg||accept| +language|neh||accept| +language|nei||accept| +language|nej||accept| +language|nek||accept| +language|nem||accept| +language|nen||accept| +language|neo||accept| +language|neq||accept| +language|ner||accept| +language|nes||accept| +language|net||accept| +language|neu||accept| +language|nev||accept| +language|new||accept| +language|nex||accept| +language|ney||accept| +language|nez||accept| +language|nfa||accept| +language|nfd||accept| +language|nfl||accept| +language|nfr||accept| +language|nfu||accept| +language|nga||accept| +language|ngb||accept| +language|ngc||accept| +language|ngd||accept| +language|nge||accept| +language|ngf||accept| +language|ngg||accept| +language|ngh||accept| +language|ngi||accept| +language|ngj||accept| +language|ngk||accept| +language|ngl||accept| +language|ngm||accept| +language|ngn||accept| +language|ngo||accept| +language|ngp||accept| +language|ngq||accept| +language|ngr||accept| +language|ngs||accept| +language|ngt||accept| +language|ngu||accept| +language|ngv||accept| +language|ngw||accept| +language|ngx||accept| +language|ngy||accept| +language|ngz||accept| +language|nha||accept| +language|nhb||accept| +language|nhc||accept| +language|nhd||accept| +language|nhe||accept| +language|nhf||accept| +language|nhg||accept| +language|nhh||accept| +language|nhi||accept| +language|nhk||accept| +language|nhm||accept| +language|nhn||accept| +language|nho||accept| +language|nhp||accept| +language|nhq||accept| +language|nhr||accept| +language|nht||accept| +language|nhu||accept| +language|nhv||accept| +language|nhw||accept| +language|nhx||accept| +language|nhy||accept| +language|nhz||accept| +language|nia||accept| +language|nib||accept| +language|nic||accept| +language|nid||accept| +language|nie||accept| +language|nif||accept| +language|nig||accept| +language|nih||accept| +language|nii||accept| +language|nij||accept| +language|nik||accept| +language|nil||accept| +language|nim||accept| +language|nin||accept| +language|nio||accept| +language|niq||accept| +language|nir||accept| +language|nis||accept| +language|nit||accept| +language|niu||accept| +language|niv||accept| +language|niw||accept| +language|nix||accept| +language|niy||accept| +language|niz||accept| +language|nja||accept| +language|njb||accept| +language|njd||accept| +language|njh||accept| +language|nji||accept| +language|njj||accept| +language|njl||accept| +language|njm||accept| +language|njn||accept| +language|njo||accept| +language|njr||accept| +language|njs||accept| +language|njt||accept| +language|nju||accept| +language|njx||accept| +language|njy||accept| +language|njz||accept| +language|nka||accept| +language|nkb||accept| +language|nkc||accept| +language|nkd||accept| +language|nke||accept| +language|nkf||accept| +language|nkg||accept| +language|nkh||accept| +language|nki||accept| +language|nkj||accept| +language|nkk||accept| +language|nkm||accept| +language|nkn||accept| +language|nko||accept| +language|nkp||accept| +language|nkq||accept| +language|nkr||accept| +language|nks||accept| +language|nkt||accept| +language|nku||accept| +language|nkv||accept| +language|nkw||accept| +language|nkx||accept| +language|nkz||accept| +language|nla||accept| +language|nlc||accept| +language|nle||accept| +language|nlg||accept| +language|nli||accept| +language|nlj||accept| +language|nlk||accept| +language|nll||accept| +language|nlm||accept| +language|nln||accept| +language|nlo||accept| +language|nlq||accept| +language|nlr||accept| +language|nlu||accept| +language|nlv||accept| +language|nlw||accept| +language|nlx||accept| +language|nly||accept| +language|nlz||accept| +language|nma||accept| +language|nmb||accept| +language|nmc||accept| +language|nmd||accept| +language|nme||accept| +language|nmf||accept| +language|nmg||accept| +language|nmh||accept| +language|nmi||accept| +language|nmj||accept| +language|nmk||accept| +language|nml||accept| +language|nmm||accept| +language|nmn||accept| +language|nmo||accept| +language|nmp||accept| +language|nmq||accept| +language|nmr||accept| +language|nms||accept| +language|nmt||accept| +language|nmu||accept| +language|nmv||accept| +language|nmw||accept| +language|nmx||accept| +language|nmy||accept| +language|nmz||accept| +language|nna||accept| +language|nnb||accept| +language|nnc||accept| +language|nnd||accept| +language|nne||accept| +language|nnf||accept| +language|nng||accept| +language|nnh||accept| +language|nni||accept| +language|nnj||accept| +language|nnk||accept| +language|nnl||accept| +language|nnm||accept| +language|nnn||accept| +language|nnp||accept| +language|nnq||accept| +language|nnr||accept| +language|nns|nbr|reject|preferred-value +language|nnt||accept| +language|nnu||accept| +language|nnv||accept| +language|nnw||accept| +language|nnx|ngv|reject|preferred-value +language|nny||accept| +language|nnz||accept| +language|noa||accept| +language|noc||accept| +language|nod||accept| +language|noe||accept| +language|nof||accept| +language|nog||accept| +language|noh||accept| +language|noi||accept| +language|noj||accept| +language|nok||accept| +language|nol||accept| +language|nom|cbr|reject|preferred-value +language|non||accept| +language|noo||accept| +language|nop||accept| +language|noq||accept| +language|nos||accept| +language|not||accept| +language|nou||accept| +language|nov||accept| +language|now||accept| +language|noy||accept| +language|noz||accept| +language|npa||accept| +language|npb||accept| +language|npg||accept| +language|nph||accept| +language|npi||accept| +language|npl||accept| +language|npn||accept| +language|npo||accept| +language|nps||accept| +language|npu||accept| +language|npx||accept| +language|npy||accept| +language|nqg||accept| +language|nqk||accept| +language|nql||accept| +language|nqm||accept| +language|nqn||accept| +language|nqo||accept| +language|nqq||accept| +language|nqt||accept| +language|nqy||accept| +language|nra||accept| +language|nrb||accept| +language|nrc||accept| +language|nre||accept| +language|nrf||accept| +language|nrg||accept| +language|nri||accept| +language|nrk||accept| +language|nrl||accept| +language|nrm||accept| +language|nrn||accept| +language|nrp||accept| +language|nrr||accept| +language|nrt||accept| +language|nru||accept| +language|nrx||accept| +language|nrz||accept| +language|nsa||accept| +language|nsb||accept| +language|nsc||accept| +language|nsd||accept| +language|nse||accept| +language|nsf||accept| +language|nsg||accept| +language|nsh||accept| +language|nsi||accept| +language|nsk||accept| +language|nsl||accept| +language|nsm||accept| +language|nsn||accept| +language|nso||accept| +language|nsp||accept| +language|nsq||accept| +language|nsr||accept| +language|nss||accept| +language|nst||accept| +language|nsu||accept| +language|nsv||accept| +language|nsw||accept| +language|nsx||accept| +language|nsy||accept| +language|nsz||accept| +language|ntd||accept| +language|nte|eko|reject|preferred-value +language|ntg||accept| +language|nti||accept| +language|ntj||accept| +language|ntk||accept| +language|ntm||accept| +language|nto||accept| +language|ntp||accept| +language|ntr||accept| +language|nts|pij|reject|preferred-value +language|ntu||accept| +language|ntw||accept| +language|ntx||accept| +language|nty||accept| +language|ntz||accept| +language|nua||accept| +language|nub||accept| +language|nuc||accept| +language|nud||accept| +language|nue||accept| +language|nuf||accept| +language|nug||accept| +language|nuh||accept| +language|nui||accept| +language|nuj||accept| +language|nuk||accept| +language|nul||accept| +language|num||accept| +language|nun||accept| +language|nuo||accept| +language|nup||accept| +language|nuq||accept| +language|nur||accept| +language|nus||accept| +language|nut||accept| +language|nuu||accept| +language|nuv||accept| +language|nuw||accept| +language|nux||accept| +language|nuy||accept| +language|nuz||accept| +language|nvh||accept| +language|nvm||accept| +language|nvo||accept| +language|nwa||accept| +language|nwb||accept| +language|nwc||accept| +language|nwe||accept| +language|nwg||accept| +language|nwi||accept| +language|nwm||accept| +language|nwo||accept| +language|nwr||accept| +language|nww||accept| +language|nwx||accept| +language|nwy||accept| +language|nxa||accept| +language|nxd||accept| +language|nxe||accept| +language|nxg||accept| +language|nxi||accept| +language|nxk||accept| +language|nxl||accept| +language|nxm||accept| +language|nxn||accept| +language|nxo||accept| +language|nxq||accept| +language|nxr||accept| +language|nxu|bpp|reject|preferred-value +language|nxx||accept| +language|nyb||accept| +language|nyc||accept| +language|nyd||accept| +language|nye||accept| +language|nyf||accept| +language|nyg||accept| +language|nyh||accept| +language|nyi||accept| +language|nyj||accept| +language|nyk||accept| +language|nyl||accept| +language|nym||accept| +language|nyn||accept| +language|nyo||accept| +language|nyp||accept| +language|nyq||accept| +language|nyr||accept| +language|nys||accept| +language|nyt||accept| +language|nyu||accept| +language|nyv||accept| +language|nyw||accept| +language|nyx||accept| +language|nyy||accept| +language|nza||accept| +language|nzb||accept| +language|nzd||accept| +language|nzi||accept| +language|nzk||accept| +language|nzm||accept| +language|nzr||accept| +language|nzs||accept| +language|nzu||accept| +language|nzy||accept| +language|nzz||accept| +language|oaa||accept| +language|oac||accept| +language|oak||accept| +language|oar||accept| +language|oav||accept| +language|obi||accept| +language|obk||accept| +language|obl||accept| +language|obm||accept| +language|obo||accept| +language|obr||accept| +language|obt||accept| +language|obu||accept| +language|oca||accept| +language|och||accept| +language|ocm||accept| +language|oco||accept| +language|ocu||accept| +language|oda||accept| +language|odk||accept| +language|odt||accept| +language|odu||accept| +language|ofo||accept| +language|ofs||accept| +language|ofu||accept| +language|ogb||accept| +language|ogc||accept| +language|oge||accept| +language|ogg||accept| +language|ogo||accept| +language|ogu||accept| +language|oht||accept| +language|ohu||accept| +language|oia||accept| +language|oie||accept| +language|oin||accept| +language|ojb||accept| +language|ojc||accept| +language|ojg||accept| +language|ojp||accept| +language|ojs||accept| +language|ojv||accept| +language|ojw||accept| +language|oka||accept| +language|okb||accept| +language|okc||accept| +language|okd||accept| +language|oke||accept| +language|okg||accept| +language|okh||accept| +language|oki||accept| +language|okj||accept| +language|okk||accept| +language|okl||accept| +language|okm||accept| +language|okn||accept| +language|oko||accept| +language|okr||accept| +language|oks||accept| +language|oku||accept| +language|okv||accept| +language|okx||accept| +language|okz||accept| +language|ola||accept| +language|olb||accept| +language|old||accept| +language|ole||accept| +language|olk||accept| +language|olm||accept| +language|olo||accept| +language|olr||accept| +language|olt||accept| +language|olu||accept| +language|oma||accept| +language|omb||accept| +language|omc||accept| +language|ome||accept| +language|omg||accept| +language|omi||accept| +language|omk||accept| +language|oml||accept| +language|omn||accept| +language|omo||accept| +language|omp||accept| +language|omq||accept| +language|omr||accept| +language|omt||accept| +language|omu||accept| +language|omv||accept| +language|omw||accept| +language|omx||accept| +language|omy||accept| +language|ona||accept| +language|onb||accept| +language|one||accept| +language|ong||accept| +language|oni||accept| +language|onj||accept| +language|onk||accept| +language|onn||accept| +language|ono||accept| +language|onp||accept| +language|onr||accept| +language|ons||accept| +language|ont||accept| +language|onu||accept| +language|onw||accept| +language|onx||accept| +language|ood||accept| +language|oog||accept| +language|oon||accept| +language|oor||accept| +language|oos||accept| +language|opa||accept| +language|opk||accept| +language|opm||accept| +language|opo||accept| +language|opt||accept| +language|opy||accept| +language|ora||accept| +language|orc||accept| +language|ore||accept| +language|org||accept| +language|orh||accept| +language|orn||accept| +language|oro||accept| +language|orr||accept| +language|ors||accept| +language|ort||accept| +language|oru||accept| +language|orv||accept| +language|orw||accept| +language|orx||accept| +language|ory||accept| +language|orz||accept| +language|osa||accept| +language|osc||accept| +language|osd||accept| +language|osi||accept| +language|osn||accept| +language|oso||accept| +language|osp||accept| +language|ost||accept| +language|osu||accept| +language|osx||accept| +language|ota||accept| +language|otb||accept| +language|otd||accept| +language|ote||accept| +language|oti||accept| +language|otk||accept| +language|otl||accept| +language|otm||accept| +language|otn||accept| +language|oto||accept| +language|otq||accept| +language|otr||accept| +language|ots||accept| +language|ott||accept| +language|otu||accept| +language|otw||accept| +language|otx||accept| +language|oty||accept| +language|otz||accept| +language|oua||accept| +language|oub||accept| +language|oue||accept| +language|oui||accept| +language|oum||accept| +language|oun|vaj|reject|preferred-value +language|ovd||accept| +language|owi||accept| +language|owl||accept| +language|oyb||accept| +language|oyd||accept| +language|oym||accept| +language|oyy||accept| +language|ozm||accept| +language|paa||accept| +language|pab||accept| +language|pac||accept| +language|pad||accept| +language|pae||accept| +language|paf||accept| +language|pag||accept| +language|pah||accept| +language|pai||accept| +language|pak||accept| +language|pal||accept| +language|pam||accept| +language|pao||accept| +language|pap||accept| +language|paq||accept| +language|par||accept| +language|pas||accept| +language|pat|kxr|reject|preferred-value +language|pau||accept| +language|pav||accept| +language|paw||accept| +language|pax||accept| +language|pay||accept| +language|paz||accept| +language|pbb||accept| +language|pbc||accept| +language|pbe||accept| +language|pbf||accept| +language|pbg||accept| +language|pbh||accept| +language|pbi||accept| +language|pbl||accept| +language|pbm||accept| +language|pbn||accept| +language|pbo||accept| +language|pbp||accept| +language|pbr||accept| +language|pbs||accept| +language|pbt||accept| +language|pbu||accept| +language|pbv||accept| +language|pby||accept| +language|pbz||accept| +language|pca||accept| +language|pcb||accept| +language|pcc||accept| +language|pcd||accept| +language|pce||accept| +language|pcf||accept| +language|pcg||accept| +language|pch||accept| +language|pci||accept| +language|pcj||accept| +language|pck||accept| +language|pcl||accept| +language|pcm||accept| +language|pcn||accept| +language|pcp||accept| +language|pcr|adx|reject|preferred-value +language|pcw||accept| +language|pda||accept| +language|pdc||accept| +language|pdi||accept| +language|pdn||accept| +language|pdo||accept| +language|pdt||accept| +language|pdu||accept| +language|pea||accept| +language|peb||accept| +language|ped||accept| +language|pee||accept| +language|pef||accept| +language|peg||accept| +language|peh||accept| +language|pei||accept| +language|pej||accept| +language|pek||accept| +language|pel||accept| +language|pem||accept| +language|peo||accept| +language|pep||accept| +language|peq||accept| +language|pes||accept| +language|pev||accept| +language|pex||accept| +language|pey||accept| +language|pez||accept| +language|pfa||accept| +language|pfe||accept| +language|pfl||accept| +language|pga||accept| +language|pgd||accept| +language|pgg||accept| +language|pgi||accept| +language|pgk||accept| +language|pgl||accept| +language|pgn||accept| +language|pgs||accept| +language|pgu||accept| +language|pgy||accept| +language|pgz||accept| +language|pha||accept| +language|phd||accept| +language|phg||accept| +language|phh||accept| +language|phi||accept| +language|phj||accept| +language|phk||accept| +language|phl||accept| +language|phm||accept| +language|phn||accept| +language|pho||accept| +language|phq||accept| +language|phr||accept| +language|pht||accept| +language|phu||accept| +language|phv||accept| +language|phw||accept| +language|pia||accept| +language|pib||accept| +language|pic||accept| +language|pid||accept| +language|pie||accept| +language|pif||accept| +language|pig||accept| +language|pih||accept| +language|pii||accept| +language|pij||accept| +language|pil||accept| +language|pim||accept| +language|pin||accept| +language|pio||accept| +language|pip||accept| +language|pir||accept| +language|pis||accept| +language|pit||accept| +language|piu||accept| +language|piv||accept| +language|piw||accept| +language|pix||accept| +language|piy||accept| +language|piz||accept| +language|pjt||accept| +language|pka||accept| +language|pkb||accept| +language|pkc||accept| +language|pkg||accept| +language|pkh||accept| +language|pkn||accept| +language|pko||accept| +language|pkp||accept| +language|pkr||accept| +language|pks||accept| +language|pkt||accept| +language|pku||accept| +language|pla||accept| +language|plb||accept| +language|plc||accept| +language|pld||accept| +language|ple||accept| +language|plf||accept| +language|plg||accept| +language|plh||accept| +language|plj||accept| +language|plk||accept| +language|pll||accept| +language|pln||accept| +language|plo||accept| +language|plp||accept| +language|plq||accept| +language|plr||accept| +language|pls||accept| +language|plt||accept| +language|plu||accept| +language|plv||accept| +language|plw||accept| +language|ply||accept| +language|plz||accept| +language|pma||accept| +language|pmb||accept| +language|pmc|huw|reject|preferred-value +language|pmd||accept| +language|pme||accept| +language|pmf||accept| +language|pmh||accept| +language|pmi||accept| +language|pmj||accept| +language|pmk|crr|reject|preferred-value +language|pml||accept| +language|pmm||accept| +language|pmn||accept| +language|pmo||accept| +language|pmq||accept| +language|pmr||accept| +language|pms||accept| +language|pmt||accept| +language|pmu|phr|reject|preferred-value +language|pmw||accept| +language|pmx||accept| +language|pmy||accept| +language|pmz||accept| +language|pna||accept| +language|pnb||accept| +language|pnc||accept| +language|pnd||accept| +language|pne||accept| +language|png||accept| +language|pnh||accept| +language|pni||accept| +language|pnj||accept| +language|pnk||accept| +language|pnl||accept| +language|pnm||accept| +language|pnn||accept| +language|pno||accept| +language|pnp||accept| +language|pnq||accept| +language|pnr||accept| +language|pns||accept| +language|pnt||accept| +language|pnu||accept| +language|pnv||accept| +language|pnw||accept| +language|pnx||accept| +language|pny||accept| +language|pnz||accept| +language|poc||accept| +language|pod||accept| +language|poe||accept| +language|pof||accept| +language|pog||accept| +language|poh||accept| +language|poi||accept| +language|pok||accept| +language|pom||accept| +language|pon||accept| +language|poo||accept| +language|pop||accept| +language|poq||accept| +language|pos||accept| +language|pot||accept| +language|pov||accept| +language|pow||accept| +language|pox||accept| +language|poy||accept| +language|poz||accept| +language|ppa|bfy|reject|preferred-value +language|ppe||accept| +language|ppi||accept| +language|ppk||accept| +language|ppl||accept| +language|ppm||accept| +language|ppn||accept| +language|ppo||accept| +language|ppp||accept| +language|ppq||accept| +language|ppr|lcq|reject|preferred-value +language|pps||accept| +language|ppt||accept| +language|ppu||accept| +language|pqa||accept| +language|pqe||accept| +language|pqm||accept| +language|pqw||accept| +language|pra||accept| +language|prb||accept| +language|prc||accept| +language|prd||accept| +language|pre||accept| +language|prf||accept| +language|prg||accept| +language|prh||accept| +language|pri||accept| +language|prk||accept| +language|prl||accept| +language|prm||accept| +language|prn||accept| +language|pro||accept| +language|prp|gu|reject|preferred-value +language|prq||accept| +language|prr||accept| +language|prs||accept| +language|prt||accept| +language|pru||accept| +language|prw||accept| +language|prx||accept| +language|pry|prt|reject|preferred-value +language|prz||accept| +language|psa||accept| +language|psc||accept| +language|psd||accept| +language|pse||accept| +language|psg||accept| +language|psh||accept| +language|psi||accept| +language|psl||accept| +language|psm||accept| +language|psn||accept| +language|pso||accept| +language|psp||accept| +language|psq||accept| +language|psr||accept| +language|pss||accept| +language|pst||accept| +language|psu||accept| +language|psw||accept| +language|psy||accept| +language|pta||accept| +language|pth||accept| +language|pti||accept| +language|ptn||accept| +language|pto||accept| +language|ptp||accept| +language|ptq||accept| +language|ptr||accept| +language|ptt||accept| +language|ptu||accept| +language|ptv||accept| +language|ptw||accept| +language|pty||accept| +language|pua||accept| +language|pub||accept| +language|puc||accept| +language|pud||accept| +language|pue||accept| +language|puf||accept| +language|pug||accept| +language|pui||accept| +language|puj||accept| +language|puk||accept| +language|pum||accept| +language|puo||accept| +language|pup||accept| +language|puq||accept| +language|pur||accept| +language|put||accept| +language|puu||accept| +language|puw||accept| +language|pux||accept| +language|puy||accept| +language|puz|pub|reject|preferred-value +language|pwa||accept| +language|pwb||accept| +language|pwg||accept| +language|pwi||accept| +language|pwm||accept| +language|pwn||accept| +language|pwo||accept| +language|pwr||accept| +language|pww||accept| +language|pxm||accept| +language|pye||accept| +language|pym||accept| +language|pyn||accept| +language|pys||accept| +language|pyu||accept| +language|pyx||accept| +language|pyy||accept| +language|pze||accept| +language|pzh||accept| +language|pzn||accept| +language-range|qaa||accept| +language-range|qab||accept| +language-range|qac||accept| +language-range|qad||accept| +language-range|qae||accept| +language-range|qaf||accept| +language-range|qag||accept| +language-range|qah||accept| +language-range|qai||accept| +language-range|qaj||accept| +language-range|qak||accept| +language-range|qal||accept| +language-range|qam||accept| +language-range|qan||accept| +language-range|qao||accept| +language-range|qap||accept| +language-range|qaq||accept| +language-range|qar||accept| +language-range|qas||accept| +language-range|qat||accept| +language-range|qau||accept| +language-range|qav||accept| +language-range|qaw||accept| +language-range|qax||accept| +language-range|qay||accept| +language-range|qaz||accept| +language-range|qba||accept| +language-range|qbb||accept| +language-range|qbc||accept| +language-range|qbd||accept| +language-range|qbe||accept| +language-range|qbf||accept| +language-range|qbg||accept| +language-range|qbh||accept| +language-range|qbi||accept| +language-range|qbj||accept| +language-range|qbk||accept| +language-range|qbl||accept| +language-range|qbm||accept| +language-range|qbn||accept| +language-range|qbo||accept| +language-range|qbp||accept| +language-range|qbq||accept| +language-range|qbr||accept| +language-range|qbs||accept| +language-range|qbt||accept| +language-range|qbu||accept| +language-range|qbv||accept| +language-range|qbw||accept| +language-range|qbx||accept| +language-range|qby||accept| +language-range|qbz||accept| +language-range|qca||accept| +language-range|qcb||accept| +language-range|qcc||accept| +language-range|qcd||accept| +language-range|qce||accept| +language-range|qcf||accept| +language-range|qcg||accept| +language-range|qch||accept| +language-range|qci||accept| +language-range|qcj||accept| +language-range|qck||accept| +language-range|qcl||accept| +language-range|qcm||accept| +language-range|qcn||accept| +language-range|qco||accept| +language-range|qcp||accept| +language-range|qcq||accept| +language-range|qcr||accept| +language-range|qcs||accept| +language-range|qct||accept| +language-range|qcu||accept| +language-range|qcv||accept| +language-range|qcw||accept| +language-range|qcx||accept| +language-range|qcy||accept| +language-range|qcz||accept| +language-range|qda||accept| +language-range|qdb||accept| +language-range|qdc||accept| +language-range|qdd||accept| +language-range|qde||accept| +language-range|qdf||accept| +language-range|qdg||accept| +language-range|qdh||accept| +language-range|qdi||accept| +language-range|qdj||accept| +language-range|qdk||accept| +language-range|qdl||accept| +language-range|qdm||accept| +language-range|qdn||accept| +language-range|qdo||accept| +language-range|qdp||accept| +language-range|qdq||accept| +language-range|qdr||accept| +language-range|qds||accept| +language-range|qdt||accept| +language-range|qdu||accept| +language-range|qdv||accept| +language-range|qdw||accept| +language-range|qdx||accept| +language-range|qdy||accept| +language-range|qdz||accept| +language-range|qea||accept| +language-range|qeb||accept| +language-range|qec||accept| +language-range|qed||accept| +language-range|qee||accept| +language-range|qef||accept| +language-range|qeg||accept| +language-range|qeh||accept| +language-range|qei||accept| +language-range|qej||accept| +language-range|qek||accept| +language-range|qel||accept| +language-range|qem||accept| +language-range|qen||accept| +language-range|qeo||accept| +language-range|qep||accept| +language-range|qeq||accept| +language-range|qer||accept| +language-range|qes||accept| +language-range|qet||accept| +language-range|qeu||accept| +language-range|qev||accept| +language-range|qew||accept| +language-range|qex||accept| +language-range|qey||accept| +language-range|qez||accept| +language-range|qfa||accept| +language-range|qfb||accept| +language-range|qfc||accept| +language-range|qfd||accept| +language-range|qfe||accept| +language-range|qff||accept| +language-range|qfg||accept| +language-range|qfh||accept| +language-range|qfi||accept| +language-range|qfj||accept| +language-range|qfk||accept| +language-range|qfl||accept| +language-range|qfm||accept| +language-range|qfn||accept| +language-range|qfo||accept| +language-range|qfp||accept| +language-range|qfq||accept| +language-range|qfr||accept| +language-range|qfs||accept| +language-range|qft||accept| +language-range|qfu||accept| +language-range|qfv||accept| +language-range|qfw||accept| +language-range|qfx||accept| +language-range|qfy||accept| +language-range|qfz||accept| +language-range|qga||accept| +language-range|qgb||accept| +language-range|qgc||accept| +language-range|qgd||accept| +language-range|qge||accept| +language-range|qgf||accept| +language-range|qgg||accept| +language-range|qgh||accept| +language-range|qgi||accept| +language-range|qgj||accept| +language-range|qgk||accept| +language-range|qgl||accept| +language-range|qgm||accept| +language-range|qgn||accept| +language-range|qgo||accept| +language-range|qgp||accept| +language-range|qgq||accept| +language-range|qgr||accept| +language-range|qgs||accept| +language-range|qgt||accept| +language-range|qgu||accept| +language-range|qgv||accept| +language-range|qgw||accept| +language-range|qgx||accept| +language-range|qgy||accept| +language-range|qgz||accept| +language-range|qha||accept| +language-range|qhb||accept| +language-range|qhc||accept| +language-range|qhd||accept| +language-range|qhe||accept| +language-range|qhf||accept| +language-range|qhg||accept| +language-range|qhh||accept| +language-range|qhi||accept| +language-range|qhj||accept| +language-range|qhk||accept| +language-range|qhl||accept| +language-range|qhm||accept| +language-range|qhn||accept| +language-range|qho||accept| +language-range|qhp||accept| +language-range|qhq||accept| +language-range|qhr||accept| +language-range|qhs||accept| +language-range|qht||accept| +language-range|qhu||accept| +language-range|qhv||accept| +language-range|qhw||accept| +language-range|qhx||accept| +language-range|qhy||accept| +language-range|qhz||accept| +language-range|qia||accept| +language-range|qib||accept| +language-range|qic||accept| +language-range|qid||accept| +language-range|qie||accept| +language-range|qif||accept| +language-range|qig||accept| +language-range|qih||accept| +language-range|qii||accept| +language-range|qij||accept| +language-range|qik||accept| +language-range|qil||accept| +language-range|qim||accept| +language-range|qin||accept| +language-range|qio||accept| +language-range|qip||accept| +language-range|qiq||accept| +language-range|qir||accept| +language-range|qis||accept| +language-range|qit||accept| +language-range|qiu||accept| +language-range|qiv||accept| +language-range|qiw||accept| +language-range|qix||accept| +language-range|qiy||accept| +language-range|qiz||accept| +language-range|qja||accept| +language-range|qjb||accept| +language-range|qjc||accept| +language-range|qjd||accept| +language-range|qje||accept| +language-range|qjf||accept| +language-range|qjg||accept| +language-range|qjh||accept| +language-range|qji||accept| +language-range|qjj||accept| +language-range|qjk||accept| +language-range|qjl||accept| +language-range|qjm||accept| +language-range|qjn||accept| +language-range|qjo||accept| +language-range|qjp||accept| +language-range|qjq||accept| +language-range|qjr||accept| +language-range|qjs||accept| +language-range|qjt||accept| +language-range|qju||accept| +language-range|qjv||accept| +language-range|qjw||accept| +language-range|qjx||accept| +language-range|qjy||accept| +language-range|qjz||accept| +language-range|qka||accept| +language-range|qkb||accept| +language-range|qkc||accept| +language-range|qkd||accept| +language-range|qke||accept| +language-range|qkf||accept| +language-range|qkg||accept| +language-range|qkh||accept| +language-range|qki||accept| +language-range|qkj||accept| +language-range|qkk||accept| +language-range|qkl||accept| +language-range|qkm||accept| +language-range|qkn||accept| +language-range|qko||accept| +language-range|qkp||accept| +language-range|qkq||accept| +language-range|qkr||accept| +language-range|qks||accept| +language-range|qkt||accept| +language-range|qku||accept| +language-range|qkv||accept| +language-range|qkw||accept| +language-range|qkx||accept| +language-range|qky||accept| +language-range|qkz||accept| +language-range|qla||accept| +language-range|qlb||accept| +language-range|qlc||accept| +language-range|qld||accept| +language-range|qle||accept| +language-range|qlf||accept| +language-range|qlg||accept| +language-range|qlh||accept| +language-range|qli||accept| +language-range|qlj||accept| +language-range|qlk||accept| +language-range|qll||accept| +language-range|qlm||accept| +language-range|qln||accept| +language-range|qlo||accept| +language-range|qlp||accept| +language-range|qlq||accept| +language-range|qlr||accept| +language-range|qls||accept| +language-range|qlt||accept| +language-range|qlu||accept| +language-range|qlv||accept| +language-range|qlw||accept| +language-range|qlx||accept| +language-range|qly||accept| +language-range|qlz||accept| +language-range|qma||accept| +language-range|qmb||accept| +language-range|qmc||accept| +language-range|qmd||accept| +language-range|qme||accept| +language-range|qmf||accept| +language-range|qmg||accept| +language-range|qmh||accept| +language-range|qmi||accept| +language-range|qmj||accept| +language-range|qmk||accept| +language-range|qml||accept| +language-range|qmm||accept| +language-range|qmn||accept| +language-range|qmo||accept| +language-range|qmp||accept| +language-range|qmq||accept| +language-range|qmr||accept| +language-range|qms||accept| +language-range|qmt||accept| +language-range|qmu||accept| +language-range|qmv||accept| +language-range|qmw||accept| +language-range|qmx||accept| +language-range|qmy||accept| +language-range|qmz||accept| +language-range|qna||accept| +language-range|qnb||accept| +language-range|qnc||accept| +language-range|qnd||accept| +language-range|qne||accept| +language-range|qnf||accept| +language-range|qng||accept| +language-range|qnh||accept| +language-range|qni||accept| +language-range|qnj||accept| +language-range|qnk||accept| +language-range|qnl||accept| +language-range|qnm||accept| +language-range|qnn||accept| +language-range|qno||accept| +language-range|qnp||accept| +language-range|qnq||accept| +language-range|qnr||accept| +language-range|qns||accept| +language-range|qnt||accept| +language-range|qnu||accept| +language-range|qnv||accept| +language-range|qnw||accept| +language-range|qnx||accept| +language-range|qny||accept| +language-range|qnz||accept| +language-range|qoa||accept| +language-range|qob||accept| +language-range|qoc||accept| +language-range|qod||accept| +language-range|qoe||accept| +language-range|qof||accept| +language-range|qog||accept| +language-range|qoh||accept| +language-range|qoi||accept| +language-range|qoj||accept| +language-range|qok||accept| +language-range|qol||accept| +language-range|qom||accept| +language-range|qon||accept| +language-range|qoo||accept| +language-range|qop||accept| +language-range|qoq||accept| +language-range|qor||accept| +language-range|qos||accept| +language-range|qot||accept| +language-range|qou||accept| +language-range|qov||accept| +language-range|qow||accept| +language-range|qox||accept| +language-range|qoy||accept| +language-range|qoz||accept| +language-range|qpa||accept| +language-range|qpb||accept| +language-range|qpc||accept| +language-range|qpd||accept| +language-range|qpe||accept| +language-range|qpf||accept| +language-range|qpg||accept| +language-range|qph||accept| +language-range|qpi||accept| +language-range|qpj||accept| +language-range|qpk||accept| +language-range|qpl||accept| +language-range|qpm||accept| +language-range|qpn||accept| +language-range|qpo||accept| +language-range|qpp||accept| +language-range|qpq||accept| +language-range|qpr||accept| +language-range|qps||accept| +language-range|qpt||accept| +language-range|qpu||accept| +language-range|qpv||accept| +language-range|qpw||accept| +language-range|qpx||accept| +language-range|qpy||accept| +language-range|qpz||accept| +language-range|qqa||accept| +language-range|qqb||accept| +language-range|qqc||accept| +language-range|qqd||accept| +language-range|qqe||accept| +language-range|qqf||accept| +language-range|qqg||accept| +language-range|qqh||accept| +language-range|qqi||accept| +language-range|qqj||accept| +language-range|qqk||accept| +language-range|qql||accept| +language-range|qqm||accept| +language-range|qqn||accept| +language-range|qqo||accept| +language-range|qqp||accept| +language-range|qqq||accept| +language-range|qqr||accept| +language-range|qqs||accept| +language-range|qqt||accept| +language-range|qqu||accept| +language-range|qqv||accept| +language-range|qqw||accept| +language-range|qqx||accept| +language-range|qqy||accept| +language-range|qqz||accept| +language-range|qra||accept| +language-range|qrb||accept| +language-range|qrc||accept| +language-range|qrd||accept| +language-range|qre||accept| +language-range|qrf||accept| +language-range|qrg||accept| +language-range|qrh||accept| +language-range|qri||accept| +language-range|qrj||accept| +language-range|qrk||accept| +language-range|qrl||accept| +language-range|qrm||accept| +language-range|qrn||accept| +language-range|qro||accept| +language-range|qrp||accept| +language-range|qrq||accept| +language-range|qrr||accept| +language-range|qrs||accept| +language-range|qrt||accept| +language-range|qru||accept| +language-range|qrv||accept| +language-range|qrw||accept| +language-range|qrx||accept| +language-range|qry||accept| +language-range|qrz||accept| +language-range|qsa||accept| +language-range|qsb||accept| +language-range|qsc||accept| +language-range|qsd||accept| +language-range|qse||accept| +language-range|qsf||accept| +language-range|qsg||accept| +language-range|qsh||accept| +language-range|qsi||accept| +language-range|qsj||accept| +language-range|qsk||accept| +language-range|qsl||accept| +language-range|qsm||accept| +language-range|qsn||accept| +language-range|qso||accept| +language-range|qsp||accept| +language-range|qsq||accept| +language-range|qsr||accept| +language-range|qss||accept| +language-range|qst||accept| +language-range|qsu||accept| +language-range|qsv||accept| +language-range|qsw||accept| +language-range|qsx||accept| +language-range|qsy||accept| +language-range|qsz||accept| +language-range|qta||accept| +language-range|qtb||accept| +language-range|qtc||accept| +language-range|qtd||accept| +language-range|qte||accept| +language-range|qtf||accept| +language-range|qtg||accept| +language-range|qth||accept| +language-range|qti||accept| +language-range|qtj||accept| +language-range|qtk||accept| +language-range|qtl||accept| +language-range|qtm||accept| +language-range|qtn||accept| +language-range|qto||accept| +language-range|qtp||accept| +language-range|qtq||accept| +language-range|qtr||accept| +language-range|qts||accept| +language-range|qtt||accept| +language-range|qtu||accept| +language-range|qtv||accept| +language-range|qtw||accept| +language-range|qtx||accept| +language-range|qty||accept| +language-range|qtz||accept| +language|qua||accept| +language|qub||accept| +language|quc||accept| +language|qud||accept| +language|quf||accept| +language|qug||accept| +language|quh||accept| +language|qui||accept| +language|quk||accept| +language|qul||accept| +language|qum||accept| +language|qun||accept| +language|qup||accept| +language|quq||accept| +language|qur||accept| +language|qus||accept| +language|quv||accept| +language|quw||accept| +language|qux||accept| +language|quy||accept| +language|quz||accept| +language|qva||accept| +language|qvc||accept| +language|qve||accept| +language|qvh||accept| +language|qvi||accept| +language|qvj||accept| +language|qvl||accept| +language|qvm||accept| +language|qvn||accept| +language|qvo||accept| +language|qvp||accept| +language|qvs||accept| +language|qvw||accept| +language|qvy||accept| +language|qvz||accept| +language|qwa||accept| +language|qwc||accept| +language|qwe||accept| +language|qwh||accept| +language|qwm||accept| +language|qws||accept| +language|qwt||accept| +language|qxa||accept| +language|qxc||accept| +language|qxh||accept| +language|qxl||accept| +language|qxn||accept| +language|qxo||accept| +language|qxp||accept| +language|qxq||accept| +language|qxr||accept| +language|qxs||accept| +language|qxt||accept| +language|qxu||accept| +language|qxw||accept| +language|qya||accept| +language|qyp||accept| +language|raa||accept| +language|rab||accept| +language|rac||accept| +language|rad||accept| +language|raf||accept| +language|rag||accept| +language|rah||accept| +language|rai||accept| +language|raj||accept| +language|rak||accept| +language|ral||accept| +language|ram||accept| +language|ran||accept| +language|rao||accept| +language|rap||accept| +language|raq||accept| +language|rar||accept| +language|ras||accept| +language|rat||accept| +language|rau||accept| +language|rav||accept| +language|raw||accept| +language|rax||accept| +language|ray||accept| +language|raz||accept| +language|rbb||accept| +language|rbk||accept| +language|rbl||accept| +language|rbp||accept| +language|rcf||accept| +language|rdb||accept| +language|rea||accept| +language|reb||accept| +language|ree||accept| +language|reg||accept| +language|rei||accept| +language|rej||accept| +language|rel||accept| +language|rem||accept| +language|ren||accept| +language|rer||accept| +language|res||accept| +language|ret||accept| +language|rey||accept| +language|rga||accept| +language|rge||accept| +language|rgk||accept| +language|rgn||accept| +language|rgr||accept| +language|rgs||accept| +language|rgu||accept| +language|rhg||accept| +language|rhp||accept| +language|ria||accept| +language|rib||accept| +language|rie||accept| +language|rif||accept| +language|ril||accept| +language|rim||accept| +language|rin||accept| +language|rir||accept| +language|rit||accept| +language|riu||accept| +language|rjg||accept| +language|rji||accept| +language|rjs||accept| +language|rka||accept| +language|rkb||accept| +language|rkh||accept| +language|rki||accept| +language|rkm||accept| +language|rkt||accept| +language|rkw||accept| +language|rma||accept| +language|rmb||accept| +language|rmc||accept| +language|rmd||accept| +language|rme||accept| +language|rmf||accept| +language|rmg||accept| +language|rmh||accept| +language|rmi||accept| +language|rmk||accept| +language|rml||accept| +language|rmm||accept| +language|rmn||accept| +language|rmo||accept| +language|rmp||accept| +language|rmq||accept| +language|rmr||accept| +language|rms||accept| +language|rmt||accept| +language|rmu||accept| +language|rmv||accept| +language|rmw||accept| +language|rmx||accept| +language|rmy||accept| +language|rmz||accept| +language|rna||accept| +language|rnb||accept| +language|rnd||accept| +language|rng||accept| +language|rnl||accept| +language|rnn||accept| +language|rnp||accept| +language|rnr||accept| +language|rnw||accept| +language|roa||accept| +language|rob||accept| +language|roc||accept| +language|rod||accept| +language|roe||accept| +language|rof||accept| +language|rog||accept| +language|rol||accept| +language|rom||accept| +language|roo||accept| +language|rop||accept| +language|ror||accept| +language|rou||accept| +language|row||accept| +language|rpn||accept| +language|rpt||accept| +language|rri||accept| +language|rrm||accept| +language|rro||accept| +language|rrt||accept| +language|rsb||accept| +language|rsi||accept| +language|rsk||accept| +language|rsl||accept| +language|rsm||accept| +language|rsn||accept| +language|rsw||accept| +language|rtc||accept| +language|rth||accept| +language|rtm||accept| +language|rts||accept| +language|rtw||accept| +language|rub||accept| +language|ruc||accept| +language|rue||accept| +language|ruf||accept| +language|rug||accept| +language|ruh||accept| +language|rui||accept| +language|ruk||accept| +language|ruo||accept| +language|rup||accept| +language|ruq||accept| +language|rut||accept| +language|ruu||accept| +language|ruy||accept| +language|ruz||accept| +language|rwa||accept| +language|rwk||accept| +language|rwl||accept| +language|rwm||accept| +language|rwo||accept| +language|rwr||accept| +language|rxd||accept| +language|rxw||accept| +language|ryn||accept| +language|rys||accept| +language|ryu||accept| +language|rzh||accept| +language|saa||accept| +language|sab||accept| +language|sac||accept| +language|sad||accept| +language|sae||accept| +language|saf||accept| +language|sah||accept| +language|sai||accept| +language|saj||accept| +language|sak||accept| +language|sal||accept| +language|sam||accept| +language|sao||accept| +language|sap||accept| +language|saq||accept| +language|sar||accept| +language|sas||accept| +language|sat||accept| +language|sau||accept| +language|sav||accept| +language|saw||accept| +language|sax||accept| +language|say||accept| +language|saz||accept| +language|sba||accept| +language|sbb||accept| +language|sbc||accept| +language|sbd||accept| +language|sbe||accept| +language|sbf||accept| +language|sbg||accept| +language|sbh||accept| +language|sbi||accept| +language|sbj||accept| +language|sbk||accept| +language|sbl||accept| +language|sbm||accept| +language|sbn||accept| +language|sbo||accept| +language|sbp||accept| +language|sbq||accept| +language|sbr||accept| +language|sbs||accept| +language|sbt||accept| +language|sbu||accept| +language|sbv||accept| +language|sbw||accept| +language|sbx||accept| +language|sby||accept| +language|sbz||accept| +language|sca|hle|reject|preferred-value +language|scb||accept| +language|sce||accept| +language|scf||accept| +language|scg||accept| +language|sch||accept| +language|sci||accept| +language|sck||accept| +language|scl||accept| +language|scn||accept| +language|sco||accept| +language|scp||accept| +language|scq||accept| +language|scs||accept| +language|sct||accept| +language|scu||accept| +language|scv||accept| +language|scw||accept| +language|scx||accept| +language|scz||accept| +language|sda||accept| +language|sdb||accept| +language|sdc||accept| +language|sde||accept| +language|sdf||accept| +language|sdg||accept| +language|sdh||accept| +language|sdj||accept| +language|sdk||accept| +language|sdl||accept| +language|sdm||accept| +language|sdn||accept| +language|sdo||accept| +language|sdp||accept| +language|sdq||accept| +language|sdr||accept| +language|sds||accept| +language|sdt||accept| +language|sdu||accept| +language|sdv||accept| +language|sdx||accept| +language|sdz||accept| +language|sea||accept| +language|seb||accept| +language|sec||accept| +language|sed||accept| +language|see||accept| +language|sef||accept| +language|seg||accept| +language|seh||accept| +language|sei||accept| +language|sej||accept| +language|sek||accept| +language|sel||accept| +language|sem||accept| +language|sen||accept| +language|seo||accept| +language|sep||accept| +language|seq||accept| +language|ser||accept| +language|ses||accept| +language|set||accept| +language|seu||accept| +language|sev||accept| +language|sew||accept| +language|sey||accept| +language|sez||accept| +language|sfb||accept| +language|sfe||accept| +language|sfm||accept| +language|sfs||accept| +language|sfw||accept| +language|sga||accept| +language|sgb||accept| +language|sgc||accept| +language|sgd||accept| +language|sge||accept| +language|sgg||accept| +language|sgh||accept| +language|sgi||accept| +language|sgj||accept| +language|sgk||accept| +language|sgl||accept| +language|sgm||accept| +language|sgn||accept| +language|sgo||accept| +language|sgp||accept| +language|sgr||accept| +language|sgs||accept| +language|sgt||accept| +language|sgu||accept| +language|sgw||accept| +language|sgx||accept| +language|sgy||accept| +language|sgz||accept| +language|sha||accept| +language|shb||accept| +language|shc||accept| +language|shd||accept| +language|she||accept| +language|shg||accept| +language|shh||accept| +language|shi||accept| +language|shj||accept| +language|shk||accept| +language|shl||accept| +language|shm||accept| +language|shn||accept| +language|sho||accept| +language|shp||accept| +language|shq||accept| +language|shr||accept| +language|shs||accept| +language|sht||accept| +language|shu||accept| +language|shv||accept| +language|shw||accept| +language|shx||accept| +language|shy||accept| +language|shz||accept| +language|sia||accept| +language|sib||accept| +language|sid||accept| +language|sie||accept| +language|sif||accept| +language|sig||accept| +language|sih||accept| +language|sii||accept| +language|sij||accept| +language|sik||accept| +language|sil||accept| +language|sim||accept| +language|sio||accept| +language|sip||accept| +language|siq||accept| +language|sir||accept| +language|sis||accept| +language|sit||accept| +language|siu||accept| +language|siv||accept| +language|siw||accept| +language|six||accept| +language|siy||accept| +language|siz||accept| +language|sja||accept| +language|sjb||accept| +language|sjc||accept| +language|sjd||accept| +language|sje||accept| +language|sjg||accept| +language|sjk||accept| +language|sjl||accept| +language|sjm||accept| +language|sjn||accept| +language|sjo||accept| +language|sjp||accept| +language|sjr||accept| +language|sjs||accept| +language|sjt||accept| +language|sju||accept| +language|sjw||accept| +language|ska||accept| +language|skb||accept| +language|skc||accept| +language|skd||accept| +language|ske||accept| +language|skf||accept| +language|skg||accept| +language|skh||accept| +language|ski||accept| +language|skj||accept| +language|skk|oyb|reject|preferred-value +language|skm||accept| +language|skn||accept| +language|sko||accept| +language|skp||accept| +language|skq||accept| +language|skr||accept| +language|sks||accept| +language|skt||accept| +language|sku||accept| +language|skv||accept| +language|skw||accept| +language|skx||accept| +language|sky||accept| +language|skz||accept| +language|sla||accept| +language|slc||accept| +language|sld||accept| +language|sle||accept| +language|slf||accept| +language|slg||accept| +language|slh||accept| +language|sli||accept| +language|slj||accept| +language|sll||accept| +language|slm||accept| +language|sln||accept| +language|slp||accept| +language|slq||accept| +language|slr||accept| +language|sls||accept| +language|slt||accept| +language|slu||accept| +language|slw||accept| +language|slx||accept| +language|sly||accept| +language|slz||accept| +language|sma||accept| +language|smb||accept| +language|smc||accept| +language|smd|kmb|reject|preferred-value +language|smf||accept| +language|smg||accept| +language|smh||accept| +language|smi||accept| +language|smj||accept| +language|smk||accept| +language|sml||accept| +language|smm||accept| +language|smn||accept| +language|smp||accept| +language|smq||accept| +language|smr||accept| +language|sms||accept| +language|smt||accept| +language|smu||accept| +language|smv||accept| +language|smw||accept| +language|smx||accept| +language|smy||accept| +language|smz||accept| +language|snb|iba|reject|preferred-value +language|snc||accept| +language|sne||accept| +language|snf||accept| +language|sng||accept| +language|snh||accept| +language|sni||accept| +language|snj||accept| +language|snk||accept| +language|snl||accept| +language|snm||accept| +language|snn||accept| +language|sno||accept| +language|snp||accept| +language|snq||accept| +language|snr||accept| +language|sns||accept| +language|snu||accept| +language|snv||accept| +language|snw||accept| +language|snx||accept| +language|sny||accept| +language|snz||accept| +language|soa||accept| +language|sob||accept| +language|soc||accept| +language|sod||accept| +language|soe||accept| +language|sog||accept| +language|soh||accept| +language|soi||accept| +language|soj||accept| +language|sok||accept| +language|sol||accept| +language|son||accept| +language|soo||accept| +language|sop||accept| +language|soq||accept| +language|sor||accept| +language|sos||accept| +language|sou||accept| +language|sov||accept| +language|sow||accept| +language|sox||accept| +language|soy||accept| +language|soz||accept| +language|spb||accept| +language|spc||accept| +language|spd||accept| +language|spe||accept| +language|spg||accept| +language|spi||accept| +language|spk||accept| +language|spl||accept| +language|spm||accept| +language|spn||accept| +language|spo||accept| +language|spp||accept| +language|spq||accept| +language|spr||accept| +language|sps||accept| +language|spt||accept| +language|spu||accept| +language|spv||accept| +language|spx||accept| +language|spy||accept| +language|sqa||accept| +language|sqh||accept| +language|sqj||accept| +language|sqk||accept| +language|sqm||accept| +language|sqn||accept| +language|sqo||accept| +language|sqq||accept| +language|sqr||accept| +language|sqs||accept| +language|sqt||accept| +language|squ||accept| +language|sqx||accept| +language|sra||accept| +language|srb||accept| +language|src||accept| +language|sre||accept| +language|srf||accept| +language|srg||accept| +language|srh||accept| +language|sri||accept| +language|srk||accept| +language|srl||accept| +language|srm||accept| +language|srn||accept| +language|sro||accept| +language|srq||accept| +language|srr||accept| +language|srs||accept| +language|srt||accept| +language|sru||accept| +language|srv||accept| +language|srw||accept| +language|srx||accept| +language|sry||accept| +language|srz||accept| +language|ssa||accept| +language|ssb||accept| +language|ssc||accept| +language|ssd||accept| +language|sse||accept| +language|ssf||accept| +language|ssg||accept| +language|ssh||accept| +language|ssi||accept| +language|ssj||accept| +language|ssk||accept| +language|ssl||accept| +language|ssm||accept| +language|ssn||accept| +language|sso||accept| +language|ssp||accept| +language|ssq||accept| +language|ssr||accept| +language|sss||accept| +language|sst||accept| +language|ssu||accept| +language|ssv||accept| +language|ssx||accept| +language|ssy||accept| +language|ssz||accept| +language|sta||accept| +language|stb||accept| +language|std||accept| +language|ste||accept| +language|stf||accept| +language|stg||accept| +language|sth||accept| +language|sti||accept| +language|stj||accept| +language|stk||accept| +language|stl||accept| +language|stm||accept| +language|stn||accept| +language|sto||accept| +language|stp||accept| +language|stq||accept| +language|str||accept| +language|sts||accept| +language|stt||accept| +language|stu||accept| +language|stv||accept| +language|stw||accept| +language|sty||accept| +language|sua||accept| +language|sub||accept| +language|suc||accept| +language|sue||accept| +language|sug||accept| +language|sui||accept| +language|suj||accept| +language|suk||accept| +language|sul||accept| +language|sum||accept| +language|suo||accept| +language|suq||accept| +language|sur||accept| +language|sus||accept| +language|sut||accept| +language|suv||accept| +language|suw||accept| +language|sux||accept| +language|suy||accept| +language|suz||accept| +language|sva||accept| +language|svb||accept| +language|svc||accept| +language|sve||accept| +language|svk||accept| +language|svm||accept| +language|svr||accept| +language|svs||accept| +language|svx||accept| +language|swb||accept| +language|swc||accept| +language|swf||accept| +language|swg||accept| +language|swh||accept| +language|swi||accept| +language|swj||accept| +language|swk||accept| +language|swl||accept| +language|swm||accept| +language|swn||accept| +language|swo||accept| +language|swp||accept| +language|swq||accept| +language|swr||accept| +language|sws||accept| +language|swt||accept| +language|swu||accept| +language|swv||accept| +language|sww||accept| +language|swx||accept| +language|swy||accept| +language|sxb||accept| +language|sxc||accept| +language|sxe||accept| +language|sxg||accept| +language|sxk||accept| +language|sxl||accept| +language|sxm||accept| +language|sxn||accept| +language|sxo||accept| +language|sxr||accept| +language|sxs||accept| +language|sxu||accept| +language|sxw||accept| +language|sya||accept| +language|syb||accept| +language|syc||accept| +language|syd||accept| +language|syi||accept| +language|syk||accept| +language|syl||accept| +language|sym||accept| +language|syn||accept| +language|syo||accept| +language|syr||accept| +language|sys||accept| +language|syw||accept| +language|syx||accept| +language|syy||accept| +language|sza||accept| +language|szb||accept| +language|szc||accept| +language|szd|umi|reject|preferred-value +language|sze||accept| +language|szg||accept| +language|szl||accept| +language|szn||accept| +language|szp||accept| +language|szs||accept| +language|szv||accept| +language|szw||accept| +language|szy||accept| +language|taa||accept| +language|tab||accept| +language|tac||accept| +language|tad||accept| +language|tae||accept| +language|taf||accept| +language|tag||accept| +language|tai||accept| +language|taj||accept| +language|tak||accept| +language|tal||accept| +language|tan||accept| +language|tao||accept| +language|tap||accept| +language|taq||accept| +language|tar||accept| +language|tas||accept| +language|tau||accept| +language|tav||accept| +language|taw||accept| +language|tax||accept| +language|tay||accept| +language|taz||accept| +language|tba||accept| +language|tbb||accept| +language|tbc||accept| +language|tbd||accept| +language|tbe||accept| +language|tbf||accept| +language|tbg||accept| +language|tbh||accept| +language|tbi||accept| +language|tbj||accept| +language|tbk||accept| +language|tbl||accept| +language|tbm||accept| +language|tbn||accept| +language|tbo||accept| +language|tbp||accept| +language|tbq||accept| +language|tbr||accept| +language|tbs||accept| +language|tbt||accept| +language|tbu||accept| +language|tbv||accept| +language|tbw||accept| +language|tbx||accept| +language|tby||accept| +language|tbz||accept| +language|tca||accept| +language|tcb||accept| +language|tcc||accept| +language|tcd||accept| +language|tce||accept| +language|tcf||accept| +language|tcg||accept| +language|tch||accept| +language|tci||accept| +language|tck||accept| +language|tcl||accept| +language|tcm||accept| +language|tcn||accept| +language|tco||accept| +language|tcp||accept| +language|tcq||accept| +language|tcs||accept| +language|tct||accept| +language|tcu||accept| +language|tcw||accept| +language|tcx||accept| +language|tcy||accept| +language|tcz||accept| +language|tda||accept| +language|tdb||accept| +language|tdc||accept| +language|tdd||accept| +language|tde||accept| +language|tdf||accept| +language|tdg||accept| +language|tdh||accept| +language|tdi||accept| +language|tdj||accept| +language|tdk||accept| +language|tdl||accept| +language|tdm||accept| +language|tdn||accept| +language|tdo||accept| +language|tdq||accept| +language|tdr||accept| +language|tds||accept| +language|tdt||accept| +language|tdu|dtp|reject|preferred-value +language|tdv||accept| +language|tdx||accept| +language|tdy||accept| +language|tea||accept| +language|teb||accept| +language|tec||accept| +language|ted||accept| +language|tee||accept| +language|tef||accept| +language|teg||accept| +language|teh||accept| +language|tei||accept| +language|tek||accept| +language|tem||accept| +language|ten||accept| +language|teo||accept| +language|tep||accept| +language|teq||accept| +language|ter||accept| +language|tes||accept| +language|tet||accept| +language|teu||accept| +language|tev||accept| +language|tew||accept| +language|tex||accept| +language|tey||accept| +language|tez||accept| +language|tfi||accept| +language|tfn||accept| +language|tfo||accept| +language|tfr||accept| +language|tft||accept| +language|tga||accept| +language|tgb||accept| +language|tgc||accept| +language|tgd||accept| +language|tge||accept| +language|tgf||accept| +language|tgg||accept| +language|tgh||accept| +language|tgi||accept| +language|tgj||accept| +language|tgn||accept| +language|tgo||accept| +language|tgp||accept| +language|tgq||accept| +language|tgr||accept| +language|tgs||accept| +language|tgt||accept| +language|tgu||accept| +language|tgv||accept| +language|tgw||accept| +language|tgx||accept| +language|tgy||accept| +language|tgz||accept| +language|thc|tpo|reject|preferred-value +language|thd||accept| +language|the||accept| +language|thf||accept| +language|thh||accept| +language|thi||accept| +language|thk||accept| +language|thl||accept| +language|thm||accept| +language|thn||accept| +language|thp||accept| +language|thq||accept| +language|thr||accept| +language|ths||accept| +language|tht||accept| +language|thu||accept| +language|thv||accept| +language|thw|ola|reject|preferred-value +language|thx|oyb|reject|preferred-value +language|thy||accept| +language|thz||accept| +language|tia||accept| +language|tic||accept| +language|tid||accept| +language|tie|ras|reject|preferred-value +language|tif||accept| +language|tig||accept| +language|tih||accept| +language|tii||accept| +language|tij||accept| +language|tik||accept| +language|til||accept| +language|tim||accept| +language|tin||accept| +language|tio||accept| +language|tip||accept| +language|tiq||accept| +language|tis||accept| +language|tit||accept| +language|tiu||accept| +language|tiv||accept| +language|tiw||accept| +language|tix||accept| +language|tiy||accept| +language|tiz||accept| +language|tja||accept| +language|tjg||accept| +language|tji||accept| +language|tjj||accept| +language|tjl||accept| +language|tjm||accept| +language|tjn||accept| +language|tjo||accept| +language|tjp||accept| +language|tjs||accept| +language|tju||accept| +language|tjw||accept| +language|tka||accept| +language|tkb||accept| +language|tkd||accept| +language|tke||accept| +language|tkf||accept| +language|tkg||accept| +language|tkk|twm|reject|preferred-value +language|tkl||accept| +language|tkm||accept| +language|tkn||accept| +language|tkp||accept| +language|tkq||accept| +language|tkr||accept| +language|tks||accept| +language|tkt||accept| +language|tku||accept| +language|tkv||accept| +language|tkw||accept| +language|tkx||accept| +language|tkz||accept| +language|tla||accept| +language|tlb||accept| +language|tlc||accept| +language|tld||accept| +language|tlf||accept| +language|tlg||accept| +language|tlh||accept| +language|tli||accept| +language|tlj||accept| +language|tlk||accept| +language|tll||accept| +language|tlm||accept| +language|tln||accept| +language|tlo||accept| +language|tlp||accept| +language|tlq||accept| +language|tlr||accept| +language|tls||accept| +language|tlt||accept| +language|tlu||accept| +language|tlv||accept| +language|tlw|weo|reject|preferred-value +language|tlx||accept| +language|tly||accept| +language|tma||accept| +language|tmb||accept| +language|tmc||accept| +language|tmd||accept| +language|tme||accept| +language|tmf||accept| +language|tmg||accept| +language|tmh||accept| +language|tmi||accept| +language|tmj||accept| +language|tmk|tdg|reject|preferred-value +language|tml||accept| +language|tmm||accept| +language|tmn||accept| +language|tmo||accept| +language|tmp|tyj|reject|preferred-value +language|tmq||accept| +language|tmr||accept| +language|tms||accept| +language|tmt||accept| +language|tmu||accept| +language|tmv||accept| +language|tmw||accept| +language|tmy||accept| +language|tmz||accept| +language|tna||accept| +language|tnb||accept| +language|tnc||accept| +language|tnd||accept| +language|tne|kak|reject|preferred-value +language|tnf|prs|reject|preferred-value +language|tng||accept| +language|tnh||accept| +language|tni||accept| +language|tnk||accept| +language|tnl||accept| +language|tnm||accept| +language|tnn||accept| +language|tno||accept| +language|tnp||accept| +language|tnq||accept| +language|tnr||accept| +language|tns||accept| +language|tnt||accept| +language|tnu||accept| +language|tnv||accept| +language|tnw||accept| +language|tnx||accept| +language|tny||accept| +language|tnz||accept| +language|tob||accept| +language|toc||accept| +language|tod||accept| +language|toe||accept| +language|tof||accept| +language|tog||accept| +language|toh||accept| +language|toi||accept| +language|toj||accept| +language|tok||accept| +language|tol||accept| +language|tom||accept| +language|too||accept| +language|top||accept| +language|toq||accept| +language|tor||accept| +language|tos||accept| +language|tou||accept| +language|tov||accept| +language|tow||accept| +language|tox||accept| +language|toy||accept| +language|toz||accept| +language|tpa||accept| +language|tpc||accept| +language|tpe||accept| +language|tpf||accept| +language|tpg||accept| +language|tpi||accept| +language|tpj||accept| +language|tpk||accept| +language|tpl||accept| +language|tpm||accept| +language|tpn||accept| +language|tpo||accept| +language|tpp||accept| +language|tpq||accept| +language|tpr||accept| +language|tpt||accept| +language|tpu||accept| +language|tpv||accept| +language|tpw|tpn|reject|preferred-value +language|tpx||accept| +language|tpy||accept| +language|tpz||accept| +language|tqb||accept| +language|tql||accept| +language|tqm||accept| +language|tqn||accept| +language|tqo||accept| +language|tqp||accept| +language|tqq||accept| +language|tqr||accept| +language|tqt||accept| +language|tqu||accept| +language|tqw||accept| +language|tra||accept| +language|trb||accept| +language|trc||accept| +language|trd||accept| +language|tre||accept| +language|trf||accept| +language|trg||accept| +language|trh||accept| +language|tri||accept| +language|trj||accept| +language|trk||accept| +language|trl||accept| +language|trm||accept| +language|trn||accept| +language|tro||accept| +language|trp||accept| +language|trq||accept| +language|trr||accept| +language|trs||accept| +language|trt||accept| +language|tru||accept| +language|trv||accept| +language|trw||accept| +language|trx||accept| +language|try||accept| +language|trz||accept| +language|tsa||accept| +language|tsb||accept| +language|tsc||accept| +language|tsd||accept| +language|tse||accept| +language|tsf|taj|reject|preferred-value +language|tsg||accept| +language|tsh||accept| +language|tsi||accept| +language|tsj||accept| +language|tsk||accept| +language|tsl||accept| +language|tsm||accept| +language|tsp||accept| +language|tsq||accept| +language|tsr||accept| +language|tss||accept| +language|tst||accept| +language|tsu||accept| +language|tsv||accept| +language|tsw||accept| +language|tsx||accept| +language|tsy||accept| +language|tsz||accept| +language|tta||accept| +language|ttb||accept| +language|ttc||accept| +language|ttd||accept| +language|tte||accept| +language|ttf||accept| +language|ttg||accept| +language|tth||accept| +language|tti||accept| +language|ttj||accept| +language|ttk||accept| +language|ttl||accept| +language|ttm||accept| +language|ttn||accept| +language|tto||accept| +language|ttp||accept| +language|ttq||accept| +language|ttr||accept| +language|tts||accept| +language|ttt||accept| +language|ttu||accept| +language|ttv||accept| +language|ttw||accept| +language|tty||accept| +language|ttz||accept| +language|tua||accept| +language|tub||accept| +language|tuc||accept| +language|tud||accept| +language|tue||accept| +language|tuf||accept| +language|tug||accept| +language|tuh||accept| +language|tui||accept| +language|tuj||accept| +language|tul||accept| +language|tum||accept| +language|tun||accept| +language|tuo||accept| +language|tup||accept| +language|tuq||accept| +language|tus||accept| +language|tut||accept| +language|tuu||accept| +language|tuv||accept| +language|tuw||accept| +language|tux||accept| +language|tuy||accept| +language|tuz||accept| +language|tva||accept| +language|tvd||accept| +language|tve||accept| +language|tvg||accept| +language|tvi||accept| +language|tvk||accept| +language|tvl||accept| +language|tvm||accept| +language|tvn||accept| +language|tvo||accept| +language|tvs||accept| +language|tvt||accept| +language|tvu||accept| +language|tvw||accept| +language|tvx||accept| +language|tvy||accept| +language|twa||accept| +language|twb||accept| +language|twc||accept| +language|twd||accept| +language|twe||accept| +language|twf||accept| +language|twg||accept| +language|twh||accept| +language|twl||accept| +language|twm||accept| +language|twn||accept| +language|two||accept| +language|twp||accept| +language|twq||accept| +language|twr||accept| +language|twt||accept| +language|twu||accept| +language|tww||accept| +language|twx||accept| +language|twy||accept| +language|txa||accept| +language|txb||accept| +language|txc||accept| +language|txe||accept| +language|txg||accept| +language|txh||accept| +language|txi||accept| +language|txj||accept| +language|txm||accept| +language|txn||accept| +language|txo||accept| +language|txq||accept| +language|txr||accept| +language|txs||accept| +language|txt||accept| +language|txu||accept| +language|txx||accept| +language|txy||accept| +language|tya||accept| +language|tye||accept| +language|tyh||accept| +language|tyi||accept| +language|tyj||accept| +language|tyl||accept| +language|tyn||accept| +language|typ||accept| +language|tyr||accept| +language|tys||accept| +language|tyt||accept| +language|tyu||accept| +language|tyv||accept| +language|tyx||accept| +language|tyy||accept| +language|tyz||accept| +language|tza||accept| +language|tzh||accept| +language|tzj||accept| +language|tzl||accept| +language|tzm||accept| +language|tzn||accept| +language|tzo||accept| +language|tzx||accept| +language|uam||accept| +language|uan||accept| +language|uar||accept| +language|uba||accept| +language|ubi||accept| +language|ubl||accept| +language|ubr||accept| +language|ubu||accept| +language|uby||accept| +language|uda||accept| +language|ude||accept| +language|udg||accept| +language|udi||accept| +language|udj||accept| +language|udl||accept| +language|udm||accept| +language|udu||accept| +language|ues||accept| +language|ufi||accept| +language|uga||accept| +language|ugb||accept| +language|uge||accept| +language|ugh||accept| +language|ugn||accept| +language|ugo||accept| +language|ugy||accept| +language|uha||accept| +language|uhn||accept| +language|uis||accept| +language|uiv||accept| +language|uji||accept| +language|uka||accept| +language|ukg||accept| +language|ukh||accept| +language|uki||accept| +language|ukk||accept| +language|ukl||accept| +language|ukp||accept| +language|ukq||accept| +language|uks||accept| +language|uku||accept| +language|ukv||accept| +language|ukw||accept| +language|uky||accept| +language|ula||accept| +language|ulb||accept| +language|ulc||accept| +language|ule||accept| +language|ulf||accept| +language|uli||accept| +language|ulk||accept| +language|ull||accept| +language|ulm||accept| +language|uln||accept| +language|ulu||accept| +language|ulw||accept| +language|uly||accept| +language|uma||accept| +language|umb||accept| +language|umc||accept| +language|umd||accept| +language|umg||accept| +language|umi||accept| +language|umm||accept| +language|umn||accept| +language|umo||accept| +language|ump||accept| +language|umr||accept| +language|ums||accept| +language|umu||accept| +language|una||accept| +language|und||accept| +language|une||accept| +language|ung||accept| +language|uni||accept| +language|unk||accept| +language|unm||accept| +language|unn||accept| +language|unp||accept| +language|unr||accept| +language|unu||accept| +language|unx||accept| +language|unz||accept| +language|uok|ema|reject|preferred-value +language|uon||accept| +language|upi||accept| +language|upv||accept| +language|ura||accept| +language|urb||accept| +language|urc||accept| +language|ure||accept| +language|urf||accept| +language|urg||accept| +language|urh||accept| +language|uri||accept| +language|urj||accept| +language|urk||accept| +language|url||accept| +language|urm||accept| +language|urn||accept| +language|uro||accept| +language|urp||accept| +language|urr||accept| +language|urt||accept| +language|uru||accept| +language|urv||accept| +language|urw||accept| +language|urx||accept| +language|ury||accept| +language|urz||accept| +language|usa||accept| +language|ush||accept| +language|usi||accept| +language|usk||accept| +language|usp||accept| +language|uss||accept| +language|usu||accept| +language|uta||accept| +language|ute||accept| +language|uth||accept| +language|utp||accept| +language|utr||accept| +language|utu||accept| +language|uum||accept| +language|uun||accept| +language|uur||accept| +language|uuu||accept| +language|uve||accept| +language|uvh||accept| +language|uvl||accept| +language|uwa||accept| +language|uya||accept| +language|uzn||accept| +language|uzs||accept| +language|vaa||accept| +language|vae||accept| +language|vaf||accept| +language|vag||accept| +language|vah||accept| +language|vai||accept| +language|vaj||accept| +language|val||accept| +language|vam||accept| +language|van||accept| +language|vao||accept| +language|vap||accept| +language|var||accept| +language|vas||accept| +language|vau||accept| +language|vav||accept| +language|vay||accept| +language|vbb||accept| +language|vbk||accept| +language|vec||accept| +language|ved||accept| +language|vel||accept| +language|vem||accept| +language|veo||accept| +language|vep||accept| +language|ver||accept| +language|vgr||accept| +language|vgt||accept| +language|vic||accept| +language|vid||accept| +language|vif||accept| +language|vig||accept| +language|vil||accept| +language|vin||accept| +language|vis||accept| +language|vit||accept| +language|viv||accept| +language|vjk||accept| +language|vka||accept| +language|vki||accept| +language|vkj||accept| +language|vkk||accept| +language|vkl||accept| +language|vkm||accept| +language|vkn||accept| +language|vko||accept| +language|vkp||accept| +language|vkt||accept| +language|vku||accept| +language|vkz||accept| +language|vlp||accept| +language|vls||accept| +language|vma||accept| +language|vmb||accept| +language|vmc||accept| +language|vmd||accept| +language|vme||accept| +language|vmf||accept| +language|vmg||accept| +language|vmh||accept| +language|vmi||accept| +language|vmj||accept| +language|vmk||accept| +language|vml||accept| +language|vmm||accept| +language|vmp||accept| +language|vmq||accept| +language|vmr||accept| +language|vms||accept| +language|vmu||accept| +language|vmv||accept| +language|vmw||accept| +language|vmx||accept| +language|vmy||accept| +language|vmz||accept| +language|vnk||accept| +language|vnm||accept| +language|vnp||accept| +language|vor||accept| +language|vot||accept| +language|vra||accept| +language|vro||accept| +language|vrs||accept| +language|vrt||accept| +language|vsi||accept| +language|vsl||accept| +language|vsn||accept| +language|vsv||accept| +language|vto||accept| +language|vum||accept| +language|vun||accept| +language|vut||accept| +language|vwa||accept| +language|waa||accept| +language|wab||accept| +language|wac||accept| +language|wad||accept| +language|wae||accept| +language|waf||accept| +language|wag||accept| +language|wah||accept| +language|wai||accept| +language|waj||accept| +language|wak||accept| +language|wal||accept| +language|wam||accept| +language|wan||accept| +language|wao||accept| +language|wap||accept| +language|waq||accept| +language|war||accept| +language|was||accept| +language|wat||accept| +language|wau||accept| +language|wav||accept| +language|waw||accept| +language|wax||accept| +language|way||accept| +language|waz||accept| +language|wba||accept| +language|wbb||accept| +language|wbe||accept| +language|wbf||accept| +language|wbh||accept| +language|wbi||accept| +language|wbj||accept| +language|wbk||accept| +language|wbl||accept| +language|wbm||accept| +language|wbp||accept| +language|wbq||accept| +language|wbr||accept| +language|wbs||accept| +language|wbt||accept| +language|wbv||accept| +language|wbw||accept| +language|wca||accept| +language|wci||accept| +language|wdd||accept| +language|wdg||accept| +language|wdj||accept| +language|wdk||accept| +language|wdt||accept| +language|wdu||accept| +language|wdy||accept| +language|wea||accept| +language|wec||accept| +language|wed||accept| +language|weg||accept| +language|weh||accept| +language|wei||accept| +language|wem||accept| +language|wen||accept| +language|weo||accept| +language|wep||accept| +language|wer||accept| +language|wes||accept| +language|wet||accept| +language|weu||accept| +language|wew||accept| +language|wfg||accept| +language|wga||accept| +language|wgb||accept| +language|wgg||accept| +language|wgi||accept| +language|wgo||accept| +language|wgu||accept| +language|wgw||accept| +language|wgy||accept| +language|wha||accept| +language|whg||accept| +language|whk||accept| +language|whu||accept| +language|wib||accept| +language|wic||accept| +language|wie||accept| +language|wif||accept| +language|wig||accept| +language|wih||accept| +language|wii||accept| +language|wij||accept| +language|wik||accept| +language|wil||accept| +language|wim||accept| +language|win||accept| +language|wir||accept| +language|wit||accept| +language|wiu||accept| +language|wiv||accept| +language|wiw||accept| +language|wiy||accept| +language|wja||accept| +language|wji||accept| +language|wka||accept| +language|wkb||accept| +language|wkd||accept| +language|wkl||accept| +language|wkr||accept| +language|wku||accept| +language|wkw||accept| +language|wky||accept| +language|wla||accept| +language|wlc||accept| +language|wle||accept| +language|wlg||accept| +language|wlh||accept| +language|wli||accept| +language|wlk||accept| +language|wll||accept| +language|wlm||accept| +language|wlo||accept| +language|wlr||accept| +language|wls||accept| +language|wlu||accept| +language|wlv||accept| +language|wlw||accept| +language|wlx||accept| +language|wly||accept| +language|wma||accept| +language|wmb||accept| +language|wmc||accept| +language|wmd||accept| +language|wme||accept| +language|wmg||accept| +language|wmh||accept| +language|wmi||accept| +language|wmm||accept| +language|wmn||accept| +language|wmo||accept| +language|wms||accept| +language|wmt||accept| +language|wmw||accept| +language|wmx||accept| +language|wnb||accept| +language|wnc||accept| +language|wnd||accept| +language|wne||accept| +language|wng||accept| +language|wni||accept| +language|wnk||accept| +language|wnm||accept| +language|wnn||accept| +language|wno||accept| +language|wnp||accept| +language|wnu||accept| +language|wnw||accept| +language|wny||accept| +language|woa||accept| +language|wob||accept| +language|woc||accept| +language|wod||accept| +language|woe||accept| +language|wof||accept| +language|wog||accept| +language|woi||accept| +language|wok||accept| +language|wom||accept| +language|won||accept| +language|woo||accept| +language|wor||accept| +language|wos||accept| +language|wow||accept| +language|woy||accept| +language|wpc||accept| +language|wra||accept| +language|wrb||accept| +language|wrd||accept| +language|wrg||accept| +language|wrh||accept| +language|wri||accept| +language|wrk||accept| +language|wrl||accept| +language|wrm||accept| +language|wrn||accept| +language|wro||accept| +language|wrp||accept| +language|wrr||accept| +language|wrs||accept| +language|wru||accept| +language|wrv||accept| +language|wrw||accept| +language|wrx||accept| +language|wry||accept| +language|wrz||accept| +language|wsa||accept| +language|wsg||accept| +language|wsi||accept| +language|wsk||accept| +language|wsr||accept| +language|wss||accept| +language|wsu||accept| +language|wsv||accept| +language|wtb||accept| +language|wtf||accept| +language|wth||accept| +language|wti||accept| +language|wtk||accept| +language|wtm||accept| +language|wtw||accept| +language|wua||accept| +language|wub||accept| +language|wud||accept| +language|wuh||accept| +language|wul||accept| +language|wum||accept| +language|wun||accept| +language|wur||accept| +language|wut||accept| +language|wuu||accept| +language|wuv||accept| +language|wux||accept| +language|wuy||accept| +language|wwa||accept| +language|wwb||accept| +language|wwo||accept| +language|wwr||accept| +language|www||accept| +language|wxa||accept| +language|wxw||accept| +language|wya||accept| +language|wyb||accept| +language|wyi||accept| +language|wym||accept| +language|wyn||accept| +language|wyr||accept| +language|wyy||accept| +language|xaa||accept| +language|xab||accept| +language|xac||accept| +language|xad||accept| +language|xae||accept| +language|xag||accept| +language|xai||accept| +language|xaj||accept| +language|xak||accept| +language|xal||accept| +language|xam||accept| +language|xan||accept| +language|xao||accept| +language|xap||accept| +language|xaq||accept| +language|xar||accept| +language|xas||accept| +language|xat||accept| +language|xau||accept| +language|xav||accept| +language|xaw||accept| +language|xay||accept| +language|xba|cax|reject|preferred-value +language|xbb||accept| +language|xbc||accept| +language|xbd||accept| +language|xbe||accept| +language|xbg||accept| +language|xbi||accept| +language|xbj||accept| +language|xbm||accept| +language|xbn||accept| +language|xbo||accept| +language|xbp||accept| +language|xbr||accept| +language|xbw||accept| +language|xbx||accept| +language|xby||accept| +language|xcb||accept| +language|xcc||accept| +language|xce||accept| +language|xcg||accept| +language|xch||accept| +language|xcl||accept| +language|xcm||accept| +language|xcn||accept| +language|xco||accept| +language|xcr||accept| +language|xct||accept| +language|xcu||accept| +language|xcv||accept| +language|xcw||accept| +language|xcy||accept| +language|xda||accept| +language|xdc||accept| +language|xdk||accept| +language|xdm||accept| +language|xdo||accept| +language|xdq||accept| +language|xdy||accept| +language|xeb||accept| +language|xed||accept| +language|xeg||accept| +language|xel||accept| +language|xem||accept| +language|xep||accept| +language|xer||accept| +language|xes||accept| +language|xet||accept| +language|xeu||accept| +language|xfa||accept| +language|xga||accept| +language|xgb||accept| +language|xgd||accept| +language|xgf||accept| +language|xgg||accept| +language|xgi||accept| +language|xgl||accept| +language|xgm||accept| +language|xgn||accept| +language|xgr||accept| +language|xgu||accept| +language|xgw||accept| +language|xha||accept| +language|xhc||accept| +language|xhd||accept| +language|xhe||accept| +language|xhm||accept| +language|xhr||accept| +language|xht||accept| +language|xhu||accept| +language|xhv||accept| +language|xia|acn|reject|preferred-value +language|xib||accept| +language|xii||accept| +language|xil||accept| +language|xin||accept| +language|xip||accept| +language|xir||accept| +language|xis||accept| +language|xiv||accept| +language|xiy||accept| +language|xjb||accept| +language|xjt||accept| +language|xka||accept| +language|xkb||accept| +language|xkc||accept| +language|xkd||accept| +language|xke||accept| +language|xkf||accept| +language|xkg||accept| +language|xkh|waw|reject|preferred-value +language|xki||accept| +language|xkj||accept| +language|xkk||accept| +language|xkl||accept| +language|xkn||accept| +language|xko||accept| +language|xkp||accept| +language|xkq||accept| +language|xkr||accept| +language|xks||accept| +language|xkt||accept| +language|xku||accept| +language|xkv||accept| +language|xkw||accept| +language|xkx||accept| +language|xky||accept| +language|xkz||accept| +language|xla||accept| +language|xlb||accept| +language|xlc||accept| +language|xld||accept| +language|xle||accept| +language|xlg||accept| +language|xli||accept| +language|xln||accept| +language|xlo||accept| +language|xlp||accept| +language|xls||accept| +language|xlu||accept| +language|xly||accept| +language|xma||accept| +language|xmb||accept| +language|xmc||accept| +language|xmd||accept| +language|xme||accept| +language|xmf||accept| +language|xmg||accept| +language|xmh||accept| +language|xmj||accept| +language|xmk||accept| +language|xml||accept| +language|xmm||accept| +language|xmn||accept| +language|xmo||accept| +language|xmp||accept| +language|xmq||accept| +language|xmr||accept| +language|xms||accept| +language|xmt||accept| +language|xmu||accept| +language|xmv||accept| +language|xmw||accept| +language|xmx||accept| +language|xmy||accept| +language|xmz||accept| +language|xna||accept| +language|xnb||accept| +language|xnd||accept| +language|xng||accept| +language|xnh||accept| +language|xni||accept| +language|xnj||accept| +language|xnk||accept| +language|xnm||accept| +language|xnn||accept| +language|xno||accept| +language|xnq||accept| +language|xnr||accept| +language|xns||accept| +language|xnt||accept| +language|xnu||accept| +language|xny||accept| +language|xnz||accept| +language|xoc||accept| +language|xod||accept| +language|xog||accept| +language|xoi||accept| +language|xok||accept| +language|xom||accept| +language|xon||accept| +language|xoo||accept| +language|xop||accept| +language|xor||accept| +language|xow||accept| +language|xpa||accept| +language|xpb||accept| +language|xpc||accept| +language|xpd||accept| +language|xpe||accept| +language|xpf||accept| +language|xpg||accept| +language|xph||accept| +language|xpi||accept| +language|xpj||accept| +language|xpk||accept| +language|xpl||accept| +language|xpm||accept| +language|xpn||accept| +language|xpo||accept| +language|xpp||accept| +language|xpq||accept| +language|xpr||accept| +language|xps||accept| +language|xpt||accept| +language|xpu||accept| +language|xpv||accept| +language|xpw||accept| +language|xpx||accept| +language|xpy||accept| +language|xpz||accept| +language|xqa||accept| +language|xqt||accept| +language|xra||accept| +language|xrb||accept| +language|xrd||accept| +language|xre||accept| +language|xrg||accept| +language|xri||accept| +language|xrm||accept| +language|xrn||accept| +language|xrq|dmw|reject|preferred-value +language|xrr||accept| +language|xrt||accept| +language|xru||accept| +language|xrw||accept| +language|xsa||accept| +language|xsb||accept| +language|xsc||accept| +language|xsd||accept| +language|xse||accept| +language|xsh||accept| +language|xsi||accept| +language|xsj||accept| +language|xsl||accept| +language|xsm||accept| +language|xsn||accept| +language|xso||accept| +language|xsp||accept| +language|xsq||accept| +language|xsr||accept| +language|xss|zko|reject|preferred-value +language|xsu||accept| +language|xsv||accept| +language|xsy||accept| +language|xta||accept| +language|xtb||accept| +language|xtc||accept| +language|xtd||accept| +language|xte||accept| +language|xtg||accept| +language|xth||accept| +language|xti||accept| +language|xtj||accept| +language|xtl||accept| +language|xtm||accept| +language|xtn||accept| +language|xto||accept| +language|xtp||accept| +language|xtq||accept| +language|xtr||accept| +language|xts||accept| +language|xtt||accept| +language|xtu||accept| +language|xtv||accept| +language|xtw||accept| +language|xty||accept| +language|xtz||accept| +language|xua||accept| +language|xub||accept| +language|xud||accept| +language|xug||accept| +language|xuj||accept| +language|xul||accept| +language|xum||accept| +language|xun||accept| +language|xuo||accept| +language|xup||accept| +language|xur||accept| +language|xut||accept| +language|xuu||accept| +language|xve||accept| +language|xvi||accept| +language|xvn||accept| +language|xvo||accept| +language|xvs||accept| +language|xwa||accept| +language|xwc||accept| +language|xwd||accept| +language|xwe||accept| +language|xwg||accept| +language|xwj||accept| +language|xwk||accept| +language|xwl||accept| +language|xwo||accept| +language|xwr||accept| +language|xwt||accept| +language|xww||accept| +language|xxb||accept| +language|xxk||accept| +language|xxm||accept| +language|xxr||accept| +language|xxt||accept| +language|xya||accept| +language|xyb||accept| +language|xyj||accept| +language|xyk||accept| +language|xyl||accept| +language|xyt||accept| +language|xyy||accept| +language|xzh||accept| +language|xzm||accept| +language|xzp||accept| +language|yaa||accept| +language|yab||accept| +language|yac||accept| +language|yad||accept| +language|yae||accept| +language|yaf||accept| +language|yag||accept| +language|yah||accept| +language|yai||accept| +language|yaj||accept| +language|yak||accept| +language|yal||accept| +language|yam||accept| +language|yan||accept| +language|yao||accept| +language|yap||accept| +language|yaq||accept| +language|yar||accept| +language|yas||accept| +language|yat||accept| +language|yau||accept| +language|yav||accept| +language|yaw||accept| +language|yax||accept| +language|yay||accept| +language|yaz||accept| +language|yba||accept| +language|ybb||accept| +language|ybd|rki|reject|preferred-value +language|ybe||accept| +language|ybh||accept| +language|ybi||accept| +language|ybj||accept| +language|ybk||accept| +language|ybl||accept| +language|ybm||accept| +language|ybn||accept| +language|ybo||accept| +language|ybx||accept| +language|yby||accept| +language|ych||accept| +language|ycl||accept| +language|ycn||accept| +language|ycp||accept| +language|ycr||accept| +language|yda||accept| +language|ydd||accept| +language|yde||accept| +language|ydg||accept| +language|ydk||accept| +language|yds||accept| +language|yea||accept| +language|yec||accept| +language|yee||accept| +language|yei||accept| +language|yej||accept| +language|yel||accept| +language|yen||accept| +language|yer||accept| +language|yes||accept| +language|yet||accept| +language|yeu||accept| +language|yev||accept| +language|yey||accept| +language|yga||accept| +language|ygi||accept| +language|ygl||accept| +language|ygm||accept| +language|ygp||accept| +language|ygr||accept| +language|ygs||accept| +language|ygu||accept| +language|ygw||accept| +language|yha||accept| +language|yhd||accept| +language|yhl||accept| +language|yhs||accept| +language|yia||accept| +language|yif||accept| +language|yig||accept| +language|yih||accept| +language|yii||accept| +language|yij||accept| +language|yik||accept| +language|yil||accept| +language|yim||accept| +language|yin||accept| +language|yip||accept| +language|yiq||accept| +language|yir||accept| +language|yis||accept| +language|yit||accept| +language|yiu||accept| +language|yiv||accept| +language|yix||accept| +language|yiy||accept| +language|yiz||accept| +language|yka||accept| +language|ykg||accept| +language|ykh||accept| +language|yki||accept| +language|ykk||accept| +language|ykl||accept| +language|ykm||accept| +language|ykn||accept| +language|yko||accept| +language|ykr||accept| +language|ykt||accept| +language|yku||accept| +language|yky||accept| +language|yla||accept| +language|ylb||accept| +language|yle||accept| +language|ylg||accept| +language|yli||accept| +language|yll||accept| +language|ylm||accept| +language|yln||accept| +language|ylo||accept| +language|ylr||accept| +language|ylu||accept| +language|yly||accept| +language|yma|lrr|reject|preferred-value +language|ymb||accept| +language|ymc||accept| +language|ymd||accept| +language|yme||accept| +language|ymg||accept| +language|ymh||accept| +language|ymi||accept| +language|ymk||accept| +language|yml||accept| +language|ymm||accept| +language|ymn||accept| +language|ymo||accept| +language|ymp||accept| +language|ymq||accept| +language|ymr||accept| +language|yms||accept| +language|ymt|mtm|reject|preferred-value +language|ymx||accept| +language|ymz||accept| +language|yna||accept| +language|ynb||accept| +language|ynd||accept| +language|yne||accept| +language|yng||accept| +language|ynh||accept| +language|ynk||accept| +language|ynl||accept| +language|ynn||accept| +language|yno||accept| +language|ynq||accept| +language|yns||accept| +language|ynu||accept| +language|yob||accept| +language|yog||accept| +language|yoi||accept| +language|yok||accept| +language|yol|enm|reject|preferred-value +language|yom||accept| +language|yon||accept| +language|yos|zom|reject|preferred-value +language|yot||accept| +language|yox||accept| +language|yoy||accept| +language|ypa||accept| +language|ypb||accept| +language|ypg||accept| +language|yph||accept| +language|ypk||accept| +language|ypm||accept| +language|ypn||accept| +language|ypo||accept| +language|ypp||accept| +language|ypz||accept| +language|yra||accept| +language|yrb||accept| +language|yre||accept| +language|yri||accept| +language|yrk||accept| +language|yrl||accept| +language|yrm||accept| +language|yrn||accept| +language|yro||accept| +language|yrs||accept| +language|yrw||accept| +language|yry||accept| +language|ysc||accept| +language|ysd||accept| +language|ysg||accept| +language|ysl||accept| +language|ysm||accept| +language|ysn||accept| +language|yso||accept| +language|ysp||accept| +language|ysr||accept| +language|yss||accept| +language|ysy||accept| +language|yta||accept| +language|ytl||accept| +language|ytp||accept| +language|ytw||accept| +language|yty||accept| +language|yua||accept| +language|yub||accept| +language|yuc||accept| +language|yud||accept| +language|yue||accept| +language|yuf||accept| +language|yug||accept| +language|yui||accept| +language|yuj||accept| +language|yuk||accept| +language|yul||accept| +language|yum||accept| +language|yun||accept| +language|yup||accept| +language|yuq||accept| +language|yur||accept| +language|yut||accept| +language|yuu|yug|reject|preferred-value +language|yuw||accept| +language|yux||accept| +language|yuy||accept| +language|yuz||accept| +language|yva||accept| +language|yvt||accept| +language|ywa||accept| +language|ywg||accept| +language|ywl||accept| +language|ywn||accept| +language|ywq||accept| +language|ywr||accept| +language|ywt||accept| +language|ywu||accept| +language|yww||accept| +language|yxa||accept| +language|yxg||accept| +language|yxl||accept| +language|yxm||accept| +language|yxu||accept| +language|yxy||accept| +language|yyr||accept| +language|yyu||accept| +language|yyz||accept| +language|yzg||accept| +language|yzk||accept| +language|zaa||accept| +language|zab||accept| +language|zac||accept| +language|zad||accept| +language|zae||accept| +language|zaf||accept| +language|zag||accept| +language|zah||accept| +language|zai||accept| +language|zaj||accept| +language|zak||accept| +language|zal||accept| +language|zam||accept| +language|zao||accept| +language|zap||accept| +language|zaq||accept| +language|zar||accept| +language|zas||accept| +language|zat||accept| +language|zau||accept| +language|zav||accept| +language|zaw||accept| +language|zax||accept| +language|zay||accept| +language|zaz||accept| +language|zba||accept| +language|zbc||accept| +language|zbe||accept| +language|zbl||accept| +language|zbt||accept| +language|zbu||accept| +language|zbw||accept| +language|zca||accept| +language|zcd||accept| +language|zch||accept| +language|zdj||accept| +language|zea||accept| +language|zeg||accept| +language|zeh||accept| +language|zem||accept| +language|zen||accept| +language|zga||accept| +language|zgb||accept| +language|zgh||accept| +language|zgm||accept| +language|zgn||accept| +language|zgr||accept| +language|zhb||accept| +language|zhd||accept| +language|zhi||accept| +language|zhk||accept| +language|zhn||accept| +language|zhw||accept| +language|zhx||accept| +language|zia||accept| +language|zib||accept| +language|zik||accept| +language|zil||accept| +language|zim||accept| +language|zin||accept| +language|zir|scv|reject|preferred-value +language|ziw||accept| +language|ziz||accept| +language|zka||accept| +language|zkb|kjh|reject|preferred-value +language|zkd||accept| +language|zkg||accept| +language|zkh||accept| +language|zkk||accept| +language|zkn||accept| +language|zko||accept| +language|zkp||accept| +language|zkr||accept| +language|zkt||accept| +language|zku||accept| +language|zkv||accept| +language|zkz||accept| +language|zla||accept| +language|zle||accept| +language|zlj||accept| +language|zlm||accept| +language|zln||accept| +language|zlq||accept| +language|zls||accept| +language|zlu||accept| +language|zlw||accept| +language|zma||accept| +language|zmb||accept| +language|zmc||accept| +language|zmd||accept| +language|zme||accept| +language|zmf||accept| +language|zmg||accept| +language|zmh||accept| +language|zmi||accept| +language|zmj||accept| +language|zmk||accept| +language|zml||accept| +language|zmm||accept| +language|zmn||accept| +language|zmo||accept| +language|zmp||accept| +language|zmq||accept| +language|zmr||accept| +language|zms||accept| +language|zmt||accept| +language|zmu||accept| +language|zmv||accept| +language|zmw||accept| +language|zmx||accept| +language|zmy||accept| +language|zmz||accept| +language|zna||accept| +language|znd||accept| +language|zne||accept| +language|zng||accept| +language|znk||accept| +language|zns||accept| +language|zoc||accept| +language|zoh||accept| +language|zom||accept| +language|zoo||accept| +language|zoq||accept| +language|zor||accept| +language|zos||accept| +language|zpa||accept| +language|zpb||accept| +language|zpc||accept| +language|zpd||accept| +language|zpe||accept| +language|zpf||accept| +language|zpg||accept| +language|zph||accept| +language|zpi||accept| +language|zpj||accept| +language|zpk||accept| +language|zpl||accept| +language|zpm||accept| +language|zpn||accept| +language|zpo||accept| +language|zpp||accept| +language|zpq||accept| +language|zpr||accept| +language|zps||accept| +language|zpt||accept| +language|zpu||accept| +language|zpv||accept| +language|zpw||accept| +language|zpx||accept| +language|zpy||accept| +language|zpz||accept| +language|zqe||accept| +language|zra||accept| +language|zrg||accept| +language|zrn||accept| +language|zro||accept| +language|zrp||accept| +language|zrs||accept| +language|zsa||accept| +language|zsk||accept| +language|zsl||accept| +language|zsm||accept| +language|zsr||accept| +language|zsu||accept| +language|zte||accept| +language|ztg||accept| +language|ztl||accept| +language|ztm||accept| +language|ztn||accept| +language|ztp||accept| +language|ztq||accept| +language|zts||accept| +language|ztt||accept| +language|ztu||accept| +language|ztx||accept| +language|zty||accept| +language|zua||accept| +language|zuh||accept| +language|zum||accept| +language|zun||accept| +language|zuy||accept| +language|zwa||accept| +language|zxx||accept| +language|zyb||accept| +language|zyg||accept| +language|zyj||accept| +language|zyn||accept| +language|zyp||accept| +language|zza||accept| +language|zzj||accept| +grandfathered|art-lojban|jbo|reject|preferred-value +grandfathered|cel-gaulish||accept| +grandfathered|en-GB-oed|en-GB-oxendict|reject|preferred-value +grandfathered|i-ami|ami|reject|preferred-value +grandfathered|i-bnn|bnn|reject|preferred-value +grandfathered|i-default||accept| +grandfathered|i-enochian||accept| +grandfathered|i-hak|hak|reject|preferred-value +grandfathered|i-klingon|tlh|reject|preferred-value +grandfathered|i-lux|lb|reject|preferred-value +grandfathered|i-mingo||accept| +grandfathered|i-navajo|nv|reject|preferred-value +grandfathered|i-pwn|pwn|reject|preferred-value +grandfathered|i-tao|tao|reject|preferred-value +grandfathered|i-tay|tay|reject|preferred-value +grandfathered|i-tsu|tsu|reject|preferred-value +grandfathered|no-bok|nb|reject|preferred-value +grandfathered|no-nyn|nn|reject|preferred-value +grandfathered|sgn-BE-FR|sfb|reject|preferred-value +grandfathered|sgn-BE-NL|vgt|reject|preferred-value +grandfathered|sgn-CH-DE|sgg|reject|preferred-value +grandfathered|zh-guoyu|cmn|reject|preferred-value +grandfathered|zh-hakka|hak|reject|preferred-value +grandfathered|zh-min||accept| +grandfathered|zh-min-nan|nan|reject|preferred-value +grandfathered|zh-xiang|hsn|reject|preferred-value +redundant|az-Arab||accept| +redundant|az-Cyrl||accept| +redundant|az-Latn||accept| +redundant|be-Latn||accept| +redundant|bs-Cyrl||accept| +redundant|bs-Latn||accept| +redundant|de-1901||accept| +redundant|de-1996||accept| +redundant|de-AT-1901||accept| +redundant|de-AT-1996||accept| +redundant|de-CH-1901||accept| +redundant|de-CH-1996||accept| +redundant|de-DE-1901||accept| +redundant|de-DE-1996||accept| +redundant|en-boont||accept| +redundant|en-scouse||accept| +redundant|es-419||accept| +redundant|iu-Cans||accept| +redundant|iu-Latn||accept| +redundant|mn-Cyrl||accept| +redundant|mn-Mong||accept| +redundant|sgn-BR|bzs|reject|preferred-value +redundant|sgn-CO|csn|reject|preferred-value +redundant|sgn-DE|gsg|reject|preferred-value +redundant|sgn-DK|dsl|reject|preferred-value +redundant|sgn-ES|ssp|reject|preferred-value +redundant|sgn-FR|fsl|reject|preferred-value +redundant|sgn-GB|bfi|reject|preferred-value +redundant|sgn-GR|gss|reject|preferred-value +redundant|sgn-IE|isg|reject|preferred-value +redundant|sgn-IT|ise|reject|preferred-value +redundant|sgn-JP|jsl|reject|preferred-value +redundant|sgn-MX|mfs|reject|preferred-value +redundant|sgn-NI|ncs|reject|preferred-value +redundant|sgn-NL|dse|reject|preferred-value +redundant|sgn-NO|nsl|reject|preferred-value +redundant|sgn-PT|psr|reject|preferred-value +redundant|sgn-SE|swl|reject|preferred-value +redundant|sgn-US|ase|reject|preferred-value +redundant|sgn-ZA|sfs|reject|preferred-value +redundant|sl-nedis||accept| +redundant|sl-rozaj||accept| +redundant|sr-Cyrl||accept| +redundant|sr-Latn||accept| +redundant|tg-Arab||accept| +redundant|tg-Cyrl||accept| +redundant|uz-Cyrl||accept| +redundant|uz-Latn||accept| +redundant|yi-Latn||accept| +redundant|zh-cmn|cmn|reject|preferred-value +redundant|zh-cmn-Hans|cmn-Hans|reject|preferred-value +redundant|zh-cmn-Hant|cmn-Hant|reject|preferred-value +redundant|zh-gan|gan|reject|preferred-value +redundant|zh-Hans||accept| +redundant|zh-Hans-CN||accept| +redundant|zh-Hans-HK||accept| +redundant|zh-Hans-MO||accept| +redundant|zh-Hans-SG||accept| +redundant|zh-Hans-TW||accept| +redundant|zh-Hant||accept| +redundant|zh-Hant-CN||accept| +redundant|zh-Hant-HK||accept| +redundant|zh-Hant-MO||accept| +redundant|zh-Hant-SG||accept| +redundant|zh-Hant-TW||accept| +redundant|zh-wuu|wuu|reject|preferred-value +redundant|zh-yue|yue|reject|preferred-value diff --git a/pkg/rules/testdata/iso_3166_1_triplets_2026-07-21.txt b/pkg/rules/testdata/iso_3166_1_triplets_2026-07-21.txt new file mode 100644 index 00000000..ea30ea95 --- /dev/null +++ b/pkg/rules/testdata/iso_3166_1_triplets_2026-07-21.txt @@ -0,0 +1,249 @@ +DZ,DZA,012 +EG,EGY,818 +LY,LBY,434 +MA,MAR,504 +SD,SDN,729 +TN,TUN,788 +EH,ESH,732 +IO,IOT,086 +BI,BDI,108 +KM,COM,174 +DJ,DJI,262 +ER,ERI,232 +ET,ETH,231 +TF,ATF,260 +KE,KEN,404 +MG,MDG,450 +MW,MWI,454 +MU,MUS,480 +YT,MYT,175 +MZ,MOZ,508 +RE,REU,638 +RW,RWA,646 +SC,SYC,690 +SO,SOM,706 +SS,SSD,728 +UG,UGA,800 +TZ,TZA,834 +ZM,ZMB,894 +ZW,ZWE,716 +AO,AGO,024 +CM,CMR,120 +CF,CAF,140 +TD,TCD,148 +CG,COG,178 +CD,COD,180 +GQ,GNQ,226 +GA,GAB,266 +ST,STP,678 +BW,BWA,072 +SZ,SWZ,748 +LS,LSO,426 +NA,NAM,516 +ZA,ZAF,710 +BJ,BEN,204 +BF,BFA,854 +CV,CPV,132 +CI,CIV,384 +GM,GMB,270 +GH,GHA,288 +GN,GIN,324 +GW,GNB,624 +LR,LBR,430 +ML,MLI,466 +MR,MRT,478 +NE,NER,562 +NG,NGA,566 +SH,SHN,654 +SN,SEN,686 +SL,SLE,694 +TG,TGO,768 +AI,AIA,660 +AG,ATG,028 +AW,ABW,533 +BS,BHS,044 +BB,BRB,052 +BQ,BES,535 +VG,VGB,092 +KY,CYM,136 +CU,CUB,192 +CW,CUW,531 +DM,DMA,212 +DO,DOM,214 +GD,GRD,308 +GP,GLP,312 +HT,HTI,332 +JM,JAM,388 +MQ,MTQ,474 +MS,MSR,500 +PR,PRI,630 +BL,BLM,652 +KN,KNA,659 +LC,LCA,662 +MF,MAF,663 +VC,VCT,670 +SX,SXM,534 +TT,TTO,780 +TC,TCA,796 +VI,VIR,850 +BZ,BLZ,084 +CR,CRI,188 +SV,SLV,222 +GT,GTM,320 +HN,HND,340 +MX,MEX,484 +NI,NIC,558 +PA,PAN,591 +AR,ARG,032 +BO,BOL,068 +BV,BVT,074 +BR,BRA,076 +CL,CHL,152 +CO,COL,170 +EC,ECU,218 +FK,FLK,238 +GF,GUF,254 +GY,GUY,328 +PY,PRY,600 +PE,PER,604 +GS,SGS,239 +SR,SUR,740 +UY,URY,858 +VE,VEN,862 +BM,BMU,060 +CA,CAN,124 +GL,GRL,304 +PM,SPM,666 +US,USA,840 +AQ,ATA,010 +KZ,KAZ,398 +KG,KGZ,417 +TJ,TJK,762 +TM,TKM,795 +UZ,UZB,860 +CN,CHN,156 +HK,HKG,344 +MO,MAC,446 +KP,PRK,408 +JP,JPN,392 +MN,MNG,496 +KR,KOR,410 +BN,BRN,096 +KH,KHM,116 +ID,IDN,360 +LA,LAO,418 +MY,MYS,458 +MM,MMR,104 +PH,PHL,608 +SG,SGP,702 +TH,THA,764 +TL,TLS,626 +VN,VNM,704 +AF,AFG,004 +BD,BGD,050 +BT,BTN,064 +IN,IND,356 +IR,IRN,364 +MV,MDV,462 +NP,NPL,524 +PK,PAK,586 +LK,LKA,144 +AM,ARM,051 +AZ,AZE,031 +BH,BHR,048 +CY,CYP,196 +GE,GEO,268 +IQ,IRQ,368 +IL,ISR,376 +JO,JOR,400 +KW,KWT,414 +LB,LBN,422 +OM,OMN,512 +QA,QAT,634 +SA,SAU,682 +PS,PSE,275 +SY,SYR,760 +TR,TUR,792 +AE,ARE,784 +YE,YEM,887 +BY,BLR,112 +BG,BGR,100 +CZ,CZE,203 +HU,HUN,348 +PL,POL,616 +MD,MDA,498 +RO,ROU,642 +RU,RUS,643 +SK,SVK,703 +UA,UKR,804 +AX,ALA,248 +DK,DNK,208 +EE,EST,233 +FO,FRO,234 +FI,FIN,246 +GG,GGY,831 +IS,ISL,352 +IE,IRL,372 +IM,IMN,833 +JE,JEY,832 +LV,LVA,428 +LT,LTU,440 +NO,NOR,578 +SJ,SJM,744 +SE,SWE,752 +GB,GBR,826 +AL,ALB,008 +AD,AND,020 +BA,BIH,070 +HR,HRV,191 +GI,GIB,292 +GR,GRC,300 +VA,VAT,336 +IT,ITA,380 +MT,MLT,470 +ME,MNE,499 +MK,MKD,807 +PT,PRT,620 +SM,SMR,674 +RS,SRB,688 +SI,SVN,705 +ES,ESP,724 +AT,AUT,040 +BE,BEL,056 +FR,FRA,250 +DE,DEU,276 +LI,LIE,438 +LU,LUX,442 +MC,MCO,492 +NL,NLD,528 +CH,CHE,756 +AU,AUS,036 +CX,CXR,162 +CC,CCK,166 +HM,HMD,334 +NZ,NZL,554 +NF,NFK,574 +FJ,FJI,242 +NC,NCL,540 +PG,PNG,598 +SB,SLB,090 +VU,VUT,548 +GU,GUM,316 +KI,KIR,296 +MH,MHL,584 +FM,FSM,583 +NR,NRU,520 +MP,MNP,580 +PW,PLW,585 +UM,UMI,581 +AS,ASM,016 +CK,COK,184 +PF,PYF,258 +NU,NIU,570 +PN,PCN,612 +WS,WSM,882 +TK,TKL,772 +TO,TON,776 +TV,TUV,798 +WF,WLF,876 +TW,TWN,158 diff --git a/pkg/rules/testdata/six_iso4217_list_one_2026-01-01.txt b/pkg/rules/testdata/six_iso4217_list_one_2026-01-01.txt new file mode 100644 index 00000000..dc63a4c2 --- /dev/null +++ b/pkg/rules/testdata/six_iso4217_list_one_2026-01-01.txt @@ -0,0 +1,178 @@ +AED +AFN +ALL +AMD +AOA +ARS +AUD +AWG +AZN +BAM +BBD +BDT +BHD +BIF +BMD +BND +BOB +BOV +BRL +BSD +BTN +BWP +BYN +BZD +CAD +CDF +CHE +CHF +CHW +CLF +CLP +CNY +COP +COU +CRC +CUP +CVE +CZK +DJF +DKK +DOP +DZD +EGP +ERN +ETB +EUR +FJD +FKP +GBP +GEL +GHS +GIP +GMD +GNF +GTQ +GYD +HKD +HNL +HTG +HUF +IDR +ILS +INR +IQD +IRR +ISK +JMD +JOD +JPY +KES +KGS +KHR +KMF +KPW +KRW +KWD +KYD +KZT +LAK +LBP +LKR +LRD +LSL +LYD +MAD +MDL +MGA +MKD +MMK +MNT +MOP +MRU +MUR +MVR +MWK +MXN +MXV +MYR +MZN +NAD +NGN +NIO +NOK +NPR +NZD +OMR +PAB +PEN +PGK +PHP +PKR +PLN +PYG +QAR +RON +RSD +RUB +RWF +SAR +SBD +SCR +SDG +SEK +SGD +SHP +SLE +SOS +SRD +SSP +STN +SVC +SYP +SZL +THB +TJS +TMT +TND +TOP +TRY +TTD +TWD +TZS +UAH +UGX +USD +USN +UYI +UYU +UYW +UZS +VED +VES +VND +VUV +WST +XAD +XAF +XAG +XAU +XBA +XBB +XBC +XBD +XCD +XCG +XDR +XOF +XPD +XPF +XPT +XSU +XTS +XUA +XXX +YER +ZAR +ZMW +ZWG diff --git a/pkg/rules/testdata/unece_iso3166_2_2024-2.txt b/pkg/rules/testdata/unece_iso3166_2_2024-2.txt new file mode 100644 index 00000000..42cff16a --- /dev/null +++ b/pkg/rules/testdata/unece_iso3166_2_2024-2.txt @@ -0,0 +1,4676 @@ +AD-02 +AD-03 +AD-04 +AD-05 +AD-06 +AD-07 +AD-08 +AE-AJ +AE-AZ +AE-DU +AE-FU +AE-RK +AE-SH +AE-UQ +AF-BAL +AF-BAM +AF-BDG +AF-BDS +AF-BGL +AF-DAY +AF-FRA +AF-FYB +AF-GHA +AF-GHO +AF-HEL +AF-HER +AF-JOW +AF-KAB +AF-KAN +AF-KAP +AF-KDZ +AF-KHO +AF-KNR +AF-LAG +AF-LOG +AF-NAN +AF-NIM +AF-NUR +AF-PAN +AF-PAR +AF-PIA +AF-PKA +AF-SAM +AF-SAR +AF-TAK +AF-URU +AF-WAR +AF-ZAB +AG-03 +AG-04 +AG-05 +AG-06 +AG-07 +AG-08 +AG-10 +AG-11 +AL-01 +AL-02 +AL-03 +AL-04 +AL-05 +AL-06 +AL-07 +AL-08 +AL-09 +AL-10 +AL-11 +AL-12 +AM-AG +AM-AR +AM-AV +AM-ER +AM-GR +AM-KT +AM-LO +AM-SH +AM-SU +AM-TV +AM-VD +AO-BGO +AO-BGU +AO-BIE +AO-CAB +AO-CCU +AO-CNN +AO-CNO +AO-CUS +AO-HUA +AO-HUI +AO-LNO +AO-LSU +AO-LUA +AO-MAL +AO-MOX +AO-NAM +AO-UIG +AO-ZAI +AR-A +AR-B +AR-C +AR-D +AR-E +AR-F +AR-G +AR-H +AR-J +AR-K +AR-L +AR-M +AR-N +AR-P +AR-Q +AR-R +AR-S +AR-T +AR-U +AR-V +AR-W +AR-X +AR-Y +AR-Z +AT-1 +AT-2 +AT-3 +AT-4 +AT-5 +AT-6 +AT-7 +AT-8 +AT-9 +AU-ACT +AU-NSW +AU-NT +AU-QLD +AU-SA +AU-TAS +AU-VIC +AU-WA +AZ-ABS +AZ-AGA +AZ-AGC +AZ-AGM +AZ-AGS +AZ-AGU +AZ-AST +AZ-BA +AZ-BAB +AZ-BAL +AZ-BAR +AZ-BEY +AZ-BIL +AZ-CAB +AZ-CAL +AZ-CUL +AZ-DAS +AZ-FUZ +AZ-GA +AZ-GAD +AZ-GOR +AZ-GOY +AZ-GYG +AZ-HAC +AZ-IMI +AZ-ISM +AZ-KAL +AZ-KAN +AZ-KUR +AZ-LA +AZ-LAC +AZ-LAN +AZ-LER +AZ-MAS +AZ-MI +AZ-NA +AZ-NEF +AZ-NV +AZ-NX +AZ-OGU +AZ-ORD +AZ-QAB +AZ-QAX +AZ-QAZ +AZ-QBA +AZ-QBI +AZ-QOB +AZ-QUS +AZ-SA +AZ-SAB +AZ-SAD +AZ-SAH +AZ-SAK +AZ-SAL +AZ-SAR +AZ-SAT +AZ-SBN +AZ-SIY +AZ-SKR +AZ-SM +AZ-SMI +AZ-SMX +AZ-SR +AZ-SUS +AZ-TAR +AZ-TOV +AZ-UCA +AZ-XA +AZ-XAC +AZ-XCI +AZ-XIZ +AZ-XVD +AZ-YAR +AZ-YE +AZ-YEV +AZ-ZAN +AZ-ZAQ +AZ-ZAR +BA-BIH +BA-BRC +BA-SRP +BB-01 +BB-02 +BB-03 +BB-04 +BB-05 +BB-06 +BB-07 +BB-08 +BB-09 +BB-10 +BB-11 +BD-01 +BD-02 +BD-03 +BD-04 +BD-05 +BD-06 +BD-07 +BD-08 +BD-09 +BD-10 +BD-11 +BD-12 +BD-13 +BD-14 +BD-15 +BD-16 +BD-17 +BD-18 +BD-19 +BD-20 +BD-21 +BD-22 +BD-23 +BD-24 +BD-25 +BD-26 +BD-27 +BD-28 +BD-29 +BD-30 +BD-31 +BD-32 +BD-33 +BD-34 +BD-35 +BD-36 +BD-37 +BD-38 +BD-39 +BD-40 +BD-41 +BD-42 +BD-43 +BD-44 +BD-45 +BD-46 +BD-47 +BD-48 +BD-49 +BD-50 +BD-51 +BD-52 +BD-53 +BD-54 +BD-55 +BD-56 +BD-57 +BD-58 +BD-59 +BD-60 +BD-61 +BD-62 +BD-63 +BD-64 +BE-BRU +BE-VAN +BE-VBR +BE-VLI +BE-VOV +BE-VWV +BE-WBR +BE-WHT +BE-WLG +BE-WLX +BE-WNA +BF-BAL +BF-BAM +BF-BAN +BF-BAZ +BF-BGR +BF-BLG +BF-BLK +BF-COM +BF-GAN +BF-GNA +BF-GOU +BF-HOU +BF-IOB +BF-KAD +BF-KEN +BF-KMD +BF-KMP +BF-KOP +BF-KOS +BF-KOT +BF-KOW +BF-LER +BF-LOR +BF-MOU +BF-NAM +BF-NAO +BF-NAY +BF-NOU +BF-OUB +BF-OUD +BF-PAS +BF-PON +BF-SEN +BF-SIS +BF-SMT +BF-SNG +BF-SOM +BF-SOR +BF-TAP +BF-TUI +BF-YAG +BF-YAT +BF-ZIR +BF-ZON +BF-ZOU +BG-01 +BG-02 +BG-03 +BG-04 +BG-05 +BG-06 +BG-07 +BG-08 +BG-09 +BG-10 +BG-11 +BG-12 +BG-13 +BG-14 +BG-15 +BG-16 +BG-17 +BG-18 +BG-19 +BG-20 +BG-21 +BG-22 +BG-23 +BG-24 +BG-25 +BG-26 +BG-27 +BG-28 +BH-13 +BH-14 +BH-15 +BH-17 +BI-BB +BI-BL +BI-BM +BI-BR +BI-CA +BI-CI +BI-GI +BI-KI +BI-KR +BI-KY +BI-MA +BI-MU +BI-MW +BI-MY +BI-NG +BI-RM +BI-RT +BI-RY +BJ-AK +BJ-AL +BJ-AQ +BJ-BO +BJ-CO +BJ-DO +BJ-KO +BJ-LI +BJ-MO +BJ-OU +BJ-PL +BJ-ZO +BN-BE +BN-BM +BN-TE +BN-TU +BO-B +BO-C +BO-H +BO-L +BO-N +BO-O +BO-P +BO-S +BO-T +BQ-BO +BQ-SA +BQ-SE +BR-AC +BR-AL +BR-AM +BR-AP +BR-BA +BR-CE +BR-DF +BR-ES +BR-GO +BR-MA +BR-MG +BR-MS +BR-MT +BR-PA +BR-PB +BR-PE +BR-PI +BR-PR +BR-RJ +BR-RN +BR-RO +BR-RR +BR-RS +BR-SC +BR-SE +BR-SP +BR-TO +BS-AK +BS-BI +BS-BP +BS-BY +BS-CE +BS-CI +BS-CK +BS-CO +BS-CS +BS-EG +BS-EX +BS-FP +BS-GC +BS-HI +BS-HT +BS-IN +BS-LI +BS-MC +BS-MG +BS-MI +BS-NE +BS-NO +BS-NP +BS-NS +BS-RC +BS-RI +BS-SA +BS-SE +BS-SO +BS-SS +BS-SW +BS-WG +BT-11 +BT-12 +BT-13 +BT-14 +BT-15 +BT-21 +BT-22 +BT-23 +BT-24 +BT-31 +BT-32 +BT-33 +BT-34 +BT-41 +BT-42 +BT-43 +BT-44 +BT-45 +BT-GA +BT-TY +BW-CE +BW-CH +BW-FR +BW-GA +BW-GH +BW-JW +BW-KG +BW-KL +BW-KW +BW-LO +BW-NE +BW-NW +BW-SE +BW-SO +BW-SP +BW-ST +BY-BR +BY-HM +BY-HO +BY-HR +BY-MA +BY-MI +BY-VI +BZ-BZ +BZ-CY +BZ-CZL +BZ-OW +BZ-SC +BZ-TOL +CA-AB +CA-BC +CA-MB +CA-NB +CA-NL +CA-NS +CA-NT +CA-NU +CA-ON +CA-PE +CA-QC +CA-SK +CA-YT +CD-BC +CD-BU +CD-EQ +CD-HK +CD-HL +CD-HU +CD-IT +CD-KC +CD-KE +CD-KG +CD-KL +CD-KN +CD-KS +CD-LO +CD-LU +CD-MA +CD-MN +CD-MO +CD-NK +CD-NU +CD-SA +CD-SK +CD-SU +CD-TA +CD-TO +CD-TU +CF-AC +CF-BB +CF-BGF +CF-BK +CF-HK +CF-HM +CF-HS +CF-KB +CF-KG +CF-LB +CF-MB +CF-MP +CF-NM +CF-OP +CF-SE +CF-UK +CF-VK +CG-11 +CG-12 +CG-13 +CG-14 +CG-15 +CG-16 +CG-2 +CG-5 +CG-7 +CG-8 +CG-9 +CG-BZV +CH-AG +CH-AI +CH-AR +CH-BE +CH-BL +CH-BS +CH-FR +CH-GE +CH-GL +CH-GR +CH-JU +CH-LU +CH-NE +CH-NW +CH-OW +CH-SG +CH-SH +CH-SO +CH-SZ +CH-TG +CH-TI +CH-UR +CH-VD +CH-VS +CH-ZG +CH-ZH +CI-AB +CI-BS +CI-CM +CI-DN +CI-GD +CI-LC +CI-LG +CI-MG +CI-SM +CI-SV +CI-VB +CI-WR +CI-YM +CI-ZZ +CL-AI +CL-AN +CL-AP +CL-AR +CL-AT +CL-BI +CL-CO +CL-LI +CL-LL +CL-LR +CL-MA +CL-ML +CL-NB +CL-RM +CL-TA +CL-VS +CM-AD +CM-CE +CM-EN +CM-ES +CM-LT +CM-NO +CM-NW +CM-OU +CM-SU +CM-SW +CN-AH +CN-BJ +CN-CQ +CN-FJ +CN-GD +CN-GS +CN-GX +CN-GZ +CN-HA +CN-HB +CN-HE +CN-HI +CN-HK +CN-HL +CN-HN +CN-JL +CN-JS +CN-JX +CN-LN +CN-MO +CN-NM +CN-NX +CN-QH +CN-SC +CN-SD +CN-SH +CN-SN +CN-SX +CN-TJ +CN-TW +CN-XJ +CN-XZ +CN-YN +CN-ZJ +CO-AMA +CO-ANT +CO-ARA +CO-ATL +CO-BOL +CO-BOY +CO-CAL +CO-CAQ +CO-CAS +CO-CAU +CO-CES +CO-CHO +CO-COR +CO-CUN +CO-DC +CO-GUA +CO-GUV +CO-HUI +CO-LAG +CO-MAG +CO-MET +CO-NAR +CO-NSA +CO-PUT +CO-QUI +CO-RIS +CO-SAN +CO-SAP +CO-SUC +CO-TOL +CO-VAC +CO-VAU +CO-VID +CR-A +CR-C +CR-G +CR-H +CR-L +CR-P +CR-SJ +CU-01 +CU-02 +CU-03 +CU-04 +CU-05 +CU-06 +CU-07 +CU-08 +CU-09 +CU-10 +CU-11 +CU-12 +CU-13 +CU-14 +CU-15 +CU-16 +CU-99 +CV-BR +CV-BV +CV-CA +CV-CF +CV-CR +CV-MA +CV-MO +CV-PA +CV-PN +CV-PR +CV-RB +CV-RG +CV-RS +CV-SD +CV-SF +CV-SL +CV-SM +CV-SO +CV-SS +CV-SV +CV-TA +CV-TS +CY-01 +CY-02 +CY-03 +CY-04 +CY-05 +CY-06 +CZ-10 +CZ-20 +CZ-31 +CZ-32 +CZ-41 +CZ-42 +CZ-51 +CZ-52 +CZ-53 +CZ-63 +CZ-64 +CZ-71 +CZ-72 +CZ-80 +DE-BB +DE-BE +DE-BW +DE-BY +DE-HB +DE-HE +DE-HH +DE-MV +DE-NI +DE-NW +DE-RP +DE-SH +DE-SL +DE-SN +DE-ST +DE-TH +DJ-AR +DJ-AS +DJ-DI +DJ-DJ +DJ-OB +DJ-TA +DK-81 +DK-82 +DK-83 +DK-84 +DK-85 +DM-02 +DM-03 +DM-04 +DM-05 +DM-06 +DM-07 +DM-08 +DM-09 +DM-10 +DM-11 +DO-01 +DO-02 +DO-03 +DO-04 +DO-05 +DO-06 +DO-07 +DO-08 +DO-09 +DO-10 +DO-11 +DO-12 +DO-13 +DO-14 +DO-15 +DO-16 +DO-17 +DO-18 +DO-19 +DO-20 +DO-21 +DO-22 +DO-23 +DO-24 +DO-25 +DO-26 +DO-27 +DO-28 +DO-29 +DO-30 +DO-31 +DO-32 +DO-33 +DO-34 +DO-35 +DO-36 +DO-37 +DO-38 +DO-39 +DO-40 +DO-41 +DO-42 +DZ-01 +DZ-02 +DZ-03 +DZ-04 +DZ-05 +DZ-06 +DZ-07 +DZ-08 +DZ-09 +DZ-10 +DZ-11 +DZ-12 +DZ-13 +DZ-14 +DZ-15 +DZ-16 +DZ-17 +DZ-18 +DZ-19 +DZ-20 +DZ-21 +DZ-22 +DZ-23 +DZ-24 +DZ-25 +DZ-26 +DZ-27 +DZ-28 +DZ-29 +DZ-30 +DZ-31 +DZ-32 +DZ-33 +DZ-34 +DZ-35 +DZ-36 +DZ-37 +DZ-38 +DZ-39 +DZ-40 +DZ-41 +DZ-42 +DZ-43 +DZ-44 +DZ-45 +DZ-46 +DZ-47 +DZ-48 +DZ-49 +DZ-50 +DZ-51 +DZ-52 +DZ-53 +DZ-54 +DZ-55 +DZ-56 +DZ-57 +DZ-58 +EC-A +EC-B +EC-C +EC-D +EC-E +EC-F +EC-G +EC-H +EC-I +EC-L +EC-M +EC-N +EC-O +EC-P +EC-R +EC-S +EC-SD +EC-SE +EC-T +EC-U +EC-W +EC-X +EC-Y +EC-Z +EE-37 +EE-39 +EE-45 +EE-50 +EE-52 +EE-56 +EE-60 +EE-64 +EE-68 +EE-71 +EE-74 +EE-79 +EE-81 +EE-84 +EE-87 +EG-ALX +EG-ASN +EG-AST +EG-BA +EG-BH +EG-BNS +EG-C +EG-DK +EG-DT +EG-FYM +EG-GH +EG-GZ +EG-IS +EG-JS +EG-KB +EG-KFS +EG-KN +EG-LX +EG-MN +EG-MNF +EG-MT +EG-PTS +EG-SHG +EG-SHR +EG-SIN +EG-SUZ +EG-WAD +ER-AN +ER-DK +ER-DU +ER-GB +ER-MA +ER-SK +ES-A +ES-AB +ES-AL +ES-AV +ES-B +ES-BA +ES-BI +ES-BU +ES-C +ES-CA +ES-CC +ES-CE +ES-CO +ES-CR +ES-CS +ES-CU +ES-GC +ES-GI +ES-GR +ES-GU +ES-H +ES-HU +ES-J +ES-L +ES-LE +ES-LO +ES-LU +ES-M +ES-MA +ES-ML +ES-MU +ES-NA +ES-O +ES-OR +ES-P +ES-PM +ES-PO +ES-S +ES-SA +ES-SE +ES-SG +ES-SO +ES-SS +ES-T +ES-TE +ES-TF +ES-TO +ES-V +ES-VA +ES-VI +ES-Z +ES-ZA +ET-AA +ET-AF +ET-AM +ET-BE +ET-DD +ET-GA +ET-HA +ET-OR +ET-SI +ET-SN +ET-SO +ET-SW +ET-TI +FI-01 +FI-02 +FI-03 +FI-04 +FI-05 +FI-06 +FI-07 +FI-08 +FI-09 +FI-10 +FI-11 +FI-12 +FI-13 +FI-14 +FI-15 +FI-16 +FI-17 +FI-18 +FI-19 +FJ-01 +FJ-02 +FJ-03 +FJ-04 +FJ-05 +FJ-06 +FJ-07 +FJ-08 +FJ-09 +FJ-10 +FJ-11 +FJ-12 +FJ-13 +FJ-14 +FJ-R +FM-KSA +FM-PNI +FM-TRK +FM-YAP +FR-01 +FR-02 +FR-03 +FR-04 +FR-05 +FR-06 +FR-07 +FR-08 +FR-09 +FR-10 +FR-11 +FR-12 +FR-13 +FR-14 +FR-15 +FR-16 +FR-17 +FR-18 +FR-19 +FR-21 +FR-22 +FR-23 +FR-24 +FR-25 +FR-26 +FR-27 +FR-28 +FR-29 +FR-2A +FR-2B +FR-30 +FR-31 +FR-32 +FR-33 +FR-34 +FR-35 +FR-36 +FR-37 +FR-38 +FR-39 +FR-40 +FR-41 +FR-42 +FR-43 +FR-44 +FR-45 +FR-46 +FR-47 +FR-48 +FR-49 +FR-50 +FR-51 +FR-52 +FR-53 +FR-54 +FR-55 +FR-56 +FR-57 +FR-58 +FR-59 +FR-60 +FR-61 +FR-62 +FR-63 +FR-64 +FR-65 +FR-66 +FR-67 +FR-68 +FR-69 +FR-69M +FR-6AE +FR-70 +FR-71 +FR-72 +FR-73 +FR-74 +FR-75C +FR-76 +FR-77 +FR-78 +FR-79 +FR-80 +FR-81 +FR-82 +FR-83 +FR-84 +FR-85 +FR-86 +FR-87 +FR-88 +FR-89 +FR-90 +FR-91 +FR-92 +FR-93 +FR-94 +FR-95 +FR-H +GA-1 +GA-2 +GA-3 +GA-4 +GA-5 +GA-6 +GA-7 +GA-8 +GA-9 +GB-ABC +GB-ABD +GB-ABE +GB-AGB +GB-AGY +GB-AND +GB-ANN +GB-ANS +GB-BAS +GB-BBD +GB-BCP +GB-BDF +GB-BDG +GB-BEN +GB-BEX +GB-BFS +GB-BGE +GB-BGW +GB-BIR +GB-BKM +GB-BNE +GB-BNH +GB-BNS +GB-BOL +GB-BPL +GB-BRC +GB-BRD +GB-BRY +GB-BST +GB-BUR +GB-CAM +GB-CAY +GB-CBF +GB-CCG +GB-CGN +GB-CHE +GB-CHW +GB-CLD +GB-CLK +GB-CMA +GB-CMD +GB-CMN +GB-CON +GB-COV +GB-CRF +GB-CRY +GB-CWY +GB-DAL +GB-DBY +GB-DEN +GB-DER +GB-DEV +GB-DGY +GB-DNC +GB-DND +GB-DOR +GB-DRS +GB-DUD +GB-DUR +GB-EAL +GB-EAY +GB-EDH +GB-EDU +GB-ELN +GB-ELS +GB-ENF +GB-ERW +GB-ERY +GB-ESS +GB-ESX +GB-FAL +GB-FIF +GB-FLN +GB-FMO +GB-GAT +GB-GLG +GB-GLS +GB-GRE +GB-GWN +GB-HAL +GB-HAM +GB-HAV +GB-HCK +GB-HEF +GB-HIL +GB-HLD +GB-HMF +GB-HNS +GB-HPL +GB-HRT +GB-HRW +GB-HRY +GB-IOS +GB-IOW +GB-ISL +GB-IVC +GB-KEC +GB-KEN +GB-KHL +GB-KIR +GB-KTT +GB-KWL +GB-LAN +GB-LBC +GB-LBH +GB-LCE +GB-LDS +GB-LEC +GB-LEW +GB-LIN +GB-LIV +GB-LND +GB-LUT +GB-MAN +GB-MDB +GB-MDW +GB-MEA +GB-MIK +GB-MLN +GB-MON +GB-MRT +GB-MRY +GB-MTY +GB-MUL +GB-NAY +GB-NBL +GB-NEL +GB-NET +GB-NFK +GB-NGM +GB-NLK +GB-NLN +GB-NMD +GB-NNH +GB-NSM +GB-NTL +GB-NTT +GB-NTY +GB-NWM +GB-NWP +GB-NYK +GB-OLD +GB-ORK +GB-OXF +GB-PEM +GB-PKN +GB-PLY +GB-POR +GB-POW +GB-PTE +GB-RCC +GB-RCH +GB-RCT +GB-RDB +GB-RDG +GB-RFW +GB-RIC +GB-ROT +GB-RUT +GB-SAW +GB-SAY +GB-SCB +GB-SFK +GB-SFT +GB-SGC +GB-SHF +GB-SHN +GB-SHR +GB-SKP +GB-SLF +GB-SLG +GB-SLK +GB-SND +GB-SOL +GB-SOM +GB-SOS +GB-SRY +GB-STE +GB-STG +GB-STH +GB-STN +GB-STS +GB-STT +GB-STY +GB-SWA +GB-SWD +GB-SWK +GB-TAM +GB-TFW +GB-THR +GB-TOB +GB-TOF +GB-TRF +GB-TWH +GB-VGL +GB-WAR +GB-WBK +GB-WDU +GB-WFT +GB-WGN +GB-WIL +GB-WKF +GB-WLL +GB-WLN +GB-WLV +GB-WND +GB-WNH +GB-WNM +GB-WOK +GB-WOR +GB-WRL +GB-WRT +GB-WRX +GB-WSM +GB-WSX +GB-YOR +GB-ZET +GD-01 +GD-02 +GD-03 +GD-04 +GD-05 +GD-06 +GD-10 +GE-AB +GE-AJ +GE-GU +GE-IM +GE-KA +GE-KK +GE-MM +GE-RL +GE-SJ +GE-SK +GE-SZ +GE-TB +GH-AA +GH-AF +GH-AH +GH-BE +GH-BO +GH-CP +GH-EP +GH-NE +GH-NP +GH-OT +GH-SV +GH-TV +GH-UE +GH-UW +GH-WN +GH-WP +GL-AV +GL-KU +GL-QE +GL-QT +GL-SM +GM-B +GM-L +GM-M +GM-N +GM-U +GM-W +GN-BE +GN-BF +GN-BK +GN-CO +GN-DB +GN-DI +GN-DL +GN-DU +GN-FA +GN-FO +GN-FR +GN-GA +GN-GU +GN-KA +GN-KB +GN-KD +GN-KE +GN-KN +GN-KO +GN-KS +GN-LA +GN-LE +GN-LO +GN-MC +GN-MD +GN-ML +GN-MM +GN-NZ +GN-PI +GN-SI +GN-TE +GN-TO +GN-YO +GQ-AN +GQ-BN +GQ-BS +GQ-CS +GQ-DJ +GQ-KN +GQ-LI +GQ-WN +GR-A +GR-B +GR-C +GR-D +GR-E +GR-F +GR-G +GR-H +GR-I +GR-J +GR-K +GR-L +GR-M +GT-01 +GT-02 +GT-03 +GT-04 +GT-05 +GT-06 +GT-07 +GT-08 +GT-09 +GT-10 +GT-11 +GT-12 +GT-13 +GT-14 +GT-15 +GT-16 +GT-17 +GT-18 +GT-19 +GT-20 +GT-21 +GT-22 +GW-BA +GW-BL +GW-BM +GW-BS +GW-CA +GW-GA +GW-OI +GW-QU +GW-TO +GY-BA +GY-CU +GY-DE +GY-EB +GY-ES +GY-MA +GY-PM +GY-PT +GY-UD +GY-UT +HN-AT +HN-CH +HN-CL +HN-CM +HN-CP +HN-CR +HN-EP +HN-FM +HN-GD +HN-IB +HN-IN +HN-LE +HN-LP +HN-OC +HN-OL +HN-SB +HN-VA +HN-YO +HR-01 +HR-02 +HR-03 +HR-04 +HR-05 +HR-06 +HR-07 +HR-08 +HR-09 +HR-10 +HR-11 +HR-12 +HR-13 +HR-14 +HR-15 +HR-16 +HR-17 +HR-18 +HR-19 +HR-20 +HR-21 +HT-AR +HT-CE +HT-GA +HT-ND +HT-NE +HT-NI +HT-NO +HT-OU +HT-SD +HT-SE +HU-BA +HU-BC +HU-BE +HU-BK +HU-BU +HU-BZ +HU-CS +HU-DE +HU-DU +HU-EG +HU-ER +HU-FE +HU-GS +HU-GY +HU-HB +HU-HE +HU-HV +HU-JN +HU-KE +HU-KM +HU-KV +HU-MI +HU-NK +HU-NO +HU-NY +HU-PE +HU-PS +HU-SD +HU-SF +HU-SH +HU-SK +HU-SN +HU-SO +HU-SS +HU-ST +HU-SZ +HU-TB +HU-TO +HU-VA +HU-VE +HU-VM +HU-ZA +HU-ZE +ID-AC +ID-BA +ID-BB +ID-BE +ID-BT +ID-GO +ID-JA +ID-JB +ID-JI +ID-JK +ID-JT +ID-KB +ID-KI +ID-KR +ID-KS +ID-KT +ID-KU +ID-LA +ID-MA +ID-MU +ID-NB +ID-NT +ID-PA +ID-PB +ID-PE +ID-PS +ID-PT +ID-RI +ID-SA +ID-SB +ID-SG +ID-SN +ID-SR +ID-SS +ID-ST +ID-SU +ID-YO +IE-CE +IE-CN +IE-CO +IE-CW +IE-D +IE-DL +IE-G +IE-KE +IE-KK +IE-KY +IE-LD +IE-LH +IE-LK +IE-LM +IE-LS +IE-MH +IE-MN +IE-MO +IE-OY +IE-RN +IE-SO +IE-TA +IE-WD +IE-WH +IE-WW +IE-WX +IL-D +IL-HA +IL-JM +IL-M +IL-TA +IL-Z +IN-AN +IN-AP +IN-AR +IN-AS +IN-BR +IN-CH +IN-CT +IN-DH +IN-DL +IN-GA +IN-GJ +IN-HP +IN-HR +IN-JH +IN-JK +IN-JK +IN-KA +IN-KL +IN-LA +IN-LD +IN-MH +IN-ML +IN-MN +IN-MP +IN-MZ +IN-NL +IN-OR +IN-PB +IN-PY +IN-RJ +IN-SK +IN-TG +IN-TN +IN-TR +IN-UP +IN-UT +IN-WB +IQ-AN +IQ-AR +IQ-BA +IQ-BB +IQ-BG +IQ-DA +IQ-DI +IQ-DQ +IQ-KA +IQ-KI +IQ-MA +IQ-MU +IQ-NA +IQ-NI +IQ-QA +IQ-SD +IQ-SU +IQ-WA +IR-00 +IR-01 +IR-02 +IR-03 +IR-04 +IR-05 +IR-06 +IR-07 +IR-08 +IR-09 +IR-10 +IR-11 +IR-12 +IR-13 +IR-14 +IR-15 +IR-16 +IR-17 +IR-18 +IR-19 +IR-20 +IR-21 +IR-22 +IR-23 +IR-24 +IR-25 +IR-26 +IR-27 +IR-28 +IR-29 +IR-30 +IS-1 +IS-2 +IS-3 +IS-4 +IS-5 +IS-6 +IS-7 +IS-8 +IT-23 +IT-AG +IT-AL +IT-AN +IT-AP +IT-AQ +IT-AR +IT-AT +IT-AV +IT-BA +IT-BG +IT-BI +IT-BL +IT-BN +IT-BO +IT-BR +IT-BS +IT-BT +IT-BZ +IT-CA +IT-CB +IT-CE +IT-CH +IT-CL +IT-CN +IT-CO +IT-CR +IT-CS +IT-CT +IT-CZ +IT-EN +IT-FC +IT-FE +IT-FG +IT-FI +IT-FM +IT-FR +IT-GE +IT-GO +IT-GR +IT-IM +IT-IS +IT-KR +IT-LC +IT-LE +IT-LI +IT-LO +IT-LT +IT-LU +IT-MB +IT-MC +IT-ME +IT-MI +IT-MN +IT-MO +IT-MS +IT-MT +IT-NA +IT-NO +IT-NU +IT-OR +IT-PA +IT-PC +IT-PD +IT-PE +IT-PG +IT-PI +IT-PN +IT-PO +IT-PR +IT-PT +IT-PU +IT-PV +IT-PZ +IT-RA +IT-RC +IT-RE +IT-RG +IT-RI +IT-RM +IT-RN +IT-RO +IT-SA +IT-SI +IT-SO +IT-SP +IT-SR +IT-SS +IT-SU +IT-SV +IT-TA +IT-TE +IT-TN +IT-TO +IT-TP +IT-TR +IT-TS +IT-TV +IT-UD +IT-VA +IT-VB +IT-VC +IT-VE +IT-VI +IT-VR +IT-VT +IT-VV +JM-01 +JM-02 +JM-03 +JM-04 +JM-05 +JM-06 +JM-07 +JM-08 +JM-09 +JM-10 +JM-11 +JM-12 +JM-13 +JM-14 +JO-AJ +JO-AM +JO-AQ +JO-AT +JO-AZ +JO-BA +JO-IR +JO-JA +JO-KA +JO-MA +JO-MD +JO-MN +JP-01 +JP-02 +JP-03 +JP-04 +JP-05 +JP-06 +JP-07 +JP-08 +JP-09 +JP-10 +JP-11 +JP-12 +JP-13 +JP-14 +JP-15 +JP-16 +JP-17 +JP-18 +JP-19 +JP-20 +JP-21 +JP-22 +JP-23 +JP-24 +JP-25 +JP-26 +JP-27 +JP-28 +JP-29 +JP-30 +JP-31 +JP-32 +JP-33 +JP-34 +JP-35 +JP-36 +JP-37 +JP-38 +JP-39 +JP-40 +JP-41 +JP-42 +JP-43 +JP-44 +JP-45 +JP-46 +JP-47 +KE-01 +KE-02 +KE-03 +KE-04 +KE-05 +KE-06 +KE-07 +KE-08 +KE-09 +KE-10 +KE-11 +KE-12 +KE-13 +KE-14 +KE-15 +KE-16 +KE-17 +KE-18 +KE-19 +KE-20 +KE-21 +KE-22 +KE-23 +KE-24 +KE-25 +KE-26 +KE-27 +KE-28 +KE-29 +KE-30 +KE-31 +KE-32 +KE-33 +KE-34 +KE-35 +KE-36 +KE-37 +KE-38 +KE-39 +KE-40 +KE-41 +KE-42 +KE-43 +KE-44 +KE-45 +KE-46 +KE-47 +KG-B +KG-C +KG-GB +KG-GO +KG-J +KG-N +KG-O +KG-T +KG-Y +KH-1 +KH-10 +KH-11 +KH-12 +KH-13 +KH-14 +KH-15 +KH-16 +KH-17 +KH-18 +KH-19 +KH-2 +KH-20 +KH-21 +KH-22 +KH-23 +KH-24 +KH-25 +KH-3 +KH-4 +KH-5 +KH-6 +KH-7 +KH-8 +KH-9 +KI-G +KI-L +KI-P +KM-A +KM-G +KM-M +KN-01 +KN-02 +KN-03 +KN-04 +KN-05 +KN-06 +KN-07 +KN-08 +KN-09 +KN-10 +KN-11 +KN-12 +KN-13 +KN-15 +KP-01 +KP-02 +KP-03 +KP-04 +KP-05 +KP-06 +KP-07 +KP-08 +KP-09 +KP-10 +KP-13 +KP-14 +KP-15 +KR-11 +KR-26 +KR-27 +KR-28 +KR-29 +KR-30 +KR-31 +KR-41 +KR-42 +KR-43 +KR-44 +KR-45 +KR-46 +KR-47 +KR-48 +KR-49 +KR-50 +KW-AH +KW-FA +KW-HA +KW-JA +KW-KU +KW-MU +KZ-10 +KZ-11 +KZ-15 +KZ-19 +KZ-23 +KZ-27 +KZ-31 +KZ-33 +KZ-35 +KZ-39 +KZ-43 +KZ-47 +KZ-55 +KZ-59 +KZ-61 +KZ-62 +KZ-63 +KZ-71 +KZ-75 +KZ-79 +LA-AT +LA-BK +LA-BL +LA-CH +LA-HO +LA-KH +LA-LM +LA-LP +LA-OU +LA-PH +LA-SL +LA-SV +LA-VI +LA-VT +LA-XA +LA-XE +LA-XI +LA-XS +LB-AK +LB-AS +LB-BA +LB-BH +LB-BI +LB-JA +LB-JL +LB-NA +LC-01 +LC-02 +LC-03 +LC-05 +LC-06 +LC-07 +LC-08 +LC-10 +LC-11 +LC-12 +LI-01 +LI-02 +LI-03 +LI-04 +LI-05 +LI-06 +LI-07 +LI-08 +LI-09 +LI-10 +LI-11 +LK-1 +LK-11 +LK-12 +LK-13 +LK-2 +LK-21 +LK-22 +LK-23 +LK-3 +LK-31 +LK-32 +LK-33 +LK-4 +LK-41 +LK-42 +LK-43 +LK-44 +LK-45 +LK-5 +LK-51 +LK-52 +LK-53 +LK-6 +LK-61 +LK-62 +LK-7 +LK-71 +LK-72 +LK-8 +LK-81 +LK-82 +LK-9 +LK-91 +LK-92 +LR-BG +LR-BM +LR-CM +LR-GB +LR-GG +LR-GK +LR-GP +LR-LO +LR-MG +LR-MO +LR-MY +LR-NI +LR-RG +LR-RI +LR-SI +LS-A +LS-B +LS-C +LS-D +LS-E +LS-F +LS-G +LS-H +LS-J +LS-K +LT-01 +LT-02 +LT-03 +LT-04 +LT-05 +LT-06 +LT-07 +LT-08 +LT-09 +LT-10 +LT-11 +LT-12 +LT-13 +LT-14 +LT-15 +LT-16 +LT-17 +LT-18 +LT-19 +LT-20 +LT-21 +LT-22 +LT-23 +LT-24 +LT-25 +LT-26 +LT-27 +LT-28 +LT-29 +LT-30 +LT-31 +LT-32 +LT-33 +LT-34 +LT-35 +LT-36 +LT-37 +LT-38 +LT-39 +LT-40 +LT-41 +LT-42 +LT-43 +LT-44 +LT-45 +LT-46 +LT-47 +LT-48 +LT-49 +LT-50 +LT-51 +LT-52 +LT-53 +LT-54 +LT-55 +LT-56 +LT-57 +LT-58 +LT-59 +LT-60 +LT-AL +LT-KL +LT-KU +LT-MR +LT-PN +LT-SA +LT-TA +LT-TE +LT-UT +LT-VL +LU-CA +LU-CL +LU-DI +LU-EC +LU-ES +LU-GR +LU-LU +LU-ME +LU-RD +LU-RM +LU-VD +LU-WI +LV-002 +LV-007 +LV-011 +LV-015 +LV-016 +LV-022 +LV-026 +LV-033 +LV-041 +LV-042 +LV-047 +LV-050 +LV-052 +LV-054 +LV-056 +LV-058 +LV-059 +LV-062 +LV-067 +LV-068 +LV-073 +LV-077 +LV-080 +LV-087 +LV-088 +LV-089 +LV-091 +LV-094 +LV-097 +LV-099 +LV-101 +LV-106 +LV-111 +LV-112 +LV-113 +LV-DGV +LV-JEL +LV-JUR +LV-LPX +LV-REZ +LV-RIX +LV-VEN +LY-BA +LY-BU +LY-DR +LY-GT +LY-JA +LY-JG +LY-JI +LY-JU +LY-KF +LY-MB +LY-MI +LY-MJ +LY-MQ +LY-NL +LY-NQ +LY-SB +LY-SR +LY-TB +LY-WA +LY-WD +LY-WS +LY-ZA +MA-01 +MA-02 +MA-03 +MA-04 +MA-05 +MA-06 +MA-07 +MA-08 +MA-09 +MA-10 +MA-11 +MA-12 +MA-AGD +MA-AOU +MA-ASZ +MA-AZI +MA-BEM +MA-BER +MA-BES +MA-BOD +MA-BOM +MA-BRR +MA-CAS +MA-CHE +MA-CHI +MA-CHT +MA-CHT +MA-DRI +MA-ERR +MA-ESI +MA-ESM +MA-FAH +MA-FES +MA-FIG +MA-FQH +MA-GUE +MA-GUF +MA-HAJ +MA-HAO +MA-HOC +MA-IFR +MA-INE +MA-JDI +MA-JRA +MA-KEN +MA-KES +MA-KES +MA-KHE +MA-KHN +MA-KHO +MA-LAA +MA-LAR +MA-MAR +MA-MDF +MA-MED +MA-MEK +MA-MID +MA-MMD +MA-MMN +MA-MOH +MA-MOU +MA-NAD +MA-NOU +MA-OUA +MA-OUD +MA-OUJ +MA-OUZ +MA-RAB +MA-REH +MA-SAF +MA-SAL +MA-SEF +MA-SET +MA-SIB +MA-SIF +MA-SIK +MA-SIL +MA-SKH +MA-SYB +MA-TAF +MA-TAI +MA-TAO +MA-TAR +MA-TAT +MA-TAZ +MA-TET +MA-TIN +MA-TIZ +MA-TNG +MA-TNT +MA-YUS +MA-ZAG +MC-CL +MC-CO +MC-FO +MC-GA +MC-JE +MC-LA +MC-MA +MC-MC +MC-MG +MC-MO +MC-MU +MC-PH +MC-SD +MC-SO +MC-SP +MC-SR +MC-VR +MD-AN +MD-BA +MD-BD +MD-BR +MD-BS +MD-CA +MD-CL +MD-CM +MD-CR +MD-CS +MD-CT +MD-CU +MD-DO +MD-DR +MD-DU +MD-ED +MD-FA +MD-FL +MD-GA +MD-GL +MD-HI +MD-IA +MD-LE +MD-NI +MD-OC +MD-OR +MD-RE +MD-RI +MD-SD +MD-SI +MD-SN +MD-SO +MD-ST +MD-SV +MD-TA +MD-TE +MD-UN +ME-01 +ME-02 +ME-03 +ME-04 +ME-05 +ME-06 +ME-07 +ME-08 +ME-09 +ME-10 +ME-11 +ME-12 +ME-13 +ME-14 +ME-15 +ME-16 +ME-17 +ME-18 +ME-19 +ME-20 +ME-21 +ME-22 +ME-23 +ME-24 +MG-A +MG-D +MG-F +MG-M +MG-T +MG-U +MH-ALK +MH-ALL +MH-ARN +MH-AUR +MH-EBO +MH-ENI +MH-JAB +MH-JAL +MH-KIL +MH-KWA +MH-L +MH-LAE +MH-LIB +MH-LIK +MH-MAJ +MH-MAL +MH-MEJ +MH-MIL +MH-NMK +MH-NMU +MH-RON +MH-T +MH-UJA +MH-UTI +MH-WTH +MH-WTJ +MK-101 +MK-102 +MK-103 +MK-104 +MK-105 +MK-106 +MK-107 +MK-108 +MK-109 +MK-201 +MK-202 +MK-203 +MK-204 +MK-205 +MK-205 +MK-206 +MK-207 +MK-208 +MK-209 +MK-210 +MK-211 +MK-301 +MK-303 +MK-304 +MK-307 +MK-308 +MK-310 +MK-311 +MK-312 +MK-313 +MK-401 +MK-402 +MK-403 +MK-404 +MK-405 +MK-406 +MK-407 +MK-408 +MK-409 +MK-410 +MK-501 +MK-502 +MK-503 +MK-504 +MK-505 +MK-506 +MK-507 +MK-508 +MK-509 +MK-601 +MK-602 +MK-603 +MK-604 +MK-605 +MK-606 +MK-607 +MK-608 +MK-609 +MK-701 +MK-702 +MK-703 +MK-704 +MK-705 +MK-706 +MK-801 +MK-802 +MK-803 +MK-804 +MK-805 +MK-806 +MK-807 +MK-808 +MK-809 +MK-810 +MK-811 +MK-812 +MK-813 +MK-814 +MK-815 +MK-816 +MK-817 +ML-1 +ML-10 +ML-2 +ML-3 +ML-4 +ML-5 +ML-6 +ML-7 +ML-8 +ML-9 +ML-BKO +MM-01 +MM-02 +MM-03 +MM-04 +MM-05 +MM-06 +MM-07 +MM-11 +MM-12 +MM-13 +MM-14 +MM-15 +MM-16 +MM-17 +MM-18 +MN-035 +MN-037 +MN-039 +MN-041 +MN-043 +MN-046 +MN-047 +MN-049 +MN-051 +MN-053 +MN-055 +MN-057 +MN-059 +MN-061 +MN-063 +MN-064 +MN-065 +MN-067 +MN-069 +MN-071 +MN-073 +MN-1 +MR-01 +MR-02 +MR-03 +MR-04 +MR-05 +MR-06 +MR-07 +MR-08 +MR-09 +MR-10 +MR-11 +MR-12 +MR-13 +MR-14 +MR-15 +MT-01 +MT-02 +MT-03 +MT-04 +MT-05 +MT-06 +MT-07 +MT-08 +MT-09 +MT-10 +MT-11 +MT-12 +MT-13 +MT-14 +MT-15 +MT-16 +MT-17 +MT-18 +MT-19 +MT-20 +MT-21 +MT-22 +MT-23 +MT-24 +MT-25 +MT-26 +MT-27 +MT-28 +MT-29 +MT-30 +MT-31 +MT-32 +MT-33 +MT-34 +MT-35 +MT-36 +MT-37 +MT-38 +MT-39 +MT-40 +MT-41 +MT-42 +MT-43 +MT-44 +MT-45 +MT-46 +MT-47 +MT-48 +MT-49 +MT-50 +MT-51 +MT-52 +MT-53 +MT-54 +MT-55 +MT-56 +MT-57 +MT-58 +MT-59 +MT-60 +MT-61 +MT-62 +MT-63 +MT-64 +MT-65 +MT-66 +MT-67 +MT-68 +MU-AG +MU-BL +MU-CC +MU-FL +MU-GP +MU-MO +MU-PA +MU-PL +MU-PW +MU-RO +MU-RR +MU-SA +MV-00 +MV-01 +MV-02 +MV-03 +MV-04 +MV-05 +MV-07 +MV-08 +MV-12 +MV-13 +MV-14 +MV-17 +MV-20 +MV-23 +MV-24 +MV-25 +MV-26 +MV-27 +MV-28 +MV-29 +MV-MLE +MW-BA +MW-BL +MW-C +MW-CK +MW-CR +MW-CT +MW-DE +MW-DO +MW-KR +MW-KS +MW-LI +MW-LK +MW-MC +MW-MG +MW-MH +MW-MU +MW-MW +MW-MZ +MW-N +MW-NB +MW-NE +MW-NI +MW-NK +MW-NS +MW-NU +MW-PH +MW-RU +MW-S +MW-SA +MW-TH +MW-ZO +MX-AGU +MX-BCN +MX-BCS +MX-CAM +MX-CHH +MX-CHP +MX-CMX +MX-COA +MX-COL +MX-DUR +MX-GRO +MX-GUA +MX-HID +MX-JAL +MX-MEX +MX-MIC +MX-MOR +MX-NAY +MX-NLE +MX-OAX +MX-PUE +MX-QUE +MX-ROO +MX-SIN +MX-SLP +MX-SON +MX-TAB +MX-TAM +MX-TLA +MX-VER +MX-YUC +MX-ZAC +MY-01 +MY-02 +MY-03 +MY-04 +MY-05 +MY-06 +MY-07 +MY-08 +MY-09 +MY-10 +MY-11 +MY-12 +MY-13 +MY-14 +MY-15 +MY-16 +MZ-A +MZ-B +MZ-G +MZ-I +MZ-L +MZ-MPM +MZ-N +MZ-P +MZ-Q +MZ-S +MZ-T +NA-CA +NA-ER +NA-HA +NA-KA +NA-KE +NA-KH +NA-KU +NA-KW +NA-OD +NA-OH +NA-ON +NA-OS +NA-OT +NA-OW +NE-1 +NE-2 +NE-3 +NE-4 +NE-5 +NE-6 +NE-7 +NE-8 +NG-AB +NG-AD +NG-AK +NG-AN +NG-BA +NG-BE +NG-BO +NG-BY +NG-CR +NG-DE +NG-EB +NG-ED +NG-EK +NG-EN +NG-FC +NG-GO +NG-IM +NG-JI +NG-KD +NG-KE +NG-KN +NG-KO +NG-KT +NG-KW +NG-LA +NG-NA +NG-NI +NG-OG +NG-ON +NG-OS +NG-OY +NG-PL +NG-RI +NG-SO +NG-TA +NG-YO +NG-ZA +NI-AN +NI-AS +NI-BO +NI-CA +NI-CI +NI-CO +NI-ES +NI-GR +NI-JI +NI-LE +NI-MD +NI-MN +NI-MS +NI-MT +NI-NS +NI-RI +NI-SJ +NL-DR +NL-FL +NL-FR +NL-GE +NL-GR +NL-LI +NL-NB +NL-NH +NL-OV +NL-UT +NL-ZE +NL-ZH +NO-03 +NO-11 +NO-15 +NO-18 +NO-21 +NO-22 +NO-30 +NO-34 +NO-38 +NO-42 +NO-46 +NO-50 +NO-54 +NP-P1 +NP-P2 +NP-P3 +NP-P4 +NP-P5 +NP-P6 +NP-P7 +NR-01 +NR-02 +NR-03 +NR-04 +NR-05 +NR-06 +NR-07 +NR-08 +NR-09 +NR-10 +NR-11 +NR-12 +NR-13 +NR-14 +NZ-AUK +NZ-BOP +NZ-CAN +NZ-CIT +NZ-GIS +NZ-HKB +NZ-MBH +NZ-MWT +NZ-NSN +NZ-NTL +NZ-OTA +NZ-STL +NZ-TAS +NZ-TKI +NZ-WGN +NZ-WKO +NZ-WTC +OM-BJ +OM-BS +OM-BU +OM-DA +OM-MA +OM-MU +OM-SJ +OM-SS +OM-WU +OM-ZA +OM-ZU +PA-1 +PA-10 +PA-2 +PA-3 +PA-4 +PA-5 +PA-6 +PA-7 +PA-8 +PA-9 +PA-EM +PA-KY +PA-NB +PA-NT +PE-AMA +PE-ANC +PE-APU +PE-ARE +PE-AYA +PE-CAJ +PE-CAL +PE-CUS +PE-HUC +PE-HUV +PE-ICA +PE-JUN +PE-LAL +PE-LAM +PE-LIM +PE-LMA +PE-LOR +PE-MDD +PE-MOQ +PE-PAS +PE-PIU +PE-PUN +PE-SAM +PE-TAC +PE-TUM +PE-UCA +PG-CPK +PG-CPM +PG-EBR +PG-EHG +PG-EPW +PG-ESW +PG-GPK +PG-HLA +PG-JWK +PG-MBA +PG-MPL +PG-MPM +PG-MRL +PG-NCD +PG-NIK +PG-NPP +PG-NSB +PG-SAN +PG-SHM +PG-WBK +PG-WHM +PG-WPD +PH-00 +PH-ABR +PH-AGN +PH-AGS +PH-AKL +PH-ALB +PH-ANT +PH-APA +PH-AUR +PH-BAN +PH-BAS +PH-BEN +PH-BIL +PH-BOH +PH-BTG +PH-BTN +PH-BUK +PH-BUL +PH-CAG +PH-CAM +PH-CAN +PH-CAP +PH-CAS +PH-CAT +PH-CAV +PH-CEB +PH-COM +PH-DAO +PH-DAS +PH-DAV +PH-DIN +PH-DVO +PH-EAS +PH-GUI +PH-IFU +PH-ILI +PH-ILN +PH-ILS +PH-ISA +PH-KAL +PH-LAG +PH-LAN +PH-LAS +PH-LEY +PH-LUN +PH-MAD +PH-MAG +PH-MAS +PH-MDC +PH-MDR +PH-MOU +PH-MSC +PH-MSR +PH-NCO +PH-NEC +PH-NER +PH-NSA +PH-NUE +PH-NUV +PH-PAM +PH-PAN +PH-PLW +PH-QUE +PH-QUI +PH-RIZ +PH-ROM +PH-SAR +PH-SCO +PH-SIG +PH-SLE +PH-SLU +PH-SOR +PH-SUK +PH-SUN +PH-SUR +PH-TAR +PH-TAW +PH-WSA +PH-ZAN +PH-ZAS +PH-ZMB +PH-ZSI +PK-BA +PK-GB +PK-IS +PK-JK +PK-KP +PK-PB +PK-SD +PL-02 +PL-04 +PL-06 +PL-08 +PL-10 +PL-12 +PL-14 +PL-16 +PL-18 +PL-20 +PL-22 +PL-24 +PL-26 +PL-28 +PL-30 +PL-32 +PS-BTH +PS-DEB +PS-GZA +PS-HBN +PS-JEM +PS-JRH +PS-KYS +PS-NBS +PS-NGZ +PS-QQA +PS-RBH +PS-RFH +PS-SLT +PS-TBS +PS-TKM +PT-01 +PT-02 +PT-03 +PT-04 +PT-05 +PT-06 +PT-07 +PT-08 +PT-09 +PT-10 +PT-11 +PT-12 +PT-13 +PT-14 +PT-15 +PT-16 +PT-17 +PT-18 +PT-20 +PT-30 +PW-002 +PW-004 +PW-010 +PW-050 +PW-100 +PW-150 +PW-212 +PW-214 +PW-218 +PW-222 +PW-224 +PW-226 +PW-227 +PW-228 +PW-350 +PW-370 +PY-1 +PY-10 +PY-11 +PY-12 +PY-13 +PY-14 +PY-15 +PY-16 +PY-19 +PY-2 +PY-3 +PY-4 +PY-5 +PY-6 +PY-7 +PY-8 +PY-9 +PY-ASU +QA-DA +QA-KH +QA-MS +QA-RA +QA-SH +QA-US +QA-WA +QA-ZA +RO-AB +RO-AG +RO-AR +RO-B +RO-BC +RO-BH +RO-BN +RO-BR +RO-BT +RO-BV +RO-BZ +RO-CJ +RO-CL +RO-CS +RO-CT +RO-CV +RO-DB +RO-DJ +RO-GJ +RO-GL +RO-GR +RO-HD +RO-HR +RO-IF +RO-IL +RO-IS +RO-MH +RO-MM +RO-MS +RO-NT +RO-OT +RO-PH +RO-SB +RO-SJ +RO-SM +RO-SV +RO-TL +RO-TM +RO-TR +RO-VL +RO-VN +RO-VS +RS-00 +RS-01 +RS-02 +RS-03 +RS-04 +RS-05 +RS-06 +RS-07 +RS-08 +RS-09 +RS-10 +RS-11 +RS-12 +RS-13 +RS-14 +RS-15 +RS-16 +RS-17 +RS-18 +RS-19 +RS-20 +RS-21 +RS-22 +RS-23 +RS-24 +RS-25 +RS-26 +RS-27 +RS-28 +RS-29 +RS-KM +RS-VO +RU-AD +RU-AL +RU-ALT +RU-AMU +RU-ARK +RU-AST +RU-BA +RU-BEL +RU-BRY +RU-BU +RU-CE +RU-CHE +RU-CHU +RU-CU +RU-DA +RU-IN +RU-IRK +RU-IVA +RU-KAM +RU-KB +RU-KC +RU-KDA +RU-KEM +RU-KGD +RU-KGN +RU-KHA +RU-KHM +RU-KIR +RU-KK +RU-KL +RU-KLU +RU-KO +RU-KOS +RU-KR +RU-KRS +RU-KYA +RU-LEN +RU-LIP +RU-MAG +RU-ME +RU-MO +RU-MOS +RU-MOW +RU-MUR +RU-NEN +RU-NGR +RU-NIZ +RU-NVS +RU-OMS +RU-ORE +RU-ORL +RU-PER +RU-PNZ +RU-PRI +RU-PSK +RU-ROS +RU-RYA +RU-SA +RU-SAK +RU-SAM +RU-SAR +RU-SE +RU-SMO +RU-SPE +RU-STA +RU-SVE +RU-TA +RU-TAM +RU-TOM +RU-TUL +RU-TVE +RU-TY +RU-TYU +RU-UD +RU-ULY +RU-VGG +RU-VLA +RU-VLG +RU-VOR +RU-YAN +RU-YAR +RU-YEV +RU-ZAB +RW-01 +RW-02 +RW-03 +RW-04 +RW-05 +SA-01 +SA-02 +SA-03 +SA-04 +SA-05 +SA-06 +SA-07 +SA-08 +SA-09 +SA-10 +SA-11 +SA-12 +SA-14 +SB-CE +SB-CH +SB-CT +SB-GU +SB-IS +SB-MK +SB-ML +SB-RB +SB-TE +SB-WE +SC-01 +SC-02 +SC-03 +SC-04 +SC-05 +SC-06 +SC-07 +SC-08 +SC-09 +SC-10 +SC-11 +SC-12 +SC-13 +SC-14 +SC-15 +SC-16 +SC-17 +SC-18 +SC-19 +SC-20 +SC-21 +SC-22 +SC-23 +SC-24 +SC-25 +SC-26 +SC-27 +SD-DC +SD-DE +SD-DN +SD-DS +SD-DW +SD-GD +SD-GK +SD-GZ +SD-KA +SD-KH +SD-KN +SD-KS +SD-NB +SD-NO +SD-NR +SD-NW +SD-RS +SD-SI +SE-AB +SE-AC +SE-BD +SE-C +SE-D +SE-E +SE-F +SE-G +SE-H +SE-I +SE-K +SE-M +SE-N +SE-O +SE-S +SE-T +SE-U +SE-W +SE-X +SE-Y +SE-Z +SG-01 +SG-02 +SG-03 +SG-04 +SG-05 +SH-AC +SH-HL +SH-TA +SI-001 +SI-002 +SI-003 +SI-004 +SI-005 +SI-006 +SI-007 +SI-008 +SI-009 +SI-010 +SI-011 +SI-012 +SI-013 +SI-014 +SI-015 +SI-016 +SI-017 +SI-018 +SI-019 +SI-020 +SI-021 +SI-022 +SI-023 +SI-024 +SI-025 +SI-026 +SI-027 +SI-028 +SI-029 +SI-030 +SI-031 +SI-032 +SI-033 +SI-034 +SI-035 +SI-036 +SI-037 +SI-038 +SI-039 +SI-040 +SI-041 +SI-042 +SI-043 +SI-044 +SI-045 +SI-046 +SI-047 +SI-048 +SI-049 +SI-050 +SI-051 +SI-052 +SI-053 +SI-054 +SI-055 +SI-056 +SI-057 +SI-058 +SI-059 +SI-060 +SI-061 +SI-062 +SI-063 +SI-064 +SI-065 +SI-066 +SI-067 +SI-068 +SI-069 +SI-070 +SI-071 +SI-072 +SI-073 +SI-074 +SI-075 +SI-076 +SI-077 +SI-078 +SI-079 +SI-080 +SI-081 +SI-082 +SI-083 +SI-084 +SI-085 +SI-086 +SI-087 +SI-088 +SI-089 +SI-090 +SI-091 +SI-092 +SI-093 +SI-094 +SI-095 +SI-096 +SI-097 +SI-098 +SI-099 +SI-100 +SI-101 +SI-102 +SI-103 +SI-104 +SI-105 +SI-106 +SI-107 +SI-108 +SI-109 +SI-110 +SI-111 +SI-112 +SI-113 +SI-114 +SI-115 +SI-116 +SI-117 +SI-118 +SI-119 +SI-120 +SI-121 +SI-122 +SI-123 +SI-124 +SI-125 +SI-126 +SI-127 +SI-128 +SI-129 +SI-130 +SI-131 +SI-132 +SI-133 +SI-134 +SI-135 +SI-136 +SI-137 +SI-138 +SI-139 +SI-140 +SI-141 +SI-142 +SI-143 +SI-144 +SI-146 +SI-147 +SI-148 +SI-149 +SI-150 +SI-151 +SI-152 +SI-153 +SI-154 +SI-155 +SI-156 +SI-157 +SI-158 +SI-159 +SI-160 +SI-161 +SI-162 +SI-163 +SI-164 +SI-165 +SI-166 +SI-167 +SI-168 +SI-169 +SI-170 +SI-171 +SI-172 +SI-173 +SI-174 +SI-175 +SI-176 +SI-177 +SI-178 +SI-179 +SI-180 +SI-181 +SI-182 +SI-183 +SI-184 +SI-185 +SI-186 +SI-187 +SI-188 +SI-189 +SI-190 +SI-191 +SI-192 +SI-193 +SI-194 +SI-195 +SI-196 +SI-197 +SI-198 +SI-199 +SI-200 +SI-201 +SI-202 +SI-203 +SI-204 +SI-205 +SI-206 +SI-207 +SI-208 +SI-209 +SI-210 +SI-211 +SI-212 +SI-213 +SK-BC +SK-BL +SK-KI +SK-NI +SK-PV +SK-TA +SK-TC +SK-ZI +SL-E +SL-N +SL-NW +SL-S +SL-W +SM-01 +SM-02 +SM-03 +SM-04 +SM-05 +SM-06 +SM-07 +SM-08 +SM-09 +SN-DB +SN-DK +SN-FK +SN-KA +SN-KD +SN-KE +SN-KL +SN-LG +SN-MT +SN-SE +SN-SL +SN-TC +SN-TH +SN-ZG +SO-AW +SO-BK +SO-BN +SO-BR +SO-BY +SO-GA +SO-GE +SO-HI +SO-JD +SO-JH +SO-MU +SO-NU +SO-SA +SO-SD +SO-SH +SO-SO +SO-TO +SO-WO +SR-BR +SR-CM +SR-CR +SR-MA +SR-NI +SR-PM +SR-PR +SR-SA +SR-SI +SR-WA +SS-BN +SS-BW +SS-EC +SS-EE +SS-EW +SS-JG +SS-LK +SS-NU +SS-UY +SS-WR +ST-01 +ST-02 +ST-03 +ST-04 +ST-05 +ST-06 +ST-P +SV-AH +SV-CA +SV-CH +SV-CU +SV-LI +SV-MO +SV-PA +SV-SA +SV-SM +SV-SO +SV-SS +SV-SV +SV-UN +SV-US +SY-DI +SY-DR +SY-DY +SY-HA +SY-HI +SY-HL +SY-HM +SY-ID +SY-LA +SY-QU +SY-RA +SY-RD +SY-SU +SY-TA +SZ-HH +SZ-LU +SZ-MA +SZ-SH +TD-BA +TD-BG +TD-BO +TD-CB +TD-EE +TD-EO +TD-GR +TD-HL +TD-KA +TD-LC +TD-LO +TD-LR +TD-MA +TD-MC +TD-ME +TD-MO +TD-ND +TD-OD +TD-SA +TD-SI +TD-TA +TD-TI +TD-WF +TG-C +TG-K +TG-M +TG-P +TG-S +TH-10 +TH-11 +TH-12 +TH-13 +TH-14 +TH-15 +TH-16 +TH-17 +TH-18 +TH-19 +TH-20 +TH-21 +TH-22 +TH-23 +TH-24 +TH-25 +TH-26 +TH-27 +TH-30 +TH-31 +TH-32 +TH-33 +TH-34 +TH-35 +TH-36 +TH-37 +TH-38 +TH-39 +TH-40 +TH-41 +TH-42 +TH-43 +TH-44 +TH-45 +TH-46 +TH-47 +TH-48 +TH-49 +TH-50 +TH-51 +TH-52 +TH-53 +TH-54 +TH-55 +TH-56 +TH-57 +TH-58 +TH-60 +TH-61 +TH-62 +TH-63 +TH-64 +TH-65 +TH-66 +TH-67 +TH-70 +TH-71 +TH-72 +TH-73 +TH-74 +TH-75 +TH-76 +TH-77 +TH-80 +TH-81 +TH-82 +TH-83 +TH-84 +TH-85 +TH-86 +TH-90 +TH-91 +TH-92 +TH-93 +TH-94 +TH-95 +TH-96 +TH-S +TJ-DU +TJ-GB +TJ-KT +TJ-RA +TJ-SU +TL-AL +TL-AN +TL-BA +TL-BO +TL-CO +TL-DI +TL-ER +TL-LA +TL-LI +TL-MF +TL-MT +TL-OE +TL-VI +TM-A +TM-B +TM-D +TM-L +TM-M +TM-S +TN-11 +TN-12 +TN-13 +TN-14 +TN-21 +TN-22 +TN-23 +TN-31 +TN-32 +TN-33 +TN-34 +TN-41 +TN-42 +TN-43 +TN-51 +TN-52 +TN-53 +TN-61 +TN-71 +TN-72 +TN-73 +TN-81 +TN-82 +TN-83 +TO-01 +TO-02 +TO-03 +TO-04 +TO-05 +TR-01 +TR-02 +TR-03 +TR-04 +TR-05 +TR-06 +TR-07 +TR-08 +TR-09 +TR-10 +TR-11 +TR-12 +TR-13 +TR-14 +TR-15 +TR-16 +TR-17 +TR-18 +TR-19 +TR-20 +TR-21 +TR-22 +TR-23 +TR-24 +TR-25 +TR-26 +TR-27 +TR-28 +TR-29 +TR-30 +TR-31 +TR-32 +TR-33 +TR-34 +TR-35 +TR-36 +TR-37 +TR-38 +TR-39 +TR-40 +TR-41 +TR-42 +TR-43 +TR-44 +TR-45 +TR-46 +TR-47 +TR-48 +TR-49 +TR-50 +TR-51 +TR-52 +TR-53 +TR-54 +TR-55 +TR-56 +TR-57 +TR-58 +TR-59 +TR-60 +TR-61 +TR-62 +TR-63 +TR-64 +TR-65 +TR-66 +TR-67 +TR-68 +TR-69 +TR-70 +TR-71 +TR-72 +TR-73 +TR-74 +TR-75 +TR-76 +TR-77 +TR-78 +TR-79 +TR-80 +TR-81 +TT-ARI +TT-CHA +TT-CTT +TT-DMN +TT-MRC +TT-PED +TT-POS +TT-PRT +TT-PTF +TT-SFO +TT-SGE +TT-SIP +TT-SJL +TT-TOB +TT-TUP +TV-FUN +TV-NIT +TV-NIU +TV-NKF +TV-NKL +TV-NMA +TV-NMG +TV-VAI +TW-CHA +TW-CYI +TW-CYQ +TW-HSQ +TW-HSZ +TW-HUA +TW-ILA +TW-KEE +TW-KHH +TW-KIN +TW-LIE +TW-MIA +TW-NAN +TW-NWT +TW-PEN +TW-PIF +TW-TAO +TW-TNN +TW-TPE +TW-TTT +TW-TXG +TW-YUN +TZ-01 +TZ-02 +TZ-03 +TZ-04 +TZ-05 +TZ-06 +TZ-07 +TZ-08 +TZ-09 +TZ-10 +TZ-11 +TZ-12 +TZ-13 +TZ-14 +TZ-15 +TZ-16 +TZ-17 +TZ-18 +TZ-19 +TZ-20 +TZ-21 +TZ-22 +TZ-23 +TZ-24 +TZ-25 +TZ-26 +TZ-27 +TZ-28 +TZ-29 +TZ-30 +TZ-31 +UA-05 +UA-07 +UA-09 +UA-12 +UA-14 +UA-18 +UA-21 +UA-23 +UA-26 +UA-30 +UA-32 +UA-35 +UA-40 +UA-43 +UA-46 +UA-48 +UA-51 +UA-53 +UA-56 +UA-59 +UA-61 +UA-63 +UA-65 +UA-68 +UA-71 +UA-74 +UA-77 +UG-101 +UG-102 +UG-103 +UG-104 +UG-105 +UG-106 +UG-107 +UG-108 +UG-109 +UG-110 +UG-111 +UG-112 +UG-113 +UG-114 +UG-115 +UG-116 +UG-117 +UG-118 +UG-119 +UG-120 +UG-121 +UG-122 +UG-123 +UG-124 +UG-125 +UG-126 +UG-201 +UG-202 +UG-203 +UG-204 +UG-205 +UG-206 +UG-207 +UG-208 +UG-209 +UG-210 +UG-211 +UG-212 +UG-213 +UG-215 +UG-216 +UG-217 +UG-218 +UG-219 +UG-220 +UG-221 +UG-222 +UG-223 +UG-224 +UG-225 +UG-226 +UG-227 +UG-228 +UG-229 +UG-230 +UG-231 +UG-232 +UG-233 +UG-234 +UG-235 +UG-236 +UG-237 +UG-244 +UG-301 +UG-302 +UG-303 +UG-304 +UG-305 +UG-306 +UG-307 +UG-308 +UG-309 +UG-310 +UG-311 +UG-312 +UG-313 +UG-314 +UG-315 +UG-316 +UG-317 +UG-318 +UG-319 +UG-320 +UG-321 +UG-325 +UG-326 +UG-327 +UG-328 +UG-329 +UG-330 +UG-331 +UG-332 +UG-333 +UG-334 +UG-335 +UG-336 +UG-337 +UG-401 +UG-402 +UG-403 +UG-404 +UG-405 +UG-406 +UG-407 +UG-408 +UG-409 +UG-410 +UG-411 +UG-412 +UG-413 +UG-414 +UG-415 +UG-416 +UG-417 +UG-418 +UG-419 +UG-420 +UG-421 +UG-422 +UG-423 +UG-424 +UG-425 +UG-426 +UG-427 +UG-428 +UG-429 +UG-430 +UG-431 +UG-432 +UG-433 +UG-434 +UG-435 +UM-67 +UM-71 +UM-76 +UM-79 +UM-81 +UM-84 +UM-86 +UM-89 +UM-95 +US-AK +US-AL +US-AR +US-AS +US-AZ +US-CA +US-CO +US-CT +US-DC +US-DE +US-FL +US-GA +US-GU +US-HI +US-IA +US-ID +US-IL +US-IN +US-KS +US-KY +US-LA +US-MA +US-MD +US-ME +US-MI +US-MN +US-MO +US-MP +US-MS +US-MT +US-NC +US-ND +US-NE +US-NH +US-NJ +US-NM +US-NV +US-NY +US-OH +US-OK +US-OR +US-PA +US-PR +US-RI +US-SC +US-SD +US-TN +US-TX +US-UM +US-UT +US-VA +US-VI +US-VT +US-WA +US-WI +US-WV +US-WY +UY-AR +UY-CA +UY-CL +UY-CO +UY-DU +UY-FD +UY-FS +UY-LA +UY-MA +UY-MO +UY-PA +UY-RN +UY-RO +UY-RV +UY-SA +UY-SJ +UY-SO +UY-TA +UY-TT +UZ-AN +UZ-BU +UZ-FA +UZ-JI +UZ-KH +UZ-NG +UZ-NW +UZ-QA +UZ-QR +UZ-SA +UZ-SI +UZ-SU +UZ-TK +UZ-TO +UZ-XO +VC-01 +VC-02 +VC-03 +VC-04 +VC-05 +VC-06 +VE-A +VE-B +VE-C +VE-D +VE-E +VE-F +VE-G +VE-H +VE-I +VE-J +VE-K +VE-L +VE-M +VE-N +VE-O +VE-P +VE-R +VE-S +VE-T +VE-U +VE-V +VE-W +VE-X +VE-Y +VE-Z +VN-01 +VN-02 +VN-03 +VN-04 +VN-05 +VN-06 +VN-07 +VN-09 +VN-13 +VN-14 +VN-18 +VN-20 +VN-21 +VN-22 +VN-23 +VN-24 +VN-25 +VN-26 +VN-27 +VN-28 +VN-29 +VN-30 +VN-31 +VN-32 +VN-33 +VN-34 +VN-35 +VN-36 +VN-37 +VN-39 +VN-40 +VN-41 +VN-43 +VN-44 +VN-45 +VN-46 +VN-47 +VN-49 +VN-50 +VN-51 +VN-52 +VN-53 +VN-54 +VN-55 +VN-56 +VN-57 +VN-58 +VN-59 +VN-61 +VN-63 +VN-66 +VN-67 +VN-68 +VN-69 +VN-70 +VN-71 +VN-72 +VN-73 +VN-CT +VN-HN +VN-HP +VN-SG +VU-MAP +VU-PAM +VU-SAM +VU-SEE +VU-TAE +VU-TOB +WS-AA +WS-AL +WS-AT +WS-FA +WS-GE +WS-GI +WS-PA +WS-SA +WS-TU +WS-VF +WS-VS +YE-AB +YE-AD +YE-AM +YE-BA +YE-DA +YE-DH +YE-HD +YE-HJ +YE-HU +YE-IB +YE-JA +YE-LA +YE-MA +YE-MR +YE-MW +YE-RA +YE-SA +YE-SD +YE-SH +YE-SN +YE-SU +YE-TA +ZA-EC +ZA-FS +ZA-GP +ZA-KZN +ZA-LP +ZA-MP +ZA-NC +ZA-NW +ZA-WC +ZM-01 +ZM-02 +ZM-03 +ZM-04 +ZM-05 +ZM-06 +ZM-07 +ZM-08 +ZM-09 +ZM-10 +ZW-BU +ZW-HA +ZW-MA +ZW-MC +ZW-ME +ZW-MI +ZW-MN +ZW-MS +ZW-MV +ZW-MW