prasb commited on
Commit
d85f99d
·
verified ·
1 Parent(s): 4b21605

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +3 -0
  2. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/__init__.py +169 -0
  3. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/aliases.py +553 -0
  4. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/ascii.py +50 -0
  5. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/base64_codec.py +55 -0
  6. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/big5.py +39 -0
  7. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/big5hkscs.py +39 -0
  8. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/bz2_codec.py +78 -0
  9. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/charmap.py +69 -0
  10. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp037.py +307 -0
  11. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1026.py +307 -0
  12. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1250.py +307 -0
  13. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1251.py +307 -0
  14. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1255.py +307 -0
  15. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1257.py +307 -0
  16. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1258.py +307 -0
  17. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp424.py +307 -0
  18. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp437.py +698 -0
  19. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp500.py +307 -0
  20. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp720.py +309 -0
  21. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp737.py +698 -0
  22. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp775.py +697 -0
  23. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp850.py +698 -0
  24. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp852.py +698 -0
  25. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp855.py +698 -0
  26. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp856.py +307 -0
  27. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp860.py +698 -0
  28. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp861.py +698 -0
  29. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp863.py +698 -0
  30. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp866.py +698 -0
  31. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp869.py +689 -0
  32. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp874.py +307 -0
  33. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp875.py +307 -0
  34. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp950.py +39 -0
  35. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jisx0213.py +39 -0
  36. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_kr.py +39 -0
  37. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gb2312.py +39 -0
  38. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gbk.py +39 -0
  39. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hex_codec.py +55 -0
  40. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_2.py +39 -0
  41. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_2004.py +39 -0
  42. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_ext.py +39 -0
  43. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_1.py +307 -0
  44. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_10.py +307 -0
  45. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_11.py +307 -0
  46. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_13.py +307 -0
  47. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_15.py +307 -0
  48. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_16.py +307 -0
  49. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_3.py +307 -0
  50. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_4.py +307 -0
.gitattributes CHANGED
@@ -162,3 +162,6 @@ my_container_sandbox/workspace/anaconda3/pkgs/chardet-4.0.0-py39h06a4308_1003.co
162
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.14.6-py39h400218f_0.conda filter=lfs diff=lfs merge=lfs -text
163
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.13-h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
164
  my_container_sandbox/workspace/anaconda3/lib/libreadline.a filter=lfs diff=lfs merge=lfs -text
 
 
 
 
162
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.14.6-py39h400218f_0.conda filter=lfs diff=lfs merge=lfs -text
163
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.13-h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
164
  my_container_sandbox/workspace/anaconda3/lib/libreadline.a filter=lfs diff=lfs merge=lfs -text
