Ë
    «}Új8  ã                   ó¸  — d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
 ddlZddlZdZ ed«      Zedz  Zed	 ej"                  «       j%                  d
«      › d�z  Zed	 ej"                  «       j%                  d
«      › d�z  Zed	 ej"                  «       j%                  d
«      › d�z  Zedz  ZdZdZdZ ej4                  «       Zej8                  j;                  ddi«       de	fd„Zde	fd„Zde	fd„Z de!de
e	   fd„Z"de	de	de	fd„Z#dede!fd„Z$de	de!fd „Z%de	de!fd!„Z&de	de!fd"„Z'de(fd#„Z)de!fd$„Z*d%ede!fd&„Z+d'e	fd(„Z,d)„ Z-e.d*k(  r e-«        yy)+uä   
Enriquece os dados existentes (lelyon_prospects_latest.json) com dados REAIS
da API CNPJ Finder (cnpjfinder.com.br) - grÃ¡tis, sem auth, 50 req/s
MantÃ©m estrutura B2B/B2C mas preenche email, telefone, endereÃ§o, sÃ³cios reais
é    N)ÚPath)Údatetime)ÚListÚDictÚOptionalz*https://www.cnpjfinder.com.br/api/v1/cnpj/z/root/lelyon_prospecting/dataz$lelyon_real_minhareceita_latest.jsonÚlelyon_prospects_enriched_ú%Y%m%d_%H%M%Sú.jsonú.csvú.xlsxzenrichment_real_progress.jsongš™™™™™©?é   é   ÚAcceptzapplication/jsonÚreturnc                  ó°   — t         j                  «       r1t        t         dd¬«      5 } t        j                  | «      cd d d «       S g i g dœS # 1 sw Y   ŒxY w)NÚrúutf-8©Úencoding)Úprocessed_cnpjsÚenrichedÚfailed)ÚPROGRESS_FILEÚexistsÚopenÚjsonÚload)Úfs    ú,/root/lelyon_prospecting/enrich_real_data.pyÚload_progressr    "   sN   € Ü×ÑÔÜ”- ¨wÔ7ð 	 ¸1Ü—9‘9˜Q“<÷	 ñ 	 à!¨r¸RÑ@Ð@÷	 ð 	 ús   §AÁAÚprogressc                 ó„   — t        t        dd¬«      5 }t        j                  | |dd¬«       d d d «       y # 1 sw Y   y xY w)NÚwr   r   Fé   ©Úensure_asciiÚindent)r   r   r   Údump)r!   r   s     r   Úsave_progressr)   (   s7   € Ü	Œm˜S¨7Ô	3ð =°qÜ�	‰	�(˜A¨E¸!Õ<÷=÷ =ñ =ús   “6¶?c                  ó  — t         j                  «       rÔt        t         dd¬«      5 } t        j                  | «      }t        |t        «      r“i }dD ]c  }|j                  |g «      D ]L  }|j                  dd«      j                  dd«      j                  dd«      j                  d	d«      }|sŒH|||<   ŒN Œe t        d
t        |«      › dt         › �«       |cddd«       S 	 ddd«       t        dt         › �«      ‚# 1 sw Y   ŒxY w)z=Carrega empresas do JSON latest - retorna dict cnpj->company.r   r   r   ©Úb2bÚb2cÚcnpjÚ ú.ú/ú-u   âœ… Carregadas z empresas de Nu   Arquivo nÃ£o encontrado: )Ú
INPUT_JSONr   r   r   r   Ú
isinstanceÚdictÚgetÚreplaceÚprintÚlenÚFileNotFoundError)r   ÚdataÚ	companiesÚcatÚcr.   s         r   Úload_companiesr?   ,   sü   € ä×ÑÔÜ”*˜c¨GÔ4ð 
	!¸Ü—9‘9˜Q“<ˆDÜ˜$¤Ô%Ø�	Ø)ò 0�CØ!ŸX™X c¨2Ó.ò 0˜Ø Ÿu™u V¨RÓ0×8Ñ8¸¸bÓA×IÑIÈ#ÈrÓR×ZÑZÐ[^Ð`bÓc˜ÚØ./˜I dšOñ0ð0ô
 ˜¬¨I«Ð'7°}ÄZÀLÐQÔRØ ÷
	!ñ 
	!à%÷
	!ô Ð7¼
