2082 lines
81 KiB
Text
2082 lines
81 KiB
Text
[
|
|
{"type":"CommentHashbang","value":"#! /usr/bin/env python"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# From CPython (Lib/base64.py)"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"RFC 3548: Base16, Base32, Base64 Data Encodings\"\"\""},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"CommentSingle","value":"# Modified 04-Oct-1995 by Jack Jansen to use binascii module"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# Modified 30-Dec-2003 by Barry Warsaw to add full RFC 3548 support"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"KeywordNamespace","value":"import"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"re"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"KeywordNamespace","value":"import"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"struct"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"KeywordNamespace","value":"import"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"string"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"KeywordNamespace","value":"import"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"binascii"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Name","value":"__all__"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Legacy interface exports traditional RFC 1521 Base64 encodings"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringSingle","value":"'encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'encodestring'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'decodestring'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Generalized interface for other encodings"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringSingle","value":"'b64encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'b64decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'b32encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'b32decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringSingle","value":"'b16encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'b16decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Standard Base64 encoding"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringSingle","value":"'standard_b64encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'standard_b64decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Some common Base64 alternatives. As referenced by RFC 3458, see thread"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# starting at:"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"#"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# http://zgp.org/pipermail/p2p-hackers/2001-September/000316.html"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringSingle","value":"'urlsafe_b64encode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'urlsafe_b64decode'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Name","value":"_translation"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"NameBuiltin","value":"chr"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"_x"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_x"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"range"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralNumberInteger","value":"256"},
|
|
{"type":"Punctuation","value":")]"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"EMPTYSTRING"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"''"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"_translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"translation"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_translation"},
|
|
{"type":"Punctuation","value":"[:]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"k"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"items"},
|
|
{"type":"Punctuation","value":"():"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"translation"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"NameBuiltin","value":"ord"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"k"},
|
|
{"type":"Punctuation","value":")]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"''"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"join"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"translation"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n\n\n\f\n"},
|
|
{"type":"CommentSingle","value":"# Base64 encoding/decoding uses binascii"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b64encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string using Base64.\n\n s is the string to encode. Optional altchars must be a string of at least\n length 2 (additional characters are ignored) which specifies an\n alternative alphabet for the '+' and '/' characters. This allows an\n application to e.g. generate url or filesystem safe Base64 strings.\n\n The encoded string is returned.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Strip off the trailing newline"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"b2a_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"is"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"not"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"string"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"maketrans"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'+/'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":"]))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b64decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a Base64 encoded string.\n\n s is the string to decode. Optional altchars must be a string of at least\n length 2 (additional characters are ignored) which specifies the\n alternative alphabet used instead of the '+' and '/' characters.\n\n The decoded string is returned. A TypeError is raised if s is\n incorrectly padded. Characters that are neither in the normal base-64\n alphabet nor the alternative alphabet are discarded prior to the padding\n check.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"is"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"not"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"string"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"maketrans"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"altchars"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'+/'"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"try"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"a2b_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"except"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"Error"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"msg"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Transform this exception for consistency"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"raise"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameException","value":"TypeError"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"msg"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"standard_b64encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string using the standard Base64 alphabet.\n\n s is the string to encode. The encoded string is returned.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"b64encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"standard_b64decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a string encoded with the standard Base64 alphabet.\n\n Argument s is the string to decode. The decoded string is returned. A\n TypeError is raised if the string is incorrectly padded. Characters that\n are not in the standard alphabet are discarded prior to the padding\n check.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"b64decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Name","value":"_urlsafe_encode_translation"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"string"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"maketrans"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'+/'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'-_'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"_urlsafe_decode_translation"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"string"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"maketrans"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'-_'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'+/'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"urlsafe_b64encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string using the URL- and filesystem-safe Base64 alphabet.\n\n Argument s is the string to encode. The encoded string is returned. The\n alphabet uses '-' instead of '+' and '_' instead of '/'.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"b64encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"_urlsafe_encode_translation"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"urlsafe_b64decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a string using the URL- and filesystem-safe Base64 alphabet.\n\n Argument s is the string to decode. The decoded string is returned. A\n TypeError is raised if the string is incorrectly padded. Characters that\n are not in the URL-safe base-64 alphabet, and are not a plus '+' or slash\n '/', are discarded prior to the padding check.\n\n The alphabet uses '-' instead of '+' and '_' instead of '/'.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"b64decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"_urlsafe_decode_translation"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n\n\n\f\n"},
|
|
{"type":"CommentSingle","value":"# Base32 encoding/decoding must be done in Python"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"_b32alphabet"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"{"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'A'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"9"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'J'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"18"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'S'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"27"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'3'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'B'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"10"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'K'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"19"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'T'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"28"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'4'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'C'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"11"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'L'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"20"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'U'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"29"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'5'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'D'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"12"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'M'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"21"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'V'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"30"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'6'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'E'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"13"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'N'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"22"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'W'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"31"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'7'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'F'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"14"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'O'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"23"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'X'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"6"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'G'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"15"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'P'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"24"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'Y'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"7"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'H'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"16"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'Q'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"25"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'Z'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralNumberInteger","value":"8"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'I'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"17"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'R'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"26"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'2'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Punctuation","value":"}"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_b32alphabet"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"items"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"sort"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"k"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"_b32rev"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"dict"},
|
|
{"type":"Punctuation","value":"([("},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"long"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"k"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"k"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"v"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_b32alphabet"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"items"},
|
|
{"type":"Punctuation","value":"()])"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b32encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string using Base32.\n\n s is the string to encode. The encoded string is returned.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"[]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"quanta"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"divmod"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"),"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Pad the last quantum with zero bits if necessary"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"LiteralStringEscape","value":"\\0"},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"*"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"quanta"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"range"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"quanta"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# c1 and c2 are 16 bits wide, c3 is 8 bits wide. The intent of this"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# code is to process the 40 bits in units of 5 bits. So we take the 1"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# leftover bit of c1 and tack it onto c2. Then we take the 2 leftover"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# bits of c2 and tack them onto c3. The shifts and masks are intended"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# to give us values of exactly 5 bits in width."},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"c1"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"c3"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"struct"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"unpack"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'!HHB'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Operator","value":"*"},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Punctuation","value":":("},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Operator","value":"*"},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Punctuation","value":"])"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"c1"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003c\u003c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"16"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# 17 bits wide"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"c3"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003c\u003c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"8"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# 10 bits wide"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"extend"},
|
|
{"type":"Punctuation","value":"(["},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"c1"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"11"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 1 - 5"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"[("},
|
|
{"type":"Name","value":"c1"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"6"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberHex","value":"0x1f"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 6 - 10"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"[("},
|
|
{"type":"Name","value":"c1"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberHex","value":"0x1f"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 11 - 15"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"12"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 16 - 20 (1 - 5)"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"[("},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"7"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberHex","value":"0x1f"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 21 - 25 (6 - 10)"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"[("},
|
|
{"type":"Name","value":"c2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberHex","value":"0x1f"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 26 - 30 (11 - 15)"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"c3"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 31 - 35 (1 - 5)"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"_b32tab"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"c3"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u0026"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberHex","value":"0x1f"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# bits 36 - 40 (1 - 5)"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Punctuation","value":"])"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"EMPTYSTRING"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"join"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Adjust for any leftover partial quanta"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"6"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'======'"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'===='"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'==='"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'='"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encoded"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b32decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"casefold"},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"NameBuiltinPseudo","value":"False"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"map01"},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a Base32 encoded string.\n\n s is the string to decode. Optional casefold is a flag specifying whether\n a lowercase alphabet is acceptable as input. For security purposes, the\n default is False.\n\n RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O\n (oh), and for optional mapping of the digit 1 (one) to either the letter I\n (eye) or letter L (el). The optional argument map01 when not None,\n specifies which letter the digit 1 should be mapped to (when map01 is not\n None, the digit 0 is always mapped to the letter O). For security\n purposes the default is None, so that 0 and 1 are not allowed in the\n input.\n\n The decoded string is returned. A TypeError is raised if s were\n incorrectly padded or if there are non-alphabet characters present in the\n string.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"quanta"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"divmod"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"),"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"8"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"leftover"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"raise"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameException","value":"TypeError"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'Incorrect padding'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Handle section 2.4 zero and one mapping. The flag map01 will be either"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# False, or the character to map the digit 1 (one) to. It should be"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# either L (el) or I (eye)."},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"map01"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"translate"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"string"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"maketrans"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'01'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringAffix","value":"b"},
|
|
{"type":"LiteralStringSingle","value":"'O'"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"map01"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"casefold"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"upper"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Strip off pad characters from the right. We need to count the pad"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# characters because this will tell us how many null bytes to remove from"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# the end of the decoded string."},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"mo"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"re"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"search"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'(?P\u003cpad\u003e[=]*)$'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"mo"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"mo"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"group"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'pad'"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003e"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Now decode the full quanta"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"[]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"acc"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"shift"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"35"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"val"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_b32rev"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"get"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"c"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"val"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"is"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltinPseudo","value":"None"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"raise"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameException","value":"TypeError"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'Non-base32 digit found'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"acc"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"_b32rev"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"c"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003c\u003c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"shift"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"shift"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"-="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"5"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"shift"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"append"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"unhexlify"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"LiteralStringInterpol","value":"%010x"},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"%"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"acc"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"acc"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"shift"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"35"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"CommentSingle","value":"# Process the last, partial quanta"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"unhexlify"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"LiteralStringInterpol","value":"%010x"},
|
|
{"type":"LiteralStringSingle","value":"'"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"%"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"acc"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"''"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# No characters"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"elif"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"padchars"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"6"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Punctuation","value":"[:"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"else"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"raise"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameException","value":"TypeError"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'Incorrect padding'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"append"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"last"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"EMPTYSTRING"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"join"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"parts"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n\f\n"},
|
|
{"type":"CommentSingle","value":"# RFC 3548, Base 16 Alphabet specifies uppercase, but hexlify() returns"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# lowercase. The RFC also recommends against accepting input case"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# insensitively."},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b16encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string using Base16.\n\n s is the string to encode. The encoded string is returned.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"hexlify"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"upper"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"b16decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"casefold"},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"NameBuiltinPseudo","value":"False"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a Base16 encoded string.\n\n s is the string to decode. Optional casefold is a flag specifying whether\n a lowercase alphabet is acceptable as input. For security purposes, the\n default is False.\n\n The decoded string is returned. A TypeError is raised if s is\n incorrectly padded or if there are non-alphabet characters present in the\n string.\n \"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"casefold"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"upper"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"re"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"search"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'[^0-9A-F]'"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"raise"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameException","value":"TypeError"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralStringSingle","value":"'Non-base16 digit found'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"unhexlify"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n\f\n"},
|
|
{"type":"CommentSingle","value":"# Legacy interface. This code could be cleaned up since I don't believe"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# binascii has any line length limitations. It just doesn't seem worth it"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"CommentSingle","value":"# though."},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Name","value":"MAXLINESIZE"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralNumberInteger","value":"76"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"CommentSingle","value":"# Excluding the CRLF"},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"MAXLINESIZE"},
|
|
{"type":"Operator","value":"//"},
|
|
{"type":"LiteralNumberInteger","value":"4"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Operator","value":"*"},
|
|
{"type":"LiteralNumberInteger","value":"3"},
|
|
{"type":"Text","value":"\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"encode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"NameBuiltin","value":"input"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"output"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a file.\"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"while"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltinPseudo","value":"True"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"input"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"read"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"not"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"break"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"while"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"\u003c"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"ns"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"input"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"read"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Operator","value":"-"},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"not"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"ns"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"break"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"ns"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"line"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"b2a_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"output"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"write"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"line"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"decode"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"NameBuiltin","value":"input"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"output"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a file.\"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"while"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltinPseudo","value":"True"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"line"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"input"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"readline"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"not"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"line"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"break"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"a2b_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"line"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"output"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"write"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"encodestring"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Encode a string into multiple lines of base-64 data.\"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"pieces"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":"[]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"range"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"len"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"),"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"chunk"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"i"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"+"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"MAXBINSIZE"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"pieces"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"append"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"b2a_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"chunk"},
|
|
{"type":"Punctuation","value":"))"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringDouble","value":"\"\""},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"join"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"pieces"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"decodestring"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":"):"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Decode a string.\"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"binascii"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"a2b_base64"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n\f\n"},
|
|
{"type":"CommentSingle","value":"# Useable as a script..."},
|
|
{"type":"Text","value":"\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"test"},
|
|
{"type":"Punctuation","value":"():"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"Small test program\"\"\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"KeywordNamespace","value":"import"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"sys"},
|
|
{"type":"Operator","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameNamespace","value":"getopt"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"try"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"opts"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"args"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"getopt"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"getopt"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"argv"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"LiteralNumberInteger","value":"1"},
|
|
{"type":"Punctuation","value":":],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'deut'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"except"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"getopt"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"error"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"msg"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"stdout"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"stderr"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"print"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"msg"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"print"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringDouble","value":"\"\"\"usage: "},
|
|
{"type":"LiteralStringInterpol","value":"%s"},
|
|
{"type":"LiteralStringDouble","value":" [-d|-e|-u|-t] [file|-]\n -d, -u: decode\n -e: encode (default)\n -t: encode and decode string 'Aladdin:open sesame'\"\"\""},
|
|
{"type":"Operator","value":"%"},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"argv"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"exit"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"LiteralNumberInteger","value":"2"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encode"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"for"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"o"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"a"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"in"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"opts"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"o"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'-e'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encode"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"o"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'-d'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"decode"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"o"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'-u'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"decode"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"o"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'-t'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"test1"},
|
|
{"type":"Punctuation","value":"();"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Keyword","value":"return"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"args"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"OperatorWord","value":"and"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"args"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":"]"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"!="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'-'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"with"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"open"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"args"},
|
|
{"type":"Punctuation","value":"["},
|
|
{"type":"LiteralNumberInteger","value":"0"},
|
|
{"type":"Punctuation","value":"],"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'rb'"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Keyword","value":"as"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"f"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"f"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"stdout"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"else"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"func"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"stdin"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"sys"},
|
|
{"type":"Operator","value":"."},
|
|
{"type":"Name","value":"stdout"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"def"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameFunction","value":"test1"},
|
|
{"type":"Punctuation","value":"():"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s0"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringDouble","value":"\"Aladdin:open sesame\""},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s1"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"encodestring"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s0"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"s2"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"decodestring"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s1"},
|
|
{"type":"Punctuation","value":")"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Keyword","value":"print"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s0"},
|
|
{"type":"Punctuation","value":","},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameBuiltin","value":"repr"},
|
|
{"type":"Punctuation","value":"("},
|
|
{"type":"Name","value":"s1"},
|
|
{"type":"Punctuation","value":"),"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Name","value":"s2"},
|
|
{"type":"Text","value":"\n\n\n"},
|
|
{"type":"Keyword","value":"if"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"NameVariableMagic","value":"__name__"},
|
|
{"type":"Text","value":" "},
|
|
{"type":"Operator","value":"=="},
|
|
{"type":"Text","value":" "},
|
|
{"type":"LiteralStringSingle","value":"'__main__'"},
|
|
{"type":"Punctuation","value":":"},
|
|
{"type":"Text","value":"\n "},
|
|
{"type":"Name","value":"test"},
|
|
{"type":"Punctuation","value":"()"},
|
|
{"type":"Text","value":"\n"}
|
|
]
|