Ë
    ¡Š£je7  ã                   óœ  — d Z ddlZddlZddlZddlZddlZddlZddlm	Z	 ddl
Z
dZedz   ZdZdZdZej                   j#                  d	d
«      ZddiZdZ eej,                  «      D ]=  \  ZZedk(  sŒedz    eej,                  «      k  sŒ% eej,                  edz      «      Z n h d£Zd„ Zdd„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"e#dk(  r e"«        yy)u*   é“œä»�å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€ - æ‹Ÿå®¡æ‰¹å…¬ç¤ºé    N)ÚBeautifulSoupzhttps://sthjj.trs.gov.cnz/xzsp/nspgs/u   é“œä»�å¸‚-æ‹Ÿå®¡æ‰¹å…¬ç¤ºu   é“œä»�å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€u   çŽ¯è¯„å¹³å�°Ú	SEARCH_DBz/root/search.dbz
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36z--pagesé   >)   ÚpÚddÚdlÚdtÚh1Úh2Úh3Úh4Úh5Úh6ÚhrÚliÚolÚtdÚthÚtrÚulÚdivÚnavÚpreÚformÚmainÚasideÚtableÚtbodyÚtfootÚtheadÚcenterÚdialogÚfigureÚfooterÚheaderÚhgroupÚaddressÚarticleÚcaptionÚdetailsÚsectionÚfieldsetÚ
blockquoteÚ
figcaptionc                 óÒ   ‡‡‡— | €yddl }ddlmŠ g Šˆˆˆfd„Š ‰| «       dj                  ‰«      }|j	                  dd|«      }|j	                  dd	|«      }|j                  «       S )
ul   å�—çº§è¾¹ç•Œå‡ºæ�¢è¡Œã€�è¡Œå†…èŠ‚ç‚¹ç›´æŽ¥æ‹¼æŽ¥ã€�<br> å‡ºæ�¢è¡Œï¼ˆâ‰ˆ æµ�è§ˆå™¨çœ‹åˆ°çš„æ�¢è¡Œç»“æž„ï¼‰ã€‚NÚ r   )ÚNavigableStringc                 óF  •— | j                   D ]‘  }t        |‰«      r‰j                  t        |«      «       Œ*t	        |dd «      dk(  r‰j                  d«       ŒLt	        |dd «      t
        v r+‰j                  d«        ‰|«       ‰j                  d«       ŒŠ ‰|«       Œ“ y )NÚnameÚbrú
)ÚchildrenÚ
isinstanceÚappendÚstrÚgetattrÚ_BLOCK_TAGS)ÚnodeÚchr1   ÚoutÚwalks     €€€ú$/root/gov_crawler/crawl_trs_nspgs.pyr?   zbody_text.<locals>.walk)   s„   ø€ Ø—-‘-ò 
	ˆBÜ˜"˜oÔ.Ø—
‘
œ3˜r›7Õ#Ü˜˜V TÓ*¨dÒ2Ø—
‘
˜4Õ Ü˜˜V TÓ*¬kÑ9Ø—
‘
˜4Ô Ù�R”Ø—
‘
˜4Õ á�R•ñ
	ó    z[ \t\r\f\v]*\n[ \t\r\f\v]*r5   z\n{3,}ú

)ÚreÚbs4r1   ÚjoinÚsubÚstrip)ÚelÚ_reÚtr1   r>   r?   s      @@@r@   Ú	body_textrK   !   sb   ú€ à	€zØÛÝ#Ø
€Cöñ 	ˆ„HØ
�‰�‹€AØ�‰Ð-¨t°QÓ7€AØ�‰�	˜6 1Ó%€AØ�7‰7‹9ÐrA   c                 óÊ  — ddl }t        t        | «      d«      }|j                  d«      D ]L  }|j	                  dd«      }|sŒ|j                  d«      rŒ*|r|j                  j                  ||«      n||d<   ŒN |j                  d«      D ]L  }|j	                  d	d«      }|sŒ|j                  d
«      rŒ*|r|j                  j                  ||«      n||d	<   ŒN t        |«      S )uA   ä¿�ç•™ HTML è¡¨æ ¼ç»“æž„ï¼Œä»…å°†ç›¸å¯¹é“¾æŽ¥/å›¾ç‰‡è½¬ç»�å¯¹ URLr   Núhtml.parserÚaÚhrefr0   )ÚhttpÚ
javascriptú#ÚimgÚsrc)rP   ú//zdata:)Úurllib.parser   r9   Úfind_allÚgetÚ
startswithÚparseÚurljoin)r   Úbase_urlÚurllibÚtblrN   rO   rS   rT   s           r@   Úhtml_table_to_htmlr_   <   sÐ   € ãÜ
œ˜E›
 MÓ