°|ÐDÓ
EÐE÷
	!ð 
	!ús   §BC;Â.(C;Ã;Dr.   c           	      óÎ  — t         › | › �}t        t        «      D ]ÿ  }	 t        j	                  |t
        ¬«      }|j                  dk(  r6|j                  «       }|j	                  d«      r|j	                  d«      c S  y|j                  dk(  r-d|z  dz  }t        d|› d	�«       t        j                  |«       Œ |j                  d
k(  r yt        d|j                  › d|j                  dd › �«       	 |t        dz
  k  sŒçt        j                  d|z  «       �Œ y# t        j                  $ r t        d|dz   › d�«       Y ŒPt        $ r}t        d|› �«       Y d}~Œkd}~ww xY w)z!Consulta CNPJ na API CNPJ Finder.)ÚtimeoutéÈ   Úsuccessr;   Ni­  r$   u       â�³ Rate limited, aguardando zs...i”  u      âš ï¸� Erro z: éd   u      â�±ï¸� Timeout (tentativa é   ú)u      â�Œ Erro: )ÚCNPJ_FINDER_APIÚrangeÚMAX_RETRIESÚsessionr6   ÚTIMEOUTÚstatus_coder   r8   ÚtimeÚsleepÚtextÚrequestsÚTimeoutÚ	Exception)r.   ÚurlÚattemptÚrespr;   ÚwaitÚes          r   Úcnpj_finder_lookuprX   <   sT  € äÐ˜d˜VÐ
$€CäœÓ%ò %ˆð	'Ü—;‘;˜s¬G�;Ó4ˆDà×Ñ 3Ò&Ø—y‘y“{�Ø—8‘8˜IÔ&ØŸ8™8 FÓ+Ò+áØ×!Ñ! SÒ(Ø˜G‘| aÑ'�ÜÐ8¸¸¸dÐCÔDÜ—
‘
˜4Ô ØØ×!Ñ! SÒ(Ùä˜¨×(8Ñ(8Ð'9¸¸D¿I¹IÀdÀs¸OÐ;LÐMÕNð ”[ 1‘_Ó$Ü�J‰J�q˜G‘|Ö$ð3%ð6 øô ×Ñò 	@ÜÐ1°'¸!±)°¸AÐ>Ö?Üò 	'Ü�M ! Ð%×&Ñ&ûð	'ús0   žADÁ>;DÂ:DÃ(DÄ%E$ÅE$ÅEÅE$ÚoriginalÚrealc           
      ó  — | j                  «       }|j                  i d|j                  dd«      xs d“dt        |j                  dg «      «      “d|j                  dd«      xs d“dt	        |«      “dt        |«      “dt        |«      “d	t        |j                  d	«      «      “d
|j                  d
d«      “d|j                  d«      dk(  rdnd“d|j                  dd«      “d|j                  dd«      “dt        |j                  dg «      «      “dt        |j                  dg «      «      “dd“dt        j                  «       j                  «       “dd| j                  dd«      › �“«       dD ]  }|| v sŒ| |   ||<   Œ |S )z.Mescla dados originais com dados reais da API.Úemailr/   ÚtelefoneÚ	telefonesÚwebsiteÚendereco_completoÚcontato_nomeÚcontato_cargoÚcapital_socialÚnatureza_juridicaÚsimples_nacionalÚopcao_pelo_simplesÚSÚSimu   NÃ£oÚdata_situacaoÚdata_situacao_cadastralÚmotivo_situacaoÚ#descricao_motivo_situacao_cadastralÚcnaes_secundariosÚqsaÚQSAÚfonte_enriquecimentoÚcnpj_finderÚdata_enriquecimentoÚobservacoeszDados reais CNPJ Finder | )Útipo_prospeccaoÚb2c_categoriaÚbest_fit_serviceÚ	fit_scoreÚ
lelyon_fitÚwhatsappÚlinkedinÚ	instagramÚfacebookÚtipo_estabelecimentoÚgestaoÚlatitudeÚ	longitudeÚespecialidadesÚleitos_totalÚ
leitos_susÚ
leitos_utiÚdata_atualizacao_cnes)ÚcopyÚupdater6   Úformat_phoneÚformat_addressÚget_first_socioÚget_first_socio_roleÚparse_capitalÚformat_cnaes_secundariosÚ
format_qsar   ÚnowÚ	isoformat)rY   rZ   ÚmergedÚkeys       r   Úmerge_company_datar“   ]   sÙ  € à�]‰]‹_€Fð ‡M�Mð Ø�—‘˜' 2Ó&Ò,¨"ðà”L §¡¨+°rÓ!:Ó;ðð 	�4—8‘8˜I rÓ*Ò0¨bðð 	œ^¨DÓ1ð	ð
 	œ¨Ó-ðð 	Ô-¨dÓ3ðð 	œ-¨¯©Ð1AÓ(BÓCðð 	˜TŸX™XÐ&9¸2Ó>ðð 	 T§X¡XÐ.BÓ%CÀsÒ%J™EÐPVðð 	˜Ÿ™Ð";¸RÓ@ðð 	˜4Ÿ8™8Ð$IÈ2ÓNðð 	Ô5°d·h±hÐ?RÐTVÓ6WÓXðð 	Œz˜$Ÿ(™( 5¨"Ó-Ó.ðð 	 ðð 	œxŸ|™|›~×7Ñ7Ó9ðð  	Ð3°H·L±LÀÐPRÓ4SÐ3TÐUð!ô ð(Eò (ˆð
 �(Š?Ø" 3™-ˆF�3ŠKð(ð €Mó    r^   c                 óF  — | syg }| d d D ]„  }|j                  dd«      }|j                  dd«      }|sŒ*|sŒ-|j                  dd«      j                  dd«      }|j                  t        |«      dk(  rd|› d	|d d
 › d|d
d  › �nd|› d	|› �«       Œ† dj	                  |«      S )Nr/   r$   ÚdddÚnumeror2   ú é   ú(z) é   ú; )r6   r7   Úappendr9   Újoin)r^   ÚpartsÚtr–   ÚnumÚcleans         r   rˆ   rˆ   €   sÁ   € ÙØØ€EØ�r˜ˆ]ò hˆØ�e‰e�E˜2ÓˆØ�e‰e�H˜bÓ!ˆÚ’3Ø—K‘K  RÓ(×0Ñ0°°bÓ9ˆEØ�L‰L¼sÀ5»zÈQº˜1˜S˜E  E¨"¨1 I ;¨a°°a°b°	¨{Ñ;ÐVWÐX[ÐW\Ð\^Ð_dÐ^eÐTfÕgðhð �9‰9�UÓÐr”   c                 ó¦  — g }| j                  d«      r-| j                  d«      r|j                  | d   › d| d   › �«       | j                  d«      r|j                  t        | d   «      «       | j                  d«      r|j                  | d   «       | j                  d«      r|j                  | d   «       | j                  d«      r-| j                  d«      r|j                  | d   › d	| d   › �«       | j                  d
«      r:t        | d
   «      j                  d«      }|j                  d|d d › d|dd  › �«       dj	                  |«      S )NÚtipo_logradouroÚ
