Browse Source

base modules of Enc subsystem added

Alexander Shiryaev 12 years ago
parent
commit
fb63403def

BIN
BlackBox/Enc/Mod/Codecs.odc


+ 1 - 0
BlackBox/Enc/Mod/StdAliases.txt

@@ -0,0 +1 @@
+gen-StdAliases/StdAliases.txt

BIN
BlackBox/Enc/Mod/StdCodecs.odc


BIN
BlackBox/Enc/Mod/StdMap_ascii.odc


BIN
BlackBox/Enc/Mod/StdMap_utf_8.odc


+ 176 - 0
BlackBox/Enc/Mod/gen-StdAliases/ALIASES

@@ -0,0 +1,176 @@
+ASCII: 646 ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII
+UTF-8: UTF-8 UTF8
+
+UCS-2: ISO-10646-UCS-2 UCS-2 CSUNICODE
+UCS-2BE: UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11
+UCS-2LE: UCS-2LE UNICODELITTLE
+UCS-4: ISO-10646-UCS-4 UCS-4 CSUCS4
+UCS-4BE: UCS-4BE
+UCS-4LE: UCS-4LE
+UTF-16: UTF-16
+UTF-16BE: UTF-16BE
+UTF-16LE: UTF-16LE
+UTF-32: UTF-32
+UTF-32BE: UTF-32BE
+UTF-32LE: UTF-32LE
+UTF-7: UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
+
+# UCS-2-INTERNAL
+# UCS-2-SWAPPED
+# UCS-4-INTERNAL
+# UCS-4-SWAPPED
+
+C99: C99
+JAVA: JAVA
+
+ISO8858-1: CP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1 ISO_8859-1:1987 L1 LATIN1 CSISOLATIN1
+ISO8859-2: ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-2:1987 L2 LATIN2 CSISOLATIN2
+ISO8859-3: ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-3:1988 L3 LATIN3 CSISOLATIN3
+ISO8859-4: ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-4:1988 L4 LATIN4 CSISOLATIN4
+ISO8859-5: CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5 ISO_8859-5:1988 CSISOLATINCYRILLIC
+ISO8859-6: ARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6 ISO_8859-6 ISO_8859-6:1987 CSISOLATINARABIC
+ISO8859-7: ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7 ISO_8859-7 ISO_8859-7:1987 ISO_8859-7:2003 CSISOLATINGREEK
+ISO8859-8: HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-8:1988 CSISOLATINHEBREW
+ISO8859-9: ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-9:1989 L5 LATIN5 CSISOLATIN5
+ISO8859-10: ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-10:1992 L6 LATIN6 CSISOLATIN6
+ISO8859-11: ISO-8859-11 ISO8859-11 ISO_8859-11
+ISO8859-13: ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7
+ISO8859-14: ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14 ISO_8859-14:1998 L8 LATIN8
+ISO8859-15: ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-15:1998 LATIN-9
+ISO8859-16: ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-16:2001 L10 LATIN10
+
+KOI8-R: KOI8-R CSKOI8R
+KOI8-U: KOI8-U
+# obsoleted:
+# KOI8-RU: KOI8-RU
+
+CP1250: CP1250 MS-EE WINDOWS-1250
+CP1251: CP1251 MS-CYRL WINDOWS-1251
+CP1252: CP1252 MS-ANSI WINDOWS-1252
+CP1253: CP1253 MS-GREEK WINDOWS-1253
+CP1254: CP1254 MS-TURK WINDOWS-1254
+CP1255: CP1255 MS-HEBR WINDOWS-1255
+CP1256: CP1256 MS-ARAB WINDOWS-1256
+CP1257: CP1257 WINBALTRIM WINDOWS-1257
+CP1258: CP1258 WINDOWS-1258
+
+CP850: 850 CP850 IBM850 CSPC850MULTILINGUAL
+CP862: 862 CP862 IBM862 CSPC862LATINHEBREW
+CP866: 866 CP866 IBM866 CSIBM866
+
+CP1131: CP1131
+
+MAC-ROMAN: MAC MACINTOSH MACROMAN CSMACINTOSH
+MAC-CENTRALEUROPE: MACCENTRALEUROPE
+MAC-ICELAND: MACICELAND
+MAC-CROATIAN: MACCROATIAN
+MAC-ROMANIA: MACROMANIA
+MAC-CYRILLIC: MACCYRILLIC
+MAC-UKRAINE: MACUKRAINE
+MAC-GREEK: MACGREEK
+MAC-TURKISH: MACTURKISH
+MAC-HEBREW: MACHEBREW
+MAC-ABARIC: MACARABIC
+MAC-THAI: MACTHAI
+
+HP-ROMAN8: HP-ROMAN8 R8 ROMAN8 CSHPROMAN8
+
+NEXTSTEP: NEXTSTEP
+
+ARMSCII-8: ARMSCII-8
+
+GEORGIAN-ACADEMY: GEORGIAN-ACADEMY
+GEORGIAN-PS: GEORGIAN-PS
+
+KOI8-T: KOI8-T
+
+PTCP154: CP154 CYRILLIC-ASIAN PT154 PTCP154 CSPTCP154
+
+KZ1048: KZ-1048 RK1048 STRK1048-2002 CSKZ1048
+
+MULELAO-1: MULELAO-1
+
+CP1133: CP1133 IBM-CP1133
+
+# commented because this is subset of ISO8859-11
+# TIS-620: ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
+
+CP874: CP874 WINDOWS-874
+
+VISCII: VISCII VISCII1.1-1 CSVISCII
+
+TCVN: TCVN TCVN-5712 TCVN5712-1 TCVN5712-1:1993
+
+ISO-IR-14: ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
+JIS_X0201: JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
+JIS_X0208: ISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
+JIS_X0212: ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
+ISO-IR-57: CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988
+ISO-IR-58: CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280
+ISO-IR-165: CN-GB-ISOIR165 ISO-IR-165
+ISO-IR-149: ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSKSC56011987
+EUCJP: EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
+SJIS: MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
+CP932: CP932
+ISO-2022-JP: ISO-2022-JP CSISO2022JP
+ISO-2022-JP-1: ISO-2022-JP-1
+ISO-2022-JP-2: ISO-2022-JP-2 CSISO2022JP2
+GB2312: CN-GB EUC-CN EUCCN GB2312 CSGB2312
+GBK: GBK
+CP936: CP936 MS936 WINDOWS-936
+CB18030: GB18030
+ISO-2022-CN: ISO-2022-CN CSISO2022CN
+ISO-2022-CN-EXT: ISO-2022-CN-EXT
+HZ: HZ HZ-GB-2312
+EUCTW: EUC-TW EUCTW CSEUCTW
+BIG5: BIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5
+CP950: CP950
+
+BIG5-HKSCS-1999: BIG5-HKSCS:1999
+BIG5-HKSCS-2001: BIG5-HKSCS:2001
+BIG5-HKSCS-2004: BIG5-HKSCS:2004
+BIG5-HKSCS: BIG5-HKSCS BIG5-HKSCS:2008 BIG5HKSCS
+
+EUCCR: EUC-KR EUCKR CSEUCKR
+CP949: CP949 UHC
+CP1361: CP1361 JOHAB
+ISO-2022-KR: ISO-2022-KR CSISO2022KR
+CP856: CP856
+CP922: CP922
+CP943: CP943
+CP1046: CP1046
+CP1124: CP1124
+CP1129: CP1129
+CP1161: CP1161 IBM-1161 IBM1161 CSIBM1161
+CP1162: CP1162 IBM-1162 IBM1162 CSIBM1162
+CP1163: CP1163 IBM-1163 IBM1163 CSIBM1163
+DEC-KANJI: DEC-KANJI
+DEC-HANYU: DEC-HANYU
+CP437: 437 CP437 IBM437 CSPC8CODEPAGE437
+CP737: CP737
+CP775: CP775 IBM775 CSPC775BALTIC
+CP852: 852 CP852 IBM852 CSPCP852
+CP853: CP853
+CP855: 855 CP855 IBM855 CSIBM855
+CP857: 857 CP857 IBM857 CSIBM857
+CP858: CP858
+CP860: 860 CP860 IBM860 CSIBM860
+CP861: 861 CP-IS CP861 IBM861 CSIBM861
+CP863: 863 CP863 IBM863 CSIBM863
+CP864: CP864 IBM864 CSIBM864
+CP865: 865 CP865 IBM865 CSIBM865
+CP869: 869 CP-GR CP869 IBM869 CSIBM869
+CP1125: CP1125
+EUC-JISX0213: EUC-JIS-2004 EUC-JISX0213
+SHIFT_JISX0213: SHIFT_JIS-2004 SHIFT_JISX0213
+ISO-2022-JP-3: ISO-2022-JP-2004 ISO-2022-JP-3
+BIG5-2003: BIG5-2003
+ISO-IR-230: ISO-IR-230 TDS565
+ATARIST: ATARI ATARIST
+RISCOS-LATIN1: RISCOS-LATIN1
+
+# unicode.org/Public/MAPPINGS/VENDORS/MISC/KPS9566.TXT:
+KPS9566: KPS9566
+
+# Python:
+CP720: CP720

+ 3347 - 0
BlackBox/Enc/Mod/gen-StdAliases/StdAliases.txt