2€CØ�\‰\˜#Óò SˆØ�u‰u�V˜RÓ ˆÚ˜Ÿ™Ð(CÕDÙ@H˜Ÿ™×,Ñ,¨X°tÔ<ÈdˆAˆfŠIðSð �|‰|˜EÓ"ò RˆØ�g‰g�e˜RÓ ˆÚ�s—~‘~Ð&=Õ>Ù@H˜Ÿ™×-Ñ-¨h¸Ô<ÈcˆC�ŠJðRô ˆs‹8€OrA   c                 ó<  — t         j                  j                  | t        ¬«      }	 t         j                  j	                  |d¬«      j                  «       j                  dd¬«      S # t        $ r+}t        d| › d|› �t        j                  ¬	«       Y d }~y
d }~ww xY w)N)Úheadersé   )Útimeoutzutf-8Úreplace)Úerrorsz[WARN] fetch failed: ú - ©Úfiler0   )r]   ÚrequestÚRequestÚHEADERSÚurlopenÚreadÚdecodeÚ	ExceptionÚprintÚsysÚstderr)ÚurlÚreqÚes      r@   Úfetchrv   J   sƒ   € Ü
�.‰.×
 Ñ
  ¬gÐ
 Ó
6€CðÜ�~‰~×%Ñ% c°2Ð%Ó6×;Ñ;Ó=×DÑDÀWÐU^ÐDÓ_Ð_øÜò ÜÐ% c U¨#¨a¨SÐ1¼¿
¹
ÕCÜûðús   §?A' Á'	BÁ0!BÂBc                 ó´  — t        | d«      }g }|j                  d«      D ]µ  }|j                  dd¬«      }|sŒ|d   j                  «       }|j	                  dd«      xs |j                  d¬	«      }|j                  d
«      }|r|j                  d¬	«      nd}|j                  d«      s	t        |z   }|j                  |j                  «       ||dœ«       Œ· |S )zExtract items from a list pagerM   zul.NewsList > lirN   T©rO   rO   Útitler0   ©rG   ÚspanrP   )ry   rs   Údate)	r   ÚselectÚfindrG   rX   Úget_textrY   ÚBASE_URLr8   )	ÚhtmlÚsoupÚitemsr   rN   rO   ry   Ú	date_spanÚ	date_texts	            r@   Úextract_itemsr†   R   sÏ   € ä˜˜}Ó-€DØ€EØ�k‰kÐ,Ó-ò 
OˆØ�G‰G�C˜dˆGÓ#ˆÙØØ�‰y�‰Ó ˆØ—‘�g˜rÓ"Ò< a§j¡j°t jÓ&<ˆØ—G‘G˜F“Oˆ	Ù6?�I×&Ñ&¨TÐ&Ô2ÀRˆ	Ø�‰˜vÔ&Ü˜d‘?ˆDØ�‰˜uŸ{™{›}°TÀ9ÑMÕNð
Oð €LrA   c                 óh   — t        j                  d| «      }|rt        |j                  d«      «      S y)z*Get total pages from createPageHTML scriptz&createPageHTML\((\d+),\s*\d+,\s*"indexr   N)rC   ÚsearchÚintÚgroup)r�   Úms     r@   Úget_total_pagesrŒ   c   s+   € ä
�	‰	Ð;¸TÓB€AÙÜ�1—7‘7˜1“:‹ÐØrA   c                 ó  ‡— t        | d«      }d}|j                  d«      }|r|j                  d¬«      }|s;|j                  dddi¬	«      }|r$|j	                  d
«      r|d
   j                  «       }|s0|j                  r$|j                  j                  j                  «       }d}|j                  dddi¬	«      }|r=|j	                  d