logradouror˜   r—   ÚcomplementoÚbairroÚ	municipioÚufr1   Úcepr™   zCEP é   r2   ú, )r6   r�   ÚstrÚzfillrž   )rZ   rŸ   rª   s      r   r‰   r‰   Œ   s,  € Ø€EØ‡x�xÐ!Ô" t§x¡x°Ô'=Ø�‰˜Ð.Ñ/Ð0°°$°|Ñ2DÐ1EÐFÔGØ‡x�x�ÔØ�‰”S˜˜h™Ó(Ô)Ø‡x�x�ÔØ�‰�T˜-Ñ(Ô)Ø‡x�x�ÔØ�‰�T˜(‘^Ô$Ø‡x�x�Ô §¡¨$¤Ø�‰˜˜[Ñ)Ð*¨!¨D°©J¨<Ð8Ô9Ø‡x�x�„Ü�$�u‘+Ó×$Ñ$ QÓ'ˆØ�‰�t˜C  ˜G˜9 A c¨!¨" g YÐ/Ô0Ø�9‰9�UÓÐr”   c                 óV   — | j                  dg «      }|r|d   j                  dd«      S y)Nro   r   Ú
nome_socior/   ©r6   ©rZ   rn   s     r   rŠ   rŠ   �   s-   € Ø
�(‰(�5˜"Ó
€CÙ
Ø�1‰v�z‰z˜,¨Ó+Ð+Ør”   c                 óV   — | j                  dg «      }|r|d   j                  dd«      S y)Nro   r   Úqualificacao_socior/   r±   r²   s     r   r‹   r‹   £   s.   € Ø
�(‰(�5˜"Ó
€CÙ
Ø�1‰v�z‰zÐ.°Ó3Ð3Ør”   c                 ó`   — | sy	 t        t        | «      j                  dd«      «      S #  Y yxY w)Ng        ú,r0   )Úfloatr­   r7   )Úcapital_strs    r   rŒ   rŒ   ©   s4   € ÙØðÜ”S˜Ó%×-Ñ-¨c°3Ó7Ó8Ð8øðÙús   …#) ©-c           	      ó6  — t        | t        «      r| S | syt        | t        «      s%t        dt	        | «      › d| › �«       t        | «      S | D �cg c]/  }|j                  d«      sŒt        |j                  dd«      «      ‘Œ1 }}dj                  |«      S c c}w )Nr/   z%DEBUG format_cnaes_secundarios: type=z, value=Úcodigor¬   )r4   r­   Úlistr8   Útyper6   rž   )Ú	cnaes_secr>   Úcodess      r   r�   r�   ±   s‰   € ä�)œSÔ!ØÐÙØä�i¤Ô&ÜÐ5´d¸9³oÐ5FÀhÈyÈkÐZÔ[Ü�9‹~ÐØ/8ÖL¨!¸A¿E¹EÀ(½OŒS�—‘�x Ó$Õ%ÐL€EÐLØ�9‰9�UÓÐùò Ms   ÁBÁ&Brn   c                 óÀ   — | sydj                  | D �cg c]<  }|j                  d«      sŒ|j                  dd«      › d|j                  dd«      › d�‘Œ> c}«      S c c}w )Nr/   rœ   r°   ú (r´   rF   )rž   r6   )rn   Úss     r   rŽ   rŽ   ¾   s]   € ÙØØ�9‰9Ð^aÖyÐYZÐef×ejÑejÐkwÕex˜Ÿ™˜|¨BÓ/Ð0°°1·5±5Ð9MÈbÓ3QÐ2RÐRSÒTÒyÓzÐzùÒys
   “Aª*Ar<   c                 ó$  — t        j                  «       j                  d«      }t        | j	                  «       «      }|D �cg c]  }|j                  d«      dk(  sŒ|‘Œ }}|D �cg c]  }|j                  d«      dk(  sŒ|‘Œ }}t        d|› d�z  }||dœ}t        |dd	¬
«      5 }t        j                  ||dd¬«       ddd«       t        d|› d�z  }	|r¾t        |d   j                  «       «      }
t        |	ddd¬«      5 }t        j                  ||
¬«      }|j                  «        |D ]]  }|
D �ci c]  }||j                  |d«      “Œ }}t        j                  |j                  di «      d¬«      |d<   |j                  |«       Œ_ 	 ddd«       t        d|› d�z  }t!        j"                  |d¬«      5 }t!        j$                  |«      }|d   j'                  d„ «      |d<   ||d   dk(     }||d   dk(     }|j)                  |dd¬«       |j)                  |dd¬«       |j)                  |dd¬«       t+        |D �cg c]'  }|j                  d«      s|j                  d«      sŒ&|‘Œ) c}«      }d t+        |«      d!œdt+        |«      d!œdt+        |«      d!œd"t+        |D �cg c]  }|j                  d«      sŒ|‘Œ c}«      d!œd#t+        |D �cg c]  }|j                  d«      sŒ|‘Œ c}«      d!œd$|d!œd%|t+        |«      z  d&z  d'›d(�d!œg}t!        j$                  |«      j)                  |d)d¬«       ddd«       |d*f|	d+f|d,ffD ]I  \  }}t        |z  }|j-                  «       r|j/                  «        |j1                  |j2                  «       ŒK t5        d-«       t5        d.|› �«       t5        d/|	› �«       t5        d0|› �«       yc c}w c c}w # 1 sw Y   �ŒxY wc c}w # 1 sw Y   �Œ`xY wc c}w c c}w c c}w # 1 sw Y   ŒÎxY w)1z&Salva resultados em JSON, CSV e Excel.r	   rt   ÚB2BÚB2CÚlelyon_prospects_real_r
   r+   r#   r   r   Fr$   r%   Nr   r   z	utf-8-sigr/   )r   Únewline)Ú
