[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
lib64
/
python3.12
/
encodings
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 __pycache__
SET
[ DEL ]
📄 __init__.py
5,884 B
SET
[ EDIT ]
|
[ DEL ]
📄 aliases.py
15,677 B
SET
[ EDIT ]
|
[ DEL ]
📄 ascii.py
1,248 B
SET
[ EDIT ]
|
[ DEL ]
📄 base64_codec.py
1,533 B
SET
[ EDIT ]
|
[ DEL ]
📄 big5.py
1,019 B
SET
[ EDIT ]
|
[ DEL ]
📄 big5hkscs.py
1,039 B
SET
[ EDIT ]
|
[ DEL ]
📄 bz2_codec.py
2,249 B
SET
[ EDIT ]
|
[ DEL ]
📄 charmap.py
2,084 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp037.pyc
3,109 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1006.pyc
3,185 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1026.pyc
3,113 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1125.py
34,597 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1140.pyc
3,099 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1250.pyc
3,136 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1251.pyc
3,133 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1252.pyc
3,136 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1253.pyc
3,149 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1254.pyc
3,138 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1255.pyc
3,157 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1256.pyc
3,135 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1257.pyc
3,143 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp1258.pyc
3,141 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp273.pyc
3,095 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp424.pyc
3,139 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp437.pyc
13,286 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp500.pyc
3,109 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp720.py
13,686 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp737.pyc
13,688 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp775.pyc
13,326 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp850.pyc
12,867 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp852.pyc
13,342 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp855.pyc
13,655 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp856.pyc
3,171 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp857.pyc
12,668 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp858.py
34,015 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp860.pyc
13,257 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp861.pyc
13,282 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp862.pyc
13,515 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp863.pyc
13,278 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp864.pyc
13,323 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp865.pyc
13,282 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp866.pyc
13,695 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp869.pyc
13,225 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp874.pyc
3,237 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp875.pyc
3,106 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp932.py
1,023 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp949.py
1,023 B
SET
[ EDIT ]
|
[ DEL ]
📄 cp950.py
1,023 B
SET
[ EDIT ]
|
[ DEL ]
📄 euc_jis_2004.py
1,051 B
SET
[ EDIT ]
|
[ DEL ]
📄 euc_jisx0213.py
1,051 B
SET
[ EDIT ]
|
[ DEL ]
📄 euc_jp.py
1,027 B
SET
[ EDIT ]
|
[ DEL ]
📄 euc_kr.py
1,027 B
SET
[ EDIT ]
|
[ DEL ]
📄 gb18030.py
1,031 B
SET
[ EDIT ]
|
[ DEL ]
📄 gb2312.py
1,027 B
SET
[ EDIT ]
|
[ DEL ]
📄 gbk.py
1,015 B
SET
[ EDIT ]
|
[ DEL ]
📄 hex_codec.py
1,508 B
SET
[ EDIT ]
|
[ DEL ]
📄 hp_roman8.pyc
3,310 B
SET
[ EDIT ]
|
[ DEL ]
📄 hz.py
1,011 B
SET
[ EDIT ]
|
[ DEL ]
📄 idna.py
9,710 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp.py
1,053 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp_1.py
1,061 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp_2.py
1,061 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp_2004.py
1,073 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp_3.py
1,061 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_jp_ext.py
1,069 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso2022_kr.py
1,053 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_1.pyc
3,108 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_10.pyc
3,113 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_11.pyc
3,207 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_13.pyc
3,116 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_14.pyc
3,134 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_15.pyc
3,113 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_16.pyc
3,115 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_2.pyc
3,108 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_3.pyc
3,115 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_4.pyc
3,108 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_5.pyc
3,109 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_6.pyc
3,153 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_7.pyc
3,116 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_8.pyc
3,147 B
SET
[ EDIT ]
|
[ DEL ]
📄 iso8859_9.pyc
3,108 B
SET
[ EDIT ]
|
[ DEL ]
📄 johab.py
1,023 B
SET
[ EDIT ]
|
[ DEL ]
📄 koi8_r.pyc
3,160 B
SET
[ EDIT ]
|
[ DEL ]
📄 koi8_t.py
13,193 B
SET
[ EDIT ]
|
[ DEL ]
📄 koi8_u.pyc
3,146 B
SET
[ EDIT ]
|
[ DEL ]
📄 kz1048.pyc
3,123 B
SET
[ EDIT ]
|
[ DEL ]
📄 latin_1.py
1,264 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_arabic.pyc
13,172 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_croatian.pyc
3,155 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_cyrillic.pyc
3,145 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_farsi.pyc
3,089 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_greek.pyc
3,129 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_iceland.pyc
3,148 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_latin2.pyc
3,289 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_roman.pyc
3,146 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_romanian.pyc
3,156 B
SET
[ EDIT ]
|
[ DEL ]
📄 mac_turkish.pyc
3,149 B
SET
[ EDIT ]
|
[ DEL ]
📄 mbcs.py
1,211 B
SET
[ EDIT ]
|
[ DEL ]
📄 oem.py
1,019 B
SET
[ EDIT ]
|
[ DEL ]
📄 palmos.py
13,519 B
SET
[ EDIT ]
|
[ DEL ]
📄 ptcp154.pyc
3,230 B
SET
[ EDIT ]
|
[ DEL ]
📄 punycode.py
6,883 B
SET
[ EDIT ]
|
[ DEL ]
📄 quopri_codec.py
1,525 B
SET
[ EDIT ]
|
[ DEL ]
📄 raw_unicode_escape.py
1,332 B
SET
[ EDIT ]
|
[ DEL ]
📄 rot_13.py
2,449 B
SET
[ EDIT ]
|
[ DEL ]
📄 shift_jis.py
1,039 B
SET
[ EDIT ]
|
[ DEL ]
📄 shift_jis_2004.py
1,059 B
SET
[ EDIT ]
|
[ DEL ]
📄 shift_jisx0213.py
1,059 B
SET
[ EDIT ]
|
[ DEL ]
📄 tis_620.pyc
3,198 B
SET
[ EDIT ]
|
[ DEL ]
📄 undefined.py
1,299 B
SET
[ EDIT ]
|
[ DEL ]
📄 unicode_escape.py
1,304 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_16.py
5,236 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_16_be.py
1,037 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_16_le.py
1,037 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_32.py
5,129 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_32_be.py
930 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_32_le.py
930 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_7.py
946 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_8.py
1,005 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf_8_sig.py
4,133 B
SET
[ EDIT ]
|
[ DEL ]
📄 uu_codec.py
2,851 B
SET
[ EDIT ]
|
[ DEL ]
📄 zlib_codec.py
2,204 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: idna.py
# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep) import stringprep, re, codecs from unicodedata import ucd_3_2_0 as unicodedata # IDNA section 3.1 dots = re.compile("[\u002E\u3002\uFF0E\uFF61]") # IDNA section 5 ace_prefix = b"xn--" sace_prefix = "xn--" # This assumes query strings, so AllowUnassigned is true def nameprep(label): # Map newlabel = [] for c in label: if stringprep.in_table_b1(c): # Map to nothing continue newlabel.append(stringprep.map_table_b2(c)) label = "".join(newlabel) # Normalize label = unicodedata.normalize("NFKC", label) # Prohibit for c in label: if stringprep.in_table_c12(c) or \ stringprep.in_table_c22(c) or \ stringprep.in_table_c3(c) or \ stringprep.in_table_c4(c) or \ stringprep.in_table_c5(c) or \ stringprep.in_table_c6(c) or \ stringprep.in_table_c7(c) or \ stringprep.in_table_c8(c) or \ stringprep.in_table_c9(c): raise UnicodeError("Invalid character %r" % c) # Check bidi RandAL = [stringprep.in_table_d1(x) for x in label] if any(RandAL): # There is a RandAL char in the string. Must perform further # tests: # 1) The characters in section 5.8 MUST be prohibited. # This is table C.8, which was already checked # 2) If a string contains any RandALCat character, the string # MUST NOT contain any LCat character. if any(stringprep.in_table_d2(x) for x in label): raise UnicodeError("Violation of BIDI requirement 2") # 3) If a string contains any RandALCat character, a # RandALCat character MUST be the first character of the # string, and a RandALCat character MUST be the last # character of the string. if not RandAL[0] or not RandAL[-1]: raise UnicodeError("Violation of BIDI requirement 3") return label def ToASCII(label): try: # Step 1: try ASCII label = label.encode("ascii") except UnicodeError: pass else: # Skip to step 3: UseSTD3ASCIIRules is false, so # Skip to step 8. if 0 < len(label) < 64: return label raise UnicodeError("label empty or too long") # Step 2: nameprep label = nameprep(label) # Step 3: UseSTD3ASCIIRules is false # Step 4: try ASCII try: label = label.encode("ascii") except UnicodeError: pass else: # Skip to step 8. if 0 < len(label) < 64: return label raise UnicodeError("label empty or too long") # Step 5: Check ACE prefix if label.startswith(sace_prefix): raise UnicodeError("Label starts with ACE prefix") # Step 6: Encode with PUNYCODE label = label.encode("punycode") # Step 7: Prepend ACE prefix label = ace_prefix + label # Step 8: Check size if 0 < len(label) < 64: return label raise UnicodeError("label empty or too long") def ToUnicode(label): if len(label) > 1024: # Protection from https://github.com/python/cpython/issues/98433. # https://datatracker.ietf.org/doc/html/rfc5894#section-6 # doesn't specify a label size limit prior to NAMEPREP. But having # one makes practical sense. # This leaves ample room for nameprep() to remove Nothing characters # per https://www.rfc-editor.org/rfc/rfc3454#section-3.1 while still # preventing us from wasting time decoding a big thing that'll just # hit the actual <= 63 length limit in Step 6. raise UnicodeError("label way too long") # Step 1: Check for ASCII if isinstance(label, bytes): pure_ascii = True else: try: label = label.encode("ascii") pure_ascii = True except UnicodeError: pure_ascii = False if not pure_ascii: # Step 2: Perform nameprep label = nameprep(label) # It doesn't say this, but apparently, it should be ASCII now try: label = label.encode("ascii") except UnicodeError: raise UnicodeError("Invalid character in IDN label") # Step 3: Check for ACE prefix if not label.startswith(ace_prefix): return str(label, "ascii") # Step 4: Remove ACE prefix label1 = label[len(ace_prefix):] # Step 5: Decode using PUNYCODE result = label1.decode("punycode") # Step 6: Apply ToASCII label2 = ToASCII(result) # Step 7: Compare the result of step 6 with the one of step 3 # label2 will already be in lower case. if str(label, "ascii").lower() != str(label2, "ascii"): raise UnicodeError("IDNA does not round-trip", label, label2) # Step 8: return the result of step 5 return result ### Codec APIs class Codec(codecs.Codec): def encode(self, input, errors='strict'): if errors != 'strict': # IDNA is quite clear that implementations must be strict raise UnicodeError("unsupported error handling "+errors) if not input: return b'', 0 try: result = input.encode('ascii') except UnicodeEncodeError: pass else: # ASCII name: fast path labels = result.split(b'.') for label in labels[:-1]: if not (0 < len(label) < 64): raise UnicodeError("label empty or too long") if len(labels[-1]) >= 64: raise UnicodeError("label too long") return result, len(input) result = bytearray() labels = dots.split(input) if labels and not labels[-1]: trailing_dot = b'.' del labels[-1] else: trailing_dot = b'' for label in labels: if result: # Join with U+002E result.extend(b'.') result.extend(ToASCII(label)) return bytes(result+trailing_dot), len(input) def decode(self, input, errors='strict'): if errors != 'strict': raise UnicodeError("Unsupported error handling "+errors) if not input: return "", 0 # IDNA allows decoding to operate on Unicode strings, too. if not isinstance(input, bytes): # XXX obviously wrong, see #3232 input = bytes(input) if ace_prefix not in input: # Fast path try: return input.decode('ascii'), len(input) except UnicodeDecodeError: pass labels = input.split(b".") if labels and len(labels[-1]) == 0: trailing_dot = '.' del labels[-1] else: trailing_dot = '' result = [] for label in labels: result.append(ToUnicode(label)) return ".".join(result)+trailing_dot, len(input) class IncrementalEncoder(codecs.BufferedIncrementalEncoder): def _buffer_encode(self, input, errors, final): if errors != 'strict': # IDNA is quite clear that implementations must be strict raise UnicodeError("unsupported error handling "+errors) if not input: return (b'', 0) labels = dots.split(input) trailing_dot = b'' if labels: if not labels[-1]: trailing_dot = b'.' del labels[-1] elif not final: # Keep potentially unfinished label until the next call del labels[-1] if labels: trailing_dot = b'.' result = bytearray() size = 0 for label in labels: if size: # Join with U+002E result.extend(b'.') size += 1 result.extend(ToASCII(label)) size += len(label) result += trailing_dot size += len(trailing_dot) return (bytes(result), size) class IncrementalDecoder(codecs.BufferedIncrementalDecoder): def _buffer_decode(self, input, errors, final): if errors != 'strict': raise UnicodeError("Unsupported error handling "+errors) if not input: return ("", 0) # IDNA allows decoding to operate on Unicode strings, too. if isinstance(input, str): labels = dots.split(input) else: # Must be ASCII string input = str(input, "ascii") labels = input.split(".") trailing_dot = '' if labels: if not labels[-1]: trailing_dot = '.' del labels[-1] elif not final: # Keep potentially unfinished label until the next call del labels[-1] if labels: trailing_dot = '.' result = [] size = 0 for label in labels: result.append(ToUnicode(label)) if size: size += 1 size += len(label) result = ".".join(result) + trailing_dot size += len(trailing_dot) return (result, size) class StreamWriter(Codec,codecs.StreamWriter): pass class StreamReader(Codec,codecs.StreamReader): pass ### encodings module API def getregentry(): return codecs.CodecInfo( name='idna', encode=Codec().encode, decode=Codec().decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamwriter=StreamWriter, streamreader=StreamReader, )