«      r,t        j                  d|d
   «      }|r|j                  d«      }|j                  dd¬«      }	|	s|j                  d«      }	|	s&|j                  d«      }
|
r|
j                  dd¬«      }	|	s|j                  d«      }	|	s||dg dœS g }g }|	j                  dd¬«      }|�rQ|	j                  g d¢«      �s=|	j                  ddd¬«      D �]  }|d   j                  «       Š|j                  d¬«      xs |j	                  dd«      }|j	                  dd«      }|r6|j                  d«      r	t        |z   n|j                  dd«      d   dz   |z   }nz‰j                  d«      r|j                  dd«      d   dz   ‰dd  z   }nJ‰j                  d«      r
t        ‰z   }n/‰j                  d!«      r‰}n|j                  dd«      d   dz   ‰z   }|j                  ||d"œ«       �Œ |j                  |«       |	j                  g d¢d¬#«      D �]á  }|j                   d$v r!|j#                  d%«      r|j                   d&k(  rŒ3|j                   d%k(  r|j#                  d%«      rŒT|j                   d$v �r…|j                  dd¬«      }|j                   d'k(  rt%        |«      }|j                  ddd¬«      D �])  }|d   j                  «       Š|j                  d¬«      xs |j	                  dd«      }|j	                  dd«      }|rK|j                  d«      r
t        |z   }nª|j                  d!«      r|}n–|j                  dd«      d   dz   |z   }nz‰j                  d«      r|j                  dd«      d   dz   ‰dd  z   }nJ‰j                  d«      r
t        ‰z   }n/‰j                  d!«      r‰}n|j                  dd«      d   dz   ‰z   }|j                  ||d"œ«       �Œ, |s�ŒÕ|j                  |«       �Œè|j                   d%k(  r#t'        ||«      }|s�Œ|j                  |«       �Œ|j                   d(k(  s�Œ+|j	                  d)d«      }|j	                  d*d«      }|s�ŒS|j                  d+«      rd,|z   }nG|j                  d«      r
t        |z   }n,|j                  d!«      s|j                  dd«      d   dz   |z   }|r|j                  d-|› d.|› d/�«       �ŒÍ|j                  d-|› d0�«       �Œä |	j                  dd¬1«      D �]{  }|d   j                  «       Št        j                  d2‰t        j(                  «      s‰j                  d!«      sŒN|j	                  d3«      rŒ`|j                  d¬«      xs |j	                  dd«      }|sŒ‰‰dk7  sŒ�t+        ˆfd4„|D «       «      rŒ¤|j	                  dd«      }|r6|j                  d«      r	t        |z   n|j                  dd«      d   dz   |z   }nz‰j                  d«      r|j                  dd«      d   dz   ‰dd  z   }nJ‰j                  d«      r
t        ‰z   }n/‰j                  d!«      r‰}n|j                  dd«      d   dz   ‰z   }|j                  ||d"œ«       �Œ~ |sÙ|	r×g }|	j                  dd¬1«      D ]»  }|d   j                  «       Š‰j                  d!«      sŒ(d5‰vsŒ-|j                  d¬«      xs |j	                  dd«      xs ‰}‰j                  d«      r|j                  dd«      d   dz   ‰dd  z   }n‰j                  d«      r
t        ‰z   }n‰}|j                  d6|› d.|› d7�«       Œ½ |r|}t-        «       }g }|D ]/  }|d8   |vsŒ|j/                  |d8   «       |j                  |«       Œ1 d9j1                  |«      }||||dœS ):zParse detail page contentrM   r0   zdiv.ArticleTitleTrz   Úmetar3   ÚArticleTitle)ÚattrsÚcontentÚPubDatez(\d{4}-\d{2}-\d{2})r   ÚfontÚZoom)Úidz	font#Zoomzdiv.Article_Conzdiv.trs_editor_view)ry   r|   r‘   Úattachmentsú )r   r   r   rS   rN   )rO   ÚappendixrO   ÚdownloadÚOLDSRCú/r   z./é   NrP   )ry   rs   )Ú	recursive)r   r   r   r   r   rS   rT   ÚaltrU   zhttps:z	<a href="z" target="_blank">z</a>u   " target="_blank">å›¾ç‰‡</a>rx   z\.(pdf|docx?|xlsx?|rar|zip)$r˜   c              3   ój   •K  — | ]*  }|d    j                  ‰j                  d«      d   «      –— Œ, y­w)rs   r›   éÿÿÿÿN)ÚendswithÚsplit)Ú.0ÚattrO   s     €r@   ú	<genexpr>zparse_detail.<locals>.<genexpr>ß   s0   øè ø€ Ò2sÐ`c°3°u±:×3FÑ3FÀtÇzÁzÐRUÃÐWYÑGZ×3[Ñ2sùs   ƒ03rQ   z<p><a href="z</a></p>rs   rB   )r   Ú
select_oner   r~   rX   rG   ry   ÚstringrC   rˆ   rŠ   rW   rY   r€   Úrsplitr8   r3   Úfind_parentrK   r_   ÚIÚanyÚsetÚaddrE   )r�   rs   r‚   ry   Ú	title_divÚ
meta_titler…   Ú	meta_dater‹   ÚzoomÚcontent_divr–   ÚpartsÚ	bare_textrN   ÚatitleÚoldsrcÚahrefrH   ÚtextÚtbl_htmlrT   rž   Ú
link_parasÚseenÚunique_attachmentsr¤   r‘   rO   s                               @r@   Úparse_detailr½   j   s)  ø€ ä˜˜}Ó-€Dà€EØ—‘Ð 2Ó3€IÙØ×"Ñ"¨Ð"Ó.ˆÙØ—Y‘Y˜v¨f°nÐ-E�YÓFˆ
Ù˜*Ÿ.™.¨Ô3Ø˜yÑ)×/Ñ/Ó1ˆEÙ�T—Z’ZØ—
‘
×!Ñ!×'Ñ'Ó)ˆà€IØ—	‘	˜&¨°Ð(;�	Ó<€IÙ�Y—]‘] 9Ô-Ü�I‰IÐ,¨i¸	Ñ.BÓCˆÙØŸ™ ›
ˆIà�9‰9�V ˆ9Ó'€DÙØ�‰˜{Ó+ˆÙØ—o‘oÐ&7Ó8ˆÙØ×#Ñ# F¨vÐ#Ó6ˆDáØ�‰Ð4Ó5ˆáØ¨	¸bÐQSÑTÐTà€KØ€Eð —‘˜c¨�Ó.€IÚ˜Ÿ™Ò#?Õ@Ø—‘˜s¨¸�Ó=ó 	@ˆAØ�V‘9—?‘?Ó$ˆDØ—Z‘Z d�ZÓ+ÒD¨q¯u©u°ZÀÓ/DˆFØ—U‘U˜8 RÓ(ˆFÙØ/5×/@Ñ/@ÀÔ/Eœ FÒ*ÈCÏJÉJÐWZÐ\]ÓL^Ð_`ÑLaÐdgÑLgÐjpÑLp‘à—?‘? 4Ô(ØŸJ™J s¨AÓ.¨qÑ1°CÑ7¸$¸q¸r¸(ÑB‘EØ—_‘_ SÔ)Ü$ t™O‘EØ—_‘_ VÔ,Ø ‘EàŸJ™J s¨AÓ.¨qÑ1°CÑ7¸$Ñ>�EØ×Ñ¨¸Ñ>Ö?ð	@ð  	�‰�YÔà�m‰mÒ8ÀDˆmÓIó 3PˆØ�7‰7�lÑ" r§~¡~°gÔ'>À2Ç7Á7ÈcÂ>ØØ�7‰7�gÒ "§.¡.°Ô"9Øà�7‰7�lÒ"Ø—;‘;˜s¨$�;Ó/ˆDØ�w‰w˜%ÒÜ  “}�Ø—[‘[ ¨4¸$�[Ó?ó D�Ø˜‘y—‘Ó(�ØŸ™¨$˜Ó/ÒH°1·5±5¸ÀRÓ3H�ØŸ™˜x¨Ó,�ÙØ×(Ñ(¨Ô-Ü (¨6Ñ 1™Ø×*Ñ*¨6Ô2Ø &™à #§
¡
¨3°Ó 2°1Ñ 5¸Ñ ;¸fÑ D™à—‘ tÔ,Ø #§
¡
¨3°Ó 2°1Ñ 5¸Ñ ;¸dÀ1À2¸hÑ F™ØŸ™¨Ô-Ü (¨4¡™ØŸ™¨Ô0Ø $™à #§
¡
¨3°Ó 2°1Ñ 5¸Ñ ;¸dÑ B˜Ø×"Ñ"¨V¸EÑ#BÖCð)Dó* Ø—‘˜TÖ"à�W‰W˜ÒÜ)¨"¨cÓ2ˆHÛØ—‘˜XÖ&Ø�W‰W˜ÔØ—&‘&˜ Ó#ˆCØ—&‘&˜ Ó#ˆCÛØ—>‘> $Ô'Ø" S™.‘CØ—^‘^ CÔ(Ü" S™.‘CØŸ™¨Ô/ØŸ*™* S¨!Ó,¨QÑ/°#Ñ5¸Ñ;�CÙØ—L‘L 9¨S¨EÐ1CÀCÀ5ÈÐ!MÖNà—L‘L 9¨S¨EÐ1MÐ!NÖOðg3Pðj �]‰]˜3 Tˆ]Ó*ó DˆØ�‰y�‰Ó ˆÜ�I‰IÐ5°t¼R¿T¹TÔBÀdÇoÁoÐV\ÕF]Ðgh×glÑglÐmwÕgxØ—Z‘Z d�ZÓ+ÒD¨q¯u©u°ZÀÓ/DˆFÚ˜$ $›,¬sÓ2sÐgrÔ2sÕ/sØŸ™˜x¨Ó,�ÙØ39×3DÑ3DÀSÔ3IœX¨Ò.ÐPS×PZÑPZÐ[^Ð`aÓPbÐcdÑPeÐhkÑPkÐntÑPt‘Eà—‘ tÔ,Ø #§
¡
¨3°Ó 2°1Ñ 5¸Ñ ;¸dÀ1À2¸hÑ F™ØŸ™¨Ô-Ü (¨4¡™ØŸ™¨Ô0Ø $™à #§
¡
¨3°Ó 2°1Ñ 5¸Ñ ;¸dÑ B˜Ø×"Ñ"¨V¸EÑ#BÖCð#Dñ( ‘TØˆ
Ø—‘˜s¨�Ó.ò 
	\ˆAØ�V‘9—?‘?Ó$ˆDØ�‰˜vÕ&¨<¸tÒ+CØŸ™¨$˜Ó/ÒP°1·5±5¸ÀRÓ3HÒPÈD�Ø—?‘? 4Ô(ØŸJ™J s¨AÓ.¨qÑ1°CÑ7¸$¸q¸r¸(ÑB‘EØ—_‘_ SÔ)Ü$ t™O‘Eà �EØ×!Ñ! L°°Ð7IÈ&ÈÐQYÐ"ZÕ[ð
	\ñ ØˆEä‹5€DØÐØò +ˆØˆu‰:˜TÒ!Ø�H‰H�S˜‘ZÔ Ø×%Ñ% cÕ*ð+ð
 �k‰k˜%Ó €GØ I¸'ÐRdÑeÐerA   c                  ó*	  — t        t        «      } | s0t        dt        j                  ¬«       t        j
                  d«       t        | «      }|€rt        | d«      }d}|j                  d«      D ]P  }t        j                  d|j                  dd«      «      }|sŒ,t        |j                  d«      «      dz   }||kD  sŒO|}ŒR t        d	|› �t        j                  ¬«       t        r9|t        kD  r0t        d