fieldnamesrx   ©r&   r   Úopenpyxl)Úenginec                 óf   — t        | t        «      rt        j                  | d¬«      S t	        | «      S )NFrÈ   )r4   r5   r   Údumpsr­   )Úxs    r   ú<lambda>zsave_results.<locals>.<lambda>â   s:   € ÔmwÐxyÔ{ô  nAÌÏ
É
ÐSTÐchÔHi€ ô  GJð  KLó  GM€ r”   Úlelyon_fit_strÚTodos)Ú
sheet_nameÚindexr\   r]   ÚTotal)u   MÃ©tricaÚValorz	Com EmailzCom TelefoneÚEnriquecidaszTaxa SucessorD   ú.1fú%ÚResumozlelyon_prospects_latest.jsonzlelyon_prospects_latest.csvzlelyon_prospects_latest.xlsxu   
ðŸ’¾ Resultados salvos:u      ðŸ“„ JSON: u      ðŸ“Š CSV:  u      ðŸ“ˆ Excel: )r   r�   Ústrftimer»   Úvaluesr6   ÚDATA_DIRr   r   r(   ÚkeysÚcsvÚ
DictWriterÚwriteheaderrÌ   ÚwriterowÚpdÚExcelWriterÚ	DataFrameÚapplyÚto_excelr9   r   ÚunlinkÚ
symlink_toÚnamer8   )r<   Ú	timestampÚcompanies_listr>   r,   r-   Ú	json_fileÚcombinedr   Úcsv_filerÇ   ÚwriterÚkÚrowÚ
excel_fileÚdf_allÚdf_b2bÚdf_b2cr   ÚstatsÚsrcÚdst_nameÚdsts                          r   Úsave_resultsrù   Ã   s  € ä—‘“×'Ñ'¨Ó8€IÜ˜)×*Ñ*Ó,Ó-€Nð %Ö
J�¨¯©Ð.?Ó(@ÀEÓ(IŠ1Ð
J€CÐ
JØ$Ö
J�¨¯©Ð.?Ó(@ÀEÓ(IŠ1Ð
J€CÐ
Jô Ð3°I°;¸eÐDÑD€IØ 3Ñ'€HÜ	ˆi˜ wÔ	/ð =°1Ü�	‰	�(˜A¨E¸!Õ<÷=ô Ð2°9°+¸TÐBÑB€HÙÜ˜.¨Ñ+×0Ñ0Ó2Ó3ˆ
Ü�(˜C¨+¸rÔBð 	%ÀaÜ—^‘^ A°*Ô=ˆFØ×ÑÔ Ø#ò %�Ø0:Ö;¨1�q˜!Ÿ%™%  2›,‘Ð;�Ð;Ü$(§J¡J¨q¯u©u°\À2Ó/FÐUZÔ$[��LÑ!Ø—‘ Õ$ñ%÷	%ô Ð4°Y°K¸uÐEÑE€JÜ	�‰˜
¨:Ô	6ð O¸&Ü—‘˜nÓ-ˆØ#)¨,Ñ#7×#=Ñ#=ñ  ?Mó  $NˆÐÑ à˜Ð0Ñ1°UÑ:Ñ;ˆØ˜Ð0Ñ1°UÑ:Ñ;ˆà�‰˜¨7¸%ˆÔ@Ø�‰˜¨5¸ˆÔ>Ø�‰˜¨5¸ˆÔ>ô  >ÖY˜a°Q·U±U¸7´^ÀqÇuÁuÈZÕGXšÒYÓZˆà ¬3¨~Ó+>Ñ?Ø¬¨S«Ñ2Ø¬¨S«Ñ2Ø$¬s¸~Ö3`¸!ÐQR×QVÑQVÐW^ÕQ_²AÒ3`Ó/aÑbØ'´#À.Ö6f¸QÐTU×TYÑTYÐZdÕTe²qÒ6fÓ2gÑhØ'°(Ñ;Ø'°X¼cÀ.Ó>QÑ5QÐRUÑ5UÐVYÐ4ZÐZ[Ð2\Ñ]ð
ˆô 	�‰�UÓ×$Ñ$ V¸ÈÐ$ÔN÷-Oð4 
Ð2Ð3Ø	Ð0Ð1Ø	Ð3Ð4ðò !‰ˆˆXô
 ˜Ñ!ˆØ�:‰:Œ<Ø�J‰JŒLØ�‰�s—x‘xÕ ð!ô 
Ð%Ô'Ü	ˆN˜9˜+Ð
&Ô'Ü	ˆN˜8˜*Ð
%Ô&Ü	ˆO˜J˜<Ð
(Õ)ùò{ KùÚ
J÷
=ñ =üò <÷		%ñ 	%üò, Zùò
 4aùÚ6f÷%Oð OúsŒ   ÁOÁOÁ%OÁ?OÂ%OÄ1O*Ä2O%Å?O*Æ8B	PÉ'O7
É)O7
É-8PÊ%O<Ê<O<Ë PËPË)PË-APÏO"Ï%O*Ï*O4Ï7PÐPc                  óD  — t        d«       t        d«       t        d«       t        dt        › ddt        z  d›d�«       t        «        t        «       } | st        d«       y t        «       }t	        |j                  d	g «      «      }|j                  d
i «      }| j                  «       D �cg c]	  }||vsŒ|‘Œ }}t        dt        | «      › dt        |«      › dt        |«      › �«       |sCt        d«       i }| j                  «       D ]  \  }}||v r	||   ||<   Œ|||<   Œ t        |«       y t        dt        |«      › d�«       t        d«       d}d}		 t        |«      D �]O  \  }
}| |   }t        d|
dz   › dt        |«      › d|› d|j                  dd«      d d › �«       t        |«      }|rSt        ||«      }|dz  }t        dt        |j                  d«      «      › dt        |j                  d«      «      › �«       n<|}d|d<   t        j                  «       j!                  «       |d <   |	dz  }	t        d!«       |||<   |j#                  |«       |
dz   dz  dk(  r8t%        t'        |«      |t        j                  «       j!                  «       d"œ«       t)        j*                  t        «       �ŒR 	 t        d$t        |«      › d�«       i }| j                  «       D ]  \  }}||v r	||   ||<   Œ|||<   Œ t        |«       t        |j/                  «       D �cg c]'  }|j                  d«      s|j                  d«      sŒ&|‘Œ) c}«      }t        d%«       t        d&t        |«      › �«       t        d'|› �«       t        d(|	› �«       t        d)|› d*|t        |«      z  d+z  d,›d-�«       t0        j3                  d.¬/«       y c c}w # t,        $ rF t        d#«       t%        t'        |«      |t        j                  «       j!                  «       d"œ«       Y y w xY wc c}w )0Nz<============================================================z0ENRIQUECIMENTO COM DADOS REAIS - CNPJ Finder APIzDelay: zs (rE   z.0fz req/s)u#   â�Œ Nenhuma empresa para enriquecerr   r   u   ðŸ“‹ Total: u    | JÃ¡ processados: z | Pendentes: u   âœ… Todos jÃ¡ processados!u"   
ðŸš€ Iniciando enriquecimento de z empresas...z:   (Ctrl+C para pausar - progresso salvo automaticamente)
r   z
[r1   z] z - Úrazao_socialr/   é2   u      âœ… Enriquecido: email=r\   z, tel=r]   Úcnpj_finder_not_foundrp   rr   u      â­• NÃ£o encontrado na API)r   r   Úlast_updateu5   

