Edit File: imaplib.cpython-36.opt-2.pyc
3 � \/����������������2���@���s���d�Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z mZmZ�ddl mZ�yddlZdZW�n�ek r����dZY�nX�ddd d ddgZd ZdZdZdZdfZdZdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�)Zejd�Zejd�Zejd�Zejdej�Zejd�Z ejd�Z!ejd�Z"ejdej�Z#dZ$dZ%G�dd��d�Z&e�r�G�d d!��d!e&�Z'ej(d!��G�d"d��de&�Z)G�d#d$��d$�Z*d%j+d&�Z,d'd(��e-e,d)d���D��Z.d*d ��Z/d+d ��Z0d,d��Z1d-d��Z2e3d.k�r�ddl4Z4ddl5Z5ye4j4ej6d)d��d/�\Z7Z8W�n0�e4j9k �rn�Z:�zf�f��Z7Z8W�Y�ddZ:[:X�nX�dZ;x@e7D�]8\Z<Z:e<d0k�r�e=e:�Zne<d1k�rze:Z;e8�sze;fZ8�qzW�e8�s�d�Z8e8d�Z>e5j?��Z@e5j5d3e@e>�p�d4f��ZAd5e@d6d7��ZBd8e@eAffd�d�d�d?d>ddeBffd�d�d�d�d�dMf�fdNf�fdOf�fdPf�ffZCdCf�fd�d�d�d?dddeBffdOf�fdWf�ffZDdXdY��ZE�y&e;�r�e)e;�ZFne&e>�ZFeFjGdk�r�eCd)d��ZCeFjHdZeFjI���eFjHd[eFjJf���xeCD�]\ZKZ8eEeKe8���q�W�xJeEd@d��D�]<ZLejMd^eL�ZNeN�reNjOd)�ZPneLj+��d��ZPeEd_ePf���q�W�x\eDD�]T\ZKZ8eEeKe8�ZQeKe8fd�k�rV�q2eQd��j+��ZReR�sl�q2eEdSd`daeRd���dbf���q2W�eSdc��W�n.���eSdd��e�s�eSdeej6d������Y�nX�dS�)�z2.58�����N)�datetime�timezone� timedelta)�DEFAULT_BUFFER_SIZETF�IMAP4�IMAP4_stream�Internaldate2tuple�Int2AP� ParseFlags�Time2Internaldates��� ����i���� IMAP4REV1i@B��AUTH�SELECTED�NONAUTH�LOGOUT))�APPEND�AUTHENTICATE� CAPABILITY�CHECK�CLOSE�COPY�CREATE�DELETE� DELETEACL�ENABLE�EXAMINE�EXPUNGE�FETCH�GETACL� GETANNOTATION�GETQUOTA�GETQUOTAROOT�MYRIGHTS�LIST�LOGINr����LSUBZMOVE� NAMESPACE�NOOP�PARTIAL� PROXYAUTH�RENAME�SEARCH�SELECT�SETACL� SETANNOTATION�SETQUOTA�SORT�STARTTLS�STATUS�STORE� SUBSCRIBE�THREAD�UID�UNSUBSCRIBEs���\+( (?P<data>.*))?s���.*FLAGS \((?P<flags>[^\)]*)\)s����.*INTERNALDATE "(?P<day>[ 0123][0-9])-(?P<mon>[A-Z][a-z][a-z])-(?P<year>[0-9][0-9][0-9][0-9]) (?P<hour>[0-9][0-9]):(?P<min>[0-9][0-9]):(?P<sec>[0-9][0-9]) (?P<zonen>[-+])(?P<zoneh>[0-9][0-9])(?P<zonem>[0-9][0-9])"s���.*{(?P<size>\d+)}$s ���\r\n|\r|\ns%���\[(?P<type>[A-Z-]+)( (?P<data>.*))?\]s$���\* (?P<type>[A-Z-]+)( (?P<data>.*))?s3���\* (?P<data>\d+) (?P<type>[A-Z-]+)( (?P<data2>.*))?c���������������@���s���e�Zd�ZG�dd��de�ZG�dd��de�ZG�dd��de�Zdefdd �Zd d��Z dd ��Z dd��Zdd��Zdd��Z dd��Zdd��Zdefdd�Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��Z d:d;��Z!d<d=��Z"d>d?��Z#d@dA��Z$dBdC��Z%dDdE��Z&dFdG��Z'd�dJdK�Z(dLdM��Z)dNdO��Z*dPdQ��Z+dRdS��Z,d�dTdU�Z-dVdW��Z.dXdY��Z/dZd[��Z0d\d]��Z1d^d_��Z2d`da��Z3dbdc��Z4d�dfdg�Z5dhdi��Z6djdk��Z7dldm��Z8dndo��Z9d�dqdr�Z:dsdt��Z;dudv��Z<dwdx��Z=dydz��Z>d{d|��Z?d}d~��Z@dd���ZAd�d���ZBd�d���ZCd�d���ZDd�d���ZEd�d���ZFd�d���ZGd�d���ZHd�d���ZId�d���ZJd�d���ZKd�d���ZLd�d���ZMd�d���ZNdpS�)�r���c���������������@���s���e�Zd�ZdS�)zIMAP4.errorN)�__name__� __module__�__qualname__��r<���r<����/usr/lib64/python3.6/imaplib.py�error����s����r>���c���������������@���s���e�Zd�ZdS�)zIMAP4.abortN)r9���r:���r;���r<���r<���r<���r=����abort����s����r?���c���������������@���s���e�Zd�ZdS�)zIMAP4.readonlyN)r9���r:���r;���r<���r<���r<���r=����readonly����s����r@�����c�������������C���s����t�|�_d|�_d�|�_i�|�_i�|�_d|�_d|�_d|�_d|�_ |�j ���|�j||��y|�j���W�n8�t k r����y|�j���W�n�tk r����Y�nX���Y�nX�d�S�)Nr���rA���Fr���)�Debug�debug�state�literal�tagged_commands�untagged_responses�continuation_response�is_readonly�tagnum�_tls_established�_mode_ascii�open�_connect� Exception�shutdown�OSError)�self�host�portr<���r<���r=����__init__����s&����zIMAP4.__init__c�������������C���s0���d|�_�d|�_tjttj�|�_tjttj�|�_d�S�)NF�ascii) �utf8_enabled� _encoding�re�compile�_Literal�ASCII�Literal�_Untagged_status�Untagged_status)rR���r<���r<���r=���rL�������s����zIMAP4._mode_asciic�������������C���s(���d|�_�d|�_tjt�|�_tjt�|�_d�S�)NTzutf-8)rW���rX���rY���rZ���r[���r]���r^���r_���)rR���r<���r<���r=���� _mode_utf8����s����zIMAP4._mode_utf8c�������������C���s����t�tjdd��|�_tjd|�j�d�tj�|�_|�j��|�_ d|�j krHd|�_nd|�j krZd|�_n|�j|�j ��|�j ���x tD�]}||�jkr�qt||�_d�S�W�|�jd ��d�S�) Ni���i����s���(?P<tag>s"���\d+) (?P<type>[A-Z]+) (?P<data>.*)ZPREAUTHr����OKr���zserver not IMAP4 compliant)r ����randomZrandint�tagprerY���rZ���r\����tagre� _get_responseZwelcomerG���rD���r>����_get_capabilities�AllowedVersions�capabilities�PROTOCOL_VERSION)rR����versionr<���r<���r=���rN�������s ���� zIMAP4._connectc�������������C���s&���|t�krt|�|j���S�td|���d�S�)NzUnknown IMAP4 command: '%s')�Commands�getattr�lower�AttributeError)rR����attrr<���r<���r=����__getattr__ ��s����zIMAP4.__getattr__c�������������C���s���|�S�)Nr<���)rR���r<���r<���r=���� __enter__��s����zIMAP4.__enter__c�������������G���s&���y|�j����W�n�tk r ���Y�nX�d�S�)N)�logoutrQ���)rR����argsr<���r<���r=����__exit__��s����zIMAP4.__exit__c�������������C���s ���|�j�s d�n|�j�}tj||�jf�S�)N)rS����socketZcreate_connectionrT���)rR���rS���r<���r<���r=����_create_socket��s����zIMAP4._create_socketc�������������C���s(���||�_�||�_|�j��|�_|�jjd�|�_d�S�)N�rb)rS���rT���rv����sock�makefile�file)rR���rS���rT���r<���r<���r=���rM���#��s���� z IMAP4.openc�������������C���s���|�j�j|�S�)N)rz����read)rR����sizer<���r<���r=���r{���/��s����z IMAP4.readc�������������C���s.���|�j�jtd��}t|�tkr*|�jdt���|S�)N����zgot more than %d bytes)rz����readline�_MAXLINE�lenr>���)rR����liner<���r<���r=���r~���4��s����zIMAP4.readlinec�������������C���s���|�j�j|��d�S�)N)rx���Zsendall)rR����datar<���r<���r=����send<��s����z IMAP4.sendc�������������C���st���|�j�j���zXy|�jjtj��W�n@�tk r^�}�z$|jtjkrNt |dd�dkrN��W�Y�d�d�}~X�nX�W�d�|�jj���X�d�S�)NZwinerrorr���i&'��) rz����closerx���rP���ru���Z SHUT_RDWRrQ����errnoZENOTCONNrl���)rR����excr<���r<���r=���rP���A��s���� zIMAP4.shutdownc�������������C���s���|�j�S�)N)rx���)rR���r<���r<���r=���ru���Q��s����zIMAP4.socketc�������������C���sB���d}|�j�dd�g|�\}}|d�r(||fS�|�j��\}}|�j�|||�S�)NZRECENTra���r}������)�_untagged_response�noop)rR����name�typ�datr<���r<���r=����recent]��s���� zIMAP4.recentc�������������C���s���|�j�|d�g|j���S�)N)r�����upper)rR����coder<���r<���r=����responsen��s����zIMAP4.responsec�������������C���sx���d}|sd}|r.|d�|d �fdkr2d|�}nd�}|r@t�|�}nd�}tjt|�}|�jrbd|�d �}||�_|�j||||�S�)Nr����INBOXr���r}����(�)z(%s)s���UTF8 (����)r����)r����r����)r����MapCRLF�sub�CRLFrW���rE����_simple_command)rR����mailbox�flags� date_time�messager����rE���r<���r<���r=����append|��s���� zIMAP4.appendc�������������C���sP���|j���}t|�j|�_|�jd|�\}}|dkrB|�j|d�jdd���d|�_||fS�)Nr���ra���r}���zutf-8�replacer���r����)r�����_Authenticator�processrE���r����r>����decoderD���)rR���Z mechanismZ authobject�mechr����r����r<���r<���r=����authenticate���s����zIMAP4.authenticatec�������������C���s ���d}|�j�|�\}}|�j|||�S�)Nr���)r����r����)rR���r����r����r����r<���r<���r=���� capability���s����zIMAP4.capabilityc�������������C���s ���|�j�d�S�)Nr���)r����)rR���r<���r<���r=����check���s����zIMAP4.checkc�������������C���s$���z|�j�d�\}}W�d�d|�_X�||fS�)Nr���r���)r����rD���)rR���r����r����r<���r<���r=���r�������s����zIMAP4.closec�������������C���s���|�j�d||�S�)Nr���)r����)rR����message_setZnew_mailboxr<���r<���r=����copy���s����z IMAP4.copyc�������������C���s���|�j�d|�S�)Nr���)r����)rR���r����r<���r<���r=����create���s����zIMAP4.createc�������������C���s���|�j�d|�S�)Nr���)r����)rR���r����r<���r<���r=����delete���s����zIMAP4.deletec�������������C���s���|�j�d||�S�)Nr���)r����)rR���r�����whor<���r<���r=���� deleteacl���s����zIMAP4.deleteaclc�������������C���sH���d|�j�krtjd��|�jd|�\}}|dkr@d|j��kr@|�j���||fS�)Nr���zServer does not support ENABLEra���zUTF8=ACCEPT)rh���r���r>���r����r����r`���)rR���r����r����r����r<���r<���r=����enable���s���� zIMAP4.enablec�������������C���s ���d}|�j�|�\}}|�j|||�S�)Nr���)r����r����)rR���r����r����r����r<���r<���r=����expunge���s���� z IMAP4.expungec�������������C���s$���d}|�j�|||�\}}|�j|||�S�)Nr���)r����r����)rR���r����Z message_partsr����r����r����r<���r<���r=����fetch��s���� zIMAP4.fetchc�������������C���s���|�j�d|�\}}|�j||d�S�)Nr���ZACL)r����r����)rR���r����r����r����r<���r<���r=����getacl��s����zIMAP4.getaclc�������������C���s"���|�j�d|||�\}}|�j||d�S�)Nr ���� ANNOTATION)r����r����)rR���r�����entryZ attributer����r����r<���r<���r=���� getannotation#��s����zIMAP4.getannotationc�������������C���s���|�j�d|�\}}|�j||d�S�)Nr!����QUOTA)r����r����)rR����rootr����r����r<���r<���r=����getquota+��s����zIMAP4.getquotac�������������C���s@���|�j�d|�\}}|�j||d�\}}|�j||d�\}}|||gfS�)Nr"���r����Z QUOTAROOT)r����r����)rR���r����r����r����ZquotaZ quotarootr<���r<���r=����getquotaroot6��s����zIMAP4.getquotaroot�""�*c�������������C���s$���d}|�j�|||�\}}|�j|||�S�)Nr$���)r����r����)rR���� directory�patternr����r����r����r<���r<���r=����listA��s����z IMAP4.listc�������������C���s<���|�j�d||�j|��\}}|dkr.|�j|d���d|�_||fS�)Nr%���ra���r}���r���r����)r�����_quoter>���rD���)rR����user�passwordr����r����r<���r<���r=����loginM��s ����zIMAP4.loginc�������������C���s���||�|�_�|�_|�jd|�j�S�)NzCRAM-MD5)r����r����r�����_CRAM_MD5_AUTH)rR���r����r����r<���r<���r=����login_cram_md5[��s����zIMAP4.login_cram_md5c�������������C���sB���dd�l�}t|�jt�r |�jjd�n|�j}|�jd�|j||d�j���S�)Nr���zutf-8� Zmd5)�hmac� isinstancer�����str�encoder����ZHMACZ hexdigest)rR���Z challenger�����pwdr<���r<���r=���r����d��s����zIMAP4._CRAM_MD5_AUTHc�������������C���sj���d|�_�y|�jd�\}}W�n(���ddtj��d�d���g�}}Y�nX�|�j���d|�jkrbd|�jd�fS�||fS�)Nr����NOz%s: %s�����BYE)rD���r�����sys�exc_inforP���rG���)rR���r����r����r<���r<���r=���rr���l��s������" zIMAP4.logoutc�������������C���s$���d}|�j�|||�\}}|�j|||�S�)Nr&���)r����r����)rR���r����r����r����r����r����r<���r<���r=����lsub|��s����z IMAP4.lsubc�������������C���s���|�j�d|�\}}|�j||d�S�)Nr#���)r����r����)rR���r����r����r����r<���r<���r=����myrights���s����zIMAP4.myrightsc�������������C���s ���d}|�j�|�\}}|�j|||�S�)Nr'���)r����r����)rR���r����r����r����r<���r<���r=���� namespace���s����zIMAP4.namespacec�������������C���s ���|�j�d�S�)Nr(���)r����)rR���r<���r<���r=���r�������s����z IMAP4.noopc�������������C���s(���d}|�j�|||||�\}}|�j||d�S�)Nr)���r���)r����r����)rR���Zmessage_numZmessage_part�startZlengthr����r����r����r<���r<���r=����partial���s����z IMAP4.partialc�������������C���s���d}|�j�d|�S�)Nr*���)r����)rR���r����r����r<���r<���r=���� proxyauth���s���� zIMAP4.proxyauthc�������������C���s���|�j�d||�S�)Nr+���)r����)rR���Z oldmailboxZ newmailboxr<���r<���r=����rename���s����zIMAP4.renamec�������������G���sT���d}|r2|�j�rtjd��|�j|d|f|���\}}n|�j|f|���\}}|�j|||�S�)Nr,���z'Non-None charset not valid in UTF8 mode�CHARSET)rW���r���r>���r����r����)rR����charsetZcriteriar����r����r����r<���r<���r=����search���s���� zIMAP4.searchr����Fc�������������C���sx���i�|�_�||�_|rd}nd}|�j||�\}}|dkr@d|�_||fS�d|�_d|�j�krd|�rd|�jd|���||�j�jdd�g�fS�) Nr���r-���ra���r���r���z READ-ONLYz%s is not writable�EXISTS)rG���rI���r����rD���r@����get)rR���r����r@���r����r����r����r<���r<���r=����select���s���� zIMAP4.selectc�������������C���s���|�j�d|||�S�)Nr.���)r����)rR���r����r����Zwhatr<���r<���r=����setacl���s����zIMAP4.setaclc�������������G���s ���|�j�d|���\}}|�j||d�S�)Nr/���r����)r/���)r����r����)rR���rs���r����r����r<���r<���r=���� setannotation���s����zIMAP4.setannotationc�������������C���s ���|�j�d||�\}}|�j||d�S�)Nr0���r����)r����r����)rR���r����Zlimitsr����r����r<���r<���r=����setquota��s����zIMAP4.setquotac�������������G���sF���d}|d�|d�fdkr d|�}|�j�|||f|���\}}|�j|||�S�) Nr1���r���r}���r����r����z(%s)r����)r����r����)r����r����)rR���Z sort_criteriar�����search_criteriar����r����r����r<���r<���r=����sort��s ����z IMAP4.sortNc�������������C���s����d}t�s|�jd��|�jr"|�jd��||�jkr6|�jd��|d�krFtj��}|�j|�\}}|dkr�|j|�j |�j d�|�_ |�j jd�|�_d|�_|�j ���n |�jd ��|�j|||�S�) Nr2���zSSL support missingzTLS session already establishedzTLS not supported by serverra���)�server_hostnamerw���TzCouldn't establish TLS session)�HAVE_SSLr>���rK���r?���rh����ssl�_create_stdlib_contextr�����wrap_socketrx���rS���ry���rz���rf���r����)rR����ssl_contextr����r����r����r<���r<���r=����starttls��s$���� zIMAP4.starttlsc�������������C���s$���d}|�j�|||�\}}|�j|||�S�)Nr3���)r����r����)rR���r�����namesr����r����r����r<���r<���r=����status5��s����zIMAP4.statusc�������������C���s>���|d�|d�fd krd|�}|�j�d|||�\}}|�j||d�S�) Nr���r}���r����r����z(%s)r4���r���r����)r����r����)r����r����)rR���r�����commandr����r����r����r<���r<���r=����storeA��s����zIMAP4.storec�������������C���s���|�j�d|�S�)Nr5���)r����)rR���r����r<���r<���r=���� subscribeL��s����zIMAP4.subscribec�������������G���s*���d}|�j�|||f|���\}}|�j|||�S�)Nr6���)r����r����)rR���Zthreading_algorithmr����r����r����r����r����r<���r<���r=����threadT��s����zIMAP4.threadc�������������G���s����|j���}|tkr|�jd|���|�jt|�krL|�jd||�jdjt|��f���d}|�j||f|���\}}|d krt|}nd}|�j|||�S�) NzUnknown IMAP4 UID command: %sz9command %s illegal in state %s, only allowed in states %sz, r7���r,���r1���r6���r���)r,���r1���r6���)r����rk���r>���rD����joinr����r����)rR���r����rs���r����r����r����r<���r<���r=����uid^��s����z IMAP4.uidc�������������C���s���|�j�d|�S�)Nr8���)r����)rR���r����r<���r<���r=����unsubscribew��s����zIMAP4.unsubscribec�������������G���s,���|j���}|tkr|�jft|<�|�j|f|���S�)N)r����rk���rD���r����)rR���r����rs���r<���r<���r=����xatom��s���� zIMAP4.xatomc�������������C���s8���|d�krd}|�j�}||kr*||�j|��n |g||<�d�S�)N�����)rG���r����)rR���r����r����Zurr<���r<���r=����_append_untagged���s����zIMAP4._append_untaggedc�������������C���s,���|�j�jd�}|r(|�j|d�j|�jd���d�S�)Nr����r}���r����r����)rG���r����r?���r����rX���)rR���Zbyer<���r<���r=���� _check_bye���s����zIMAP4._check_byec������� ������G���s���|�j�t|�kr4d�|�_|�jd||�j�djt|��f���xdD�]}||�jkr:|�j|=�q:W�d|�jkrp|�j�rp|�jd��|�j��}t ||�j �}|d�|�}x8|D�]0}|d�kr�q�t|t�r�t ||�j �}|d�|�}q�W�|�j}|d�k �rd�|�_t |�t |�j�kr�|}nd�}|t d t|��|�j ��}y|�j|t���W�n2�tk �rX�} �z|�jd | ���W�Y�d�d�} ~ X�nX�|d�k�rh|S�x�x |�j���r�|�j|��rl|S��qlW�|�r�||�j�}y|�j|��|�jt��W�n2�tk �r��} �z|�jd | ���W�Y�d�d�} ~ X�nX�|�sjP��qjW�|S�)Nz9command %s illegal in state %s, only allowed in states %sz, ra���r�����BADz READ-ONLYz#mailbox status changed to READ-ONLY���� z {%s}zsocket error: %s)ra���r����r����)rD���rk���rE���r>���r����rG���rI���r@����_new_tag�bytesrX���r����r�����type�_commandr����r����r����rQ���r?���re���rF���rH���) rR���r����rs���r�����tagr�����argrE���Z literator�valr<���r<���r=���r�������s^���� � zIMAP4._commandc�������������C���s����|dkr|�j����y|�j|�\}}W�nj�|�jk rX�}�z|�jd||f���W�Y�d�d�}~X�n6�|�jk r��}�z|�jd||f���W�Y�d�d�}~X�nX�|dkr�|�j����|dkr�|�jd|||f���||fS�)Nr���zcommand: %s => %sr����z%s command error: %s %s)r�����_get_tagged_responser?���r>���)rR���r����r����r����r����r����r<���r<���r=����_command_complete���s����"$zIMAP4._command_completec�������������C���sJ���|�j���\}}|d�gkr |�jd��t|d�|�j�}|j��}t|j���|�_d�S�)Nz"no CAPABILITY response from serverr}���r����)r����r>���r����rX���r�����tuple�splitrh���)rR���r����r����r<���r<���r=���rf�����s���� zIMAP4._get_capabilitiesc�������������C���s���|�j���}|�j|�j|�rp|�jjd�}||�jkr:|�jd|���|�jjd�}t||�j�}|�jjd�}||gf|�j|<�n�d�}|�jt |�s�|�j|�j |�r�|�jjd�}|�jd�kr�|�jt|�r�|�jjd�|�_d�S�|�jd|���|�jjd�}t||�j�}|�jjd�}|d�k�rd}|�r|d�|�}xH|�j|�j |��r\t|�jjd ��}|�j|�}|�j|||f��|�j���}�qW�|�j||��|d k�r�|�jt|��r�|�jjd�}t||�j�}|�j||�jjd���|S�)Nr����zunexpected tagged response: %rr����r����Zdata2zunexpected response: %rr����r����r|���ra���r����r����)ra���r����r����)� _get_line�_matchrd����mo�grouprF���r?���r����rX����Untagged_responser_����ContinuationrH���r]����intr{���r����� Response_code)rR����respr����r����r����Zdat2r|���r����r<���r<���r=���re�����sH���� �� zIMAP4._get_responsec�������������C���sd���x^|�j�|�}|d�k r |�j�|=�|S�|�j���y|�j���W�q�|�jk rZ�}�z��W�Y�d�d�}~X�qX�qW�d�S�)N)rF���r����re���r?���)rR���r�����resultr����r<���r<���r=���r����`��s���� zIMAP4._get_tagged_responsec�������������C���s>���|�j���}|s|�jd��|jd�s.|�jd|���|d�d��}|S�)Nzsocket error: EOFs��� z#socket error: unterminated line: %rr�������)r~���r?����endswith)rR���r����r<���r<���r=���r���{��s���� zIMAP4._get_linec�������������C���s���|j�|�|�_|�jd�k S�)N)�matchr��)rR���Zcre�sr<���r<���r=���r�����s����zIMAP4._matchc�������������C���s2���|�j�tt|�j�|�j��}|�jd�|�_d�|�j|<�|S�)Nr}���)rc���r����r����rJ���rX���rF���)rR���r����r<���r<���r=���r�������s���� zIMAP4._new_tagc�������������C���s$���|j�dd�}|j�dd�}d|�d�S�)N�\z\\�"z\")r����)rR���r����r<���r<���r=���r�������s����zIMAP4._quotec�������������G���s���|�j�||�j|f|����S�)N)r����r����)rR���r����rs���r<���r<���r=���r�������s����zIMAP4._simple_commandc�������������C���s8���|dkr||fS�||�j�kr$|d�gfS�|�j�j|�}||fS�)Nr����)rG����pop)rR���r����r����r����r����r<���r<���r=���r�������s���� zIMAP4._untagged_response)r����r����)r����r����)r����F)N)Or9���r:���r;���rO���r>���r?���r@���� IMAP4_PORTrU���rL���r`���rN���rp���rq���rt���rv���rM���r{���r~���r����rP���ru���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����rr���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����rf���re���r����r���r��r����r����r����r����r<���r<���r<���r=���r�������s����.* M Pc���������������@���s6���e�Zd�Zdedddfdd�Zdd��Zdefdd�ZdS�) � IMAP4_SSLrA���Nc�������������C���s����|d�k r|d�k rt�d��|d�k r0|d�k r0t�d��|d�k s@|d�k rVdd�l}|jdtd��||�_||�_|d�krxtj||d�}||�_t j |�||��d�S�)Nz8ssl_context and keyfile arguments are mutually exclusivez9ssl_context and certfile arguments are mutually exclusiver���zEkeyfile and certfile are deprecated, use a custom ssl_context insteadr����)�certfile�keyfile)� ValueError�warnings�warn�DeprecationWarningr��r��r����r����r����r���rU���)rR���rS���rT���r��r��r����r��r<���r<���r=���rU������s����zIMAP4_SSL.__init__c�������������C���s���t�j|��}|�jj||�jd�S�)N)r����)r���rv���r����r����rS���)rR���rx���r<���r<���r=���rv��� ��s���� zIMAP4_SSL._create_socketc�������������C���s���t�j|�||��d�S�)N)r���rM���)rR���rS���rT���r<���r<���r=���rM�����s����zIMAP4_SSL.open)r9���r:���r;����IMAP4_SSL_PORTrU���rv���rM���r<���r<���r<���r=���r�����s���r��c���������������@���s>���e�Zd�Zdd��Zddd�Zdd��Zdd ��Zd d��Zdd ��ZdS�)r���c�������������C���s���||�_�tj|���d�S�)N)r����r���rU���)rR���r����r<���r<���r=���rU���&��s����zIMAP4_stream.__init__Nc�������������C���sN���d�|�_�d�|�_d�|�_d�|�_tj|�jttjtjddd�|�_ |�j j |�_|�j j|�_ d�S�)NT)�bufsize�stdin�stdout�shellZ close_fds)rS���rT���rx���rz���� subprocess�Popenr����r����PIPEr����r��� writefiler���readfile)rR���rS���rT���r<���r<���r=���rM���+��s���� zIMAP4_stream.openc�������������C���s���|�j�j|�S�)N)r"��r{���)rR���r|���r<���r<���r=���r{���;��s����zIMAP4_stream.readc�������������C���s ���|�j�j��S�)N)r"��r~���)rR���r<���r<���r=���r~���@��s����zIMAP4_stream.readlinec�������������C���s���|�j�j|��|�j�j���d�S�)N)r!���write�flush)rR���r����r<���r<���r=���r����E��s����zIMAP4_stream.sendc�������������C���s"���|�j�j���|�jj���|�jj���d�S�)N)r"��r����r!��r�����wait)rR���r<���r<���r=���rP���K��s���� zIMAP4_stream.shutdown)NN) r9���r:���r;���rU���rM���r{���r~���r����rP���r<���r<���r<���r=���r�����s��� c���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) r����c�������������C���s ���||�_�d�S�)N)r����)rR���Zmechinstr<���r<���r=���rU���Y��s����z_Authenticator.__init__c�������������C���s&���|�j�|�j|��}|d�krdS�|�j|�S�)N����*)r����r����r����)rR���r����Zretr<���r<���r=���r����\��s����z_Authenticator.processc�������������C���sr���d}t�|t�r|jd�}xT|rlt|�dkrD|d�d��}|dd���}n|}d}tj|�}|r||d�d���}qW�|S�)Nr����zutf-8�0���r}���r����)r����r����r����r�����binasciiZ b2a_base64)rR����inpZoup�t�er<���r<���r=���r����b��s���� z_Authenticator.encodec�������������C���s���|sdS�t�j|�S�)Nr����)r(��Z a2b_base64)rR���r)��r<���r<���r=���r����z��s����z_Authenticator.decodeN)r9���r:���r;���rU���r����r����r����r<���r<���r<���r=���r����S��s���r����z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decr����c�������������C���s���i�|�]\}}|d��|j����qS�)r}���)r����)�.0�nr ��r<���r<���r=���� <dictcomp>���s����r.��r}���c���������� ���C���s����t�j|��}|sd�S�t|jd��}|jd�}t|jd��}t|jd��}t|jd��}t|jd��}t|jd��}t|jd��} t|jd ��} | d �| �d �}|dkr�|�}||||||d ddf }tj|�|�} tj| �S�)N�mon�zonen�day�year�hour�min�sec�zoneh�zonem�<�������-r}���r����r����r����) �InternalDater���Mon2numr��r���calendarZtimegm�time� localtime)r��r��r/��r0��r1��r2��r3��r4��r5��r6��r7��ZzoneZtt�utcr<���r<���r=���r������s$���� c�������������C���sD���d}d}t�t|���}�x*|�r>t|�d�\}�}|||d���|�}qW�|S�)Nr����s���ABCDEFGHIJKLMNOP����r}���)r���abs�divmod)Znumr����ZAP�modr<���r<���r=���r ������s�����c�������������C���s$���t�j|��}|sf�S�t|jd�j���S�)Nr����)�Flagsr��r����r��r����)r��r��r<���r<���r=���r ������s���� c���������� ���C���s ��t�|�ttf�r"tj|�tj�j��}n�t�|�t�r�y |�j }W�nZ�t k r����tjr�|�d�}|dkrptj tj|���d�}tjtjf|��}ntj�}Y�nX�t|d�}t|�d�d��dt|�i�}nNt�|�t�r�|�jd�kr�td��|�}n,t�|�t�o�|�d�|�d�fd k��r�|�S�td ��d jt|j��}|j|�S�)N����r}���)Zseconds�����tzinfozdate_time must be awarer���r��zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z"r����r����)r��r��)r����r���floatr���Z fromtimestampr���r?��Z astimezoner����Z tm_gmtoffrn���r=��Zdaylightr>��ZmktimeZaltzoner���rG��r��r�����format�MonthsZmonthZstrftime)r����ZdtZgmtoff�dstZdeltaZfmtr<���r<���r=���r������s0���� �__main__zd:s:z-dz-srA���zIMAP password for %s on %s: Z localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)s� )r����Zlfr����r����� /tmp/xxx 1r�����/tmp/yyyr���� /tmp/yyz 2r����r�����/tmp�yy*r����r�����SUBJECT�testr�����1�(FLAGS INTERNALDATE RFC822)r�����FLAGS� (\Deleted)r����r����r����r����r�����UIDVALIDITYr����r,����ALLr����rr���c�������������C���sL���t�jd|�|f���tt�|��|��\}}t�jd|�||f���|dkrH|d��|S�)Nz%s %sz%s => %s %sr����r���)�M�_mesgrl���)�cmdrs���r����r����r<���r<���r=����run��s�����r^��zPROTOCOL_VERSION = %szCAPABILITIES = %r�/tmp/�yy%z.*"([^"]+)"$r����r���z%sz:(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)z All tests OK.z Tests failed.z8 If you would like to see debugging output, try: %s -d5 )r ���r���)r���r���)r���)r���r���r���r���)r���)r���)r���)r���r���)r���r���)r���r���)r���)r���r���)r���)r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���)r���r���r���r���)r���r���)r���)r���r���)r���r���r���r���)r���)r���)r���r���)r���)r���r���)r���r���)r���r���)r���r���)r���)r���)r���r���)r���)r���r���)r���)r���)r���r���)rA����rN��)r����ra���rN��rO��)r����rb���rP��)r���rc���rQ��rR��)r����rd���rP��)r����re���NrS��rT��)r����rf���rU��rV��)r����rg���rU��rW��rX��)r����rh���rY��)r����ri���r,���rZ��)r����rj���r����)r����rk��)r_��r`��r�����r,���rZ��)r����rl��r����r����)T�__version__r(��r����rb���rY���ru���r��r����r=��r<��r���r���r����ior���r����r�����ImportError�__all__r����rB���r��r��rg���r���rk���rZ���r��rD��r:��r\���r]���r����r��r��r_���r[���r^���r���r��r����r���r����r����rJ��� enumerater;��r���r ���r ���r���r9���ZgetoptZgetpass�argvZoptlistrs���r>���r����Zstream_command�optr��rS���ZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2r^��r[��rD���r\��ri���rh���r]��Zmlr��r��r���pathr����r�����printr<���r<���r<���r=����<module>���sD��H ��������c4 9, # ) �� � �