t        › dt        › d�t        j                  ¬«       t        }g }t        |«      D ]¹  }|dk(  rt        }nt        › d|› d�}t        d|dz   › d|› d|› �t        j                  ¬«       t        |«      } | s"t        d|dz   › �t        j                  ¬«       Œqt!        | «      }	t        dt#        |	«      › d|dz   › �t        j                  ¬«       |j%                  |	«       Œ» t        dt#        |«      › �t        j                  ¬«       t'        j(                  t*        «      }
|
j-                  «       }d}d}d}|D �]Ú  }|j/                  d|d   f«       |j1                  «       rŒ+t        d|d   d d › d�t        j                  ¬«       t        |d   «      } | s"t        d|d   › �t        j                  ¬«       Œ‚t3        | |d   «      }|d   xs |d   }|d   xs |d   }|d   }|d    }t        j4                  d!d|«      }t        j4                  d"d#|«      j7                  «       }|r|d d$ nd}|s#|dz  }t        d%|› �t        j                  ¬«       d}|rVt        j                  d&|«      }|r>t        |j                  d«      |j                  d'«      z   |j                  d(«      z   «      }|rt9        j:                  |d)¬*«      nd+}	 |j/                  d,|t<        t>        |d   |||||f	«       |j@                  dkD  r|dz  }|t#        |«      z  }�ŒÝ |
jE                  «        |
jG                  «        t        d0t<        › d|› d1|› d2|› d3�	«       y # tB        $ r/}t        d-|d d. › d/|› �t        j                  ¬«       Y d }~�ŒNd }~ww xY w)4Nz[ERROR] Cannot fetch list pagerg   r   rM   z
div.page azindex_(\d+)\.htmlrO   r0   z[INFO] Total pages: z[INFO] Limiting to z pages (--pages=ú)r   Úindex_z.htmlz[INFO] Fetching page r›   z: z[WARN] Empty response for page z[INFO] Found z items on page z[INFO] Total items from list: z'SELECT id FROM gov_raw WHERE page_url=?rs   z[INFO] Fetching detail: ry   é2   z...z&[WARN] Cannot fetch detail, skipping: r|   r‘   r–   z<[^>]+>z\s+r—   éÈ   z[WARN] Empty content: z(\d{4})-(\d{2})-(\d{2})rœ   é   F)Úensure_asciiz[]z™INSERT OR IGNORE INTO gov_raw (title, site_name, group_name, page_url, publish_date, content, summary, attachments, date_rank) VALUES (?,?,?,?,?,?,?,?,?)z[ERROR] DB insert failed: rb   rf   z

