ó qŽ¸Qc@s5dZddddddddd d d d d dgZddlZddlmZddlmZdZdZdZ ej dƒZ ej dƒZ d„Z d„Zd„Zd„Zdd„Zd„Zd„Zd ed!ed"„Zed!ed#„ZeZeZed$„ZeZeZd%„Zd&„ZdS('sFQuoted-printable content transfer encoding per RFCs 2045-2047. This module handles the content transfer encoding method defined in RFC 2045 to encode US ASCII-like 8-bit data called `quoted-printable'. It is used to safely encode text that is in a character set similar to the 7-bit US ASCII character set, but that includes some 8-bit characters that are normally not allowed in email bodies or headers. Quoted-printable is very space-inefficient for encoding binary files; use the email.base64mime module for that instead. This module provides an interface to encode and decode both headers and bodies with quoted-printable encoding. RFC 2045 defines a method for including character set information in an `encoded-word' in a header. This method is commonly used for 8-bit real names in To:/From:/Cc: etc. fields, as well as Subject: lines. This module does not do the line wrapping or end-of-line character conversion necessary for proper internationalized headers; it only does dumb encoding and decoding. To deal with the various line wrapping issues, use the email.header module. t body_decodet body_encodetbody_quopri_checktbody_quopri_lentdecodet decodestringtencodet encodestringt header_decodet header_encodetheader_quopri_checktheader_quopri_lentquotetunquotei˙˙˙˙N(t hexdigits(tfix_eolss s is[^-a-zA-Z0-9!*+/ ]s [^ !-<>-~\t]cCsttj|ƒƒS(sBReturn True if the character should be escaped with header quopri.(tboolthqretmatch(tc((s&/sys/lib/python2.7/email/quoprimime.pyR ?scCsttj|ƒƒS(s@Return True if the character should be escaped with body quopri.(RtbqreR(R((s&/sys/lib/python2.7/email/quoprimime.pyRDscCsAd}x4|D],}tj|ƒr/|d7}q |d7}q W|S(s?Return the length of str when it is encoded with header quopri.iii(RR(tstcountR((s&/sys/lib/python2.7/email/quoprimime.pyR Is   cCsAd}x4|D],}tj|ƒr/|d7}q |d7}q W|S(s=Return the length of str when it is encoded with body quopri.iii(RR(tstrRR((s&/sys/lib/python2.7/email/quoprimime.pyRTs   tcCsj|s|j|jƒƒnJt|dƒt|ƒ|krS|dc||7