165
+ my_container_sandbox/workspace/anaconda3/pkgs/urllib3-1.26.6-pyhd3eb1b0_1.conda filter=lfs diff=lfs merge=lfs -text
166
+ my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.11-h7b6447c_3.conda filter=lfs diff=lfs merge=lfs -text
167
+ my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.16.0-py38h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/__init__.py ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Standard "encodings" Package
2
+
3
+ Standard Python encoding modules are stored in this package
4
+ directory.
5
+
6
+ Codec modules must have names corresponding to normalized encoding
7
+ names as defined in the normalize_encoding() function below, e.g.
8
+ 'utf-8' must be implemented by the module 'utf_8.py'.
9
+
10
+ Each codec module must export the following interface:
11
+
12
+ * getregentry() -> codecs.CodecInfo object
13
+ The getregentry() API must return a CodecInfo object with encoder, decoder,
14
+ incrementalencoder, incrementaldecoder, streamwriter and streamreader
15
+ attributes which adhere to the Python Codec Interface Standard.
16
+
17
+ In addition, a module may optionally also define the following
18
+ APIs which are then used by the package's codec search function:
19
+
20
+ * getaliases() -> sequence of encoding name strings to use as aliases
21
+
22
+ Alias names returned by getaliases() must be normalized encoding
23
+ names as defined by normalize_encoding().
24
+
25
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
26
+
27
+ (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
28
+
29
+ """#"
30
+
31
+ import codecs
32
+ import sys
33
+ from . import aliases
34
+
35
+ _cache = {}
36
+ _unknown = '--unknown--'
37
+ _import_tail = ['*']
38
+ _aliases = aliases.aliases
39
+
40
+ class CodecRegistryError(LookupError, SystemError):
41
+ pass
42
+
43
+ def normalize_encoding(encoding):
44
+
45
+ """ Normalize an encoding name.
46
+
47
+ Normalization works as follows: all non-alphanumeric
48
+ characters except the dot used for Python package names are
49
+ collapsed and replaced with a single underscore, e.g. ' -;#'
50
+ becomes '_'. Leading and trailing underscores are removed.
51
+
52
+ Note that encoding names should be ASCII only.
53
+
54
+ """
55
+ if isinstance(encoding, bytes):
56
+ encoding = str(encoding, "ascii")
57
+
58
+ chars = []
59
+ punct = False
60
+ for c in encoding:
61
+ if c.isalnum() or c == '.':
62
+ if punct and chars:
63
+ chars.append('_')
64
+ chars.append(c)
65
+ punct = False
66
+ else:
67
+ punct = True
68
+ return ''.join(chars)
69
+
70
+ def search_function(encoding):
71
+
72
+ # Cache lookup
73
+ entry = _cache.get(encoding, _unknown)
74
+ if entry is not _unknown:
75
+ return entry
76
+
77
+ # Import the module:
78
+ #
79
+ # First try to find an alias for the normalized encoding
80
+ # name and lookup the module using the aliased name, then try to
81
+ # lookup the module using the standard import scheme, i.e. first
82
+ # try in the encodings package, then at top-level.
83
+ #
84
+ norm_encoding = normalize_encoding(encoding)
85
+ aliased_encoding = _aliases.get(norm_encoding) or \
86
+ _aliases.get(norm_encoding.replace('.', '_'))
87
+ if aliased_encoding is not None:
88
+ modnames = [aliased_encoding,
89
+ norm_encoding]
90
+ else:
91
+ modnames = [norm_encoding]
92
+ for modname in modnames:
93
+ if not modname or '.' in modname:
94
+ continue
95
+ try:
96
+ # Import is absolute to prevent the possibly malicious import of a
97
+ # module with side-effects that is not in the 'encodings' package.
98
+ mod = __import__('encodings.' + modname, fromlist=_import_tail,
99
+ level=0)
100
+ except ImportError:
101
+ # ImportError may occur because 'encodings.(modname)' does not exist,
102
+ # or because it imports a name that does not exist (see mbcs and oem)
103
+ pass
104
+ else:
105
+ break
106
+ else:
107
+ mod = None
108
+
109
+ try:
110
+ getregentry = mod.getregentry
111
+ except AttributeError:
112
+ # Not a codec module
113
+ mod = None
114
+
115
+ if mod is None:
116
+ # Cache misses
117
+ _cache[encoding] = None
118
+ return None
119
+
120
+ # Now ask the module for the registry entry
121
+ entry = getregentry()
122
+ if not isinstance(entry, codecs.CodecInfo):
123
+ if not 4 <= len(entry) <= 7:
124
+ raise CodecRegistryError('module "%s" (%s) failed to register'
125
+ % (mod.__name__, mod.__file__))
126
+ if not callable(entry[0]) or not callable(entry[1]) or \
127
+ (entry[2] is not None and not callable(entry[2])) or \
128
+ (entry[3] is not None and not callable(entry[3])) or \
129
+ (len(entry) > 4 and entry[4] is not None and not callable(entry[4])) or \
130
+ (len(entry) > 5 and entry[5] is not None and not callable(entry[5])):
131
+ raise CodecRegistryError('incompatible codecs in module "%s" (%s)'
132
+ % (mod.__name__, mod.__file__))
133
+ if len(entry)<7 or entry[6] is None:
134
+ entry += (None,)*(6-len(entry)) + (mod.__name__.split(".", 1)[1],)
135
+ entry = codecs.CodecInfo(*entry)
136
+
137
+ # Cache the codec registry entry
138
+ _cache[encoding] = entry
139
+
140
+ # Register its aliases (without overwriting previously registered
141
+ # aliases)
142
+ try:
143
+ codecaliases = mod.getaliases()
144
+ except AttributeError:
145
+ pass
146
+ else:
147
+ for alias in codecaliases:
148
+ if alias not in _aliases:
149
+ _aliases[alias] = modname
150
+
151
+ # Return the registry entry
152
+ return entry
153
+
154
+ # Register the search_function in the Python codec registry
155
+ codecs.register(search_function)
156
+
157
+ if sys.platform == 'win32':
158
+ def _alias_mbcs(encoding):
159
+ try:
160
+ import _winapi
161
+ ansi_code_page = "cp%s" % _winapi.GetACP()
162
+ if encoding == ansi_code_page:
163
+ import encodings.mbcs
164
+ return encodings.mbcs.getregentry()
165
+ except ImportError:
166
+ # Imports may fail while we are shutting down
167
+ pass
168
+
169
+ codecs.register(_alias_mbcs)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/aliases.py ADDED
@@ -0,0 +1,553 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Encoding Aliases Support
2
+
3
+ This module is used by the encodings package search function to
4
+ map encodings names to module names.
5
+
6
+ Note that the search function normalizes the encoding names before
7
+ doing the lookup, so the mapping will have to map normalized
8
+ encoding names to module names.
9
+
10
+ Contents:
11
+
12
+ The following aliases dictionary contains mappings of all IANA
13
+ character set names for which the Python core library provides
14
+ codecs. In addition to these, a few Python specific codec
15
+ aliases have also been added.
16
+
17
+ """
18
+ aliases = {
19
+
20
+ # Please keep this list sorted alphabetically by value !
21
+
22
+ # ascii codec
23
+ '646' : 'ascii',
24
+ 'ansi_x3.4_1968' : 'ascii',
25
+ 'ansi_x3_4_1968' : 'ascii', # some email headers use this non-standard name
26
+ 'ansi_x3.4_1986' : 'ascii',
27
+ 'cp367' : 'ascii',
28
+ 'csascii' : 'ascii',
29
+ 'ibm367' : 'ascii',
30
+ 'iso646_us' : 'ascii',
31
+ 'iso_646.irv_1991' : 'ascii',
32
+ 'iso_ir_6' : 'ascii',
33
+ 'us' : 'ascii',
34
+ 'us_ascii' : 'ascii',
35
+
36
+ # base64_codec codec
37
+ 'base64' : 'base64_codec',
38
+ 'base_64' : 'base64_codec',
39
+
40
+ # big5 codec
41
+ 'big5_tw' : 'big5',
42
+ 'csbig5' : 'big5',
43
+
44
+ # big5hkscs codec
45
+ 'big5_hkscs' : 'big5hkscs',
46
+ 'hkscs' : 'big5hkscs',
47
+
48
+ # bz2_codec codec
49
+ 'bz2' : 'bz2_codec',
50
+
51
+ # cp037 codec
52
+ '037' : 'cp037',
53
+ 'csibm037' : 'cp037',
54
+ 'ebcdic_cp_ca' : 'cp037',
55
+ 'ebcdic_cp_nl' : 'cp037',
56
+ 'ebcdic_cp_us' : 'cp037',
57
+ 'ebcdic_cp_wt' : 'cp037',
58
+ 'ibm037' : 'cp037',
59
+ 'ibm039' : 'cp037',
60
+
61
+ # cp1026 codec
62
+ '1026' : 'cp1026',
63
+ 'csibm1026' : 'cp1026',
64
+ 'ibm1026' : 'cp1026',
65
+
66
+ # cp1125 codec
67
+ '1125' : 'cp1125',
68
+ 'ibm1125' : 'cp1125',
69
+ 'cp866u' : 'cp1125',
70
+ 'ruscii' : 'cp1125',
71
+
72
+ # cp1140 codec
73
+ '1140' : 'cp1140',
74
+ 'ibm1140' : 'cp1140',
75
+
76
+ # cp1250 codec
77
+ '1250' : 'cp1250',
78
+ 'windows_1250' : 'cp1250',
79
+
80
+ # cp1251 codec
81
+ '1251' : 'cp1251',
82
+ 'windows_1251' : 'cp1251',
83
+
84
+ # cp1252 codec
85
+ '1252' : 'cp1252',
86
+ 'windows_1252' : 'cp1252',
87
+
88
+ # cp1253 codec
89
+ '1253' : 'cp1253',
90
+ 'windows_1253' : 'cp1253',
91
+
92
+ # cp1254 codec
93
+ '1254' : 'cp1254',
94
+ 'windows_1254' : 'cp1254',
95
+
96
+ # cp1255 codec
97
+ '1255' : 'cp1255',
98
+ 'windows_1255' : 'cp1255',
99
+
100
+ # cp1256 codec
101
+ '1256' : 'cp1256',
102
+ 'windows_1256' : 'cp1256',
103
+
104
+ # cp1257 codec
105
+ '1257' : 'cp1257',
106
+ 'windows_1257' : 'cp1257',
107
+
108
+ # cp1258 codec
109
+ '1258' : 'cp1258',
110
+ 'windows_1258' : 'cp1258',
111
+
112
+ # cp273 codec
113
+ '273' : 'cp273',
114
+ 'ibm273' : 'cp273',
115
+ 'csibm273' : 'cp273',
116
+
117
+ # cp424 codec
118
+ '424' : 'cp424',
119
+ 'csibm424' : 'cp424',
120
+ 'ebcdic_cp_he' : 'cp424',
121
+ 'ibm424' : 'cp424',
122
+
123
+ # cp437 codec
124
+ '437' : 'cp437',
125
+ 'cspc8codepage437' : 'cp437',
126
+ 'ibm437' : 'cp437',
127
+
128
+ # cp500 codec
129
+ '500' : 'cp500',
130
+ 'csibm500' : 'cp500',
131
+ 'ebcdic_cp_be' : 'cp500',
132
+ 'ebcdic_cp_ch' : 'cp500',
133
+ 'ibm500' : 'cp500',
134
+
135
+ # cp775 codec
136
+ '775' : 'cp775',
137
+ 'cspc775baltic' : 'cp775',
138
+ 'ibm775' : 'cp775',
139
+
140
+ # cp850 codec
141
+ '850' : 'cp850',
142
+ 'cspc850multilingual' : 'cp850',
143
+ 'ibm850' : 'cp850',
144
+
145
+ # cp852 codec
146
+ '852' : 'cp852',
147
+ 'cspcp852' : 'cp852',
148
+ 'ibm852' : 'cp852',
149
+
150
+ # cp855 codec
151
+ '855' : 'cp855',
152
+ 'csibm855' : 'cp855',
153
+ 'ibm855' : 'cp855',
154
+
155
+ # cp857 codec
156
+ '857' : 'cp857',
157
+ 'csibm857' : 'cp857',
158
+ 'ibm857' : 'cp857',
159
+
160
+ # cp858 codec
161
+ '858' : 'cp858',
162
+ 'csibm858' : 'cp858',
163
+ 'ibm858' : 'cp858',
164
+
165
+ # cp860 codec
166
+ '860' : 'cp860',
167
+ 'csibm860' : 'cp860',
168
+ 'ibm860' : 'cp860',
169
+
170
+ # cp861 codec
171
+ '861' : 'cp861',
172
+ 'cp_is' : 'cp861',
173
+ 'csibm861' : 'cp861',
174
+ 'ibm861' : 'cp861',
175
+
176
+ # cp862 codec
177
+ '862' : 'cp862',
178
+ 'cspc862latinhebrew' : 'cp862',
179
+ 'ibm862' : 'cp862',
180
+
181
+ # cp863 codec
182
+ '863' : 'cp863',
183
+ 'csibm863' : 'cp863',
184
+ 'ibm863' : 'cp863',
185
+
186
+ # cp864 codec
187
+ '864' : 'cp864',
188
+ 'csibm864' : 'cp864',
189
+ 'ibm864' : 'cp864',
190
+
191
+ # cp865 codec
192
+ '865' : 'cp865',
193
+ 'csibm865' : 'cp865',
194
+ 'ibm865' : 'cp865',
195
+
196
+ # cp866 codec
197
+ '866' : 'cp866',
198
+ 'csibm866' : 'cp866',
199
+ 'ibm866' : 'cp866',
200
+
201
+ # cp869 codec
202
+ '869' : 'cp869',
203
+ 'cp_gr' : 'cp869',
204
+ 'csibm869' : 'cp869',
205
+ 'ibm869' : 'cp869',
206
+
207
+ # cp932 codec
208
+ '932' : 'cp932',
209
+ 'ms932' : 'cp932',
210
+ 'mskanji' : 'cp932',
211
+ 'ms_kanji' : 'cp932',
212
+
213
+ # cp949 codec
214
+ '949' : 'cp949',
215
+ 'ms949' : 'cp949',
216
+ 'uhc' : 'cp949',
217
+
218
+ # cp950 codec
219
+ '950' : 'cp950',
220
+ 'ms950' : 'cp950',
221
+
222
+ # euc_jis_2004 codec
223
+ 'jisx0213' : 'euc_jis_2004',
224
+ 'eucjis2004' : 'euc_jis_2004',
225
+ 'euc_jis2004' : 'euc_jis_2004',
226
+
227
+ # euc_jisx0213 codec
228
+ 'eucjisx0213' : 'euc_jisx0213',
229
+
230
+ # euc_jp codec
231
+ 'eucjp' : 'euc_jp',
232
+ 'ujis' : 'euc_jp',
233
+ 'u_jis' : 'euc_jp',
234
+
235
+ # euc_kr codec
236
+ 'euckr' : 'euc_kr',
237
+ 'korean' : 'euc_kr',
238
+ 'ksc5601' : 'euc_kr',
239
+ 'ks_c_5601' : 'euc_kr',
240
+ 'ks_c_5601_1987' : 'euc_kr',
241
+ 'ksx1001' : 'euc_kr',
242
+ 'ks_x_1001' : 'euc_kr',
243
+
244
+ # gb18030 codec
245
+ 'gb18030_2000' : 'gb18030',
246
+
247
+ # gb2312 codec
248
+ 'chinese' : 'gb2312',
249
+ 'csiso58gb231280' : 'gb2312',
250
+ 'euc_cn' : 'gb2312',
251
+ 'euccn' : 'gb2312',
252
+ 'eucgb2312_cn' : 'gb2312',
253
+ 'gb2312_1980' : 'gb2312',
254
+ 'gb2312_80' : 'gb2312',
255
+ 'iso_ir_58' : 'gb2312',
256
+
257
+ # gbk codec
258
+ '936' : 'gbk',
259
+ 'cp936' : 'gbk',
260
+ 'ms936' : 'gbk',
261
+
262
+ # hex_codec codec
263
+ 'hex' : 'hex_codec',
264
+
265
+ # hp_roman8 codec
266
+ 'roman8' : 'hp_roman8',
267
+ 'r8' : 'hp_roman8',
268
+ 'csHPRoman8' : 'hp_roman8',
269
+ 'cp1051' : 'hp_roman8',
270
+ 'ibm1051' : 'hp_roman8',
271
+
272
+ # hz codec
273
+ 'hzgb' : 'hz',
274
+ 'hz_gb' : 'hz',
275
+ 'hz_gb_2312' : 'hz',
276
+
277
+ # iso2022_jp codec
278
+ 'csiso2022jp' : 'iso2022_jp',
279
+ 'iso2022jp' : 'iso2022_jp',
280
+ 'iso_2022_jp' : 'iso2022_jp',
281
+
282
+ # iso2022_jp_1 codec
283
+ 'iso2022jp_1' : 'iso2022_jp_1',
284
+ 'iso_2022_jp_1' : 'iso2022_jp_1',
285
+
286
+ # iso2022_jp_2 codec
287
+ 'iso2022jp_2' : 'iso2022_jp_2',
288
+ 'iso_2022_jp_2' : 'iso2022_jp_2',
289
+
290
+ # iso2022_jp_2004 codec
291
+ 'iso_2022_jp_2004' : 'iso2022_jp_2004',
292
+ 'iso2022jp_2004' : 'iso2022_jp_2004',
293
+
294
+ # iso2022_jp_3 codec
295
+ 'iso2022jp_3' : 'iso2022_jp_3',
296
+ 'iso_2022_jp_3' : 'iso2022_jp_3',
297
+
298
+ # iso2022_jp_ext codec
299
+ 'iso2022jp_ext' : 'iso2022_jp_ext',
300
+ 'iso_2022_jp_ext' : 'iso2022_jp_ext',
301
+
302
+ # iso2022_kr codec
303
+ 'csiso2022kr' : 'iso2022_kr',
304
+ 'iso2022kr' : 'iso2022_kr',
305
+ 'iso_2022_kr' : 'iso2022_kr',
306
+
307
+ # iso8859_10 codec
308
+ 'csisolatin6' : 'iso8859_10',
309
+ 'iso_8859_10' : 'iso8859_10',
310
+ 'iso_8859_10_1992' : 'iso8859_10',
311
+ 'iso_ir_157' : 'iso8859_10',
312
+ 'l6' : 'iso8859_10',
313
+ 'latin6' : 'iso8859_10',
314
+
315
+ # iso8859_11 codec
316
+ 'thai' : 'iso8859_11',
317
+ 'iso_8859_11' : 'iso8859_11',
318
+ 'iso_8859_11_2001' : 'iso8859_11',
319
+
320
+ # iso8859_13 codec
321
+ 'iso_8859_13' : 'iso8859_13',
322
+ 'l7' : 'iso8859_13',
323
+ 'latin7' : 'iso8859_13',
324
+
325
+ # iso8859_14 codec
326
+ 'iso_8859_14' : 'iso8859_14',
327
+ 'iso_8859_14_1998' : 'iso8859_14',
328
+ 'iso_celtic' : 'iso8859_14',
329
+ 'iso_ir_199' : 'iso8859_14',
330
+ 'l8' : 'iso8859_14',
331
+ 'latin8' : 'iso8859_14',
332
+
333
+ # iso8859_15 codec
334
+ 'iso_8859_15' : 'iso8859_15',
335
+ 'l9' : 'iso8859_15',
336
+ 'latin9' : 'iso8859_15',
337
+
338
+ # iso8859_16 codec
339
+ 'iso_8859_16' : 'iso8859_16',
340
+ 'iso_8859_16_2001' : 'iso8859_16',
341
+ 'iso_ir_226' : 'iso8859_16',
342
+ 'l10' : 'iso8859_16',
343
+ 'latin10' : 'iso8859_16',
344
+
345
+ # iso8859_2 codec
346
+ 'csisolatin2' : 'iso8859_2',
347
+ 'iso_8859_2' : 'iso8859_2',
348
+ 'iso_8859_2_1987' : 'iso8859_2',
349
+ 'iso_ir_101' : 'iso8859_2',
350
+ 'l2' : 'iso8859_2',
351
+ 'latin2' : 'iso8859_2',
352
+
353
+ # iso8859_3 codec
354
+ 'csisolatin3' : 'iso8859_3',
355
+ 'iso_8859_3' : 'iso8859_3',
356
+ 'iso_8859_3_1988' : 'iso8859_3',
357
+ 'iso_ir_109' : 'iso8859_3',
358
+ 'l3' : 'iso8859_3',
359
+ 'latin3' : 'iso8859_3',
360
+
361
+ # iso8859_4 codec
362
+ 'csisolatin4' : 'iso8859_4',
363
+ 'iso_8859_4' : 'iso8859_4',
364
+ 'iso_8859_4_1988' : 'iso8859_4',
365
+ 'iso_ir_110' : 'iso8859_4',
366
+ 'l4' : 'iso8859_4',
367
+ 'latin4' : 'iso8859_4',
368
+
369
+ # iso8859_5 codec
370
+ 'csisolatincyrillic' : 'iso8859_5',
371
+ 'cyrillic' : 'iso8859_5',
372
+ 'iso_8859_5' : 'iso8859_5',
373
+ 'iso_8859_5_1988' : 'iso8859_5',
374
+ 'iso_ir_144' : 'iso8859_5',
375
+
376
+ # iso8859_6 codec
377
+ 'arabic' : 'iso8859_6',
378
+ 'asmo_708' : 'iso8859_6',
379
+ 'csisolatinarabic' : 'iso8859_6',
380
+ 'ecma_114' : 'iso8859_6',
381
+ 'iso_8859_6' : 'iso8859_6',
382
+ 'iso_8859_6_1987' : 'iso8859_6',
383
+ 'iso_ir_127' : 'iso8859_6',
384
+
385
+ # iso8859_7 codec
386
+ 'csisolatingreek' : 'iso8859_7',
387
+ 'ecma_118' : 'iso8859_7',
388
+ 'elot_928' : 'iso8859_7',
389
+ 'greek' : 'iso8859_7',
390
+ 'greek8' : 'iso8859_7',
391
+ 'iso_8859_7' : 'iso8859_7',
392
+ 'iso_8859_7_1987' : 'iso8859_7',
393
+ 'iso_ir_126' : 'iso8859_7',
394
+
395
+ # iso8859_8 codec
396
+ 'csisolatinhebrew' : 'iso8859_8',
397
+ 'hebrew' : 'iso8859_8',
398
+ 'iso_8859_8' : 'iso8859_8',
399
+ 'iso_8859_8_1988' : 'iso8859_8',
400
+ 'iso_ir_138' : 'iso8859_8',
401
+
402
+ # iso8859_9 codec
403
+ 'csisolatin5' : 'iso8859_9',
404
+ 'iso_8859_9' : 'iso8859_9',
405
+ 'iso_8859_9_1989' : 'iso8859_9',
406
+ 'iso_ir_148' : 'iso8859_9',
407
+ 'l5' : 'iso8859_9',
408
+ 'latin5' : 'iso8859_9',
409
+
410
+ # johab codec
411
+ 'cp1361' : 'johab',
412
+ 'ms1361' : 'johab',
413
+
414
+ # koi8_r codec
415
+ 'cskoi8r' : 'koi8_r',
416
+
417
+ # kz1048 codec
418
+ 'kz_1048' : 'kz1048',
419
+ 'rk1048' : 'kz1048',
420
+ 'strk1048_2002' : 'kz1048',
421
+
422
+ # latin_1 codec
423
+ #
424
+ # Note that the latin_1 codec is implemented internally in C and a
425
+ # lot faster than the charmap codec iso8859_1 which uses the same
426
+ # encoding. This is why we discourage the use of the iso8859_1
427
+ # codec and alias it to latin_1 instead.
428
+ #
429
+ '8859' : 'latin_1',
430
+ 'cp819' : 'latin_1',
431
+ 'csisolatin1' : 'latin_1',
432
+ 'ibm819' : 'latin_1',
433
+ 'iso8859' : 'latin_1',
434
+ 'iso8859_1' : 'latin_1',
435
+ 'iso_8859_1' : 'latin_1',
436
+ 'iso_8859_1_1987' : 'latin_1',
437
+ 'iso_ir_100' : 'latin_1',
438
+ 'l1' : 'latin_1',
439
+ 'latin' : 'latin_1',
440
+ 'latin1' : 'latin_1',
441
+
442
+ # mac_cyrillic codec
443
+ 'maccyrillic' : 'mac_cyrillic',
444
+
445
+ # mac_greek codec
446
+ 'macgreek' : 'mac_greek',
447
+
448
+ # mac_iceland codec
449
+ 'maciceland' : 'mac_iceland',
450
+
451
+ # mac_latin2 codec
452
+ 'maccentraleurope' : 'mac_latin2',
453
+ 'maclatin2' : 'mac_latin2',
454
+
455
+ # mac_roman codec
456
+ 'macintosh' : 'mac_roman',
457
+ 'macroman' : 'mac_roman',
458
+
459
+ # mac_turkish codec
460
+ 'macturkish' : 'mac_turkish',
461
+
462
+ # mbcs codec
463
+ 'ansi' : 'mbcs',
464
+ 'dbcs' : 'mbcs',
465
+
466
+ # ptcp154 codec
467
+ 'csptcp154' : 'ptcp154',
468
+ 'pt154' : 'ptcp154',
469
+ 'cp154' : 'ptcp154',
470
+ 'cyrillic_asian' : 'ptcp154',
471
+
472
+ # quopri_codec codec
473
+ 'quopri' : 'quopri_codec',
474
+ 'quoted_printable' : 'quopri_codec',
475
+ 'quotedprintable' : 'quopri_codec',
476
+
477
+ # rot_13 codec
478
+ 'rot13' : 'rot_13',
479
+
480
+ # shift_jis codec
481
+ 'csshiftjis' : 'shift_jis',
482
+ 'shiftjis' : 'shift_jis',
483
+ 'sjis' : 'shift_jis',
484
+ 's_jis' : 'shift_jis',
485
+
486
+ # shift_jis_2004 codec
487
+ 'shiftjis2004' : 'shift_jis_2004',
488
+ 'sjis_2004' : 'shift_jis_2004',
489
+ 's_jis_2004' : 'shift_jis_2004',
490
+
491
+ # shift_jisx0213 codec
492
+ 'shiftjisx0213' : 'shift_jisx0213',
493
+ 'sjisx0213' : 'shift_jisx0213',
494
+ 's_jisx0213' : 'shift_jisx0213',
495
+
496
+ # tactis codec
497
+ 'tis260' : 'tactis',
498
+
499
+ # tis_620 codec
500
+ 'tis620' : 'tis_620',
501
+ 'tis_620_0' : 'tis_620',
502
+ 'tis_620_2529_0' : 'tis_620',
503
+ 'tis_620_2529_1' : 'tis_620',
504
+ 'iso_ir_166' : 'tis_620',
505
+
506
+ # utf_16 codec
507
+ 'u16' : 'utf_16',
508
+ 'utf16' : 'utf_16',
509
+
510
+ # utf_16_be codec
511
+ 'unicodebigunmarked' : 'utf_16_be',
512
+ 'utf_16be' : 'utf_16_be',
513
+
514
+ # utf_16_le codec
515
+ 'unicodelittleunmarked' : 'utf_16_le',
516
+ 'utf_16le' : 'utf_16_le',
517
+
518
+ # utf_32 codec
519
+ 'u32' : 'utf_32',
520
+ 'utf32' : 'utf_32',
521
+
522
+ # utf_32_be codec
523
+ 'utf_32be' : 'utf_32_be',
524
+
525
+ # utf_32_le codec
526
+ 'utf_32le' : 'utf_32_le',
527
+
528
+ # utf_7 codec
529
+ 'u7' : 'utf_7',
530
+ 'utf7' : 'utf_7',
531
+ 'unicode_1_1_utf_7' : 'utf_7',
532
+
533
+ # utf_8 codec
534
+ 'u8' : 'utf_8',
535
+ 'utf' : 'utf_8',
536
+ 'utf8' : 'utf_8',
537
+ 'utf8_ucs2' : 'utf_8',
538
+ 'utf8_ucs4' : 'utf_8',
539
+ 'cp65001' : 'utf_8',
540
+
541
+ # uu_codec codec
542
+ 'uu' : 'uu_codec',
543
+
544
+ # zlib_codec codec
545
+ 'zip' : 'zlib_codec',
546
+ 'zlib' : 'zlib_codec',
547
+
548
+ # temporary mac CJK aliases, will be replaced by proper codecs in 3.1
549
+ 'x_mac_japanese' : 'shift_jis',
550
+ 'x_mac_korean' : 'euc_kr',
551
+ 'x_mac_simp_chinese' : 'gb2312',
552
+ 'x_mac_trad_chinese' : 'big5',
553
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/ascii.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python 'ascii' Codec
2
+
3
+
4
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
5
+
6
+ (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
7
+
8
+ """
9
+ import codecs
10
+
11
+ ### Codec APIs
12
+
13
+ class Codec(codecs.Codec):
14
+
15
+ # Note: Binding these as C functions will result in the class not
16
+ # converting them to methods. This is intended.
17
+ encode = codecs.ascii_encode
18
+ decode = codecs.ascii_decode
19
+
20
+ class IncrementalEncoder(codecs.IncrementalEncoder):
21
+ def encode(self, input, final=False):
22
+ return codecs.ascii_encode(input, self.errors)[0]
23
+
24
+ class IncrementalDecoder(codecs.IncrementalDecoder):
25
+ def decode(self, input, final=False):
26
+ return codecs.ascii_decode(input, self.errors)[0]
27
+
28
+ class StreamWriter(Codec,codecs.StreamWriter):
29
+ pass
30
+
31
+ class StreamReader(Codec,codecs.StreamReader):
32
+ pass
33
+
34
+ class StreamConverter(StreamWriter,StreamReader):
35
+
36
+ encode = codecs.ascii_decode
37
+ decode = codecs.ascii_encode
38
+
39
+ ### encodings module API
40
+
41
+ def getregentry():
42
+ return codecs.CodecInfo(
43
+ name='ascii',
44
+ encode=Codec.encode,
45
+ decode=Codec.decode,
46
+ incrementalencoder=IncrementalEncoder,
47
+ incrementaldecoder=IncrementalDecoder,
48
+ streamwriter=StreamWriter,
49
+ streamreader=StreamReader,
50
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/base64_codec.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Python 'base64_codec' Codec - base64 content transfer encoding.
2
+
3
+ This codec de/encodes from bytes to bytes.
4
+
5
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
6
+ """
7
+
8
+ import codecs
9
+ import base64
10
+
11
+ ### Codec APIs
12
+
13
+ def base64_encode(input, errors='strict'):
14
+ assert errors == 'strict'
15
+ return (base64.encodebytes(input), len(input))
16
+
17
+ def base64_decode(input, errors='strict'):
18
+ assert errors == 'strict'
19
+ return (base64.decodebytes(input), len(input))
20
+
21
+ class Codec(codecs.Codec):
22
+ def encode(self, input, errors='strict'):
23
+ return base64_encode(input, errors)
24
+ def decode(self, input, errors='strict'):
25
+ return base64_decode(input, errors)
26
+
27
+ class IncrementalEncoder(codecs.IncrementalEncoder):
28
+ def encode(self, input, final=False):
29
+ assert self.errors == 'strict'
30
+ return base64.encodebytes(input)
31
+
32
+ class IncrementalDecoder(codecs.IncrementalDecoder):
33
+ def decode(self, input, final=False):
34
+ assert self.errors == 'strict'
35
+ return base64.decodebytes(input)
36
+
37
+ class StreamWriter(Codec, codecs.StreamWriter):
38
+ charbuffertype = bytes
39
+
40
+ class StreamReader(Codec, codecs.StreamReader):
41
+ charbuffertype = bytes
42
+
43
+ ### encodings module API
44
+
45
+ def getregentry():
46
+ return codecs.CodecInfo(
47
+ name='base64',
48
+ encode=base64_encode,
49
+ decode=base64_decode,
50
+ incrementalencoder=IncrementalEncoder,
51
+ incrementaldecoder=IncrementalDecoder,
52
+ streamwriter=StreamWriter,
53
+ streamreader=StreamReader,
54
+ _is_text_encoding=False,
55
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/big5.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # big5.py: Python Unicode Codec for BIG5
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_tw, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_tw.getcodec('big5')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='big5',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/big5hkscs.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # big5hkscs.py: Python Unicode Codec for BIG5HKSCS
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_hk, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_hk.getcodec('big5hkscs')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='big5hkscs',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/bz2_codec.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Python 'bz2_codec' Codec - bz2 compression encoding.
2
+
3
+ This codec de/encodes from bytes to bytes and is therefore usable with
4
+ bytes.transform() and bytes.untransform().
5
+
6
+ Adapted by Raymond Hettinger from zlib_codec.py which was written
7
+ by Marc-Andre Lemburg (mal@lemburg.com).
8
+ """
9
+
10
+ import codecs
11
+ import bz2 # this codec needs the optional bz2 module !
12
+
13
+ ### Codec APIs
14
+
15
+ def bz2_encode(input, errors='strict'):
16
+ assert errors == 'strict'
17
+ return (bz2.compress(input), len(input))
18
+
19
+ def bz2_decode(input, errors='strict'):
20
+ assert errors == 'strict'
21
+ return (bz2.decompress(input), len(input))
22
+
23
+ class Codec(codecs.Codec):
24
+ def encode(self, input, errors='strict'):
25
+ return bz2_encode(input, errors)
26
+ def decode(self, input, errors='strict'):
27
+ return bz2_decode(input, errors)
28
+
29
+ class IncrementalEncoder(codecs.IncrementalEncoder):
30
+ def __init__(self, errors='strict'):
31
+ assert errors == 'strict'
32
+ self.errors = errors
33
+ self.compressobj = bz2.BZ2Compressor()
34
+
35
+ def encode(self, input, final=False):
36
+ if final:
37
+ c = self.compressobj.compress(input)
38
+ return c + self.compressobj.flush()
39
+ else:
40
+ return self.compressobj.compress(input)
41
+
42
+ def reset(self):
43
+ self.compressobj = bz2.BZ2Compressor()
44
+
45
+ class IncrementalDecoder(codecs.IncrementalDecoder):
46
+ def __init__(self, errors='strict'):
47
+ assert errors == 'strict'
48
+ self.errors = errors
49
+ self.decompressobj = bz2.BZ2Decompressor()
50
+
51
+ def decode(self, input, final=False):
52
+ try:
53
+ return self.decompressobj.decompress(input)
54
+ except EOFError:
55
+ return ''
56
+
57
+ def reset(self):
58
+ self.decompressobj = bz2.BZ2Decompressor()
59
+
60
+ class StreamWriter(Codec, codecs.StreamWriter):
61
+ charbuffertype = bytes
62
+
63
+ class StreamReader(Codec, codecs.StreamReader):
64
+ charbuffertype = bytes
65
+
66
+ ### encodings module API
67
+
68
+ def getregentry():
69
+ return codecs.CodecInfo(
70
+ name="bz2",
71
+ encode=bz2_encode,
72
+ decode=bz2_decode,
73
+ incrementalencoder=IncrementalEncoder,
74
+ incrementaldecoder=IncrementalDecoder,
75
+ streamwriter=StreamWriter,
76
+ streamreader=StreamReader,
77
+ _is_text_encoding=False,
78
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/charmap.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Generic Python Character Mapping Codec.
2
+
3
+ Use this codec directly rather than through the automatic
4
+ conversion mechanisms supplied by unicode() and .encode().
5
+
6
+
7
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
8
+
9
+ (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
10
+
11
+ """#"
12
+
13
+ import codecs
14
+
15
+ ### Codec APIs
16
+
17
+ class Codec(codecs.Codec):
18
+
19
+ # Note: Binding these as C functions will result in the class not
20
+ # converting them to methods. This is intended.
21
+ encode = codecs.charmap_encode
22
+ decode = codecs.charmap_decode
23
+
24
+ class IncrementalEncoder(codecs.IncrementalEncoder):
25
+ def __init__(self, errors='strict', mapping=None):
26
+ codecs.IncrementalEncoder.__init__(self, errors)
27
+ self.mapping = mapping
28
+
29
+ def encode(self, input, final=False):
30
+ return codecs.charmap_encode(input, self.errors, self.mapping)[0]
31
+
32
+ class IncrementalDecoder(codecs.IncrementalDecoder):
33
+ def __init__(self, errors='strict', mapping=None):
34
+ codecs.IncrementalDecoder.__init__(self, errors)
35
+ self.mapping = mapping
36
+
37
+ def decode(self, input, final=False):
38
+ return codecs.charmap_decode(input, self.errors, self.mapping)[0]
39
+
40
+ class StreamWriter(Codec,codecs.StreamWriter):
41
+
42
+ def __init__(self,stream,errors='strict',mapping=None):
43
+ codecs.StreamWriter.__init__(self,stream,errors)
44
+ self.mapping = mapping
45
+
46
+ def encode(self,input,errors='strict'):
47
+ return Codec.encode(input,errors,self.mapping)
48
+
49
+ class StreamReader(Codec,codecs.StreamReader):
50
+
51
+ def __init__(self,stream,errors='strict',mapping=None):
52
+ codecs.StreamReader.__init__(self,stream,errors)
53
+ self.mapping = mapping
54
+
55
+ def decode(self,input,errors='strict'):
56
+ return Codec.decode(input,errors,self.mapping)
57
+
58
+ ### encodings module API
59
+
60
+ def getregentry():
61
+ return codecs.CodecInfo(
62
+ name='charmap',
63
+ encode=Codec.encode,
64
+ decode=Codec.decode,
65
+ incrementalencoder=IncrementalEncoder,
66
+ incrementaldecoder=IncrementalDecoder,
67
+ streamwriter=StreamWriter,
68
+ streamreader=StreamReader,
69
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp037.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp037 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp037',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> CONTROL
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> CONTROL
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> CONTROL
57
+ '\x8d' # 0x09 -> CONTROL
58
+ '\x8e' # 0x0A -> CONTROL
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> CONTROL
69
+ '\x85' # 0x15 -> CONTROL
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> CONTROL
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> CONTROL
75
+ '\x8f' # 0x1B -> CONTROL
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> CONTROL
81
+ '\x81' # 0x21 -> CONTROL
82
+ '\x82' # 0x22 -> CONTROL
83
+ '\x83' # 0x23 -> CONTROL
84
+ '\x84' # 0x24 -> CONTROL
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> CONTROL
89
+ '\x89' # 0x29 -> CONTROL
90
+ '\x8a' # 0x2A -> CONTROL
91
+ '\x8b' # 0x2B -> CONTROL
92
+ '\x8c' # 0x2C -> CONTROL
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> CONTROL
97
+ '\x91' # 0x31 -> CONTROL
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> CONTROL
100
+ '\x94' # 0x34 -> CONTROL
101
+ '\x95' # 0x35 -> CONTROL
102
+ '\x96' # 0x36 -> CONTROL
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> CONTROL
105
+ '\x99' # 0x39 -> CONTROL
106
+ '\x9a' # 0x3A -> CONTROL
107
+ '\x9b' # 0x3B -> CONTROL
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> CONTROL
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\xa0' # 0x41 -> NO-BREAK SPACE
114
+ '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
115
+ '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
116
+ '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
117
+ '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
118
+ '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
119
+ '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
120
+ '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
121
+ '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
122
+ '\xa2' # 0x4A -> CENT SIGN
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '|' # 0x4F -> VERTICAL LINE
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
130
+ '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
131
+ '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
132
+ '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
133
+ '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
134
+ '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
135
+ '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
136
+ '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
137
+ '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
138
+ '!' # 0x5A -> EXCLAMATION MARK
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '\xac' # 0x5F -> NOT SIGN
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
147
+ '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
148
+ '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
149
+ '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
150
+ '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
151
+ '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
152
+ '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
153
+ '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
154
+ '\xa6' # 0x6A -> BROKEN BAR
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
161
+ '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
162
+ '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
163
+ '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
164
+ '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
165
+ '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
166
+ '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
167
+ '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
168
+ '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '@' # 0x7C -> COMMERCIAL AT
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
189
+ '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
190
+ '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
203
+ '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
204
+ '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
207
+ '\xa4' # 0x9F -> CURRENCY SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '~' # 0xA1 -> TILDE
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
219
+ '\xbf' # 0xAB -> INVERTED QUESTION MARK
220
+ '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
221
+ '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
222
+ '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '^' # 0xB0 -> CIRCUMFLEX ACCENT
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '\xa7' # 0xB5 -> SECTION SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '[' # 0xBA -> LEFT SQUARE BRACKET
235
+ ']' # 0xBB -> RIGHT SQUARE BRACKET
236
+ '\xaf' # 0xBC -> MACRON
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '{' # 0xC0 -> LEFT CURLY BRACKET
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
252
+ '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
253
+ '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
254
+ '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
255
+ '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
256
+ '}' # 0xD0 -> RIGHT CURLY BRACKET
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
268
+ '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
269
+ '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
270
+ '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
271
+ '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
272
+ '\\' # 0xE0 -> REVERSE SOLIDUS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
284
+ '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
285
+ '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
300
+ '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
301
+ '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
302
+ '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
303
+ '\x9f' # 0xFF -> CONTROL
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1026.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1026 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1026',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> CONTROL
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> CONTROL
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> CONTROL
57
+ '\x8d' # 0x09 -> CONTROL
58
+ '\x8e' # 0x0A -> CONTROL
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> CONTROL
69
+ '\x85' # 0x15 -> CONTROL
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> CONTROL
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> CONTROL
75
+ '\x8f' # 0x1B -> CONTROL
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> CONTROL
81
+ '\x81' # 0x21 -> CONTROL
82
+ '\x82' # 0x22 -> CONTROL
83
+ '\x83' # 0x23 -> CONTROL
84
+ '\x84' # 0x24 -> CONTROL
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> CONTROL
89
+ '\x89' # 0x29 -> CONTROL
90
+ '\x8a' # 0x2A -> CONTROL
91
+ '\x8b' # 0x2B -> CONTROL
92
+ '\x8c' # 0x2C -> CONTROL
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> CONTROL
97
+ '\x91' # 0x31 -> CONTROL
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> CONTROL
100
+ '\x94' # 0x34 -> CONTROL
101
+ '\x95' # 0x35 -> CONTROL
102
+ '\x96' # 0x36 -> CONTROL
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> CONTROL
105
+ '\x99' # 0x39 -> CONTROL
106
+ '\x9a' # 0x3A -> CONTROL
107
+ '\x9b' # 0x3B -> CONTROL
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> CONTROL
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\xa0' # 0x41 -> NO-BREAK SPACE
114
+ '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
115
+ '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
116
+ '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
117
+ '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
118
+ '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
119
+ '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
120
+ '{' # 0x48 -> LEFT CURLY BRACKET
121
+ '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
122
+ '\xc7' # 0x4A -> LATIN CAPITAL LETTER C WITH CEDILLA
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '!' # 0x4F -> EXCLAMATION MARK
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
130
+ '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
131
+ '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
132
+ '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
133
+ '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
134
+ '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
135
+ '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
136
+ '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
137
+ '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
138
+ '\u011e' # 0x5A -> LATIN CAPITAL LETTER G WITH BREVE
139
+ '\u0130' # 0x5B -> LATIN CAPITAL LETTER I WITH DOT ABOVE
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '^' # 0x5F -> CIRCUMFLEX ACCENT
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
147
+ '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
148
+ '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
149
+ '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
150
+ '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
151
+ '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
152
+ '[' # 0x68 -> LEFT SQUARE BRACKET
153
+ '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
154
+ '\u015f' # 0x6A -> LATIN SMALL LETTER S WITH CEDILLA
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
161
+ '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
162
+ '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
163
+ '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
164
+ '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
165
+ '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
166
+ '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
167
+ '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
168
+ '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
169
+ '\u0131' # 0x79 -> LATIN SMALL LETTER DOTLESS I
170
+ ':' # 0x7A -> COLON
171
+ '\xd6' # 0x7B -> LATIN CAPITAL LETTER O WITH DIAERESIS
172
+ '\u015e' # 0x7C -> LATIN CAPITAL LETTER S WITH CEDILLA
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '\xdc' # 0x7F -> LATIN CAPITAL LETTER U WITH DIAERESIS
176
+ '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '}' # 0x8C -> RIGHT CURLY BRACKET
189
+ '`' # 0x8D -> GRAVE ACCENT
190
+ '\xa6' # 0x8E -> BROKEN BAR
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
203
+ '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
204
+ '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
207
+ '\xa4' # 0x9F -> CURRENCY SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '\xf6' # 0xA1 -> LATIN SMALL LETTER O WITH DIAERESIS
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
219
+ '\xbf' # 0xAB -> INVERTED QUESTION MARK
220
+ ']' # 0xAC -> RIGHT SQUARE BRACKET
221
+ '$' # 0xAD -> DOLLAR SIGN
222
+ '@' # 0xAE -> COMMERCIAL AT
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '\xa2' # 0xB0 -> CENT SIGN
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '\xa7' # 0xB5 -> SECTION SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '\xac' # 0xBA -> NOT SIGN
235
+ '|' # 0xBB -> VERTICAL LINE
236
+ '\xaf' # 0xBC -> MACRON
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '\xe7' # 0xC0 -> LATIN SMALL LETTER C WITH CEDILLA
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
252
+ '~' # 0xCC -> TILDE
253
+ '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
254
+ '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
255
+ '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
256
+ '\u011f' # 0xD0 -> LATIN SMALL LETTER G WITH BREVE
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
268
+ '\\' # 0xDC -> REVERSE SOLIDUS
269
+ '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
270
+ '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
271
+ '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
272
+ '\xfc' # 0xE0 -> LATIN SMALL LETTER U WITH DIAERESIS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
284
+ '#' # 0xEC -> NUMBER SIGN
285
+ '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
300
+ '"' # 0xFC -> QUOTATION MARK
301
+ '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
302
+ '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
303
+ '\x9f' # 0xFF -> CONTROL
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1250.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1250 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1250',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\ufffe' # 0x83 -> UNDEFINED
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\ufffe' # 0x88 -> UNDEFINED
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u015a' # 0x8C -> LATIN CAPITAL LETTER S WITH ACUTE
189
+ '\u0164' # 0x8D -> LATIN CAPITAL LETTER T WITH CARON
190
+ '\u017d' # 0x8E -> LATIN CAPITAL LETTER Z WITH CARON
191
+ '\u0179' # 0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\ufffe' # 0x98 -> UNDEFINED
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u015b' # 0x9C -> LATIN SMALL LETTER S WITH ACUTE
205
+ '\u0165' # 0x9D -> LATIN SMALL LETTER T WITH CARON
206
+ '\u017e' # 0x9E -> LATIN SMALL LETTER Z WITH CARON
207
+ '\u017a' # 0x9F -> LATIN SMALL LETTER Z WITH ACUTE
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u02c7' # 0xA1 -> CARON
210
+ '\u02d8' # 0xA2 -> BREVE
211
+ '\u0141' # 0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\u0104' # 0xA5 -> LATIN CAPITAL LETTER A WITH OGONEK
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u015e' # 0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\u017b' # 0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u02db' # 0xB2 -> OGONEK
227
+ '\u0142' # 0xB3 -> LATIN SMALL LETTER L WITH STROKE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\u0105' # 0xB9 -> LATIN SMALL LETTER A WITH OGONEK
234
+ '\u015f' # 0xBA -> LATIN SMALL LETTER S WITH CEDILLA
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u013d' # 0xBC -> LATIN CAPITAL LETTER L WITH CARON
237
+ '\u02dd' # 0xBD -> DOUBLE ACUTE ACCENT
238
+ '\u013e' # 0xBE -> LATIN SMALL LETTER L WITH CARON
239
+ '\u017c' # 0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
240
+ '\u0154' # 0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\u0139' # 0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
246
+ '\u0106' # 0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\u011a' # 0xCC -> LATIN CAPITAL LETTER E WITH CARON
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\u010e' # 0xCF -> LATIN CAPITAL LETTER D WITH CARON
256
+ '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
257
+ '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
258
+ '\u0147' # 0xD2 -> LATIN CAPITAL LETTER N WITH CARON
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\u0150' # 0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u0158' # 0xD8 -> LATIN CAPITAL LETTER R WITH CARON
265
+ '\u016e' # 0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\u0170' # 0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\u0162' # 0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\u0155' # 0xE0 -> LATIN SMALL LETTER R WITH ACUTE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\u013a' # 0xE5 -> LATIN SMALL LETTER L WITH ACUTE
278
+ '\u0107' # 0xE6 -> LATIN SMALL LETTER C WITH ACUTE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u011b' # 0xEC -> LATIN SMALL LETTER E WITH CARON
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\u010f' # 0xEF -> LATIN SMALL LETTER D WITH CARON
288
+ '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
289
+ '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
290
+ '\u0148' # 0xF2 -> LATIN SMALL LETTER N WITH CARON
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u0151' # 0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u0159' # 0xF8 -> LATIN SMALL LETTER R WITH CARON
297
+ '\u016f' # 0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\u0171' # 0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\u0163' # 0xFE -> LATIN SMALL LETTER T WITH CEDILLA
303
+ '\u02d9' # 0xFF -> DOT ABOVE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1251.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1251 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1251',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u0402' # 0x80 -> CYRILLIC CAPITAL LETTER DJE
177
+ '\u0403' # 0x81 -> CYRILLIC CAPITAL LETTER GJE
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0453' # 0x83 -> CYRILLIC SMALL LETTER GJE
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u20ac' # 0x88 -> EURO SIGN
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\u0409' # 0x8A -> CYRILLIC CAPITAL LETTER LJE
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u040a' # 0x8C -> CYRILLIC CAPITAL LETTER NJE
189
+ '\u040c' # 0x8D -> CYRILLIC CAPITAL LETTER KJE
190
+ '\u040b' # 0x8E -> CYRILLIC CAPITAL LETTER TSHE
191
+ '\u040f' # 0x8F -> CYRILLIC CAPITAL LETTER DZHE
192
+ '\u0452' # 0x90 -> CYRILLIC SMALL LETTER DJE
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\ufffe' # 0x98 -> UNDEFINED
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\u0459' # 0x9A -> CYRILLIC SMALL LETTER LJE
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u045a' # 0x9C -> CYRILLIC SMALL LETTER NJE
205
+ '\u045c' # 0x9D -> CYRILLIC SMALL LETTER KJE
206
+ '\u045b' # 0x9E -> CYRILLIC SMALL LETTER TSHE
207
+ '\u045f' # 0x9F -> CYRILLIC SMALL LETTER DZHE
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u040e' # 0xA1 -> CYRILLIC CAPITAL LETTER SHORT U
210
+ '\u045e' # 0xA2 -> CYRILLIC SMALL LETTER SHORT U
211
+ '\u0408' # 0xA3 -> CYRILLIC CAPITAL LETTER JE
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\u0490' # 0xA5 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\u0401' # 0xA8 -> CYRILLIC CAPITAL LETTER IO
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u0404' # 0xAA -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\u0407' # 0xAF -> CYRILLIC CAPITAL LETTER YI
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u0406' # 0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
227
+ '\u0456' # 0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
228
+ '\u0491' # 0xB4 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u0451' # 0xB8 -> CYRILLIC SMALL LETTER IO
233
+ '\u2116' # 0xB9 -> NUMERO SIGN
234
+ '\u0454' # 0xBA -> CYRILLIC SMALL LETTER UKRAINIAN IE
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u0458' # 0xBC -> CYRILLIC SMALL LETTER JE
237
+ '\u0405' # 0xBD -> CYRILLIC CAPITAL LETTER DZE
238
+ '\u0455' # 0xBE -> CYRILLIC SMALL LETTER DZE
239
+ '\u0457' # 0xBF -> CYRILLIC SMALL LETTER YI
240
+ '\u0410' # 0xC0 -> CYRILLIC CAPITAL LETTER A
241
+ '\u0411' # 0xC1 -> CYRILLIC CAPITAL LETTER BE
242
+ '\u0412' # 0xC2 -> CYRILLIC CAPITAL LETTER VE
243
+ '\u0413' # 0xC3 -> CYRILLIC CAPITAL LETTER GHE
244
+ '\u0414' # 0xC4 -> CYRILLIC CAPITAL LETTER DE
245
+ '\u0415' # 0xC5 -> CYRILLIC CAPITAL LETTER IE
246
+ '\u0416' # 0xC6 -> CYRILLIC CAPITAL LETTER ZHE
247
+ '\u0417' # 0xC7 -> CYRILLIC CAPITAL LETTER ZE
248
+ '\u0418' # 0xC8 -> CYRILLIC CAPITAL LETTER I
249
+ '\u0419' # 0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
250
+ '\u041a' # 0xCA -> CYRILLIC CAPITAL LETTER KA
251
+ '\u041b' # 0xCB -> CYRILLIC CAPITAL LETTER EL
252
+ '\u041c' # 0xCC -> CYRILLIC CAPITAL LETTER EM
253
+ '\u041d' # 0xCD -> CYRILLIC CAPITAL LETTER EN
254
+ '\u041e' # 0xCE -> CYRILLIC CAPITAL LETTER O
255
+ '\u041f' # 0xCF -> CYRILLIC CAPITAL LETTER PE
256
+ '\u0420' # 0xD0 -> CYRILLIC CAPITAL LETTER ER
257
+ '\u0421' # 0xD1 -> CYRILLIC CAPITAL LETTER ES
258
+ '\u0422' # 0xD2 -> CYRILLIC CAPITAL LETTER TE
259
+ '\u0423' # 0xD3 -> CYRILLIC CAPITAL LETTER U
260
+ '\u0424' # 0xD4 -> CYRILLIC CAPITAL LETTER EF
261
+ '\u0425' # 0xD5 -> CYRILLIC CAPITAL LETTER HA
262
+ '\u0426' # 0xD6 -> CYRILLIC CAPITAL LETTER TSE
263
+ '\u0427' # 0xD7 -> CYRILLIC CAPITAL LETTER CHE
264
+ '\u0428' # 0xD8 -> CYRILLIC CAPITAL LETTER SHA
265
+ '\u0429' # 0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
266
+ '\u042a' # 0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
267
+ '\u042b' # 0xDB -> CYRILLIC CAPITAL LETTER YERU
268
+ '\u042c' # 0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
269
+ '\u042d' # 0xDD -> CYRILLIC CAPITAL LETTER E
270
+ '\u042e' # 0xDE -> CYRILLIC CAPITAL LETTER YU
271
+ '\u042f' # 0xDF -> CYRILLIC CAPITAL LETTER YA
272
+ '\u0430' # 0xE0 -> CYRILLIC SMALL LETTER A
273
+ '\u0431' # 0xE1 -> CYRILLIC SMALL LETTER BE
274
+ '\u0432' # 0xE2 -> CYRILLIC SMALL LETTER VE
275
+ '\u0433' # 0xE3 -> CYRILLIC SMALL LETTER GHE
276
+ '\u0434' # 0xE4 -> CYRILLIC SMALL LETTER DE
277
+ '\u0435' # 0xE5 -> CYRILLIC SMALL LETTER IE
278
+ '\u0436' # 0xE6 -> CYRILLIC SMALL LETTER ZHE
279
+ '\u0437' # 0xE7 -> CYRILLIC SMALL LETTER ZE
280
+ '\u0438' # 0xE8 -> CYRILLIC SMALL LETTER I
281
+ '\u0439' # 0xE9 -> CYRILLIC SMALL LETTER SHORT I
282
+ '\u043a' # 0xEA -> CYRILLIC SMALL LETTER KA
283
+ '\u043b' # 0xEB -> CYRILLIC SMALL LETTER EL
284
+ '\u043c' # 0xEC -> CYRILLIC SMALL LETTER EM
285
+ '\u043d' # 0xED -> CYRILLIC SMALL LETTER EN
286
+ '\u043e' # 0xEE -> CYRILLIC SMALL LETTER O
287
+ '\u043f' # 0xEF -> CYRILLIC SMALL LETTER PE
288
+ '\u0440' # 0xF0 -> CYRILLIC SMALL LETTER ER
289
+ '\u0441' # 0xF1 -> CYRILLIC SMALL LETTER ES
290
+ '\u0442' # 0xF2 -> CYRILLIC SMALL LETTER TE
291
+ '\u0443' # 0xF3 -> CYRILLIC SMALL LETTER U
292
+ '\u0444' # 0xF4 -> CYRILLIC SMALL LETTER EF
293
+ '\u0445' # 0xF5 -> CYRILLIC SMALL LETTER HA
294
+ '\u0446' # 0xF6 -> CYRILLIC SMALL LETTER TSE
295
+ '\u0447' # 0xF7 -> CYRILLIC SMALL LETTER CHE
296
+ '\u0448' # 0xF8 -> CYRILLIC SMALL LETTER SHA
297
+ '\u0449' # 0xF9 -> CYRILLIC SMALL LETTER SHCHA
298
+ '\u044a' # 0xFA -> CYRILLIC SMALL LETTER HARD SIGN
299
+ '\u044b' # 0xFB -> CYRILLIC SMALL LETTER YERU
300
+ '\u044c' # 0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
301
+ '\u044d' # 0xFD -> CYRILLIC SMALL LETTER E
302
+ '\u044e' # 0xFE -> CYRILLIC SMALL LETTER YU
303
+ '\u044f' # 0xFF -> CYRILLIC SMALL LETTER YA
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1255.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1255 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1255.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1255',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\ufffe' # 0x8A -> UNDEFINED
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\ufffe' # 0x8C -> UNDEFINED
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\u02dc' # 0x98 -> SMALL TILDE
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\ufffe' # 0x9C -> UNDEFINED
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\ufffe' # 0x9F -> UNDEFINED
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\u20aa' # 0xA4 -> NEW SHEQEL SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xd7' # 0xAA -> MULTIPLICATION SIGN
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xf7' # 0xBA -> DIVISION SIGN
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\u05b0' # 0xC0 -> HEBREW POINT SHEVA
241
+ '\u05b1' # 0xC1 -> HEBREW POINT HATAF SEGOL
242
+ '\u05b2' # 0xC2 -> HEBREW POINT HATAF PATAH
243
+ '\u05b3' # 0xC3 -> HEBREW POINT HATAF QAMATS
244
+ '\u05b4' # 0xC4 -> HEBREW POINT HIRIQ
245
+ '\u05b5' # 0xC5 -> HEBREW POINT TSERE
246
+ '\u05b6' # 0xC6 -> HEBREW POINT SEGOL
247
+ '\u05b7' # 0xC7 -> HEBREW POINT PATAH
248
+ '\u05b8' # 0xC8 -> HEBREW POINT QAMATS
249
+ '\u05b9' # 0xC9 -> HEBREW POINT HOLAM
250
+ '\ufffe' # 0xCA -> UNDEFINED
251
+ '\u05bb' # 0xCB -> HEBREW POINT QUBUTS
252
+ '\u05bc' # 0xCC -> HEBREW POINT DAGESH OR MAPIQ
253
+ '\u05bd' # 0xCD -> HEBREW POINT METEG
254
+ '\u05be' # 0xCE -> HEBREW PUNCTUATION MAQAF
255
+ '\u05bf' # 0xCF -> HEBREW POINT RAFE
256
+ '\u05c0' # 0xD0 -> HEBREW PUNCTUATION PASEQ
257
+ '\u05c1' # 0xD1 -> HEBREW POINT SHIN DOT
258
+ '\u05c2' # 0xD2 -> HEBREW POINT SIN DOT
259
+ '\u05c3' # 0xD3 -> HEBREW PUNCTUATION SOF PASUQ
260
+ '\u05f0' # 0xD4 -> HEBREW LIGATURE YIDDISH DOUBLE VAV
261
+ '\u05f1' # 0xD5 -> HEBREW LIGATURE YIDDISH VAV YOD
262
+ '\u05f2' # 0xD6 -> HEBREW LIGATURE YIDDISH DOUBLE YOD
263
+ '\u05f3' # 0xD7 -> HEBREW PUNCTUATION GERESH
264
+ '\u05f4' # 0xD8 -> HEBREW PUNCTUATION GERSHAYIM
265
+ '\ufffe' # 0xD9 -> UNDEFINED
266
+ '\ufffe' # 0xDA -> UNDEFINED
267
+ '\ufffe' # 0xDB -> UNDEFINED
268
+ '\ufffe' # 0xDC -> UNDEFINED
269
+ '\ufffe' # 0xDD -> UNDEFINED
270
+ '\ufffe' # 0xDE -> UNDEFINED
271
+ '\ufffe' # 0xDF -> UNDEFINED
272
+ '\u05d0' # 0xE0 -> HEBREW LETTER ALEF
273
+ '\u05d1' # 0xE1 -> HEBREW LETTER BET
274
+ '\u05d2' # 0xE2 -> HEBREW LETTER GIMEL
275
+ '\u05d3' # 0xE3 -> HEBREW LETTER DALET
276
+ '\u05d4' # 0xE4 -> HEBREW LETTER HE
277
+ '\u05d5' # 0xE5 -> HEBREW LETTER VAV
278
+ '\u05d6' # 0xE6 -> HEBREW LETTER ZAYIN
279
+ '\u05d7' # 0xE7 -> HEBREW LETTER HET
280
+ '\u05d8' # 0xE8 -> HEBREW LETTER TET
281
+ '\u05d9' # 0xE9 -> HEBREW LETTER YOD
282
+ '\u05da' # 0xEA -> HEBREW LETTER FINAL KAF
283
+ '\u05db' # 0xEB -> HEBREW LETTER KAF
284
+ '\u05dc' # 0xEC -> HEBREW LETTER LAMED
285
+ '\u05dd' # 0xED -> HEBREW LETTER FINAL MEM
286
+ '\u05de' # 0xEE -> HEBREW LETTER MEM
287
+ '\u05df' # 0xEF -> HEBREW LETTER FINAL NUN
288
+ '\u05e0' # 0xF0 -> HEBREW LETTER NUN
289
+ '\u05e1' # 0xF1 -> HEBREW LETTER SAMEKH
290
+ '\u05e2' # 0xF2 -> HEBREW LETTER AYIN
291
+ '\u05e3' # 0xF3 -> HEBREW LETTER FINAL PE
292
+ '\u05e4' # 0xF4 -> HEBREW LETTER PE
293
+ '\u05e5' # 0xF5 -> HEBREW LETTER FINAL TSADI
294
+ '\u05e6' # 0xF6 -> HEBREW LETTER TSADI
295
+ '\u05e7' # 0xF7 -> HEBREW LETTER QOF
296
+ '\u05e8' # 0xF8 -> HEBREW LETTER RESH
297
+ '\u05e9' # 0xF9 -> HEBREW LETTER SHIN
298
+ '\u05ea' # 0xFA -> HEBREW LETTER TAV
299
+ '\ufffe' # 0xFB -> UNDEFINED
300
+ '\ufffe' # 0xFC -> UNDEFINED
301
+ '\u200e' # 0xFD -> LEFT-TO-RIGHT MARK
302
+ '\u200f' # 0xFE -> RIGHT-TO-LEFT MARK
303
+ '\ufffe' # 0xFF -> UNDEFINED
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1257.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1257 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1257',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\ufffe' # 0x83 -> UNDEFINED
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\ufffe' # 0x88 -> UNDEFINED
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\ufffe' # 0x8A -> UNDEFINED
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\ufffe' # 0x8C -> UNDEFINED
189
+ '\xa8' # 0x8D -> DIAERESIS
190
+ '\u02c7' # 0x8E -> CARON
191
+ '\xb8' # 0x8F -> CEDILLA
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\ufffe' # 0x98 -> UNDEFINED
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\ufffe' # 0x9C -> UNDEFINED
205
+ '\xaf' # 0x9D -> MACRON
206
+ '\u02db' # 0x9E -> OGONEK
207
+ '\ufffe' # 0x9F -> UNDEFINED
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\ufffe' # 0xA1 -> UNDEFINED
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\ufffe' # 0xA5 -> UNDEFINED
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xd8' # 0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u0156' # 0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xc6' # 0xAF -> LATIN CAPITAL LETTER AE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xf8' # 0xB8 -> LATIN SMALL LETTER O WITH STROKE
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\u0157' # 0xBA -> LATIN SMALL LETTER R WITH CEDILLA
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xe6' # 0xBF -> LATIN SMALL LETTER AE
240
+ '\u0104' # 0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
241
+ '\u012e' # 0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
242
+ '\u0100' # 0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
243
+ '\u0106' # 0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\u0118' # 0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
247
+ '\u0112' # 0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0179' # 0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
251
+ '\u0116' # 0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
252
+ '\u0122' # 0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
253
+ '\u0136' # 0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
254
+ '\u012a' # 0xCE -> LATIN CAPITAL LETTER I WITH MACRON
255
+ '\u013b' # 0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
256
+ '\u0160' # 0xD0 -> LATIN CAPITAL LETTER S WITH CARON
257
+ '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
258
+ '\u0145' # 0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\u014c' # 0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u0172' # 0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
265
+ '\u0141' # 0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
266
+ '\u015a' # 0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
267
+ '\u016a' # 0xDB -> LATIN CAPITAL LETTER U WITH MACRON
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u017b' # 0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
270
+ '\u017d' # 0xDE -> LATIN CAPITAL LETTER Z WITH CARON
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\u0105' # 0xE0 -> LATIN SMALL LETTER A WITH OGONEK
273
+ '\u012f' # 0xE1 -> LATIN SMALL LETTER I WITH OGONEK
274
+ '\u0101' # 0xE2 -> LATIN SMALL LETTER A WITH MACRON
275
+ '\u0107' # 0xE3 -> LATIN SMALL LETTER C WITH ACUTE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\u0119' # 0xE6 -> LATIN SMALL LETTER E WITH OGONEK
279
+ '\u0113' # 0xE7 -> LATIN SMALL LETTER E WITH MACRON
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u017a' # 0xEA -> LATIN SMALL LETTER Z WITH ACUTE
283
+ '\u0117' # 0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
284
+ '\u0123' # 0xEC -> LATIN SMALL LETTER G WITH CEDILLA
285
+ '\u0137' # 0xED -> LATIN SMALL LETTER K WITH CEDILLA
286
+ '\u012b' # 0xEE -> LATIN SMALL LETTER I WITH MACRON
287
+ '\u013c' # 0xEF -> LATIN SMALL LETTER L WITH CEDILLA
288
+ '\u0161' # 0xF0 -> LATIN SMALL LETTER S WITH CARON
289
+ '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
290
+ '\u0146' # 0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\u014d' # 0xF4 -> LATIN SMALL LETTER O WITH MACRON
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u0173' # 0xF8 -> LATIN SMALL LETTER U WITH OGONEK
297
+ '\u0142' # 0xF9 -> LATIN SMALL LETTER L WITH STROKE
298
+ '\u015b' # 0xFA -> LATIN SMALL LETTER S WITH ACUTE
299
+ '\u016b' # 0xFB -> LATIN SMALL LETTER U WITH MACRON
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u017c' # 0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
302
+ '\u017e' # 0xFE -> LATIN SMALL LETTER Z WITH CARON
303
+ '\u02d9' # 0xFF -> DOT ABOVE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1258.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1258 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1258',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\ufffe' # 0x8A -> UNDEFINED
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\u02dc' # 0x98 -> SMALL TILDE
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\u0300' # 0xCC -> COMBINING GRAVE ACCENT
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\u0309' # 0xD2 -> COMBINING HOOK ABOVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\u01a0' # 0xD5 -> LATIN CAPITAL LETTER O WITH HORN
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u01af' # 0xDD -> LATIN CAPITAL LETTER U WITH HORN
270
+ '\u0303' # 0xDE -> COMBINING TILDE
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u0301' # 0xEC -> COMBINING ACUTE ACCENT
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\u0323' # 0xF2 -> COMBINING DOT BELOW
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u01a1' # 0xF5 -> LATIN SMALL LETTER O WITH HORN
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u01b0' # 0xFD -> LATIN SMALL LETTER U WITH HORN
302
+ '\u20ab' # 0xFE -> DONG SIGN
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp424.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp424 generated from 'MAPPINGS/VENDORS/MISC/CP424.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp424',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> SELECT
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> REQUIRED NEW LINE
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> GRAPHIC ESCAPE
57
+ '\x8d' # 0x09 -> SUPERSCRIPT
58
+ '\x8e' # 0x0A -> REPEAT
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> RESTORE/ENABLE PRESENTATION
69
+ '\x85' # 0x15 -> NEW LINE
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> PROGRAM OPERATOR COMMUNICATION
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> UNIT BACK SPACE
75
+ '\x8f' # 0x1B -> CUSTOMER USE ONE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> DIGIT SELECT
81
+ '\x81' # 0x21 -> START OF SIGNIFICANCE
82
+ '\x82' # 0x22 -> FIELD SEPARATOR
83
+ '\x83' # 0x23 -> WORD UNDERSCORE
84
+ '\x84' # 0x24 -> BYPASS OR INHIBIT PRESENTATION
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> SET ATTRIBUTE
89
+ '\x89' # 0x29 -> START FIELD EXTENDED
90
+ '\x8a' # 0x2A -> SET MODE OR SWITCH
91
+ '\x8b' # 0x2B -> CONTROL SEQUENCE PREFIX
92
+ '\x8c' # 0x2C -> MODIFY FIELD ATTRIBUTE
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> <reserved>
97
+ '\x91' # 0x31 -> <reserved>
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> INDEX RETURN
100
+ '\x94' # 0x34 -> PRESENTATION POSITION
101
+ '\x95' # 0x35 -> TRANSPARENT
102
+ '\x96' # 0x36 -> NUMERIC BACKSPACE
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> SUBSCRIPT
105
+ '\x99' # 0x39 -> INDENT TABULATION
106
+ '\x9a' # 0x3A -> REVERSE FORM FEED
107
+ '\x9b' # 0x3B -> CUSTOMER USE THREE
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> <reserved>
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\u05d0' # 0x41 -> HEBREW LETTER ALEF
114
+ '\u05d1' # 0x42 -> HEBREW LETTER BET
115
+ '\u05d2' # 0x43 -> HEBREW LETTER GIMEL
116
+ '\u05d3' # 0x44 -> HEBREW LETTER DALET
117
+ '\u05d4' # 0x45 -> HEBREW LETTER HE
118
+ '\u05d5' # 0x46 -> HEBREW LETTER VAV
119
+ '\u05d6' # 0x47 -> HEBREW LETTER ZAYIN
120
+ '\u05d7' # 0x48 -> HEBREW LETTER HET
121
+ '\u05d8' # 0x49 -> HEBREW LETTER TET
122
+ '\xa2' # 0x4A -> CENT SIGN
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '|' # 0x4F -> VERTICAL LINE
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\u05d9' # 0x51 -> HEBREW LETTER YOD
130
+ '\u05da' # 0x52 -> HEBREW LETTER FINAL KAF
131
+ '\u05db' # 0x53 -> HEBREW LETTER KAF
132
+ '\u05dc' # 0x54 -> HEBREW LETTER LAMED
133
+ '\u05dd' # 0x55 -> HEBREW LETTER FINAL MEM
134
+ '\u05de' # 0x56 -> HEBREW LETTER MEM
135
+ '\u05df' # 0x57 -> HEBREW LETTER FINAL NUN
136
+ '\u05e0' # 0x58 -> HEBREW LETTER NUN
137
+ '\u05e1' # 0x59 -> HEBREW LETTER SAMEKH
138
+ '!' # 0x5A -> EXCLAMATION MARK
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '\xac' # 0x5F -> NOT SIGN
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\u05e2' # 0x62 -> HEBREW LETTER AYIN
147
+ '\u05e3' # 0x63 -> HEBREW LETTER FINAL PE
148
+ '\u05e4' # 0x64 -> HEBREW LETTER PE
149
+ '\u05e5' # 0x65 -> HEBREW LETTER FINAL TSADI
150
+ '\u05e6' # 0x66 -> HEBREW LETTER TSADI
151
+ '\u05e7' # 0x67 -> HEBREW LETTER QOF
152
+ '\u05e8' # 0x68 -> HEBREW LETTER RESH
153
+ '\u05e9' # 0x69 -> HEBREW LETTER SHIN
154
+ '\xa6' # 0x6A -> BROKEN BAR
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\ufffe' # 0x70 -> UNDEFINED
161
+ '\u05ea' # 0x71 -> HEBREW LETTER TAV
162
+ '\ufffe' # 0x72 -> UNDEFINED
163
+ '\ufffe' # 0x73 -> UNDEFINED
164
+ '\xa0' # 0x74 -> NO-BREAK SPACE
165
+ '\ufffe' # 0x75 -> UNDEFINED
166
+ '\ufffe' # 0x76 -> UNDEFINED
167
+ '\ufffe' # 0x77 -> UNDEFINED
168
+ '\u2017' # 0x78 -> DOUBLE LOW LINE
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '@' # 0x7C -> COMMERCIAL AT
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\ufffe' # 0x80 -> UNDEFINED
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '\ufffe' # 0x8C -> UNDEFINED
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\ufffe' # 0x9B -> UNDEFINED
204
+ '\ufffe' # 0x9C -> UNDEFINED
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\xa4' # 0x9F -> CURRENCY SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '~' # 0xA1 -> TILDE
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\ufffe' # 0xAA -> UNDEFINED
219
+ '\ufffe' # 0xAB -> UNDEFINED
220
+ '\ufffe' # 0xAC -> UNDEFINED
221
+ '\ufffe' # 0xAD -> UNDEFINED
222
+ '\ufffe' # 0xAE -> UNDEFINED
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '^' # 0xB0 -> CIRCUMFLEX ACCENT
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '\xa7' # 0xB5 -> SECTION SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '[' # 0xBA -> LEFT SQUARE BRACKET
235
+ ']' # 0xBB -> RIGHT SQUARE BRACKET
236
+ '\xaf' # 0xBC -> MACRON
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '{' # 0xC0 -> LEFT CURLY BRACKET
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\ufffe' # 0xCB -> UNDEFINED
252
+ '\ufffe' # 0xCC -> UNDEFINED
253
+ '\ufffe' # 0xCD -> UNDEFINED
254
+ '\ufffe' # 0xCE -> UNDEFINED
255
+ '\ufffe' # 0xCF -> UNDEFINED
256
+ '}' # 0xD0 -> RIGHT CURLY BRACKET
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\ufffe' # 0xDB -> UNDEFINED
268
+ '\ufffe' # 0xDC -> UNDEFINED
269
+ '\ufffe' # 0xDD -> UNDEFINED
270
+ '\ufffe' # 0xDE -> UNDEFINED
271
+ '\ufffe' # 0xDF -> UNDEFINED
272
+ '\\' # 0xE0 -> REVERSE SOLIDUS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\ufffe' # 0xEB -> UNDEFINED
284
+ '\ufffe' # 0xEC -> UNDEFINED
285
+ '\ufffe' # 0xED -> UNDEFINED
286
+ '\ufffe' # 0xEE -> UNDEFINED
287
+ '\ufffe' # 0xEF -> UNDEFINED
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\ufffe' # 0xFB -> UNDEFINED
300
+ '\ufffe' # 0xFC -> UNDEFINED
301
+ '\ufffe' # 0xFD -> UNDEFINED
302
+ '\ufffe' # 0xFE -> UNDEFINED
303
+ '\x9f' # 0xFF -> EIGHT ONES
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp437.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp437 generated from 'VENDORS/MICSFT/PC/CP437.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp437',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00a2, # CENT SIGN
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00a5, # YEN SIGN
78
+ 0x009e: 0x20a7, # PESETA SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x2310, # REVERSED NOT SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
327
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xa2' # 0x009b -> CENT SIGN
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xa5' # 0x009d -> YEN SIGN
339
+ '\u20a7' # 0x009e -> PESETA SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\u2310' # 0x00a9 -> REVERSED NOT SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a2: 0x009b, # CENT SIGN
573
+ 0x00a3: 0x009c, # POUND SIGN
574
+ 0x00a5: 0x009d, # YEN SIGN
575
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
576
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
577
+ 0x00ac: 0x00aa, # NOT SIGN
578
+ 0x00b0: 0x00f8, # DEGREE SIGN
579
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
580
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
581
+ 0x00b5: 0x00e6, # MICRO SIGN
582
+ 0x00b7: 0x00fa, # MIDDLE DOT
583
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
584
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
585
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
586
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
587
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
588
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
589
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
590
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
591
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
592
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
593
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
594
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
595
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
596
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
597
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
598
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
599
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
600
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
601
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
602
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
603
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
604
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
605
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
606
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
607
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
608
+ 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
609
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
610
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
611
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
612
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
613
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
614
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
615
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
616
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
617
+ 0x00f7: 0x00f6, # DIVISION SIGN
618
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
619
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
620
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
621
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
622
+ 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
623
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
624
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
625
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
626
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
627
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
628
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
629
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
630
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
631
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
632
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
633
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
634
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
635
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
636
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
637
+ 0x20a7: 0x009e, # PESETA SIGN
638
+ 0x2219: 0x00f9, # BULLET OPERATOR
639
+ 0x221a: 0x00fb, # SQUARE ROOT
640
+ 0x221e: 0x00ec, # INFINITY
641
+ 0x2229: 0x00ef, # INTERSECTION
642
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
643
+ 0x2261: 0x00f0, # IDENTICAL TO
644
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
645
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
646
+ 0x2310: 0x00a9, # REVERSED NOT SIGN
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp500.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp500 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp500',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> CONTROL
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> CONTROL
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> CONTROL
57
+ '\x8d' # 0x09 -> CONTROL
58
+ '\x8e' # 0x0A -> CONTROL
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> CONTROL
69
+ '\x85' # 0x15 -> CONTROL
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> CONTROL
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> CONTROL
75
+ '\x8f' # 0x1B -> CONTROL
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> CONTROL
81
+ '\x81' # 0x21 -> CONTROL
82
+ '\x82' # 0x22 -> CONTROL
83
+ '\x83' # 0x23 -> CONTROL
84
+ '\x84' # 0x24 -> CONTROL
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> CONTROL
89
+ '\x89' # 0x29 -> CONTROL
90
+ '\x8a' # 0x2A -> CONTROL
91
+ '\x8b' # 0x2B -> CONTROL
92
+ '\x8c' # 0x2C -> CONTROL
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> CONTROL
97
+ '\x91' # 0x31 -> CONTROL
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> CONTROL
100
+ '\x94' # 0x34 -> CONTROL
101
+ '\x95' # 0x35 -> CONTROL
102
+ '\x96' # 0x36 -> CONTROL
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> CONTROL
105
+ '\x99' # 0x39 -> CONTROL
106
+ '\x9a' # 0x3A -> CONTROL
107
+ '\x9b' # 0x3B -> CONTROL
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> CONTROL
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\xa0' # 0x41 -> NO-BREAK SPACE
114
+ '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
115
+ '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
116
+ '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
117
+ '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
118
+ '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
119
+ '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
120
+ '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
121
+ '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
122
+ '[' # 0x4A -> LEFT SQUARE BRACKET
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '!' # 0x4F -> EXCLAMATION MARK
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
130
+ '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
131
+ '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
132
+ '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
133
+ '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
134
+ '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
135
+ '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
136
+ '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
137
+ '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
138
+ ']' # 0x5A -> RIGHT SQUARE BRACKET
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '^' # 0x5F -> CIRCUMFLEX ACCENT
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
147
+ '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
148
+ '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
149
+ '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
150
+ '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
151
+ '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
152
+ '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
153
+ '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
154
+ '\xa6' # 0x6A -> BROKEN BAR
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
161
+ '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
162
+ '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
163
+ '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
164
+ '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
165
+ '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
166
+ '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
167
+ '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
168
+ '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '@' # 0x7C -> COMMERCIAL AT
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
189
+ '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
190
+ '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
203
+ '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
204
+ '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
207
+ '\xa4' # 0x9F -> CURRENCY SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '~' # 0xA1 -> TILDE
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
219
+ '\xbf' # 0xAB -> INVERTED QUESTION MARK
220
+ '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
221
+ '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
222
+ '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '\xa2' # 0xB0 -> CENT SIGN
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '\xa7' # 0xB5 -> SECTION SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '\xac' # 0xBA -> NOT SIGN
235
+ '|' # 0xBB -> VERTICAL LINE
236
+ '\xaf' # 0xBC -> MACRON
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '{' # 0xC0 -> LEFT CURLY BRACKET
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
252
+ '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
253
+ '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
254
+ '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
255
+ '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
256
+ '}' # 0xD0 -> RIGHT CURLY BRACKET
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
268
+ '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
269
+ '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
270
+ '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
271
+ '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
272
+ '\\' # 0xE0 -> REVERSE SOLIDUS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
284
+ '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
285
+ '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
300
+ '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
301
+ '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
302
+ '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
303
+ '\x9f' # 0xFF -> CONTROL
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp720.py ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Python Character Mapping Codec cp720 generated on Windows:
2
+ Vista 6.0.6002 SP2 Multiprocessor Free with the command:
3
+ python Tools/unicode/genwincodec.py 720
4
+ """#"
5
+
6
+
7
+ import codecs
8
+
9
+ ### Codec APIs
10
+
11
+ class Codec(codecs.Codec):
12
+
13
+ def encode(self,input,errors='strict'):
14
+ return codecs.charmap_encode(input,errors,encoding_table)
15
+
16
+ def decode(self,input,errors='strict'):
17
+ return codecs.charmap_decode(input,errors,decoding_table)
18
+
19
+ class IncrementalEncoder(codecs.IncrementalEncoder):
20
+ def encode(self, input, final=False):
21
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
22
+
23
+ class IncrementalDecoder(codecs.IncrementalDecoder):
24
+ def decode(self, input, final=False):
25
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
26
+
27
+ class StreamWriter(Codec,codecs.StreamWriter):
28
+ pass
29
+
30
+ class StreamReader(Codec,codecs.StreamReader):
31
+ pass
32
+
33
+ ### encodings module API
34
+
35
+ def getregentry():
36
+ return codecs.CodecInfo(
37
+ name='cp720',
38
+ encode=Codec().encode,
39
+ decode=Codec().decode,
40
+ incrementalencoder=IncrementalEncoder,
41
+ incrementaldecoder=IncrementalDecoder,
42
+ streamreader=StreamReader,
43
+ streamwriter=StreamWriter,
44
+ )
45
+
46
+
47
+ ### Decoding Table
48
+
49
+ decoding_table = (
50
+ '\x00' # 0x00 -> CONTROL CHARACTER
51
+ '\x01' # 0x01 -> CONTROL CHARACTER
52
+ '\x02' # 0x02 -> CONTROL CHARACTER
53
+ '\x03' # 0x03 -> CONTROL CHARACTER
54
+ '\x04' # 0x04 -> CONTROL CHARACTER
55
+ '\x05' # 0x05 -> CONTROL CHARACTER
56
+ '\x06' # 0x06 -> CONTROL CHARACTER
57
+ '\x07' # 0x07 -> CONTROL CHARACTER
58
+ '\x08' # 0x08 -> CONTROL CHARACTER
59
+ '\t' # 0x09 -> CONTROL CHARACTER
60
+ '\n' # 0x0A -> CONTROL CHARACTER
61
+ '\x0b' # 0x0B -> CONTROL CHARACTER
62
+ '\x0c' # 0x0C -> CONTROL CHARACTER
63
+ '\r' # 0x0D -> CONTROL CHARACTER
64
+ '\x0e' # 0x0E -> CONTROL CHARACTER
65
+ '\x0f' # 0x0F -> CONTROL CHARACTER
66
+ '\x10' # 0x10 -> CONTROL CHARACTER
67
+ '\x11' # 0x11 -> CONTROL CHARACTER
68
+ '\x12' # 0x12 -> CONTROL CHARACTER
69
+ '\x13' # 0x13 -> CONTROL CHARACTER
70
+ '\x14' # 0x14 -> CONTROL CHARACTER
71
+ '\x15' # 0x15 -> CONTROL CHARACTER
72
+ '\x16' # 0x16 -> CONTROL CHARACTER
73
+ '\x17' # 0x17 -> CONTROL CHARACTER
74
+ '\x18' # 0x18 -> CONTROL CHARACTER
75
+ '\x19' # 0x19 -> CONTROL CHARACTER
76
+ '\x1a' # 0x1A -> CONTROL CHARACTER
77
+ '\x1b' # 0x1B -> CONTROL CHARACTER
78
+ '\x1c' # 0x1C -> CONTROL CHARACTER
79
+ '\x1d' # 0x1D -> CONTROL CHARACTER
80
+ '\x1e' # 0x1E -> CONTROL CHARACTER
81
+ '\x1f' # 0x1F -> CONTROL CHARACTER
82
+ ' ' # 0x20 -> SPACE
83
+ '!' # 0x21 -> EXCLAMATION MARK
84
+ '"' # 0x22 -> QUOTATION MARK
85
+ '#' # 0x23 -> NUMBER SIGN
86
+ '$' # 0x24 -> DOLLAR SIGN
87
+ '%' # 0x25 -> PERCENT SIGN
88
+ '&' # 0x26 -> AMPERSAND
89
+ "'" # 0x27 -> APOSTROPHE
90
+ '(' # 0x28 -> LEFT PARENTHESIS
91
+ ')' # 0x29 -> RIGHT PARENTHESIS
92
+ '*' # 0x2A -> ASTERISK
93
+ '+' # 0x2B -> PLUS SIGN
94
+ ',' # 0x2C -> COMMA
95
+ '-' # 0x2D -> HYPHEN-MINUS
96
+ '.' # 0x2E -> FULL STOP
97
+ '/' # 0x2F -> SOLIDUS
98
+ '0' # 0x30 -> DIGIT ZERO
99
+ '1' # 0x31 -> DIGIT ONE
100
+ '2' # 0x32 -> DIGIT TWO
101
+ '3' # 0x33 -> DIGIT THREE
102
+ '4' # 0x34 -> DIGIT FOUR
103
+ '5' # 0x35 -> DIGIT FIVE
104
+ '6' # 0x36 -> DIGIT SIX
105
+ '7' # 0x37 -> DIGIT SEVEN
106
+ '8' # 0x38 -> DIGIT EIGHT
107
+ '9' # 0x39 -> DIGIT NINE
108
+ ':' # 0x3A -> COLON
109
+ ';' # 0x3B -> SEMICOLON
110
+ '<' # 0x3C -> LESS-THAN SIGN
111
+ '=' # 0x3D -> EQUALS SIGN
112
+ '>' # 0x3E -> GREATER-THAN SIGN
113
+ '?' # 0x3F -> QUESTION MARK
114
+ '@' # 0x40 -> COMMERCIAL AT
115
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
116
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
117
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
118
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
119
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
120
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
121
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
122
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
123
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
124
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
125
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
126
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
127
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
128
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
129
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
130
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
131
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
132
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
133
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
134
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
135
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
136
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
137
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
138
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
139
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
140
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
141
+ '[' # 0x5B -> LEFT SQUARE BRACKET
142
+ '\\' # 0x5C -> REVERSE SOLIDUS
143
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
144
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
145
+ '_' # 0x5F -> LOW LINE
146
+ '`' # 0x60 -> GRAVE ACCENT
147
+ 'a' # 0x61 -> LATIN SMALL LETTER A
148
+ 'b' # 0x62 -> LATIN SMALL LETTER B
149
+ 'c' # 0x63 -> LATIN SMALL LETTER C
150
+ 'd' # 0x64 -> LATIN SMALL LETTER D
151
+ 'e' # 0x65 -> LATIN SMALL LETTER E
152
+ 'f' # 0x66 -> LATIN SMALL LETTER F
153
+ 'g' # 0x67 -> LATIN SMALL LETTER G
154
+ 'h' # 0x68 -> LATIN SMALL LETTER H
155
+ 'i' # 0x69 -> LATIN SMALL LETTER I
156
+ 'j' # 0x6A -> LATIN SMALL LETTER J
157
+ 'k' # 0x6B -> LATIN SMALL LETTER K
158
+ 'l' # 0x6C -> LATIN SMALL LETTER L
159
+ 'm' # 0x6D -> LATIN SMALL LETTER M
160
+ 'n' # 0x6E -> LATIN SMALL LETTER N
161
+ 'o' # 0x6F -> LATIN SMALL LETTER O
162
+ 'p' # 0x70 -> LATIN SMALL LETTER P
163
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
164
+ 'r' # 0x72 -> LATIN SMALL LETTER R
165
+ 's' # 0x73 -> LATIN SMALL LETTER S
166
+ 't' # 0x74 -> LATIN SMALL LETTER T
167
+ 'u' # 0x75 -> LATIN SMALL LETTER U
168
+ 'v' # 0x76 -> LATIN SMALL LETTER V
169
+ 'w' # 0x77 -> LATIN SMALL LETTER W
170
+ 'x' # 0x78 -> LATIN SMALL LETTER X
171
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
172
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
173
+ '{' # 0x7B -> LEFT CURLY BRACKET
174
+ '|' # 0x7C -> VERTICAL LINE
175
+ '}' # 0x7D -> RIGHT CURLY BRACKET
176
+ '~' # 0x7E -> TILDE
177
+ '\x7f' # 0x7F -> CONTROL CHARACTER
178
+ '\x80'
179
+ '\x81'
180
+ '\xe9' # 0x82 -> LATIN SMALL LETTER E WITH ACUTE
181
+ '\xe2' # 0x83 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
182
+ '\x84'
183
+ '\xe0' # 0x85 -> LATIN SMALL LETTER A WITH GRAVE
184
+ '\x86'
185
+ '\xe7' # 0x87 -> LATIN SMALL LETTER C WITH CEDILLA
186
+ '\xea' # 0x88 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
187
+ '\xeb' # 0x89 -> LATIN SMALL LETTER E WITH DIAERESIS
188
+ '\xe8' # 0x8A -> LATIN SMALL LETTER E WITH GRAVE
189
+ '\xef' # 0x8B -> LATIN SMALL LETTER I WITH DIAERESIS
190
+ '\xee' # 0x8C -> LATIN SMALL LETTER I WITH CIRCUMFLEX
191
+ '\x8d'
192
+ '\x8e'
193
+ '\x8f'
194
+ '\x90'
195
+ '\u0651' # 0x91 -> ARABIC SHADDA
196
+ '\u0652' # 0x92 -> ARABIC SUKUN
197
+ '\xf4' # 0x93 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
198
+ '\xa4' # 0x94 -> CURRENCY SIGN
199
+ '\u0640' # 0x95 -> ARABIC TATWEEL
200
+ '\xfb' # 0x96 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
201
+ '\xf9' # 0x97 -> LATIN SMALL LETTER U WITH GRAVE
202
+ '\u0621' # 0x98 -> ARABIC LETTER HAMZA
203
+ '\u0622' # 0x99 -> ARABIC LETTER ALEF WITH MADDA ABOVE
204
+ '\u0623' # 0x9A -> ARABIC LETTER ALEF WITH HAMZA ABOVE
205
+ '\u0624' # 0x9B -> ARABIC LETTER WAW WITH HAMZA ABOVE
206
+ '\xa3' # 0x9C -> POUND SIGN
207
+ '\u0625' # 0x9D -> ARABIC LETTER ALEF WITH HAMZA BELOW
208
+ '\u0626' # 0x9E -> ARABIC LETTER YEH WITH HAMZA ABOVE
209
+ '\u0627' # 0x9F -> ARABIC LETTER ALEF
210
+ '\u0628' # 0xA0 -> ARABIC LETTER BEH
211
+ '\u0629' # 0xA1 -> ARABIC LETTER TEH MARBUTA
212
+ '\u062a' # 0xA2 -> ARABIC LETTER TEH
213
+ '\u062b' # 0xA3 -> ARABIC LETTER THEH
214
+ '\u062c' # 0xA4 -> ARABIC LETTER JEEM
215
+ '\u062d' # 0xA5 -> ARABIC LETTER HAH
216
+ '\u062e' # 0xA6 -> ARABIC LETTER KHAH
217
+ '\u062f' # 0xA7 -> ARABIC LETTER DAL
218
+ '\u0630' # 0xA8 -> ARABIC LETTER THAL
219
+ '\u0631' # 0xA9 -> ARABIC LETTER REH
220
+ '\u0632' # 0xAA -> ARABIC LETTER ZAIN
221
+ '\u0633' # 0xAB -> ARABIC LETTER SEEN
222
+ '\u0634' # 0xAC -> ARABIC LETTER SHEEN
223
+ '\u0635' # 0xAD -> ARABIC LETTER SAD
224
+ '\xab' # 0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
225
+ '\xbb' # 0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
226
+ '\u2591' # 0xB0 -> LIGHT SHADE
227
+ '\u2592' # 0xB1 -> MEDIUM SHADE
228
+ '\u2593' # 0xB2 -> DARK SHADE
229
+ '\u2502' # 0xB3 -> BOX DRAWINGS LIGHT VERTICAL
230
+ '\u2524' # 0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
231
+ '\u2561' # 0xB5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
232
+ '\u2562' # 0xB6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
233
+ '\u2556' # 0xB7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
234
+ '\u2555' # 0xB8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
235
+ '\u2563' # 0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
236
+ '\u2551' # 0xBA -> BOX DRAWINGS DOUBLE VERTICAL
237
+ '\u2557' # 0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
238
+ '\u255d' # 0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
239
+ '\u255c' # 0xBD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
240
+ '\u255b' # 0xBE -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
241
+ '\u2510' # 0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
242
+ '\u2514' # 0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
243
+ '\u2534' # 0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
244
+ '\u252c' # 0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
245
+ '\u251c' # 0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
246
+ '\u2500' # 0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
247
+ '\u253c' # 0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
248
+ '\u255e' # 0xC6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
249
+ '\u255f' # 0xC7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
250
+ '\u255a' # 0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
251
+ '\u2554' # 0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
252
+ '\u2569' # 0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
253
+ '\u2566' # 0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
254
+ '\u2560' # 0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
255
+ '\u2550' # 0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
256
+ '\u256c' # 0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
257
+ '\u2567' # 0xCF -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
258
+ '\u2568' # 0xD0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
259
+ '\u2564' # 0xD1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
260
+ '\u2565' # 0xD2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
261
+ '\u2559' # 0xD3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
262
+ '\u2558' # 0xD4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
263
+ '\u2552' # 0xD5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
264
+ '\u2553' # 0xD6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
265
+ '\u256b' # 0xD7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
266
+ '\u256a' # 0xD8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
267
+ '\u2518' # 0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
268
+ '\u250c' # 0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
269
+ '\u2588' # 0xDB -> FULL BLOCK
270
+ '\u2584' # 0xDC -> LOWER HALF BLOCK
271
+ '\u258c' # 0xDD -> LEFT HALF BLOCK
272
+ '\u2590' # 0xDE -> RIGHT HALF BLOCK
273
+ '\u2580' # 0xDF -> UPPER HALF BLOCK
274
+ '\u0636' # 0xE0 -> ARABIC LETTER DAD
275
+ '\u0637' # 0xE1 -> ARABIC LETTER TAH
276
+ '\u0638' # 0xE2 -> ARABIC LETTER ZAH
277
+ '\u0639' # 0xE3 -> ARABIC LETTER AIN
278
+ '\u063a' # 0xE4 -> ARABIC LETTER GHAIN
279
+ '\u0641' # 0xE5 -> ARABIC LETTER FEH
280
+ '\xb5' # 0xE6 -> MICRO SIGN
281
+ '\u0642' # 0xE7 -> ARABIC LETTER QAF
282
+ '\u0643' # 0xE8 -> ARABIC LETTER KAF
283
+ '\u0644' # 0xE9 -> ARABIC LETTER LAM
284
+ '\u0645' # 0xEA -> ARABIC LETTER MEEM
285
+ '\u0646' # 0xEB -> ARABIC LETTER NOON
286
+ '\u0647' # 0xEC -> ARABIC LETTER HEH
287
+ '\u0648' # 0xED -> ARABIC LETTER WAW
288
+ '\u0649' # 0xEE -> ARABIC LETTER ALEF MAKSURA
289
+ '\u064a' # 0xEF -> ARABIC LETTER YEH
290
+ '\u2261' # 0xF0 -> IDENTICAL TO
291
+ '\u064b' # 0xF1 -> ARABIC FATHATAN
292
+ '\u064c' # 0xF2 -> ARABIC DAMMATAN
293
+ '\u064d' # 0xF3 -> ARABIC KASRATAN
294
+ '\u064e' # 0xF4 -> ARABIC FATHA
295
+ '\u064f' # 0xF5 -> ARABIC DAMMA
296
+ '\u0650' # 0xF6 -> ARABIC KASRA
297
+ '\u2248' # 0xF7 -> ALMOST EQUAL TO
298
+ '\xb0' # 0xF8 -> DEGREE SIGN
299
+ '\u2219' # 0xF9 -> BULLET OPERATOR
300
+ '\xb7' # 0xFA -> MIDDLE DOT
301
+ '\u221a' # 0xFB -> SQUARE ROOT
302
+ '\u207f' # 0xFC -> SUPERSCRIPT LATIN SMALL LETTER N
303
+ '\xb2' # 0xFD -> SUPERSCRIPT TWO
304
+ '\u25a0' # 0xFE -> BLACK SQUARE
305
+ '\xa0' # 0xFF -> NO-BREAK SPACE
306
+ )
307
+
308
+ ### Encoding table
309
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp737.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp737 generated from 'VENDORS/MICSFT/PC/CP737.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp737',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x0391, # GREEK CAPITAL LETTER ALPHA
49
+ 0x0081: 0x0392, # GREEK CAPITAL LETTER BETA
50
+ 0x0082: 0x0393, # GREEK CAPITAL LETTER GAMMA
51
+ 0x0083: 0x0394, # GREEK CAPITAL LETTER DELTA
52
+ 0x0084: 0x0395, # GREEK CAPITAL LETTER EPSILON
53
+ 0x0085: 0x0396, # GREEK CAPITAL LETTER ZETA
54
+ 0x0086: 0x0397, # GREEK CAPITAL LETTER ETA
55
+ 0x0087: 0x0398, # GREEK CAPITAL LETTER THETA
56
+ 0x0088: 0x0399, # GREEK CAPITAL LETTER IOTA
57
+ 0x0089: 0x039a, # GREEK CAPITAL LETTER KAPPA
58
+ 0x008a: 0x039b, # GREEK CAPITAL LETTER LAMDA
59
+ 0x008b: 0x039c, # GREEK CAPITAL LETTER MU
60
+ 0x008c: 0x039d, # GREEK CAPITAL LETTER NU
61
+ 0x008d: 0x039e, # GREEK CAPITAL LETTER XI
62
+ 0x008e: 0x039f, # GREEK CAPITAL LETTER OMICRON
63
+ 0x008f: 0x03a0, # GREEK CAPITAL LETTER PI
64
+ 0x0090: 0x03a1, # GREEK CAPITAL LETTER RHO
65
+ 0x0091: 0x03a3, # GREEK CAPITAL LETTER SIGMA
66
+ 0x0092: 0x03a4, # GREEK CAPITAL LETTER TAU
67
+ 0x0093: 0x03a5, # GREEK CAPITAL LETTER UPSILON
68
+ 0x0094: 0x03a6, # GREEK CAPITAL LETTER PHI
69
+ 0x0095: 0x03a7, # GREEK CAPITAL LETTER CHI
70
+ 0x0096: 0x03a8, # GREEK CAPITAL LETTER PSI
71
+ 0x0097: 0x03a9, # GREEK CAPITAL LETTER OMEGA
72
+ 0x0098: 0x03b1, # GREEK SMALL LETTER ALPHA
73
+ 0x0099: 0x03b2, # GREEK SMALL LETTER BETA
74
+ 0x009a: 0x03b3, # GREEK SMALL LETTER GAMMA
75
+ 0x009b: 0x03b4, # GREEK SMALL LETTER DELTA
76
+ 0x009c: 0x03b5, # GREEK SMALL LETTER EPSILON
77
+ 0x009d: 0x03b6, # GREEK SMALL LETTER ZETA
78
+ 0x009e: 0x03b7, # GREEK SMALL LETTER ETA
79
+ 0x009f: 0x03b8, # GREEK SMALL LETTER THETA
80
+ 0x00a0: 0x03b9, # GREEK SMALL LETTER IOTA
81
+ 0x00a1: 0x03ba, # GREEK SMALL LETTER KAPPA
82
+ 0x00a2: 0x03bb, # GREEK SMALL LETTER LAMDA
83
+ 0x00a3: 0x03bc, # GREEK SMALL LETTER MU
84
+ 0x00a4: 0x03bd, # GREEK SMALL LETTER NU
85
+ 0x00a5: 0x03be, # GREEK SMALL LETTER XI
86
+ 0x00a6: 0x03bf, # GREEK SMALL LETTER OMICRON
87
+ 0x00a7: 0x03c0, # GREEK SMALL LETTER PI
88
+ 0x00a8: 0x03c1, # GREEK SMALL LETTER RHO
89
+ 0x00a9: 0x03c3, # GREEK SMALL LETTER SIGMA
90
+ 0x00aa: 0x03c2, # GREEK SMALL LETTER FINAL SIGMA
91
+ 0x00ab: 0x03c4, # GREEK SMALL LETTER TAU
92
+ 0x00ac: 0x03c5, # GREEK SMALL LETTER UPSILON
93
+ 0x00ad: 0x03c6, # GREEK SMALL LETTER PHI
94
+ 0x00ae: 0x03c7, # GREEK SMALL LETTER CHI
95
+ 0x00af: 0x03c8, # GREEK SMALL LETTER PSI
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03c9, # GREEK SMALL LETTER OMEGA
145
+ 0x00e1: 0x03ac, # GREEK SMALL LETTER ALPHA WITH TONOS
146
+ 0x00e2: 0x03ad, # GREEK SMALL LETTER EPSILON WITH TONOS
147
+ 0x00e3: 0x03ae, # GREEK SMALL LETTER ETA WITH TONOS
148
+ 0x00e4: 0x03ca, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
149
+ 0x00e5: 0x03af, # GREEK SMALL LETTER IOTA WITH TONOS
150
+ 0x00e6: 0x03cc, # GREEK SMALL LETTER OMICRON WITH TONOS
151
+ 0x00e7: 0x03cd, # GREEK SMALL LETTER UPSILON WITH TONOS
152
+ 0x00e8: 0x03cb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
153
+ 0x00e9: 0x03ce, # GREEK SMALL LETTER OMEGA WITH TONOS
154
+ 0x00ea: 0x0386, # GREEK CAPITAL LETTER ALPHA WITH TONOS
155
+ 0x00eb: 0x0388, # GREEK CAPITAL LETTER EPSILON WITH TONOS
156
+ 0x00ec: 0x0389, # GREEK CAPITAL LETTER ETA WITH TONOS
157
+ 0x00ed: 0x038a, # GREEK CAPITAL LETTER IOTA WITH TONOS
158
+ 0x00ee: 0x038c, # GREEK CAPITAL LETTER OMICRON WITH TONOS
159
+ 0x00ef: 0x038e, # GREEK CAPITAL LETTER UPSILON WITH TONOS
160
+ 0x00f0: 0x038f, # GREEK CAPITAL LETTER OMEGA WITH TONOS
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x03aa, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
165
+ 0x00f5: 0x03ab, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\u0391' # 0x0080 -> GREEK CAPITAL LETTER ALPHA
310
+ '\u0392' # 0x0081 -> GREEK CAPITAL LETTER BETA
311
+ '\u0393' # 0x0082 -> GREEK CAPITAL LETTER GAMMA
312
+ '\u0394' # 0x0083 -> GREEK CAPITAL LETTER DELTA
313
+ '\u0395' # 0x0084 -> GREEK CAPITAL LETTER EPSILON
314
+ '\u0396' # 0x0085 -> GREEK CAPITAL LETTER ZETA
315
+ '\u0397' # 0x0086 -> GREEK CAPITAL LETTER ETA
316
+ '\u0398' # 0x0087 -> GREEK CAPITAL LETTER THETA
317
+ '\u0399' # 0x0088 -> GREEK CAPITAL LETTER IOTA
318
+ '\u039a' # 0x0089 -> GREEK CAPITAL LETTER KAPPA
319
+ '\u039b' # 0x008a -> GREEK CAPITAL LETTER LAMDA
320
+ '\u039c' # 0x008b -> GREEK CAPITAL LETTER MU
321
+ '\u039d' # 0x008c -> GREEK CAPITAL LETTER NU
322
+ '\u039e' # 0x008d -> GREEK CAPITAL LETTER XI
323
+ '\u039f' # 0x008e -> GREEK CAPITAL LETTER OMICRON
324
+ '\u03a0' # 0x008f -> GREEK CAPITAL LETTER PI
325
+ '\u03a1' # 0x0090 -> GREEK CAPITAL LETTER RHO
326
+ '\u03a3' # 0x0091 -> GREEK CAPITAL LETTER SIGMA
327
+ '\u03a4' # 0x0092 -> GREEK CAPITAL LETTER TAU
328
+ '\u03a5' # 0x0093 -> GREEK CAPITAL LETTER UPSILON
329
+ '\u03a6' # 0x0094 -> GREEK CAPITAL LETTER PHI
330
+ '\u03a7' # 0x0095 -> GREEK CAPITAL LETTER CHI
331
+ '\u03a8' # 0x0096 -> GREEK CAPITAL LETTER PSI
332
+ '\u03a9' # 0x0097 -> GREEK CAPITAL LETTER OMEGA
333
+ '\u03b1' # 0x0098 -> GREEK SMALL LETTER ALPHA
334
+ '\u03b2' # 0x0099 -> GREEK SMALL LETTER BETA
335
+ '\u03b3' # 0x009a -> GREEK SMALL LETTER GAMMA
336
+ '\u03b4' # 0x009b -> GREEK SMALL LETTER DELTA
337
+ '\u03b5' # 0x009c -> GREEK SMALL LETTER EPSILON
338
+ '\u03b6' # 0x009d -> GREEK SMALL LETTER ZETA
339
+ '\u03b7' # 0x009e -> GREEK SMALL LETTER ETA
340
+ '\u03b8' # 0x009f -> GREEK SMALL LETTER THETA
341
+ '\u03b9' # 0x00a0 -> GREEK SMALL LETTER IOTA
342
+ '\u03ba' # 0x00a1 -> GREEK SMALL LETTER KAPPA
343
+ '\u03bb' # 0x00a2 -> GREEK SMALL LETTER LAMDA
344
+ '\u03bc' # 0x00a3 -> GREEK SMALL LETTER MU
345
+ '\u03bd' # 0x00a4 -> GREEK SMALL LETTER NU
346
+ '\u03be' # 0x00a5 -> GREEK SMALL LETTER XI
347
+ '\u03bf' # 0x00a6 -> GREEK SMALL LETTER OMICRON
348
+ '\u03c0' # 0x00a7 -> GREEK SMALL LETTER PI
349
+ '\u03c1' # 0x00a8 -> GREEK SMALL LETTER RHO
350
+ '\u03c3' # 0x00a9 -> GREEK SMALL LETTER SIGMA
351
+ '\u03c2' # 0x00aa -> GREEK SMALL LETTER FINAL SIGMA
352
+ '\u03c4' # 0x00ab -> GREEK SMALL LETTER TAU
353
+ '\u03c5' # 0x00ac -> GREEK SMALL LETTER UPSILON
354
+ '\u03c6' # 0x00ad -> GREEK SMALL LETTER PHI
355
+ '\u03c7' # 0x00ae -> GREEK SMALL LETTER CHI
356
+ '\u03c8' # 0x00af -> GREEK SMALL LETTER PSI
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03c9' # 0x00e0 -> GREEK SMALL LETTER OMEGA
406
+ '\u03ac' # 0x00e1 -> GREEK SMALL LETTER ALPHA WITH TONOS
407
+ '\u03ad' # 0x00e2 -> GREEK SMALL LETTER EPSILON WITH TONOS
408
+ '\u03ae' # 0x00e3 -> GREEK SMALL LETTER ETA WITH TONOS
409
+ '\u03ca' # 0x00e4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
410
+ '\u03af' # 0x00e5 -> GREEK SMALL LETTER IOTA WITH TONOS
411
+ '\u03cc' # 0x00e6 -> GREEK SMALL LETTER OMICRON WITH TONOS
412
+ '\u03cd' # 0x00e7 -> GREEK SMALL LETTER UPSILON WITH TONOS
413
+ '\u03cb' # 0x00e8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
414
+ '\u03ce' # 0x00e9 -> GREEK SMALL LETTER OMEGA WITH TONOS
415
+ '\u0386' # 0x00ea -> GREEK CAPITAL LETTER ALPHA WITH TONOS
416
+ '\u0388' # 0x00eb -> GREEK CAPITAL LETTER EPSILON WITH TONOS
417
+ '\u0389' # 0x00ec -> GREEK CAPITAL LETTER ETA WITH TONOS
418
+ '\u038a' # 0x00ed -> GREEK CAPITAL LETTER IOTA WITH TONOS
419
+ '\u038c' # 0x00ee -> GREEK CAPITAL LETTER OMICRON WITH TONOS
420
+ '\u038e' # 0x00ef -> GREEK CAPITAL LETTER UPSILON WITH TONOS
421
+ '\u038f' # 0x00f0 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u03aa' # 0x00f4 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
426
+ '\u03ab' # 0x00f5 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00b0: 0x00f8, # DEGREE SIGN
572
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
573
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
574
+ 0x00b7: 0x00fa, # MIDDLE DOT
575
+ 0x00f7: 0x00f6, # DIVISION SIGN
576
+ 0x0386: 0x00ea, # GREEK CAPITAL LETTER ALPHA WITH TONOS
577
+ 0x0388: 0x00eb, # GREEK CAPITAL LETTER EPSILON WITH TONOS
578
+ 0x0389: 0x00ec, # GREEK CAPITAL LETTER ETA WITH TONOS
579
+ 0x038a: 0x00ed, # GREEK CAPITAL LETTER IOTA WITH TONOS
580
+ 0x038c: 0x00ee, # GREEK CAPITAL LETTER OMICRON WITH TONOS
581
+ 0x038e: 0x00ef, # GREEK CAPITAL LETTER UPSILON WITH TONOS
582
+ 0x038f: 0x00f0, # GREEK CAPITAL LETTER OMEGA WITH TONOS
583
+ 0x0391: 0x0080, # GREEK CAPITAL LETTER ALPHA
584
+ 0x0392: 0x0081, # GREEK CAPITAL LETTER BETA
585
+ 0x0393: 0x0082, # GREEK CAPITAL LETTER GAMMA
586
+ 0x0394: 0x0083, # GREEK CAPITAL LETTER DELTA
587
+ 0x0395: 0x0084, # GREEK CAPITAL LETTER EPSILON
588
+ 0x0396: 0x0085, # GREEK CAPITAL LETTER ZETA
589
+ 0x0397: 0x0086, # GREEK CAPITAL LETTER ETA
590
+ 0x0398: 0x0087, # GREEK CAPITAL LETTER THETA
591
+ 0x0399: 0x0088, # GREEK CAPITAL LETTER IOTA
592
+ 0x039a: 0x0089, # GREEK CAPITAL LETTER KAPPA
593
+ 0x039b: 0x008a, # GREEK CAPITAL LETTER LAMDA
594
+ 0x039c: 0x008b, # GREEK CAPITAL LETTER MU
595
+ 0x039d: 0x008c, # GREEK CAPITAL LETTER NU
596
+ 0x039e: 0x008d, # GREEK CAPITAL LETTER XI
597
+ 0x039f: 0x008e, # GREEK CAPITAL LETTER OMICRON
598
+ 0x03a0: 0x008f, # GREEK CAPITAL LETTER PI
599
+ 0x03a1: 0x0090, # GREEK CAPITAL LETTER RHO
600
+ 0x03a3: 0x0091, # GREEK CAPITAL LETTER SIGMA
601
+ 0x03a4: 0x0092, # GREEK CAPITAL LETTER TAU
602
+ 0x03a5: 0x0093, # GREEK CAPITAL LETTER UPSILON
603
+ 0x03a6: 0x0094, # GREEK CAPITAL LETTER PHI
604
+ 0x03a7: 0x0095, # GREEK CAPITAL LETTER CHI
605
+ 0x03a8: 0x0096, # GREEK CAPITAL LETTER PSI
606
+ 0x03a9: 0x0097, # GREEK CAPITAL LETTER OMEGA
607
+ 0x03aa: 0x00f4, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
608
+ 0x03ab: 0x00f5, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
609
+ 0x03ac: 0x00e1, # GREEK SMALL LETTER ALPHA WITH TONOS
610
+ 0x03ad: 0x00e2, # GREEK SMALL LETTER EPSILON WITH TONOS
611
+ 0x03ae: 0x00e3, # GREEK SMALL LETTER ETA WITH TONOS
612
+ 0x03af: 0x00e5, # GREEK SMALL LETTER IOTA WITH TONOS
613
+ 0x03b1: 0x0098, # GREEK SMALL LETTER ALPHA
614
+ 0x03b2: 0x0099, # GREEK SMALL LETTER BETA
615
+ 0x03b3: 0x009a, # GREEK SMALL LETTER GAMMA
616
+ 0x03b4: 0x009b, # GREEK SMALL LETTER DELTA
617
+ 0x03b5: 0x009c, # GREEK SMALL LETTER EPSILON
618
+ 0x03b6: 0x009d, # GREEK SMALL LETTER ZETA
619
+ 0x03b7: 0x009e, # GREEK SMALL LETTER ETA
620
+ 0x03b8: 0x009f, # GREEK SMALL LETTER THETA
621
+ 0x03b9: 0x00a0, # GREEK SMALL LETTER IOTA
622
+ 0x03ba: 0x00a1, # GREEK SMALL LETTER KAPPA
623
+ 0x03bb: 0x00a2, # GREEK SMALL LETTER LAMDA
624
+ 0x03bc: 0x00a3, # GREEK SMALL LETTER MU
625
+ 0x03bd: 0x00a4, # GREEK SMALL LETTER NU
626
+ 0x03be: 0x00a5, # GREEK SMALL LETTER XI
627
+ 0x03bf: 0x00a6, # GREEK SMALL LETTER OMICRON
628
+ 0x03c0: 0x00a7, # GREEK SMALL LETTER PI
629
+ 0x03c1: 0x00a8, # GREEK SMALL LETTER RHO
630
+ 0x03c2: 0x00aa, # GREEK SMALL LETTER FINAL SIGMA
631
+ 0x03c3: 0x00a9, # GREEK SMALL LETTER SIGMA
632
+ 0x03c4: 0x00ab, # GREEK SMALL LETTER TAU
633
+ 0x03c5: 0x00ac, # GREEK SMALL LETTER UPSILON
634
+ 0x03c6: 0x00ad, # GREEK SMALL LETTER PHI
635
+ 0x03c7: 0x00ae, # GREEK SMALL LETTER CHI
636
+ 0x03c8: 0x00af, # GREEK SMALL LETTER PSI
637
+ 0x03c9: 0x00e0, # GREEK SMALL LETTER OMEGA
638
+ 0x03ca: 0x00e4, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
639
+ 0x03cb: 0x00e8, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
640
+ 0x03cc: 0x00e6, # GREEK SMALL LETTER OMICRON WITH TONOS
641
+ 0x03cd: 0x00e7, # GREEK SMALL LETTER UPSILON WITH TONOS
642
+ 0x03ce: 0x00e9, # GREEK SMALL LETTER OMEGA WITH TONOS
643
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
644
+ 0x2219: 0x00f9, # BULLET OPERATOR
645
+ 0x221a: 0x00fb, # SQUARE ROOT
646
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
647
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
648
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp775.py ADDED
@@ -0,0 +1,697 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp775 generated from 'VENDORS/MICSFT/PC/CP775.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp775',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+ ### Decoding Map
44
+
45
+ decoding_map = codecs.make_identity_dict(range(256))
46
+ decoding_map.update({
47
+ 0x0080: 0x0106, # LATIN CAPITAL LETTER C WITH ACUTE
48
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
49
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
50
+ 0x0083: 0x0101, # LATIN SMALL LETTER A WITH MACRON
51
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
52
+ 0x0085: 0x0123, # LATIN SMALL LETTER G WITH CEDILLA
53
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
54
+ 0x0087: 0x0107, # LATIN SMALL LETTER C WITH ACUTE
55
+ 0x0088: 0x0142, # LATIN SMALL LETTER L WITH STROKE
56
+ 0x0089: 0x0113, # LATIN SMALL LETTER E WITH MACRON
57
+ 0x008a: 0x0156, # LATIN CAPITAL LETTER R WITH CEDILLA
58
+ 0x008b: 0x0157, # LATIN SMALL LETTER R WITH CEDILLA
59
+ 0x008c: 0x012b, # LATIN SMALL LETTER I WITH MACRON
60
+ 0x008d: 0x0179, # LATIN CAPITAL LETTER Z WITH ACUTE
61
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
62
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
63
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
64
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
65
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
66
+ 0x0093: 0x014d, # LATIN SMALL LETTER O WITH MACRON
67
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
68
+ 0x0095: 0x0122, # LATIN CAPITAL LETTER G WITH CEDILLA
69
+ 0x0096: 0x00a2, # CENT SIGN
70
+ 0x0097: 0x015a, # LATIN CAPITAL LETTER S WITH ACUTE
71
+ 0x0098: 0x015b, # LATIN SMALL LETTER S WITH ACUTE
72
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
73
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
74
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
75
+ 0x009c: 0x00a3, # POUND SIGN
76
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
77
+ 0x009e: 0x00d7, # MULTIPLICATION SIGN
78
+ 0x009f: 0x00a4, # CURRENCY SIGN
79
+ 0x00a0: 0x0100, # LATIN CAPITAL LETTER A WITH MACRON
80
+ 0x00a1: 0x012a, # LATIN CAPITAL LETTER I WITH MACRON
81
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
82
+ 0x00a3: 0x017b, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
83
+ 0x00a4: 0x017c, # LATIN SMALL LETTER Z WITH DOT ABOVE
84
+ 0x00a5: 0x017a, # LATIN SMALL LETTER Z WITH ACUTE
85
+ 0x00a6: 0x201d, # RIGHT DOUBLE QUOTATION MARK
86
+ 0x00a7: 0x00a6, # BROKEN BAR
87
+ 0x00a8: 0x00a9, # COPYRIGHT SIGN
88
+ 0x00a9: 0x00ae, # REGISTERED SIGN
89
+ 0x00aa: 0x00ac, # NOT SIGN
90
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
91
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
92
+ 0x00ad: 0x0141, # LATIN CAPITAL LETTER L WITH STROKE
93
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
94
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00b0: 0x2591, # LIGHT SHADE
96
+ 0x00b1: 0x2592, # MEDIUM SHADE
97
+ 0x00b2: 0x2593, # DARK SHADE
98
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
99
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
100
+ 0x00b5: 0x0104, # LATIN CAPITAL LETTER A WITH OGONEK
101
+ 0x00b6: 0x010c, # LATIN CAPITAL LETTER C WITH CARON
102
+ 0x00b7: 0x0118, # LATIN CAPITAL LETTER E WITH OGONEK
103
+ 0x00b8: 0x0116, # LATIN CAPITAL LETTER E WITH DOT ABOVE
104
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
105
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
106
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
107
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
108
+ 0x00bd: 0x012e, # LATIN CAPITAL LETTER I WITH OGONEK
109
+ 0x00be: 0x0160, # LATIN CAPITAL LETTER S WITH CARON
110
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
111
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
112
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
113
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
114
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
115
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
116
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
117
+ 0x00c6: 0x0172, # LATIN CAPITAL LETTER U WITH OGONEK
118
+ 0x00c7: 0x016a, # LATIN CAPITAL LETTER U WITH MACRON
119
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
120
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
121
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
122
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
123
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
124
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
125
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
126
+ 0x00cf: 0x017d, # LATIN CAPITAL LETTER Z WITH CARON
127
+ 0x00d0: 0x0105, # LATIN SMALL LETTER A WITH OGONEK
128
+ 0x00d1: 0x010d, # LATIN SMALL LETTER C WITH CARON
129
+ 0x00d2: 0x0119, # LATIN SMALL LETTER E WITH OGONEK
130
+ 0x00d3: 0x0117, # LATIN SMALL LETTER E WITH DOT ABOVE
131
+ 0x00d4: 0x012f, # LATIN SMALL LETTER I WITH OGONEK
132
+ 0x00d5: 0x0161, # LATIN SMALL LETTER S WITH CARON
133
+ 0x00d6: 0x0173, # LATIN SMALL LETTER U WITH OGONEK
134
+ 0x00d7: 0x016b, # LATIN SMALL LETTER U WITH MACRON
135
+ 0x00d8: 0x017e, # LATIN SMALL LETTER Z WITH CARON
136
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
137
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
138
+ 0x00db: 0x2588, # FULL BLOCK
139
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
140
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
141
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
142
+ 0x00df: 0x2580, # UPPER HALF BLOCK
143
+ 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
144
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S (GERMAN)
145
+ 0x00e2: 0x014c, # LATIN CAPITAL LETTER O WITH MACRON
146
+ 0x00e3: 0x0143, # LATIN CAPITAL LETTER N WITH ACUTE
147
+ 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
148
+ 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
149
+ 0x00e6: 0x00b5, # MICRO SIGN
150
+ 0x00e7: 0x0144, # LATIN SMALL LETTER N WITH ACUTE
151
+ 0x00e8: 0x0136, # LATIN CAPITAL LETTER K WITH CEDILLA
152
+ 0x00e9: 0x0137, # LATIN SMALL LETTER K WITH CEDILLA
153
+ 0x00ea: 0x013b, # LATIN CAPITAL LETTER L WITH CEDILLA
154
+ 0x00eb: 0x013c, # LATIN SMALL LETTER L WITH CEDILLA
155
+ 0x00ec: 0x0146, # LATIN SMALL LETTER N WITH CEDILLA
156
+ 0x00ed: 0x0112, # LATIN CAPITAL LETTER E WITH MACRON
157
+ 0x00ee: 0x0145, # LATIN CAPITAL LETTER N WITH CEDILLA
158
+ 0x00ef: 0x2019, # RIGHT SINGLE QUOTATION MARK
159
+ 0x00f0: 0x00ad, # SOFT HYPHEN
160
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
161
+ 0x00f2: 0x201c, # LEFT DOUBLE QUOTATION MARK
162
+ 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
163
+ 0x00f4: 0x00b6, # PILCROW SIGN
164
+ 0x00f5: 0x00a7, # SECTION SIGN
165
+ 0x00f6: 0x00f7, # DIVISION SIGN
166
+ 0x00f7: 0x201e, # DOUBLE LOW-9 QUOTATION MARK
167
+ 0x00f8: 0x00b0, # DEGREE SIGN
168
+ 0x00f9: 0x2219, # BULLET OPERATOR
169
+ 0x00fa: 0x00b7, # MIDDLE DOT
170
+ 0x00fb: 0x00b9, # SUPERSCRIPT ONE
171
+ 0x00fc: 0x00b3, # SUPERSCRIPT THREE
172
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
173
+ 0x00fe: 0x25a0, # BLACK SQUARE
174
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
175
+ })
176
+
177
+ ### Decoding Table
178
+
179
+ decoding_table = (
180
+ '\x00' # 0x0000 -> NULL
181
+ '\x01' # 0x0001 -> START OF HEADING
182
+ '\x02' # 0x0002 -> START OF TEXT
183
+ '\x03' # 0x0003 -> END OF TEXT
184
+ '\x04' # 0x0004 -> END OF TRANSMISSION
185
+ '\x05' # 0x0005 -> ENQUIRY
186
+ '\x06' # 0x0006 -> ACKNOWLEDGE
187
+ '\x07' # 0x0007 -> BELL
188
+ '\x08' # 0x0008 -> BACKSPACE
189
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
190
+ '\n' # 0x000a -> LINE FEED
191
+ '\x0b' # 0x000b -> VERTICAL TABULATION
192
+ '\x0c' # 0x000c -> FORM FEED
193
+ '\r' # 0x000d -> CARRIAGE RETURN
194
+ '\x0e' # 0x000e -> SHIFT OUT
195
+ '\x0f' # 0x000f -> SHIFT IN
196
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
197
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
198
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
199
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
200
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
201
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
202
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
203
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
204
+ '\x18' # 0x0018 -> CANCEL
205
+ '\x19' # 0x0019 -> END OF MEDIUM
206
+ '\x1a' # 0x001a -> SUBSTITUTE
207
+ '\x1b' # 0x001b -> ESCAPE
208
+ '\x1c' # 0x001c -> FILE SEPARATOR
209
+ '\x1d' # 0x001d -> GROUP SEPARATOR
210
+ '\x1e' # 0x001e -> RECORD SEPARATOR
211
+ '\x1f' # 0x001f -> UNIT SEPARATOR
212
+ ' ' # 0x0020 -> SPACE
213
+ '!' # 0x0021 -> EXCLAMATION MARK
214
+ '"' # 0x0022 -> QUOTATION MARK
215
+ '#' # 0x0023 -> NUMBER SIGN
216
+ '$' # 0x0024 -> DOLLAR SIGN
217
+ '%' # 0x0025 -> PERCENT SIGN
218
+ '&' # 0x0026 -> AMPERSAND
219
+ "'" # 0x0027 -> APOSTROPHE
220
+ '(' # 0x0028 -> LEFT PARENTHESIS
221
+ ')' # 0x0029 -> RIGHT PARENTHESIS
222
+ '*' # 0x002a -> ASTERISK
223
+ '+' # 0x002b -> PLUS SIGN
224
+ ',' # 0x002c -> COMMA
225
+ '-' # 0x002d -> HYPHEN-MINUS
226
+ '.' # 0x002e -> FULL STOP
227
+ '/' # 0x002f -> SOLIDUS
228
+ '0' # 0x0030 -> DIGIT ZERO
229
+ '1' # 0x0031 -> DIGIT ONE
230
+ '2' # 0x0032 -> DIGIT TWO
231
+ '3' # 0x0033 -> DIGIT THREE
232
+ '4' # 0x0034 -> DIGIT FOUR
233
+ '5' # 0x0035 -> DIGIT FIVE
234
+ '6' # 0x0036 -> DIGIT SIX
235
+ '7' # 0x0037 -> DIGIT SEVEN
236
+ '8' # 0x0038 -> DIGIT EIGHT
237
+ '9' # 0x0039 -> DIGIT NINE
238
+ ':' # 0x003a -> COLON
239
+ ';' # 0x003b -> SEMICOLON
240
+ '<' # 0x003c -> LESS-THAN SIGN
241
+ '=' # 0x003d -> EQUALS SIGN
242
+ '>' # 0x003e -> GREATER-THAN SIGN
243
+ '?' # 0x003f -> QUESTION MARK
244
+ '@' # 0x0040 -> COMMERCIAL AT
245
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
246
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
247
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
248
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
249
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
250
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
251
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
252
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
253
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
254
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
255
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
256
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
257
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
258
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
259
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
260
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
261
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
262
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
263
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
264
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
265
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
266
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
267
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
268
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
269
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
270
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
271
+ '[' # 0x005b -> LEFT SQUARE BRACKET
272
+ '\\' # 0x005c -> REVERSE SOLIDUS
273
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
274
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
275
+ '_' # 0x005f -> LOW LINE
276
+ '`' # 0x0060 -> GRAVE ACCENT
277
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
278
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
279
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
280
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
281
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
282
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
283
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
284
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
285
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
286
+ 'j' # 0x006a -> LATIN SMALL LETTER J
287
+ 'k' # 0x006b -> LATIN SMALL LETTER K
288
+ 'l' # 0x006c -> LATIN SMALL LETTER L
289
+ 'm' # 0x006d -> LATIN SMALL LETTER M
290
+ 'n' # 0x006e -> LATIN SMALL LETTER N
291
+ 'o' # 0x006f -> LATIN SMALL LETTER O
292
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
293
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
294
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
295
+ 's' # 0x0073 -> LATIN SMALL LETTER S
296
+ 't' # 0x0074 -> LATIN SMALL LETTER T
297
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
298
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
299
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
300
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
301
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
302
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
303
+ '{' # 0x007b -> LEFT CURLY BRACKET
304
+ '|' # 0x007c -> VERTICAL LINE
305
+ '}' # 0x007d -> RIGHT CURLY BRACKET
306
+ '~' # 0x007e -> TILDE
307
+ '\x7f' # 0x007f -> DELETE
308
+ '\u0106' # 0x0080 -> LATIN CAPITAL LETTER C WITH ACUTE
309
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
310
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
311
+ '\u0101' # 0x0083 -> LATIN SMALL LETTER A WITH MACRON
312
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
313
+ '\u0123' # 0x0085 -> LATIN SMALL LETTER G WITH CEDILLA
314
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
315
+ '\u0107' # 0x0087 -> LATIN SMALL LETTER C WITH ACUTE
316
+ '\u0142' # 0x0088 -> LATIN SMALL LETTER L WITH STROKE
317
+ '\u0113' # 0x0089 -> LATIN SMALL LETTER E WITH MACRON
318
+ '\u0156' # 0x008a -> LATIN CAPITAL LETTER R WITH CEDILLA
319
+ '\u0157' # 0x008b -> LATIN SMALL LETTER R WITH CEDILLA
320
+ '\u012b' # 0x008c -> LATIN SMALL LETTER I WITH MACRON
321
+ '\u0179' # 0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
322
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
323
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
324
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
325
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
326
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
327
+ '\u014d' # 0x0093 -> LATIN SMALL LETTER O WITH MACRON
328
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
329
+ '\u0122' # 0x0095 -> LATIN CAPITAL LETTER G WITH CEDILLA
330
+ '\xa2' # 0x0096 -> CENT SIGN
331
+ '\u015a' # 0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
332
+ '\u015b' # 0x0098 -> LATIN SMALL LETTER S WITH ACUTE
333
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
334
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
335
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
336
+ '\xa3' # 0x009c -> POUND SIGN
337
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
338
+ '\xd7' # 0x009e -> MULTIPLICATION SIGN
339
+ '\xa4' # 0x009f -> CURRENCY SIGN
340
+ '\u0100' # 0x00a0 -> LATIN CAPITAL LETTER A WITH MACRON
341
+ '\u012a' # 0x00a1 -> LATIN CAPITAL LETTER I WITH MACRON
342
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
343
+ '\u017b' # 0x00a3 -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
344
+ '\u017c' # 0x00a4 -> LATIN SMALL LETTER Z WITH DOT ABOVE
345
+ '\u017a' # 0x00a5 -> LATIN SMALL LETTER Z WITH ACUTE
346
+ '\u201d' # 0x00a6 -> RIGHT DOUBLE QUOTATION MARK
347
+ '\xa6' # 0x00a7 -> BROKEN BAR
348
+ '\xa9' # 0x00a8 -> COPYRIGHT SIGN
349
+ '\xae' # 0x00a9 -> REGISTERED SIGN
350
+ '\xac' # 0x00aa -> NOT SIGN
351
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
352
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
353
+ '\u0141' # 0x00ad -> LATIN CAPITAL LETTER L WITH STROKE
354
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
355
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\u2591' # 0x00b0 -> LIGHT SHADE
357
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
358
+ '\u2593' # 0x00b2 -> DARK SHADE
359
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
360
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
361
+ '\u0104' # 0x00b5 -> LATIN CAPITAL LETTER A WITH OGONEK
362
+ '\u010c' # 0x00b6 -> LATIN CAPITAL LETTER C WITH CARON
363
+ '\u0118' # 0x00b7 -> LATIN CAPITAL LETTER E WITH OGONEK
364
+ '\u0116' # 0x00b8 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
365
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
366
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
367
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
368
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
369
+ '\u012e' # 0x00bd -> LATIN CAPITAL LETTER I WITH OGONEK
370
+ '\u0160' # 0x00be -> LATIN CAPITAL LETTER S WITH CARON
371
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
372
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
373
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
374
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
375
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
376
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
377
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
378
+ '\u0172' # 0x00c6 -> LATIN CAPITAL LETTER U WITH OGONEK
379
+ '\u016a' # 0x00c7 -> LATIN CAPITAL LETTER U WITH MACRON
380
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
381
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
382
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
383
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
384
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
385
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
386
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
387
+ '\u017d' # 0x00cf -> LATIN CAPITAL LETTER Z WITH CARON
388
+ '\u0105' # 0x00d0 -> LATIN SMALL LETTER A WITH OGONEK
389
+ '\u010d' # 0x00d1 -> LATIN SMALL LETTER C WITH CARON
390
+ '\u0119' # 0x00d2 -> LATIN SMALL LETTER E WITH OGONEK
391
+ '\u0117' # 0x00d3 -> LATIN SMALL LETTER E WITH DOT ABOVE
392
+ '\u012f' # 0x00d4 -> LATIN SMALL LETTER I WITH OGONEK
393
+ '\u0161' # 0x00d5 -> LATIN SMALL LETTER S WITH CARON
394
+ '\u0173' # 0x00d6 -> LATIN SMALL LETTER U WITH OGONEK
395
+ '\u016b' # 0x00d7 -> LATIN SMALL LETTER U WITH MACRON
396
+ '\u017e' # 0x00d8 -> LATIN SMALL LETTER Z WITH CARON
397
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
398
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
399
+ '\u2588' # 0x00db -> FULL BLOCK
400
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
401
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
402
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
403
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
404
+ '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
405
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
406
+ '\u014c' # 0x00e2 -> LATIN CAPITAL LETTER O WITH MACRON
407
+ '\u0143' # 0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
408
+ '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
409
+ '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
410
+ '\xb5' # 0x00e6 -> MICRO SIGN
411
+ '\u0144' # 0x00e7 -> LATIN SMALL LETTER N WITH ACUTE
412
+ '\u0136' # 0x00e8 -> LATIN CAPITAL LETTER K WITH CEDILLA
413
+ '\u0137' # 0x00e9 -> LATIN SMALL LETTER K WITH CEDILLA
414
+ '\u013b' # 0x00ea -> LATIN CAPITAL LETTER L WITH CEDILLA
415
+ '\u013c' # 0x00eb -> LATIN SMALL LETTER L WITH CEDILLA
416
+ '\u0146' # 0x00ec -> LATIN SMALL LETTER N WITH CEDILLA
417
+ '\u0112' # 0x00ed -> LATIN CAPITAL LETTER E WITH MACRON
418
+ '\u0145' # 0x00ee -> LATIN CAPITAL LETTER N WITH CEDILLA
419
+ '\u2019' # 0x00ef -> RIGHT SINGLE QUOTATION MARK
420
+ '\xad' # 0x00f0 -> SOFT HYPHEN
421
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
422
+ '\u201c' # 0x00f2 -> LEFT DOUBLE QUOTATION MARK
423
+ '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
424
+ '\xb6' # 0x00f4 -> PILCROW SIGN
425
+ '\xa7' # 0x00f5 -> SECTION SIGN
426
+ '\xf7' # 0x00f6 -> DIVISION SIGN
427
+ '\u201e' # 0x00f7 -> DOUBLE LOW-9 QUOTATION MARK
428
+ '\xb0' # 0x00f8 -> DEGREE SIGN
429
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
430
+ '\xb7' # 0x00fa -> MIDDLE DOT
431
+ '\xb9' # 0x00fb -> SUPERSCRIPT ONE
432
+ '\xb3' # 0x00fc -> SUPERSCRIPT THREE
433
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
434
+ '\u25a0' # 0x00fe -> BLACK SQUARE
435
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
436
+ )
437
+
438
+ ### Encoding Map
439
+
440
+ encoding_map = {
441
+ 0x0000: 0x0000, # NULL
442
+ 0x0001: 0x0001, # START OF HEADING
443
+ 0x0002: 0x0002, # START OF TEXT
444
+ 0x0003: 0x0003, # END OF TEXT
445
+ 0x0004: 0x0004, # END OF TRANSMISSION
446
+ 0x0005: 0x0005, # ENQUIRY
447
+ 0x0006: 0x0006, # ACKNOWLEDGE
448
+ 0x0007: 0x0007, # BELL
449
+ 0x0008: 0x0008, # BACKSPACE
450
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
451
+ 0x000a: 0x000a, # LINE FEED
452
+ 0x000b: 0x000b, # VERTICAL TABULATION
453
+ 0x000c: 0x000c, # FORM FEED
454
+ 0x000d: 0x000d, # CARRIAGE RETURN
455
+ 0x000e: 0x000e, # SHIFT OUT
456
+ 0x000f: 0x000f, # SHIFT IN
457
+ 0x0010: 0x0010, # DATA LINK ESCAPE
458
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
459
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
460
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
461
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
462
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
463
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
464
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
465
+ 0x0018: 0x0018, # CANCEL
466
+ 0x0019: 0x0019, # END OF MEDIUM
467
+ 0x001a: 0x001a, # SUBSTITUTE
468
+ 0x001b: 0x001b, # ESCAPE
469
+ 0x001c: 0x001c, # FILE SEPARATOR
470
+ 0x001d: 0x001d, # GROUP SEPARATOR
471
+ 0x001e: 0x001e, # RECORD SEPARATOR
472
+ 0x001f: 0x001f, # UNIT SEPARATOR
473
+ 0x0020: 0x0020, # SPACE
474
+ 0x0021: 0x0021, # EXCLAMATION MARK
475
+ 0x0022: 0x0022, # QUOTATION MARK
476
+ 0x0023: 0x0023, # NUMBER SIGN
477
+ 0x0024: 0x0024, # DOLLAR SIGN
478
+ 0x0025: 0x0025, # PERCENT SIGN
479
+ 0x0026: 0x0026, # AMPERSAND
480
+ 0x0027: 0x0027, # APOSTROPHE
481
+ 0x0028: 0x0028, # LEFT PARENTHESIS
482
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
483
+ 0x002a: 0x002a, # ASTERISK
484
+ 0x002b: 0x002b, # PLUS SIGN
485
+ 0x002c: 0x002c, # COMMA
486
+ 0x002d: 0x002d, # HYPHEN-MINUS
487
+ 0x002e: 0x002e, # FULL STOP
488
+ 0x002f: 0x002f, # SOLIDUS
489
+ 0x0030: 0x0030, # DIGIT ZERO
490
+ 0x0031: 0x0031, # DIGIT ONE
491
+ 0x0032: 0x0032, # DIGIT TWO
492
+ 0x0033: 0x0033, # DIGIT THREE
493
+ 0x0034: 0x0034, # DIGIT FOUR
494
+ 0x0035: 0x0035, # DIGIT FIVE
495
+ 0x0036: 0x0036, # DIGIT SIX
496
+ 0x0037: 0x0037, # DIGIT SEVEN
497
+ 0x0038: 0x0038, # DIGIT EIGHT
498
+ 0x0039: 0x0039, # DIGIT NINE
499
+ 0x003a: 0x003a, # COLON
500
+ 0x003b: 0x003b, # SEMICOLON
501
+ 0x003c: 0x003c, # LESS-THAN SIGN
502
+ 0x003d: 0x003d, # EQUALS SIGN
503
+ 0x003e: 0x003e, # GREATER-THAN SIGN
504
+ 0x003f: 0x003f, # QUESTION MARK
505
+ 0x0040: 0x0040, # COMMERCIAL AT
506
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
507
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
508
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
509
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
510
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
511
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
512
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
513
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
514
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
515
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
516
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
517
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
518
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
519
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
520
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
521
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
522
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
523
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
524
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
525
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
526
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
527
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
528
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
529
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
530
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
531
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
532
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
533
+ 0x005c: 0x005c, # REVERSE SOLIDUS
534
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
535
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
536
+ 0x005f: 0x005f, # LOW LINE
537
+ 0x0060: 0x0060, # GRAVE ACCENT
538
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
539
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
540
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
541
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
542
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
543
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
544
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
545
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
546
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
547
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
548
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
549
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
550
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
551
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
552
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
553
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
554
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
555
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
556
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
557
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
558
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
559
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
560
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
561
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
562
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
563
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
564
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
565
+ 0x007c: 0x007c, # VERTICAL LINE
566
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
567
+ 0x007e: 0x007e, # TILDE
568
+ 0x007f: 0x007f, # DELETE
569
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
570
+ 0x00a2: 0x0096, # CENT SIGN
571
+ 0x00a3: 0x009c, # POUND SIGN
572
+ 0x00a4: 0x009f, # CURRENCY SIGN
573
+ 0x00a6: 0x00a7, # BROKEN BAR
574
+ 0x00a7: 0x00f5, # SECTION SIGN
575
+ 0x00a9: 0x00a8, # COPYRIGHT SIGN
576
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
577
+ 0x00ac: 0x00aa, # NOT SIGN
578
+ 0x00ad: 0x00f0, # SOFT HYPHEN
579
+ 0x00ae: 0x00a9, # REGISTERED SIGN
580
+ 0x00b0: 0x00f8, # DEGREE SIGN
581
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
582
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
583
+ 0x00b3: 0x00fc, # SUPERSCRIPT THREE
584
+ 0x00b5: 0x00e6, # MICRO SIGN
585
+ 0x00b6: 0x00f4, # PILCROW SIGN
586
+ 0x00b7: 0x00fa, # MIDDLE DOT
587
+ 0x00b9: 0x00fb, # SUPERSCRIPT ONE
588
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
589
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
590
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
591
+ 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
592
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
593
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
594
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
595
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
596
+ 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
597
+ 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
598
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
599
+ 0x00d7: 0x009e, # MULTIPLICATION SIGN
600
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
601
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
602
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S (GERMAN)
603
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
604
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
605
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
606
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
607
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
608
+ 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
609
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
610
+ 0x00f7: 0x00f6, # DIVISION SIGN
611
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
612
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
613
+ 0x0100: 0x00a0, # LATIN CAPITAL LETTER A WITH MACRON
614
+ 0x0101: 0x0083, # LATIN SMALL LETTER A WITH MACRON
615
+ 0x0104: 0x00b5, # LATIN CAPITAL LETTER A WITH OGONEK
616
+ 0x0105: 0x00d0, # LATIN SMALL LETTER A WITH OGONEK
617
+ 0x0106: 0x0080, # LATIN CAPITAL LETTER C WITH ACUTE
618
+ 0x0107: 0x0087, # LATIN SMALL LETTER C WITH ACUTE
619
+ 0x010c: 0x00b6, # LATIN CAPITAL LETTER C WITH CARON
620
+ 0x010d: 0x00d1, # LATIN SMALL LETTER C WITH CARON
621
+ 0x0112: 0x00ed, # LATIN CAPITAL LETTER E WITH MACRON
622
+ 0x0113: 0x0089, # LATIN SMALL LETTER E WITH MACRON
623
+ 0x0116: 0x00b8, # LATIN CAPITAL LETTER E WITH DOT ABOVE
624
+ 0x0117: 0x00d3, # LATIN SMALL LETTER E WITH DOT ABOVE
625
+ 0x0118: 0x00b7, # LATIN CAPITAL LETTER E WITH OGONEK
626
+ 0x0119: 0x00d2, # LATIN SMALL LETTER E WITH OGONEK
627
+ 0x0122: 0x0095, # LATIN CAPITAL LETTER G WITH CEDILLA
628
+ 0x0123: 0x0085, # LATIN SMALL LETTER G WITH CEDILLA
629
+ 0x012a: 0x00a1, # LATIN CAPITAL LETTER I WITH MACRON
630
+ 0x012b: 0x008c, # LATIN SMALL LETTER I WITH MACRON
631
+ 0x012e: 0x00bd, # LATIN CAPITAL LETTER I WITH OGONEK
632
+ 0x012f: 0x00d4, # LATIN SMALL LETTER I WITH OGONEK
633
+ 0x0136: 0x00e8, # LATIN CAPITAL LETTER K WITH CEDILLA
634
+ 0x0137: 0x00e9, # LATIN SMALL LETTER K WITH CEDILLA
635
+ 0x013b: 0x00ea, # LATIN CAPITAL LETTER L WITH CEDILLA
636
+ 0x013c: 0x00eb, # LATIN SMALL LETTER L WITH CEDILLA
637
+ 0x0141: 0x00ad, # LATIN CAPITAL LETTER L WITH STROKE
638
+ 0x0142: 0x0088, # LATIN SMALL LETTER L WITH STROKE
639
+ 0x0143: 0x00e3, # LATIN CAPITAL LETTER N WITH ACUTE
640
+ 0x0144: 0x00e7, # LATIN SMALL LETTER N WITH ACUTE
641
+ 0x0145: 0x00ee, # LATIN CAPITAL LETTER N WITH CEDILLA
642
+ 0x0146: 0x00ec, # LATIN SMALL LETTER N WITH CEDILLA
643
+ 0x014c: 0x00e2, # LATIN CAPITAL LETTER O WITH MACRON
644
+ 0x014d: 0x0093, # LATIN SMALL LETTER O WITH MACRON
645
+ 0x0156: 0x008a, # LATIN CAPITAL LETTER R WITH CEDILLA
646
+ 0x0157: 0x008b, # LATIN SMALL LETTER R WITH CEDILLA
647
+ 0x015a: 0x0097, # LATIN CAPITAL LETTER S WITH ACUTE
648
+ 0x015b: 0x0098, # LATIN SMALL LETTER S WITH ACUTE
649
+ 0x0160: 0x00be, # LATIN CAPITAL LETTER S WITH CARON
650
+ 0x0161: 0x00d5, # LATIN SMALL LETTER S WITH CARON
651
+ 0x016a: 0x00c7, # LATIN CAPITAL LETTER U WITH MACRON
652
+ 0x016b: 0x00d7, # LATIN SMALL LETTER U WITH MACRON
653
+ 0x0172: 0x00c6, # LATIN CAPITAL LETTER U WITH OGONEK
654
+ 0x0173: 0x00d6, # LATIN SMALL LETTER U WITH OGONEK
655
+ 0x0179: 0x008d, # LATIN CAPITAL LETTER Z WITH ACUTE
656
+ 0x017a: 0x00a5, # LATIN SMALL LETTER Z WITH ACUTE
657
+ 0x017b: 0x00a3, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
658
+ 0x017c: 0x00a4, # LATIN SMALL LETTER Z WITH DOT ABOVE
659
+ 0x017d: 0x00cf, # LATIN CAPITAL LETTER Z WITH CARON
660
+ 0x017e: 0x00d8, # LATIN SMALL LETTER Z WITH CARON
661
+ 0x2019: 0x00ef, # RIGHT SINGLE QUOTATION MARK
662
+ 0x201c: 0x00f2, # LEFT DOUBLE QUOTATION MARK
663
+ 0x201d: 0x00a6, # RIGHT DOUBLE QUOTATION MARK
664
+ 0x201e: 0x00f7, # DOUBLE LOW-9 QUOTATION MARK
665
+ 0x2219: 0x00f9, # BULLET OPERATOR
666
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
667
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
668
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
669
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
670
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
671
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
672
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
673
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
674
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
675
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
676
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
677
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
678
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
679
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
680
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
681
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
682
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
683
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
684
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
685
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
686
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
687
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
688
+ 0x2580: 0x00df, # UPPER HALF BLOCK
689
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
690
+ 0x2588: 0x00db, # FULL BLOCK
691
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
692
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
693
+ 0x2591: 0x00b0, # LIGHT SHADE
694
+ 0x2592: 0x00b1, # MEDIUM SHADE
695
+ 0x2593: 0x00b2, # DARK SHADE
696
+ 0x25a0: 0x00fe, # BLACK SQUARE
697
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp850.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP850.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp850',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
78
+ 0x009e: 0x00d7, # MULTIPLICATION SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x00ae, # REGISTERED SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
102
+ 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
103
+ 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
104
+ 0x00b8: 0x00a9, # COPYRIGHT SIGN
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x00a2, # CENT SIGN
110
+ 0x00be: 0x00a5, # YEN SIGN
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
119
+ 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x00a4, # CURRENCY SIGN
128
+ 0x00d0: 0x00f0, # LATIN SMALL LETTER ETH
129
+ 0x00d1: 0x00d0, # LATIN CAPITAL LETTER ETH
130
+ 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
131
+ 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
132
+ 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
133
+ 0x00d5: 0x0131, # LATIN SMALL LETTER DOTLESS I
134
+ 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
135
+ 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
136
+ 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x00a6, # BROKEN BAR
142
+ 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
147
+ 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
148
+ 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
149
+ 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x00fe, # LATIN SMALL LETTER THORN
152
+ 0x00e8: 0x00de, # LATIN CAPITAL LETTER THORN
153
+ 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
154
+ 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
155
+ 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
156
+ 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
157
+ 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
158
+ 0x00ee: 0x00af, # MACRON
159
+ 0x00ef: 0x00b4, # ACUTE ACCENT
160
+ 0x00f0: 0x00ad, # SOFT HYPHEN
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2017, # DOUBLE LOW LINE
163
+ 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
164
+ 0x00f4: 0x00b6, # PILCROW SIGN
165
+ 0x00f5: 0x00a7, # SECTION SIGN
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x00b8, # CEDILLA
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x00a8, # DIAERESIS
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x00b9, # SUPERSCRIPT ONE
172
+ 0x00fc: 0x00b3, # SUPERSCRIPT THREE
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
327
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
339
+ '\xd7' # 0x009e -> MULTIPLICATION SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\xae' # 0x00a9 -> REGISTERED SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
363
+ '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
364
+ '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
365
+ '\xa9' # 0x00b8 -> COPYRIGHT SIGN
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\xa2' # 0x00bd -> CENT SIGN
371
+ '\xa5' # 0x00be -> YEN SIGN
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
380
+ '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\xa4' # 0x00cf -> CURRENCY SIGN
389
+ '\xf0' # 0x00d0 -> LATIN SMALL LETTER ETH
390
+ '\xd0' # 0x00d1 -> LATIN CAPITAL LETTER ETH
391
+ '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
392
+ '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
393
+ '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
394
+ '\u0131' # 0x00d5 -> LATIN SMALL LETTER DOTLESS I
395
+ '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
396
+ '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
397
+ '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\xa6' # 0x00dd -> BROKEN BAR
403
+ '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
408
+ '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
409
+ '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
410
+ '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\xfe' # 0x00e7 -> LATIN SMALL LETTER THORN
413
+ '\xde' # 0x00e8 -> LATIN CAPITAL LETTER THORN
414
+ '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
415
+ '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
416
+ '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
417
+ '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
418
+ '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
419
+ '\xaf' # 0x00ee -> MACRON
420
+ '\xb4' # 0x00ef -> ACUTE ACCENT
421
+ '\xad' # 0x00f0 -> SOFT HYPHEN
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2017' # 0x00f2 -> DOUBLE LOW LINE
424
+ '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
425
+ '\xb6' # 0x00f4 -> PILCROW SIGN
426
+ '\xa7' # 0x00f5 -> SECTION SIGN
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\xb8' # 0x00f7 -> CEDILLA
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\xa8' # 0x00f9 -> DIAERESIS
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\xb9' # 0x00fb -> SUPERSCRIPT ONE
433
+ '\xb3' # 0x00fc -> SUPERSCRIPT THREE
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a2: 0x00bd, # CENT SIGN
573
+ 0x00a3: 0x009c, # POUND SIGN
574
+ 0x00a4: 0x00cf, # CURRENCY SIGN
575
+ 0x00a5: 0x00be, # YEN SIGN
576
+ 0x00a6: 0x00dd, # BROKEN BAR
577
+ 0x00a7: 0x00f5, # SECTION SIGN
578
+ 0x00a8: 0x00f9, # DIAERESIS
579
+ 0x00a9: 0x00b8, # COPYRIGHT SIGN
580
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
581
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
582
+ 0x00ac: 0x00aa, # NOT SIGN
583
+ 0x00ad: 0x00f0, # SOFT HYPHEN
584
+ 0x00ae: 0x00a9, # REGISTERED SIGN
585
+ 0x00af: 0x00ee, # MACRON
586
+ 0x00b0: 0x00f8, # DEGREE SIGN
587
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
588
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
589
+ 0x00b3: 0x00fc, # SUPERSCRIPT THREE
590
+ 0x00b4: 0x00ef, # ACUTE ACCENT
591
+ 0x00b5: 0x00e6, # MICRO SIGN
592
+ 0x00b6: 0x00f4, # PILCROW SIGN
593
+ 0x00b7: 0x00fa, # MIDDLE DOT
594
+ 0x00b8: 0x00f7, # CEDILLA
595
+ 0x00b9: 0x00fb, # SUPERSCRIPT ONE
596
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
597
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
598
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
599
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
600
+ 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
601
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
602
+ 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
603
+ 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
604
+ 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
605
+ 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
606
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
607
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
608
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
609
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
610
+ 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
611
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
612
+ 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
613
+ 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
614
+ 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
615
+ 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
616
+ 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
617
+ 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
618
+ 0x00d0: 0x00d1, # LATIN CAPITAL LETTER ETH
619
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
620
+ 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
621
+ 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
622
+ 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
623
+ 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
624
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
625
+ 0x00d7: 0x009e, # MULTIPLICATION SIGN
626
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
627
+ 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
628
+ 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
629
+ 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
630
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
631
+ 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
632
+ 0x00de: 0x00e8, # LATIN CAPITAL LETTER THORN
633
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
634
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
635
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
636
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
637
+ 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
638
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
639
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
640
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
641
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
642
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
643
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
644
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
645
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
646
+ 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
647
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
648
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
649
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
650
+ 0x00f0: 0x00d0, # LATIN SMALL LETTER ETH
651
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
652
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
653
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
654
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
655
+ 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
656
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
657
+ 0x00f7: 0x00f6, # DIVISION SIGN
658
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
659
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
660
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
661
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
662
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
663
+ 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
664
+ 0x00fe: 0x00e7, # LATIN SMALL LETTER THORN
665
+ 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
666
+ 0x0131: 0x00d5, # LATIN SMALL LETTER DOTLESS I
667
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
668
+ 0x2017: 0x00f2, # DOUBLE LOW LINE
669
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
670
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
671
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
672
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
673
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
674
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
675
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
676
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
677
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
678
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
679
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
680
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
681
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
682
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
683
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
684
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
685
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
686
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
687
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
688
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
689
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
690
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
691
+ 0x2580: 0x00df, # UPPER HALF BLOCK
692
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
693
+ 0x2588: 0x00db, # FULL BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp852.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP852.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp852',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x016f, # LATIN SMALL LETTER U WITH RING ABOVE
54
+ 0x0086: 0x0107, # LATIN SMALL LETTER C WITH ACUTE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x0142, # LATIN SMALL LETTER L WITH STROKE
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x0150, # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
59
+ 0x008b: 0x0151, # LATIN SMALL LETTER O WITH DOUBLE ACUTE
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x0179, # LATIN CAPITAL LETTER Z WITH ACUTE
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x0106, # LATIN CAPITAL LETTER C WITH ACUTE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x0139, # LATIN CAPITAL LETTER L WITH ACUTE
66
+ 0x0092: 0x013a, # LATIN SMALL LETTER L WITH ACUTE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x013d, # LATIN CAPITAL LETTER L WITH CARON
70
+ 0x0096: 0x013e, # LATIN SMALL LETTER L WITH CARON
71
+ 0x0097: 0x015a, # LATIN CAPITAL LETTER S WITH ACUTE
72
+ 0x0098: 0x015b, # LATIN SMALL LETTER S WITH ACUTE
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x0164, # LATIN CAPITAL LETTER T WITH CARON
76
+ 0x009c: 0x0165, # LATIN SMALL LETTER T WITH CARON
77
+ 0x009d: 0x0141, # LATIN CAPITAL LETTER L WITH STROKE
78
+ 0x009e: 0x00d7, # MULTIPLICATION SIGN
79
+ 0x009f: 0x010d, # LATIN SMALL LETTER C WITH CARON
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x0104, # LATIN CAPITAL LETTER A WITH OGONEK
85
+ 0x00a5: 0x0105, # LATIN SMALL LETTER A WITH OGONEK
86
+ 0x00a6: 0x017d, # LATIN CAPITAL LETTER Z WITH CARON
87
+ 0x00a7: 0x017e, # LATIN SMALL LETTER Z WITH CARON
88
+ 0x00a8: 0x0118, # LATIN CAPITAL LETTER E WITH OGONEK
89
+ 0x00a9: 0x0119, # LATIN SMALL LETTER E WITH OGONEK
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x017a, # LATIN SMALL LETTER Z WITH ACUTE
92
+ 0x00ac: 0x010c, # LATIN CAPITAL LETTER C WITH CARON
93
+ 0x00ad: 0x015f, # LATIN SMALL LETTER S WITH CEDILLA
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
102
+ 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
103
+ 0x00b7: 0x011a, # LATIN CAPITAL LETTER E WITH CARON
104
+ 0x00b8: 0x015e, # LATIN CAPITAL LETTER S WITH CEDILLA
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x017b, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
110
+ 0x00be: 0x017c, # LATIN SMALL LETTER Z WITH DOT ABOVE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x0102, # LATIN CAPITAL LETTER A WITH BREVE
119
+ 0x00c7: 0x0103, # LATIN SMALL LETTER A WITH BREVE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x00a4, # CURRENCY SIGN
128
+ 0x00d0: 0x0111, # LATIN SMALL LETTER D WITH STROKE
129
+ 0x00d1: 0x0110, # LATIN CAPITAL LETTER D WITH STROKE
130
+ 0x00d2: 0x010e, # LATIN CAPITAL LETTER D WITH CARON
131
+ 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
132
+ 0x00d4: 0x010f, # LATIN SMALL LETTER D WITH CARON
133
+ 0x00d5: 0x0147, # LATIN CAPITAL LETTER N WITH CARON
134
+ 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
135
+ 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
136
+ 0x00d8: 0x011b, # LATIN SMALL LETTER E WITH CARON
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x0162, # LATIN CAPITAL LETTER T WITH CEDILLA
142
+ 0x00de: 0x016e, # LATIN CAPITAL LETTER U WITH RING ABOVE
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
147
+ 0x00e3: 0x0143, # LATIN CAPITAL LETTER N WITH ACUTE
148
+ 0x00e4: 0x0144, # LATIN SMALL LETTER N WITH ACUTE
149
+ 0x00e5: 0x0148, # LATIN SMALL LETTER N WITH CARON
150
+ 0x00e6: 0x0160, # LATIN CAPITAL LETTER S WITH CARON
151
+ 0x00e7: 0x0161, # LATIN SMALL LETTER S WITH CARON
152
+ 0x00e8: 0x0154, # LATIN CAPITAL LETTER R WITH ACUTE
153
+ 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
154
+ 0x00ea: 0x0155, # LATIN SMALL LETTER R WITH ACUTE
155
+ 0x00eb: 0x0170, # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
156
+ 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
157
+ 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
158
+ 0x00ee: 0x0163, # LATIN SMALL LETTER T WITH CEDILLA
159
+ 0x00ef: 0x00b4, # ACUTE ACCENT
160
+ 0x00f0: 0x00ad, # SOFT HYPHEN
161
+ 0x00f1: 0x02dd, # DOUBLE ACUTE ACCENT
162
+ 0x00f2: 0x02db, # OGONEK
163
+ 0x00f3: 0x02c7, # CARON
164
+ 0x00f4: 0x02d8, # BREVE
165
+ 0x00f5: 0x00a7, # SECTION SIGN
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x00b8, # CEDILLA
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x00a8, # DIAERESIS
170
+ 0x00fa: 0x02d9, # DOT ABOVE
171
+ 0x00fb: 0x0171, # LATIN SMALL LETTER U WITH DOUBLE ACUTE
172
+ 0x00fc: 0x0158, # LATIN CAPITAL LETTER R WITH CARON
173
+ 0x00fd: 0x0159, # LATIN SMALL LETTER R WITH CARON
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\u016f' # 0x0085 -> LATIN SMALL LETTER U WITH RING ABOVE
315
+ '\u0107' # 0x0086 -> LATIN SMALL LETTER C WITH ACUTE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\u0142' # 0x0088 -> LATIN SMALL LETTER L WITH STROKE
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\u0150' # 0x008a -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
320
+ '\u0151' # 0x008b -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\u0179' # 0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\u0106' # 0x008f -> LATIN CAPITAL LETTER C WITH ACUTE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\u0139' # 0x0091 -> LATIN CAPITAL LETTER L WITH ACUTE
327
+ '\u013a' # 0x0092 -> LATIN SMALL LETTER L WITH ACUTE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\u013d' # 0x0095 -> LATIN CAPITAL LETTER L WITH CARON
331
+ '\u013e' # 0x0096 -> LATIN SMALL LETTER L WITH CARON
332
+ '\u015a' # 0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
333
+ '\u015b' # 0x0098 -> LATIN SMALL LETTER S WITH ACUTE
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\u0164' # 0x009b -> LATIN CAPITAL LETTER T WITH CARON
337
+ '\u0165' # 0x009c -> LATIN SMALL LETTER T WITH CARON
338
+ '\u0141' # 0x009d -> LATIN CAPITAL LETTER L WITH STROKE
339
+ '\xd7' # 0x009e -> MULTIPLICATION SIGN
340
+ '\u010d' # 0x009f -> LATIN SMALL LETTER C WITH CARON
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\u0104' # 0x00a4 -> LATIN CAPITAL LETTER A WITH OGONEK
346
+ '\u0105' # 0x00a5 -> LATIN SMALL LETTER A WITH OGONEK
347
+ '\u017d' # 0x00a6 -> LATIN CAPITAL LETTER Z WITH CARON
348
+ '\u017e' # 0x00a7 -> LATIN SMALL LETTER Z WITH CARON
349
+ '\u0118' # 0x00a8 -> LATIN CAPITAL LETTER E WITH OGONEK
350
+ '\u0119' # 0x00a9 -> LATIN SMALL LETTER E WITH OGONEK
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\u017a' # 0x00ab -> LATIN SMALL LETTER Z WITH ACUTE
353
+ '\u010c' # 0x00ac -> LATIN CAPITAL LETTER C WITH CARON
354
+ '\u015f' # 0x00ad -> LATIN SMALL LETTER S WITH CEDILLA
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
363
+ '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
364
+ '\u011a' # 0x00b7 -> LATIN CAPITAL LETTER E WITH CARON
365
+ '\u015e' # 0x00b8 -> LATIN CAPITAL LETTER S WITH CEDILLA
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u017b' # 0x00bd -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
371
+ '\u017c' # 0x00be -> LATIN SMALL LETTER Z WITH DOT ABOVE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u0102' # 0x00c6 -> LATIN CAPITAL LETTER A WITH BREVE
380
+ '\u0103' # 0x00c7 -> LATIN SMALL LETTER A WITH BREVE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\xa4' # 0x00cf -> CURRENCY SIGN
389
+ '\u0111' # 0x00d0 -> LATIN SMALL LETTER D WITH STROKE
390
+ '\u0110' # 0x00d1 -> LATIN CAPITAL LETTER D WITH STROKE
391
+ '\u010e' # 0x00d2 -> LATIN CAPITAL LETTER D WITH CARON
392
+ '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
393
+ '\u010f' # 0x00d4 -> LATIN SMALL LETTER D WITH CARON
394
+ '\u0147' # 0x00d5 -> LATIN CAPITAL LETTER N WITH CARON
395
+ '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
396
+ '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
397
+ '\u011b' # 0x00d8 -> LATIN SMALL LETTER E WITH CARON
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u0162' # 0x00dd -> LATIN CAPITAL LETTER T WITH CEDILLA
403
+ '\u016e' # 0x00de -> LATIN CAPITAL LETTER U WITH RING ABOVE
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
408
+ '\u0143' # 0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
409
+ '\u0144' # 0x00e4 -> LATIN SMALL LETTER N WITH ACUTE
410
+ '\u0148' # 0x00e5 -> LATIN SMALL LETTER N WITH CARON
411
+ '\u0160' # 0x00e6 -> LATIN CAPITAL LETTER S WITH CARON
412
+ '\u0161' # 0x00e7 -> LATIN SMALL LETTER S WITH CARON
413
+ '\u0154' # 0x00e8 -> LATIN CAPITAL LETTER R WITH ACUTE
414
+ '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
415
+ '\u0155' # 0x00ea -> LATIN SMALL LETTER R WITH ACUTE
416
+ '\u0170' # 0x00eb -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
417
+ '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
418
+ '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
419
+ '\u0163' # 0x00ee -> LATIN SMALL LETTER T WITH CEDILLA
420
+ '\xb4' # 0x00ef -> ACUTE ACCENT
421
+ '\xad' # 0x00f0 -> SOFT HYPHEN
422
+ '\u02dd' # 0x00f1 -> DOUBLE ACUTE ACCENT
423
+ '\u02db' # 0x00f2 -> OGONEK
424
+ '\u02c7' # 0x00f3 -> CARON
425
+ '\u02d8' # 0x00f4 -> BREVE
426
+ '\xa7' # 0x00f5 -> SECTION SIGN
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\xb8' # 0x00f7 -> CEDILLA
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\xa8' # 0x00f9 -> DIAERESIS
431
+ '\u02d9' # 0x00fa -> DOT ABOVE
432
+ '\u0171' # 0x00fb -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
433
+ '\u0158' # 0x00fc -> LATIN CAPITAL LETTER R WITH CARON
434
+ '\u0159' # 0x00fd -> LATIN SMALL LETTER R WITH CARON
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a4: 0x00cf, # CURRENCY SIGN
572
+ 0x00a7: 0x00f5, # SECTION SIGN
573
+ 0x00a8: 0x00f9, # DIAERESIS
574
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
575
+ 0x00ac: 0x00aa, # NOT SIGN
576
+ 0x00ad: 0x00f0, # SOFT HYPHEN
577
+ 0x00b0: 0x00f8, # DEGREE SIGN
578
+ 0x00b4: 0x00ef, # ACUTE ACCENT
579
+ 0x00b8: 0x00f7, # CEDILLA
580
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
581
+ 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
582
+ 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
583
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
584
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
585
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
586
+ 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
587
+ 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
588
+ 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
589
+ 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
590
+ 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
591
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
592
+ 0x00d7: 0x009e, # MULTIPLICATION SIGN
593
+ 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
594
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
595
+ 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
596
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
597
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
598
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
599
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
600
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
601
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
602
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
603
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
604
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
605
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
606
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
607
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
608
+ 0x00f7: 0x00f6, # DIVISION SIGN
609
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
610
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
611
+ 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
612
+ 0x0102: 0x00c6, # LATIN CAPITAL LETTER A WITH BREVE
613
+ 0x0103: 0x00c7, # LATIN SMALL LETTER A WITH BREVE
614
+ 0x0104: 0x00a4, # LATIN CAPITAL LETTER A WITH OGONEK
615
+ 0x0105: 0x00a5, # LATIN SMALL LETTER A WITH OGONEK
616
+ 0x0106: 0x008f, # LATIN CAPITAL LETTER C WITH ACUTE
617
+ 0x0107: 0x0086, # LATIN SMALL LETTER C WITH ACUTE
618
+ 0x010c: 0x00ac, # LATIN CAPITAL LETTER C WITH CARON
619
+ 0x010d: 0x009f, # LATIN SMALL LETTER C WITH CARON
620
+ 0x010e: 0x00d2, # LATIN CAPITAL LETTER D WITH CARON
621
+ 0x010f: 0x00d4, # LATIN SMALL LETTER D WITH CARON
622
+ 0x0110: 0x00d1, # LATIN CAPITAL LETTER D WITH STROKE
623
+ 0x0111: 0x00d0, # LATIN SMALL LETTER D WITH STROKE
624
+ 0x0118: 0x00a8, # LATIN CAPITAL LETTER E WITH OGONEK
625
+ 0x0119: 0x00a9, # LATIN SMALL LETTER E WITH OGONEK
626
+ 0x011a: 0x00b7, # LATIN CAPITAL LETTER E WITH CARON
627
+ 0x011b: 0x00d8, # LATIN SMALL LETTER E WITH CARON
628
+ 0x0139: 0x0091, # LATIN CAPITAL LETTER L WITH ACUTE
629
+ 0x013a: 0x0092, # LATIN SMALL LETTER L WITH ACUTE
630
+ 0x013d: 0x0095, # LATIN CAPITAL LETTER L WITH CARON
631
+ 0x013e: 0x0096, # LATIN SMALL LETTER L WITH CARON
632
+ 0x0141: 0x009d, # LATIN CAPITAL LETTER L WITH STROKE
633
+ 0x0142: 0x0088, # LATIN SMALL LETTER L WITH STROKE
634
+ 0x0143: 0x00e3, # LATIN CAPITAL LETTER N WITH ACUTE
635
+ 0x0144: 0x00e4, # LATIN SMALL LETTER N WITH ACUTE
636
+ 0x0147: 0x00d5, # LATIN CAPITAL LETTER N WITH CARON
637
+ 0x0148: 0x00e5, # LATIN SMALL LETTER N WITH CARON
638
+ 0x0150: 0x008a, # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
639
+ 0x0151: 0x008b, # LATIN SMALL LETTER O WITH DOUBLE ACUTE
640
+ 0x0154: 0x00e8, # LATIN CAPITAL LETTER R WITH ACUTE
641
+ 0x0155: 0x00ea, # LATIN SMALL LETTER R WITH ACUTE
642
+ 0x0158: 0x00fc, # LATIN CAPITAL LETTER R WITH CARON
643
+ 0x0159: 0x00fd, # LATIN SMALL LETTER R WITH CARON
644
+ 0x015a: 0x0097, # LATIN CAPITAL LETTER S WITH ACUTE
645
+ 0x015b: 0x0098, # LATIN SMALL LETTER S WITH ACUTE
646
+ 0x015e: 0x00b8, # LATIN CAPITAL LETTER S WITH CEDILLA
647
+ 0x015f: 0x00ad, # LATIN SMALL LETTER S WITH CEDILLA
648
+ 0x0160: 0x00e6, # LATIN CAPITAL LETTER S WITH CARON
649
+ 0x0161: 0x00e7, # LATIN SMALL LETTER S WITH CARON
650
+ 0x0162: 0x00dd, # LATIN CAPITAL LETTER T WITH CEDILLA
651
+ 0x0163: 0x00ee, # LATIN SMALL LETTER T WITH CEDILLA
652
+ 0x0164: 0x009b, # LATIN CAPITAL LETTER T WITH CARON
653
+ 0x0165: 0x009c, # LATIN SMALL LETTER T WITH CARON
654
+ 0x016e: 0x00de, # LATIN CAPITAL LETTER U WITH RING ABOVE
655
+ 0x016f: 0x0085, # LATIN SMALL LETTER U WITH RING ABOVE
656
+ 0x0170: 0x00eb, # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
657
+ 0x0171: 0x00fb, # LATIN SMALL LETTER U WITH DOUBLE ACUTE
658
+ 0x0179: 0x008d, # LATIN CAPITAL LETTER Z WITH ACUTE
659
+ 0x017a: 0x00ab, # LATIN SMALL LETTER Z WITH ACUTE
660
+ 0x017b: 0x00bd, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
661
+ 0x017c: 0x00be, # LATIN SMALL LETTER Z WITH DOT ABOVE
662
+ 0x017d: 0x00a6, # LATIN CAPITAL LETTER Z WITH CARON
663
+ 0x017e: 0x00a7, # LATIN SMALL LETTER Z WITH CARON
664
+ 0x02c7: 0x00f3, # CARON
665
+ 0x02d8: 0x00f4, # BREVE
666
+ 0x02d9: 0x00fa, # DOT ABOVE
667
+ 0x02db: 0x00f2, # OGONEK
668
+ 0x02dd: 0x00f1, # DOUBLE ACUTE ACCENT
669
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
670
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
671
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
672
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
673
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
674
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
675
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
676
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
677
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
678
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
679
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
680
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
681
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
682
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
683
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
684
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
685
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
686
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
687
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
688
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
689
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
690
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
691
+ 0x2580: 0x00df, # UPPER HALF BLOCK
692
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
693
+ 0x2588: 0x00db, # FULL BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp855.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP855.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp855',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x0452, # CYRILLIC SMALL LETTER DJE
49
+ 0x0081: 0x0402, # CYRILLIC CAPITAL LETTER DJE
50
+ 0x0082: 0x0453, # CYRILLIC SMALL LETTER GJE
51
+ 0x0083: 0x0403, # CYRILLIC CAPITAL LETTER GJE
52
+ 0x0084: 0x0451, # CYRILLIC SMALL LETTER IO
53
+ 0x0085: 0x0401, # CYRILLIC CAPITAL LETTER IO
54
+ 0x0086: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
55
+ 0x0087: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
56
+ 0x0088: 0x0455, # CYRILLIC SMALL LETTER DZE
57
+ 0x0089: 0x0405, # CYRILLIC CAPITAL LETTER DZE
58
+ 0x008a: 0x0456, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
59
+ 0x008b: 0x0406, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
60
+ 0x008c: 0x0457, # CYRILLIC SMALL LETTER YI
61
+ 0x008d: 0x0407, # CYRILLIC CAPITAL LETTER YI
62
+ 0x008e: 0x0458, # CYRILLIC SMALL LETTER JE
63
+ 0x008f: 0x0408, # CYRILLIC CAPITAL LETTER JE
64
+ 0x0090: 0x0459, # CYRILLIC SMALL LETTER LJE
65
+ 0x0091: 0x0409, # CYRILLIC CAPITAL LETTER LJE
66
+ 0x0092: 0x045a, # CYRILLIC SMALL LETTER NJE
67
+ 0x0093: 0x040a, # CYRILLIC CAPITAL LETTER NJE
68
+ 0x0094: 0x045b, # CYRILLIC SMALL LETTER TSHE
69
+ 0x0095: 0x040b, # CYRILLIC CAPITAL LETTER TSHE
70
+ 0x0096: 0x045c, # CYRILLIC SMALL LETTER KJE
71
+ 0x0097: 0x040c, # CYRILLIC CAPITAL LETTER KJE
72
+ 0x0098: 0x045e, # CYRILLIC SMALL LETTER SHORT U
73
+ 0x0099: 0x040e, # CYRILLIC CAPITAL LETTER SHORT U
74
+ 0x009a: 0x045f, # CYRILLIC SMALL LETTER DZHE
75
+ 0x009b: 0x040f, # CYRILLIC CAPITAL LETTER DZHE
76
+ 0x009c: 0x044e, # CYRILLIC SMALL LETTER YU
77
+ 0x009d: 0x042e, # CYRILLIC CAPITAL LETTER YU
78
+ 0x009e: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
79
+ 0x009f: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
80
+ 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
81
+ 0x00a1: 0x0410, # CYRILLIC CAPITAL LETTER A
82
+ 0x00a2: 0x0431, # CYRILLIC SMALL LETTER BE
83
+ 0x00a3: 0x0411, # CYRILLIC CAPITAL LETTER BE
84
+ 0x00a4: 0x0446, # CYRILLIC SMALL LETTER TSE
85
+ 0x00a5: 0x0426, # CYRILLIC CAPITAL LETTER TSE
86
+ 0x00a6: 0x0434, # CYRILLIC SMALL LETTER DE
87
+ 0x00a7: 0x0414, # CYRILLIC CAPITAL LETTER DE
88
+ 0x00a8: 0x0435, # CYRILLIC SMALL LETTER IE
89
+ 0x00a9: 0x0415, # CYRILLIC CAPITAL LETTER IE
90
+ 0x00aa: 0x0444, # CYRILLIC SMALL LETTER EF
91
+ 0x00ab: 0x0424, # CYRILLIC CAPITAL LETTER EF
92
+ 0x00ac: 0x0433, # CYRILLIC SMALL LETTER GHE
93
+ 0x00ad: 0x0413, # CYRILLIC CAPITAL LETTER GHE
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x0445, # CYRILLIC SMALL LETTER HA
102
+ 0x00b6: 0x0425, # CYRILLIC CAPITAL LETTER HA
103
+ 0x00b7: 0x0438, # CYRILLIC SMALL LETTER I
104
+ 0x00b8: 0x0418, # CYRILLIC CAPITAL LETTER I
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x0439, # CYRILLIC SMALL LETTER SHORT I
110
+ 0x00be: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x043a, # CYRILLIC SMALL LETTER KA
119
+ 0x00c7: 0x041a, # CYRILLIC CAPITAL LETTER KA
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x00a4, # CURRENCY SIGN
128
+ 0x00d0: 0x043b, # CYRILLIC SMALL LETTER EL
129
+ 0x00d1: 0x041b, # CYRILLIC CAPITAL LETTER EL
130
+ 0x00d2: 0x043c, # CYRILLIC SMALL LETTER EM
131
+ 0x00d3: 0x041c, # CYRILLIC CAPITAL LETTER EM
132
+ 0x00d4: 0x043d, # CYRILLIC SMALL LETTER EN
133
+ 0x00d5: 0x041d, # CYRILLIC CAPITAL LETTER EN
134
+ 0x00d6: 0x043e, # CYRILLIC SMALL LETTER O
135
+ 0x00d7: 0x041e, # CYRILLIC CAPITAL LETTER O
136
+ 0x00d8: 0x043f, # CYRILLIC SMALL LETTER PE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x041f, # CYRILLIC CAPITAL LETTER PE
142
+ 0x00de: 0x044f, # CYRILLIC SMALL LETTER YA
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x042f, # CYRILLIC CAPITAL LETTER YA
145
+ 0x00e1: 0x0440, # CYRILLIC SMALL LETTER ER
146
+ 0x00e2: 0x0420, # CYRILLIC CAPITAL LETTER ER
147
+ 0x00e3: 0x0441, # CYRILLIC SMALL LETTER ES
148
+ 0x00e4: 0x0421, # CYRILLIC CAPITAL LETTER ES
149
+ 0x00e5: 0x0442, # CYRILLIC SMALL LETTER TE
150
+ 0x00e6: 0x0422, # CYRILLIC CAPITAL LETTER TE
151
+ 0x00e7: 0x0443, # CYRILLIC SMALL LETTER U
152
+ 0x00e8: 0x0423, # CYRILLIC CAPITAL LETTER U
153
+ 0x00e9: 0x0436, # CYRILLIC SMALL LETTER ZHE
154
+ 0x00ea: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
155
+ 0x00eb: 0x0432, # CYRILLIC SMALL LETTER VE
156
+ 0x00ec: 0x0412, # CYRILLIC CAPITAL LETTER VE
157
+ 0x00ed: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
158
+ 0x00ee: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
159
+ 0x00ef: 0x2116, # NUMERO SIGN
160
+ 0x00f0: 0x00ad, # SOFT HYPHEN
161
+ 0x00f1: 0x044b, # CYRILLIC SMALL LETTER YERU
162
+ 0x00f2: 0x042b, # CYRILLIC CAPITAL LETTER YERU
163
+ 0x00f3: 0x0437, # CYRILLIC SMALL LETTER ZE
164
+ 0x00f4: 0x0417, # CYRILLIC CAPITAL LETTER ZE
165
+ 0x00f5: 0x0448, # CYRILLIC SMALL LETTER SHA
166
+ 0x00f6: 0x0428, # CYRILLIC CAPITAL LETTER SHA
167
+ 0x00f7: 0x044d, # CYRILLIC SMALL LETTER E
168
+ 0x00f8: 0x042d, # CYRILLIC CAPITAL LETTER E
169
+ 0x00f9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
170
+ 0x00fa: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
171
+ 0x00fb: 0x0447, # CYRILLIC SMALL LETTER CHE
172
+ 0x00fc: 0x0427, # CYRILLIC CAPITAL LETTER CHE
173
+ 0x00fd: 0x00a7, # SECTION SIGN
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\u0452' # 0x0080 -> CYRILLIC SMALL LETTER DJE
310
+ '\u0402' # 0x0081 -> CYRILLIC CAPITAL LETTER DJE
311
+ '\u0453' # 0x0082 -> CYRILLIC SMALL LETTER GJE
312
+ '\u0403' # 0x0083 -> CYRILLIC CAPITAL LETTER GJE
313
+ '\u0451' # 0x0084 -> CYRILLIC SMALL LETTER IO
314
+ '\u0401' # 0x0085 -> CYRILLIC CAPITAL LETTER IO
315
+ '\u0454' # 0x0086 -> CYRILLIC SMALL LETTER UKRAINIAN IE
316
+ '\u0404' # 0x0087 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
317
+ '\u0455' # 0x0088 -> CYRILLIC SMALL LETTER DZE
318
+ '\u0405' # 0x0089 -> CYRILLIC CAPITAL LETTER DZE
319
+ '\u0456' # 0x008a -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
320
+ '\u0406' # 0x008b -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
321
+ '\u0457' # 0x008c -> CYRILLIC SMALL LETTER YI
322
+ '\u0407' # 0x008d -> CYRILLIC CAPITAL LETTER YI
323
+ '\u0458' # 0x008e -> CYRILLIC SMALL LETTER JE
324
+ '\u0408' # 0x008f -> CYRILLIC CAPITAL LETTER JE
325
+ '\u0459' # 0x0090 -> CYRILLIC SMALL LETTER LJE
326
+ '\u0409' # 0x0091 -> CYRILLIC CAPITAL LETTER LJE
327
+ '\u045a' # 0x0092 -> CYRILLIC SMALL LETTER NJE
328
+ '\u040a' # 0x0093 -> CYRILLIC CAPITAL LETTER NJE
329
+ '\u045b' # 0x0094 -> CYRILLIC SMALL LETTER TSHE
330
+ '\u040b' # 0x0095 -> CYRILLIC CAPITAL LETTER TSHE
331
+ '\u045c' # 0x0096 -> CYRILLIC SMALL LETTER KJE
332
+ '\u040c' # 0x0097 -> CYRILLIC CAPITAL LETTER KJE
333
+ '\u045e' # 0x0098 -> CYRILLIC SMALL LETTER SHORT U
334
+ '\u040e' # 0x0099 -> CYRILLIC CAPITAL LETTER SHORT U
335
+ '\u045f' # 0x009a -> CYRILLIC SMALL LETTER DZHE
336
+ '\u040f' # 0x009b -> CYRILLIC CAPITAL LETTER DZHE
337
+ '\u044e' # 0x009c -> CYRILLIC SMALL LETTER YU
338
+ '\u042e' # 0x009d -> CYRILLIC CAPITAL LETTER YU
339
+ '\u044a' # 0x009e -> CYRILLIC SMALL LETTER HARD SIGN
340
+ '\u042a' # 0x009f -> CYRILLIC CAPITAL LETTER HARD SIGN
341
+ '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
342
+ '\u0410' # 0x00a1 -> CYRILLIC CAPITAL LETTER A
343
+ '\u0431' # 0x00a2 -> CYRILLIC SMALL LETTER BE
344
+ '\u0411' # 0x00a3 -> CYRILLIC CAPITAL LETTER BE
345
+ '\u0446' # 0x00a4 -> CYRILLIC SMALL LETTER TSE
346
+ '\u0426' # 0x00a5 -> CYRILLIC CAPITAL LETTER TSE
347
+ '\u0434' # 0x00a6 -> CYRILLIC SMALL LETTER DE
348
+ '\u0414' # 0x00a7 -> CYRILLIC CAPITAL LETTER DE
349
+ '\u0435' # 0x00a8 -> CYRILLIC SMALL LETTER IE
350
+ '\u0415' # 0x00a9 -> CYRILLIC CAPITAL LETTER IE
351
+ '\u0444' # 0x00aa -> CYRILLIC SMALL LETTER EF
352
+ '\u0424' # 0x00ab -> CYRILLIC CAPITAL LETTER EF
353
+ '\u0433' # 0x00ac -> CYRILLIC SMALL LETTER GHE
354
+ '\u0413' # 0x00ad -> CYRILLIC CAPITAL LETTER GHE
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u0445' # 0x00b5 -> CYRILLIC SMALL LETTER HA
363
+ '\u0425' # 0x00b6 -> CYRILLIC CAPITAL LETTER HA
364
+ '\u0438' # 0x00b7 -> CYRILLIC SMALL LETTER I
365
+ '\u0418' # 0x00b8 -> CYRILLIC CAPITAL LETTER I
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u0439' # 0x00bd -> CYRILLIC SMALL LETTER SHORT I
371
+ '\u0419' # 0x00be -> CYRILLIC CAPITAL LETTER SHORT I
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u043a' # 0x00c6 -> CYRILLIC SMALL LETTER KA
380
+ '\u041a' # 0x00c7 -> CYRILLIC CAPITAL LETTER KA
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\xa4' # 0x00cf -> CURRENCY SIGN
389
+ '\u043b' # 0x00d0 -> CYRILLIC SMALL LETTER EL
390
+ '\u041b' # 0x00d1 -> CYRILLIC CAPITAL LETTER EL
391
+ '\u043c' # 0x00d2 -> CYRILLIC SMALL LETTER EM
392
+ '\u041c' # 0x00d3 -> CYRILLIC CAPITAL LETTER EM
393
+ '\u043d' # 0x00d4 -> CYRILLIC SMALL LETTER EN
394
+ '\u041d' # 0x00d5 -> CYRILLIC CAPITAL LETTER EN
395
+ '\u043e' # 0x00d6 -> CYRILLIC SMALL LETTER O
396
+ '\u041e' # 0x00d7 -> CYRILLIC CAPITAL LETTER O
397
+ '\u043f' # 0x00d8 -> CYRILLIC SMALL LETTER PE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u041f' # 0x00dd -> CYRILLIC CAPITAL LETTER PE
403
+ '\u044f' # 0x00de -> CYRILLIC SMALL LETTER YA
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u042f' # 0x00e0 -> CYRILLIC CAPITAL LETTER YA
406
+ '\u0440' # 0x00e1 -> CYRILLIC SMALL LETTER ER
407
+ '\u0420' # 0x00e2 -> CYRILLIC CAPITAL LETTER ER
408
+ '\u0441' # 0x00e3 -> CYRILLIC SMALL LETTER ES
409
+ '\u0421' # 0x00e4 -> CYRILLIC CAPITAL LETTER ES
410
+ '\u0442' # 0x00e5 -> CYRILLIC SMALL LETTER TE
411
+ '\u0422' # 0x00e6 -> CYRILLIC CAPITAL LETTER TE
412
+ '\u0443' # 0x00e7 -> CYRILLIC SMALL LETTER U
413
+ '\u0423' # 0x00e8 -> CYRILLIC CAPITAL LETTER U
414
+ '\u0436' # 0x00e9 -> CYRILLIC SMALL LETTER ZHE
415
+ '\u0416' # 0x00ea -> CYRILLIC CAPITAL LETTER ZHE
416
+ '\u0432' # 0x00eb -> CYRILLIC SMALL LETTER VE
417
+ '\u0412' # 0x00ec -> CYRILLIC CAPITAL LETTER VE
418
+ '\u044c' # 0x00ed -> CYRILLIC SMALL LETTER SOFT SIGN
419
+ '\u042c' # 0x00ee -> CYRILLIC CAPITAL LETTER SOFT SIGN
420
+ '\u2116' # 0x00ef -> NUMERO SIGN
421
+ '\xad' # 0x00f0 -> SOFT HYPHEN
422
+ '\u044b' # 0x00f1 -> CYRILLIC SMALL LETTER YERU
423
+ '\u042b' # 0x00f2 -> CYRILLIC CAPITAL LETTER YERU
424
+ '\u0437' # 0x00f3 -> CYRILLIC SMALL LETTER ZE
425
+ '\u0417' # 0x00f4 -> CYRILLIC CAPITAL LETTER ZE
426
+ '\u0448' # 0x00f5 -> CYRILLIC SMALL LETTER SHA
427
+ '\u0428' # 0x00f6 -> CYRILLIC CAPITAL LETTER SHA
428
+ '\u044d' # 0x00f7 -> CYRILLIC SMALL LETTER E
429
+ '\u042d' # 0x00f8 -> CYRILLIC CAPITAL LETTER E
430
+ '\u0449' # 0x00f9 -> CYRILLIC SMALL LETTER SHCHA
431
+ '\u0429' # 0x00fa -> CYRILLIC CAPITAL LETTER SHCHA
432
+ '\u0447' # 0x00fb -> CYRILLIC SMALL LETTER CHE
433
+ '\u0427' # 0x00fc -> CYRILLIC CAPITAL LETTER CHE
434
+ '\xa7' # 0x00fd -> SECTION SIGN
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a4: 0x00cf, # CURRENCY SIGN
572
+ 0x00a7: 0x00fd, # SECTION SIGN
573
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
574
+ 0x00ad: 0x00f0, # SOFT HYPHEN
575
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
576
+ 0x0401: 0x0085, # CYRILLIC CAPITAL LETTER IO
577
+ 0x0402: 0x0081, # CYRILLIC CAPITAL LETTER DJE
578
+ 0x0403: 0x0083, # CYRILLIC CAPITAL LETTER GJE
579
+ 0x0404: 0x0087, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
580
+ 0x0405: 0x0089, # CYRILLIC CAPITAL LETTER DZE
581
+ 0x0406: 0x008b, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
582
+ 0x0407: 0x008d, # CYRILLIC CAPITAL LETTER YI
583
+ 0x0408: 0x008f, # CYRILLIC CAPITAL LETTER JE
584
+ 0x0409: 0x0091, # CYRILLIC CAPITAL LETTER LJE
585
+ 0x040a: 0x0093, # CYRILLIC CAPITAL LETTER NJE
586
+ 0x040b: 0x0095, # CYRILLIC CAPITAL LETTER TSHE
587
+ 0x040c: 0x0097, # CYRILLIC CAPITAL LETTER KJE
588
+ 0x040e: 0x0099, # CYRILLIC CAPITAL LETTER SHORT U
589
+ 0x040f: 0x009b, # CYRILLIC CAPITAL LETTER DZHE
590
+ 0x0410: 0x00a1, # CYRILLIC CAPITAL LETTER A
591
+ 0x0411: 0x00a3, # CYRILLIC CAPITAL LETTER BE
592
+ 0x0412: 0x00ec, # CYRILLIC CAPITAL LETTER VE
593
+ 0x0413: 0x00ad, # CYRILLIC CAPITAL LETTER GHE
594
+ 0x0414: 0x00a7, # CYRILLIC CAPITAL LETTER DE
595
+ 0x0415: 0x00a9, # CYRILLIC CAPITAL LETTER IE
596
+ 0x0416: 0x00ea, # CYRILLIC CAPITAL LETTER ZHE
597
+ 0x0417: 0x00f4, # CYRILLIC CAPITAL LETTER ZE
598
+ 0x0418: 0x00b8, # CYRILLIC CAPITAL LETTER I
599
+ 0x0419: 0x00be, # CYRILLIC CAPITAL LETTER SHORT I
600
+ 0x041a: 0x00c7, # CYRILLIC CAPITAL LETTER KA
601
+ 0x041b: 0x00d1, # CYRILLIC CAPITAL LETTER EL
602
+ 0x041c: 0x00d3, # CYRILLIC CAPITAL LETTER EM
603
+ 0x041d: 0x00d5, # CYRILLIC CAPITAL LETTER EN
604
+ 0x041e: 0x00d7, # CYRILLIC CAPITAL LETTER O
605
+ 0x041f: 0x00dd, # CYRILLIC CAPITAL LETTER PE
606
+ 0x0420: 0x00e2, # CYRILLIC CAPITAL LETTER ER
607
+ 0x0421: 0x00e4, # CYRILLIC CAPITAL LETTER ES
608
+ 0x0422: 0x00e6, # CYRILLIC CAPITAL LETTER TE
609
+ 0x0423: 0x00e8, # CYRILLIC CAPITAL LETTER U
610
+ 0x0424: 0x00ab, # CYRILLIC CAPITAL LETTER EF
611
+ 0x0425: 0x00b6, # CYRILLIC CAPITAL LETTER HA
612
+ 0x0426: 0x00a5, # CYRILLIC CAPITAL LETTER TSE
613
+ 0x0427: 0x00fc, # CYRILLIC CAPITAL LETTER CHE
614
+ 0x0428: 0x00f6, # CYRILLIC CAPITAL LETTER SHA
615
+ 0x0429: 0x00fa, # CYRILLIC CAPITAL LETTER SHCHA
616
+ 0x042a: 0x009f, # CYRILLIC CAPITAL LETTER HARD SIGN
617
+ 0x042b: 0x00f2, # CYRILLIC CAPITAL LETTER YERU
618
+ 0x042c: 0x00ee, # CYRILLIC CAPITAL LETTER SOFT SIGN
619
+ 0x042d: 0x00f8, # CYRILLIC CAPITAL LETTER E
620
+ 0x042e: 0x009d, # CYRILLIC CAPITAL LETTER YU
621
+ 0x042f: 0x00e0, # CYRILLIC CAPITAL LETTER YA
622
+ 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
623
+ 0x0431: 0x00a2, # CYRILLIC SMALL LETTER BE
624
+ 0x0432: 0x00eb, # CYRILLIC SMALL LETTER VE
625
+ 0x0433: 0x00ac, # CYRILLIC SMALL LETTER GHE
626
+ 0x0434: 0x00a6, # CYRILLIC SMALL LETTER DE
627
+ 0x0435: 0x00a8, # CYRILLIC SMALL LETTER IE
628
+ 0x0436: 0x00e9, # CYRILLIC SMALL LETTER ZHE
629
+ 0x0437: 0x00f3, # CYRILLIC SMALL LETTER ZE
630
+ 0x0438: 0x00b7, # CYRILLIC SMALL LETTER I
631
+ 0x0439: 0x00bd, # CYRILLIC SMALL LETTER SHORT I
632
+ 0x043a: 0x00c6, # CYRILLIC SMALL LETTER KA
633
+ 0x043b: 0x00d0, # CYRILLIC SMALL LETTER EL
634
+ 0x043c: 0x00d2, # CYRILLIC SMALL LETTER EM
635
+ 0x043d: 0x00d4, # CYRILLIC SMALL LETTER EN
636
+ 0x043e: 0x00d6, # CYRILLIC SMALL LETTER O
637
+ 0x043f: 0x00d8, # CYRILLIC SMALL LETTER PE
638
+ 0x0440: 0x00e1, # CYRILLIC SMALL LETTER ER
639
+ 0x0441: 0x00e3, # CYRILLIC SMALL LETTER ES
640
+ 0x0442: 0x00e5, # CYRILLIC SMALL LETTER TE
641
+ 0x0443: 0x00e7, # CYRILLIC SMALL LETTER U
642
+ 0x0444: 0x00aa, # CYRILLIC SMALL LETTER EF
643
+ 0x0445: 0x00b5, # CYRILLIC SMALL LETTER HA
644
+ 0x0446: 0x00a4, # CYRILLIC SMALL LETTER TSE
645
+ 0x0447: 0x00fb, # CYRILLIC SMALL LETTER CHE
646
+ 0x0448: 0x00f5, # CYRILLIC SMALL LETTER SHA
647
+ 0x0449: 0x00f9, # CYRILLIC SMALL LETTER SHCHA
648
+ 0x044a: 0x009e, # CYRILLIC SMALL LETTER HARD SIGN
649
+ 0x044b: 0x00f1, # CYRILLIC SMALL LETTER YERU
650
+ 0x044c: 0x00ed, # CYRILLIC SMALL LETTER SOFT SIGN
651
+ 0x044d: 0x00f7, # CYRILLIC SMALL LETTER E
652
+ 0x044e: 0x009c, # CYRILLIC SMALL LETTER YU
653
+ 0x044f: 0x00de, # CYRILLIC SMALL LETTER YA
654
+ 0x0451: 0x0084, # CYRILLIC SMALL LETTER IO
655
+ 0x0452: 0x0080, # CYRILLIC SMALL LETTER DJE
656
+ 0x0453: 0x0082, # CYRILLIC SMALL LETTER GJE
657
+ 0x0454: 0x0086, # CYRILLIC SMALL LETTER UKRAINIAN IE
658
+ 0x0455: 0x0088, # CYRILLIC SMALL LETTER DZE
659
+ 0x0456: 0x008a, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
660
+ 0x0457: 0x008c, # CYRILLIC SMALL LETTER YI
661
+ 0x0458: 0x008e, # CYRILLIC SMALL LETTER JE
662
+ 0x0459: 0x0090, # CYRILLIC SMALL LETTER LJE
663
+ 0x045a: 0x0092, # CYRILLIC SMALL LETTER NJE
664
+ 0x045b: 0x0094, # CYRILLIC SMALL LETTER TSHE
665
+ 0x045c: 0x0096, # CYRILLIC SMALL LETTER KJE
666
+ 0x045e: 0x0098, # CYRILLIC SMALL LETTER SHORT U
667
+ 0x045f: 0x009a, # CYRILLIC SMALL LETTER DZHE
668
+ 0x2116: 0x00ef, # NUMERO SIGN
669
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
670
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
671
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
672
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
673
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
674
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
675
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
676
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
677
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
678
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
679
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
680
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
681
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
682
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
683
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
684
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
685
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
686
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
687
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
688
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
689
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
690
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
691
+ 0x2580: 0x00df, # UPPER HALF BLOCK
692
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
693
+ 0x2588: 0x00db, # FULL BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp856.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp856 generated from 'MAPPINGS/VENDORS/MISC/CP856.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp856',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u05d0' # 0x80 -> HEBREW LETTER ALEF
177
+ '\u05d1' # 0x81 -> HEBREW LETTER BET
178
+ '\u05d2' # 0x82 -> HEBREW LETTER GIMEL
179
+ '\u05d3' # 0x83 -> HEBREW LETTER DALET
180
+ '\u05d4' # 0x84 -> HEBREW LETTER HE
181
+ '\u05d5' # 0x85 -> HEBREW LETTER VAV
182
+ '\u05d6' # 0x86 -> HEBREW LETTER ZAYIN
183
+ '\u05d7' # 0x87 -> HEBREW LETTER HET
184
+ '\u05d8' # 0x88 -> HEBREW LETTER TET
185
+ '\u05d9' # 0x89 -> HEBREW LETTER YOD
186
+ '\u05da' # 0x8A -> HEBREW LETTER FINAL KAF
187
+ '\u05db' # 0x8B -> HEBREW LETTER KAF
188
+ '\u05dc' # 0x8C -> HEBREW LETTER LAMED
189
+ '\u05dd' # 0x8D -> HEBREW LETTER FINAL MEM
190
+ '\u05de' # 0x8E -> HEBREW LETTER MEM
191
+ '\u05df' # 0x8F -> HEBREW LETTER FINAL NUN
192
+ '\u05e0' # 0x90 -> HEBREW LETTER NUN
193
+ '\u05e1' # 0x91 -> HEBREW LETTER SAMEKH
194
+ '\u05e2' # 0x92 -> HEBREW LETTER AYIN
195
+ '\u05e3' # 0x93 -> HEBREW LETTER FINAL PE
196
+ '\u05e4' # 0x94 -> HEBREW LETTER PE
197
+ '\u05e5' # 0x95 -> HEBREW LETTER FINAL TSADI
198
+ '\u05e6' # 0x96 -> HEBREW LETTER TSADI
199
+ '\u05e7' # 0x97 -> HEBREW LETTER QOF
200
+ '\u05e8' # 0x98 -> HEBREW LETTER RESH
201
+ '\u05e9' # 0x99 -> HEBREW LETTER SHIN
202
+ '\u05ea' # 0x9A -> HEBREW LETTER TAV
203
+ '\ufffe' # 0x9B -> UNDEFINED
204
+ '\xa3' # 0x9C -> POUND SIGN
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\xd7' # 0x9E -> MULTIPLICATION SIGN
207
+ '\ufffe' # 0x9F -> UNDEFINED
208
+ '\ufffe' # 0xA0 -> UNDEFINED
209
+ '\ufffe' # 0xA1 -> UNDEFINED
210
+ '\ufffe' # 0xA2 -> UNDEFINED
211
+ '\ufffe' # 0xA3 -> UNDEFINED
212
+ '\ufffe' # 0xA4 -> UNDEFINED
213
+ '\ufffe' # 0xA5 -> UNDEFINED
214
+ '\ufffe' # 0xA6 -> UNDEFINED
215
+ '\ufffe' # 0xA7 -> UNDEFINED
216
+ '\ufffe' # 0xA8 -> UNDEFINED
217
+ '\xae' # 0xA9 -> REGISTERED SIGN
218
+ '\xac' # 0xAA -> NOT SIGN
219
+ '\xbd' # 0xAB -> VULGAR FRACTION ONE HALF
220
+ '\xbc' # 0xAC -> VULGAR FRACTION ONE QUARTER
221
+ '\ufffe' # 0xAD -> UNDEFINED
222
+ '\xab' # 0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
223
+ '\xbb' # 0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
224
+ '\u2591' # 0xB0 -> LIGHT SHADE
225
+ '\u2592' # 0xB1 -> MEDIUM SHADE
226
+ '\u2593' # 0xB2 -> DARK SHADE
227
+ '\u2502' # 0xB3 -> BOX DRAWINGS LIGHT VERTICAL
228
+ '\u2524' # 0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
229
+ '\ufffe' # 0xB5 -> UNDEFINED
230
+ '\ufffe' # 0xB6 -> UNDEFINED
231
+ '\ufffe' # 0xB7 -> UNDEFINED
232
+ '\xa9' # 0xB8 -> COPYRIGHT SIGN
233
+ '\u2563' # 0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
234
+ '\u2551' # 0xBA -> BOX DRAWINGS DOUBLE VERTICAL
235
+ '\u2557' # 0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
236
+ '\u255d' # 0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
237
+ '\xa2' # 0xBD -> CENT SIGN
238
+ '\xa5' # 0xBE -> YEN SIGN
239
+ '\u2510' # 0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
240
+ '\u2514' # 0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
241
+ '\u2534' # 0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
242
+ '\u252c' # 0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
243
+ '\u251c' # 0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
244
+ '\u2500' # 0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
245
+ '\u253c' # 0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
246
+ '\ufffe' # 0xC6 -> UNDEFINED
247
+ '\ufffe' # 0xC7 -> UNDEFINED
248
+ '\u255a' # 0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
249
+ '\u2554' # 0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
250
+ '\u2569' # 0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
251
+ '\u2566' # 0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
252
+ '\u2560' # 0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
253
+ '\u2550' # 0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
254
+ '\u256c' # 0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
255
+ '\xa4' # 0xCF -> CURRENCY SIGN
256
+ '\ufffe' # 0xD0 -> UNDEFINED
257
+ '\ufffe' # 0xD1 -> UNDEFINED
258
+ '\ufffe' # 0xD2 -> UNDEFINED
259
+ '\ufffe' # 0xD3 -> UNDEFINEDS
260
+ '\ufffe' # 0xD4 -> UNDEFINED
261
+ '\ufffe' # 0xD5 -> UNDEFINED
262
+ '\ufffe' # 0xD6 -> UNDEFINEDE
263
+ '\ufffe' # 0xD7 -> UNDEFINED
264
+ '\ufffe' # 0xD8 -> UNDEFINED
265
+ '\u2518' # 0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
266
+ '\u250c' # 0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
267
+ '\u2588' # 0xDB -> FULL BLOCK
268
+ '\u2584' # 0xDC -> LOWER HALF BLOCK
269
+ '\xa6' # 0xDD -> BROKEN BAR
270
+ '\ufffe' # 0xDE -> UNDEFINED
271
+ '\u2580' # 0xDF -> UPPER HALF BLOCK
272
+ '\ufffe' # 0xE0 -> UNDEFINED
273
+ '\ufffe' # 0xE1 -> UNDEFINED
274
+ '\ufffe' # 0xE2 -> UNDEFINED
275
+ '\ufffe' # 0xE3 -> UNDEFINED
276
+ '\ufffe' # 0xE4 -> UNDEFINED
277
+ '\ufffe' # 0xE5 -> UNDEFINED
278
+ '\xb5' # 0xE6 -> MICRO SIGN
279
+ '\ufffe' # 0xE7 -> UNDEFINED
280
+ '\ufffe' # 0xE8 -> UNDEFINED
281
+ '\ufffe' # 0xE9 -> UNDEFINED
282
+ '\ufffe' # 0xEA -> UNDEFINED
283
+ '\ufffe' # 0xEB -> UNDEFINED
284
+ '\ufffe' # 0xEC -> UNDEFINED
285
+ '\ufffe' # 0xED -> UNDEFINED
286
+ '\xaf' # 0xEE -> MACRON
287
+ '\xb4' # 0xEF -> ACUTE ACCENT
288
+ '\xad' # 0xF0 -> SOFT HYPHEN
289
+ '\xb1' # 0xF1 -> PLUS-MINUS SIGN
290
+ '\u2017' # 0xF2 -> DOUBLE LOW LINE
291
+ '\xbe' # 0xF3 -> VULGAR FRACTION THREE QUARTERS
292
+ '\xb6' # 0xF4 -> PILCROW SIGN
293
+ '\xa7' # 0xF5 -> SECTION SIGN
294
+ '\xf7' # 0xF6 -> DIVISION SIGN
295
+ '\xb8' # 0xF7 -> CEDILLA
296
+ '\xb0' # 0xF8 -> DEGREE SIGN
297
+ '\xa8' # 0xF9 -> DIAERESIS
298
+ '\xb7' # 0xFA -> MIDDLE DOT
299
+ '\xb9' # 0xFB -> SUPERSCRIPT ONE
300
+ '\xb3' # 0xFC -> SUPERSCRIPT THREE
301
+ '\xb2' # 0xFD -> SUPERSCRIPT TWO
302
+ '\u25a0' # 0xFE -> BLACK SQUARE
303
+ '\xa0' # 0xFF -> NO-BREAK SPACE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp860.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP860.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp860',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
60
+ 0x008c: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
61
+ 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
62
+ 0x008e: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
63
+ 0x008f: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
66
+ 0x0092: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
73
+ 0x0099: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00a2, # CENT SIGN
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
78
+ 0x009e: 0x20a7, # PESETA SIGN
79
+ 0x009f: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe3' # 0x0084 -> LATIN SMALL LETTER A WITH TILDE
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xc1' # 0x0086 -> LATIN CAPITAL LETTER A WITH ACUTE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xca' # 0x0089 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xcd' # 0x008b -> LATIN CAPITAL LETTER I WITH ACUTE
321
+ '\xd4' # 0x008c -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
322
+ '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
323
+ '\xc3' # 0x008e -> LATIN CAPITAL LETTER A WITH TILDE
324
+ '\xc2' # 0x008f -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xc0' # 0x0091 -> LATIN CAPITAL LETTER A WITH GRAVE
327
+ '\xc8' # 0x0092 -> LATIN CAPITAL LETTER E WITH GRAVE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf5' # 0x0094 -> LATIN SMALL LETTER O WITH TILDE
330
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
331
+ '\xda' # 0x0096 -> LATIN CAPITAL LETTER U WITH ACUTE
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xcc' # 0x0098 -> LATIN CAPITAL LETTER I WITH GRAVE
334
+ '\xd5' # 0x0099 -> LATIN CAPITAL LETTER O WITH TILDE
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xa2' # 0x009b -> CENT SIGN
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd9' # 0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
339
+ '\u20a7' # 0x009e -> PESETA SIGN
340
+ '\xd3' # 0x009f -> LATIN CAPITAL LETTER O WITH ACUTE
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\xd2' # 0x00a9 -> LATIN CAPITAL LETTER O WITH GRAVE
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a2: 0x009b, # CENT SIGN
573
+ 0x00a3: 0x009c, # POUND SIGN
574
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
575
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
576
+ 0x00ac: 0x00aa, # NOT SIGN
577
+ 0x00b0: 0x00f8, # DEGREE SIGN
578
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
579
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
580
+ 0x00b5: 0x00e6, # MICRO SIGN
581
+ 0x00b7: 0x00fa, # MIDDLE DOT
582
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
583
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
584
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
585
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
586
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
587
+ 0x00c0: 0x0091, # LATIN CAPITAL LETTER A WITH GRAVE
588
+ 0x00c1: 0x0086, # LATIN CAPITAL LETTER A WITH ACUTE
589
+ 0x00c2: 0x008f, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
590
+ 0x00c3: 0x008e, # LATIN CAPITAL LETTER A WITH TILDE
591
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
592
+ 0x00c8: 0x0092, # LATIN CAPITAL LETTER E WITH GRAVE
593
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
594
+ 0x00ca: 0x0089, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
595
+ 0x00cc: 0x0098, # LATIN CAPITAL LETTER I WITH GRAVE
596
+ 0x00cd: 0x008b, # LATIN CAPITAL LETTER I WITH ACUTE
597
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
598
+ 0x00d2: 0x00a9, # LATIN CAPITAL LETTER O WITH GRAVE
599
+ 0x00d3: 0x009f, # LATIN CAPITAL LETTER O WITH ACUTE
600
+ 0x00d4: 0x008c, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
601
+ 0x00d5: 0x0099, # LATIN CAPITAL LETTER O WITH TILDE
602
+ 0x00d9: 0x009d, # LATIN CAPITAL LETTER U WITH GRAVE
603
+ 0x00da: 0x0096, # LATIN CAPITAL LETTER U WITH ACUTE
604
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
605
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
606
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
607
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
608
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
609
+ 0x00e3: 0x0084, # LATIN SMALL LETTER A WITH TILDE
610
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
611
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
612
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
613
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
614
+ 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
615
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
616
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
617
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
618
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
619
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
620
+ 0x00f5: 0x0094, # LATIN SMALL LETTER O WITH TILDE
621
+ 0x00f7: 0x00f6, # DIVISION SIGN
622
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
623
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
624
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
625
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
626
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
627
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
628
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
629
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
630
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
631
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
632
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
633
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
634
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
635
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
636
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
637
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
638
+ 0x20a7: 0x009e, # PESETA SIGN
639
+ 0x2219: 0x00f9, # BULLET OPERATOR
640
+ 0x221a: 0x00fb, # SQUARE ROOT
641
+ 0x221e: 0x00ec, # INFINITY
642
+ 0x2229: 0x00ef, # INTERSECTION
643
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
644
+ 0x2261: 0x00f0, # IDENTICAL TO
645
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
646
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp861.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP861.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp861',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00d0, # LATIN CAPITAL LETTER ETH
60
+ 0x008c: 0x00f0, # LATIN SMALL LETTER ETH
61
+ 0x008d: 0x00de, # LATIN CAPITAL LETTER THORN
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00fe, # LATIN SMALL LETTER THORN
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
72
+ 0x0098: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
78
+ 0x009e: 0x20a7, # PESETA SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
85
+ 0x00a5: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
86
+ 0x00a6: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
87
+ 0x00a7: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x2310, # REVERSED NOT SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xd0' # 0x008b -> LATIN CAPITAL LETTER ETH
321
+ '\xf0' # 0x008c -> LATIN SMALL LETTER ETH
322
+ '\xde' # 0x008d -> LATIN CAPITAL LETTER THORN
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
327
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\xfe' # 0x0095 -> LATIN SMALL LETTER THORN
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xdd' # 0x0097 -> LATIN CAPITAL LETTER Y WITH ACUTE
333
+ '\xfd' # 0x0098 -> LATIN SMALL LETTER Y WITH ACUTE
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
339
+ '\u20a7' # 0x009e -> PESETA SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xc1' # 0x00a4 -> LATIN CAPITAL LETTER A WITH ACUTE
346
+ '\xcd' # 0x00a5 -> LATIN CAPITAL LETTER I WITH ACUTE
347
+ '\xd3' # 0x00a6 -> LATIN CAPITAL LETTER O WITH ACUTE
348
+ '\xda' # 0x00a7 -> LATIN CAPITAL LETTER U WITH ACUTE
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\u2310' # 0x00a9 -> REVERSED NOT SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a3: 0x009c, # POUND SIGN
573
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
574
+ 0x00ac: 0x00aa, # NOT SIGN
575
+ 0x00b0: 0x00f8, # DEGREE SIGN
576
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
577
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
578
+ 0x00b5: 0x00e6, # MICRO SIGN
579
+ 0x00b7: 0x00fa, # MIDDLE DOT
580
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
581
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
582
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
583
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
584
+ 0x00c1: 0x00a4, # LATIN CAPITAL LETTER A WITH ACUTE
585
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
586
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
587
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
588
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
589
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
590
+ 0x00cd: 0x00a5, # LATIN CAPITAL LETTER I WITH ACUTE
591
+ 0x00d0: 0x008b, # LATIN CAPITAL LETTER ETH
592
+ 0x00d3: 0x00a6, # LATIN CAPITAL LETTER O WITH ACUTE
593
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
594
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
595
+ 0x00da: 0x00a7, # LATIN CAPITAL LETTER U WITH ACUTE
596
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
597
+ 0x00dd: 0x0097, # LATIN CAPITAL LETTER Y WITH ACUTE
598
+ 0x00de: 0x008d, # LATIN CAPITAL LETTER THORN
599
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
600
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
601
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
602
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
603
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
604
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
605
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
606
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
607
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
608
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
609
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
610
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
611
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
612
+ 0x00f0: 0x008c, # LATIN SMALL LETTER ETH
613
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
614
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
615
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
616
+ 0x00f7: 0x00f6, # DIVISION SIGN
617
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
618
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
619
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
620
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
621
+ 0x00fd: 0x0098, # LATIN SMALL LETTER Y WITH ACUTE
622
+ 0x00fe: 0x0095, # LATIN SMALL LETTER THORN
623
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
624
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
625
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
626
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
627
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
628
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
629
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
630
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
631
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
632
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
633
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
634
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
635
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
636
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
637
+ 0x20a7: 0x009e, # PESETA SIGN
638
+ 0x2219: 0x00f9, # BULLET OPERATOR
639
+ 0x221a: 0x00fb, # SQUARE ROOT
640
+ 0x221e: 0x00ec, # INFINITY
641
+ 0x2229: 0x00ef, # INTERSECTION
642
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
643
+ 0x2261: 0x00f0, # IDENTICAL TO
644
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
645
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
646
+ 0x2310: 0x00a9, # REVERSED NOT SIGN
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp863.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP863.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp863',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00b6, # PILCROW SIGN
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x2017, # DOUBLE LOW LINE
62
+ 0x008e: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
63
+ 0x008f: 0x00a7, # SECTION SIGN
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
66
+ 0x0092: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
69
+ 0x0095: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00a4, # CURRENCY SIGN
73
+ 0x0099: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00a2, # CENT SIGN
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
78
+ 0x009e: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00a6, # BROKEN BAR
81
+ 0x00a1: 0x00b4, # ACUTE ACCENT
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00a8, # DIAERESIS
85
+ 0x00a5: 0x00b8, # CEDILLA
86
+ 0x00a6: 0x00b3, # SUPERSCRIPT THREE
87
+ 0x00a7: 0x00af, # MACRON
88
+ 0x00a8: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
89
+ 0x00a9: 0x2310, # REVERSED NOT SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00be, # VULGAR FRACTION THREE QUARTERS
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xc2' # 0x0084 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xb6' # 0x0086 -> PILCROW SIGN
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\u2017' # 0x008d -> DOUBLE LOW LINE
323
+ '\xc0' # 0x008e -> LATIN CAPITAL LETTER A WITH GRAVE
324
+ '\xa7' # 0x008f -> SECTION SIGN
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xc8' # 0x0091 -> LATIN CAPITAL LETTER E WITH GRAVE
327
+ '\xca' # 0x0092 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xcb' # 0x0094 -> LATIN CAPITAL LETTER E WITH DIAERESIS
330
+ '\xcf' # 0x0095 -> LATIN CAPITAL LETTER I WITH DIAERESIS
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xa4' # 0x0098 -> CURRENCY SIGN
334
+ '\xd4' # 0x0099 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xa2' # 0x009b -> CENT SIGN
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd9' # 0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
339
+ '\xdb' # 0x009e -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xa6' # 0x00a0 -> BROKEN BAR
342
+ '\xb4' # 0x00a1 -> ACUTE ACCENT
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xa8' # 0x00a4 -> DIAERESIS
346
+ '\xb8' # 0x00a5 -> CEDILLA
347
+ '\xb3' # 0x00a6 -> SUPERSCRIPT THREE
348
+ '\xaf' # 0x00a7 -> MACRON
349
+ '\xce' # 0x00a8 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
350
+ '\u2310' # 0x00a9 -> REVERSED NOT SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xbe' # 0x00ad -> VULGAR FRACTION THREE QUARTERS
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a2: 0x009b, # CENT SIGN
572
+ 0x00a3: 0x009c, # POUND SIGN
573
+ 0x00a4: 0x0098, # CURRENCY SIGN
574
+ 0x00a6: 0x00a0, # BROKEN BAR
575
+ 0x00a7: 0x008f, # SECTION SIGN
576
+ 0x00a8: 0x00a4, # DIAERESIS
577
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
578
+ 0x00ac: 0x00aa, # NOT SIGN
579
+ 0x00af: 0x00a7, # MACRON
580
+ 0x00b0: 0x00f8, # DEGREE SIGN
581
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
582
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
583
+ 0x00b3: 0x00a6, # SUPERSCRIPT THREE
584
+ 0x00b4: 0x00a1, # ACUTE ACCENT
585
+ 0x00b5: 0x00e6, # MICRO SIGN
586
+ 0x00b6: 0x0086, # PILCROW SIGN
587
+ 0x00b7: 0x00fa, # MIDDLE DOT
588
+ 0x00b8: 0x00a5, # CEDILLA
589
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
590
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
591
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
592
+ 0x00be: 0x00ad, # VULGAR FRACTION THREE QUARTERS
593
+ 0x00c0: 0x008e, # LATIN CAPITAL LETTER A WITH GRAVE
594
+ 0x00c2: 0x0084, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
595
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
596
+ 0x00c8: 0x0091, # LATIN CAPITAL LETTER E WITH GRAVE
597
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
598
+ 0x00ca: 0x0092, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
599
+ 0x00cb: 0x0094, # LATIN CAPITAL LETTER E WITH DIAERESIS
600
+ 0x00ce: 0x00a8, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
601
+ 0x00cf: 0x0095, # LATIN CAPITAL LETTER I WITH DIAERESIS
602
+ 0x00d4: 0x0099, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
603
+ 0x00d9: 0x009d, # LATIN CAPITAL LETTER U WITH GRAVE
604
+ 0x00db: 0x009e, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
605
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
606
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
607
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
608
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
609
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
610
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
611
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
612
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
613
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
614
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
615
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
616
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
617
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
618
+ 0x00f7: 0x00f6, # DIVISION SIGN
619
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
620
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
621
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
622
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
623
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
624
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
625
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
626
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
627
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
628
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
629
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
630
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
631
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
632
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
633
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
634
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
635
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
636
+ 0x2017: 0x008d, # DOUBLE LOW LINE
637
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
638
+ 0x2219: 0x00f9, # BULLET OPERATOR
639
+ 0x221a: 0x00fb, # SQUARE ROOT
640
+ 0x221e: 0x00ec, # INFINITY
641
+ 0x2229: 0x00ef, # INTERSECTION
642
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
643
+ 0x2261: 0x00f0, # IDENTICAL TO
644
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
645
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
646
+ 0x2310: 0x00a9, # REVERSED NOT SIGN
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp866.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP866.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp866',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x0410, # CYRILLIC CAPITAL LETTER A
49
+ 0x0081: 0x0411, # CYRILLIC CAPITAL LETTER BE
50
+ 0x0082: 0x0412, # CYRILLIC CAPITAL LETTER VE
51
+ 0x0083: 0x0413, # CYRILLIC CAPITAL LETTER GHE
52
+ 0x0084: 0x0414, # CYRILLIC CAPITAL LETTER DE
53
+ 0x0085: 0x0415, # CYRILLIC CAPITAL LETTER IE
54
+ 0x0086: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
55
+ 0x0087: 0x0417, # CYRILLIC CAPITAL LETTER ZE
56
+ 0x0088: 0x0418, # CYRILLIC CAPITAL LETTER I
57
+ 0x0089: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
58
+ 0x008a: 0x041a, # CYRILLIC CAPITAL LETTER KA
59
+ 0x008b: 0x041b, # CYRILLIC CAPITAL LETTER EL
60
+ 0x008c: 0x041c, # CYRILLIC CAPITAL LETTER EM
61
+ 0x008d: 0x041d, # CYRILLIC CAPITAL LETTER EN
62
+ 0x008e: 0x041e, # CYRILLIC CAPITAL LETTER O
63
+ 0x008f: 0x041f, # CYRILLIC CAPITAL LETTER PE
64
+ 0x0090: 0x0420, # CYRILLIC CAPITAL LETTER ER
65
+ 0x0091: 0x0421, # CYRILLIC CAPITAL LETTER ES
66
+ 0x0092: 0x0422, # CYRILLIC CAPITAL LETTER TE
67
+ 0x0093: 0x0423, # CYRILLIC CAPITAL LETTER U
68
+ 0x0094: 0x0424, # CYRILLIC CAPITAL LETTER EF
69
+ 0x0095: 0x0425, # CYRILLIC CAPITAL LETTER HA
70
+ 0x0096: 0x0426, # CYRILLIC CAPITAL LETTER TSE
71
+ 0x0097: 0x0427, # CYRILLIC CAPITAL LETTER CHE
72
+ 0x0098: 0x0428, # CYRILLIC CAPITAL LETTER SHA
73
+ 0x0099: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
74
+ 0x009a: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
75
+ 0x009b: 0x042b, # CYRILLIC CAPITAL LETTER YERU
76
+ 0x009c: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
77
+ 0x009d: 0x042d, # CYRILLIC CAPITAL LETTER E
78
+ 0x009e: 0x042e, # CYRILLIC CAPITAL LETTER YU
79
+ 0x009f: 0x042f, # CYRILLIC CAPITAL LETTER YA
80
+ 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
81
+ 0x00a1: 0x0431, # CYRILLIC SMALL LETTER BE
82
+ 0x00a2: 0x0432, # CYRILLIC SMALL LETTER VE
83
+ 0x00a3: 0x0433, # CYRILLIC SMALL LETTER GHE
84
+ 0x00a4: 0x0434, # CYRILLIC SMALL LETTER DE
85
+ 0x00a5: 0x0435, # CYRILLIC SMALL LETTER IE
86
+ 0x00a6: 0x0436, # CYRILLIC SMALL LETTER ZHE
87
+ 0x00a7: 0x0437, # CYRILLIC SMALL LETTER ZE
88
+ 0x00a8: 0x0438, # CYRILLIC SMALL LETTER I
89
+ 0x00a9: 0x0439, # CYRILLIC SMALL LETTER SHORT I
90
+ 0x00aa: 0x043a, # CYRILLIC SMALL LETTER KA
91
+ 0x00ab: 0x043b, # CYRILLIC SMALL LETTER EL
92
+ 0x00ac: 0x043c, # CYRILLIC SMALL LETTER EM
93
+ 0x00ad: 0x043d, # CYRILLIC SMALL LETTER EN
94
+ 0x00ae: 0x043e, # CYRILLIC SMALL LETTER O
95
+ 0x00af: 0x043f, # CYRILLIC SMALL LETTER PE
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x0440, # CYRILLIC SMALL LETTER ER
145
+ 0x00e1: 0x0441, # CYRILLIC SMALL LETTER ES
146
+ 0x00e2: 0x0442, # CYRILLIC SMALL LETTER TE
147
+ 0x00e3: 0x0443, # CYRILLIC SMALL LETTER U
148
+ 0x00e4: 0x0444, # CYRILLIC SMALL LETTER EF
149
+ 0x00e5: 0x0445, # CYRILLIC SMALL LETTER HA
150
+ 0x00e6: 0x0446, # CYRILLIC SMALL LETTER TSE
151
+ 0x00e7: 0x0447, # CYRILLIC SMALL LETTER CHE
152
+ 0x00e8: 0x0448, # CYRILLIC SMALL LETTER SHA
153
+ 0x00e9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
154
+ 0x00ea: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
155
+ 0x00eb: 0x044b, # CYRILLIC SMALL LETTER YERU
156
+ 0x00ec: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
157
+ 0x00ed: 0x044d, # CYRILLIC SMALL LETTER E
158
+ 0x00ee: 0x044e, # CYRILLIC SMALL LETTER YU
159
+ 0x00ef: 0x044f, # CYRILLIC SMALL LETTER YA
160
+ 0x00f0: 0x0401, # CYRILLIC CAPITAL LETTER IO
161
+ 0x00f1: 0x0451, # CYRILLIC SMALL LETTER IO
162
+ 0x00f2: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
163
+ 0x00f3: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
164
+ 0x00f4: 0x0407, # CYRILLIC CAPITAL LETTER YI
165
+ 0x00f5: 0x0457, # CYRILLIC SMALL LETTER YI
166
+ 0x00f6: 0x040e, # CYRILLIC CAPITAL LETTER SHORT U
167
+ 0x00f7: 0x045e, # CYRILLIC SMALL LETTER SHORT U
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x2116, # NUMERO SIGN
173
+ 0x00fd: 0x00a4, # CURRENCY SIGN
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\u0410' # 0x0080 -> CYRILLIC CAPITAL LETTER A
310
+ '\u0411' # 0x0081 -> CYRILLIC CAPITAL LETTER BE
311
+ '\u0412' # 0x0082 -> CYRILLIC CAPITAL LETTER VE
312
+ '\u0413' # 0x0083 -> CYRILLIC CAPITAL LETTER GHE
313
+ '\u0414' # 0x0084 -> CYRILLIC CAPITAL LETTER DE
314
+ '\u0415' # 0x0085 -> CYRILLIC CAPITAL LETTER IE
315
+ '\u0416' # 0x0086 -> CYRILLIC CAPITAL LETTER ZHE
316
+ '\u0417' # 0x0087 -> CYRILLIC CAPITAL LETTER ZE
317
+ '\u0418' # 0x0088 -> CYRILLIC CAPITAL LETTER I
318
+ '\u0419' # 0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
319
+ '\u041a' # 0x008a -> CYRILLIC CAPITAL LETTER KA
320
+ '\u041b' # 0x008b -> CYRILLIC CAPITAL LETTER EL
321
+ '\u041c' # 0x008c -> CYRILLIC CAPITAL LETTER EM
322
+ '\u041d' # 0x008d -> CYRILLIC CAPITAL LETTER EN
323
+ '\u041e' # 0x008e -> CYRILLIC CAPITAL LETTER O
324
+ '\u041f' # 0x008f -> CYRILLIC CAPITAL LETTER PE
325
+ '\u0420' # 0x0090 -> CYRILLIC CAPITAL LETTER ER
326
+ '\u0421' # 0x0091 -> CYRILLIC CAPITAL LETTER ES
327
+ '\u0422' # 0x0092 -> CYRILLIC CAPITAL LETTER TE
328
+ '\u0423' # 0x0093 -> CYRILLIC CAPITAL LETTER U
329
+ '\u0424' # 0x0094 -> CYRILLIC CAPITAL LETTER EF
330
+ '\u0425' # 0x0095 -> CYRILLIC CAPITAL LETTER HA
331
+ '\u0426' # 0x0096 -> CYRILLIC CAPITAL LETTER TSE
332
+ '\u0427' # 0x0097 -> CYRILLIC CAPITAL LETTER CHE
333
+ '\u0428' # 0x0098 -> CYRILLIC CAPITAL LETTER SHA
334
+ '\u0429' # 0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
335
+ '\u042a' # 0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
336
+ '\u042b' # 0x009b -> CYRILLIC CAPITAL LETTER YERU
337
+ '\u042c' # 0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
338
+ '\u042d' # 0x009d -> CYRILLIC CAPITAL LETTER E
339
+ '\u042e' # 0x009e -> CYRILLIC CAPITAL LETTER YU
340
+ '\u042f' # 0x009f -> CYRILLIC CAPITAL LETTER YA
341
+ '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
342
+ '\u0431' # 0x00a1 -> CYRILLIC SMALL LETTER BE
343
+ '\u0432' # 0x00a2 -> CYRILLIC SMALL LETTER VE
344
+ '\u0433' # 0x00a3 -> CYRILLIC SMALL LETTER GHE
345
+ '\u0434' # 0x00a4 -> CYRILLIC SMALL LETTER DE
346
+ '\u0435' # 0x00a5 -> CYRILLIC SMALL LETTER IE
347
+ '\u0436' # 0x00a6 -> CYRILLIC SMALL LETTER ZHE
348
+ '\u0437' # 0x00a7 -> CYRILLIC SMALL LETTER ZE
349
+ '\u0438' # 0x00a8 -> CYRILLIC SMALL LETTER I
350
+ '\u0439' # 0x00a9 -> CYRILLIC SMALL LETTER SHORT I
351
+ '\u043a' # 0x00aa -> CYRILLIC SMALL LETTER KA
352
+ '\u043b' # 0x00ab -> CYRILLIC SMALL LETTER EL
353
+ '\u043c' # 0x00ac -> CYRILLIC SMALL LETTER EM
354
+ '\u043d' # 0x00ad -> CYRILLIC SMALL LETTER EN
355
+ '\u043e' # 0x00ae -> CYRILLIC SMALL LETTER O
356
+ '\u043f' # 0x00af -> CYRILLIC SMALL LETTER PE
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u0440' # 0x00e0 -> CYRILLIC SMALL LETTER ER
406
+ '\u0441' # 0x00e1 -> CYRILLIC SMALL LETTER ES
407
+ '\u0442' # 0x00e2 -> CYRILLIC SMALL LETTER TE
408
+ '\u0443' # 0x00e3 -> CYRILLIC SMALL LETTER U
409
+ '\u0444' # 0x00e4 -> CYRILLIC SMALL LETTER EF
410
+ '\u0445' # 0x00e5 -> CYRILLIC SMALL LETTER HA
411
+ '\u0446' # 0x00e6 -> CYRILLIC SMALL LETTER TSE
412
+ '\u0447' # 0x00e7 -> CYRILLIC SMALL LETTER CHE
413
+ '\u0448' # 0x00e8 -> CYRILLIC SMALL LETTER SHA
414
+ '\u0449' # 0x00e9 -> CYRILLIC SMALL LETTER SHCHA
415
+ '\u044a' # 0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
416
+ '\u044b' # 0x00eb -> CYRILLIC SMALL LETTER YERU
417
+ '\u044c' # 0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
418
+ '\u044d' # 0x00ed -> CYRILLIC SMALL LETTER E
419
+ '\u044e' # 0x00ee -> CYRILLIC SMALL LETTER YU
420
+ '\u044f' # 0x00ef -> CYRILLIC SMALL LETTER YA
421
+ '\u0401' # 0x00f0 -> CYRILLIC CAPITAL LETTER IO
422
+ '\u0451' # 0x00f1 -> CYRILLIC SMALL LETTER IO
423
+ '\u0404' # 0x00f2 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
424
+ '\u0454' # 0x00f3 -> CYRILLIC SMALL LETTER UKRAINIAN IE
425
+ '\u0407' # 0x00f4 -> CYRILLIC CAPITAL LETTER YI
426
+ '\u0457' # 0x00f5 -> CYRILLIC SMALL LETTER YI
427
+ '\u040e' # 0x00f6 -> CYRILLIC CAPITAL LETTER SHORT U
428
+ '\u045e' # 0x00f7 -> CYRILLIC SMALL LETTER SHORT U
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u2116' # 0x00fc -> NUMERO SIGN
434
+ '\xa4' # 0x00fd -> CURRENCY SIGN
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a4: 0x00fd, # CURRENCY SIGN
572
+ 0x00b0: 0x00f8, # DEGREE SIGN
573
+ 0x00b7: 0x00fa, # MIDDLE DOT
574
+ 0x0401: 0x00f0, # CYRILLIC CAPITAL LETTER IO
575
+ 0x0404: 0x00f2, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
576
+ 0x0407: 0x00f4, # CYRILLIC CAPITAL LETTER YI
577
+ 0x040e: 0x00f6, # CYRILLIC CAPITAL LETTER SHORT U
578
+ 0x0410: 0x0080, # CYRILLIC CAPITAL LETTER A
579
+ 0x0411: 0x0081, # CYRILLIC CAPITAL LETTER BE
580
+ 0x0412: 0x0082, # CYRILLIC CAPITAL LETTER VE
581
+ 0x0413: 0x0083, # CYRILLIC CAPITAL LETTER GHE
582
+ 0x0414: 0x0084, # CYRILLIC CAPITAL LETTER DE
583
+ 0x0415: 0x0085, # CYRILLIC CAPITAL LETTER IE
584
+ 0x0416: 0x0086, # CYRILLIC CAPITAL LETTER ZHE
585
+ 0x0417: 0x0087, # CYRILLIC CAPITAL LETTER ZE
586
+ 0x0418: 0x0088, # CYRILLIC CAPITAL LETTER I
587
+ 0x0419: 0x0089, # CYRILLIC CAPITAL LETTER SHORT I
588
+ 0x041a: 0x008a, # CYRILLIC CAPITAL LETTER KA
589
+ 0x041b: 0x008b, # CYRILLIC CAPITAL LETTER EL
590
+ 0x041c: 0x008c, # CYRILLIC CAPITAL LETTER EM
591
+ 0x041d: 0x008d, # CYRILLIC CAPITAL LETTER EN
592
+ 0x041e: 0x008e, # CYRILLIC CAPITAL LETTER O
593
+ 0x041f: 0x008f, # CYRILLIC CAPITAL LETTER PE
594
+ 0x0420: 0x0090, # CYRILLIC CAPITAL LETTER ER
595
+ 0x0421: 0x0091, # CYRILLIC CAPITAL LETTER ES
596
+ 0x0422: 0x0092, # CYRILLIC CAPITAL LETTER TE
597
+ 0x0423: 0x0093, # CYRILLIC CAPITAL LETTER U
598
+ 0x0424: 0x0094, # CYRILLIC CAPITAL LETTER EF
599
+ 0x0425: 0x0095, # CYRILLIC CAPITAL LETTER HA
600
+ 0x0426: 0x0096, # CYRILLIC CAPITAL LETTER TSE
601
+ 0x0427: 0x0097, # CYRILLIC CAPITAL LETTER CHE
602
+ 0x0428: 0x0098, # CYRILLIC CAPITAL LETTER SHA
603
+ 0x0429: 0x0099, # CYRILLIC CAPITAL LETTER SHCHA
604
+ 0x042a: 0x009a, # CYRILLIC CAPITAL LETTER HARD SIGN
605
+ 0x042b: 0x009b, # CYRILLIC CAPITAL LETTER YERU
606
+ 0x042c: 0x009c, # CYRILLIC CAPITAL LETTER SOFT SIGN
607
+ 0x042d: 0x009d, # CYRILLIC CAPITAL LETTER E
608
+ 0x042e: 0x009e, # CYRILLIC CAPITAL LETTER YU
609
+ 0x042f: 0x009f, # CYRILLIC CAPITAL LETTER YA
610
+ 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
611
+ 0x0431: 0x00a1, # CYRILLIC SMALL LETTER BE
612
+ 0x0432: 0x00a2, # CYRILLIC SMALL LETTER VE
613
+ 0x0433: 0x00a3, # CYRILLIC SMALL LETTER GHE
614
+ 0x0434: 0x00a4, # CYRILLIC SMALL LETTER DE
615
+ 0x0435: 0x00a5, # CYRILLIC SMALL LETTER IE
616
+ 0x0436: 0x00a6, # CYRILLIC SMALL LETTER ZHE
617
+ 0x0437: 0x00a7, # CYRILLIC SMALL LETTER ZE
618
+ 0x0438: 0x00a8, # CYRILLIC SMALL LETTER I
619
+ 0x0439: 0x00a9, # CYRILLIC SMALL LETTER SHORT I
620
+ 0x043a: 0x00aa, # CYRILLIC SMALL LETTER KA
621
+ 0x043b: 0x00ab, # CYRILLIC SMALL LETTER EL
622
+ 0x043c: 0x00ac, # CYRILLIC SMALL LETTER EM
623
+ 0x043d: 0x00ad, # CYRILLIC SMALL LETTER EN
624
+ 0x043e: 0x00ae, # CYRILLIC SMALL LETTER O
625
+ 0x043f: 0x00af, # CYRILLIC SMALL LETTER PE
626
+ 0x0440: 0x00e0, # CYRILLIC SMALL LETTER ER
627
+ 0x0441: 0x00e1, # CYRILLIC SMALL LETTER ES
628
+ 0x0442: 0x00e2, # CYRILLIC SMALL LETTER TE
629
+ 0x0443: 0x00e3, # CYRILLIC SMALL LETTER U
630
+ 0x0444: 0x00e4, # CYRILLIC SMALL LETTER EF
631
+ 0x0445: 0x00e5, # CYRILLIC SMALL LETTER HA
632
+ 0x0446: 0x00e6, # CYRILLIC SMALL LETTER TSE
633
+ 0x0447: 0x00e7, # CYRILLIC SMALL LETTER CHE
634
+ 0x0448: 0x00e8, # CYRILLIC SMALL LETTER SHA
635
+ 0x0449: 0x00e9, # CYRILLIC SMALL LETTER SHCHA
636
+ 0x044a: 0x00ea, # CYRILLIC SMALL LETTER HARD SIGN
637
+ 0x044b: 0x00eb, # CYRILLIC SMALL LETTER YERU
638
+ 0x044c: 0x00ec, # CYRILLIC SMALL LETTER SOFT SIGN
639
+ 0x044d: 0x00ed, # CYRILLIC SMALL LETTER E
640
+ 0x044e: 0x00ee, # CYRILLIC SMALL LETTER YU
641
+ 0x044f: 0x00ef, # CYRILLIC SMALL LETTER YA
642
+ 0x0451: 0x00f1, # CYRILLIC SMALL LETTER IO
643
+ 0x0454: 0x00f3, # CYRILLIC SMALL LETTER UKRAINIAN IE
644
+ 0x0457: 0x00f5, # CYRILLIC SMALL LETTER YI
645
+ 0x045e: 0x00f7, # CYRILLIC SMALL LETTER SHORT U
646
+ 0x2116: 0x00fc, # NUMERO SIGN
647
+ 0x2219: 0x00f9, # BULLET OPERATOR
648
+ 0x221a: 0x00fb, # SQUARE ROOT
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp869.py ADDED
@@ -0,0 +1,689 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP869.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp869',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: None, # UNDEFINED
49
+ 0x0081: None, # UNDEFINED
50
+ 0x0082: None, # UNDEFINED
51
+ 0x0083: None, # UNDEFINED
52
+ 0x0084: None, # UNDEFINED
53
+ 0x0085: None, # UNDEFINED
54
+ 0x0086: 0x0386, # GREEK CAPITAL LETTER ALPHA WITH TONOS
55
+ 0x0087: None, # UNDEFINED
56
+ 0x0088: 0x00b7, # MIDDLE DOT
57
+ 0x0089: 0x00ac, # NOT SIGN
58
+ 0x008a: 0x00a6, # BROKEN BAR
59
+ 0x008b: 0x2018, # LEFT SINGLE QUOTATION MARK
60
+ 0x008c: 0x2019, # RIGHT SINGLE QUOTATION MARK
61
+ 0x008d: 0x0388, # GREEK CAPITAL LETTER EPSILON WITH TONOS
62
+ 0x008e: 0x2015, # HORIZONTAL BAR
63
+ 0x008f: 0x0389, # GREEK CAPITAL LETTER ETA WITH TONOS
64
+ 0x0090: 0x038a, # GREEK CAPITAL LETTER IOTA WITH TONOS
65
+ 0x0091: 0x03aa, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
66
+ 0x0092: 0x038c, # GREEK CAPITAL LETTER OMICRON WITH TONOS
67
+ 0x0093: None, # UNDEFINED
68
+ 0x0094: None, # UNDEFINED
69
+ 0x0095: 0x038e, # GREEK CAPITAL LETTER UPSILON WITH TONOS
70
+ 0x0096: 0x03ab, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
71
+ 0x0097: 0x00a9, # COPYRIGHT SIGN
72
+ 0x0098: 0x038f, # GREEK CAPITAL LETTER OMEGA WITH TONOS
73
+ 0x0099: 0x00b2, # SUPERSCRIPT TWO
74
+ 0x009a: 0x00b3, # SUPERSCRIPT THREE
75
+ 0x009b: 0x03ac, # GREEK SMALL LETTER ALPHA WITH TONOS
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x03ad, # GREEK SMALL LETTER EPSILON WITH TONOS
78
+ 0x009e: 0x03ae, # GREEK SMALL LETTER ETA WITH TONOS
79
+ 0x009f: 0x03af, # GREEK SMALL LETTER IOTA WITH TONOS
80
+ 0x00a0: 0x03ca, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
81
+ 0x00a1: 0x0390, # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
82
+ 0x00a2: 0x03cc, # GREEK SMALL LETTER OMICRON WITH TONOS
83
+ 0x00a3: 0x03cd, # GREEK SMALL LETTER UPSILON WITH TONOS
84
+ 0x00a4: 0x0391, # GREEK CAPITAL LETTER ALPHA
85
+ 0x00a5: 0x0392, # GREEK CAPITAL LETTER BETA
86
+ 0x00a6: 0x0393, # GREEK CAPITAL LETTER GAMMA
87
+ 0x00a7: 0x0394, # GREEK CAPITAL LETTER DELTA
88
+ 0x00a8: 0x0395, # GREEK CAPITAL LETTER EPSILON
89
+ 0x00a9: 0x0396, # GREEK CAPITAL LETTER ZETA
90
+ 0x00aa: 0x0397, # GREEK CAPITAL LETTER ETA
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x0398, # GREEK CAPITAL LETTER THETA
93
+ 0x00ad: 0x0399, # GREEK CAPITAL LETTER IOTA
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x039a, # GREEK CAPITAL LETTER KAPPA
102
+ 0x00b6: 0x039b, # GREEK CAPITAL LETTER LAMDA
103
+ 0x00b7: 0x039c, # GREEK CAPITAL LETTER MU
104
+ 0x00b8: 0x039d, # GREEK CAPITAL LETTER NU
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x039e, # GREEK CAPITAL LETTER XI
110
+ 0x00be: 0x039f, # GREEK CAPITAL LETTER OMICRON
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x03a0, # GREEK CAPITAL LETTER PI
119
+ 0x00c7: 0x03a1, # GREEK CAPITAL LETTER RHO
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x03a3, # GREEK CAPITAL LETTER SIGMA
128
+ 0x00d0: 0x03a4, # GREEK CAPITAL LETTER TAU
129
+ 0x00d1: 0x03a5, # GREEK CAPITAL LETTER UPSILON
130
+ 0x00d2: 0x03a6, # GREEK CAPITAL LETTER PHI
131
+ 0x00d3: 0x03a7, # GREEK CAPITAL LETTER CHI
132
+ 0x00d4: 0x03a8, # GREEK CAPITAL LETTER PSI
133
+ 0x00d5: 0x03a9, # GREEK CAPITAL LETTER OMEGA
134
+ 0x00d6: 0x03b1, # GREEK SMALL LETTER ALPHA
135
+ 0x00d7: 0x03b2, # GREEK SMALL LETTER BETA
136
+ 0x00d8: 0x03b3, # GREEK SMALL LETTER GAMMA
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x03b4, # GREEK SMALL LETTER DELTA
142
+ 0x00de: 0x03b5, # GREEK SMALL LETTER EPSILON
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b6, # GREEK SMALL LETTER ZETA
145
+ 0x00e1: 0x03b7, # GREEK SMALL LETTER ETA
146
+ 0x00e2: 0x03b8, # GREEK SMALL LETTER THETA
147
+ 0x00e3: 0x03b9, # GREEK SMALL LETTER IOTA
148
+ 0x00e4: 0x03ba, # GREEK SMALL LETTER KAPPA
149
+ 0x00e5: 0x03bb, # GREEK SMALL LETTER LAMDA
150
+ 0x00e6: 0x03bc, # GREEK SMALL LETTER MU
151
+ 0x00e7: 0x03bd, # GREEK SMALL LETTER NU
152
+ 0x00e8: 0x03be, # GREEK SMALL LETTER XI
153
+ 0x00e9: 0x03bf, # GREEK SMALL LETTER OMICRON
154
+ 0x00ea: 0x03c0, # GREEK SMALL LETTER PI
155
+ 0x00eb: 0x03c1, # GREEK SMALL LETTER RHO
156
+ 0x00ec: 0x03c3, # GREEK SMALL LETTER SIGMA
157
+ 0x00ed: 0x03c2, # GREEK SMALL LETTER FINAL SIGMA
158
+ 0x00ee: 0x03c4, # GREEK SMALL LETTER TAU
159
+ 0x00ef: 0x0384, # GREEK TONOS
160
+ 0x00f0: 0x00ad, # SOFT HYPHEN
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x03c5, # GREEK SMALL LETTER UPSILON
163
+ 0x00f3: 0x03c6, # GREEK SMALL LETTER PHI
164
+ 0x00f4: 0x03c7, # GREEK SMALL LETTER CHI
165
+ 0x00f5: 0x00a7, # SECTION SIGN
166
+ 0x00f6: 0x03c8, # GREEK SMALL LETTER PSI
167
+ 0x00f7: 0x0385, # GREEK DIALYTIKA TONOS
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x00a8, # DIAERESIS
170
+ 0x00fa: 0x03c9, # GREEK SMALL LETTER OMEGA
171
+ 0x00fb: 0x03cb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
172
+ 0x00fc: 0x03b0, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
173
+ 0x00fd: 0x03ce, # GREEK SMALL LETTER OMEGA WITH TONOS
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\ufffe' # 0x0080 -> UNDEFINED
310
+ '\ufffe' # 0x0081 -> UNDEFINED
311
+ '\ufffe' # 0x0082 -> UNDEFINED
312
+ '\ufffe' # 0x0083 -> UNDEFINED
313
+ '\ufffe' # 0x0084 -> UNDEFINED
314
+ '\ufffe' # 0x0085 -> UNDEFINED
315
+ '\u0386' # 0x0086 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
316
+ '\ufffe' # 0x0087 -> UNDEFINED
317
+ '\xb7' # 0x0088 -> MIDDLE DOT
318
+ '\xac' # 0x0089 -> NOT SIGN
319
+ '\xa6' # 0x008a -> BROKEN BAR
320
+ '\u2018' # 0x008b -> LEFT SINGLE QUOTATION MARK
321
+ '\u2019' # 0x008c -> RIGHT SINGLE QUOTATION MARK
322
+ '\u0388' # 0x008d -> GREEK CAPITAL LETTER EPSILON WITH TONOS
323
+ '\u2015' # 0x008e -> HORIZONTAL BAR
324
+ '\u0389' # 0x008f -> GREEK CAPITAL LETTER ETA WITH TONOS
325
+ '\u038a' # 0x0090 -> GREEK CAPITAL LETTER IOTA WITH TONOS
326
+ '\u03aa' # 0x0091 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
327
+ '\u038c' # 0x0092 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
328
+ '\ufffe' # 0x0093 -> UNDEFINED
329
+ '\ufffe' # 0x0094 -> UNDEFINED
330
+ '\u038e' # 0x0095 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
331
+ '\u03ab' # 0x0096 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
332
+ '\xa9' # 0x0097 -> COPYRIGHT SIGN
333
+ '\u038f' # 0x0098 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
334
+ '\xb2' # 0x0099 -> SUPERSCRIPT TWO
335
+ '\xb3' # 0x009a -> SUPERSCRIPT THREE
336
+ '\u03ac' # 0x009b -> GREEK SMALL LETTER ALPHA WITH TONOS
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\u03ad' # 0x009d -> GREEK SMALL LETTER EPSILON WITH TONOS
339
+ '\u03ae' # 0x009e -> GREEK SMALL LETTER ETA WITH TONOS
340
+ '\u03af' # 0x009f -> GREEK SMALL LETTER IOTA WITH TONOS
341
+ '\u03ca' # 0x00a0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
342
+ '\u0390' # 0x00a1 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
343
+ '\u03cc' # 0x00a2 -> GREEK SMALL LETTER OMICRON WITH TONOS
344
+ '\u03cd' # 0x00a3 -> GREEK SMALL LETTER UPSILON WITH TONOS
345
+ '\u0391' # 0x00a4 -> GREEK CAPITAL LETTER ALPHA
346
+ '\u0392' # 0x00a5 -> GREEK CAPITAL LETTER BETA
347
+ '\u0393' # 0x00a6 -> GREEK CAPITAL LETTER GAMMA
348
+ '\u0394' # 0x00a7 -> GREEK CAPITAL LETTER DELTA
349
+ '\u0395' # 0x00a8 -> GREEK CAPITAL LETTER EPSILON
350
+ '\u0396' # 0x00a9 -> GREEK CAPITAL LETTER ZETA
351
+ '\u0397' # 0x00aa -> GREEK CAPITAL LETTER ETA
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\u0398' # 0x00ac -> GREEK CAPITAL LETTER THETA
354
+ '\u0399' # 0x00ad -> GREEK CAPITAL LETTER IOTA
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u039a' # 0x00b5 -> GREEK CAPITAL LETTER KAPPA
363
+ '\u039b' # 0x00b6 -> GREEK CAPITAL LETTER LAMDA
364
+ '\u039c' # 0x00b7 -> GREEK CAPITAL LETTER MU
365
+ '\u039d' # 0x00b8 -> GREEK CAPITAL LETTER NU
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u039e' # 0x00bd -> GREEK CAPITAL LETTER XI
371
+ '\u039f' # 0x00be -> GREEK CAPITAL LETTER OMICRON
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u03a0' # 0x00c6 -> GREEK CAPITAL LETTER PI
380
+ '\u03a1' # 0x00c7 -> GREEK CAPITAL LETTER RHO
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u03a3' # 0x00cf -> GREEK CAPITAL LETTER SIGMA
389
+ '\u03a4' # 0x00d0 -> GREEK CAPITAL LETTER TAU
390
+ '\u03a5' # 0x00d1 -> GREEK CAPITAL LETTER UPSILON
391
+ '\u03a6' # 0x00d2 -> GREEK CAPITAL LETTER PHI
392
+ '\u03a7' # 0x00d3 -> GREEK CAPITAL LETTER CHI
393
+ '\u03a8' # 0x00d4 -> GREEK CAPITAL LETTER PSI
394
+ '\u03a9' # 0x00d5 -> GREEK CAPITAL LETTER OMEGA
395
+ '\u03b1' # 0x00d6 -> GREEK SMALL LETTER ALPHA
396
+ '\u03b2' # 0x00d7 -> GREEK SMALL LETTER BETA
397
+ '\u03b3' # 0x00d8 -> GREEK SMALL LETTER GAMMA
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u03b4' # 0x00dd -> GREEK SMALL LETTER DELTA
403
+ '\u03b5' # 0x00de -> GREEK SMALL LETTER EPSILON
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b6' # 0x00e0 -> GREEK SMALL LETTER ZETA
406
+ '\u03b7' # 0x00e1 -> GREEK SMALL LETTER ETA
407
+ '\u03b8' # 0x00e2 -> GREEK SMALL LETTER THETA
408
+ '\u03b9' # 0x00e3 -> GREEK SMALL LETTER IOTA
409
+ '\u03ba' # 0x00e4 -> GREEK SMALL LETTER KAPPA
410
+ '\u03bb' # 0x00e5 -> GREEK SMALL LETTER LAMDA
411
+ '\u03bc' # 0x00e6 -> GREEK SMALL LETTER MU
412
+ '\u03bd' # 0x00e7 -> GREEK SMALL LETTER NU
413
+ '\u03be' # 0x00e8 -> GREEK SMALL LETTER XI
414
+ '\u03bf' # 0x00e9 -> GREEK SMALL LETTER OMICRON
415
+ '\u03c0' # 0x00ea -> GREEK SMALL LETTER PI
416
+ '\u03c1' # 0x00eb -> GREEK SMALL LETTER RHO
417
+ '\u03c3' # 0x00ec -> GREEK SMALL LETTER SIGMA
418
+ '\u03c2' # 0x00ed -> GREEK SMALL LETTER FINAL SIGMA
419
+ '\u03c4' # 0x00ee -> GREEK SMALL LETTER TAU
420
+ '\u0384' # 0x00ef -> GREEK TONOS
421
+ '\xad' # 0x00f0 -> SOFT HYPHEN
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u03c5' # 0x00f2 -> GREEK SMALL LETTER UPSILON
424
+ '\u03c6' # 0x00f3 -> GREEK SMALL LETTER PHI
425
+ '\u03c7' # 0x00f4 -> GREEK SMALL LETTER CHI
426
+ '\xa7' # 0x00f5 -> SECTION SIGN
427
+ '\u03c8' # 0x00f6 -> GREEK SMALL LETTER PSI
428
+ '\u0385' # 0x00f7 -> GREEK DIALYTIKA TONOS
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\xa8' # 0x00f9 -> DIAERESIS
431
+ '\u03c9' # 0x00fa -> GREEK SMALL LETTER OMEGA
432
+ '\u03cb' # 0x00fb -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
433
+ '\u03b0' # 0x00fc -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
434
+ '\u03ce' # 0x00fd -> GREEK SMALL LETTER OMEGA WITH TONOS
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a3: 0x009c, # POUND SIGN
572
+ 0x00a6: 0x008a, # BROKEN BAR
573
+ 0x00a7: 0x00f5, # SECTION SIGN
574
+ 0x00a8: 0x00f9, # DIAERESIS
575
+ 0x00a9: 0x0097, # COPYRIGHT SIGN
576
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
577
+ 0x00ac: 0x0089, # NOT SIGN
578
+ 0x00ad: 0x00f0, # SOFT HYPHEN
579
+ 0x00b0: 0x00f8, # DEGREE SIGN
580
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
581
+ 0x00b2: 0x0099, # SUPERSCRIPT TWO
582
+ 0x00b3: 0x009a, # SUPERSCRIPT THREE
583
+ 0x00b7: 0x0088, # MIDDLE DOT
584
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
585
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
586
+ 0x0384: 0x00ef, # GREEK TONOS
587
+ 0x0385: 0x00f7, # GREEK DIALYTIKA TONOS
588
+ 0x0386: 0x0086, # GREEK CAPITAL LETTER ALPHA WITH TONOS
589
+ 0x0388: 0x008d, # GREEK CAPITAL LETTER EPSILON WITH TONOS
590
+ 0x0389: 0x008f, # GREEK CAPITAL LETTER ETA WITH TONOS
591
+ 0x038a: 0x0090, # GREEK CAPITAL LETTER IOTA WITH TONOS
592
+ 0x038c: 0x0092, # GREEK CAPITAL LETTER OMICRON WITH TONOS
593
+ 0x038e: 0x0095, # GREEK CAPITAL LETTER UPSILON WITH TONOS
594
+ 0x038f: 0x0098, # GREEK CAPITAL LETTER OMEGA WITH TONOS
595
+ 0x0390: 0x00a1, # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
596
+ 0x0391: 0x00a4, # GREEK CAPITAL LETTER ALPHA
597
+ 0x0392: 0x00a5, # GREEK CAPITAL LETTER BETA
598
+ 0x0393: 0x00a6, # GREEK CAPITAL LETTER GAMMA
599
+ 0x0394: 0x00a7, # GREEK CAPITAL LETTER DELTA
600
+ 0x0395: 0x00a8, # GREEK CAPITAL LETTER EPSILON
601
+ 0x0396: 0x00a9, # GREEK CAPITAL LETTER ZETA
602
+ 0x0397: 0x00aa, # GREEK CAPITAL LETTER ETA
603
+ 0x0398: 0x00ac, # GREEK CAPITAL LETTER THETA
604
+ 0x0399: 0x00ad, # GREEK CAPITAL LETTER IOTA
605
+ 0x039a: 0x00b5, # GREEK CAPITAL LETTER KAPPA
606
+ 0x039b: 0x00b6, # GREEK CAPITAL LETTER LAMDA
607
+ 0x039c: 0x00b7, # GREEK CAPITAL LETTER MU
608
+ 0x039d: 0x00b8, # GREEK CAPITAL LETTER NU
609
+ 0x039e: 0x00bd, # GREEK CAPITAL LETTER XI
610
+ 0x039f: 0x00be, # GREEK CAPITAL LETTER OMICRON
611
+ 0x03a0: 0x00c6, # GREEK CAPITAL LETTER PI
612
+ 0x03a1: 0x00c7, # GREEK CAPITAL LETTER RHO
613
+ 0x03a3: 0x00cf, # GREEK CAPITAL LETTER SIGMA
614
+ 0x03a4: 0x00d0, # GREEK CAPITAL LETTER TAU
615
+ 0x03a5: 0x00d1, # GREEK CAPITAL LETTER UPSILON
616
+ 0x03a6: 0x00d2, # GREEK CAPITAL LETTER PHI
617
+ 0x03a7: 0x00d3, # GREEK CAPITAL LETTER CHI
618
+ 0x03a8: 0x00d4, # GREEK CAPITAL LETTER PSI
619
+ 0x03a9: 0x00d5, # GREEK CAPITAL LETTER OMEGA
620
+ 0x03aa: 0x0091, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
621
+ 0x03ab: 0x0096, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
622
+ 0x03ac: 0x009b, # GREEK SMALL LETTER ALPHA WITH TONOS
623
+ 0x03ad: 0x009d, # GREEK SMALL LETTER EPSILON WITH TONOS
624
+ 0x03ae: 0x009e, # GREEK SMALL LETTER ETA WITH TONOS
625
+ 0x03af: 0x009f, # GREEK SMALL LETTER IOTA WITH TONOS
626
+ 0x03b0: 0x00fc, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
627
+ 0x03b1: 0x00d6, # GREEK SMALL LETTER ALPHA
628
+ 0x03b2: 0x00d7, # GREEK SMALL LETTER BETA
629
+ 0x03b3: 0x00d8, # GREEK SMALL LETTER GAMMA
630
+ 0x03b4: 0x00dd, # GREEK SMALL LETTER DELTA
631
+ 0x03b5: 0x00de, # GREEK SMALL LETTER EPSILON
632
+ 0x03b6: 0x00e0, # GREEK SMALL LETTER ZETA
633
+ 0x03b7: 0x00e1, # GREEK SMALL LETTER ETA
634
+ 0x03b8: 0x00e2, # GREEK SMALL LETTER THETA
635
+ 0x03b9: 0x00e3, # GREEK SMALL LETTER IOTA
636
+ 0x03ba: 0x00e4, # GREEK SMALL LETTER KAPPA
637
+ 0x03bb: 0x00e5, # GREEK SMALL LETTER LAMDA
638
+ 0x03bc: 0x00e6, # GREEK SMALL LETTER MU
639
+ 0x03bd: 0x00e7, # GREEK SMALL LETTER NU
640
+ 0x03be: 0x00e8, # GREEK SMALL LETTER XI
641
+ 0x03bf: 0x00e9, # GREEK SMALL LETTER OMICRON
642
+ 0x03c0: 0x00ea, # GREEK SMALL LETTER PI
643
+ 0x03c1: 0x00eb, # GREEK SMALL LETTER RHO
644
+ 0x03c2: 0x00ed, # GREEK SMALL LETTER FINAL SIGMA
645
+ 0x03c3: 0x00ec, # GREEK SMALL LETTER SIGMA
646
+ 0x03c4: 0x00ee, # GREEK SMALL LETTER TAU
647
+ 0x03c5: 0x00f2, # GREEK SMALL LETTER UPSILON
648
+ 0x03c6: 0x00f3, # GREEK SMALL LETTER PHI
649
+ 0x03c7: 0x00f4, # GREEK SMALL LETTER CHI
650
+ 0x03c8: 0x00f6, # GREEK SMALL LETTER PSI
651
+ 0x03c9: 0x00fa, # GREEK SMALL LETTER OMEGA
652
+ 0x03ca: 0x00a0, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
653
+ 0x03cb: 0x00fb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
654
+ 0x03cc: 0x00a2, # GREEK SMALL LETTER OMICRON WITH TONOS
655
+ 0x03cd: 0x00a3, # GREEK SMALL LETTER UPSILON WITH TONOS
656
+ 0x03ce: 0x00fd, # GREEK SMALL LETTER OMEGA WITH TONOS
657
+ 0x2015: 0x008e, # HORIZONTAL BAR
658
+ 0x2018: 0x008b, # LEFT SINGLE QUOTATION MARK
659
+ 0x2019: 0x008c, # RIGHT SINGLE QUOTATION MARK
660
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
661
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
662
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
663
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
664
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
665
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
666
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
667
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
668
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
669
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
670
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
671
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
672
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
673
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
674
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
675
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
676
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
677
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
678
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
679
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
680
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
681
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
682
+ 0x2580: 0x00df, # UPPER HALF BLOCK
683
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
684
+ 0x2588: 0x00db, # FULL BLOCK
685
+ 0x2591: 0x00b0, # LIGHT SHADE
686
+ 0x2592: 0x00b1, # MEDIUM SHADE
687
+ 0x2593: 0x00b2, # DARK SHADE
688
+ 0x25a0: 0x00fe, # BLACK SQUARE
689
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp874.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp874 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP874.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp874',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\ufffe' # 0x82 -> UNDEFINED
179
+ '\ufffe' # 0x83 -> UNDEFINED
180
+ '\ufffe' # 0x84 -> UNDEFINED
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\ufffe' # 0x86 -> UNDEFINED
183
+ '\ufffe' # 0x87 -> UNDEFINED
184
+ '\ufffe' # 0x88 -> UNDEFINED
185
+ '\ufffe' # 0x89 -> UNDEFINED
186
+ '\ufffe' # 0x8A -> UNDEFINED
187
+ '\ufffe' # 0x8B -> UNDEFINED
188
+ '\ufffe' # 0x8C -> UNDEFINED
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\ufffe' # 0x98 -> UNDEFINED
201
+ '\ufffe' # 0x99 -> UNDEFINED
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\ufffe' # 0x9B -> UNDEFINED
204
+ '\ufffe' # 0x9C -> UNDEFINED
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\ufffe' # 0x9F -> UNDEFINED
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0e01' # 0xA1 -> THAI CHARACTER KO KAI
210
+ '\u0e02' # 0xA2 -> THAI CHARACTER KHO KHAI
211
+ '\u0e03' # 0xA3 -> THAI CHARACTER KHO KHUAT
212
+ '\u0e04' # 0xA4 -> THAI CHARACTER KHO KHWAI
213
+ '\u0e05' # 0xA5 -> THAI CHARACTER KHO KHON
214
+ '\u0e06' # 0xA6 -> THAI CHARACTER KHO RAKHANG
215
+ '\u0e07' # 0xA7 -> THAI CHARACTER NGO NGU
216
+ '\u0e08' # 0xA8 -> THAI CHARACTER CHO CHAN
217
+ '\u0e09' # 0xA9 -> THAI CHARACTER CHO CHING
218
+ '\u0e0a' # 0xAA -> THAI CHARACTER CHO CHANG
219
+ '\u0e0b' # 0xAB -> THAI CHARACTER SO SO
220
+ '\u0e0c' # 0xAC -> THAI CHARACTER CHO CHOE
221
+ '\u0e0d' # 0xAD -> THAI CHARACTER YO YING
222
+ '\u0e0e' # 0xAE -> THAI CHARACTER DO CHADA
223
+ '\u0e0f' # 0xAF -> THAI CHARACTER TO PATAK
224
+ '\u0e10' # 0xB0 -> THAI CHARACTER THO THAN
225
+ '\u0e11' # 0xB1 -> THAI CHARACTER THO NANGMONTHO
226
+ '\u0e12' # 0xB2 -> THAI CHARACTER THO PHUTHAO
227
+ '\u0e13' # 0xB3 -> THAI CHARACTER NO NEN
228
+ '\u0e14' # 0xB4 -> THAI CHARACTER DO DEK
229
+ '\u0e15' # 0xB5 -> THAI CHARACTER TO TAO
230
+ '\u0e16' # 0xB6 -> THAI CHARACTER THO THUNG
231
+ '\u0e17' # 0xB7 -> THAI CHARACTER THO THAHAN
232
+ '\u0e18' # 0xB8 -> THAI CHARACTER THO THONG
233
+ '\u0e19' # 0xB9 -> THAI CHARACTER NO NU
234
+ '\u0e1a' # 0xBA -> THAI CHARACTER BO BAIMAI
235
+ '\u0e1b' # 0xBB -> THAI CHARACTER PO PLA
236
+ '\u0e1c' # 0xBC -> THAI CHARACTER PHO PHUNG
237
+ '\u0e1d' # 0xBD -> THAI CHARACTER FO FA
238
+ '\u0e1e' # 0xBE -> THAI CHARACTER PHO PHAN
239
+ '\u0e1f' # 0xBF -> THAI CHARACTER FO FAN
240
+ '\u0e20' # 0xC0 -> THAI CHARACTER PHO SAMPHAO
241
+ '\u0e21' # 0xC1 -> THAI CHARACTER MO MA
242
+ '\u0e22' # 0xC2 -> THAI CHARACTER YO YAK
243
+ '\u0e23' # 0xC3 -> THAI CHARACTER RO RUA
244
+ '\u0e24' # 0xC4 -> THAI CHARACTER RU
245
+ '\u0e25' # 0xC5 -> THAI CHARACTER LO LING
246
+ '\u0e26' # 0xC6 -> THAI CHARACTER LU
247
+ '\u0e27' # 0xC7 -> THAI CHARACTER WO WAEN
248
+ '\u0e28' # 0xC8 -> THAI CHARACTER SO SALA
249
+ '\u0e29' # 0xC9 -> THAI CHARACTER SO RUSI
250
+ '\u0e2a' # 0xCA -> THAI CHARACTER SO SUA
251
+ '\u0e2b' # 0xCB -> THAI CHARACTER HO HIP
252
+ '\u0e2c' # 0xCC -> THAI CHARACTER LO CHULA
253
+ '\u0e2d' # 0xCD -> THAI CHARACTER O ANG
254
+ '\u0e2e' # 0xCE -> THAI CHARACTER HO NOKHUK
255
+ '\u0e2f' # 0xCF -> THAI CHARACTER PAIYANNOI
256
+ '\u0e30' # 0xD0 -> THAI CHARACTER SARA A
257
+ '\u0e31' # 0xD1 -> THAI CHARACTER MAI HAN-AKAT
258
+ '\u0e32' # 0xD2 -> THAI CHARACTER SARA AA
259
+ '\u0e33' # 0xD3 -> THAI CHARACTER SARA AM
260
+ '\u0e34' # 0xD4 -> THAI CHARACTER SARA I
261
+ '\u0e35' # 0xD5 -> THAI CHARACTER SARA II
262
+ '\u0e36' # 0xD6 -> THAI CHARACTER SARA UE
263
+ '\u0e37' # 0xD7 -> THAI CHARACTER SARA UEE
264
+ '\u0e38' # 0xD8 -> THAI CHARACTER SARA U
265
+ '\u0e39' # 0xD9 -> THAI CHARACTER SARA UU
266
+ '\u0e3a' # 0xDA -> THAI CHARACTER PHINTHU
267
+ '\ufffe' # 0xDB -> UNDEFINED
268
+ '\ufffe' # 0xDC -> UNDEFINED
269
+ '\ufffe' # 0xDD -> UNDEFINED
270
+ '\ufffe' # 0xDE -> UNDEFINED
271
+ '\u0e3f' # 0xDF -> THAI CURRENCY SYMBOL BAHT
272
+ '\u0e40' # 0xE0 -> THAI CHARACTER SARA E
273
+ '\u0e41' # 0xE1 -> THAI CHARACTER SARA AE
274
+ '\u0e42' # 0xE2 -> THAI CHARACTER SARA O
275
+ '\u0e43' # 0xE3 -> THAI CHARACTER SARA AI MAIMUAN
276
+ '\u0e44' # 0xE4 -> THAI CHARACTER SARA AI MAIMALAI
277
+ '\u0e45' # 0xE5 -> THAI CHARACTER LAKKHANGYAO
278
+ '\u0e46' # 0xE6 -> THAI CHARACTER MAIYAMOK
279
+ '\u0e47' # 0xE7 -> THAI CHARACTER MAITAIKHU
280
+ '\u0e48' # 0xE8 -> THAI CHARACTER MAI EK
281
+ '\u0e49' # 0xE9 -> THAI CHARACTER MAI THO
282
+ '\u0e4a' # 0xEA -> THAI CHARACTER MAI TRI
283
+ '\u0e4b' # 0xEB -> THAI CHARACTER MAI CHATTAWA
284
+ '\u0e4c' # 0xEC -> THAI CHARACTER THANTHAKHAT
285
+ '\u0e4d' # 0xED -> THAI CHARACTER NIKHAHIT
286
+ '\u0e4e' # 0xEE -> THAI CHARACTER YAMAKKAN
287
+ '\u0e4f' # 0xEF -> THAI CHARACTER FONGMAN
288
+ '\u0e50' # 0xF0 -> THAI DIGIT ZERO
289
+ '\u0e51' # 0xF1 -> THAI DIGIT ONE
290
+ '\u0e52' # 0xF2 -> THAI DIGIT TWO
291
+ '\u0e53' # 0xF3 -> THAI DIGIT THREE
292
+ '\u0e54' # 0xF4 -> THAI DIGIT FOUR
293
+ '\u0e55' # 0xF5 -> THAI DIGIT FIVE
294
+ '\u0e56' # 0xF6 -> THAI DIGIT SIX
295
+ '\u0e57' # 0xF7 -> THAI DIGIT SEVEN
296
+ '\u0e58' # 0xF8 -> THAI DIGIT EIGHT
297
+ '\u0e59' # 0xF9 -> THAI DIGIT NINE
298
+ '\u0e5a' # 0xFA -> THAI CHARACTER ANGKHANKHU
299
+ '\u0e5b' # 0xFB -> THAI CHARACTER KHOMUT
300
+ '\ufffe' # 0xFC -> UNDEFINED
301
+ '\ufffe' # 0xFD -> UNDEFINED
302
+ '\ufffe' # 0xFE -> UNDEFINED
303
+ '\ufffe' # 0xFF -> UNDEFINED
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp875.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp875 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp875',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> CONTROL
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> CONTROL
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> CONTROL
57
+ '\x8d' # 0x09 -> CONTROL
58
+ '\x8e' # 0x0A -> CONTROL
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> CONTROL
69
+ '\x85' # 0x15 -> CONTROL
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> CONTROL
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> CONTROL
75
+ '\x8f' # 0x1B -> CONTROL
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> CONTROL
81
+ '\x81' # 0x21 -> CONTROL
82
+ '\x82' # 0x22 -> CONTROL
83
+ '\x83' # 0x23 -> CONTROL
84
+ '\x84' # 0x24 -> CONTROL
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> CONTROL
89
+ '\x89' # 0x29 -> CONTROL
90
+ '\x8a' # 0x2A -> CONTROL
91
+ '\x8b' # 0x2B -> CONTROL
92
+ '\x8c' # 0x2C -> CONTROL
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> CONTROL
97
+ '\x91' # 0x31 -> CONTROL
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> CONTROL
100
+ '\x94' # 0x34 -> CONTROL
101
+ '\x95' # 0x35 -> CONTROL
102
+ '\x96' # 0x36 -> CONTROL
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> CONTROL
105
+ '\x99' # 0x39 -> CONTROL
106
+ '\x9a' # 0x3A -> CONTROL
107
+ '\x9b' # 0x3B -> CONTROL
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> CONTROL
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\u0391' # 0x41 -> GREEK CAPITAL LETTER ALPHA
114
+ '\u0392' # 0x42 -> GREEK CAPITAL LETTER BETA
115
+ '\u0393' # 0x43 -> GREEK CAPITAL LETTER GAMMA
116
+ '\u0394' # 0x44 -> GREEK CAPITAL LETTER DELTA
117
+ '\u0395' # 0x45 -> GREEK CAPITAL LETTER EPSILON
118
+ '\u0396' # 0x46 -> GREEK CAPITAL LETTER ZETA
119
+ '\u0397' # 0x47 -> GREEK CAPITAL LETTER ETA
120
+ '\u0398' # 0x48 -> GREEK CAPITAL LETTER THETA
121
+ '\u0399' # 0x49 -> GREEK CAPITAL LETTER IOTA
122
+ '[' # 0x4A -> LEFT SQUARE BRACKET
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '!' # 0x4F -> EXCLAMATION MARK
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\u039a' # 0x51 -> GREEK CAPITAL LETTER KAPPA
130
+ '\u039b' # 0x52 -> GREEK CAPITAL LETTER LAMDA
131
+ '\u039c' # 0x53 -> GREEK CAPITAL LETTER MU
132
+ '\u039d' # 0x54 -> GREEK CAPITAL LETTER NU
133
+ '\u039e' # 0x55 -> GREEK CAPITAL LETTER XI
134
+ '\u039f' # 0x56 -> GREEK CAPITAL LETTER OMICRON
135
+ '\u03a0' # 0x57 -> GREEK CAPITAL LETTER PI
136
+ '\u03a1' # 0x58 -> GREEK CAPITAL LETTER RHO
137
+ '\u03a3' # 0x59 -> GREEK CAPITAL LETTER SIGMA
138
+ ']' # 0x5A -> RIGHT SQUARE BRACKET
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '^' # 0x5F -> CIRCUMFLEX ACCENT
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\u03a4' # 0x62 -> GREEK CAPITAL LETTER TAU
147
+ '\u03a5' # 0x63 -> GREEK CAPITAL LETTER UPSILON
148
+ '\u03a6' # 0x64 -> GREEK CAPITAL LETTER PHI
149
+ '\u03a7' # 0x65 -> GREEK CAPITAL LETTER CHI
150
+ '\u03a8' # 0x66 -> GREEK CAPITAL LETTER PSI
151
+ '\u03a9' # 0x67 -> GREEK CAPITAL LETTER OMEGA
152
+ '\u03aa' # 0x68 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
153
+ '\u03ab' # 0x69 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
154
+ '|' # 0x6A -> VERTICAL LINE
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xa8' # 0x70 -> DIAERESIS
161
+ '\u0386' # 0x71 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
162
+ '\u0388' # 0x72 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
163
+ '\u0389' # 0x73 -> GREEK CAPITAL LETTER ETA WITH TONOS
164
+ '\xa0' # 0x74 -> NO-BREAK SPACE
165
+ '\u038a' # 0x75 -> GREEK CAPITAL LETTER IOTA WITH TONOS
166
+ '\u038c' # 0x76 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
167
+ '\u038e' # 0x77 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
168
+ '\u038f' # 0x78 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '@' # 0x7C -> COMMERCIAL AT
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\u0385' # 0x80 -> GREEK DIALYTIKA TONOS
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\u03b1' # 0x8A -> GREEK SMALL LETTER ALPHA
187
+ '\u03b2' # 0x8B -> GREEK SMALL LETTER BETA
188
+ '\u03b3' # 0x8C -> GREEK SMALL LETTER GAMMA
189
+ '\u03b4' # 0x8D -> GREEK SMALL LETTER DELTA
190
+ '\u03b5' # 0x8E -> GREEK SMALL LETTER EPSILON
191
+ '\u03b6' # 0x8F -> GREEK SMALL LETTER ZETA
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\u03b7' # 0x9A -> GREEK SMALL LETTER ETA
203
+ '\u03b8' # 0x9B -> GREEK SMALL LETTER THETA
204
+ '\u03b9' # 0x9C -> GREEK SMALL LETTER IOTA
205
+ '\u03ba' # 0x9D -> GREEK SMALL LETTER KAPPA
206
+ '\u03bb' # 0x9E -> GREEK SMALL LETTER LAMDA
207
+ '\u03bc' # 0x9F -> GREEK SMALL LETTER MU
208
+ '\xb4' # 0xA0 -> ACUTE ACCENT
209
+ '~' # 0xA1 -> TILDE
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\u03bd' # 0xAA -> GREEK SMALL LETTER NU
219
+ '\u03be' # 0xAB -> GREEK SMALL LETTER XI
220
+ '\u03bf' # 0xAC -> GREEK SMALL LETTER OMICRON
221
+ '\u03c0' # 0xAD -> GREEK SMALL LETTER PI
222
+ '\u03c1' # 0xAE -> GREEK SMALL LETTER RHO
223
+ '\u03c3' # 0xAF -> GREEK SMALL LETTER SIGMA
224
+ '\xa3' # 0xB0 -> POUND SIGN
225
+ '\u03ac' # 0xB1 -> GREEK SMALL LETTER ALPHA WITH TONOS
226
+ '\u03ad' # 0xB2 -> GREEK SMALL LETTER EPSILON WITH TONOS
227
+ '\u03ae' # 0xB3 -> GREEK SMALL LETTER ETA WITH TONOS
228
+ '\u03ca' # 0xB4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
229
+ '\u03af' # 0xB5 -> GREEK SMALL LETTER IOTA WITH TONOS
230
+ '\u03cc' # 0xB6 -> GREEK SMALL LETTER OMICRON WITH TONOS
231
+ '\u03cd' # 0xB7 -> GREEK SMALL LETTER UPSILON WITH TONOS
232
+ '\u03cb' # 0xB8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
233
+ '\u03ce' # 0xB9 -> GREEK SMALL LETTER OMEGA WITH TONOS
234
+ '\u03c2' # 0xBA -> GREEK SMALL LETTER FINAL SIGMA
235
+ '\u03c4' # 0xBB -> GREEK SMALL LETTER TAU
236
+ '\u03c5' # 0xBC -> GREEK SMALL LETTER UPSILON
237
+ '\u03c6' # 0xBD -> GREEK SMALL LETTER PHI
238
+ '\u03c7' # 0xBE -> GREEK SMALL LETTER CHI
239
+ '\u03c8' # 0xBF -> GREEK SMALL LETTER PSI
240
+ '{' # 0xC0 -> LEFT CURLY BRACKET
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\u03c9' # 0xCB -> GREEK SMALL LETTER OMEGA
252
+ '\u0390' # 0xCC -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
253
+ '\u03b0' # 0xCD -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
254
+ '\u2018' # 0xCE -> LEFT SINGLE QUOTATION MARK
255
+ '\u2015' # 0xCF -> HORIZONTAL BAR
256
+ '}' # 0xD0 -> RIGHT CURLY BRACKET
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb1' # 0xDA -> PLUS-MINUS SIGN
267
+ '\xbd' # 0xDB -> VULGAR FRACTION ONE HALF
268
+ '\x1a' # 0xDC -> SUBSTITUTE
269
+ '\u0387' # 0xDD -> GREEK ANO TELEIA
270
+ '\u2019' # 0xDE -> RIGHT SINGLE QUOTATION MARK
271
+ '\xa6' # 0xDF -> BROKEN BAR
272
+ '\\' # 0xE0 -> REVERSE SOLIDUS
273
+ '\x1a' # 0xE1 -> SUBSTITUTE
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xa7' # 0xEB -> SECTION SIGN
284
+ '\x1a' # 0xEC -> SUBSTITUTE
285
+ '\x1a' # 0xED -> SUBSTITUTE
286
+ '\xab' # 0xEE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
287
+ '\xac' # 0xEF -> NOT SIGN
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xa9' # 0xFB -> COPYRIGHT SIGN
300
+ '\x1a' # 0xFC -> SUBSTITUTE
301
+ '\x1a' # 0xFD -> SUBSTITUTE
302
+ '\xbb' # 0xFE -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
303
+ '\x9f' # 0xFF -> CONTROL
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp950.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # cp950.py: Python Unicode Codec for CP950
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_tw, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_tw.getcodec('cp950')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='cp950',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jisx0213.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # euc_jisx0213.py: Python Unicode Codec for EUC_JISX0213
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_jp, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_jp.getcodec('euc_jisx0213')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='euc_jisx0213',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_kr.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # euc_kr.py: Python Unicode Codec for EUC_KR
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_kr, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_kr.getcodec('euc_kr')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='euc_kr',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gb2312.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # gb2312.py: Python Unicode Codec for GB2312
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_cn, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_cn.getcodec('gb2312')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='gb2312',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gbk.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # gbk.py: Python Unicode Codec for GBK
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_cn, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_cn.getcodec('gbk')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='gbk',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hex_codec.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Python 'hex_codec' Codec - 2-digit hex content transfer encoding.
2
+
3
+ This codec de/encodes from bytes to bytes.
4
+
5
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
6
+ """
7
+
8
+ import codecs
9
+ import binascii
10
+
11
+ ### Codec APIs
12
+
13
+ def hex_encode(input, errors='strict'):
14
+ assert errors == 'strict'
15
+ return (binascii.b2a_hex(input), len(input))
16
+
17
+ def hex_decode(input, errors='strict'):
18
+ assert errors == 'strict'
19
+ return (binascii.a2b_hex(input), len(input))
20
+
21
+ class Codec(codecs.Codec):
22
+ def encode(self, input, errors='strict'):
23
+ return hex_encode(input, errors)
24
+ def decode(self, input, errors='strict'):
25
+ return hex_decode(input, errors)
26
+
27
+ class IncrementalEncoder(codecs.IncrementalEncoder):
28
+ def encode(self, input, final=False):
29
+ assert self.errors == 'strict'
30
+ return binascii.b2a_hex(input)
31
+
32
+ class IncrementalDecoder(codecs.IncrementalDecoder):
33
+ def decode(self, input, final=False):
34
+ assert self.errors == 'strict'
35
+ return binascii.a2b_hex(input)
36
+
37
+ class StreamWriter(Codec, codecs.StreamWriter):
38
+ charbuffertype = bytes
39
+
40
+ class StreamReader(Codec, codecs.StreamReader):
41
+ charbuffertype = bytes
42
+
43
+ ### encodings module API
44
+
45
+ def getregentry():
46
+ return codecs.CodecInfo(
47
+ name='hex',
48
+ encode=hex_encode,
49
+ decode=hex_decode,
50
+ incrementalencoder=IncrementalEncoder,
51
+ incrementaldecoder=IncrementalDecoder,
52
+ streamwriter=StreamWriter,
53
+ streamreader=StreamReader,
54
+ _is_text_encoding=False,
55
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_2.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp_2.py: Python Unicode Codec for ISO2022_JP_2
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_2')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_2',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_2004.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp_2004.py: Python Unicode Codec for ISO2022_JP_2004
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_2004')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_2004',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_ext.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp_ext.py: Python Unicode Codec for ISO2022_JP_EXT
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_ext')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_ext',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_1.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_1 generated from 'MAPPINGS/ISO8859/8859-1.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-1',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S (German)
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\xfe' # 0xFE -> LATIN SMALL LETTER THORN (Icelandic)
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_10.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_10 generated from 'MAPPINGS/ISO8859/8859-10.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-10',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0104' # 0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
210
+ '\u0112' # 0xA2 -> LATIN CAPITAL LETTER E WITH MACRON
211
+ '\u0122' # 0xA3 -> LATIN CAPITAL LETTER G WITH CEDILLA
212
+ '\u012a' # 0xA4 -> LATIN CAPITAL LETTER I WITH MACRON
213
+ '\u0128' # 0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
214
+ '\u0136' # 0xA6 -> LATIN CAPITAL LETTER K WITH CEDILLA
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\u013b' # 0xA8 -> LATIN CAPITAL LETTER L WITH CEDILLA
217
+ '\u0110' # 0xA9 -> LATIN CAPITAL LETTER D WITH STROKE
218
+ '\u0160' # 0xAA -> LATIN CAPITAL LETTER S WITH CARON
219
+ '\u0166' # 0xAB -> LATIN CAPITAL LETTER T WITH STROKE
220
+ '\u017d' # 0xAC -> LATIN CAPITAL LETTER Z WITH CARON
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\u016a' # 0xAE -> LATIN CAPITAL LETTER U WITH MACRON
223
+ '\u014a' # 0xAF -> LATIN CAPITAL LETTER ENG
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\u0105' # 0xB1 -> LATIN SMALL LETTER A WITH OGONEK
226
+ '\u0113' # 0xB2 -> LATIN SMALL LETTER E WITH MACRON
227
+ '\u0123' # 0xB3 -> LATIN SMALL LETTER G WITH CEDILLA
228
+ '\u012b' # 0xB4 -> LATIN SMALL LETTER I WITH MACRON
229
+ '\u0129' # 0xB5 -> LATIN SMALL LETTER I WITH TILDE
230
+ '\u0137' # 0xB6 -> LATIN SMALL LETTER K WITH CEDILLA
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u013c' # 0xB8 -> LATIN SMALL LETTER L WITH CEDILLA
233
+ '\u0111' # 0xB9 -> LATIN SMALL LETTER D WITH STROKE
234
+ '\u0161' # 0xBA -> LATIN SMALL LETTER S WITH CARON
235
+ '\u0167' # 0xBB -> LATIN SMALL LETTER T WITH STROKE
236
+ '\u017e' # 0xBC -> LATIN SMALL LETTER Z WITH CARON
237
+ '\u2015' # 0xBD -> HORIZONTAL BAR
238
+ '\u016b' # 0xBE -> LATIN SMALL LETTER U WITH MACRON
239
+ '\u014b' # 0xBF -> LATIN SMALL LETTER ENG
240
+ '\u0100' # 0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\u012e' # 0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\u0116' # 0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
257
+ '\u0145' # 0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
258
+ '\u014c' # 0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\u0168' # 0xD7 -> LATIN CAPITAL LETTER U WITH TILDE
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\u0172' # 0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S (German)
272
+ '\u0101' # 0xE0 -> LATIN SMALL LETTER A WITH MACRON
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\u012f' # 0xE7 -> LATIN SMALL LETTER I WITH OGONEK
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u0117' # 0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
289
+ '\u0146' # 0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
290
+ '\u014d' # 0xF2 -> LATIN SMALL LETTER O WITH MACRON
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\u0169' # 0xF7 -> LATIN SMALL LETTER U WITH TILDE
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\u0173' # 0xF9 -> LATIN SMALL LETTER U WITH OGONEK
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\xfe' # 0xFE -> LATIN SMALL LETTER THORN (Icelandic)
303
+ '\u0138' # 0xFF -> LATIN SMALL LETTER KRA
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_11.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_11 generated from 'MAPPINGS/ISO8859/8859-11.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-11',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0e01' # 0xA1 -> THAI CHARACTER KO KAI
210
+ '\u0e02' # 0xA2 -> THAI CHARACTER KHO KHAI
211
+ '\u0e03' # 0xA3 -> THAI CHARACTER KHO KHUAT
212
+ '\u0e04' # 0xA4 -> THAI CHARACTER KHO KHWAI
213
+ '\u0e05' # 0xA5 -> THAI CHARACTER KHO KHON
214
+ '\u0e06' # 0xA6 -> THAI CHARACTER KHO RAKHANG
215
+ '\u0e07' # 0xA7 -> THAI CHARACTER NGO NGU
216
+ '\u0e08' # 0xA8 -> THAI CHARACTER CHO CHAN
217
+ '\u0e09' # 0xA9 -> THAI CHARACTER CHO CHING
218
+ '\u0e0a' # 0xAA -> THAI CHARACTER CHO CHANG
219
+ '\u0e0b' # 0xAB -> THAI CHARACTER SO SO
220
+ '\u0e0c' # 0xAC -> THAI CHARACTER CHO CHOE
221
+ '\u0e0d' # 0xAD -> THAI CHARACTER YO YING
222
+ '\u0e0e' # 0xAE -> THAI CHARACTER DO CHADA
223
+ '\u0e0f' # 0xAF -> THAI CHARACTER TO PATAK
224
+ '\u0e10' # 0xB0 -> THAI CHARACTER THO THAN
225
+ '\u0e11' # 0xB1 -> THAI CHARACTER THO NANGMONTHO
226
+ '\u0e12' # 0xB2 -> THAI CHARACTER THO PHUTHAO
227
+ '\u0e13' # 0xB3 -> THAI CHARACTER NO NEN
228
+ '\u0e14' # 0xB4 -> THAI CHARACTER DO DEK
229
+ '\u0e15' # 0xB5 -> THAI CHARACTER TO TAO
230
+ '\u0e16' # 0xB6 -> THAI CHARACTER THO THUNG
231
+ '\u0e17' # 0xB7 -> THAI CHARACTER THO THAHAN
232
+ '\u0e18' # 0xB8 -> THAI CHARACTER THO THONG
233
+ '\u0e19' # 0xB9 -> THAI CHARACTER NO NU
234
+ '\u0e1a' # 0xBA -> THAI CHARACTER BO BAIMAI
235
+ '\u0e1b' # 0xBB -> THAI CHARACTER PO PLA
236
+ '\u0e1c' # 0xBC -> THAI CHARACTER PHO PHUNG
237
+ '\u0e1d' # 0xBD -> THAI CHARACTER FO FA
238
+ '\u0e1e' # 0xBE -> THAI CHARACTER PHO PHAN
239
+ '\u0e1f' # 0xBF -> THAI CHARACTER FO FAN
240
+ '\u0e20' # 0xC0 -> THAI CHARACTER PHO SAMPHAO
241
+ '\u0e21' # 0xC1 -> THAI CHARACTER MO MA
242
+ '\u0e22' # 0xC2 -> THAI CHARACTER YO YAK
243
+ '\u0e23' # 0xC3 -> THAI CHARACTER RO RUA
244
+ '\u0e24' # 0xC4 -> THAI CHARACTER RU
245
+ '\u0e25' # 0xC5 -> THAI CHARACTER LO LING
246
+ '\u0e26' # 0xC6 -> THAI CHARACTER LU
247
+ '\u0e27' # 0xC7 -> THAI CHARACTER WO WAEN
248
+ '\u0e28' # 0xC8 -> THAI CHARACTER SO SALA
249
+ '\u0e29' # 0xC9 -> THAI CHARACTER SO RUSI
250
+ '\u0e2a' # 0xCA -> THAI CHARACTER SO SUA
251
+ '\u0e2b' # 0xCB -> THAI CHARACTER HO HIP
252
+ '\u0e2c' # 0xCC -> THAI CHARACTER LO CHULA
253
+ '\u0e2d' # 0xCD -> THAI CHARACTER O ANG
254
+ '\u0e2e' # 0xCE -> THAI CHARACTER HO NOKHUK
255
+ '\u0e2f' # 0xCF -> THAI CHARACTER PAIYANNOI
256
+ '\u0e30' # 0xD0 -> THAI CHARACTER SARA A
257
+ '\u0e31' # 0xD1 -> THAI CHARACTER MAI HAN-AKAT
258
+ '\u0e32' # 0xD2 -> THAI CHARACTER SARA AA
259
+ '\u0e33' # 0xD3 -> THAI CHARACTER SARA AM
260
+ '\u0e34' # 0xD4 -> THAI CHARACTER SARA I
261
+ '\u0e35' # 0xD5 -> THAI CHARACTER SARA II
262
+ '\u0e36' # 0xD6 -> THAI CHARACTER SARA UE
263
+ '\u0e37' # 0xD7 -> THAI CHARACTER SARA UEE
264
+ '\u0e38' # 0xD8 -> THAI CHARACTER SARA U
265
+ '\u0e39' # 0xD9 -> THAI CHARACTER SARA UU
266
+ '\u0e3a' # 0xDA -> THAI CHARACTER PHINTHU
267
+ '\ufffe'
268
+ '\ufffe'
269
+ '\ufffe'
270
+ '\ufffe'
271
+ '\u0e3f' # 0xDF -> THAI CURRENCY SYMBOL BAHT
272
+ '\u0e40' # 0xE0 -> THAI CHARACTER SARA E
273
+ '\u0e41' # 0xE1 -> THAI CHARACTER SARA AE
274
+ '\u0e42' # 0xE2 -> THAI CHARACTER SARA O
275
+ '\u0e43' # 0xE3 -> THAI CHARACTER SARA AI MAIMUAN
276
+ '\u0e44' # 0xE4 -> THAI CHARACTER SARA AI MAIMALAI
277
+ '\u0e45' # 0xE5 -> THAI CHARACTER LAKKHANGYAO
278
+ '\u0e46' # 0xE6 -> THAI CHARACTER MAIYAMOK
279
+ '\u0e47' # 0xE7 -> THAI CHARACTER MAITAIKHU
280
+ '\u0e48' # 0xE8 -> THAI CHARACTER MAI EK
281
+ '\u0e49' # 0xE9 -> THAI CHARACTER MAI THO
282
+ '\u0e4a' # 0xEA -> THAI CHARACTER MAI TRI
283
+ '\u0e4b' # 0xEB -> THAI CHARACTER MAI CHATTAWA
284
+ '\u0e4c' # 0xEC -> THAI CHARACTER THANTHAKHAT
285
+ '\u0e4d' # 0xED -> THAI CHARACTER NIKHAHIT
286
+ '\u0e4e' # 0xEE -> THAI CHARACTER YAMAKKAN
287
+ '\u0e4f' # 0xEF -> THAI CHARACTER FONGMAN
288
+ '\u0e50' # 0xF0 -> THAI DIGIT ZERO
289
+ '\u0e51' # 0xF1 -> THAI DIGIT ONE
290
+ '\u0e52' # 0xF2 -> THAI DIGIT TWO
291
+ '\u0e53' # 0xF3 -> THAI DIGIT THREE
292
+ '\u0e54' # 0xF4 -> THAI DIGIT FOUR
293
+ '\u0e55' # 0xF5 -> THAI DIGIT FIVE
294
+ '\u0e56' # 0xF6 -> THAI DIGIT SIX
295
+ '\u0e57' # 0xF7 -> THAI DIGIT SEVEN
296
+ '\u0e58' # 0xF8 -> THAI DIGIT EIGHT
297
+ '\u0e59' # 0xF9 -> THAI DIGIT NINE
298
+ '\u0e5a' # 0xFA -> THAI CHARACTER ANGKHANKHU
299
+ '\u0e5b' # 0xFB -> THAI CHARACTER KHOMUT
300
+ '\ufffe'
301
+ '\ufffe'
302
+ '\ufffe'
303
+ '\ufffe'
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_13.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_13 generated from 'MAPPINGS/ISO8859/8859-13.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-13',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u201d' # 0xA1 -> RIGHT DOUBLE QUOTATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\u201e' # 0xA5 -> DOUBLE LOW-9 QUOTATION MARK
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xd8' # 0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u0156' # 0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xc6' # 0xAF -> LATIN CAPITAL LETTER AE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\u201c' # 0xB4 -> LEFT DOUBLE QUOTATION MARK
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xf8' # 0xB8 -> LATIN SMALL LETTER O WITH STROKE
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\u0157' # 0xBA -> LATIN SMALL LETTER R WITH CEDILLA
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xe6' # 0xBF -> LATIN SMALL LETTER AE
240
+ '\u0104' # 0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
241
+ '\u012e' # 0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
242
+ '\u0100' # 0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
243
+ '\u0106' # 0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\u0118' # 0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
247
+ '\u0112' # 0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0179' # 0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
251
+ '\u0116' # 0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
252
+ '\u0122' # 0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
253
+ '\u0136' # 0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
254
+ '\u012a' # 0xCE -> LATIN CAPITAL LETTER I WITH MACRON
255
+ '\u013b' # 0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
256
+ '\u0160' # 0xD0 -> LATIN CAPITAL LETTER S WITH CARON
257
+ '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
258
+ '\u0145' # 0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\u014c' # 0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u0172' # 0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
265
+ '\u0141' # 0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
266
+ '\u015a' # 0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
267
+ '\u016a' # 0xDB -> LATIN CAPITAL LETTER U WITH MACRON
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u017b' # 0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
270
+ '\u017d' # 0xDE -> LATIN CAPITAL LETTER Z WITH CARON
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S (German)
272
+ '\u0105' # 0xE0 -> LATIN SMALL LETTER A WITH OGONEK
273
+ '\u012f' # 0xE1 -> LATIN SMALL LETTER I WITH OGONEK
274
+ '\u0101' # 0xE2 -> LATIN SMALL LETTER A WITH MACRON
275
+ '\u0107' # 0xE3 -> LATIN SMALL LETTER C WITH ACUTE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\u0119' # 0xE6 -> LATIN SMALL LETTER E WITH OGONEK
279
+ '\u0113' # 0xE7 -> LATIN SMALL LETTER E WITH MACRON
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u017a' # 0xEA -> LATIN SMALL LETTER Z WITH ACUTE
283
+ '\u0117' # 0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
284
+ '\u0123' # 0xEC -> LATIN SMALL LETTER G WITH CEDILLA
285
+ '\u0137' # 0xED -> LATIN SMALL LETTER K WITH CEDILLA
286
+ '\u012b' # 0xEE -> LATIN SMALL LETTER I WITH MACRON
287
+ '\u013c' # 0xEF -> LATIN SMALL LETTER L WITH CEDILLA
288
+ '\u0161' # 0xF0 -> LATIN SMALL LETTER S WITH CARON
289
+ '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
290
+ '\u0146' # 0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\u014d' # 0xF4 -> LATIN SMALL LETTER O WITH MACRON
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u0173' # 0xF8 -> LATIN SMALL LETTER U WITH OGONEK
297
+ '\u0142' # 0xF9 -> LATIN SMALL LETTER L WITH STROKE
298
+ '\u015b' # 0xFA -> LATIN SMALL LETTER S WITH ACUTE
299
+ '\u016b' # 0xFB -> LATIN SMALL LETTER U WITH MACRON
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u017c' # 0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
302
+ '\u017e' # 0xFE -> LATIN SMALL LETTER Z WITH CARON
303
+ '\u2019' # 0xFF -> RIGHT SINGLE QUOTATION MARK
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_15.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_15 generated from 'MAPPINGS/ISO8859/8859-15.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-15',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\u20ac' # 0xA4 -> EURO SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\u0160' # 0xA6 -> LATIN CAPITAL LETTER S WITH CARON
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\u0161' # 0xA8 -> LATIN SMALL LETTER S WITH CARON
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\u017d' # 0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u017e' # 0xB8 -> LATIN SMALL LETTER Z WITH CARON
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u0152' # 0xBC -> LATIN CAPITAL LIGATURE OE
237
+ '\u0153' # 0xBD -> LATIN SMALL LIGATURE OE
238
+ '\u0178' # 0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\xfe' # 0xFE -> LATIN SMALL LETTER THORN
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_16.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_16 generated from 'MAPPINGS/ISO8859/8859-16.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-16',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0104' # 0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
210
+ '\u0105' # 0xA2 -> LATIN SMALL LETTER A WITH OGONEK
211
+ '\u0141' # 0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
212
+ '\u20ac' # 0xA4 -> EURO SIGN
213
+ '\u201e' # 0xA5 -> DOUBLE LOW-9 QUOTATION MARK
214
+ '\u0160' # 0xA6 -> LATIN CAPITAL LETTER S WITH CARON
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\u0161' # 0xA8 -> LATIN SMALL LETTER S WITH CARON
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u0218' # 0xAA -> LATIN CAPITAL LETTER S WITH COMMA BELOW
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\u0179' # 0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\u017a' # 0xAE -> LATIN SMALL LETTER Z WITH ACUTE
223
+ '\u017b' # 0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u010c' # 0xB2 -> LATIN CAPITAL LETTER C WITH CARON
227
+ '\u0142' # 0xB3 -> LATIN SMALL LETTER L WITH STROKE
228
+ '\u017d' # 0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
229
+ '\u201d' # 0xB5 -> RIGHT DOUBLE QUOTATION MARK
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u017e' # 0xB8 -> LATIN SMALL LETTER Z WITH CARON
233
+ '\u010d' # 0xB9 -> LATIN SMALL LETTER C WITH CARON
234
+ '\u0219' # 0xBA -> LATIN SMALL LETTER S WITH COMMA BELOW
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u0152' # 0xBC -> LATIN CAPITAL LIGATURE OE
237
+ '\u0153' # 0xBD -> LATIN SMALL LIGATURE OE
238
+ '\u0178' # 0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
239
+ '\u017c' # 0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\u0106' # 0xC5 -> LATIN CAPITAL LETTER C WITH ACUTE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
257
+ '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\u0150' # 0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\u015a' # 0xD7 -> LATIN CAPITAL LETTER S WITH ACUTE
264
+ '\u0170' # 0xD8 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u0118' # 0xDD -> LATIN CAPITAL LETTER E WITH OGONEK
270
+ '\u021a' # 0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\u0107' # 0xE5 -> LATIN SMALL LETTER C WITH ACUTE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
289
+ '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u0151' # 0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\u015b' # 0xF7 -> LATIN SMALL LETTER S WITH ACUTE
296
+ '\u0171' # 0xF8 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u0119' # 0xFD -> LATIN SMALL LETTER E WITH OGONEK
302
+ '\u021b' # 0xFE -> LATIN SMALL LETTER T WITH COMMA BELOW
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_3.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_3 generated from 'MAPPINGS/ISO8859/8859-3.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-3',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0126' # 0xA1 -> LATIN CAPITAL LETTER H WITH STROKE
210
+ '\u02d8' # 0xA2 -> BREVE
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\ufffe'
214
+ '\u0124' # 0xA6 -> LATIN CAPITAL LETTER H WITH CIRCUMFLEX
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\u0130' # 0xA9 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
218
+ '\u015e' # 0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
219
+ '\u011e' # 0xAB -> LATIN CAPITAL LETTER G WITH BREVE
220
+ '\u0134' # 0xAC -> LATIN CAPITAL LETTER J WITH CIRCUMFLEX
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\ufffe'
223
+ '\u017b' # 0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\u0127' # 0xB1 -> LATIN SMALL LETTER H WITH STROKE
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\u0125' # 0xB6 -> LATIN SMALL LETTER H WITH CIRCUMFLEX
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\u0131' # 0xB9 -> LATIN SMALL LETTER DOTLESS I
234
+ '\u015f' # 0xBA -> LATIN SMALL LETTER S WITH CEDILLA
235
+ '\u011f' # 0xBB -> LATIN SMALL LETTER G WITH BREVE
236
+ '\u0135' # 0xBC -> LATIN SMALL LETTER J WITH CIRCUMFLEX
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\ufffe'
239
+ '\u017c' # 0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\ufffe'
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\u010a' # 0xC5 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
246
+ '\u0108' # 0xC6 -> LATIN CAPITAL LETTER C WITH CIRCUMFLEX
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\ufffe'
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\u0120' # 0xD5 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u011c' # 0xD8 -> LATIN CAPITAL LETTER G WITH CIRCUMFLEX
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u016c' # 0xDD -> LATIN CAPITAL LETTER U WITH BREVE
270
+ '\u015c' # 0xDE -> LATIN CAPITAL LETTER S WITH CIRCUMFLEX
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\ufffe'
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\u010b' # 0xE5 -> LATIN SMALL LETTER C WITH DOT ABOVE
278
+ '\u0109' # 0xE6 -> LATIN SMALL LETTER C WITH CIRCUMFLEX
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\ufffe'
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u0121' # 0xF5 -> LATIN SMALL LETTER G WITH DOT ABOVE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u011d' # 0xF8 -> LATIN SMALL LETTER G WITH CIRCUMFLEX
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u016d' # 0xFD -> LATIN SMALL LETTER U WITH BREVE
302
+ '\u015d' # 0xFE -> LATIN SMALL LETTER S WITH CIRCUMFLEX
303
+ '\u02d9' # 0xFF -> DOT ABOVE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_4.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_4 generated from 'MAPPINGS/ISO8859/8859-4.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-4',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0104' # 0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
210
+ '\u0138' # 0xA2 -> LATIN SMALL LETTER KRA
211
+ '\u0156' # 0xA3 -> LATIN CAPITAL LETTER R WITH CEDILLA
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\u0128' # 0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
214
+ '\u013b' # 0xA6 -> LATIN CAPITAL LETTER L WITH CEDILLA
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\u0160' # 0xA9 -> LATIN CAPITAL LETTER S WITH CARON
218
+ '\u0112' # 0xAA -> LATIN CAPITAL LETTER E WITH MACRON
219
+ '\u0122' # 0xAB -> LATIN CAPITAL LETTER G WITH CEDILLA
220
+ '\u0166' # 0xAC -> LATIN CAPITAL LETTER T WITH STROKE
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\u017d' # 0xAE -> LATIN CAPITAL LETTER Z WITH CARON
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\u0105' # 0xB1 -> LATIN SMALL LETTER A WITH OGONEK
226
+ '\u02db' # 0xB2 -> OGONEK
227
+ '\u0157' # 0xB3 -> LATIN SMALL LETTER R WITH CEDILLA
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\u0129' # 0xB5 -> LATIN SMALL LETTER I WITH TILDE
230
+ '\u013c' # 0xB6 -> LATIN SMALL LETTER L WITH CEDILLA
231
+ '\u02c7' # 0xB7 -> CARON
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\u0161' # 0xB9 -> LATIN SMALL LETTER S WITH CARON
234
+ '\u0113' # 0xBA -> LATIN SMALL LETTER E WITH MACRON
235
+ '\u0123' # 0xBB -> LATIN SMALL LETTER G WITH CEDILLA
236
+ '\u0167' # 0xBC -> LATIN SMALL LETTER T WITH STROKE
237
+ '\u014a' # 0xBD -> LATIN CAPITAL LETTER ENG
238
+ '\u017e' # 0xBE -> LATIN SMALL LETTER Z WITH CARON
239
+ '\u014b' # 0xBF -> LATIN SMALL LETTER ENG
240
+ '\u0100' # 0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\u012e' # 0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\u0116' # 0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\u012a' # 0xCF -> LATIN CAPITAL LETTER I WITH MACRON
256
+ '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
257
+ '\u0145' # 0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
258
+ '\u014c' # 0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
259
+ '\u0136' # 0xD3 -> LATIN CAPITAL LETTER K WITH CEDILLA
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\u0172' # 0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u0168' # 0xDD -> LATIN CAPITAL LETTER U WITH TILDE
270
+ '\u016a' # 0xDE -> LATIN CAPITAL LETTER U WITH MACRON
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\u0101' # 0xE0 -> LATIN SMALL LETTER A WITH MACRON
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\u012f' # 0xE7 -> LATIN SMALL LETTER I WITH OGONEK
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u0117' # 0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\u012b' # 0xEF -> LATIN SMALL LETTER I WITH MACRON
288
+ '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
289
+ '\u0146' # 0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
290
+ '\u014d' # 0xF2 -> LATIN SMALL LETTER O WITH MACRON
291
+ '\u0137' # 0xF3 -> LATIN SMALL LETTER K WITH CEDILLA
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\u0173' # 0xF9 -> LATIN SMALL LETTER U WITH OGONEK
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u0169' # 0xFD -> LATIN SMALL LETTER U WITH TILDE
302
+ '\u016b' # 0xFE -> LATIN SMALL LETTER U WITH MACRON
303
+ '\u02d9' # 0xFF -> DOT ABOVE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)