[RESULT] z new, z empty content, z attachments)$rv   ÚLIST_URLrp   rq   rr   ÚexitrŒ   r   r}   rC   rˆ   rX   r‰   rŠ   Ú_MAX_PGÚranger†   ÚlenÚextendÚsqlite3ÚconnectÚDBÚcursorÚexecuteÚfetchoner½   rF   rG   ÚjsonÚdumpsÚ	SITE_NAMEÚ
GROUP_NAMEÚrowcountro   ÚcommitÚclose)r�   Útotal_pagesr‚   rN   r‹   r   Ú	all_itemsÚpgrs   rƒ   ÚconnÚcÚ	new_countÚempty_contentÚtotal_attachmentsÚitemÚdetailry   r…   r‘   r–   ÚplainÚsummaryÚ	date_rankÚatt_jsonru   s                             r@   r   r   
  sI  € Ü”‹?€DÙÜÐ.´S·Z±ZÕ@Ü�‰�Œä! $Ó'€KØÐÜ˜T =Ó1ˆØˆØ—‘˜\Ó*ò 	$ˆAÜ—	‘	Ð.°·±°f¸bÓ0AÓBˆAÚÜ˜Ÿ™ ›
“O aÑ'�Ø�{“?Ø"#‘Kð	$ô 
Ð   Ð
.´S·Z±ZÕ@å�;¤Ò(ÜÐ#¤G 9Ð,<¼W¸IÀQÐGÌcÏjÉjÕYÜˆà€IÜ�KÓ ò  ˆØ�Š7Ü‰Cä�J˜f R D¨Ð.ˆCÜÐ% b¨¡d V¨1¨[¨M¸¸C¸5ÐAÌÏ
É
ÕSÜ�S‹zˆÙÜÐ3°B°q±D°6Ð:ÄÇÁÕLØÜ˜dÓ#ˆÜ�œc %›j˜\¨¸¸A¹¸Ð?ÄcÇjÁjÕQØ×Ñ˜Õð ô 
Ð*¬3¨y«>Ð*:Ð
;Ä#Ç*Á*ÕMä�?‰?œ2Ó€DØ�‰‹€Aà€IØ€MØÐàó +TˆØ	�	‰	Ð;¸dÀ5¹k¸^ÔLØ�:‰:Œ<ØäÐ(¨¨g©°s¸Ð);Ð(<¸CÐ@ÄsÇzÁzÕRÜ�T˜%‘[Ó!ˆÙÜÐ:¸4À¹;¸-ÐHÌsÏzÉzÕZØä˜d D¨¡KÓ0ˆà�w‘Ò0 4¨¡=ˆØ˜6‘NÒ2 d¨6¡lˆ	Ø˜Ñ#ˆØ˜]Ñ+ˆä—‘�z 2 wÓ/ˆÜ—‘�v˜s EÓ*×0Ñ0Ó2ˆÙ!&�%˜˜‘+¨BˆáØ˜QÑˆMÜÐ*¨5¨'Ð2¼¿¹ÕDàˆ	ÙÜ—	‘	Ð4°iÓ@ˆAÙÜ §¡¨£
¨Q¯W©W°Q«ZÑ 7¸!¿'¹'À!»*Ñ DÓE�	áBM”4—:‘:˜k¸Õ>ÐSWˆð		TØ�I‰Ið lØœ	¤:¨t°E©{¸IÀwÐPWÐYaÐclÐmôð �z‰z˜AŠ~Ø˜Q‘�	Ø!¤S¨Ó%5Ñ5Ð!ùðS+TðZ 	‡K�K„MØ‡J�J„Lä	ˆKœ	�{ " Y K¨v°m°_ÐDTÐUfÐTgÐgsÐ
tÕuøô ò 	TÜÐ.¨u°S°b¨z¨l¸#¸a¸SÐAÌÏ
É
×SÓSûð	Tús   ÏAQÑ	RÑ#$RÒRÚ__main__)r0   )$Ú__doc__rC   rq   ÚosrÑ   Úurllib.requestr]   Úurllib.errorrD   r   rË   r€   rÅ   rÓ   ÚSITE_DISPLAYrÔ   ÚenvironrX   rÍ   rk   rÇ   Ú	enumerateÚargvÚirN   rÉ   r‰   r;   rK   r_   rv   r†   rŒ   r½   r   Ú__name__© rA   r@   ú<module>rò      sí   ðá 0ß × ß #Ý Û à%€Ø�nÑ$€Ø'€	Ø)€Ø€
Ø‡Z�Z‡^�^�KÐ!2Ó3€ØÐWÐ
X€à
€Ù�c—h‘hÓò �D€A€qØˆIƒ~˜!˜a™%¡# c§h¡h£-Ó/Ù�c—h‘h˜q 1™u‘oÓ&ˆÙðò*€òó6òòò"ò]fò@_vðD ˆzÒÙ…Fð rA   