grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026§ E1ΞEÁ#ã ó¼— ddlZddlZddlZddlZddlZddlZ ddlZdZn #e$rdZYnwxYwddl m Z ddlm Z gd¢Z ejed¬¦«d ZGd „d e¦«ZGd „d e¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZdZdZhd£Zgd¢ZdddœZdZejdgd¢¦«Zejd gd!¢¦«Z d"„Z d#„Z!dVd$„Z"dVd%„Z#dWd&„Z$erd'„Z%Gd(„d)¦«Z&er#Gd*„d+e&¦«Z'e  (d+¦«ed,k�r,ddl)Z)e)j*d-¬.¦«Z+e+ ,d/d0d1d2¬3¦«e+ ,d4d5d6d7¬3¦«e+ ,d8d9d:e-d;e›d¦«e+ ,d?d@dAe-dB¬>¦«e+ ,dCdDdEddF¬G¦«e+ .¦«Z/e/j0Z0e/jse0d:kreZ0e&e/j1e0¬H¦«Z2ne0d:kreZ0e'e/j1e0¬H¦«Z2e2 3¦«Z4dIe4vre2 5¦«e2 6e/j6¦«\Z7Z8Z9Z:Z;ee-e:¦«e/j?z dOz¦«Z9e2 @e9e:¦«\Z7ZAeAD]‡\ZBZCe eCdP¦« DdQdO¦«dZEe eCdR¦«ZFe-eCd¦«ZGe Ú100Ú101Ú211Ú215Ú220Ú221Ú222Ú224Ú225Ú230Ú231Ú282)ÚsubjectÚfromÚdatez message-idÚ referencesú:bytesú:linesr5r6)ÚbytesÚlinesó Ú GroupInfo)ÚgroupÚlastÚfirstÚflagÚ ArticleInfo)ÚnumberÚ message_idr8có— g}t|¦«D]Z\}}t|t¦«r+| | |pd¦«¦«ŒE| |¦«Œ[d |¦«S)NÚasciiÚ)Ú_email_decode_headerÚ isinstancer7ÚappendÚdecodeÚjoin)Ú header_strÚpartsÚvÚencs rrrªs€€ð@à €EÝ& zÑ2Ô2ðð‰ˆˆ3Ý �a�Ñ Ô ð Ø �LŠL˜Ÿš # .¨Ñ1Ô1Ñ 2Ô 2Ð 2Ð 2à �LŠL˜‰OŒOˆOˆOØ �7Š7�5‰>Œ>Ðrcóö— g}|D]’}|ddkr'|dd… d¦«\}}}d|z}n| d¦«\}}}| ¦«}t ||¦«}| |¦«Œ“t }t |¦«t |¦«krtd¦«‚|dt |¦«…|krtd¦«‚|S)Nrú:éz$LIST OVERVIEW.FMT response too shortz*LIST OVERVIEW.FMT redefines default fields)Ú partitionÚlowerÚ_OVERVIEW_FMT_ALTERNATIVESÚgetrGÚ_DEFAULT_OVERVIEW_FMTÚlenr )r8ÚfmtÚlineÚnameÚ_ÚsuffixÚdefaultss rÚ_parse_overview_fmtr]µsÿ€ð$ð €CØð ð ˆØ �Œ7�cŠ>ˆ>à" 1 2 2œh×0Ò0°Ñ5Ô5‰OˆD�!�Vؘ‘:ˆDˆDð#Ÿnšn¨SÑ1Ô1‰OˆD�!�VØ�zŠz‰|Œ|ˆÝ)×-Ò-¨d°DÑ9Ô9ˆà � Š �4ÑÔÐÐÝ$€HÝ ˆ3�x„x•#�h‘-”-ÒÐÝÐBÑCÔCÐCØ ˆ>�C�‰MŒMˆ>Ô˜hÒ&Ð&ÝÐHÑIÔIÐIØ €Jrcó*— tt¦«}g}|D]ø}i}| d¦«^}}t|¦«}t |¦«D]§\} } | t|¦«krŒ|| } |  d¦«} | |kr`| s^| dz} | r<| dt| ¦«… ¦«| krtd¦«‚| r| t| ¦«d…nd} | ||| <Œ¨| ||f¦«Œù|S)Nú rOz: z?OVER/XOVER response doesn't include names of additional headers) rVrUÚsplitÚintÚ enumerateÚ startswithrRr rG)r8rWÚdata_process_funcÚ n_defaultsÚoverviewrXÚfieldsÚarticle_numberÚtokensÚiÚtokenÚ field_nameÚ is_metadataÚhs rÚ_parse_overviewroÎsG€ðåÕ*Ñ+Ô+€JØ€HØð2ð2ˆØˆØ"&§*¢*¨TÑ"2Ô"2Ј˜Ý˜^Ñ,Ô,ˆÝ! &Ñ)Ô)ð #ð #‰HˆAˆuØ•C˜‘H”HŠ}ˆ}ðؘQœˆJØ$×/Ò/°Ñ4Ô4ˆKØ�JŠˆ {ˆð Ñ%�ØðG˜U 7¥C¨¡F¤F 7œ^×1Ò1Ñ3Ô3°qÒ8Ð8Ý'ð)FñGôGðGà*/Ð9˜�c !™fœf˜g˜gœ˜°T�Ø"ˆF�3�q”6‰NˆNØ�Š˜¨Ð0Ñ1Ô1Ð1Ð1Ø €Orcó¤— |€|dd…}|dd…}t|dd…¦«}t|dd…¦«}t|dd…¦«}t|dd…¦«}t|dd…¦«}t|dd…¦«}|dkr|dz }n |dkr|d z }tj||||||¦«S) NiúÿÿÿéééüÿÿÿéþÿÿÿéFiÐédil)raÚdatetime)Údate_strÚtime_strÚhoursÚminutesÚsecondsÚyearÚmonthÚdays rÚ_parse_datetimer€ësê€ððÐØ˜B˜C˜C”=ˆØ˜C˜R˜C”=ˆÝ �˜˜!˜” Ñ Ô €EÝ�(˜1˜Q˜3”-Ñ Ô €GÝ�(˜1˜2˜2”,ÑÔ€GÝ ˆx˜˜˜Œ}Ñ Ô €DÝ �˜˜B˜”Ñ Ô €EÝ ˆh�r�s�sŒmÑ Ô €Cð ˆb‚y€yØ �‰ ˆˆØ �ŠˆØ �‰ ˆÝ Ô ˜T 5¨#¨u°g¸wÑ GÔ GÐGrcóæ— t|tj¦«sd}nd |¦«}|j}|r|dz}d ||¦«}nd ||¦«}||fS)NÚ000000z({0.hour:02d}{0.minute:02d}{0.second:02d}rvz{0:02d}{1.month:02d}{1.day:02d}z{0:04d}{1.month:02d}{1.day:02d})rFrwÚformatr})ÚdtÚlegacyryÚyrxs rÚ_unparse_datetimer‡s‰€ð õ �b�(Ô+Ñ ,Ô ,ðI؈ˆà=×DÒDÀRÑHÔHˆØ Œ€AØ ðCØ �‰GˆØ4×;Ò;¸A¸rÑBÔBˆˆà4×;Ò;¸A¸rÑBÔBˆØ �XÐ Ðrcó\— |€tj¦«}| ||¬¦«S)N)Úserver_hostname)ÚsslÚ_create_stdlib_contextÚ wrap_socket)ÚsockÚcontextÚhostnames rÚ _encrypt_onr�s5€ð ð ˆ?ÝÔ0Ñ2Ô2ˆGØ×"Ò" 4¸Ð"ÑBÔBÐBrcóª—eZdZdZdZeddddefd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „ZeZd „Zd„Zd8d„Zd„Zd9d„Zd„Zd9d„Zd9d„Zd„Zd„Zd„Zddœd„Zddœd„Zd9ddœd„Zd„Zd„Zd„Z d „Z!ddœd!„Z"d"„Z#d#„Z$d9d$„Z%d%„Z&d&„Z'd9d'„Z(d9ddœd(„Z)d9ddœd)„Z*d9ddœd*„Z+d+„Z,ddœd,„Z-ddœd-„Z.ddœd.„Z/d/„Z0d0„Z1d1„Z2d2„Z3d3„Z4d4„Z5d:d5„Z6d6„Z7e8rd9d7„Z9dSdS);rzutf-8ÚsurrogateescapeNFcóˆ— ||_||_| |¦«|_d|_ |j d¦«|_| |¦«|s|r| |||¦«dSdS#|jr|j ¦«|j ¦«‚xYw)NÚrwb) ÚhostÚportÚ_create_socketr�ÚfileÚmakefileÚ _base_initÚloginÚclose)rr•r–ÚuserÚpasswordÚ readermodeÚusenetrcÚtimeouts rrz NNTP.__init__;sЀð ð"ˆŒ ؈Œ Ø×'Ò'¨Ñ0Ô0ˆŒ ؈Œ ð Øœ ×*Ò*¨5Ñ1Ô1ˆDŒIØ �OŠO˜JÑ 'Ô 'Ð 'Øð 5�xð 5Ø— ’ ˜4 ¨8Ñ4Ô4Ð4Ð4Ð4ð 5ð 5øð ØŒyð "Ø” —’Ñ!Ô!Ð!Ø ŒI�OŠOÑ Ô Ð Ø øøøs ²ABÂzNNTP.__exit__..„sø€�w t¨VÑ4Ô4€r)ÚquitÚOSErrorÚEOFErrorÚ_close)rrÚ is_connecteds` rÚ__exit__z NNTP.__exit__ƒs²ø€Ø4Ð4Ð4Ð4ˆ Ø ˆ<‰>Œ>ð "ð "Ø— ’ ‘ ” � � øÝ�XÐ&ð ð ð Ø�ð øøøð �<‘>”>ð"Ø—K’K‘M”M�M�M�Mð"ð"ø�<�<‘>”>ð"Ø—K’K‘M”M�M�Mð"øøøð  "ð "s!’'¦A §;¸A º;»A Á !Bcó¬—|�|std¦«‚tjd||j|j¦«t j|j|jf|¦«S)Nz0Non-blocking socket (timeout=0) is not supportedznntplib.connect)Ú ValueErrorÚsysÚauditr•r–ÚsocketÚcreate_connection)rr¡s rr—zNNTP._create_socketŽsS€Ø Ð  wÐ ÝÐOÑPÔPÐ PÝ Œ Ð# T¨4¬9°d´iÑ@Ô@Ð@ÝÔ'¨¬°D´IÐ(>ÀÑHÔHÐHrcód— |jr"tdt|j¦«¦«|jS)Nz *welcome*)r¤ÚprintÚreprr¦r¯s rÚ getwelcomezNNTP.getwelcome”s2€ð .ð Œ>ÐA�5 ­d°4´<Ñ.@Ô.@ÑAÔAÐAØŒ|Ðrcób— |j€¡d|_d|_ | ¦«\}}||_d|vr-t t t |d¦«¦«|_d|vr d |d¦«|_n#ttf$r i|_YnwxYw|jS)NrPÚVERSIONÚIMPLEMENTATIONú ) r§Ú nntp_versionÚnntp_implementationÚ capabilitiesÚmaxÚmaprarIr r)rÚrespÚcapss rr¨zNNTP.getcapabilities�s΀ð ð Œ:Ð Ø !ˆDÔ Ø'+ˆDÔ $ð PØ!×.Ò.Ñ0Ô0‘ ��dð "�” Ø Ð$Ð$õ),­Cµ°T¸)´_Ñ,EÔ,EÑ(FÔ(F�DÔ%Ø# tÐ+Ð+Ø/2¯xªx¸Ð=MÔ8NÑ/OÔ/O�DÔ,øøõ'Õ(:Ð;ð ð ð à�” � � ð øøøðŒzÐs˜B  B'Â&B'có— ||_dSr®)r¤)rÚlevels rÚset_debuglevelzNNTP.set_debuglevel³s€ð H𠈌ˆˆrcóþ— tjd||¦«|tz}|jdkrt dt |¦«¦«|j |¦«|j ¦«dS)Nznntplib.putlinerPz*put*) r½r¾Ú_CRLFr¤rÂrÃr˜ÚwriteÚflush©rrXs rÚ_putlinez NNTP._putline¼ss€ð 3å Œ Ð# T¨4Ñ0Ô0Ð0Ø•e‰|ˆØ Œ>˜AÒ Ð �u W­d°4©j¬jÑ9Ô9Ð9Ø Œ �Š˜ÑÔÐØ Œ �ŠÑÔÐÐÐrcóº— |jrtdt|¦«¦«| |j|j¦«}| |¦«dS)Nz*cmd*)r¤rÂrÃÚencodeÚencodingÚerrorsrØr×s rÚ_putcmdz NNTP._putcmdÅsS€ð 0à Œ>Ð5�5 ­$¨t©*¬*Ñ5Ô5Ð5Ø�{Š{˜4œ=¨$¬+Ñ6Ô6ˆØ � Š �dÑÔÐÐÐrTcór— |j tdz¦«}t|¦«tkrt d¦«‚|jdkrt dt|¦«¦«|st‚|r9|dd…tkr |dd…}n|dd…tvr |dd…}|S)NrPz line too longz*get*rtéÿÿÿÿ) r˜ÚreadlineÚ_MAXLINErVr r¤rÂrÃr·rÔ)rÚ strip_crlfrXs rÚ_getlinez NNTP._getlineÌs½€ð #ðŒy×!Ò!¥(¨A¡+Ñ.Ô.ˆÝ ˆt‰9Œ9•xÒ Ð Ý Ñ0Ô0Ð 0Ø Œ>˜AÒ Ð Ý �'�4 ™:œ:Ñ &Ô &Ð &ØÐ#�8�^Ø ð !Ø�B�C�CŒy�EÒ!Ð!ؘC˜R˜C”y��Ø�b�c�c”�eÐ#Ð#ؘC˜R˜C”y�؈ rcóF— | ¦«}|jrtdt|¦«¦«| |j|j¦«}|dd…}|dkrt|¦«‚|dkrt|¦«‚|dvrt|¦«‚|S)Nz*resp*rPÚ4Ú5Ú123) rãr¤rÂrÃrHrÛrÜrr r )rrÎÚcs rr¥z NNTP._getrespÝs¡€ð %ð�}Š}‰ŒˆØ Œ>Ð6�5 ­4°©:¬:Ñ6Ô6Ð6Ø�{Š{˜4œ=¨$¬+Ñ6Ô6ˆØ ��!�ŒHˆØ �Š8ˆ8Ý$ TÑ*Ô*Ð *Ø �Š8ˆ8Ý$ TÑ*Ô*Ð *Ø �Eˆ>ˆ>Ý# DÑ)Ô)Ð )؈ rcó¤— d} t|ttf¦«rt|d¦«x}}| ¦«}|dd…t vrt |¦«‚g}|�]dtzdf} | d¦«}||vrn5|  d¦«r |dd…}|  |¦«ŒOnSd} | ¦«}||krn5|  d¦«r |dd…}|  |¦«ŒP|r|  ¦«n#|r|  ¦«wwxYw||fS)NÚwbr ó.s. rPFs..) rFÚstrr7Úopenr¥Ú _LONGRESPrrÔrãrcrÕrGrœ)rr˜Ú openedFilerÎr8Ú terminatorsrXÚ terminators rÚ _getlongrespzNNTP._getlongrespís•€ð ðˆ ð #å˜$¥¥e  Ñ-Ô-ð 5Ý$(¨¨tÑ$4Ô$4Ð4� ˜Tà—=’=‘?”?ˆDØ�B�Q�BŒx�yÐ(Ð(Ý$ TÑ*Ô*Ð*àˆEØÐà#¥e™|¨VÐ4� ð%ØŸ=š=¨Ñ/Ô/�Dؘ{Ð*Ð*ØØ—’ uÑ-Ô-ð(Ø# A B Bœx˜Ø—J’J˜tÑ$Ô$Ð$ð %ðð "� ð'ØŸ=š=™?œ?�DؘzÒ)Ð)ØØ—’ uÑ-Ô-ð(Ø# A B Bœx˜Ø—L’L Ñ&Ô&Ð&ð 'ðð #Ø× Ò Ñ"Ô"Ð"øøðð #Ø× Ò Ñ"Ô"Ð"Ð"ð #øøøð�Uˆ{Ðs …DD2Ä2E cóV— | |¦«| ¦«Sr®)rÝr¥r×s rÚ _shortcmdzNNTP._shortcmds'€ð ,à � Š �TÑÔÐØ�}Š}‰ŒÐrcóX— | |¦«| |¦«Sr®©rÝrò)rrXr˜s rÚ_longcmdz NNTP._longcmd!s-€ð 0à � Š �TÑÔÐØ× Ò  Ñ&Ô&Ð&rc󀇗 ‰ |¦«‰ |¦«\}}|ˆfd„|D¦«fS)NcóP•—g|]"}| ‰j‰j¦«‘Œ#Sr)rHrÛrÜ)Ú.0rXrs €rú z'NNTP._longcmdstring...s;ø€ð(ð(ð(Øð—k’k $¤-°´Ñ=Ô=ð(ð(ð(rrö)rrXr˜rÎÚlists` rÚ_longcmdstringzNNTP._longcmdstring'sfø€ð ð � Š �TÑÔÐØ×&Ò& tÑ,Ô,‰ ˆˆdØð(ð(ð(ð(Ø"&ð(ñ(ô(ð(ð (rcóÖ— |jS#t$rYnwxYw | d¦«\}}t|¦«}n#t$rt dd…}YnwxYw||_|S)NzLIST OVERVIEW.FMT)Ú_cachedoverviewfmtÚAttributeErrorrýr]r rU)rrÎr8rWs rÚ_getoverviewfmtzNNTP._getoverviewfmt1s¡€ð 8ð ØÔ*Ð *øÝð ð ð Ø ˆDð øøøð -Ø×-Ò-Ð.AÑBÔB‰KˆD�%õ & eÑ,Ô,ˆCˆCøõ "ð +ð +ð +å'¨¨¨Ô*ˆCˆCˆCð +øøøð #&ˆÔ؈ sƒ Š –›AÁAÁAcó—d„|D¦«S)NcóD—g|]}t| ¦«Ž‘ŒSr)r:r`)rúrXs rrûz#NNTP._grouplist..Ds%€Ð;Ð;Ð;¨T• ˜4Ÿ:š:™<œ<Ð(Ð;Ð;Ð;rr)rr8s rÚ _grouplistzNNTP._grouplistBs€à;Ð;°UÐ;Ñ;Ô;Ð;rcó€— i}| d¦«\}}|D]}| ¦«^}}|||<Œ||fS)NÚ CAPABILITIES)rýr`)rrÏrÎr8rXrYris rrËzNNTP.capabilitiesFsZ€ð ð ˆØ×)Ò)¨.Ñ9Ô9‰ ˆˆeØð ð ˆDØ ŸJšJ™LœLˆMˆD�6؈D�‰JˆJØ�TˆzÐr)r˜cól— t|tjtjf¦«s,td |jj¦«¦«‚t||jdk¦«\}}d ||¦«}|  ||¦«\}}||  |¦«fS)NúAthe date parameter must be a date or datetime object, not '{:40}'rqzNEWGROUPS {0} {1}) rFrwr3Ú TypeErrorrƒÚ __class__rr‡rÉrýr)rr3r˜rxryÚcmdrÎr8s rÚ newgroupszNNTP.newgroupsTs°€ð õ ˜$¥¤µ´ Ð >Ñ?Ô?ð ?Ýðß$šf T¤^Ô%<Ñ=Ô=ñ?ô?ð ?õ/¨t°TÔ5FÈÒ5JÑKÔKш�(Ø!×(Ò(¨°8Ñ<Ô<ˆØ×)Ò)¨#¨tÑ4Ô4‰ ˆˆeØ�T—_’_ UÑ+Ô+Ð+Ð+rcó:— t|tjtjf¦«s,td |jj¦«¦«‚t||jdk¦«\}}d |||¦«}|  ||¦«S)NrrqzNEWNEWS {0} {1} {2}) rFrwr3r rƒr rr‡rÉrý)rr;r3r˜rxryr s rÚnewnewsz NNTP.newnewsds˜€ð õ˜$¥¤µ´ Ð >Ñ?Ô?ð ?Ýðß$šf T¤^Ô%<Ñ=Ô=ñ?ô?ð ?õ/¨t°TÔ5FÈÒ5JÑKÔKш�(Ø#×*Ò*¨5°(¸HÑEÔEˆØ×"Ò" 3¨Ñ-Ô-Ð-rcóx— |�d|z}nd}| ||¦«\}}|| |¦«fS)Nz LIST ACTIVE ÚLIST)rýr)rÚ group_patternr˜ÚcommandrÎr8s rrüz NNTP.listtsP€ð ð Ð $Ø$ }Ñ4ˆGˆGàˆGØ×)Ò)¨'°4Ñ8Ô8‰ ˆˆeØ�T—_’_ UÑ+Ô+Ð+Ð+rcóx—tjd¦«}| d|z¦«\}}| d¦«s| d|z¦«\}}i}|D]O}| | ¦«¦«}|r$| dd¦«\} } |s| cS| || <ŒP|r||fSdS)Nz^(?P[^ ]+)[ ]+(.*)$zLIST NEWSGROUPS r(zXGTITLE rPrqrD)ÚreÚcompilerýrcÚsearchÚstripr;) rrÚ return_allÚline_patrÎr8ÚgroupsÚraw_lineÚmatchrYÚdescs rÚ_getdescriptionszNNTP._getdescriptionsƒsä€Ý”:Ð>Ñ?Ô?ˆà×)Ò)Ð*<¸}Ñ*LÑMÔM‰ ˆˆeØ�Š˜uÑ%Ô%ð Jð×-Ò-¨j¸=Ñ.HÑIÔI‰KˆD�%؈Øð $ð $ˆHØ—O’O H§N¢NÑ$4Ô$4Ñ5Ô5ˆEØð $Ø"Ÿ[š[¨¨AÑ.Ô.‘ ��dØ!ð Ø�K�K�KØ#��t‘ øØ ð Ø˜�<Ð ð�2rcó0— | |d¦«S)NF©r)rr;s rÚ descriptionzNNTP.descriptionšs€ð 7ð×$Ò$ U¨EÑ2Ô2Ð2rcó0— | |d¦«S)NTr )rrs rÚ descriptionszNNTP.descriptions§s€Ø5Ø×$Ò$ ]°DÑ9Ô9Ð9rcó¾— | d|z¦«}| d¦«st|¦«‚| ¦«}dx}x}}t |¦«}|dkrD|d}|dkr6|d}|dkr(|d}|dkr|d ¦«}|t |¦«t |¦«t |¦«|fS)NzGROUP r'rrPrqr rr)rôrcrr`rVrRra)rrYrÎÚwordsÚcountr=r<Úns rr;z NNTP.group«sÜ€ð ð�~Š~˜h¨™oÑ.Ô.ˆØ�Š˜uÑ%Ô%ð 'Ý  Ñ&Ô&Ð &Ø— ’ ‘ ” ˆØ Ð ˆÐ �˜Ý �‰JŒJˆØ ˆqŠ5ˆ5ؘ!”HˆEØ�1Šuˆuؘaœ�Ø�q’5�5Ø  œ8�Dؘ1’u�uØ$ QœxŸ~š~Ñ/Ô/˜Ø•S˜‘Z”Z¥ U¡¤­S°©Y¬Y¸Ð<Ð.remove_number5s-ø€Ø— ’ ˜$‘”ˆAØ$%Ð/�1—7’7˜1˜a‘=”=�=¨4Ð /rcó&•—g|] }‰|¦«‘ŒSrr)rúrXrQs €rrûzNNTP.xhdr..8s#ø€Ð<Ð<Ð<¨d�m�m DÑ)Ô)Ð<Ð<Ј>Ý Ñ%Ô%Ð %Ø�AŒwˆÝ ˆt‰9Œ9˜Š?ˆ?Ý Ñ%Ô%Ð %Ø•_ T¨4Ñ0Ô0Ð0Ð0rcóB—| |¦«}| d¦«st|¦«‚t|tt f¦«r| ¦«}|D]m}| t¦«s|  d¦«tz}| d¦«rd|z}|j   |¦«Œn|j   d¦«|j   ¦«|  ¦«S)NÚ3r9rës. )rôrcrrFr7Ú bytearrayÚ splitlinesÚendswithrÔÚrstripr˜rÕrÖr¥)rrÚfrÎrXs rÚ_postz NNTP._posttsü€Ø�~Š~˜gÑ&Ô&ˆà�Š˜sÑ#Ô#ð 'Ý  Ñ&Ô&Ð &Ý �a�%¥Ð+Ñ ,Ô ,ð Ø— ’ ‘”ˆAð ð "ð "ˆDØ—=’=¥Ñ'Ô'ð 4Ø—{’{ 7Ñ+Ô+­eÑ3�Ø�Š˜tÑ$Ô$ð #ؘd‘{�Ø ŒI�OŠO˜DÑ !Ô !Ð !Ð !Ø Œ �Š˜Ñ!Ô!Ð!Ø Œ �ŠÑÔÐØ�}Š}‰ŒÐrcó0— | d|¦«S)NÚPOST)rj)rÚdatas rÚpostz NNTP.post‰s€ð 1ð�zŠz˜& $Ñ'Ô'Ð'rcóV— | d |¦«|¦«S)Nz IHAVE {0})rjrƒ)rrArms rÚihavez NNTP.ihave�s,€ð Oð �zŠz˜+×,Ò,¨ZÑ8Ô8¸$Ñ?Ô?Ð?rcóº— |jr|j ¦«|`|j ¦«dS#|j ¦«wxYwr®)r˜rœr�r¯s rr¸z NNTP._close™sX€ð ØŒyð Ø” —’Ñ!Ô!Ð!Ø�Ià ŒI�OŠOÑ Ô Ð Ð Ð øˆDŒI�OŠOÑ Ô Ð Ð øøøs ‚"?¿Acó�— | d¦«}| ¦«n#| ¦«wxYw|S)NÚQUIT)rôr¸)rrÎs rrµz NNTP.quit¡sC€ð 1ð Ø—>’> &Ñ)Ô)ˆDà �KŠK‰MŒMˆMˆMøˆD�KŠK‰MŒMˆMˆMøøøØˆ s ƒ-­AcóÄ—|jrtd¦«‚|s|std¦«‚ |rF|sDddl}| ¦«}| |j¦«}|r|d}|d}n#t $rYnwxYw|sdS| d|z¦«}| d¦«rM|st|¦«‚| d|z¦«}| d¦«st|¦«‚d|_ |  ¦«|j r:d |j vr3|  ¦«d|_ |  ¦«dSdSdS) NzAlready logged in.z7At least one of `user` and `usenetrc` must be specifiedrrqzauthinfo user Ú381zauthinfo pass Ú281r£)r¬r¼ÚnetrcÚauthenticatorsr•r¶rôrcrr r§r¨r©rª)rr�ržr rwÚ credentialsÚauthrÎs rr›z NNTP.loginªs»€Ø Ô ð 3ÝÐ1Ñ2Ô2Ð 2Øð K˜Hð KÝØIñKôKð Kð Øð ' ð 'Ø� � � Ø#Ÿkšk™mœm� Ø"×1Ò1°$´)Ñ<Ô<�Øð'Ø œ7�DØ# Aœw�HøøÝð ð ð Ø ˆDð øøøðð Ø ˆFØ�~Š~Ð.°Ñ5Ñ6Ô6ˆØ �?Š?˜5Ñ !Ô !ð 3Øð 3Ý$ TÑ*Ô*Ð*à—~’~Ð&6¸Ñ&AÑBÔB�Ø—’ uÑ-Ô-ð3Ý,¨TÑ2Ô2Ð2àˆŒ Ø ×ÒÑÔÐð Ô $ð #¨¸¼Ð)CÐ)CØ × Ò Ñ !Ô !Ð !àˆDŒJØ × Ò Ñ "Ô "Ð "Ð "Ð "ð  #ð #Ð)CÐ)Cs«AA4Á4 BÂBcóÊ— | d¦«|_dS#t$rYdSt$r.}|j d¦«rd|_n‚Yd}~dSd}~wwxYw)Nz mode readerÚ480T)rôr¦r rrrcr©)rÚes rrªzNNTP._setreadermodeÓs�€ð ØŸ>š>¨-Ñ8Ô8ˆDŒLˆLˆLøÝ!ð ð ð à ˆDˆDÝ!ð ð ð ØŒz×$Ò$ UÑ+Ô+ð à,0�Ô)Ð)àð*Ð)Ð)Ð)Ð)Ð)øøøøð øøøs‚ž A"« A"´#AÁA"cóÆ— |jrtd¦«‚|jrtd¦«‚| d¦«}| d¦«r||j ¦«t|j||j ¦«|_|j  d¦«|_d|_d|_ |  ¦«dStd¦«‚)NzTLS is already enabled.z+TLS cannot be started after authentication.ÚSTARTTLSÚ382r”TzTLS failed to start.)r«r¼r¬rôrcr˜rœr�r�r•r™r§r¨r)rrŽrÎs rÚstarttlsz NNTP.starttlsásÙ€ð ð Œ{ð <Ý Ð!:Ñ;Ô;Ð;ØÔ!ð PÝ Ð!NÑOÔOÐOØ—>’> *Ñ-Ô-ˆDØ�Š˜uÑ%Ô%ð 8Ø” —’Ñ!Ô!Ð!Ý'¨¬ °7¸D¼IÑFÔF�” Ø œI×.Ò.¨uÑ5Ô5�” Ø"�” ð"�” Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&åÐ 6Ñ7Ô7Ð7r)Tr®)NNT):rrrrÛrÜÚ NNTP_PORTrrršr°rºr—rÄr¨rÒÚdebugrØrÝrãr¥ròrôr÷rýrrrËr rrürr!r#r;r*r.r0r4r8r<r=rBrFrIrLrTrXr]r3rjrnrpr¸rµr›rªÚ _have_sslr�rrrrr+sþ€€€€€ð€HØ €Fà"+°$ÀØ ¨5Ø0ð!ð!ð!ð!ðF #ð #ð #ðDððð "ð "ð "ðIðIðIð ðððððð,ððð €Eððððððððððð"ððð ,ð,ð,ð,ð\ððð 'ð'ð'ð'ð (ð(ð(ð(ðððð"<ð<ð<ð ð ð ð'+ð,ð,ð,ð,ð,ð ,0ð.ð.ð.ð.ð.ð ,¨tð ,ð ,ð ,ð ,ð ,ðððð. 3ð 3ð 3ð:ð:ð:ð=ð=ð=ð4 ð1ð1ð1ð1ð1ð)ð)ð)ð%ð%ð%ð )ð )ð )ð )ð%ð%ð%ð%ð%ð%ð=ð=ð=ð=ð '¨dð 'ð 'ð 'ð 'ð 'ð '¨dð 'ð 'ð 'ð 'ð 'ð '°ð 'ð 'ð 'ð 'ð 'ð'ð'ð'ð &*ð=ð=ð=ð=ð=ð )-ð 1ð 1ð 1ð 1ð 1ð*.ð1ð1ð1ð1ð1ð61ð1ð1ð"ððð*(ð(ð(ð@ð@ð@ððððððð'#ð'#ð'#ð'#ðR ð ð ðð8ð 8ð 8ð 8ð 8ð 8ð 8ð8ð8rrcó8‡—eZdZedddddefˆfd„ Zˆfd„ZˆxZS)ÚNNTP_SSLNFc óf•— ||_t¦« |||||||¦«dSr®)Ú ssl_contextÚsuperr) rr•r–r�ržrˆrŸr r¡r s €rrzNNTP_SSL.__init__üsGø€ð ð +ˆDÔ Ý ‰GŒG× Ò ˜T 4¨¨x¸Ø% wñ 0ô 0ð 0ð 0ð 0rcó¶•—t¦« |¦«} t||j|j¦«}|S#| ¦«‚xYwr®)r‰r—r�rˆr•rœ)rr¡r�r s €rr—zNNTP_SSL._create_socketsUø€Ý‘7”7×)Ò)¨'Ñ2Ô2ˆDð Ý" 4¨Ô)9¸4¼9ÑEÔE�ð � øð  Ø— ’ ‘ ” � Øøøøs ¤AÁA)rrrÚ NNTP_SSL_PORTrrr—Ú __classcell__)r s@rr†r†úshø€€€€€à&3ب¸$Ø#¨eØ3ð 0ð 0ð 0ð 0ð 0ð 0ð ð ð ð ð ð ð ð ð rr†Ú__main__zJ nntplib built-in demo - display the latest articles in a newsgroup)r!z-gz--groupzgmane.comp.python.generalz3group to fetch messages from (default: %(default)s))Údefaultr*z-sz--serverz news.gmane.ioz+NNTP server hostname (default: %(default)s)z-pz--portrßzNNTP port number (default: z / ú))rŽÚtyper*z-nz --nb-articlesé z2number of articles to fetch (default: %(default)s)z-Sz--sslÚ store_truezuse NNTP over SSL)ÚactionrŽr*)r•r–rÚGroupÚhaszarticles, rangeÚtocóL—t|¦«|kr|d|dz …dz}|S)Nrrz...)rV)ÚsÚlims rÚcutrš6s,€Ý ˆq‰6Œ6�CŠ<ˆ<Ø�(�3˜‘7�(” ˜eÑ#ˆA؈rrPr2úr¯s`ðððB € € € Ø € € € ØÐÐÐØ€€€Ø € € € Ø€€€ðØ€J€J€Jð€I€IøððððØ€I€I€Iðøøøð ?Ð>Ð>Ð>Ð>Ð>Ø*Ð*Ð*Ð*Ð*Ð*ð ð ð €ð €Ô�X gÐ.Ñ.Ô.Ð.ð €ð0ð0ð0ð0ð0� ñ0ô0ð0ð ð ð ð ð �Yñ ô ð ð ð ð ð ð ˜ñ ô ð ð ð ð ð ð ˜ñ ô ð ð ð ð ð ð ˜ ñ ô ð ð ð ð ð ð �Iñ ô ð ð € Ø€ ð ð ð € ð OðOðOÐð Ø ððÐð €à "ˆKÔ " ;Ø#EÐ#EÐ#Eñ Gô G€ ð%ˆkÔ$ ]Ø%FÐ%FÐ%FñHôH€ ð ð ð ðððð2ðððð:HðHðHðHð,ðððð4 ð Cð Cð Cð CðK 8ðK 8ðK 8ðK 8ðK 8ñK 8ôK 8ðK 8ð\ ðððððð�4ñôðð. ‡N‚N�:ÑÔÐð ˆzÒÑØ€O€O€Oà $ˆXÔ $ð2NðOñOôO€Fà ×Ò˜˜iÐ1LØRðñTôTðTà ×Ò˜˜j°/ØJðñLôLðLà ×Ò˜˜h°¸¸ØFOÀiÀiÐQ^ÐQ^ÐQ^Ð_ðñaôaðaà ×Ò˜˜o°rÀØQðñSôSðSà ×Ò˜˜g¨lÀEØ0ðñ2ô2ð2à × Ò Ñ Ô €Dà Œ9€DØ Œ8ð2Ø �2Š:ˆ:؈DØ ˆD�d”k¨Ð -Ñ -Ô -ˆˆà �2Š:ˆ:Ø ˆDØ ˆH˜$œ+¨DÐ 1Ñ 1Ô 1ˆà × Ò Ñ Ô €DØ�TÐÐØ � Š ‰ Œ ˆ Ø%&§W¢W¨T¬ZÑ%8Ô%8Ñ"€Dˆ%�˜˜dØ €Eˆ'�4˜ Ð'8¸%ÀÀtÑLÔLÐLðððð ˆC���D‘ ” ˜DÔ,Ñ,¨qÑ0Ñ 1Ô 1€EØ—g’g˜e TÑ*Ô*�O€Dˆ)Ø!ðð‰ ˆ�Ø�˜t Fœ|Ñ,Ô,×2Ò2°3¸Ñ:Ô:¸1Ô=ˆØ�-  Y¤Ñ0Ô0ˆØ��D˜”NÑ#Ô#ˆØ ˆÐ%×,Ò,Ø�c�c˜& "‘o”o s s¨7°BÑ'7Ô'7¸ñ@ô@ñ ô ð ð ð‡F‚F�H„H€H€H€HðaÐs ›"¢,«,