-ķ £ƒę>cswdZdZdkZdkZdkZdkZdkZdkZdkZdk l Z dddddgZ d Z d Z d Zd Zd dfZhddfd<dfd<ddddfd<dfd<dfd<dfd<ddfd<ddfd<ddfd<dfd<dfd<ddfd<ddfd<ddfd<ddfd <dfd!<ddddfd<ddfd"<ddfd#<ddddfd$<dfd%<ddfd&<dfd'<ddfd(<ddfd)<ddfd*<dfd+<ddfd,<dfd-<ddfd.<dfd/<ddfd0„ƒYZd?fd@„ƒYZhdAdB<dCdD<dEdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdXe>oe>i?dAƒZ@ne<iAƒdŠZ@e6d‹e@fƒq\Wx†e5D]~\Z;Z)e6e;e)ƒZBe;e)fd€d'dffjoq¹neBdŠiAƒZCeC oq¹ne6d€ddŒeCdŠdfƒq¹WdŽGHWn+dGHe odei'd GHn‚nXndS(‘söIMAP4 client. Based on RFC 2060. Public class: IMAP4 Public variable: Debug Public functions: Internaldate2tuple Int2AP ParseFlags Time2Internaldate s2.52N(sUIBasesIMAP4sInternaldate2tuplesInt2APs ParseFlagssTime2Internaldates iiiįs IMAP4REV1sAUTHsSELECTEDsAPPENDsNONAUTHs AUTHENTICATEsLOGOUTs CAPABILITYsCHECKsCLOSEsCOPYsCREATEsDELETEsEXAMINEsEXPUNGEsFETCHsGETACLsGETQUOTAs GETQUOTAROOTsLISTsLOGINsLSUBs NAMESPACEsNOOPsPARTIALsRENAMEsSEARCHsSELECTsSETACLsSETQUOTAsSORTsSTATUSsSTOREs SUBSCRIBEsUIDs UNSUBSCRIBEs\+( (?P.*))?s.*FLAGS \((?P[^\)]*)\)sŌ.*INTERNALDATE "(?P[ 123][0-9])-(?P[A-Z][a-z][a-z])-(?P[0-9][0-9][0-9][0-9]) (?P[0-9][0-9]):(?P[0-9][0-9]):(?P[0-9][0-9]) (?P[-+])(?P[0-9][0-9])(?P[0-9][0-9])"s.*{(?P\d+)}$s)\[(?P[A-Z-]+)( (?P[^\]]*))?\]s$\* (?P[A-Z-]+)( (?P.*))?s3\* (?P\d+) (?P[A-Z-]+)( (?P.*))?csctZdZdefd„ƒYZdefd„ƒYZdefd„ƒYZeidƒZ de d „Z d „Z de d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z dd d!„Z!d"„Z"d#„Z#dd d$„Z$d%„Z%d&„Z&d'„Z'd(„Z(d)„Z)d*e*d+„Z+d,„Z,d-„Z-d.„Z.d/„Z/d0„Z0d1„Z1d2„Z2d3„Z3d4„Z4d5„Z5d6„Z6d7„Z7d8„Z8d9„Z9d:„Z:d;„Z;d<„Z<d=„Z=d>„Z>d?„Z?d@„Z@dA„ZARS(BsėIMAP4 client class. Instantiate with: IMAP4([host[, port]]) host - host's name (default: localhost); port - port number (default: standard IMAP4 port). All IMAP4rev1 commands are supported by methods of the same name (in lower-case). All arguments to commands are converted to strings, except for AUTHENTICATE, and the last argument to APPEND which is passed as an IMAP4 literal. If necessary (the string contains any non-printing characters or white-space and isn't enclosed with either parentheses or double quotes) each string is quoted. However, the 'password' argument to the LOGIN command is always quoted. If you want to avoid having an argument string quoted (eg: the 'flags' argument to STORE) then enclose the string in parentheses (eg: "(\Deleted)"). Each command returns a tuple: (type, [data, ...]) where 'type' is usually 'OK' or 'NO', and 'data' is either the text from the tagged response, or untagged results from command. Errors raise the exception class .error(""). IMAP4 server errors raise .abort(""), which is a sub-class of 'error'. Mailbox status changes from READ-WRITE to READ-ONLY raise the exception class .readonly(""), which is a sub-class of 'abort'. "error" exceptions imply a program error. "abort" exceptions imply the connection should be reset, and the command re-tried. "readonly" exceptions imply the command should be re-tried. Note: to use this module, you must read the RFCs pertaining to the IMAP4 protocol, as the semantics of the arguments to each IMAP4 command are left to the invoker, not to mention the results. serrorcstZRS(N(s__name__s __module__(((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyserror‡ssabortcstZRS(N(s__name__s __module__(((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysabortˆssreadonlycstZRS(N(s__name__s __module__(((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysreadonly‰ss[^\w!#$%&'*+,.:;<=>?^`|~-]scs‘t|_d|_t|_h|_h|_d|_t|_ d|_ |i ||ƒttiddƒƒ|_tid|idƒ|_|iƒ|_d|ijo d|_n0d |ijo d |_n|i|iƒ‚d }|i|ƒ||ij o|id ƒ‚nt|i|d iƒiƒƒ|_x3tD]+}||ij oqOn||_ dSqOW|idƒ‚dS(NsLOGOUTsii’|s(?Ps"\d+) (?P[A-Z]+) (?P.*)sPREAUTHsAUTHsOKsNONAUTHs CAPABILITYs"no CAPABILITY response from serveri’’’’sserver not IMAP4 compliant(!sDebugsselfsdebugsstatesNonesliteralstagged_commandssuntagged_responsesscontinuation_responses is_readonlystagnumsopenshostsportsInt2APsrandomsrandintstagpresrescompilestagres _get_responseswelcomeserrorscaps_simple_commandstuplesupperssplits capabilitiessAllowedVersionssversionsPROTOCOL_VERSION(sselfshostsportscapsversion((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys__init__s>           & cs8|tjot||iƒƒSntd|ƒ‚dS(NsUnknown IMAP4 command: '%s'(sattrsCommandssgetattrsselfslowersAttributeError(sselfsattr((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys __getattr__És c sŠ||_||_ti||titiƒ}|d\}}}}}ti|||ƒ|_ |i i|ƒ|i idƒ|_dS(sŃSetup connection to remote server on "host:port" (default: localhost:standard IMAP4 port). This connection will be used by the routines: read, readline, send, shutdown. isrbN(shostsselfsportssockets getaddrinfos AF_UNSPECs SOCK_STREAMsressafssocktypesprotos canonnamessassocksconnectsmakefilesfile( sselfshostsports canonnamessasafssocktypesressproto((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysopenŌs   csId}x8t|ƒ|jo$||ii|t|ƒƒ7}q W|SdS(sRead 'size' bytes from remote.sN(sretvalslenssizesselfsfilesread(sselfssizesretval((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysreadés %cs|iiƒSdS(sRead line from remote.N(sselfsfilesreadline(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysreadlinešscs|ii|ƒdS(sSend data to remote.N(sselfssockssendallsdata(sselfsdata((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssendõscs|iiƒ|iiƒdS(s Close I/O established in "open".N(sselfsfilesclosessock(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysshutdownśs cs |iSdS(sfReturn socket instance used to connect to IMAP4 server. socket = .socket() N(sselfssock(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssocketscsfd}|idtg|ƒ\}}|do||fSn|iƒ\}}|i|||ƒSdS(sReturn most recent 'RECENT' responses if any exist, else prompt server for an update using the 'NOOP' command. (typ, [data]) = .recent() 'data' is None if no new messages, else list of RECENT responses, most recent last. sRECENTsOKi’’’’N(snamesselfs_untagged_responsesNonestypsdatsnoop(sselfsdatstypsname((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysrecent s cs |i|tg|iƒƒSdS(s„Return data for response 'code' if received, or None. Old value for response 'code' is cleared. (code, [data]) = .response(code) N(sselfs_untagged_responsescodesNonesupper(sselfscode((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysresponsescs˜d}| o d}n|o3|d|dfddfjod|}nnt}|ot|ƒ}nt}||_|i ||||ƒSdS( s°Append message to named mailbox. (typ, [data]) = .append(mailbox, flags, date_time, message) All args except `message' can be None. sAPPENDsINBOXii’’’’s(s)s(%s)N( snamesmailboxsflagssNones date_timesTime2Internaldatesmessagesselfsliterals_simple_command(sselfsmailboxsflagss date_timesmessagesname((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysappend+s ! cs£|iƒ}d|}||ij o|id|ƒ‚nt|ƒi |_ |i d|ƒ\}}|djo|i|dƒ‚nd|_||fSdS(s,Authenticate command - requires response processing. 'mechanism' specifies which authentication mechanism is to be used - it must appear in .capabilities in the form AUTH=. 'authobject' must be a callable object: data = authobject(response) It will be called to process server continuation responses. It should return data that will be encoded and sent to server. It should return None if the client abort response '*' should be sent instead. sAUTH=%ss'Server doesn't allow %s authentication.s AUTHENTICATEsOKi’’’’sAUTHN(s mechanismsuppersmechscapsselfs capabilitiesserrors_Authenticators authobjectsprocesssliterals_simple_commandstypsdatsstate(sselfs mechanisms authobjectsdatsmechscapstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys authenticateBs    cs|idƒSdS(sRCheckpoint mailbox on server. (typ, [data]) = .check() sCHECKN(sselfs_simple_command(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyscheck^scs4z|idƒ\}}Wdd|_X||fSdS(sĢClose currently selected mailbox. Deleted messages are removed from writable mailbox. This is the recommended command before 'LOGOUT'. (typ, [data]) = .close() sCLOSENsAUTH(sselfs_simple_commandstypsdatsstate(sselfsdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysclosefs  cs|id||ƒSdS(s‚Copy 'message_set' messages onto end of 'new_mailbox'. (typ, [data]) = .copy(message_set, new_mailbox) sCOPYN(sselfs_simple_commands message_sets new_mailbox(sselfs message_sets new_mailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyscopyuscs|id|ƒSdS(sPCreate new mailbox. (typ, [data]) = .create(mailbox) sCREATEN(sselfs_simple_commandsmailbox(sselfsmailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyscreate}scs|id|ƒSdS(sPDelete old mailbox. (typ, [data]) = .delete(mailbox) sDELETEN(sselfs_simple_commandsmailbox(sselfsmailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysdelete…scs2d}|i|ƒ\}}|i|||ƒSdS(s÷Permanently remove deleted items from selected mailbox. Generates 'EXPUNGE' response for each deleted message. (typ, [data]) = .expunge() 'data' is list of 'EXPUNGE'd message numbers in order received. sEXPUNGEN(snamesselfs_simple_commandstypsdats_untagged_response(sselfsdatstypsname((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysexpungescs8d}|i|||ƒ\}}|i|||ƒSdS(s#Fetch (parts of) messages. (typ, [data, ...]) = .fetch(message_set, message_parts) 'message_parts' should be a string of selected parts enclosed in parentheses, eg: "(UID BODY[TEXT])". 'data' are tuples of message part envelope and data. sFETCHN(snamesselfs_simple_commands message_sets message_partsstypsdats_untagged_response(sselfs message_sets message_partssdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysfetch›s cs/|id|ƒ\}}|i||dƒSdS(sXGet the ACLs for a mailbox. (typ, [data]) = .getacl(mailbox) sGETACLsACLN(sselfs_simple_commandsmailboxstypsdats_untagged_response(sselfsmailboxsdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysgetaclŖscs/|id|ƒ\}}|i||dƒSdS(sŖGet the quota root's resource usage and limits. Part of the IMAP4 QUOTA extension defined in rfc2087. (typ, [data]) = .getquota(root) sGETQUOTAsQUOTAN(sselfs_simple_commandsrootstypsdats_untagged_response(sselfsrootsdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysgetquota³scsb|idtƒ\}}|i||dƒ\}}|i||dƒ\}}|||gfSdS(sœGet the list of quota roots for the named mailbox. (typ, [[QUOTAROOT responses...], [QUOTA responses]]) = .getquotaroot(mailbox) sGETQUOTAsQUOTAs QUOTAROOTN(sselfs_simple_commandsrootstypsdats_untagged_responsesquotas quotaroot(sselfsmailboxsdats quotarootstypsquota((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys getquotaroot¾s s""s*cs8d}|i|||ƒ\}}|i|||ƒSdS(s«List mailbox names in directory matching pattern. (typ, [data]) = .list(directory='""', pattern='*') 'data' is list of LIST responses. sLISTN(snamesselfs_simple_commands directoryspatternstypsdats_untagged_response(sselfs directoryspatternsdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyslistÉscs_|id||i|ƒƒ\}}|djo|i|dƒ‚nd|_||fSdS(s”Identify client using plaintext password. (typ, [data]) = .login(user, password) NB: 'password' will be quoted. sLOGINsOKi’’’’sAUTHN( sselfs_simple_commandsusers_quotespasswordstypsdatserrorsstate(sselfsuserspasswordsdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysloginÕs $  csŒd|_y|idƒ\}}Wn*ddtiƒd gf\}}nX|iƒd|ijod|idfSn||fSdS(s|Shutdown connection to server. (typ, [data]) = .logout() Returns server 'BYE' response. sLOGOUTsNOs%s: %sisBYEN( sselfsstates_simple_commandstypsdatssyssexc_infosshutdownsuntagged_responses(sselfsdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyslogoutås ' cs8d}|i|||ƒ\}}|i|||ƒSdS(sŠList 'subscribed' mailbox names in directory matching pattern. (typ, [data, ...]) = .lsub(directory='""', pattern='*') 'data' are tuples of message part envelope and data. sLSUBN(snamesselfs_simple_commands directoryspatternstypsdats_untagged_response(sselfs directoryspatternsdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyslsubõscs2d}|i|ƒ\}}|i|||ƒSdS(sb Returns IMAP namespaces ala rfc2342 (typ, [data, ...]) = .namespace() s NAMESPACEN(snamesselfs_simple_commandstypsdats_untagged_response(sselfsdatstypsname((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys namespacescs|idƒSdS(sDSend NOOP command. (typ, data) = .noop() sNOOPN(sselfs_simple_command(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysnoop scs>d}|i|||||ƒ\}}|i ||dƒSdS(sĀFetch truncated part of a message. (typ, [data, ...]) = .partial(message_num, message_part, start, length) 'data' is tuple of message part envelope and data. sPARTIALsFETCHN( snamesselfs_simple_commands message_nums message_partsstartslengthstypsdats_untagged_response(sselfs message_nums message_partsstartslengthsdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyspartials!cs|id||ƒSdS(siRename old mailbox name to new. (typ, data) = .rename(oldmailbox, newmailbox) sRENAMEN(sselfs_simple_commands oldmailboxs newmailbox(sselfs oldmailboxs newmailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysrename"scsld}|o)t|i|d|f|ƒ\}}n t|i|f|ƒ\}}|i|||ƒSdS(s·Search mailbox for matching messages. (typ, [data]) = .search(charset, criterium, ...) 'data' is space separated list of matching message numbers. sSEARCHsCHARSETN( snamescharsetsapplysselfs_simple_commandscriteriastypsdats_untagged_response(sselfscharsetscriteriasdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssearch*s )sINBOXcs¬h|_||_d}|i||ƒ\}}|djod|_ ||fSnd|_ d|ijo| o|id|ƒ‚n||ii dt gƒfSdS( sŃSelect a mailbox. Flush all untagged responses. (typ, [data]) = .select(mailbox='INBOX', readonly=None) 'data' is count of messages in mailbox ('EXISTS' response). sSELECTsOKsAUTHsSELECTEDs READ-ONLYs%s is not writablesEXISTSN( sselfsuntagged_responsessreadonlys is_readonlysnames_simple_commandsmailboxstypsdatsstatesgetsNone(sselfsmailboxsreadonlysdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysselect9s     cs|id|||ƒSdS(sZSet a mailbox acl. (typ, [data]) = .create(mailbox, who, what) sSETACLN(sselfs_simple_commandsmailboxswhoswhat(sselfsmailboxswhoswhat((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssetaclTscs2|id||ƒ\}}|i||dƒSdS(siSet the quota root's resource limits. (typ, [data]) = .setquota(root, limits) sSETQUOTAsQUOTAN(sselfs_simple_commandsrootslimitsstypsdats_untagged_response(sselfsrootslimitssdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssetquota\scsqd}|d|dfddfjod|}nt|i|||f|ƒ\}}|i |||ƒSdS(sIMAP4rev1 extension SORT command. (typ, [data]) = .sort(sort_criteria, charset, search_criteria, ...) sSORTii’’’’s(s)s(%s)N( snames sort_criteriasapplysselfs_simple_commandscharsetssearch_criteriastypsdats_untagged_response(sselfs sort_criteriascharsetssearch_criteriasdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssortes !%cs8d}|i|||ƒ\}}|i|||ƒSdS(spRequest named status conditions for mailbox. (typ, [data]) = .status(mailbox, names) sSTATUSN(snamesselfs_simple_commandsmailboxsnamesstypsdats_untagged_response(sselfsmailboxsnamessdatstypsname((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysstatussscsd|d|dfddfjod|}n|id|||ƒ\}}|i||dƒSdS( sAlters flag dispositions for messages in mailbox. (typ, [data]) = .store(message_set, command, flags) ii’’’’s(s)s(%s)sSTOREsFETCHN(sflagssselfs_simple_commands message_setscommandstypsdats_untagged_response(sselfs message_setscommandsflagssdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysstores !cs|id|ƒSdS(sYSubscribe to new mailbox. (typ, [data]) = .subscribe(mailbox) s SUBSCRIBEN(sselfs_simple_commandsmailbox(sselfsmailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys subscribeŠscsĒ|iƒ}|tj o|id|ƒ‚n|it|jo |id||ifƒ‚nd}t|i||f|ƒ\}}|ddfjo |}nd}|i |||ƒSdS(såExecute "command arg ..." with messages identified by UID, rather than message number. (typ, [data]) = .uid(command, arg1, arg2, ...) Returns response appropriate to 'command'. sUnknown IMAP4 UID command: %sscommand %s illegal in state %ssUIDsSEARCHsSORTsFETCHN( scommandsuppersCommandssselfserrorsstatesnamesapplys_simple_commandsargsstypsdats_untagged_response(sselfscommandsargssdatsnamestyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysuid’s  " cs|id|ƒSdS(s_Unsubscribe from old mailbox. (typ, [data]) = .unsubscribe(mailbox) s UNSUBSCRIBEN(sselfs_simple_commandsmailbox(sselfsmailbox((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys unsubscribe©scsI|iƒ}|tj o|ift|.xatom(name, arg, ...) Returns response appropriate to extension command `name'. N(snamesuppersCommandssselfsstatesapplys_simple_commandsargs(sselfsnamesargs((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysxatom±s  csS|tjo d}n|i}||jo||i|ƒn|g|| %ssBADs%s command error: %s %s( sselfs _check_byes_get_tagged_responsestagstypsdatasabortsvalsnameserror(sselfsnamestagsvalstypsdata((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys_command_complete#s    cs]|iƒ}|i|i|ƒox|iidƒ}||ij o|i d|ƒ‚n|iidƒ}|iidƒ}||gf|i|.socket() N(sselfssock(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pyssocketŒscs |iSdS(stReturn SSLObject instance used to communicate with the IMAP4 server. ssl = .socket.ssl() N(sselfssslobj(sself((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysssl”s( s__name__s __module__s__doc__sIMAP4_SSL_PORTsNones__init__sopensreadsreadlinessendsshutdownssocketsssl(((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys IMAP4_SSLMs      s_Authenticatorcs2tZdZd„Zd„Zd„Zd„ZRS(scPrivate class to provide en/decoding for base64-based authentication conversation. cs ||_dS(N(smechinstsselfsmech(sselfsmechinst((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys__init__£scs>|i|i|ƒƒ}|tjodSn|i|ƒSdS(Ns*(sselfsmechsdecodesdatasretsNonesencode(sselfsdatasret((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysprocess¦s cs|d}xk|oct|ƒdjo|d }|d}n |}d}ti|ƒ}|o||d }nq W|SdS(Nsi0i’’’’(soupsinpslenstsbinasciis b2a_base64se(sselfsinpsestsoup((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysencode¬s  cs!| odSnti|ƒSdS(Ns(sinpsbinasciis a2b_base64(sselfsinp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysdecodeĀs(s__name__s __module__s__doc__s__init__sprocesssencodesdecode(((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys_Authenticators    isJanisFebisMarisAprisMayisJunisJulisAugi sSepi sOcti sNovi sDecc s…ti|ƒ}| otSnt|idƒ} |idƒ}t |idƒƒ}t |idƒƒ} t |idƒƒ}t |idƒƒ}t |idƒƒ} t |idƒƒ} t |id ƒƒ}| d |d }|d jo | }n| | |||| d d d f } ti| ƒ}ti|ƒ}tio|d o|ti}n|ti}ti||ƒSd S(sMConvert IMAP4 INTERNALDATE to UT. Returns Python time module tuple. smonszonensdaysyearshoursminssecszonehszonemi<s-i’’’’N(s InternalDatesmatchsrespsmosNonesMon2numsgroupsmonszonensintsdaysyearshoursminssecszonehszonemszonesttstimesmktimesutcs localtimesltsdaylightsaltzonestimezone(srespsutcszoneshoursminszonenszonemsdaysltsttssecsmonszonehsyearsmo((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysInternaldate2tupleĢs.  ! csXd}d}tt|ƒƒ}x/|o't|dƒ\}}|||}q!W|SdS(s-Convert integer to A-P string representation.ssABCDEFGHIJKLMNOPiN(svalsAPsintsabssnumsdivmodsmod(snumsAPsvalsmod((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysInt2APųs cs<ti|ƒ}| ofSnt|idƒiƒƒSdS(s-Convert IMAP4 flags response to python tuple.sflagsN(sFlagssmatchsrespsmostuplesgroupssplit(srespsmo((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys ParseFlagss cst|ttfƒoti|ƒ}nit|ttifƒo |}nFt|t ƒo|d|dfddfjo|Sn t dƒ‚ti d|ƒ}|ddjod|d}nti o|doti }n ti }d|d t|d d ƒdSd S( syConvert 'date_time' to IMAP4 INTERNALDATE representation. Return string in form: '"DD-Mmm-YYYY HH:MM:SS +HHMM"' ii’’’’s"sdate_time not of a known types%d-%b-%Y %H:%M:%Ss0s is %+03d%02di<N(s isinstances date_timesintsfloatstimes localtimesttstuples struct_timesstrs ValueErrorsstrftimesdtsdaylightsaltzoneszonestimezonesdivmod(s date_timeszonesttsdt((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysTime2Internaldates 1  s__main__sd:s-dssIMAP password for %s on %s: s localhostsJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)ssuserslfsloginscreates /tmp/xxx 1srenames/tmp/yyys /tmp/yyz 2sappendslists/tmpsyy*sselectssearchsSUBJECTstestsfetchs1s(FLAGS INTERNALDATE RFC822)sstoresFLAGSs (\Deleted)s namespacesexpungesrecentsclosesresponses UIDVALIDITYsuidsALLsEXISTSslogoutcsWtid||fƒttt|ƒ|ƒ\}}tid|||fƒ|SdS(Ns%s %ss %s => %s %s(sMs_mesgscmdsargssapplysgetattrstypsdat(scmdsargssdatstyp((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pysrun[ssPROTOCOL_VERSION = %ssCAPABILITIES = %ss/tmp/syy%s .*"([^"]+)"$i’’’’sdeletes%ss:(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)s All tests OK.s Tests failed.s8 If you would like to see debugging output, try: %s -d5 (Ds__doc__s __version__sbinasciisressocketstimesrandomssyssossofflineimap.uisUIBases__all__sCRLFsDebugs IMAP4_PORTsIMAP4_SSL_PORTsAllowedVersionssCommandsscompiles ContinuationsFlagss InternalDatesLiterals Response_codesUntagged_responsesUntagged_statussIMAP4s IMAP4_Tunnels sslwrappers IMAP4_SSLs_AuthenticatorsMon2numsInternaldate2tuplesInt2APs ParseFlagssTime2Internaldates__name__sgetoptsgetpasssargvsoptlistsargsserrorsvalsoptsintshostsgetusersUSERsPASSWDs test_mesgsNones test_seq1s test_seq2srunsMs_mesgsPROTOCOL_VERSIONs capabilitiesscmdsmlsmatchsmosgroupspathssplitsdatsuid(5s test_seq1scmdsuids Response_codesrandomsgetpasssLiteralsmlsUSERspaths IMAP4_TunnelsInt2APs IMAP4_SSLs InternalDatesUntagged_statussvalsbinasciisPASSWDsres test_mesgsdatsgetopts __version__s_AuthenticatorsoptsCommandss test_seq2sruns IMAP4_PORTsMsargssIMAP4_SSL_PORTssyss sslwrappershostsFlagssCRLFsDebugsTime2Internaldates__all__soptlistssocketsInternaldate2tuples ParseFlagss ContinuationsmosMon2numsUntagged_responsesAllowedVersionssUIBasestimesIMAP4sos((s;/usr/pkg/lib/python2p2/site-packages/offlineimap/imaplib.pys? sž ?  ’Õ&’’’¬ (P,r ,  #      Ć]    "