@@ -0,0 +1,3347 @@
+MODULE EncStdAliases;
+
+(* Generated automatically *)
+
+CONST
+	modPrefix = "EncStdMap_";
+
+PROCEDURE GetModName* (s: ARRAY OF CHAR; OUT r: ARRAY OF CHAR; OUT ok: BOOLEAN);
+	VAR x: INTEGER;
+BEGIN
+	x := 0;
+	WHILE (x < LEN(s)) & (s[x] # 0X) DO
+		IF (s[x] >= 'a') & (s[x] <= 'z') THEN
+			s[x] := CHR(ORD(s[x]) - ORD('a') + ORD('A'))
+		END;
+		INC(x)
+	END;
+
+	x := -1;
+	CASE s[0] OF
+	| '4':
+		IF s[1] = '3' THEN
+			IF s[2] = '7' THEN
+				IF s[3] = 0X THEN x := 115 END
+			END
+		END
+	| '6':
+		IF s[1] = '4' THEN
+			IF s[2] = '6' THEN
+				IF s[3] = 0X THEN x := 0 END
+			END
+		END
+	| '8':
+		CASE s[1] OF
+		| '5':
+			CASE s[2] OF
+			| '0':
+				IF s[3] = 0X THEN x := 43 END
+			| '2':
+				IF s[3] = 0X THEN x := 118 END
+			| '5':
+				IF s[3] = 0X THEN x := 120 END
+			| '7':
+				IF s[3] = 0X THEN x := 121 END
+			ELSE END
+		| '6':
+			CASE s[2] OF
+			| '1':
+				IF s[3] = 0X THEN x := 124 END
+			| '0':
+				IF s[3] = 0X THEN x := 123 END
+			| '3':
+				IF s[3] = 0X THEN x := 125 END
+			| '2':
+				IF s[3] = 0X THEN x := 44 END
+			| '5':
+				IF s[3] = 0X THEN x := 127 END
+			| '6':
+				IF s[3] = 0X THEN x := 45 END
+			| '9':
+				IF s[3] = 0X THEN x := 128 END
+			ELSE END
+		ELSE END
+	| 'A':
+		CASE s[1] OF
+		| 'S':
+			CASE s[2] OF
+			| 'C':
+				IF s[3] = 'I' THEN
+					IF s[4] = 'I' THEN
+						IF s[5] = 0X THEN x := 0 END
+					END
+				END
+			| 'M':
+				IF s[3] = 'O' THEN
+					IF s[4] = '-' THEN
+						IF s[5] = '7' THEN
+							IF s[6] = '0' THEN
+								IF s[7] = '8' THEN
+									IF s[8] = 0X THEN x := 22 END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'R':
+			CASE s[2] OF
+			| 'A':
+				IF s[3] = 'B' THEN
+					IF s[4] = 'I' THEN
+						IF s[5] = 'C' THEN
+							IF s[6] = 0X THEN x := 22 END
+						END
+					END
+				END
+			| 'M':
+				IF s[3] = 'S' THEN
+					IF s[4] = 'C' THEN
+						IF s[5] = 'I' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = '-' THEN
+									IF s[8] = '8' THEN
+										IF s[9] = 0X THEN x := 61 END
+									END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'T':
+			IF s[2] = 'A' THEN
+				IF s[3] = 'R' THEN
+					IF s[4] = 'I' THEN
+						CASE s[5] OF
+						| 0X: x := 135
+						| 'S':
+							IF s[6] = 'T' THEN
+								IF s[7] = 0X THEN x := 135 END
+							END
+						ELSE END
+					END
+				END
+			END
+		| 'N':
+			IF s[2] = 'S' THEN
+				IF s[3] = 'I' THEN
+					IF s[4] = '_' THEN
+						IF s[5] = 'X' THEN
+							IF s[6] = '3' THEN
+								IF s[7] = '.' THEN
+									IF s[8] = '4' THEN
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													CASE s[12] OF
+													| '8':
+														IF s[13] = '6' THEN
+															IF s[14] = 0X THEN x := 0 END
+														END
+													| '6':
+														IF s[13] = '8' THEN
+															IF s[14] = 0X THEN x := 0 END
+														END
+													ELSE END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'C':
+		CASE s[1] OF
+		| 'P':
+			CASE s[2] OF
+			| '-':
+				CASE s[3] OF
+				| 'I':
+					IF s[4] = 'S' THEN
+						IF s[5] = 0X THEN x := 124 END
+					END
+				| 'G':
+					IF s[4] = 'R' THEN
+						IF s[5] = 0X THEN x := 128 END
+					END
+				ELSE END
+			| '1':
+				CASE s[3] OF
+				| '1':
+					CASE s[4] OF
+					| '3':
+						CASE s[5] OF
+						| '1':
+							IF s[6] = 0X THEN x := 46 END
+						| '3':
+							IF s[6] = 0X THEN x := 68 END
+						ELSE END
+					| '2':
+						CASE s[5] OF
+						| '9':
+							IF s[6] = 0X THEN x := 109 END
+						| '5':
+							IF s[6] = 0X THEN x := 129 END
+						| '4':
+							IF s[6] = 0X THEN x := 108 END
+						ELSE END
+					| '6':
+						CASE s[5] OF
+						| '1':
+							IF s[6] = 0X THEN x := 110 END
+						| '3':
+							IF s[6] = 0X THEN x := 112 END
+						| '2':
+							IF s[6] = 0X THEN x := 111 END
+						ELSE END
+					ELSE END
+				| '0':
+					IF s[4] = '4' THEN
+						IF s[5] = '6' THEN
+							IF s[6] = 0X THEN x := 107 END
+						END
+					END
+				| '3':
+					IF s[4] = '6' THEN
+						IF s[5] = '1' THEN
+							IF s[6] = 0X THEN x := 102 END
+						END
+					END
+				| '2':
+					IF s[4] = '5' THEN
+						CASE s[5] OF
+						| '1':
+							IF s[6] = 0X THEN x := 35 END
+						| '0':
+							IF s[6] = 0X THEN x := 34 END
+						| '3':
+							IF s[6] = 0X THEN x := 37 END
+						| '2':
+							IF s[6] = 0X THEN x := 36 END
+						| '5':
+							IF s[6] = 0X THEN x := 39 END
+						| '4':
+							IF s[6] = 0X THEN x := 38 END
+						| '7':
+							IF s[6] = 0X THEN x := 41 END
+						| '6':
+							IF s[6] = 0X THEN x := 40 END
+						| '8':
+							IF s[6] = 0X THEN x := 42 END
+						ELSE END
+					END
+				| '5':
+					IF s[4] = '4' THEN
+						IF s[5] = 0X THEN x := 65 END
+					END
+				ELSE END
+			| '3':
+				IF s[3] = '6' THEN
+					IF s[4] = '7' THEN
+						IF s[5] = 0X THEN x := 0 END
+					END
+				END
+			| '4':
+				IF s[3] = '3' THEN
+					IF s[4] = '7' THEN
+						IF s[5] = 0X THEN x := 115 END
+					END
+				END
+			| '7':
+				CASE s[3] OF
+				| '3':
+					IF s[4] = '7' THEN
+						IF s[5] = 0X THEN x := 116 END
+					END
+				| '2':
+					IF s[4] = '0' THEN
+						IF s[5] = 0X THEN x := 138 END
+					END
+				| '7':
+					IF s[4] = '5' THEN
+						IF s[5] = 0X THEN x := 117 END
+					END
+				ELSE END
+			| '9':
+				CASE s[3] OF
+				| '3':
+					CASE s[4] OF
+					| '2':
+						IF s[5] = 0X THEN x := 82 END
+					| '6':
+						IF s[5] = 0X THEN x := 88 END
+					ELSE END
+				| '2':
+					IF s[4] = '2' THEN
+						IF s[5] = 0X THEN x := 105 END
+					END
+				| '5':
+					IF s[4] = '0' THEN
+						IF s[5] = 0X THEN x := 95 END
+					END
+				| '4':
+					CASE s[4] OF
+					| '9':
+						IF s[5] = 0X THEN x := 101 END
+					| '3':
+						IF s[5] = 0X THEN x := 106 END
+					ELSE END
+				ELSE END
+			| '8':
+				CASE s[3] OF
+				| '1':
+					IF s[4] = '9' THEN
+						IF s[5] = 0X THEN x := 17 END
+					END
+				| '5':
+					CASE s[4] OF
+					| '0':
+						IF s[5] = 0X THEN x := 43 END
+					| '3':
+						IF s[5] = 0X THEN x := 119 END
+					| '2':
+						IF s[5] = 0X THEN x := 118 END
+					| '5':
+						IF s[5] = 0X THEN x := 120 END
+					| '7':
+						IF s[5] = 0X THEN x := 121 END
+					| '6':
+						IF s[5] = 0X THEN x := 104 END
+					| '8':
+						IF s[5] = 0X THEN x := 122 END
+					ELSE END
+				| '7':
+					IF s[4] = '4' THEN
+						IF s[5] = 0X THEN x := 69 END
+					END
+				| '6':
+					CASE s[4] OF
+					| '1':
+						IF s[5] = 0X THEN x := 124 END
+					| '0':
+						IF s[5] = 0X THEN x := 123 END
+					| '3':
+						IF s[5] = 0X THEN x := 125 END
+					| '2':
+						IF s[5] = 0X THEN x := 44 END
+					| '5':
+						IF s[5] = 0X THEN x := 127 END
+					| '4':
+						IF s[5] = 0X THEN x := 126 END
+					| '6':
+						IF s[5] = 0X THEN x := 45 END
+					| '9':
+						IF s[5] = 0X THEN x := 128 END
+					ELSE END
+				ELSE END
+			ELSE END
+		| 'H':
+			IF s[2] = 'I' THEN
+				IF s[3] = 'N' THEN
+					IF s[4] = 'E' THEN
+						IF s[5] = 'S' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 77 END
+							END
+						END
+					END
+				END
+			END
+		| 'N':
+			CASE s[2] OF
+			| 0X: x := 76
+			| '-':
+				CASE s[3] OF
+				| 'B':
+					IF s[4] = 'I' THEN
+						IF s[5] = 'G' THEN
+							IF s[6] = '5' THEN
+								IF s[7] = 0X THEN x := 94 END
+							END
+						END
+					END
+				| 'G':
+					IF s[4] = 'B' THEN
+						CASE s[5] OF
+						| 0X: x := 86
+						| '-':
+							IF s[6] = 'I' THEN
+								IF s[7] = 'S' THEN
+									IF s[8] = 'O' THEN
+										IF s[9] = 'I' THEN
+											IF s[10] = 'R' THEN
+												IF s[11] = '1' THEN
+													IF s[12] = '6' THEN
+														IF s[13] = '5' THEN
+															IF s[14] = 0X THEN x := 78 END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						ELSE END
+					END
+				ELSE END
+			ELSE END
+		| '9':
+			IF s[2] = '9' THEN
+				IF s[3] = 0X THEN x := 15 END
+			END
+		| 'S':
+			CASE s[2] OF
+			| 'A':
+				IF s[3] = 'S' THEN
+					IF s[4] = 'C' THEN
+						IF s[5] = 'I' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 0X THEN x := 0 END
+							END
+						END
+					END
+				END
+			| 'B':
+				IF s[3] = 'I' THEN
+					IF s[4] = 'G' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = 0X THEN x := 94 END
+						END
+					END
+				END
+			| 'E':
+				IF s[3] = 'U' THEN
+					IF s[4] = 'C' THEN
+						CASE s[5] OF
+						| 'P':
+							IF s[6] = 'K' THEN
+								IF s[7] = 'D' THEN
+									IF s[8] = 'F' THEN
+										IF s[9] = 'M' THEN
+											IF s[10] = 'T' THEN
+												IF s[11] = 'J' THEN
+													IF s[12] = 'A' THEN
+														IF s[13] = 'P' THEN
+															IF s[14] = 'A' THEN
+																IF s[15] = 'N' THEN
+																	IF s[16] = 'E' THEN
+																		IF s[17] = 'S' THEN
+																			IF s[18] = 'E' THEN
+																				IF s[19] = 0X THEN x := 80 END
+																			END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						| 'K':
+							IF s[6] = 'R' THEN
+								IF s[7] = 0X THEN x := 100 END
+							END
+						| 'T':
+							IF s[6] = 'W' THEN
+								IF s[7] = 0X THEN x := 93 END
+							END
+						ELSE END
+					END
+				END
+			| 'G':
+				IF s[3] = 'B' THEN
+					IF s[4] = '2' THEN
+						IF s[5] = '3' THEN
+							IF s[6] = '1' THEN
+								IF s[7] = '2' THEN
+									IF s[8] = 0X THEN x := 86 END
+								END
+							END
+						END
+					END
+				END
+			| 'I':
+				CASE s[3] OF
+				| 'S':
+					IF s[4] = 'O' THEN
+						CASE s[5] OF
+						| '1':
+							CASE s[6] OF
+							| '5':
+								IF s[7] = '9' THEN
+									IF s[8] = 'J' THEN
+										IF s[9] = 'I' THEN
+											IF s[10] = 'S' THEN
+												IF s[11] = 'X' THEN
+													IF s[12] = '0' THEN
+														IF s[13] = '2' THEN
+															IF s[14] = '1' THEN
+																IF s[15] = '2' THEN
+																	IF s[16] = '1' THEN
+																		IF s[17] = '9' THEN
+																			IF s[18] = '9' THEN
+																				IF s[19] = '0' THEN
+																					IF s[20] = 0X THEN x := 75 END
+																				END
+																			END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							| '4':
+								IF s[7] = 'J' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'S' THEN
+											IF s[10] = 'C' THEN
+												IF s[11] = '6' THEN
+													IF s[12] = '2' THEN
+														IF s[13] = '2' THEN
+															IF s[14] = '0' THEN
+																IF s[15] = 'R' THEN
+																	IF s[16] = 'O' THEN
+																		IF s[17] = 0X THEN x := 72 END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							ELSE END
+						| '8':
+							IF s[6] = '7' THEN
+								IF s[7] = 'J' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'S' THEN
+											IF s[10] = 'X' THEN
+												IF s[11] = '0' THEN
+													IF s[12] = '2' THEN
+														IF s[13] = '0' THEN
+															IF s[14] = '8' THEN
+																IF s[15] = 0X THEN x := 74 END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						| '2':
+							IF s[6] = '0' THEN
+								IF s[7] = '2' THEN
+									IF s[8] = '2' THEN
+										CASE s[9] OF
+										| 'K':
+											IF s[10] = 'R' THEN
+												IF s[11] = 0X THEN x := 103 END
+											END
+										| 'J':
+											IF s[10] = 'P' THEN
+												CASE s[11] OF
+												| 0X: x := 83
+												| '2':
+													IF s[12] = 0X THEN x := 85 END
+												ELSE END
+											END
+										| 'C':
+											IF s[10] = 'N' THEN
+												IF s[11] = 0X THEN x := 90 END
+											END
+										ELSE END
+									END
+								END
+							END
+						| '5':
+							CASE s[6] OF
+							| '8':
+								IF s[7] = 'G' THEN
+									IF s[8] = 'B' THEN
+										IF s[9] = '2' THEN
+											IF s[10] = '3' THEN
+												IF s[11] = '1' THEN
+													IF s[12] = '2' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '0' THEN
+																IF s[15] = 0X THEN x := 77 END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							| '7':
+								IF s[7] = 'G' THEN
+									IF s[8] = 'B' THEN
+										IF s[9] = '1' THEN
+											IF s[10] = '9' THEN
+												IF s[11] = '8' THEN
+													IF s[12] = '8' THEN
+														IF s[13] = 0X THEN x := 76 END
+													END
+												END
+											END
+										END
+									END
+								END
+							ELSE END
+						| 'L':
+							IF s[6] = 'A' THEN
+								IF s[7] = 'T' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'N' THEN
+											CASE s[10] OF
+											| 'A':
+												IF s[11] = 'R' THEN
+													IF s[12] = 'A' THEN
+														IF s[13] = 'B' THEN
+															IF s[14] = 'I' THEN
+																IF s[15] = 'C' THEN
+																	IF s[16] = 0X THEN x := 22 END
+																END
+															END
+														END
+													END
+												END
+											| 'C':
+												IF s[11] = 'Y' THEN
+													IF s[12] = 'R' THEN
+														IF s[13] = 'I' THEN
+															IF s[14] = 'L' THEN
+																IF s[15] = 'L' THEN
+																	IF s[16] = 'I' THEN
+																		IF s[17] = 'C' THEN
+																			IF s[18] = 0X THEN x := 21 END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											| 'G':
+												IF s[11] = 'R' THEN
+													IF s[12] = 'E' THEN
+														IF s[13] = 'E' THEN
+															IF s[14] = 'K' THEN
+																IF s[15] = 0X THEN x := 23 END
+															END
+														END
+													END
+												END
+											| 'H':
+												IF s[11] = 'E' THEN
+													IF s[12] = 'B' THEN
+														IF s[13] = 'R' THEN
+															IF s[14] = 'E' THEN
+																IF s[15] = 'W' THEN
+																	IF s[16] = 0X THEN x := 24 END
+																END
+															END
+														END
+													END
+												END
+											| '1':
+												IF s[11] = 0X THEN x := 17 END
+											| '3':
+												IF s[11] = 0X THEN x := 19 END
+											| '2':
+												IF s[11] = 0X THEN x := 18 END
+											| '5':
+												IF s[11] = 0X THEN x := 25 END
+											| '4':
+												IF s[11] = 0X THEN x := 20 END
+											| '6':
+												IF s[11] = 0X THEN x := 26 END
+											ELSE END
+										END
+									END
+								END
+							END
+						ELSE END
+					END
+				| 'B':
+					IF s[4] = 'M' THEN
+						CASE s[5] OF
+						| '1':
+							IF s[6] = '1' THEN
+								IF s[7] = '6' THEN
+									CASE s[8] OF
+									| '1':
+										IF s[9] = 0X THEN x := 110 END
+									| '3':
+										IF s[9] = 0X THEN x := 112 END
+									| '2':
+										IF s[9] = 0X THEN x := 111 END
+									ELSE END
+								END
+							END
+						| '8':
+							CASE s[6] OF
+							| '5':
+								CASE s[7] OF
+								| '5':
+									IF s[8] = 0X THEN x := 120 END
+								| '7':
+									IF s[8] = 0X THEN x := 121 END
+								ELSE END
+							| '6':
+								CASE s[7] OF
+								| '1':
+									IF s[8] = 0X THEN x := 124 END
+								| '0':
+									IF s[8] = 0X THEN x := 123 END
+								| '3':
+									IF s[8] = 0X THEN x := 125 END
+								| '5':
+									IF s[8] = 0X THEN x := 127 END
+								| '4':
+									IF s[8] = 0X THEN x := 126 END
+								| '6':
+									IF s[8] = 0X THEN x := 45 END
+								| '9':
+									IF s[8] = 0X THEN x := 128 END
+								ELSE END
+							ELSE END
+						ELSE END
+					END
+				ELSE END
+			| 'H':
+				CASE s[3] OF
+				| 'A':
+					IF s[4] = 'L' THEN
+						IF s[5] = 'F' THEN
+							IF s[6] = 'W' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'D' THEN
+										IF s[9] = 'T' THEN
+											IF s[10] = 'H' THEN
+												IF s[11] = 'K' THEN
+													IF s[12] = 'A' THEN
+														IF s[13] = 'T' THEN
+															IF s[14] = 'A' THEN
+																IF s[15] = 'K' THEN
+																	IF s[16] = 'A' THEN
+																		IF s[17] = 'N' THEN
+																			IF s[18] = 'A' THEN
+																				IF s[19] = 0X THEN x := 73 END
+																			END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				| 'P':
+					IF s[4] = 'R' THEN
+						IF s[5] = 'O' THEN
+							IF s[6] = 'M' THEN
+								IF s[7] = 'A' THEN
+									IF s[8] = 'N' THEN
+										IF s[9] = '8' THEN
+											IF s[10] = 0X THEN x := 59 END
+										END
+									END
+								END
+							END
+						END
+					END
+				ELSE END
+			| 'K':
+				CASE s[3] OF
+				| 'S':
+					IF s[4] = 'C' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = '6' THEN
+								IF s[7] = '0' THEN
+									IF s[8] = '1' THEN
+										IF s[9] = '1' THEN
+											IF s[10] = '9' THEN
+												IF s[11] = '8' THEN
+													IF s[12] = '7' THEN
+														IF s[13] = 0X THEN x := 79 END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				| 'Z':
+					IF s[4] = '1' THEN
+						IF s[5] = '0' THEN
+							IF s[6] = '4' THEN
+								IF s[7] = '8' THEN
+									IF s[8] = 0X THEN x := 66 END
+								END
+							END
+						END
+					END
+				| 'O':
+					IF s[4] = 'I' THEN
+						IF s[5] = '8' THEN
+							IF s[6] = 'R' THEN
+								IF s[7] = 0X THEN x := 32 END
+							END
+						END
+					END
+				ELSE END
+			| 'M':
+				IF s[3] = 'A' THEN
+					IF s[4] = 'C' THEN
+						IF s[5] = 'I' THEN
+							IF s[6] = 'N' THEN
+								IF s[7] = 'T' THEN
+									IF s[8] = 'O' THEN
+										IF s[9] = 'S' THEN
+											IF s[10] = 'H' THEN
+												IF s[11] = 0X THEN x := 47 END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			| 'P':
+				CASE s[3] OF
+				| 'C':
+					CASE s[4] OF
+					| 'P':
+						IF s[5] = '8' THEN
+							IF s[6] = '5' THEN
+								IF s[7] = '2' THEN
+									IF s[8] = 0X THEN x := 118 END
+								END
+							END
+						END
+					| '7':
+						IF s[5] = '7' THEN
+							IF s[6] = '5' THEN
+								IF s[7] = 'B' THEN
+									IF s[8] = 'A' THEN
+										IF s[9] = 'L' THEN
+											IF s[10] = 'T' THEN
+												IF s[11] = 'I' THEN
+													IF s[12] = 'C' THEN
+														IF s[13] = 0X THEN x := 117 END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					| '8':
+						CASE s[5] OF
+						| 'C':
+							IF s[6] = 'O' THEN
+								IF s[7] = 'D' THEN
+									IF s[8] = 'E' THEN
+										IF s[9] = 'P' THEN
+											IF s[10] = 'A' THEN
+												IF s[11] = 'G' THEN
+													IF s[12] = 'E' THEN
+														IF s[13] = '4' THEN
+															IF s[14] = '3' THEN
+																IF s[15] = '7' THEN
+																	IF s[16] = 0X THEN x := 115 END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						| '5':
+							IF s[6] = '0' THEN
+								IF s[7] = 'M' THEN
+									IF s[8] = 'U' THEN
+										IF s[9] = 'L' THEN
+											IF s[10] = 'T' THEN
+												IF s[11] = 'I' THEN
+													IF s[12] = 'L' THEN
+														IF s[13] = 'I' THEN
+															IF s[14] = 'N' THEN
+																IF s[15] = 'G' THEN
+																	IF s[16] = 'U' THEN
+																		IF s[17] = 'A' THEN
+																			IF s[18] = 'L' THEN
+																				IF s[19] = 0X THEN x := 43 END
+																			END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						| '6':
+							IF s[6] = '2' THEN
+								IF s[7] = 'L' THEN
+									IF s[8] = 'A' THEN
+										IF s[9] = 'T' THEN
+											IF s[10] = 'I' THEN
+												IF s[11] = 'N' THEN
+													IF s[12] = 'H' THEN
+														IF s[13] = 'E' THEN
+															IF s[14] = 'B' THEN
+																IF s[15] = 'R' THEN
+																	IF s[16] = 'E' THEN
+																		IF s[17] = 'W' THEN
+																			IF s[18] = 0X THEN x := 44 END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						ELSE END
+					ELSE END
+				| 'T':
+					IF s[4] = 'C' THEN
+						IF s[5] = 'P' THEN
+							IF s[6] = '1' THEN
+								IF s[7] = '5' THEN
+									IF s[8] = '4' THEN
+										IF s[9] = 0X THEN x := 65 END
+									END
+								END
+							END
+						END
+					END
+				ELSE END
+			| 'S':
+				IF s[3] = 'H' THEN
+					IF s[4] = 'I' THEN
+						IF s[5] = 'F' THEN
+							IF s[6] = 'T' THEN
+								IF s[7] = 'J' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'S' THEN
+											IF s[10] = 0X THEN x := 81 END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			| 'U':
+				CASE s[3] OF
+				| 'C':
+					IF s[4] = 'S' THEN
+						IF s[5] = '4' THEN
+							IF s[6] = 0X THEN x := 5 END
+						END
+					END
+				| 'N':
+					IF s[4] = 'I' THEN
+						IF s[5] = 'C' THEN
+							IF s[6] = 'O' THEN
+								IF s[7] = 'D' THEN
+									IF s[8] = 'E' THEN
+										CASE s[9] OF
+										| '1':
+											IF s[10] = '1' THEN
+												CASE s[11] OF
+												| 0X: x := 3
+												| 'U':
+													IF s[12] = 'T' THEN
+														IF s[13] = 'F' THEN
+															IF s[14] = '7' THEN
+																IF s[15] = 0X THEN x := 14 END
+															END
+														END
+													END
+												ELSE END
+											END
+										| 0X: x := 2
+										ELSE END
+									END
+								END
+							END
+						END
+					END
+				ELSE END
+			| 'V':
+				IF s[3] = 'I' THEN
+					IF s[4] = 'S' THEN
+						IF s[5] = 'C' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 0X THEN x := 70 END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'Y':
+			IF s[2] = 'R' THEN
+				IF s[3] = 'I' THEN
+					IF s[4] = 'L' THEN
+						IF s[5] = 'L' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 'C' THEN
+									CASE s[8] OF
+									| 0X: x := 21
+									| '-':
+										IF s[9] = 'A' THEN
+											IF s[10] = 'S' THEN
+												IF s[11] = 'I' THEN
+													IF s[12] = 'A' THEN
+														IF s[13] = 'N' THEN
+															IF s[14] = 0X THEN x := 65 END
+														END
+													END
+												END
+											END
+										END
+									ELSE END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'B':
+		IF s[1] = 'I' THEN
+			IF s[2] = 'G' THEN
+				CASE s[3] OF
+				| '-':
+					CASE s[4] OF
+					| '5':
+						IF s[5] = 0X THEN x := 94 END
+					| 'F':
+						IF s[5] = 'I' THEN
+							IF s[6] = 'V' THEN
+								IF s[7] = 'E' THEN
+									IF s[8] = 0X THEN x := 94 END
+								END
+							END
+						END
+					ELSE END
+				| '5':
+					CASE s[4] OF
+					| 0X: x := 94
+					| 'H':
+						IF s[5] = 'K' THEN
+							IF s[6] = 'S' THEN
+								IF s[7] = 'C' THEN
+									IF s[8] = 'S' THEN
+										IF s[9] = 0X THEN x := 99 END
+									END
+								END
+							END
+						END
+					| '-':
+						CASE s[5] OF
+						| 'H':
+							IF s[6] = 'K' THEN
+								IF s[7] = 'S' THEN
+									IF s[8] = 'C' THEN
+										IF s[9] = 'S' THEN
+											CASE s[10] OF
+											| 0X: x := 99
+											| ':':
+												CASE s[11] OF
+												| '1':
+													IF s[12] = '9' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = 0X THEN x := 96 END
+															END
+														END
+													END
+												| '2':
+													IF s[12] = '0' THEN
+														IF s[13] = '0' THEN
+															CASE s[14] OF
+															| '1':
+																IF s[15] = 0X THEN x := 97 END
+															| '8':
+																IF s[15] = 0X THEN x := 99 END
+															| '4':
+																IF s[15] = 0X THEN x := 98 END
+															ELSE END
+														END
+													END
+												ELSE END
+											ELSE END
+										END
+									END
+								END
+							END
+						| '2':
+							IF s[6] = '0' THEN
+								IF s[7] = '0' THEN
+									IF s[8] = '3' THEN
+										IF s[9] = 0X THEN x := 133 END
+									END
+								END
+							END
+						ELSE END
+					ELSE END
+				| 'F':
+					IF s[4] = 'I' THEN
+						IF s[5] = 'V' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 94 END
+							END
+						END
+					END
+				ELSE END
+			END
+		END
+	| 'E':
+		CASE s[1] OF
+		| 'X':
+			IF s[2] = 'T' THEN
+				IF s[3] = 'E' THEN
+					IF s[4] = 'N' THEN
+						IF s[5] = 'D' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 'D' THEN
+									IF s[8] = '_' THEN
+										IF s[9] = 'U' THEN
+											IF s[10] = 'N' THEN
+												IF s[11] = 'I' THEN
+													IF s[12] = 'X' THEN
+														IF s[13] = '_' THEN
+															IF s[14] = 'C' THEN
+																IF s[15] = 'O' THEN
+																	IF s[16] = 'D' THEN
+																		IF s[17] = 'E' THEN
+																			IF s[18] = '_' THEN
+																				IF s[19] = 'P' THEN
+																					IF s[20] = 'A' THEN
+																						IF s[21] = 'C' THEN
+																							IF s[22] = 'K' THEN
+																								IF s[23] = 'E' THEN
+																									IF s[24] = 'D' THEN
+																										IF s[25] = '_' THEN
+																											IF s[26] = 'F' THEN
+																												IF s[27] = 'O' THEN
+																													IF s[28] = 'R' THEN
+																														IF s[29] = 'M' THEN
+																															IF s[30] = 'A' THEN
+																																IF s[31] = 'T' THEN
+																																	IF s[32] = '_' THEN
+																																		IF s[33] = 'F' THEN
+																																			IF s[34] = 'O' THEN
+																																				IF s[35] = 'R' THEN
+																																					IF s[36] = '_' THEN
+																																						IF s[37] = 'J' THEN
+																																							IF s[38] = 'A' THEN
+																																								IF s[39] = 'P' THEN
+																																									IF s[40] = 'A' THEN
+																																										IF s[41] = 'N' THEN
+																																											IF s[42] = 'E' THEN
+																																												IF s[43] = 'S' THEN
+																																													IF s[44] = 'E' THEN
+																																														IF s[45] = 0X THEN x := 80 END
+																																													END
+																																												END
+																																											END
+																																										END
+																																									END
+																																								END
+																																							END
+																																						END
+																																					END
+																																				END
+																																			END
+																																		END
+																																	END
+																																END
+																															END
+																														END
+																													END
+																												END
+																											END
+																										END
+																									END
+																								END
+																							END
+																						END
+																					END
+																				END
+																			END
+																		END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		| 'C':
+			IF s[2] = 'M' THEN
+				IF s[3] = 'A' THEN
+					IF s[4] = '-' THEN
+						IF s[5] = '1' THEN
+							IF s[6] = '1' THEN
+								CASE s[7] OF
+								| '8':
+									IF s[8] = 0X THEN x := 23 END
+								| '4':
+									IF s[8] = 0X THEN x := 22 END
+								ELSE END
+							END
+						END
+					END
+				END
+			END
+		| 'U':
+			IF s[2] = 'C' THEN
+				CASE s[3] OF
+				| 'C':
+					IF s[4] = 'N' THEN
+						IF s[5] = 0X THEN x := 86 END
+					END
+				| 'K':
+					IF s[4] = 'R' THEN
+						IF s[5] = 0X THEN x := 100 END
+					END
+				| 'J':
+					IF s[4] = 'P' THEN
+						IF s[5] = 0X THEN x := 80 END
+					END
+				| '-':
+					CASE s[4] OF
+					| 'C':
+						IF s[5] = 'N' THEN
+							IF s[6] = 0X THEN x := 86 END
+						END
+					| 'K':
+						IF s[5] = 'R' THEN
+							IF s[6] = 0X THEN x := 100 END
+						END
+					| 'J':
+						CASE s[5] OF
+						| 'I':
+							IF s[6] = 'S' THEN
+								CASE s[7] OF
+								| 'X':
+									IF s[8] = '0' THEN
+										IF s[9] = '2' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = '3' THEN
+													IF s[12] = 0X THEN x := 130 END
+												END
+											END
+										END
+									END
+								| '-':
+									IF s[8] = '2' THEN
+										IF s[9] = '0' THEN
+											IF s[10] = '0' THEN
+												IF s[11] = '4' THEN
+													IF s[12] = 0X THEN x := 130 END
+												END
+											END
+										END
+									END
+								ELSE END
+							END
+						| 'P':
+							IF s[6] = 0X THEN x := 80 END
+						ELSE END
+					| 'T':
+						IF s[5] = 'W' THEN
+							IF s[6] = 0X THEN x := 93 END
+						END
+					ELSE END
+				| 'T':
+					IF s[4] = 'W' THEN
+						IF s[5] = 0X THEN x := 93 END
+					END
+				ELSE END
+			END
+		| 'L':
+			IF s[2] = 'O' THEN
+				IF s[3] = 'T' THEN
+					IF s[4] = '_' THEN
+						IF s[5] = '9' THEN
+							IF s[6] = '2' THEN
+								IF s[7] = '8' THEN
+									IF s[8] = 0X THEN x := 23 END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'D':
+		IF s[1] = 'E' THEN
+			IF s[2] = 'C' THEN
+				IF s[3] = '-' THEN
+					CASE s[4] OF
+					| 'H':
+						IF s[5] = 'A' THEN
+							IF s[6] = 'N' THEN
+								IF s[7] = 'Y' THEN
+									IF s[8] = 'U' THEN
+										IF s[9] = 0X THEN x := 114 END
+									END
+								END
+							END
+						END
+					| 'K':
+						IF s[5] = 'A' THEN
+							IF s[6] = 'N' THEN
+								IF s[7] = 'J' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 0X THEN x := 113 END
+									END
+								END
+							END
+						END
+					ELSE END
+				END
+			END
+		END
+	| 'G':
+		CASE s[1] OF
+		| 'B':
+			CASE s[2] OF
+			| '1':
+				IF s[3] = '8' THEN
+					IF s[4] = '0' THEN
+						IF s[5] = '3' THEN
+							IF s[6] = '0' THEN
+								IF s[7] = 0X THEN x := 89 END
+							END
+						END
+					END
+				END
+			| 'K':
+				IF s[3] = 0X THEN x := 87 END
+			| '2':
+				IF s[3] = '3' THEN
+					IF s[4] = '1' THEN
+						IF s[5] = '2' THEN
+							IF s[6] = 0X THEN x := 86 END
+						END
+					END
+				END
+			| '_':
+				CASE s[3] OF
+				| '1':
+					IF s[4] = '9' THEN
+						IF s[5] = '8' THEN
+							IF s[6] = '8' THEN
+								IF s[7] = '-' THEN
+									IF s[8] = '8' THEN
+										IF s[9] = '0' THEN
+											IF s[10] = 0X THEN x := 76 END
+										END
+									END
+								END
+							END
+						END
+					END
+				| '2':
+					IF s[4] = '3' THEN
+						IF s[5] = '1' THEN
+							IF s[6] = '2' THEN
+								IF s[7] = '-' THEN
+									IF s[8] = '8' THEN
+										IF s[9] = '0' THEN
+											IF s[10] = 0X THEN x := 77 END
+										END
+									END
+								END
+							END
+						END
+					END
+				ELSE END
+			ELSE END
+		| 'R':
+			IF s[2] = 'E' THEN
+				IF s[3] = 'E' THEN
+					IF s[4] = 'K' THEN
+						CASE s[5] OF
+						| 0X: x := 23
+						| '8':
+							IF s[6] = 0X THEN x := 23 END
+						ELSE END
+					END
+				END
+			END
+		| 'E':
+			IF s[2] = 'O' THEN
+				IF s[3] = 'R' THEN
+					IF s[4] = 'G' THEN
+						IF s[5] = 'I' THEN
+							IF s[6] = 'A' THEN
+								IF s[7] = 'N' THEN
+									IF s[8] = '-' THEN
+										CASE s[9] OF
+										| 'A':
+											IF s[10] = 'C' THEN
+												IF s[11] = 'A' THEN
+													IF s[12] = 'D' THEN
+														IF s[13] = 'E' THEN
+															IF s[14] = 'M' THEN
+																IF s[15] = 'Y' THEN
+																	IF s[16] = 0X THEN x := 62 END
+																END
+															END
+														END
+													END
+												END
+											END
+										| 'P':
+											IF s[10] = 'S' THEN
+												IF s[11] = 0X THEN x := 63 END
+											END
+										ELSE END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'I':
+		CASE s[1] OF
+		| 'S':
+			IF s[2] = 'O' THEN
+				CASE s[3] OF
+				| '8':
+					IF s[4] = '8' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = '9' THEN
+								IF s[7] = '-' THEN
+									CASE s[8] OF
+									| '1':
+										CASE s[9] OF
+										| 0X: x := 17
+										| '1':
+											IF s[10] = 0X THEN x := 27 END
+										| '0':
+											IF s[10] = 0X THEN x := 26 END
+										| '3':
+											IF s[10] = 0X THEN x := 28 END
+										| '5':
+											IF s[10] = 0X THEN x := 30 END
+										| '4':
+											IF s[10] = 0X THEN x := 29 END
+										| '6':
+											IF s[10] = 0X THEN x := 31 END
+										ELSE END
+									| '3':
+										IF s[9] = 0X THEN x := 19 END
+									| '2':
+										IF s[9] = 0X THEN x := 18 END
+									| '5':
+										IF s[9] = 0X THEN x := 21 END
+									| '4':
+										IF s[9] = 0X THEN x := 20 END
+									| '7':
+										IF s[9] = 0X THEN x := 23 END
+									| '6':
+										IF s[9] = 0X THEN x := 22 END
+									| '9':
+										IF s[9] = 0X THEN x := 25 END
+									| '8':
+										IF s[9] = 0X THEN x := 24 END
+									ELSE END
+								END
+							END
+						END
+					END
+				| '-':
+					CASE s[4] OF
+					| 'I':
+						IF s[5] = 'R' THEN
+							IF s[6] = '-' THEN
+								CASE s[7] OF
+								| '1':
+									CASE s[8] OF
+									| '1':
+										IF s[9] = '0' THEN
+											IF s[10] = 0X THEN x := 20 END
+										END
+									| '0':
+										CASE s[9] OF
+										| '9':
+											IF s[10] = 0X THEN x := 19 END
+										| '1':
+											IF s[10] = 0X THEN x := 18 END
+										| '0':
+											IF s[10] = 0X THEN x := 17 END
+										ELSE END
+									| '3':
+										IF s[9] = '8' THEN
+											IF s[10] = 0X THEN x := 24 END
+										END
+									| '2':
+										CASE s[9] OF
+										| '7':
+											IF s[10] = 0X THEN x := 22 END
+										| '6':
+											IF s[10] = 0X THEN x := 23 END
+										ELSE END
+									| '5':
+										CASE s[9] OF
+										| '9':
+											IF s[10] = 0X THEN x := 75 END
+										| '7':
+											IF s[10] = 0X THEN x := 26 END
+										ELSE END
+									| '4':
+										CASE s[9] OF
+										| '9':
+											IF s[10] = 0X THEN x := 79 END
+										| '8':
+											IF s[10] = 0X THEN x := 25 END
+										| '4':
+											IF s[10] = 0X THEN x := 21 END
+										| 0X: x := 72
+										ELSE END
+									| '7':
+										IF s[9] = '9' THEN
+											IF s[10] = 0X THEN x := 28 END
+										END
+									| '6':
+										IF s[9] = '5' THEN
+											IF s[10] = 0X THEN x := 78 END
+										END
+									| '9':
+										IF s[9] = '9' THEN
+											IF s[10] = 0X THEN x := 29 END
+										END
+									ELSE END
+								| '8':
+									IF s[8] = '7' THEN
+										IF s[9] = 0X THEN x := 74 END
+									END
+								| '2':
+									CASE s[8] OF
+									| '0':
+										IF s[9] = '3' THEN
+											IF s[10] = 0X THEN x := 30 END
+										END
+									| '3':
+										IF s[9] = '0' THEN
+											IF s[10] = 0X THEN x := 134 END
+										END
+									| '2':
+										IF s[9] = '6' THEN
+											IF s[10] = 0X THEN x := 31 END
+										END
+									ELSE END
+								| '5':
+									CASE s[8] OF
+									| '8':
+										IF s[9] = 0X THEN x := 77 END
+									| '7':
+										IF s[9] = 0X THEN x := 76 END
+									ELSE END
+								| '6':
+									IF s[8] = 0X THEN x := 0 END
+								ELSE END
+							END
+						END
+					| '8':
+						IF s[5] = '8' THEN
+							IF s[6] = '5' THEN
+								IF s[7] = '9' THEN
+									IF s[8] = '-' THEN
+										CASE s[9] OF
+										| '1':
+											CASE s[10] OF
+											| 0X: x := 17
+											| '1':
+												IF s[11] = 0X THEN x := 27 END
+											| '0':
+												IF s[11] = 0X THEN x := 26 END
+											| '3':
+												IF s[11] = 0X THEN x := 28 END
+											| '5':
+												IF s[11] = 0X THEN x := 30 END
+											| '4':
+												IF s[11] = 0X THEN x := 29 END
+											| '6':
+												IF s[11] = 0X THEN x := 31 END
+											ELSE END
+										| '3':
+											IF s[10] = 0X THEN x := 19 END
+										| '2':
+											IF s[10] = 0X THEN x := 18 END
+										| '5':
+											IF s[10] = 0X THEN x := 21 END
+										| '4':
+											IF s[10] = 0X THEN x := 20 END
+										| '7':
+											IF s[10] = 0X THEN x := 23 END
+										| '6':
+											IF s[10] = 0X THEN x := 22 END
+										| '9':
+											IF s[10] = 0X THEN x := 25 END
+										| '8':
+											IF s[10] = 0X THEN x := 24 END
+										ELSE END
+									END
+								END
+							END
+						END
+					| 'C':
+						IF s[5] = 'E' THEN
+							IF s[6] = 'L' THEN
+								IF s[7] = 'T' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'C' THEN
+											IF s[10] = 0X THEN x := 29 END
+										END
+									END
+								END
+							END
+						END
+					| '2':
+						IF s[5] = '0' THEN
+							IF s[6] = '2' THEN
+								IF s[7] = '2' THEN
+									IF s[8] = '-' THEN
+										CASE s[9] OF
+										| 'C':
+											IF s[10] = 'N' THEN
+												CASE s[11] OF
+												| 0X: x := 90
+												| '-':
+													IF s[12] = 'E' THEN
+														IF s[13] = 'X' THEN
+															IF s[14] = 'T' THEN
+																IF s[15] = 0X THEN x := 91 END
+															END
+														END
+													END
+												ELSE END
+											END
+										| 'J':
+											IF s[10] = 'P' THEN
+												CASE s[11] OF
+												| 0X: x := 83
+												| '-':
+													CASE s[12] OF
+													| '1':
+														IF s[13] = 0X THEN x := 84 END
+													| '3':
+														IF s[13] = 0X THEN x := 132 END
+													| '2':
+														CASE s[13] OF
+														| 0X: x := 85
+														| '0':
+															IF s[14] = '0' THEN
+																IF s[15] = '4' THEN
+																	IF s[16] = 0X THEN x := 132 END
+																END
+															END
+														ELSE END
+													ELSE END
+												ELSE END
+											END
+										| 'K':
+											IF s[10] = 'R' THEN
+												IF s[11] = 0X THEN x := 103 END
+											END
+										ELSE END
+									END
+								END
+							END
+						END
+					| '1':
+						IF s[5] = '0' THEN
+							IF s[6] = '6' THEN
+								IF s[7] = '4' THEN
+									IF s[8] = '6' THEN
+										IF s[9] = '-' THEN
+											IF s[10] = 'U' THEN
+												IF s[11] = 'C' THEN
+													IF s[12] = 'S' THEN
+														IF s[13] = '-' THEN
+															CASE s[14] OF
+															| '2':
+																IF s[15] = 0X THEN x := 2 END
+															| '4':
+																IF s[15] = 0X THEN x := 5 END
+															ELSE END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				| '_':
+					CASE s[4] OF
+					| '8':
+						IF s[5] = '8' THEN
+							IF s[6] = '5' THEN
+								IF s[7] = '9' THEN
+									IF s[8] = '-' THEN
+										CASE s[9] OF
+										| '1':
+											CASE s[10] OF
+											| 0X: x := 17
+											| '1':
+												IF s[11] = 0X THEN x := 27 END
+											| '0':
+												CASE s[11] OF
+												| 0X: x := 26
+												| ':':
+													IF s[12] = '1' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = '2' THEN
+																	IF s[16] = 0X THEN x := 26 END
+																END
+															END
+														END
+													END
+												ELSE END
+											| '3':
+												IF s[11] = 0X THEN x := 28 END
+											| '5':
+												CASE s[11] OF
+												| 0X: x := 30
+												| ':':
+													IF s[12] = '1' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = '8' THEN
+																	IF s[16] = 0X THEN x := 30 END
+																END
+															END
+														END
+													END
+												ELSE END
+											| '4':
+												CASE s[11] OF
+												| 0X: x := 29
+												| ':':
+													IF s[12] = '1' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = '8' THEN
+																	IF s[16] = 0X THEN x := 29 END
+																END
+															END
+														END
+													END
+												ELSE END
+											| '6':
+												CASE s[11] OF
+												| 0X: x := 31
+												| ':':
+													IF s[12] = '2' THEN
+														IF s[13] = '0' THEN
+															IF s[14] = '0' THEN
+																IF s[15] = '1' THEN
+																	IF s[16] = 0X THEN x := 31 END
+																END
+															END
+														END
+													END
+												ELSE END
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '7' THEN
+																IF s[15] = 0X THEN x := 17 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '3':
+											CASE s[10] OF
+											| 0X: x := 19
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '8' THEN
+																IF s[15] = 0X THEN x := 19 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '2':
+											CASE s[10] OF
+											| 0X: x := 18
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '7' THEN
+																IF s[15] = 0X THEN x := 18 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '5':
+											CASE s[10] OF
+											| 0X: x := 21
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '8' THEN
+																IF s[15] = 0X THEN x := 21 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '4':
+											CASE s[10] OF
+											| 0X: x := 20
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '8' THEN
+																IF s[15] = 0X THEN x := 20 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '7':
+											CASE s[10] OF
+											| 0X: x := 23
+											| ':':
+												CASE s[11] OF
+												| '1':
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '7' THEN
+																IF s[15] = 0X THEN x := 23 END
+															END
+														END
+													END
+												| '2':
+													IF s[12] = '0' THEN
+														IF s[13] = '0' THEN
+															IF s[14] = '3' THEN
+																IF s[15] = 0X THEN x := 23 END
+															END
+														END
+													END
+												ELSE END
+											ELSE END
+										| '6':
+											CASE s[10] OF
+											| 0X: x := 22
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '7' THEN
+																IF s[15] = 0X THEN x := 22 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '9':
+											CASE s[10] OF
+											| 0X: x := 25
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = 0X THEN x := 25 END
+															END
+														END
+													END
+												END
+											ELSE END
+										| '8':
+											CASE s[10] OF
+											| 0X: x := 24
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '8' THEN
+															IF s[14] = '8' THEN
+																IF s[15] = 0X THEN x := 24 END
+															END
+														END
+													END
+												END
+											ELSE END
+										ELSE END
+									END
+								END
+							END
+						END
+					| '6':
+						IF s[5] = '4' THEN
+							IF s[6] = '6' THEN
+								IF s[7] = '.' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'R' THEN
+											IF s[10] = 'V' THEN
+												IF s[11] = ':' THEN
+													IF s[12] = '1' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '9' THEN
+																IF s[15] = '1' THEN
+																	IF s[16] = 0X THEN x := 0 END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				| '6':
+					IF s[4] = '4' THEN
+						IF s[5] = '6' THEN
+							IF s[6] = '-' THEN
+								CASE s[7] OF
+								| 'C':
+									IF s[8] = 'N' THEN
+										IF s[9] = 0X THEN x := 76 END
+									END
+								| 'J':
+									IF s[8] = 'P' THEN
+										IF s[9] = 0X THEN x := 72 END
+									END
+								| 'U':
+									IF s[8] = 'S' THEN
+										IF s[9] = 0X THEN x := 0 END
+									END
+								ELSE END
+							END
+						END
+					END
+				ELSE END
+			END
+		| 'B':
+			IF s[2] = 'M' THEN
+				CASE s[3] OF
+				| '-':
+					CASE s[4] OF
+					| '1':
+						IF s[5] = '1' THEN
+							IF s[6] = '6' THEN
+								CASE s[7] OF
+								| '1':
+									IF s[8] = 0X THEN x := 110 END
+								| '3':
+									IF s[8] = 0X THEN x := 112 END
+								| '2':
+									IF s[8] = 0X THEN x := 111 END
+								ELSE END
+							END
+						END
+					| 'C':
+						IF s[5] = 'P' THEN
+							IF s[6] = '1' THEN
+								IF s[7] = '1' THEN
+									IF s[8] = '3' THEN
+										IF s[9] = '3' THEN
+											IF s[10] = 0X THEN x := 68 END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				| '1':
+					IF s[4] = '1' THEN
+						IF s[5] = '6' THEN
+							CASE s[6] OF
+							| '1':
+								IF s[7] = 0X THEN x := 110 END
+							| '3':
+								IF s[7] = 0X THEN x := 112 END
+							| '2':
+								IF s[7] = 0X THEN x := 111 END
+							ELSE END
+						END
+					END
+				| '3':
+					IF s[4] = '6' THEN
+						IF s[5] = '7' THEN
+							IF s[6] = 0X THEN x := 0 END
+						END
+					END
+				| '4':
+					IF s[4] = '3' THEN
+						IF s[5] = '7' THEN
+							IF s[6] = 0X THEN x := 115 END
+						END
+					END
+				| '7':
+					IF s[4] = '7' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = 0X THEN x := 117 END
+						END
+					END
+				| '8':
+					CASE s[4] OF
+					| '1':
+						IF s[5] = '9' THEN
+							IF s[6] = 0X THEN x := 17 END
+						END
+					| '5':
+						CASE s[5] OF
+						| '0':
+							IF s[6] = 0X THEN x := 43 END
+						| '2':
+							IF s[6] = 0X THEN x := 118 END
+						| '5':
+							IF s[6] = 0X THEN x := 120 END
+						| '7':
+							IF s[6] = 0X THEN x := 121 END
+						ELSE END
+					| '6':
+						CASE s[5] OF
+						| '1':
+							IF s[6] = 0X THEN x := 124 END
+						| '0':
+							IF s[6] = 0X THEN x := 123 END
+						| '3':
+							IF s[6] = 0X THEN x := 125 END
+						| '2':
+							IF s[6] = 0X THEN x := 44 END
+						| '5':
+							IF s[6] = 0X THEN x := 127 END
+						| '4':
+							IF s[6] = 0X THEN x := 126 END
+						| '6':
+							IF s[6] = 0X THEN x := 45 END
+						| '9':
+							IF s[6] = 0X THEN x := 128 END
+						ELSE END
+					ELSE END
+				ELSE END
+			END
+		ELSE END
+	| 'H':
+		CASE s[1] OF
+		| 'P':
+			IF s[2] = '-' THEN
+				IF s[3] = 'R' THEN
+					IF s[4] = 'O' THEN
+						IF s[5] = 'M' THEN
+							IF s[6] = 'A' THEN
+								IF s[7] = 'N' THEN
+									IF s[8] = '8' THEN
+										IF s[9] = 0X THEN x := 59 END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		| 'Z':
+			CASE s[2] OF
+			| 0X: x := 92
+			| '-':
+				IF s[3] = 'G' THEN
+					IF s[4] = 'B' THEN
+						IF s[5] = '-' THEN
+							IF s[6] = '2' THEN
+								IF s[7] = '3' THEN
+									IF s[8] = '1' THEN
+										IF s[9] = '2' THEN
+											IF s[10] = 0X THEN x := 92 END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'E':
+			IF s[2] = 'B' THEN
+				IF s[3] = 'R' THEN
+					IF s[4] = 'E' THEN
+						IF s[5] = 'W' THEN
+							IF s[6] = 0X THEN x := 24 END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'K':
+		CASE s[1] OF
+		| 'P':
+			IF s[2] = 'S' THEN
+				IF s[3] = '9' THEN
+					IF s[4] = '5' THEN
+						IF s[5] = '6' THEN
+							IF s[6] = '6' THEN
+								IF s[7] = 0X THEN x := 137 END
+							END
+						END
+					END
+				END
+			END
+		| 'S':
+			CASE s[2] OF
+			| 'C':
+				IF s[3] = '_' THEN
+					IF s[4] = '5' THEN
+						IF s[5] = '6' THEN
+							IF s[6] = '0' THEN
+								IF s[7] = '1' THEN
+									IF s[8] = 0X THEN x := 79 END
+								END
+							END
+						END
+					END
+				END
+			| '_':
+				IF s[3] = 'C' THEN
+					IF s[4] = '_' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = '6' THEN
+								IF s[7] = '0' THEN
+									IF s[8] = '1' THEN
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													IF s[12] = '8' THEN
+														CASE s[13] OF
+														| '9':
+															IF s[14] = 0X THEN x := 79 END
+														| '7':
+															IF s[14] = 0X THEN x := 79 END
+														ELSE END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'Z':
+			IF s[2] = '-' THEN
+				IF s[3] = '1' THEN
+					IF s[4] = '0' THEN
+						IF s[5] = '4' THEN
+							IF s[6] = '8' THEN
+								IF s[7] = 0X THEN x := 66 END
+							END
+						END
+					END
+				END
+			END
+		| 'O':
+			CASE s[2] OF
+			| 'I':
+				IF s[3] = '8' THEN
+					IF s[4] = '-' THEN
+						CASE s[5] OF
+						| 'R':
+							IF s[6] = 0X THEN x := 32 END
+						| 'U':
+							IF s[6] = 0X THEN x := 33 END
+						| 'T':
+							IF s[6] = 0X THEN x := 64 END
+						ELSE END
+					END
+				END
+			| 'R':
+				IF s[3] = 'E' THEN
+					IF s[4] = 'A' THEN
+						IF s[5] = 'N' THEN
+							IF s[6] = 0X THEN x := 79 END
+						END
+					END
+				END
+			ELSE END
+		ELSE END
+	| 'J':
+		CASE s[1] OF
+		| 'I':
+			IF s[2] = 'S' THEN
+				CASE s[3] OF
+				| 'X':
+					IF s[4] = '0' THEN
+						IF s[5] = '2' THEN
+							IF s[6] = '0' THEN
+								IF s[7] = '1' THEN
+									IF s[8] = '-' THEN
+										IF s[9] = '1' THEN
+											IF s[10] = '9' THEN
+												IF s[11] = '7' THEN
+													IF s[12] = '6' THEN
+														IF s[13] = 0X THEN x := 73 END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				| '_':
+					CASE s[4] OF
+					| 'X':
+						IF s[5] = '0' THEN
+							IF s[6] = '2' THEN
+								CASE s[7] OF
+								| '1':
+									IF s[8] = '2' THEN
+										CASE s[9] OF
+										| 0X: x := 75
+										| '-':
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '0' THEN
+															IF s[14] = 0X THEN x := 75 END
+														END
+													END
+												END
+											END
+										| '.':
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '0' THEN
+															IF s[14] = '-' THEN
+																IF s[15] = '0' THEN
+																	IF s[16] = 0X THEN x := 75 END
+																END
+															END
+														END
+													END
+												END
+											END
+										ELSE END
+									END
+								| '0':
+									CASE s[8] OF
+									| '1':
+										IF s[9] = 0X THEN x := 73 END
+									| '8':
+										CASE s[9] OF
+										| 0X: x := 74
+										| '-':
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													CASE s[12] OF
+													| '9':
+														IF s[13] = '0' THEN
+															IF s[14] = 0X THEN x := 74 END
+														END
+													| '8':
+														IF s[13] = '3' THEN
+															IF s[14] = 0X THEN x := 74 END
+														END
+													ELSE END
+												END
+											END
+										ELSE END
+									ELSE END
+								ELSE END
+							END
+						END
+					| 'C':
+						IF s[5] = '6' THEN
+							IF s[6] = '2' THEN
+								IF s[7] = '2' THEN
+									CASE s[8] OF
+									| '0':
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													IF s[12] = '6' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '-' THEN
+																IF s[15] = 'R' THEN
+																	IF s[16] = 'O' THEN
+																		IF s[17] = 0X THEN x := 72 END
+																	END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									| '6':
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = '9' THEN
+													IF s[12] = '8' THEN
+														IF s[13] = '3' THEN
+															IF s[14] = 0X THEN x := 74 END
+														END
+													END
+												END
+											END
+										END
+									ELSE END
+								END
+							END
+						END
+					ELSE END
+				| '0':
+					IF s[4] = '2' THEN
+						IF s[5] = '0' THEN
+							IF s[6] = '8' THEN
+								IF s[7] = 0X THEN x := 74 END
+							END
+						END
+					END
+				ELSE END
+			END
+		| 'P':
+			IF s[2] = 0X THEN x := 72 END
+		| 'A':
+			IF s[2] = 'V' THEN
+				IF s[3] = 'A' THEN
+					IF s[4] = 0X THEN x := 16 END
+				END
+			END
+		| 'O':
+			IF s[2] = 'H' THEN
+				IF s[3] = 'A' THEN
+					IF s[4] = 'B' THEN
+						IF s[5] = 0X THEN x := 102 END
+					END
+				END
+			END
+		ELSE END
+	| 'M':
+		CASE s[1] OF
+		| 'A':
+			IF s[2] = 'C' THEN
+				CASE s[3] OF
+				| 0X: x := 47
+				| 'A':
+					IF s[4] = 'R' THEN
+						IF s[5] = 'A' THEN
+							IF s[6] = 'B' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'C' THEN
+										IF s[9] = 0X THEN x := 57 END
+									END
+								END
+							END
+						END
+					END
+				| 'C':
+					CASE s[4] OF
+					| 'Y':
+						IF s[5] = 'R' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 'L' THEN
+									IF s[8] = 'L' THEN
+										IF s[9] = 'I' THEN
+											IF s[10] = 'C' THEN
+												IF s[11] = 0X THEN x := 52 END
+											END
+										END
+									END
+								END
+							END
+						END
+					| 'R':
+						IF s[5] = 'O' THEN
+							IF s[6] = 'A' THEN
+								IF s[7] = 'T' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'A' THEN
+											IF s[10] = 'N' THEN
+												IF s[11] = 0X THEN x := 50 END
+											END
+										END
+									END
+								END
+							END
+						END
+					| 'E':
+						IF s[5] = 'N' THEN
+							IF s[6] = 'T' THEN
+								IF s[7] = 'R' THEN
+									IF s[8] = 'A' THEN
+										IF s[9] = 'L' THEN
+											IF s[10] = 'E' THEN
+												IF s[11] = 'U' THEN
+													IF s[12] = 'R' THEN
+														IF s[13] = 'O' THEN
+															IF s[14] = 'P' THEN
+																IF s[15] = 'E' THEN
+																	IF s[16] = 0X THEN x := 48 END
+																END
+															END
+														END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				| 'G':
+					IF s[4] = 'R' THEN
+						IF s[5] = 'E' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 'K' THEN
+									IF s[8] = 0X THEN x := 54 END
+								END
+							END
+						END
+					END
+				| 'I':
+					CASE s[4] OF
+					| 'C':
+						IF s[5] = 'E' THEN
+							IF s[6] = 'L' THEN
+								IF s[7] = 'A' THEN
+									IF s[8] = 'N' THEN
+										IF s[9] = 'D' THEN
+											IF s[10] = 0X THEN x := 49 END
+										END
+									END
+								END
+							END
+						END
+					| 'N':
+						IF s[5] = 'T' THEN
+							IF s[6] = 'O' THEN
+								IF s[7] = 'S' THEN
+									IF s[8] = 'H' THEN
+										IF s[9] = 0X THEN x := 47 END
+									END
+								END
+							END
+						END
+					ELSE END
+				| 'H':
+					IF s[4] = 'E' THEN
+						IF s[5] = 'B' THEN
+							IF s[6] = 'R' THEN
+								IF s[7] = 'E' THEN
+									IF s[8] = 'W' THEN
+										IF s[9] = 0X THEN x := 56 END
+									END
+								END
+							END
+						END
+					END
+				| 'R':
+					IF s[4] = 'O' THEN
+						IF s[5] = 'M' THEN
+							IF s[6] = 'A' THEN
+								IF s[7] = 'N' THEN
+									CASE s[8] OF
+									| 0X: x := 47
+									| 'I':
+										IF s[9] = 'A' THEN
+											IF s[10] = 0X THEN x := 51 END
+										END
+									ELSE END
+								END
+							END
+						END
+					END
+				| 'U':
+					IF s[4] = 'K' THEN
+						IF s[5] = 'R' THEN
+							IF s[6] = 'A' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'N' THEN
+										IF s[9] = 'E' THEN
+											IF s[10] = 0X THEN x := 53 END
+										END
+									END
+								END
+							END
+						END
+					END
+				| 'T':
+					CASE s[4] OF
+					| 'H':
+						IF s[5] = 'A' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 0X THEN x := 58 END
+							END
+						END
+					| 'U':
+						IF s[5] = 'R' THEN
+							IF s[6] = 'K' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'S' THEN
+										IF s[9] = 'H' THEN
+											IF s[10] = 0X THEN x := 55 END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				ELSE END
+			END
+		| 'S':
+			CASE s[2] OF
+			| '9':
+				IF s[3] = '3' THEN
+					IF s[4] = '6' THEN
+						IF s[5] = 0X THEN x := 88 END
+					END
+				END
+			| '-':
+				CASE s[3] OF
+				| 'A':
+					CASE s[4] OF
+					| 'R':
+						IF s[5] = 'A' THEN
+							IF s[6] = 'B' THEN
+								IF s[7] = 0X THEN x := 40 END
+							END
+						END
+					| 'N':
+						IF s[5] = 'S' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 0X THEN x := 36 END
+							END
+						END
+					ELSE END
+				| 'C':
+					IF s[4] = 'Y' THEN
+						IF s[5] = 'R' THEN
+							IF s[6] = 'L' THEN
+								IF s[7] = 0X THEN x := 35 END
+							END
+						END
+					END
+				| 'E':
+					IF s[4] = 'E' THEN
+						IF s[5] = 0X THEN x := 34 END
+					END
+				| 'G':
+					IF s[4] = 'R' THEN
+						IF s[5] = 'E' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 'K' THEN
+									IF s[8] = 0X THEN x := 37 END
+								END
+							END
+						END
+					END
+				| 'H':
+					IF s[4] = 'E' THEN
+						IF s[5] = 'B' THEN
+							IF s[6] = 'R' THEN
+								IF s[7] = 0X THEN x := 39 END
+							END
+						END
+					END
+				| 'T':
+					IF s[4] = 'U' THEN
+						IF s[5] = 'R' THEN
+							IF s[6] = 'K' THEN
+								IF s[7] = 0X THEN x := 38 END
+							END
+						END
+					END
+				ELSE END
+			| '_':
+				IF s[3] = 'K' THEN
+					IF s[4] = 'A' THEN
+						IF s[5] = 'N' THEN
+							IF s[6] = 'J' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 0X THEN x := 81 END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'U':
+			IF s[2] = 'L' THEN
+				IF s[3] = 'E' THEN
+					IF s[4] = 'L' THEN
+						IF s[5] = 'A' THEN
+							IF s[6] = 'O' THEN
+								IF s[7] = '-' THEN
+									IF s[8] = '1' THEN
+										IF s[9] = 0X THEN x := 67 END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'L':
+		CASE s[1] OF
+		| 'A':
+			IF s[2] = 'T' THEN
+				IF s[3] = 'I' THEN
+					IF s[4] = 'N' THEN
+						CASE s[5] OF
+						| '-':
+							IF s[6] = '9' THEN
+								IF s[7] = 0X THEN x := 30 END
+							END
+						| '1':
+							CASE s[6] OF
+							| 0X: x := 17
+							| '0':
+								IF s[7] = 0X THEN x := 31 END
+							ELSE END
+						| '3':
+							IF s[6] = 0X THEN x := 19 END
+						| '2':
+							IF s[6] = 0X THEN x := 18 END
+						| '5':
+							IF s[6] = 0X THEN x := 25 END
+						| '4':
+							IF s[6] = 0X THEN x := 20 END
+						| '7':
+							IF s[6] = 0X THEN x := 28 END
+						| '6':
+							IF s[6] = 0X THEN x := 26 END
+						| '8':
+							IF s[6] = 0X THEN x := 29 END
+						ELSE END
+					END
+				END
+			END
+		| '1':
+			CASE s[2] OF
+			| 0X: x := 17
+			| '0':
+				IF s[3] = 0X THEN x := 31 END
+			ELSE END
+		| '3':
+			IF s[2] = 0X THEN x := 19 END
+		| '2':
+			IF s[2] = 0X THEN x := 18 END
+		| '5':
+			IF s[2] = 0X THEN x := 25 END
+		| '4':
+			IF s[2] = 0X THEN x := 20 END
+		| '7':
+			IF s[2] = 0X THEN x := 28 END
+		| '6':
+			IF s[2] = 0X THEN x := 26 END
+		| '8':
+			IF s[2] = 0X THEN x := 29 END
+		ELSE END
+	| 'N':
+		IF s[1] = 'E' THEN
+			IF s[2] = 'X' THEN
+				IF s[3] = 'T' THEN
+					IF s[4] = 'S' THEN
+						IF s[5] = 'T' THEN
+							IF s[6] = 'E' THEN
+								IF s[7] = 'P' THEN
+									IF s[8] = 0X THEN x := 60 END
+								END
+							END
+						END
+					END
+				END
+			END
+		END
+	| 'P':
+		IF s[1] = 'T' THEN
+			CASE s[2] OF
+			| '1':
+				IF s[3] = '5' THEN
+					IF s[4] = '4' THEN
+						IF s[5] = 0X THEN x := 65 END
+					END
+				END
+			| 'C':
+				IF s[3] = 'P' THEN
+					IF s[4] = '1' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = '4' THEN
+								IF s[7] = 0X THEN x := 65 END
+							END
+						END
+					END
+				END
+			ELSE END
+		END
+	| 'S':
+		CASE s[1] OF
+		| 'H':
+			IF s[2] = 'I' THEN
+				IF s[3] = 'F' THEN
+					IF s[4] = 'T' THEN
+						CASE s[5] OF
+						| '-':
+							IF s[6] = 'J' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'S' THEN
+										IF s[9] = 0X THEN x := 81 END
+									END
+								END
+							END
+						| '_':
+							IF s[6] = 'J' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 'S' THEN
+										CASE s[9] OF
+										| 0X: x := 81
+										| 'X':
+											IF s[10] = '0' THEN
+												IF s[11] = '2' THEN
+													IF s[12] = '1' THEN
+														IF s[13] = '3' THEN
+															IF s[14] = 0X THEN x := 131 END
+														END
+													END
+												END
+											END
+										| '-':
+											IF s[10] = '2' THEN
+												IF s[11] = '0' THEN
+													IF s[12] = '0' THEN
+														IF s[13] = '4' THEN
+															IF s[14] = 0X THEN x := 131 END
+														END
+													END
+												END
+											END
+										ELSE END
+									END
+								END
+							END
+						ELSE END
+					END
+				END
+			END
+		| 'J':
+			IF s[2] = 'I' THEN
+				IF s[3] = 'S' THEN
+					IF s[4] = 0X THEN x := 81 END
+				END
+			END
+		| 'T':
+			IF s[2] = 'R' THEN
+				IF s[3] = 'K' THEN
+					IF s[4] = '1' THEN
+						IF s[5] = '0' THEN
+							IF s[6] = '4' THEN
+								IF s[7] = '8' THEN
+									IF s[8] = '-' THEN
+										IF s[9] = '2' THEN
+											IF s[10] = '0' THEN
+												IF s[11] = '0' THEN
+													IF s[12] = '2' THEN
+														IF s[13] = 0X THEN x := 66 END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'R':
+		CASE s[1] OF
+		| 'I':
+			IF s[2] = 'S' THEN
+				IF s[3] = 'C' THEN
+					IF s[4] = 'O' THEN
+						IF s[5] = 'S' THEN
+							IF s[6] = '-' THEN
+								IF s[7] = 'L' THEN
+									IF s[8] = 'A' THEN
+										IF s[9] = 'T' THEN
+											IF s[10] = 'I' THEN
+												IF s[11] = 'N' THEN
+													IF s[12] = '1' THEN
+														IF s[13] = 0X THEN x := 136 END
+													END
+												END
+											END
+										END
+									END
+								END
+							END
+						END
+					END
+				END
+			END
+		| '8':
+			IF s[2] = 0X THEN x := 59 END
+		| 'K':
+			IF s[2] = '1' THEN
+				IF s[3] = '0' THEN
+					IF s[4] = '4' THEN
+						IF s[5] = '8' THEN
+							IF s[6] = 0X THEN x := 66 END
+						END
+					END
+				END
+			END
+		| 'O':
+			IF s[2] = 'M' THEN
+				IF s[3] = 'A' THEN
+					IF s[4] = 'N' THEN
+						IF s[5] = '8' THEN
+							IF s[6] = 0X THEN x := 59 END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'U':
+		CASE s[1] OF
+		| 'S':
+			CASE s[2] OF
+			| 0X: x := 0
+			| '-':
+				IF s[3] = 'A' THEN
+					IF s[4] = 'S' THEN
+						IF s[5] = 'C' THEN
+							IF s[6] = 'I' THEN
+								IF s[7] = 'I' THEN
+									IF s[8] = 0X THEN x := 0 END
+								END
+							END
+						END
+					END
+				END
+			ELSE END
+		| 'H':
+			IF s[2] = 'C' THEN
+				IF s[3] = 0X THEN x := 101 END
+			END
+		| 'C':
+			IF s[2] = 'S' THEN
+				IF s[3] = '-' THEN
+					CASE s[4] OF
+					| '2':
+						CASE s[5] OF
+						| 0X: x := 2
+						| 'B':
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 3 END
+							END
+						| 'L':
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 4 END
+							END
+						ELSE END
+					| '4':
+						CASE s[5] OF
+						| 0X: x := 5
+						| 'B':
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 6 END
+							END
+						| 'L':
+							IF s[6] = 'E' THEN
+								IF s[7] = 0X THEN x := 7 END
+							END
+						ELSE END
+					ELSE END
+				END
+			END
+		| 'T':
+			IF s[2] = 'F' THEN
+				CASE s[3] OF
+				| '8':
+					IF s[4] = 0X THEN x := 1 END
+				| '-':
+					CASE s[4] OF
+					| '1':
+						IF s[5] = '6' THEN
+							CASE s[6] OF
+							| 0X: x := 8
+							| 'B':
+								IF s[7] = 'E' THEN
+									IF s[8] = 0X THEN x := 9 END
+								END
+							| 'L':
+								IF s[7] = 'E' THEN
+									IF s[8] = 0X THEN x := 10 END
+								END
+							ELSE END
+						END
+					| '8':
+						IF s[5] = 0X THEN x := 1 END
+					| '3':
+						IF s[5] = '2' THEN
+							CASE s[6] OF
+							| 0X: x := 11
+							| 'B':
+								IF s[7] = 'E' THEN
+									IF s[8] = 0X THEN x := 12 END
+								END
+							| 'L':
+								IF s[7] = 'E' THEN
+									IF s[8] = 0X THEN x := 13 END
+								END
+							ELSE END
+						END
+					| '7':
+						IF s[5] = 0X THEN x := 14 END
+					ELSE END
+				ELSE END
+			END
+		| 'N':
+			IF s[2] = 'I' THEN
+				IF s[3] = 'C' THEN
+					IF s[4] = 'O' THEN
+						IF s[5] = 'D' THEN
+							IF s[6] = 'E' THEN
+								CASE s[7] OF
+								| 'B':
+									IF s[8] = 'I' THEN
+										IF s[9] = 'G' THEN
+											IF s[10] = 0X THEN x := 3 END
+										END
+									END
+								| '-':
+									IF s[8] = '1' THEN
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												CASE s[11] OF
+												| 0X: x := 3
+												| '-':
+													IF s[12] = 'U' THEN
+														IF s[13] = 'T' THEN
+															IF s[14] = 'F' THEN
+																IF s[15] = '-' THEN
+																	IF s[16] = '7' THEN
+																		IF s[17] = 0X THEN x := 14 END
+																	END
+																END
+															END
+														END
+													END
+												ELSE END
+											END
+										END
+									END
+								| 'L':
+									IF s[8] = 'I' THEN
+										IF s[9] = 'T' THEN
+											IF s[10] = 'T' THEN
+												IF s[11] = 'L' THEN
+													IF s[12] = 'E' THEN
+														IF s[13] = 0X THEN x := 4 END
+													END
+												END
+											END
+										END
+									END
+								ELSE END
+							END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'T':
+		CASE s[1] OF
+		| 'C':
+			IF s[2] = 'V' THEN
+				IF s[3] = 'N' THEN
+					CASE s[4] OF
+					| 0X: x := 71
+					| '-':
+						IF s[5] = '5' THEN
+							IF s[6] = '7' THEN
+								IF s[7] = '1' THEN
+									IF s[8] = '2' THEN
+										IF s[9] = 0X THEN x := 71 END
+									END
+								END
+							END
+						END
+					| '5':
+						IF s[5] = '7' THEN
+							IF s[6] = '1' THEN
+								IF s[7] = '2' THEN
+									IF s[8] = '-' THEN
+										IF s[9] = '1' THEN
+											CASE s[10] OF
+											| 0X: x := 71
+											| ':':
+												IF s[11] = '1' THEN
+													IF s[12] = '9' THEN
+														IF s[13] = '9' THEN
+															IF s[14] = '3' THEN
+																IF s[15] = 0X THEN x := 71 END
+															END
+														END
+													END
+												END
+											ELSE END
+										END
+									END
+								END
+							END
+						END
+					ELSE END
+				END
+			END
+		| 'D':
+			IF s[2] = 'S' THEN
+				IF s[3] = '5' THEN
+					IF s[4] = '6' THEN
+						IF s[5] = '5' THEN
+							IF s[6] = 0X THEN x := 134 END
+						END
+					END
+				END
+			END
+		ELSE END
+	| 'W':
+		IF s[1] = 'I' THEN
+			IF s[2] = 'N' THEN
+				CASE s[3] OF
+				| 'B':
+					IF s[4] = 'A' THEN
+						IF s[5] = 'L' THEN
+							IF s[6] = 'T' THEN
+								IF s[7] = 'R' THEN
+									IF s[8] = 'I' THEN
+										IF s[9] = 'M' THEN
+											IF s[10] = 0X THEN x := 41 END
+										END
+									END
+								END
+							END
+						END
+					END
+				| 'D':
+					IF s[4] = 'O' THEN
+						IF s[5] = 'W' THEN
+							IF s[6] = 'S' THEN
+								IF s[7] = '-' THEN
+									CASE s[8] OF
+									| '9':
+										IF s[9] = '3' THEN
+											IF s[10] = '6' THEN
+												IF s[11] = 0X THEN x := 88 END
+											END
+										END
+									| '8':
+										IF s[9] = '7' THEN
+											IF s[10] = '4' THEN
+												IF s[11] = 0X THEN x := 69 END
+											END
+										END
+									| '1':
+										IF s[9] = '2' THEN
+											IF s[10] = '5' THEN
+												CASE s[11] OF
+												| '1':
+													IF s[12] = 0X THEN x := 35 END
+												| '0':
+													IF s[12] = 0X THEN x := 34 END
+												| '3':
+													IF s[12] = 0X THEN x := 37 END
+												| '2':
+													IF s[12] = 0X THEN x := 36 END
+												| '5':
+													IF s[12] = 0X THEN x := 39 END
+												| '4':
+													IF s[12] = 0X THEN x := 38 END
+												| '7':
+													IF s[12] = 0X THEN x := 41 END
+												| '6':
+													IF s[12] = 0X THEN x := 40 END
+												| '8':
+													IF s[12] = 0X THEN x := 42 END
+												ELSE END
+											END
+										END
+									ELSE END
+								END
+							END
+						END
+					END
+				ELSE END
+			END
+		END
+	| 'V':
+		IF s[1] = 'I' THEN
+			IF s[2] = 'S' THEN
+				IF s[3] = 'C' THEN
+					IF s[4] = 'I' THEN
+						IF s[5] = 'I' THEN
+							CASE s[6] OF
+							| 0X: x := 70
+							| '1':
+								IF s[7] = '.' THEN
+									IF s[8] = '1' THEN
+										IF s[9] = '-' THEN
+											IF s[10] = '1' THEN
+												IF s[11] = 0X THEN x := 70 END
+											END
+										END
+									END
+								END
+							ELSE END
+						END
+					END
+				END
+			END
+		END
+	| 'X':
+		IF s[1] = '0' THEN
+			IF s[2] = '2' THEN
+				CASE s[3] OF
+				| '1':
+					IF s[4] = '2' THEN
+						IF s[5] = 0X THEN x := 75 END
+					END
+				| '0':
+					CASE s[4] OF
+					| '1':
+						IF s[5] = 0X THEN x := 73 END
+					| '8':
+						IF s[5] = 0X THEN x := 74 END
+					ELSE END
+				ELSE END
+			END
+		END
+	ELSE END;
+
+	ok := TRUE;
+	CASE x OF -1: ok := FALSE
+	| 0: r := modPrefix + "ascii"
+	| 1: r := modPrefix + "utf_8"
+	| 2: r := modPrefix + "ucs_2"
+	| 3: r := modPrefix + "ucs_2be"
+	| 4: r := modPrefix + "ucs_2le"
+	| 5: r := modPrefix + "ucs_4"
+	| 6: r := modPrefix + "ucs_4be"
+	| 7: r := modPrefix + "ucs_4le"
+	| 8: r := modPrefix + "utf_16"
+	| 9: r := modPrefix + "utf_16be"
+	| 10: r := modPrefix + "utf_16le"
+	| 11: r := modPrefix + "utf_32"
+	| 12: r := modPrefix + "utf_32be"
+	| 13: r := modPrefix + "utf_32le"
+	| 14: r := modPrefix + "utf_7"
+	| 15: r := modPrefix + "c99"
+	| 16: r := modPrefix + "java"
+	| 17: r := modPrefix + "iso8858_1"
+	| 18: r := modPrefix + "iso8859_2"
+	| 19: r := modPrefix + "iso8859_3"
+	| 20: r := modPrefix + "iso8859_4"
+	| 21: r := modPrefix + "iso8859_5"
+	| 22: r := modPrefix + "iso8859_6"
+	| 23: r := modPrefix + "iso8859_7"
+	| 24: r := modPrefix + "iso8859_8"
+	| 25: r := modPrefix + "iso8859_9"
+	| 26: r := modPrefix + "iso8859_10"
+	| 27: r := modPrefix + "iso8859_11"
+	| 28: r := modPrefix + "iso8859_13"
+	| 29: r := modPrefix + "iso8859_14"
+	| 30: r := modPrefix + "iso8859_15"
+	| 31: r := modPrefix + "iso8859_16"
+	| 32: r := modPrefix + "koi8_r"
+	| 33: r := modPrefix + "koi8_u"
+	| 34: r := modPrefix + "cp1250"
+	| 35: r := modPrefix + "cp1251"
+	| 36: r := modPrefix + "cp1252"
+	| 37: r := modPrefix + "cp1253"
+	| 38: r := modPrefix + "cp1254"
+	| 39: r := modPrefix + "cp1255"
+	| 40: r := modPrefix + "cp1256"
+	| 41: r := modPrefix + "cp1257"
+	| 42: r := modPrefix + "cp1258"
+	| 43: r := modPrefix + "cp850"
+	| 44: r := modPrefix + "cp862"
+	| 45: r := modPrefix + "cp866"
+	| 46: r := modPrefix + "cp1131"
+	| 47: r := modPrefix + "mac_roman"
+	| 48: r := modPrefix + "mac_centraleurope"
+	| 49: r := modPrefix + "mac_iceland"
+	| 50: r := modPrefix + "mac_croatian"
+	| 51: r := modPrefix + "mac_romania"
+	| 52: r := modPrefix + "mac_cyrillic"
+	| 53: r := modPrefix + "mac_ukraine"
+	| 54: r := modPrefix + "mac_greek"
+	| 55: r := modPrefix + "mac_turkish"
+	| 56: r := modPrefix + "mac_hebrew"
+	| 57: r := modPrefix + "mac_abaric"
+	| 58: r := modPrefix + "mac_thai"
+	| 59: r := modPrefix + "hp_roman8"
+	| 60: r := modPrefix + "nextstep"
+	| 61: r := modPrefix + "armscii_8"
+	| 62: r := modPrefix + "georgian_academy"
+	| 63: r := modPrefix + "georgian_ps"
+	| 64: r := modPrefix + "koi8_t"
+	| 65: r := modPrefix + "ptcp154"
+	| 66: r := modPrefix + "kz1048"
+	| 67: r := modPrefix + "mulelao_1"
+	| 68: r := modPrefix + "cp1133"
+	| 69: r := modPrefix + "cp874"
+	| 70: r := modPrefix + "viscii"
+	| 71: r := modPrefix + "tcvn"
+	| 72: r := modPrefix + "iso_ir_14"
+	| 73: r := modPrefix + "jis_x0201"
+	| 74: r := modPrefix + "jis_x0208"
+	| 75: r := modPrefix + "jis_x0212"
+	| 76: r := modPrefix + "iso_ir_57"
+	| 77: r := modPrefix + "iso_ir_58"
+	| 78: r := modPrefix + "iso_ir_165"
+	| 79: r := modPrefix + "iso_ir_149"
+	| 80: r := modPrefix + "eucjp"
+	| 81: r := modPrefix + "sjis"
+	| 82: r := modPrefix + "cp932"
+	| 83: r := modPrefix + "iso_2022_jp"
+	| 84: r := modPrefix + "iso_2022_jp_1"
+	| 85: r := modPrefix + "iso_2022_jp_2"
+	| 86: r := modPrefix + "gb2312"
+	| 87: r := modPrefix + "gbk"
+	| 88: r := modPrefix + "cp936"
+	| 89: r := modPrefix + "cb18030"
+	| 90: r := modPrefix + "iso_2022_cn"
+	| 91: r := modPrefix + "iso_2022_cn_ext"
+	| 92: r := modPrefix + "hz"
+	| 93: r := modPrefix + "euctw"
+	| 94: r := modPrefix + "big5"
+	| 95: r := modPrefix + "cp950"
+	| 96: r := modPrefix + "big5_hkscs_1999"
+	| 97: r := modPrefix + "big5_hkscs_2001"
+	| 98: r := modPrefix + "big5_hkscs_2004"
+	| 99: r := modPrefix + "big5_hkscs"
+	| 100: r := modPrefix + "euccr"
+	| 101: r := modPrefix + "cp949"
+	| 102: r := modPrefix + "cp1361"
+	| 103: r := modPrefix + "iso_2022_kr"
+	| 104: r := modPrefix + "cp856"
+	| 105: r := modPrefix + "cp922"
+	| 106: r := modPrefix + "cp943"
+	| 107: r := modPrefix + "cp1046"
+	| 108: r := modPrefix + "cp1124"
+	| 109: r := modPrefix + "cp1129"
+	| 110: r := modPrefix + "cp1161"
+	| 111: r := modPrefix + "cp1162"
+	| 112: r := modPrefix + "cp1163"
+	| 113: r := modPrefix + "dec_kanji"
+	| 114: r := modPrefix + "dec_hanyu"
+	| 115: r := modPrefix + "cp437"
+	| 116: r := modPrefix + "cp737"
+	| 117: r := modPrefix + "cp775"
+	| 118: r := modPrefix + "cp852"
+	| 119: r := modPrefix + "cp853"
+	| 120: r := modPrefix + "cp855"
+	| 121: r := modPrefix + "cp857"
+	| 122: r := modPrefix + "cp858"
+	| 123: r := modPrefix + "cp860"
+	| 124: r := modPrefix + "cp861"
+	| 125: r := modPrefix + "cp863"
+	| 126: r := modPrefix + "cp864"
+	| 127: r := modPrefix + "cp865"
+	| 128: r := modPrefix + "cp869"
+	| 129: r := modPrefix + "cp1125"
+	| 130: r := modPrefix + "euc_jisx0213"
+	| 131: r := modPrefix + "shift_jisx0213"
+	| 132: r := modPrefix + "iso_2022_jp_3"
+	| 133: r := modPrefix + "big5_2003"
+	| 134: r := modPrefix + "iso_ir_230"
+	| 135: r := modPrefix + "atarist"
+	| 136: r := modPrefix + "riscos_latin1"
+	| 137: r := modPrefix + "kps9566"
+	| 138: r := modPrefix + "cp720"
+	END
+END GetModName;
+
+END EncStdAliases.

+ 111 - 0
BlackBox/Enc/Mod/gen-StdAliases/mkaliases.py

@@ -0,0 +1,111 @@
+#! /usr/bin/env python2.7
+#
+# Alexander Shiryaev, 2012.10
+
+import sys
+import string
+
+def loadMap (fh):
+	r = {}
+	fix = {}
+	rfix = {}
+	ident = 0
+	while True:
+		line = fh.readline()
+		if line == '':
+			break
+		line = line.strip()
+		if (len(line) > 0) and (line[0] != '#'):
+			t, fs = string.split(line, ':', maxsplit=1)
+			t = t.rstrip()
+			fs = fs.lstrip()
+			fs = fs.split()
+			for f in fs:
+				assert not r.has_key(f)
+				x = fix.get(t)
+				if x == None:
+					x = ident
+					ident = ident + 1
+					fix[t] = x
+					rfix[x] = t
+				r[f] = x
+	return r, rfix
+
+def mkTree (m):
+	r = {}
+	for f, t in m.iteritems():
+		n = r
+		i = 0
+		while i < len(f):
+			c = f[i]
+			n = n.setdefault(c, {})
+			i = i + 1
+		assert not n.has_key(0)
+		n[0] = t
+	return r
+
+def gen0 (t,level, n):
+	assert len(t) > 0
+
+	r = []
+
+	if len(t) == 1:
+		if t.has_key(0):
+			r.append('%sIF s[%d] = 0X THEN x := %d END' % ('\t'*n, level, t[0]))
+		else:
+			k = t.keys()[0]
+			r.append("%sIF s[%d] = '%c' THEN" % ('\t'*n, level, k))
+			r.append(gen0(t[k], level+1, n+1))
+			r.append("%sEND" % ('\t'*n))
+	else:
+		r.append("%sCASE s[%d] OF" % ('\t'*n, level))
+		for k, v in t.iteritems():
+			if k != 0:
+				r.append("%s| '%c':" % ('\t'*n, k))
+				r.append(gen0(v, level+1, n+1))
+			else:
+				r.append('%s| 0X: x := %d' % ('\t'*n, v))
+		r.append("%sELSE END" % ('\t'*n,))
+
+	return '\n'.join(r)
+
+def gen (t, rfix):
+	fixS = []
+	for k, v in rfix.iteritems():
+		fixS.append('\t| %d: r := modPrefix + "%s"' % (k, string.replace(v.lower(), '-', '_')))
+
+	return """MODULE EncStdAliases;
+
+(* Generated automatically *)
+
+CONST
+	modPrefix = "EncStdMap_";
+
+PROCEDURE GetModName* (s: ARRAY OF CHAR; OUT r: ARRAY OF CHAR; OUT ok: BOOLEAN);
+	VAR x: INTEGER;
+BEGIN
+	x := 0;
+	WHILE (x < LEN(s)) & (s[x] # 0X) DO
+		IF (s[x] >= 'a') & (s[x] <= 'z') THEN
+			s[x] := CHR(ORD(s[x]) - ORD('a') + ORD('A'))
+		END;
+		INC(x)
+	END;
+
+	x := -1;
+%s;
+
+	ok := TRUE;
+	CASE x OF -1: ok := FALSE
+%s
+	END
+END GetModName;
+
+END EncStdAliases.""" % (gen0(t, 0, 1), '\n'.join(fixS))
+
+def main ():
+	m, rfix = loadMap(sys.stdin)
+	sys.stdout.write(gen(mkTree(m), rfix))
+
+if __name__ == '__main__':
+	main()

+ 1 - 0
README

@@ -108,6 +108,7 @@ Files:
 			Interp.odc: console interpreter
 			Compiler.odc: console interface to Dev compiler
 			Log.odc: Log.Hook console implementation
+		Enc: encodings conversion subsystem
 
 		{OpenBSD,Linux}/libBB.so: compiled and linked shared library to run BlackBox
 		{OpenBSD,Linux}/libBB0.so: compiled and linked shared library to run simple development interpreter