â�¸ï¸� Interrompido pelo usuÃ¡rio. Progresso salvo.u   
ðŸ“¦ Consolidando u   
âœ… CONCLUÃ�DO!z
   Total: z   Enriquecidas com sucesso: u      NÃ£o encontradas: z   Com dados de contato: rÀ   rD   rÖ   z%)T)Ú
missing_ok)r8   ÚDELAY_BETWEEN_REQUESTSr?   r    Úsetr6   rÜ   r9   Úitemsrù   Ú	enumeraterX   r“   Úboolr   r�   r�   Úaddr)   r»   rM   rN   ÚKeyboardInterruptrÚ   r   ræ   )r<   r!   Ú	processedÚenriched_datar.   ÚpendingÚfinal_companiesr>   Úenriched_countÚfailed_countÚirY   rZ   r   Útotal_enricheds                  r   Úmainr  	  s.  € Ü	ˆ(„OÜ	Ð
<Ô=Ü	ˆ(„OÜ	ˆGÔ*Ð+¨3¨qÔ1GÑ/GÈÐ.LÈGÐ
TÔUÜ	„Gô Ó €IÙÜÐ3Ô4Øô ‹€HÜ�H—L‘LÐ!2°BÓ7Ó8€IØ—L‘L ¨RÓ0€Mà )§¡Ó 0ÖJ˜°DÀ	Ò4IŠtÐJ€GÐJÜ	ˆLœ˜Y›Ð(Ð(<¼SÀ»^Ð<LÈNÔ[^Ð_fÓ[gÐZhÐ
iÔjáÜÐ*Ô+àˆØ —‘Ó(ò 	*‰GˆD�!Ø�}Ñ$Ø(5°dÑ(;� Ò%à()� Ò%ð		*ô
 	�_Ô%Øä	Ð/´°G³¨~¸\Ð
JÔKÜ	Ð
GÔHà€NØ€Lð(Ü  Ó)ó 	/‰GˆAˆtØ  ‘ˆHÜ�C˜˜!™�u˜Aœc '›l˜^¨2¨d¨V°3°x·|±|ÀNÐTVÓ7WÐX[ÐY[Ð7\Ð6]Ð^Ô_ô & dÓ+ˆDáÜ-¨h¸Ó=�Ø !Ñ#�ÜÐ2´4¸¿¹ÀWÓ8MÓ3NÐ2OÈvÔVZÐ[c×[gÑ[gÐhrÓ[sÓVtÐUuÐvÕwð $�Ø3J�Ð/Ñ0Ü2:·,±,³.×2JÑ2JÓ2L�Ð.Ñ/Ø Ñ!�ÜÐ5Ô7à"*ˆM˜$ÑØ�M‰M˜$Ôð �A‘˜‰|˜qÒ ÜÜ'+¨I£Ø -Ü#+§<¡<£>×#;Ñ#;Ó#=ñô ô �J‰JÔ-Ö.ñ=	/ôT 
Ð ¤ ]Ó!3Ð 4°LÐ
AÔBØ€OØ—?‘?Ó$ò &‰ˆˆaØ�=Ñ Ø$1°$Ñ$7ˆO˜DÒ!à$%ˆO˜DÒ!ð	&ô �Ô!ô  _×%;Ñ%;Ó%=Öe ÀÇÁÀwÄÐST×SXÑSXÐYcÕSdš!ÒeÓf€NÜ	ÐÔÜ	ˆJ”s˜?Ó+Ð,Ð
-Ô.Ü	Ð)¨.Ð)9Ð
:Ô;Ü	Ð! , Ð
0Ô1Ü	Ð% nÐ%5°R¸ÄsÈ?ÓG[Ñ8[Ð\_Ñ8_Ð`cÐ7dÐdfÐ
gÔhô ×Ñ DÐÕ)ùòg Køôl ò ÜÐGÔHÜÜ# I›Ø%Ü#Ÿ<™<›>×3Ñ3Ó5ñ
ô 	ñ
 	ðüò* fs,   Â+	OÂ5OÅEO Ì'PÍPÏAPÐPÚ__main__)/Ú__doc__r   rÝ   rM   Úpathlibr   r   Útypingr   r   r   Úpandasrá   rP   rG   rÛ   r3   r�   rÙ   ÚOUTPUT_JSONÚ
OUTPUT_CSVÚOUTPUT_EXCELr   r   rI   rK   ÚSessionrJ   Úheadersr‡   r    r)   r?   r­   rX   r“   rˆ   r‰   rŠ   r‹   r·   rŒ   r�   rŽ   rù   r  Ú__name__© r”   r   ú<module>r     s  ðñó Û 
Û Ý Ý ß 'Ñ 'Û Û ð ?€ÙÐ/Ó0€ØÐ>Ñ>€
ØÐ5°l°h·l±l³n×6MÑ6MÈoÓ6^Ð5_Ð_dÐeÑe€ØÐ4°\°X·\±\³^×5LÑ5LÈ_Ó5]Ð4^Ð^bÐcÑc€
ØÐ6°|°x·|±|³~×7NÑ7NÈÓ7_Ð6`Ð`eÐfÑf€ØÐ:Ñ:€àÐ Ø€Ø
€à
ˆ(×
Ñ
Ó
€Ø ‡�× Ñ ˜Ð"4Ð5Ô 6ðA�tó Að=˜Dó =ðF˜ó Fð ˜Sð  X¨d¡^ó ðB! ð !¨Tð !°dó !ðF
˜Dð 
 Só 
ð˜ð  #ó ð"˜$ð  3ó ð˜tð ¨ó ð %ó ð¨3ó ð{�Dð {˜Só {ð
C*˜Dó C*òLe*ðN ˆzÒÙ…Fð r”   