Bonjour,

Je dois récupérer un fichier qui est encodé en base64 via un webservice (jusque là ok...).

Lors de mes tests, je connaissais l'extention du fichier et je faisais :

$this->base642file($file, 'soap/test/file_name.zip');

et

private function base642file($b64_data_target, $file_target_name)
    {
        $bin_data_target = base64_decode($b64_data_target);        // base64 decodage
        $file_target = fopen($file_target_name, 'wb');           // Create a file
        if (fwrite($file_target, $bin_data_target))               // Write the file
            return TRUE;
        else
            return FALSE;
    }

donc mon fichier était un fichier zip donc l'url cible avait l'extention .zip

Maintenant le fichier que je reçois, je ne sais pas de quel type il est en vrai... c'est à dire que si je donne une extention .jpg et qu'en réalité bah je receptionne un zip, bah ça ne va pas le faire !

Avez vous une idée de savoir comment je peux determiné le type de fichier ? Je me demande si le problème vient du webservice ou de mon code....

13 réponses


cid5420
Auteur
Réponse acceptée

J'arrive enfin à récupérer le type mine du fichier:

$bin_data_target = base64_decode($b64_data_target);        // base64 decodage
$f = finfo_open();
$mime_type = finfo_buffer($f, $bin_data_target, FILEINFO_MIME_TYPE);

Pour ceux qui ont php 7.2, il est possible de récupérer directement l'extension avec :

$mime_type = finfo_buffer($f, $bin_data_target, FILEINFO_EXTENSION );
cid5420
Auteur

Lors de mon appel au webservice, j'obtiens une chaine de caractère (le fichier encodé en base64). Je n'ai pas un test.txt mais juste test

Donc pour résumer, j'ai la chaine base64 + le nom du document sans l'extention.

Alors comment puis-je faire pour détecter le format ?

cid5420
Auteur

oui mais non ^^ un bon petit webservice made in Orange (la grande maison Orange.....)

cid5420
Auteur

je développe une application qui dois communiquer avec leurs serveus.... Ils arrivent à faire de quelque chose de simple, un truc extremement compliqué ! Je dois en permanence adapter mon application pour coller à ce qu'ils ont fait ! Les process sont d'une lourdeur...

Tu peux toujours essayer de lire les premiers octets :
PK -> .zip
GIF -> .gif
ÿØÿ -> jpeg
...

mais c'est assez étrange qu'un webservice délivre des fichiers sans qu'on sache ce que c'est !!!!

cid5420
Auteur

Voilà le message soap, là il s'agit d'un fichier zip (je le sais car c'est moi qui a envoyé ce document)

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:trackingHeader xmlns:t="http://www.webservice" xmlns:date="http://exslt.org/dates-and-times" xmlns:str="http://exslt.org/strings" xmlns:regExp="http://exslt.org/regular-expressions">
      <t:requestId>111111111111111111111</t:requestId>
      <t:timestamp>2018-05-24T19:23:44+02:00</t:timestamp>
    </t:trackingHeader>
  </soap:Header>
  <soap:Body>
    <ns2:exportDocumentV2Response xmlns:ns2="http://webservice.com/">
      <file>VUVzREJCUUFBQUFJQU5WWnQwd2l0b2x3MkdNQUFHdHpBQUFLQUFBQVpHOWpYM00xTG5Ca1p1MzlZNUNtVDVjK2luWlZkYW5MdG0zYnRtM2pLZHZvc20zYnRtMnp5M2FYYmV6K3ZUUHY4UDNQbmpsbjc0aHpJaWJqZmlMdXpMVnlYU3V2dGZLT0o3L2tJcEVYRnFWaG9HV0JJZG5ibjFtQStjRkFqMCtQYjJ0b0FjUE5UU2NOc0RFeGNBQjRtQmpqTTlCSjR6TnlzREN6MGNuaE16RFNpZUF6c3RBek1OUEovaEVvL3hFd01yUFFpZU5yNFRPemNPQXpzRERyOFBMQ21OZ1kvMlVHL3orMVB4anMvNG9oYkdKa2Eyd2liK0JnN2ZpbkoyUnI1V3h0NDRqUFRDZnZZR0lNTUhLeWRmZ0R4OHRMSndxd2NqSnhvQk8xTW5BeSthY3BkQkxDV3R3c2JBenNmOUE1QklSWjZVV1ptWmdGQllUcEdkbEZSRVdFR0prRUdkaEVlTG5aaEZtWU9ZU0UyVG5vNlRtRS9paXdDekN5MEF1eXNuT3dpN0lKTXJLejgrclFTZGdZbTdocC9WazRBOHRmSFZOYmZJNC8vaW5TU1p2WW1EbVo0N093L2VXTXk5OVd5VXFuYUd2cmhNL0E4RGNGcFQvVS9DR0NUdG5kem9ST1hkSEVsRTVOaXdHZkVaL2h6L29kblJ4TURLeGhmcGh2R1JvYXcrdnJHK3IvQUVXRTl1SDNyOE1abEFHdjYvNFpTb21QUUFGS2pPckdSTS9BT1BtOXpFaGZtT3lUNmZJTkJGNy8yeVVlK0RuTWp6OE0vck9WZitiUzBjbkF3Y25Od2NRVTVnYzl6QThTRWhFNVVaZ2YvMG9ySS9PLzB2cVArTUxuK0N1S2JDeC9YeGdiUFowU1BoUDd2L05WWDEvZlNGOC8zdmlidjVzcG1ISXZ4Q0ExTkRiTXFLR1YvR1N2L0ZEdkRQNVFkOUFMTUVnTFJNQUVVR213RUZVdTVucHZPZ2J0bU9CelpQODNJTEJ2YUhiZ2x2L0FjUWFHZi9WTXhzVEp3TmpBeVFDZjhXOGN5aHVZbVVnYkdKcFlPZUt6L3N1QUl6NzczOTcvUnF6UUgyVXJXN04vVFNrR3huKzFKbVJyNDJSaTQrU0l6OEQ4dHhsQ0RyWjJnclp1V245bE1Rc0hDeTBqSXo0N002UE9IMVJqZ01FL0V2ekp2RC96L3hsUDBjVFIxdG5CNkE4K3d6K2xnS0t0MHg4Qzhlbi95Wk8vWFBzM2JqRDlsM1NMQWh3Y25mQ1pHUDhsalJqcC8yeVhmMDRXT1VNTEpTZnJmOHU4bCtKNitEbzkvQWNLRDJtaXN1dEU4RkRzVzNxc3RYcUhqTUJKbjBTalJvQVJsaGJVMkxhcmNjbHFNNXozdlBuUlpCcUhXRDRDWVNnQ2NtQ29nakFHTnJROUNmeSt1SUovZHZiMTdlbFMyVVJXa0Z1V1lnenBDVXYwVFhrMTlrRjlwTWQ5N0hyVEEwT1Q3UDZtWVJDVHB6TnBOTkNkZGNqV2JYMER2QlhDME85N0g1bVdVQzhTYUxPV1lSL1lmbWVteGJjdGdHdGprcEFrSXJjY0tuOTA2ZjNDTmJkdHRyVzlUOGgzZ3U5MDU5OHk2Zm1yeDk4M0NPYXUyRE4rcWZIRUJSWkFsbUFML3dER29hYjNkazdTQzc5bFRUODJzVGVQdUltbGtweUFoM2xsNEwySjE2UGVvalliTTcwN2pENi9LN09zNHVyZVQybnZPakRKV1lPamdsd2h0Ly9HSTF2aENFRG9LMnRJd1NNbkRsQ0hlOEJxRWRrL1JmMTZGNUtvOFVoMlhUTDZ6RHFsYVhYbVQxSzJiWEp0NWxsdExwMHVPUGkrQitXS3RhL21TY3U1dkNXNm9PUmRhNVRwd3l3RG9OdkMybm1FMXVpU1JWM3Y3T3ZKdURia1MzMSswdnlVYzRPYWp3bTRreEtxQUhjRE9sY0MyN0tzeG5nZUM0UXRaZVl2RkNtRkxsS2M0TWNnRmFKUk5rNDExS1MzVVI5dE5FYWM1bzhnWjlZV25zWEZxRzVWVlFqMGlncEJwaCsvSnArVlo5TXZPVUpnOGU4ZkswTFFmc0FXL05aaTdHT2FTNkxBRzNvcE1PamhjYWZIRjZMbk9MNDdsN2ZXUjZoYjF6ZHhxcDdUdXh3aWtuQWNBcVBMd1czMDBVWDV6UmhCcFVzS1RtanZPZVVieURmYXJtK2IvMmp2L05lNytwK3ppNEdOK2Q5bWszUlVIV3cvUGJTd3E2K0lELzd2Tm9sMDVYSkdmQUppMVU2Q1lFVkpNbEl3SDd3V29NQjg4V1BQWTBkSDlqcU43RVlrQytHVjJqZ3VCdTBjbUh1VnBCMEhNMFh3WlZBM0lqaC9qVkhPYjMyamhRbWRKOXpmd3RQTTdPQStDZ3poUkN1MjFLMmN1SzNHUVdVY3dFb3lwaWxyYnFTVUt0ODhMTmJsY0gyeUkyU3FjU3pXMXpwSmI3OW5LNC9JaFhoUVBibCtTb1hBbDcrZHpVSU5nUzNiZG1vZmlIdm10Znhac3pBbDI5cy9XalBMZjJmTkxFei9kc2tXK3ZybStqK0JZY0dBd0p4eWUyZHp2NXZVMDlQWDF0SGJNWlAvVElXQlZ2NG1EUXNOMFNIV1I0NmUvZzIvOTV1ZkM0amVQMEptL2U4Z016S3lNVEwvYzRjQm40MlZnL1hmc2QrWUFlbWwvT3RoWkdiZFZCQUNuZ0NmUGhRcE9KQUVJdlFuQkFRQnNRR2tGQ293azBFR01YRWdEejZ3djlSM1k0eGVVSUdvY1BoQ1FjQXNwQ2JrRWlnRlpiaUtSY1RFOWxkUGRWTnBidWt2VmZHakQ5L2o3amZTQklNNG56Vmd2Y3V1NDAzWDdjMlp0b2xZUVdGN1pRSE1vdWlaczE4bHQzWmZDYkdka085RFVxZ2RjTWs5MnpIaXZ3V011ZlUwZVIyM0xuem5xc2tjOEdVYkV0TWNiU2xrTnJMU0JKU2RnMHU5TlRVa2RpTjlONTVpMEJDOGFiZXU5TUFFR3J6VlpFZ2x4ZmxiSFZjN2h5YVNHL0dlZVB0QlFzZE5aM1RrdFV1cmRkOVE1KzY4RVdoejFGb3IzOU5ScHdQY2ZLSDNPbzZUcUduZnQwZTRJc25hbmRHT3pYeDJPK01iNXcrY0ZEbUp6amQwdWtzTE8zOU55bDZFMml6RXZTOFgvcVlZN3pLV2oxUUFhSWRvdXpacVg3QlhLVkFFTDZJR2w1ZTNGNS9pS2JuZXdUdnIraWxuZk1QTU9IWlJvbFFZZFpJUFRTU2FIbGswWnFNZzVWdUFSWi9pWUF0a1pNY1R5bnlqdUpWam5Tck9rUGRGYVF4bW5mdTRSL1FXRjJuODBTMjVKaUEzVzBNaFRyZHdkby83QWY0VmFNTndwSkRwOGhON01YeVUyeklibGdmSUltNEJiT3dEb21sK0V3YVJhZXVkVlBKUjVzU0hpVmY1ekZ5aWJtL1Q5SlFyOWpOM01jUHNWeDQyNjV1anVnNlVMOVROc092MGlLQmNrSXZZTHdGWWxGbmpkRUdsTWJrZzhpOW95Z0tOMGpRTzVwU2pPUytFOUJnenBodGZDc0VGaEFyMHVwVnRlRXVncEFDUnhsU2JZcEpuTGRndkdjYkJHZFR3NjZsR1pOK1VPWnJHVE5YWktxZU1kOSt5Mkkxd3Nna1JONHpXckV2K2lRMEpxcUFaRjVveFNrMFoxN3hmUy9PY21yNWpzNisxZFB4WTVrUnJMemJ0eC9tZk1sR0NUM3RYM28wWUh3WlExa1hnSndUM0VXSW5jK1MvQXdRLzZYbEUxK2ZNbmxkVnhadWg4UGk4czNXTHR1Y1Q3cEY1cUU3cjBadE1mNFhxMEJYbHcwNG9nTGZrQjFZUU9sajkycDYzczk2TXJuZGNCYTR2bk1EWHc3Z1pSdFNJd1haRU1kUXNVNy9vTGR0QVZVRjZ5b2RPN3NrVFZqV3ZJUGNOWUs1WHBTVnBPdHVmQzAxM0Z3NWNRYVBwU3YwQ1dndEdVQS82YWxOZGJVSHltV2pSZVNZNmpBbmF2NFRmSFFHZ2ZmeXdydE42dGxxTzV3YjZzbGtMcU90SzhSSDY5YnkrRTNPdmNablFLTmVvSFd0aHpzY2pNNU5Ma2xNRW9reDFrT0xoUXZDeW9Oak5SODBoUGpOM05TdWtXeWlVQ29EZHI2RnhCNnBQS2J3UGpkWFlIYmozRE9SSVJ2RkkwaDJBZmdEREdlajhZdTN5bjlYYSt5cUF3Q2x4UFpHN3o1Nkg3dWFiVDNudXlZN0d5bEZ5eEFUTHVzWStmVkZJRCs3NUd1SVQ5YlNRNFpyMFRaZWE4clVnS2xOT3krME04OWdNMDF3dEpVOWw2L2ROcktCUS9VSm1lbUE2a2x0RGJ0VTUreG9oaDdwZzdwR2hVWGRjM3N0QXBhSFdvL2ZkMnVCb01FdWFvcVpKVTJEMlhsdWtTSUR5Mm5xSGRHL2pXTjBmaWNKSllQRllIRVZJdy9nOXNCQmNCSXZqc0w4akFHS0xidWY5NWRQbG9idFFZT21nYUNaWFVyRk9xbzJ3bmEreHNFTEtJQnNDWkpJdkh3TXRWN3lOSS8wSS9tQThNeHEzYkxlaUJDRmdFTmlMNXlTVXVNb3VPM3VCTnJjUlpWUk1hQXBRbmxTbU1yVmdMMGE4d3BVT3FQbTlPMzNkR3VBci90UnFtZVNQVGZlZU1jL0Q2M3JkZUIyRDRzT2o4VDJkSURZMWxHMER3M3BpZmxOZzZHb2F3cFNXQXNyNGVTRk9WMlpoWlRkN2w2UnUrVDQzZmFYNG1qV0lidVdYa202QkUwNCtSTXdhaTVFK2pES0E2ZE5LWG1xY1BCTmhjdnJHdExBREVjbGJVSFJBUkZOZzVEcFhxZkF3ZThpOUdPWXlIVGNFR010eXYydzBCNUZ0Z0tuQUxweXRGR1d2NkdjeUFrUWxqRzRjNHZtUkJKeUwxcWU3Rm5JYjhjcEFRamFDOUExK1hlWEdOWGhpYmh6eWxUMjREN0h4bHVPcnNwRkVYaUo3L0o0djhhTUR3c0N2d09QbW5GaTJBL2hES2VtRFRxdFNtU0xDNy80b0hMcFU1OFdFeXo2U0YwbDdVT1UrUGc2alB2T2NPVG5LSzNMOU5XODhZUnZLR0Q0dnRoSWE2L29pY1cvcHVLWGVOM1NRWDljYk9JdnhIeUpESnVlb3lkKzVmLzlXN1pLNUJsTmEySldnU1RTWkt2MjlDWFVEOVVFK1NGMGRqRzFibTFMQ25ib2owVURJdjNQRW1wcDBqRkl6dXV3UE9SQlF1M21nMWFlTDhUdVR6bFcwTjhmR0pIYmg5c0FOYnQ3NWFJVEZlN082cEthZysyRGY2L3M2dEZnQnNkbjNUaWJKQUxVM0hhWlpQcWxOWFRWRCtsOGhwM2Z1blNTOE5pUnlYclhySTgvYStjLzVibEFtRWVIV1lrZnhYQW1HRzdxL2lsNWFtL0R0elBiNDVOYjB1VVBGSE1Qd1c4elg5RnZVN09Od1lQVGlHRmFXeVhHK054YnVFcjNFRGRmQTR2Mld2Q2ZSOUtXTkkwbVpUSWhEamd3VHA4TDF0OHV1dk5KbXRsUzFtcFpuY3hXVjhCQUd3eUt4R0lVZVg2VE5sRXM2RS9SQnR4MjBjNHh1eEFOSW9MZkZsb21MaHJhaXJMY0hKRjQ4ZWtoeTg4Szl5bHMwcDB3TU85T3NzVkhOSkNRcDdhQlUwWGlPQllvU25MMThvMEl1Rk9adUJqbTF1KytiUkU3WnJDVGtGZ3djNkl0VGlCRmJqZUhKck9IWEY0VUJTR3drNmJDRVg2TVBzRDM3N3l0NVplc3JoSlBGM2JuTHhLU2poMHRsN3VCRjE2V0gvWjVPMERpeEgrbGdBZ2xxTWhWUnlDVmxZWkhQM3FYRENyVkh1STVNUjdnK2NBZnZFRDV5N0dwcFM3NXIwVkpNam1jaGdKRW9TMVRkVjFnNlhDeWtQTHY5MFFtK2IxQldrN0d6V1VONWF1ZWJYbFBNbE8wTzF4Nm1HS1JzUWdIRnNYUDByU1F4Z2o4eTlJb3pWSVUveUswY3lnOENiWm1TMkppaFdUcHZUL05YL0pBV25pUXFuaVFKaXB6VG1VUTVqbFlJOVhDOGlucGR4L2dLZ3h2aWpGdzJFVGtpSWx3Vkg4c2dTaWFtWmVGd0lhdEVsRkpHV2FraTZrWElBY2VnZGY3c2dyMGswNUJLQUxOalVLdHFXU2tnL3BTVFhIRThpWUVLUHNFRXhRRERZWHFPRUxIL3FkTC9tQzBSdjZmM3pRbWJ3UHVHejdEd0J1Kyt2OW5rUkdpV0RPTVNZK1BMNWlFSjlKMDNtNmNVNXBYeWswSmdpQ25Rdjl3TXd1RThGR3JZUTNMZVg0WUhRSTAzZnB1WHZOSG5RT2JSUFM4cVlIUlhpSFh0U1k5Z05PZzJWcVJ1SkxOUHZObFV6TkdYOFF5K0ROQWpISjVIbHQrQllaWHdjMkNLRnlYYWdoaUd1d25WRjdFbk9BNjQ3WHF2WmdJbzE4SHR6OHZDSzRpQ1p1QUhrVEtDRG80aVgxMjdEVWdOblZnRzRlNEdvU3VKQmRHZFNPM0dlSmk5RExwRndjMkx6L1RtRXExS0xvZ2Z3VDNjZ21wNnZJYU9nUnZ4c0FKb3VHUmkyY2J2TkJIUi9KOVRaOHFKemJBZGRNLzdDZ3g3MWsrSjNORW5rdXREblRYaUVTZGZQQnpDOEpkSThCRFJwS1FzMXFoWlZ3ckpFQWY1SHRrdXhoeWo0dzd1WHlvbkkyWTFNWUMybytGWVJhTGppY29WdTMrdTlSVW9aS0s5YTBWVU9peW1jS1JsYW80L1VBOHNqcVdoVW5EY3NLOVFBNVFKR2pNZWZKVEV1VUhPVTR6Y0VLMG9GOWdOSmJLMGI5a1h1WW9ETlIxYmpwTUhRL2xTdWRUZjdMK0lsZ1dnbFc5QjgwSDd4aWlXNzBQRGtsbVI5dmp4aTFlRDlHcFBxWW8xVmxBRVdjcFNtNEMxTCszeWU5cVkxRlU4UkpkTDl4VURLeURZNk5kQVlQSkpHZWlkbUtGemhKK2c4VVlFa3h1R3RGM214Q1dGaVZVWENHLzQzL0c1Q2tkamY2WDY3VXdPOTlYYjBTZjRNYVF1THRRVHlDTm5XODZwbVhiNE84NHhYWkJ2RUY3KzVOcGltaDM0Q2tzUm8vZGhWblJUejMwcldMN0pMU04zOFl5WVhZM1RMK2FMeGRCSGFtcVZWODE0VjdUemtTd2dacUJGZHNJbEhoeUNWRFh1K09CdHdTc3VpOStYa1hZeVlPNTNUdW1YZlVDdXB4eHRIay9Rd1pkTzZ2L21hdTlmdE9jSW1pVXZYUlJFa2kxc0hvcy93Njk2NFlqcnpHRTFpZ0xoQml6QVlNT0VnREZHWnJRU1pRaitOYTdFSFVSaUpaaFNENnBEdURVbDdDSnlZV2RSRFEwMzdBQTVtRStyWUovNkd2N2NzL2NONjBUcGc2STBqQXFZQnVRU0N6alZ2MFRRODJSc0NPbERYcVV5YmlPL0RFb0hJZzlSMUg0MEpMQXlWQ2FlUFovbE96dmJuYUpGTVdjQ0p2SGV0ajh5bFVPa09Bckh4QU5Zd3dXNUlYZWRtWUdrZkpmRE4xeUgzYVFONEJvZU9jQzdHM0k1RzByWCtKQnRSOERwOXhvcjNKdFBjcDlmSm15cEQ1akVnaUdqTnloTHJNMjQ2WHVDV2JySzBTYkljVTF3cUIzN0c2c05YT21aaGhJSE9ZOFhEMGNJRmRVdEN0WXFCMjNhMkxSM01xSjB1Ulk4V1Qvb1JpbTR1VVRnVGtuYjBDK0lWUUtnZjV0S2h2YzUyWlVrcWxtK2xhNkZGb3pOblRpTHc2R1hIYWc2bDZzNk96SnZWTnZaZmx2MnQ2TEhyZnpaU1hTU2J5dmFLWE9nekpiV3M5U3g1NTByZzdKUmhpTGh5K0U4VzZMUXRNOVR1UGtCek42SFR2a3BNcXpGM2wxazJJWFVEUnBKK054MXJYVlFGM0ViRmRzSVpqMndTMWNxUWl4S3R1YlpkZ0owZW5BdXppWmE0SnEzSlY2eDc5NHBIRUI4RWZUbUd0NmpIVWx4VkJKWnJaVGtFbm1rQTlFVldONXI1VTN4WU5ENFk3Q0tYNWQ2bWVZM1VMc2ZNMFhOZlAzTmxtUzZKKzZmUDE2aVdBL1dpZVdaK1pTSGliK0QxbUV2eFdkQkR3SzBhK0Z2cWZpMU5rVlVUdUZYRklRbW85Yk94TEZLOGFDV3l2WEV2ekFPTHI2cmNHQ0xmM1hUSittblhhZjRkeW0vUm5DYitUbEpOcWxkMCtRdTkvcGkra1JBNzBhWEtLQWV4ZXlVMksySTRURG5ZTlJyMzQvSU5PSndVMjZDOTAzTisrSnE4cEJ3QnM4K3pKbmJLdnBhbzZ4UnAyc2swb1loWEVLbUk0cU1RSTErajlaRjlkQXJIM3ltaUkwRVNUaXZkUVJDWWYrRUkwY05QVnRtODEvTnBVT3hPRFkvUGN5bExTUWVHVWhFZHZTUHY5L3UvUXE5aDRzMjlFSld2RlJISEhvbEwreFVlQ2Q5SHI0T2JWUmo0VjZRMDBLdkloOWJUWXB2SkZxa3cxUll1aXRiZkV0L3U5ODltaG52Y0VxNXJlYkFzNEZxQmUyRlFRV2lTNFY4UWNsVjVCSjIvWTBEeUxwTmNoZFVyT1NCYlF2Yy8zbHBBYjVyU25GY0dxQXBseFNOOFY0bEdvbDBLZXVZWVFlZXk0UEo5TW05cWc4MWtwRi9jZTcwZm9xbERERDRoSGJ0VGhiblFEMXBDVFB0d21ITmJ1VFhUQnAzRGYwaUppa1grOVl4bzFUL0NVcHl5cWFIVzNvbWJJYjYrZ1NlQW43YkJycEJzOG1pVDYxTzk2RkZPTmVzUUZhUS9DcFNRRE9VMlpqRm1TWEdkaXVSMlkvREg5RW9tSjVISTZSWFZlejBVTU9zaGtPMkVXZEJFeVd2V3p4OUdtQmVRQWVvVnBRT0d1ZSs4dzQ4cGx5Z3o1RVIzcUQ3anJISDAxbncvcjJGcllnaUp5NWtXK0VxdjZMSnRpekVnOHRwQTdOZHN5dDdmaEV5ZGNZR1RFdmRjbmtFL2xlV01sazJuZENuZUFac1lLVU5WeW9HeVRxWTZjMUw2aVA5Q3VRamhEdmt0V1ZXM0ZaTXJJbC9tbUEzeUVhMXM0QWJjaXFPN0Q0ckRld3U2czRQZ2dxd0h0V3JnVGM0UHh6QlI1Sm41YUNvUEZ5d0hwR05sRDZ5V283QUI0VVVxR3FWTFgrY1cxcTNDV0FUaklsY3E0cGRXclVyK0V2RVE3eEd6YTZsWnJYSkI2c0FjL2ZabWdwQXJvbFFvSzVSbHVrcVZONklPcHZXbzZBNW4xV0F0Z0c0VmRGMGM3Y1l6ckVHNTRZVjBaYmYxcElQeVByZy9NQnNTdDdMT2FmbWJzWnNDV3krWjVSVnVxbHhpRSt6TStHWjRFUG1MRU4yTGUzQUJ1V0RhdEluZEpLbUI1UUpsNGtzL09zSlVudi9FdGVhWmpycUVza0U5VWVlVERGMUhoemhrUTBJeTlCZCsyNVJVNlhlZDZBVlRXbktZUURlL2NqVXJIY1h3cFhhU1FFL1R6aUhQblEyd3dBOUhnMVJ5RnBJYzZuM3BKSStoem5CVVpLWmZMZGlLMXgrVFFXejZnSzl5em1IQWEzekw2MTV4TTRyb1RlNXViVzQ0dU9GcnZoMWZxd0N2a09zQUhLOFF4dkFlM296ZWdZQXJLQWF6Um9qd21PditiSUc4MTQvZGZya2lYVEtUTmd6dXNnN24yZUNSR3BXVkVjOG9oWUhDc2ZrZVJncjBhVFdteVR1VVo5MTNjUEE4NHhwSHR1c3p6TjU4MlFSODV6OXc2d2lhMVcyeVpvdWNTRWY5YTRmdGFJcUNqYjBqa2hkT0FKbm15Z3ErdHBYaGdiYmVyZlluekM5SEUweGpnbnNNNmoyU3Jyemk4ZUt6Y2xxanEwN0w2dGZWakxXU2NCVFRmNE93ck0wcEE2YXM5V2Y5UGZaalJVUHo3ZG1TU3l5bkF1MHhLWndnWFhLL0I3cUJOYXhtajZyVmJXVnkvcUxVT3VUaG5WOXh5ZEJEc09xei96dEtGZFRnaTJOOU9QcjNxMHhmamRPSFVDbC96bnhjK2FSdVpsK3o3M2ZkcUJQanF6YTJkQTNJbmhPYlFTSEUxOXY5dE9ndHlYSXlUTXhZakoxOERUZEZYZTErdXpReFYxeFh3Z3JmMm9lT0c4Nk9GWVZYS2YwSWhDME90MkZiQkZmRUE5TGkzMzVzaVNHaU9Jem90eVJka2tkWjVvVDJ2dVo5TnFwUG85aW5LSDY2Z1JIUjYwTG5OUENFUHlSamFodTlUSTlNaWZ6OUJ1emNtWkJpSmhpZFNOZzQ1QStzUHNMbWRIMWltdThBaUNQN0JlbU05TkdWeTFyM25GU0FiMFBsQUxlL01IeW1GbXB5RWV0ZGlocHBIZFE3M1c1RW9FbzFvQmtJVFJwTWI3TGFXL005K2kzbHJwZzNKOVdSQlBXYU5hTnNJVXIxWWxGcFRQemhuYWpMZzh1dFM5ckJ0emlhaDN4eUE5RUo0RWxpVDlWUzdqRDdKUUNheFJzL1dHQk5ISE9KWGF3QmJXSS9NN05xcUoxWVdQYTNKM1ExS3RwUmROUWxmemEwMG45TTM0cFQxYVV4Y1lVNDZlNjE3bUpuekhVSWxPRFNOM2pUODNaQnZMSWl6WDBSWTBqck9VK0ZNQ0FPY1VEYlI2OGcvL2Nzb050MWg3aDlRanZlMjNvWHhFUmlyTEFqTGhGM01JcDU1TXB3TCtDL1NKdXRlSnkzK1dERUNYS0JIZkZQU1VFL2V4ZWc1djl0Yzdnb3pmNGFzKzFaeDJTbFN4ZVlGZzlvSzBROHZMQmRIOURkVUxwRFNXakZtT2d5eXNpZ2cvK1VaRHdpTHZ4NmRUUmpNZXE1VHNKL2pIWGtyRWdmazJzL3QwVW1JMGN5SkdmWVJRRldtelRLdDlsTFNzVjNMYmZTMTFtVEJQajF2NmJNMzI0UjU2dE1XQkdpZlkyQVliVkQxSCtPNWgvR3VITStweHZjMEVQNGJUN3k1bkg2c3VaZDk2N2dWZWs4aWNrRnFHNHhpa3ZackdQdU1RcDBna1IzcHp4eVNIdktWbXM3M2V1UTZweHY0d0MzQktKOGJzRDhDM2ZZeDFuTEJoNW4wTExYOXFZbGRHQ1BkZ3lrQmFrVzJONVc2ZmZUZ3RsQlRXTjRoNFBoeXNZR2hwVkUyMmt3V2VMaHBQbUx5QnZlOCtZWmVrVFJOSEJlMld2d1U4Tk4wUXhyczM0V3hwNDJCaE5zYU1DcmNMdm5CdlZjTzQ5Y0tLQWZHS0JpeVY2NFBTaDg2b3FqMS8wQ1ovTTlxVk84N0FXWjI3STBvT2E2WlRsQmo0ckN0Q2IyVlpnOWJOK2svZHBjL3VSbmxtYk13OXZET3dBWGJmbmN2QWNXbFZETjI2dTJOL1hHbjFic2lsYVZJSHN4WDNHeTNQOWtrbmNWL0JrdnVDM3RFdUNkZzNsSCsxL295R3JVK1VHWkgvWGszd2luc2hWMGdyQVNkbTRXM0ZBT084S1U2T1RMdWdLdlg2ZGY4Y3BCV3BDVlZjSy9qQllUWVQ0bU5maU12TWhmL21HYmNSeEw4VjRsaHJNRXVXTzZQVnJSN0I1bjFzVWNsa1hyeFBKdE1DSmFUWHBWZFFFclowTnpwa3YxOEIyMEFzSU8vNVNnWUpyRFgzVTZxMjJueHZFSlFCSG42d1Z5Mkdyd3h5NFdmaWNqdGhmRnNHbXpPZVVjSlFIcU1BNU5hVElrNmtqR1FmZ00zSnA4dENSVXJaNEF0MFJadDg3M0liblNPbElkUXVYRWJic1pPVjQzYzdpSUlQYmRqbk1tUi93eXRhdTVjanZhamEzZVlwYmk3RHJGRWkyc0RtT3RJT09jVG9TUzFRNU05Q1F3V0M3QloxMTEzMk54djhrcTBoRmp1UVlBTXRsRWYrSzBiVE1SSy8yamdxdy9kYVVDSVBWa0QwbkpjT0VlR0VDOWtvQ2E2TzlvdUlPMDBkZURCRDFaMDZuUDlYVnBIQVA3VXMzZGc2YzNJTTl3QWg5bVBkdXhOeXZ4YjM5UGl0WjJkSy9rOUU1dmZlUU1EdXlZMkI1SVdKc09JV0tHV0NiM1FBQjAxVEtOemw2UllyL29XS25GZkNHY1dGZ0V2blFyV0pEdGQyNVpNam14SDlFNU5jejlOQnJVdHVERVZVdDcxOU5Uc1RPNGt3M0lxTFRhV0x3QzJOaXlEV0djYzNWYWRISHBtWVpmenZ2bDUxdTFWT1drbm10NDQrT3VGbjVFZnNGNDUxbDRySnhzVVd0YTdiVGdWaytpaXlGckZsSWFTVE1BZkoxZUxPTTJBY0U4VFpTaFdJcGg3S3FuYWRGMFd2RVYzTCtqMk5oLy9hdnFFZmdWd25QUmFDRllHU0JOM0prUmFKZFd6dWUzSTE4V3ZwSHpkQW1LVXBuWkV0L2EvV1l0QU5HRzdSYmhsUzVZMHdKOVl3dVA5NmVHYTlsYzFnZEJQNmVxZUYyRW94bXpxWENhZEpVckk1OWpDTVZNYnJPTDQ2dHBxZUlPdHhmSWVQZUJycWV0OW0yNlJzalE1cWhDMEdYZEJFdk1Db2pqY1VXNERYT292aFRJUGhBKzZoM1BFdGlJRU9aM25rZis2SGVIOWMrbm1ydFk5bkhjVDdTazZwVTFqNUhCeXozT1ZVUFRFczcyNXF2ZysvZkR6TmpuRmxyaG9aM3VnUU1xdzVaOUFRNWp2YTV1cDYxTXZYcVltSTRRTjF4SXg2ZThMWHdSTTdRbHVERXYwQjROdDh6V0pPMDE5Qm1nYlRNZzNuQm5UUDhQQVk0Y2JlOXBhc0l5Wlk0aDlUM0cwZTQvL3dOMkcyQWpCZ1B2UXNWM2Ntb0lLRVMwTE9ISlpqQk83OERrMUJ6VWFqKzFNL3pUdjdtTW5vWDZOTUxKK25lQlhEYzBoQlVmamwzOUE5bDhpOVNNUHRPOUpsMEI4UUxIc29OdGNOaTlReTlRMktCcy9WMDNNNXR4ZXZ2SEIvUlE3Wm1TTkQ5UnJGR2lNTnBqWGVldHkzSW10RSsrc0duNDZsNWVmaDQxS1Z4aHpWaVoya2Ird1M3YUxBbzRnbm1PSXBlMlJJY0t6ZGFKenVRU2Z2NG9VL1hOcGlOOGZSTGNhWFBKUEhpNEpYeiszb1owVjUyYnBnNmtpeGlleHNkRGZnWm9aOHVuU0EySGRGanpraHFUampQOGdnZ3QrbzR6a1d1a3VLRFVNZVNEdlYzT3AwR0s4Z2UxRHIrUFdxM0VqRFhEbk5QUWJmQlZtRzN3STJIM2lTUU42RHFKTVBid1BNTDZOQll5d1A2bHRvNit1UkRzUmxvOGVFKzlyT3BhZVIzYTg1NzlOU3pDOEk5WjQxQ1crZEpoWnRyYmJyRlp3RENXeW5wNmFuU0NrTEVvS1lad29pS1QrOXJOZFpSRFBqY1NPMFdzdVZGY05jeVMrZGwxK3lXdzJLMmUzT1hyVTJLSGlOU28yRUhtTWtWT1VYb2lsdzJ5RWVYN3FVQUU2K3UxcnJ3a1pEK0w0R0I3am92MnFjUUVIelVCd3ZXY3pnbzVqbTg3TVMzWHJuMEszb0hXMWE4eWxqUEpzdEc2MExoeTZud0QzVlB1V2FzYkEzUDJrSDd1T0VLUWxnK29TeUtiWVhza3dpeVVxeHNubHkwQWk4OGY2ZE94OVRYQWx6d3N1MVovU3FjMTkvNFhxNEVROWU0TU9LejBYUGlkZDBIVEJWOGtPNjQ1M1VpcjdTVXY0Q1ZpMDBHZkxRbEhPc3VyWW9lL2FZY3hxRnZlTE1MNERaTHRrUE1haWNpcDVqeGpDaEZzeDhPd25nNlZTRHUwbVNqVEhJTXNzeXoramFnM2g1OTBndDRoRittVzBvcFNmSDJhMytXMXdhWHVYVEtxRXd6Um9xdFJEeFBReGpjV2VlRFQzTzloYkVuTk15TXg1Wm9yN3NNc28zS1p1UnczQnAwb016QjFoMC91OTZoVE9BR1Rla0lHQ1VwNWUwL3EzSnNkVWgyZXE1dEJEbE05cnFLZTBHOW9KalpQVVh3bEVpc2lTWUtyRFhNSFJ2MFR4K1lqWlF5SGYya1RaOTUxK3dBc3RUaFRkZ010T001Q3Z5eEFpa1Urd2htTDdzRWVqVzRpL1dDRGJlZmgybXRUVE1ja0NPNzdsa1ovNEpnRmptWk5iOFozdWtFUHFhUGprL1A2VlZzZmpWRVd4RGlsL0ZCYnV1NlpkWXdBOTUzY1JzWnk2ODJtL2EwWVVVNERVR1RQMEV6ODBrNC9SSDg4dzF6K3VQN290MFJtVG5VMmhocmwwZzcyN3FaWjl5eDU1NzBETzl5aGtndzl3aVNpUUJtSFdGMHBhZkMxVUp0dHhzbzdXMCtYd1Q3dHViYmZINk5tZEZuYWVCRzg3cVlPT0hNci95TGw2VDRVU2FXTit3THhtbEgybU5vY0tNbnYyQkhwcnBqTm5IUFFvTlBwUFp2NkxTVnY2cVlScWk3OE5BRDIyeFRXVVorT0Z4YlllbFU0WVRBMkdlcEwydmNJUitCVDlyemhmSmNwNlZHZkpwZXF2cWFZbVRYOUdXcVNXdDlON3hrZ290NHVxMzhFQWZobEQrM2ZDcnhtblRNaHFoOHViSXBkR2V6U2dzNW9RV2F1ZEJMSTF0a3ZzdnBoMGtWby8rQzJlZUF2NU5FODRaMDR1ZmR0Snh4TmNTZEVNaDJqMzVEY3NPOUc3a3l6NThsMGpKUHQxTXdIWkJZY0lkRE5hSDlTYVBjNjFtY3lYcDBTOHZkRXVZUmY4V095ay8za2ZZKzdWS2FnQ2ZmSTBZK3B4N2RIaTJVd1JQVzJpQS9zcTBJSng5OW16MDdrazdXNk1wUTBralBGMUJOTTY5Rk9HWEVqT1VpVUhRWlFNT0FmSU1tejF0VHA2STdzeEh5TUlkeFN2Tm8wNWFOV3JBVjA5ZTgrL0diSnhXcFE5Ri9YeVl4ajFwUTdVb0EwMWFvaDFISUlHQnlPSlU2ajNxZlpmeFBzclFmMFIyNE1JdDVSNVl3VjZHZEl5d1JtSXM5ZUhhR21IbXdhaGNhM09lcnpPYjlxR0V3Q0VHcVlmcmxPRnJUTmIwQmt2VThjU1p0V2RXV0kzcnJvVlRKY3NpcFZNbndZbFd6eGxtd29IVEFrY085ajBROTFKN29IdHQreDRHWGM4UEN1WTBsOWhGRU5mUGFmK3lKMTErY1k1NTFWMVpRbHZaSytKN20xaHplYmtGeW9yZFE1N1ByS01TTGxuanN0OHN1RG01Znp4RnRCUFg2ZURXNStRcGxmcWZ1MkxLdmNGZnp5bFFMb2plNE1nTjYwY2Q2MG9KcTE1RVdNdmNad0p3dFpFREV2cFQzWmNSZDJqQ0xOdEVic2hQYStPS2dYOUdiL0RQcmRObWdnTUxNUEhvZmxxRGw0Y1BLR3RUcFZlTWU3VjV2a21HenNhLzJ3eWJvNHRZbjBKdHdoRHhHNDVKSkVGd3ZoT0dGMTNvdVdSNTFuRkVzTTJNYS9LMVBVWEsvUVdrSE9pZkhaaGpUc1laZExJdnMzUmRVQzE0WHlIc2JnOU0xWCtVNEhlcWpEa1E3TWVaTTZ5eUc4NWpwbC92UjIvaHgvaGFrOVJMSXpCSFVaZnh4dVZZdmtqNkNGWXROQ1YwVko5cFYzcWRBZkxrZmpIakdqUEh5N0s5eGhQVGNoeUxJcU1lbk9sVzBzd2RKU2lESEN4NFJub2g1REphUWJyVGpKcTlvS0w0cmNBaStDWnRlOXZhK05iUFdIZDBCM1VXVW1qNG9CYmFGeWdaRGU5Yko3YkFTOFB3NU1oYXcrbDA3T3RFYWMvaWN6VUp6ZkZ1NEoyNTh1UUJQZ3Z3Nyt6bzNRTXJvU05EQm1OM00vdmJVQ01uOFF5OVBqTlFCSGRSbFVPdUdsM1psTnRmQVgzMGo3QTJvT1hLOEV5MlJ5Tm9xZDczUW1jSkh3K2dXK0RmZXpwR2hENWJPa21DM3ZVcXB5N2pWazdJanVjamllU0hEbVlqZjFJK2hvNnZ4bjVPaDdrbkhjcmkyR3pFdjA0UGd4UUMvRzVqbmMzYkUvSGJGNHB1dDlLVG1IY1BiSGpHRGlRNTFUeTNEcXlzUWpHZzNQZzgrWms2Y0ZmZ1pSa01hMjAxUGJKc09kVWUyWmJMZzZIcXFSMlQyYWVWVDg5N2lYNjZLVUFneHk1OWVwbkFmSVBQUFZycStNUTdZRlhYSlIzZVB5ZXBzR25mSCtPc29adWNUOU1jTnVGWENuV3JQUG5CTk80N3V6UXozSkQ5blluSjlENzA3NHd4Y2VWNW5YbWVCZDAwanVDd1M2bEF2ek9IZmxReTRmRVBkdkZ5cnhyMUVhbjZBOGlPOFovVldYTnVHUXFoOXM5MW5DcEhxMlNjbmlDa1k5QnBTUVB6eGsvQ1pnRWt2eURjQVowazJlUHFFTGxEVi83RC95OEU4NnY0S1dPdWhmUlpqUHlZdlNiOXRGK3FpaTk4TmJZWHl5a2Vic1hvZmZra2pSTkFzVTB1SXFzL2hXSVhhRWx2MVlSYmpJV0JXc2xhYnBsUC9qMTc1NlJGNzdRYTZFV2NrbmhBVmpuMGVTditYOXdsc0NJS21WU1JrRjB6NWcyd2UweHBhSHMxdzBxaFl4ZXpGNitPc2JxQ1l1dm94Z1dpem0yMVFnWVo1bWdMR0doYXNIa0w3cng5RVZlZnlUYzdnaC9QMldaRE1VMm42bkprendhcnNYK2lhUjVuampCaThDTzFKQTd0dlJEM1NmVDN3TFhPZWp6ckk5THJ0YllnRUtVOUtyQUdldmNtaDEwZWg5UHNSMTNxcVhwRnlJaGRHMVVBVi9Bajl4QU9SZUlNVjNvSzJVbDh0K3FBbllLWis5VkFiYVphUkxMSXBveDMwVkNRVmRQQTJrSHNDSW9PYmFRYjZCTnQ1ZFZjVDcyelBhcGRQbjFLdWZuQ2ZqTGVkbG9uRWF6MkVoanFmVXRTdG1XN1JmVDJSenNPbXFCS1MwM0FaTitObHN5bDJacU5jV2xpSHVnTFpHMFJ0Qjk0NzE3emZhb2JjcXo5aTJvNWkxanpnU2VDMlFkL2dkbHRmVXRveU9iNGNqblluMGtab3hWeUZaNDZ2WTZKZ2M5andTQU4vWUUyRlFLdy9obGc3aGpMVmkzc1N6dU1aeUFWZWhMQlAwUGErN3FCaUdXVzIwcUZTWGFJbUczWnhRYnR2Mm00YUxmaVNQSDJhSlV5RUZxRHVWVFlGbDJlQjdCU3J1NGdNNkFoWFppVHJWMzNBbm9lRUFCaTJwVURlSW5OS3FRYWVkcDU5TW5seHJsakphTHg4L054a1M1eGhqWFB1ek1uR1Jzd1VJenVWbHR2bnV0cEhIY01KTVpHNjhVYW84NE84anVPditzSnVOMHl5bUhJalA3Q1ZmbnVNcURnVmJHWGJPRFhqUjgyRVJ5NHhyNG9MWTJ6bEFoZEEzckxnbkQzRlZEcVRYbldacjljbDh4bHZvZ2g1aDNNWnJDMjc4UUk3TjhQZlBiKzVmZUpzZ002aVdZRTNGYWpYSFJrL0tyR3Q4TmV0cWRXbXdVRlNQaFFzUmlNOHpXeUpzc2V0WGVPRzhRcHNRWGttRnp2cUFNaEtTN3lMZno3OEhyemVpbmUycFFsKzBydm5YdnVCQzcwdEJySUdObysxQ2NNcnZQbE1pNzNOZ0hSWVZ2ZFk2UTV6UGtyV2N3TXgvb0J0d2xGZHpCcHRkVUFVVVAvQUZXZTJ0U3duc1BVWTZ1bW1NNWdaOSswSldRVmo1TENyRjNicGcyOFc5S1ZWMFJkaUJublNTSXBoKzZJUTBXQmRaQVBwbDVhQ0wxRUFaKzduOFkwM243eEpKQm5id05PUElXOGhwQ3ZVV01LalNVcDN1bHEwSzBpMmM3SzdLMFoyYjlFdGhjVkIzR3VQTllMYUsvejZySmUyVnNlVlhvMUJ1ZDRXVlkzRHVackV0MlF5UUdNZDdMTjUzQ012alNDZkt2WkZiSWl6ZWs5SkFUU0tjckdjUUxmKzc1RllaNzVVblFlSzNoNmw4UkJxck11NzNIaENuMFhqVDdxVGFyWVJUUWg5cjYySjQ2MU8wdVhPeG1uZGlyT09Ya1FTMUpucE1qWURtVStZcUJiZm11OVlYVkRiRFB2ZWZBVmNiVmsrOTFkeGU5TWw2ODhLbVE5dGJ0akQ1M204ci94TWhUV0Z3dDU4TWtzdDhWaFg3Und3M2I1Z3JkM2Q5TTF6YUY0OW8yV3pkM1lSOTlxSFBEd3B1b3VRbGtTS3VyVzFIMGR5WHA4UjlYSkhONUdOcUtjamdGd0Y0WWltWlFwYzk3WDhwL3pmSGxxUmM4RGpDeG1HbFRBRm9KcU1heEZYSTVLMXJGekVISlFybGpiRzl6Rmp4KzljUTV4OFJkK1BoZEFUSE9QVUpnVkVsVTdQVjJDZXlBKzVRZ3k1T3dYQ3ZIbzBhb3BnR1pRR1YvQUc3VEZvY3hneU9ERzhoejRrVTI2UU4zNDRjS1FiU2tjVnNIb2RxM21PY085Tjh1ZjRKUDdBQnFUcXdlZTh0UllrSDJIMGlIRWRLMGhGM2xGNnNTR1pHSDVzUzJ5WVhFcGtaVzRybE0zNWoyTUwzSXNNTHVPQzFvUTUvdzR4VDVGUnhRcHhlRzZ4NkR4UzFoVjZ1L1BSaWtwRDZRaklucE9iTlgzNFhtVzRzdzNYa25uWTgzMHBnYWlLVjltM2FET2ozNVdJVXd3ZTRlZ2p2UmJYVFdERGRjWGNtTXIza092VVJUczZnRzhXNGg2U2ZZclAyanB4aXlUMEUybGFyamlwV04yekpmYnBqdW13SVM0K0M1VXdaa0hrZmVUYjl0NFY4VWRVNjZobVlSdisvRktGTmY0OGFVUnRCV292TDRlRkh6dGFIWm44REhyWHcwV2ZJbjMyaVRaRXBnalg3TkNtbElJdnRvMXRoT1BSeStKcWo5UUttWTc4VmZ4OVZEOWRtNFQvbGlvZlR6Z1g5V241RG0zdDVkYWlOMVIzU2srQ2ZuYmlObFhTcmk0aXJGeUsreWZzSlhjclg2OE9lVmxjVDkrejdQd0VKY2h5VXRNVFFZNllQNjY4TDlSR2ovcWltY2JpUlIzOGIxNERoU2VNRFFaRWpKcFBsMUUrQzdlZVM5eVhqRWh4MWdCd0VpU1NwOTNOcEhpSE1ZMHdIYlVXOGN1NHlSVHFsbEl1TTRXdlN1T1lRbW5DTXhKdFBGWWsvdnJDakVJcDVBOU1wTFR1MGhEcE1ZaXdOWFNGbHFMYko2WTRaUWxhMGg3ZUh4MXlWaTJ2d2gvT1MwLzUyMmplS2xFbkRRcS9GM3YwRlVMbWRKNWFSVDd3c0pUWU1uWjV3Q3FSb2pYa1BYbTMrYTQrZjNJdmQyUnkzUGFFK1dEeFJMOXNncEIrUXpzQlNQdG5yV2R5Y3BJcDFMZkhjdDV4ZlArNjVQK1NYc21nMFFkQjY3dmM3Y2dxYnQ1OEYzNGZCbkdwQXNJeFBTOHNPOFZhbER1UFVaa2x2T21nNHNYYjQyS21tOE0vR1RMNXNiMlpVbDBiazdjUUNWUGJkYXlRMzFyZ0FMZmxqZEZlZ2Z4Q1hpRDdpbElMcUsvYXRoMk85UC9BbGxNeVJDeE5NQ0tRc2UrR2RJV1hzYThjZUdLYWRzMWplMm1KVzYzRjA3U0l5ZEFMMzhibmc5MEVoR1RJTjdVRGN6cFJOaWx2c2ZneURxZm01R3VYNUNaRVBBUW96dzZLRE5VV1FOVzZtSmM5c2ZUMGErNTVGSkM1SlNCaVQ1Qkx2QStqWC95T0RPamVJcG0yU0FaOFhIZHRKcGI4R2xDRlZIZGhQRThsMkl1TW0wRjJIYWkrK0k2RjhIdVY5bGE1cWkwdVJocVQraG5DaExiayswcUpFbnBUS0JoV3cyaE5XK2w4MlBzQTNUUTN6SXJ0N0ZmWUdsQWx5WEJ2OXU2Mm0rRkgzd3ptQjY5aUl0d05sOWFEOWNoY1MwRTFYSzZYVjgrUDlHOHVsRi9WeFlwMGc1Z21DUzloblcrS2dCUHpuTHpFcWFmandUWmxzVHBXU25xdzNpN2NhcHhvSnN1Ykx2UkZXK2h4WkNPbmtLb2xOSlA3ZkxvdUFmc1RjSkNoSzJTMnNBZnhaQWIwbHlGTXZCdlBDRThWSG9NVXVXQ2NObi9HUVZ2cHh6ZzRaK2EwTi9RYURFUFpheHlxTzg4NjB4WFFMTmZwZDF6THFLWDhtTnVQYkRKeW9BczNGSFlzZDErdzVrbHlzSDBiaHEvbStlQjExY1lhUWFiblROM053Tll2OEV1eFRTS2FTdHRnVENyejBwWDF3NDZ4amxLcFp4dlpOdmRrWDl1aUxvaWQvcU9SOWdIc3FoWTJNVXNwSWJORzdFWnY3Q3BVTTQzdFh0MTAwKzVpSFpMTDZlY2czV2t5bUVjMXJIM1V5SXcyY2FZY0J4d2VjLzVXT2VkQ3JMYVpGZStsdE5CblBFVXMzUXpPdlZsU3RZSXFONTQ3c1pYS0FBUWJRUGE4V0dwSXhpUVprZWlBNWlFQzQ3MnBFOGs1RDh6TWV1NUZSMzkwQUM1OW5xTjBwRGtUTHFzT3p1dG0xYlhRY3RxeVA3ZmROMzZ4TkNPZ284blpLNGFlTGtMcmp6cFVKK0JibzIrY2srY2dqQ2FZNmlTcEM1WHNCTElseXQwTFlydzVOa083ZkFUSmVuSXBEMklIdjN0RkRucU90M2ZzUGhsSytNRlBLbTcwRWM4WHdmSFhpUUFoVjFOcVBhUTNVTkk4RWFabmp1Yk5qeUJGcFh6eVhKTWNYelBkN2ovRlZNNC9mSTh5RzBoV2lUc3lqQk5rTnBIRmdiRVFKWUVoU1ZiNUlRcmxnYWwveVJPeE5INFhoditPY0s0T0Q5VWM4U044R0JoS0hCbktaWkdLMGxDZ1RyZkw0eWIvcENuZmVQc3FjeHREbTk0TjRZTnY1c3M3bSsxNjljcDFPaTJOaDhuc2RGV254UVdsQS9qdGxlcVo2MFJyQUtFYnhaa3JaR29ldFU1akQvMVJ6K2JCcFJidGJjbHhybmpvK0dtOWx6UXk2NmtCd2FPZExsV3RJL05RUCtlMFA5c3JVeFZhdEhaVmsyZHBRYXBXN1FYZGM5K2lVNDdtVVhSMHhnbjAwV2k1bHZLQ1prbm5EZG16RWNjTkQrUmxuVGlPcm5xYk9qck1TeVppQmRvYWJmNVNrRmRNQTNmTnVCN1N2bEVzYmIyU01FWlBQVWkzTzVaeDNHRzgvdlJRUkVNa0xhbWJXcVV6eE9mampPRW92M012VlhkcmxoSHJjQmlkWGdsLzNLdXpNeitUdklDOFFsZFVnemRSaHE1QVFiYXJrcnlFbk82eFlHeEZyU2kxVytUTngvOWh0c2VWUUdVU2JZL0xjbytyWFdlVlV3bFppK0sxRk1BOW5HdFNXZUhNTUh3b09Jblh2YU4xcXRTWHdzQzdJb05YYStlSStvbzQ3QmlCc24vamVMSXZCaSthTS94ZUdETmdXRk4wbFRGNGsvRmdobEszOTJSWmJKeGM4V0pQODVZNlJ2dzZLWHVmdGp5N2ZDblFpYmNpL01FUitRd2JudWVneTU4am9tZlJCZUxaMFpaczBReWVYdFE5bkp3WDl1dUx0d3BFSkFlK3gxbHB1TzZtMk9xOEE2M09MWElJWkpGUTFkTGRUeVVqeC9BWEtwT1cvaXZabWVXYTMxMkl2VTRXdzlkakh6cEZ0Z1JKcmQwSFcvekM2dW4rTG5Da2x0cTN1cGloVmpPSlFYVURzN1BEaDlObHV1eThEVCtPWjZWMlZBYnc4b2E1SS9JWTladDNDYThVNFM4ZXMrZ2JIdDNYNm5QMkQ4K09XNjdhZXg2VE9yYXJ5cEdpTHErNFQ1emx0NGVydVdpT1Q2NXR6bGZkcWh1ZWRZRzlqb0hYSnhQZnVaNnJEdGpmVjNIYmFiOXlHcUtHV20yNTZaaDh5QmJ3aDc5bXIrUWpPR0NXbGNoOHRVcDB4ZlFSU2dLYTFXdTJmckl1Z045Qkd5RXM2VlpTUGZicExDWlZTclZHT01QSUdSdEt2K3FlQmI2ZzYvUHFGM3V1NHQ2MVdNVzhjbVpVU290c1V4aDgwRHhVUnJDQ1BVRWE0RUxicU02TTNLQ3RDcklTdEdvNFhxUG9KeDdweC93RTJnSFVnbWlEVzBCZnNyRFU4VWlTVmlpLzFyMlV4MFFOWWo5WlBWczFqemVpbmRWQW5pTVM0Zkh0Tlp2dmRRRERzcUpsZ2xURFRJbFJtR2tsSmJWdUc2MWFkTWR1K2p2bzV0ME5VcmloZUxyNVpXV1YyQVdDMm1nTFVYYkk1RlpDMnlTYnh6UUE5UEZ1YzJSSDFNbHVzQnhPMkdmMXNST09UYkU0RjJaTmVlREF0Y0N5Ujd6WTBFeXlLbUQxNzVpWnNQd2UxcldkQ1N1VWFveUhUZ2tDUEZUZk05ekFWN2duZTV4VGZTTUU5OHZZOXRUQmw3VFNRczR5Um5DQmsvQlJsUDBZWTZIaW9jTUZvRVBCMC9CaDdzSG5jc0hONGVvajd6bncrOFRSS3Q3S3pyMnZtVk9CMWdMQTZIRWl3WFFEUEdheDdrRUxldmxyNFJOLzN1aUhDdUNXZ2g3cWY3dUdyT0VaYUIvRmtIYjdFZUZlL3NCMWpmUThlTDFTQWpwa0s2bUtjZGVRcWxVQlBkVjdRNWQ3cy9lQ1ZmcjlBdWpSU09BOHgzK09mM0xHc0xKdGVkWWhGdllINEJKRzE3SVE2YmZPc0pjZWRPMHhkRG16TFpnbnhsV1F0K0kxdDExWjNMTDBQdnBXaVhOSzNBZ3hpSDBYVTZRYkRubFhkZG53VytpRFdLKzYyVDMzWEl2UGp5MENHRm5XZVNmbWNaZDlDU2ZCVHU5WklGR2VTUlJMekZJWVk4d3JpdkgxYWJmdDZPR21lOWE5c0xNSUlOUkQ3TW81VkNZa3ZhbTFnRU12KzJ1V2ExZzlITzd5eHVXQm1ZQ1U1N2Mrc1JkUDZRSE5BbGpxNHl0UXZ1L2dPeDJZdTVzN0dIZlFxbmRxQXoxd05wOEIyay9iZStSTnZxbGFYMXJZZHlPdFd6M29GME05b1dZTXNoK2dxWXFmbUkxaWRqSytRT2hDWWprTWVrWTVYc1dScHVkeURPdXpucC9FV09JMHVxcU83YW5VcmVBbEU0c0xJdzR3dDN3eWxTaldSdEZDZkJZUjJkWkdQRmkvMTNvekp6MkM4cnY4V05IR1c4Z01MNFBjQ015NVpydDl3QjlBS3NOOFlxaDg4U3JQTEgzZzdySVhoTnpSakdZQXVVdlp1TWxlR3prTC9HKy9Xekl2MzlJbnpRUEltT0lmTEtDa01MZXVvT1h4Qmp5eklHTnkvTVUrTlNlRFduMnQ5WC83bUtyRDVWYXo3bjVld05uQVFnbTlaZjMwWkNRS2hPenAxeHZHZHNNUFRQRVZDV05uV1hsYnl2eHgvbnM0azU5M0hHTjhEV25Pc0c0WjBnVDc5b1V1YzNyRGw5T1I0OUdBNVF0R2lhdVJMM2RMVkxlQktDdGhTNmhVVTVBY0hNYVhkdStRb0R0djNQRUVqb3hnK3ZlR0tUNjNhcnR2dU52QkRlSzlYRzduVDB0YzEwemQzQWlCS1Fua0Z2dHpkck5hMlRlanA1b1g1cXNybU5hUUhrVUQrVHN4K2lpb3gvbnlnRWtIK0Erb1V2U0MyaEtuc1d2YmFyVGo3NVJtRTg3Q2VHNFpOTXZ0ZFlmRlk2TlhDai9kMXlKUlhzdVV1WDVzUTlNSVlRaCtNR3NqelM2dnFoZFk4Z1NBOXpKWU02OFY2Zk1wQ2RCZFlQVzN4NmxvT1dnMExkYjYxazB2S2JKT01BYkowUGRNcXFmaVNVUDc0TElxTEMvVlR2ZmhMNzBaMHRSUXZLMG9BajErVjEvWTd4cDhmZU1YLy9xQ3ZVTHdCMXlIbll5a1IxbU9iTWxTa1IyNFZiUG1UWDFnc0tKNzNPUWNERGJwcjBJYUdFVzVZRHBlWXRJL0JiNWNJdDlCRGk5NU1jRG1UMmxUbm9wdlZzZmdjRmpudVFpbXM4cS83bnVSZjRRbXZNcXp4WTcxMkhwUFFlU1l4QUtkL3V5SmV0N2I0QlJhSjJUTzFyK20yQk5ueFh4Snd0aVZBYlBzbzlrNVl0MnJZWGxmZzYrR3VjbTdXVHNvdE5jblVnY2ZqN3dtQlVHNFFyVnp4TG94d2JVVWFtVWREQm0yUlBwa3FyNkxjZHpFS0g3ekRaNi9nSE04d3loOE1YcitVbjlQR0YrRU1iN05tYU1qOTBvV0FDc0ZTV2xFME12VU1qUFhDaHhHZ3VZU3dSNFRKZXBoSk9vYzQyL00wT3Fkc2g1TXNiYXdobGdPZnA1MXMzWlE3TEw2ZnNhZmhyQmxqTCszQ1d4alE5UTlhZlIzb1dONDNXWGtpeHo5VzgyQnN0RWx4aDNhRlpvUDAyTU83WWRzbjU2Mjc1RnpLdGJNVDZiTnE5U1NuTkRYMHpCOW5qdnUxaTAzM2RVSDVMT3BKTEtYNXY2elFyNEFzMkF5dS9BNmwwT0o3cXByenQ5ZjUraXZaamxYV2FjdmFWNnFUbDR6TVE5UjNhd2Z3K29GZ2tObUpQY3Z6d0NlSzd3ZnczTU5saC91UFd3SDdyNWlIbUErNys1ZitnRlZ3eThKT1UvYkx2TjNuMVVFTTI5VCtNdHVXem00dDUxZjdhelpUMWNNVzY3dGZZZkRkNS9qQ2RsUEpUK045ejl3QmRyaElzM2V3UC84Nm9iYm9rdmNtbU5hK3doNmtXNnQ5SjZ0OWo4V1lHUWd4c1I0MTlFZWRsQVBtWG5YWHhrMytrM0xmcmVTbVZDcmVBMVhIZFMrU01Ka1VNQXZVL0tDQitvQ0R0enJGTEpsUmJzaW1YbkY0SE5HbmtEWmZpcldMcEZIWEpNTWQ0MkNQR0ZzKy9aMldYMHNsUTc0aVdZaFk3NDgwRE5QZmp2V25DRzR2NUlNdFkxYkM4c3RmUVB2Slp6OU52eVQ0MmVXMDlUd1F6TXZoa05YRU1HeWhiYlptY0ErcDBoM1FTOVlRVFU0MW0vQkdtZXI5V1hLdmFaUGFHdm1haW5DYWt1L3JTMVBmNG5jbkRud3g2L3lZbHpwQmszMGh2emsvbkIrbkVlcGxRU05yTDZBSmZjKzE0RlhNTGhnR2JodVM5eFFIaU8rYTVEaFZnYjBweTFqbGlVYmZiSUtTQ3FRbFphUUx2OXJObm53NlNmQlRpaUVua0YwUGMvZW1tQllmT2tDQ01mdnRYNXVoWDNkbXc2NHJURFlKTFpSRFAxcWhOdHl2VnFobmhpUFByM3hQM29RTkVGcEdiSmJWT2VZMk81TUZldmtHbzM1US9aWFNBS2J3OWh4V1JFSXV5bHVsbzlkaXEvRUJ6Z0RoUGM1dmliRWxhTDJkOTFxSHErbCtMbXd2eUJ1RWlqMEZ0UlB0dlMyajUvTnZ1OURLdUdtaGpocEJMcmhNZGlxeCtCdkQ3alZoRldtM0xqdkVrNzFYYzFqbjEveGV3MTc1OTJrM2YvU3p5RDFXWWV1dVRlS01ZVFdya3hiZFhzUXZjNys1TGpDdjNHdjhvQjQ2L0E0UnpxdUU5SXZ2WEczQXQ5dldPM2p6NVQ2bnBCWWRrNnVEdFlla0Rkc1Z0SFFoeDBMbGF3bDJvQTlZVWt0UmdNbnE0Z0hMVHQzR3ZDd0J0b25rWnhGUFpMdTcraFQrMzNSNEFvUHBndHJaSitjbXZ1eXpnZjZpWFhrWFg3VXZyQkZXOWgrNEVmdng0N21OYXY1OTdOZThpV3U4KzNaSWYwY0JGUWZFamZFamZCNzEyQnN0TjhsOHRxSDVUdHQ1K2xMRGo2ZVovb2kxamlWdzQyd2FobWFZaFpHV3A2V2VrMnc5Rk9XRDJuVlZqakZNTFkwYzVoYVVra3FWZTd2ZDB1VUxocVc2RjlsVGVsMFhJL0FuaThyVXUvbFJsZlhsdEU0eGkzTmo2alhCbFdiTDdGTDJlL0FCeDBkenJtM0JtZjhLcUJJMEw3VkNMVDlubHNybklQdkRHZWJxRXN6OWhmVy9FYVBaWFVIWUQxTGorQkRybmcyL1YwMUk5NlR3OTdsVEp1aGpEcExtbm5XSms4QWhmUHVadDRCNVpTUGRsejU0OHpudEx4M2JuRmVvOWlaL2NNRzU1ZHpiVjZvcEJsR21ieGRyRmc1SkNQQ1Q0bTN4LzIzNDFudlNtM0wwZ25mamljbHV1Y3AzWEt0MFd4VG85RXRRYjAzSmhmb2p4S1Z5RzFBTDJBeVpBZDkrRWl2M1kveG1yVi9yMk0yMVVnVDcvdCtsTk8rMEh3VDJiMFQ0WlQ4ZnNkWjN1Lzh5TGFYSDBZMjU2VTRCNWZYWGt1UVg0TTU3Mld5MGM4Y2N0NERtWUJnT1J0Q1BWb3ZqZjNDc1RiQUJ5b2I2MEV4akRtM3A2ck5XbThER2R0UjhTOXBUZnJqcDJsckdLV0pZQ3JQeEdOMWhEdnlHYXhYWENyRkxRT2Z3Mi8zTkNmcndkMlEzaUR0ZUsrY1RuajNMQ2RJc3lONU1RSjRKajdGRkZmMXdQVEFwU002UENzUWp5QklHVUdaN0EwRVBHWjE0MHFWMklzQm9QbzQ5QVNYKyt3dENCd095Y1dWYTdoSFJ5b0FtdkdnK2NyRUkyQ0FxbmlEZHZwZGtRYnBsQ0pnT3NFMGpEbWlpRU10WFdRK2syaEtFSUFxdmtBODVRVTRrbUJTUytlWW4wd3VGa2pYbUo5TU5BMW1YaWhLSTUxU0Jrd25GK3VtVTh4TEo1dkdNeU1WcGVGUHVRRk9Dem1rMHUzbkk1Tk1JNWtMaWpCSXBzUUI3L09Sc2FhdHpBT0ZaVW1tcGN4Q2hSalVVL2dBaThLeTVHTEpkRWtBbUNRVGYvb1B3S3VVRXEwTUgrQlZVb2swU2k1ZEVTQlorSnRJeGhiZ0liR2dsRzRJQ0MvOFRTRGpDdmhSUkJGYm5NR3NVL1NiVU1ZTWNGczBsbENjd053MjcxYjBtMXdHSE9CUU9KWk1LcFgrT04rWVFLcVVEZzJZTDVKSUdDYVNLV2VtbUNlV1NpQ1d5V2VHbkc4dENrc2hsY1ZNWWE2Ykh4Ukhvb2xTd2d4aGRnSGtGNFlsa2dwaVpqRHZ6Z2RLR0NVTkUwWnBZQ1l3cHpPWE00Y3phMk9hb3VNbUZxdWtHODIvRTA3TnpHTW5IWkVCZkJLUHdBSGRLVWRjZ082a0k3NTVMNktwNVhuc3VDTXFRSGZpVVMzelYvSVJGQUJXNG80T3dKdHl4QVQ0cEpncW1mY2luT0lyZkZGUGp5bDhrVStISzNUWFMzOHE1Q0NmNnBqdkpKb0NBbXdsSDlFQXRoS1BZQUNQVW5mdHpHK0Y3akxwYWtYdUl1bGQ4NTNVVTl0RjdoTHBhRVh1QXVrODg5eDBVNDd6M0ZSVFRQUGNORk5LODl3VVUzK08zckZIOWdEY2hDTUZnSXZFWFNnem5OUUM0WlFzQURmZU5JUjV2V2lWVklZL3ZXcmVLdTVJQUlBYmUrUUR1RXdvMWtqM0xHb1RTNSthMzZDWjBwbTNpamN0WUhhVmRBeGhicEZxRUVqdmtYRE1ZRzZSZEl4Z1pwTnlUR0ErSzJwVFNNY3FiTk5OUHl2VUlKdHFtcTlNT3NJRVZDY2ZVUUtxRTAyam1OWEVIZHVZVXlRY3k1aFR4QjNybU5Fa0dqUXgyODUzSFZZSER1dERKa3pnVWlad2FWTjR0R2s5VzdVZjdmNXZCRmhGY1dkNHRNdDgydFcrcmRwZmRtMmZ1dzRmQTRldklSTVBjQ24vRHdyK0ZmakNybTF0MTZGcDROQWlaT0lYYkVvRkRxMGFsM2ExeXgvQnRjOTZJRUJCRlZSUmlsdWRDVnhSSnpZSnVSMC9kZzJwM2w5d1FtSWFybENVUDFuQm5HTE1uVmhLSEJWY2NSei9HRXp4VlFBMUxsT29QbmFhSmxjZVNZSUlKeE5QL0RkVW1oaGppakdzU0pyTVBEOGpWZXdHSG1PQ01kaVlVenlBV0FsazdEQzJnVUpaampISW1IR01PRDZNR0VsOFdLbWQ4MGVXQ0dPME1mVVlldndjY1lHNGFQeXpoR2dzTkJtR3FLSVVZNkl4eEpoK3ZBQXhDL0V2WWhXL1FrbHhrckZlZmtVVTQyOFNJdmhsbVBOOHNjb2dGR1MveGVaVHBwTVVPUEVrS0lxb0NINEx6V2NZUGhMK2xoaUxrQWdYOTRoMUlxTW9uUHdoM3E1QXF5UFJIdXRVUEhrcmNVdXVReGF2alVnbklSWVBTOHhCdkpyb2pDcmhPZDZBSTBFcUFXYVNKUnN2K3B1YnVJeVlnbmlNV0lJNHpHK3dML1k3b2l1K1BRUnhObkUwYkx1NDRXOTlhQW5tc0lScER2RnpKL3B3NG5oaS8rbFY4WDZKL3BQTXBFRkJRMWhpNktCVVlNZ20rQ2pob29BZlFleVFDMEhnRXBvUDVPL29RVDRFTDJrSDVGbHZZWUo4OGUvOHR6eGpya0JQRUtNdFFFOTJvNzdrOXpCank4UmlKeHRxeUsveEIvUmpQYjgzMEloRFRuWjZ4SG5KWGlJUGNwQVBsWDU0QytiNXlwOFl4Y2VJOHhZNjRzVjJ5b0Z2RTNHSTM5S09jU0VmZmd2YUluV25ndWY3Y1d1SzcwTjhBQlAvNFhUdEhPOU5YQlBYS2FtZ1M3QXFCYTVIK3NJMUprVk1wNWlJSnY0NDIzY3NrVTNrbm55QUVWOUNjYVNFN0JGdnpEYUc1SFJwSHo5eXNsTkEzQ0dPUytDZVdoaGtlRms0SzBUTUpkNmNZQVUxbUNRSTdOZHFIMXRGckNXT1Mreis4OEFuL2swOFhlSVNadENnOCtoSm5qWkQ0ckxZMFRYT2luQlYzSUZzREllNEpjRUsvd1hMeEFYcjBJRnFqTWJwMGpRK1Ezd3BZVU1jMGlaMzlvRjRPYTZ5d0hGWmtkWlNvanJQVVMxQlc4U0JaQXd6bm9yODZCQzVQZkpBTVY1S25KYTBqWHduL2JzR2pwMU1jQ1ZoRy8xTytnOE5DUWVCM3NPUVNvaFdldlM3UXlBMTE5RVg0Z255RjBWSlY5eXgrSjhWdVBXcDhUbFM5YUVIMlBGQnhGRGk2ZVJub3BLOE9jYTZ2U3lnakNtTUdVSU1aZ25Nc1pPRWFSS01BZk15WkdtaWFxeEo4VGt5aW5JTUpiSFNwR25DakhIR3dHTnVsRTQ0T3FzYXhQdWxzMFlVWnd6M29nVVNvbk9IMFlWc3QwcTBST0xCQ2RCRVpUQ0RyL2hDSUhWN09NSGZEVVh1Y0xGRHUrQVp5ZUhYSVJXRkZNb2x5b0hyMU5HdUpYL0FFR1B3ZzFNQjF4MEx2WUliMGdVbmdodW1DTDJDR3FyeHY0TGxVK0diRVBQR0s4Ykg4ek1mdVc2RkNIYUJURFBFNmhMemdNak9NWWRMaEFOUEE4WGlBaDJiaXovOWRLUXVqSjFHaVhXQ1luY2swS0V3VGZtcGhGenAyRXZ4YXNvcmdVdHlKWHdWSzdWWE5Na1o3NVE3NlNCZUwxRXZ2Z2FlbVorOEZtZXNtSTJSYU1acGtpemE1aWF1U0tIelE0SlJBbEdDVUVLd1Z3SGNIaHg3bitBR2FPUzdPSFpZQkhFeWNUQnhPaUk3aFY4QTdKcEV2amloQkNGNWNaUmg4RUlmUFNKVldOQ2dOSU1Nc2xKQkFHV1lZTDlFS3AxNXpqbEM0MXFKVy9UcUdVOVA3eGQwdEgrTzNia1k5aHVRRjF3M3lQYmVzMjh2Ry9zVFM3OVlyOXFPbEIzNnlCZE1kMitiRU1RWGxCY3NMOGhYWlByUkM3TkYrekhTTmR3MXd6UEVDRytnejdjdDhDc0NML2hYV2pkdzdHKzJZdE8zblNpclEzZWs5MUdqWURPZm85UXpaL3A0NzVaeHVqTVZPeWkxYU1kNnczVTlZdE9QbmQrL0NOK2hyajBKelR5eVl6SjMzV2tkMm85WFJ3SFpackdQZ0lNblpEZkVaLytPbTlmdmJ0amNxQXpiZCtiQ0JXWnF3Z25IY2FHZzJTRUNVQ3RoKzNCK09Pd3RPTWZOdStyZnJFQzFlZ09haDdMQnJhUzRuOWFUUFM0YmFPNlkxNmVmTnFBdWdUTDZObmRvYThlV3hob1FQTWhhUVFBMklUYTFVN2Z2TUorc3oxcDlOTmRzUkRVWnNjc2VCODVFMFp2ZnFzR1gvWngzTkd0UmYxY0wrS2lGd0QxcW8vQU9PcG84TTgra1g4dGtVL1ZmUFZhcXJudXFsb2xrUTduSG1SWDVCbjM1SDZGOEhuNmFmTjVscEx4WVQ3UmFhOHpYbjVvYzAxanFQbDR5NmpWeWVKWDVobjExSHBGOERuMktmRHBtb0wzZ0tkQWFLaVg5NnQ3NmRFeEhlMjBLcW9OQ28xYnUwUm5OUUx1OURlcThFNnl1RFlvT0FrRDlDZ1g5RlBWVmNpeklZWUcxMXA1ckxWSTRheXE2R1JBTllybTlUdDY1dEk2U0tFT1IzNTRmRmhjYjh2clMvb1BROXNtaFpQWm10Z2RzaGl4ekoyZWJmWlNqcVh6RjE5RzJ4VmRrWHUrck9DZjhGWmpQK2ZWOHhQbWxJV0wwc1o4KzhqcUNIUFVZSS9nZUowTDAvbm1FOExrcjB2UnBNTlgwU1NBUzhCRmc3eVd2ME5SVDNMYW1wOEk4cTdmS1BjdVhXOXEvalJka05oWjkwR2o4aTRCVzM0NnhPcERrcGpzcndVc0NqeFJIWWw1OVBybHdVOEtpa1djdW9kU3BsdXphUndqeGVTUHdFRktOcE5UbGljcG02UGd5VnNzZ3hwZmtNK0M1WnE4SlhjOHJwUE1INm5Hb1ZJU1NUcjZWZllDbzhvbW1wdXhha1R4ZEJSa3RVMFgvNVo1THlralIvZGY0RUowaHBkeCtwajI0Y0JQaHRNdmxyWEpwalAxTlgzeVl2UThMMW02VlRWMjl3Uyt0U3FFUjY5MFVLd0NmZHVlcnhZZ05nMTU5ME10SU5GWlgwaDNWaU5XaFpBK0NsbUdGNVlpaTIwTTZDM1dSN1VOeTRtNEJ5R2t3RElYM2lMS3RCa0huVE1sYjdqVzB3ckRiQ0J1TjFXMzA0NFBCTkZ5V1dHYjVHZVFJRmV5UXpiR0w1MnoxODNtcm0yY2ltU1FDWFIvNUw3UmZSV0pCUFBOSVphRXArb1dZeHhHRENBcmQ1NkY1UkpUbnJERXlOeWxyd1N2SU9WV05la0V6UzJXT1E3YmpiVEtKQ1Z1ckhmcmN1c05zTk5lblh3aVlBMmpodVdyWUtGOFpxUGpVbnpTTEE1TnZIYjdJTUl4NWtMNVFCMzJnVzErL2ZOOTludzYvdnE1Ymt2SWlJbW1oS0N2VXV4d0kxQ0ZwdjFIMU90anhxb01sKzkvMUl0YWlaMEtoK2puMkN0WitZL1o3ZVIyNWZSalhwZ2VmQklQUlIwMkZOUDM1V3ovOU0rSFI0OUJLSHE3NDU1ZytZaW9FNmMrYlhOaE0wR0cvT24xb2RCaFJ2N2hlT05HZnUvcm9wYUJDZmZEMDZOREFMTG1ZeW42UzlQRFEzMUJ5K2NqQlAvajE1TUc4Y3BFVGYvTG1zcDJBZXZnYnluLzMrSG1aQzQvODB5YVg2Z1NZTThBckZwelRUM3NIRkVjQVBCYWtYZ0RWSEc3TlR6b1dhRjRBOC9xbmNpeHd2QUNpK0hmSVhwZzlBV3c3UDNWNGtIdy9KUGFmT01KKzR2QkFWdmpZZ1VCVXRkK1k2SUdxcUVQVlVNaC9nZ3lmY2tUZnFOcEJ2d1A3Z0luMXllMklYWU04NDNxQmQ0TitBVzMvck9sRHVFWjVSc1FHK3dMVCt5bTBvN2ZqZUkzeFRQYU03QVg4Q2NRTGh1Y0gxd2UrNDMyTnl3NnhCWHIxRTJUSCtoclZEYWtUNkRGZ3VZLzNHdE1OcFJQNDBUK2xiN3RQYWtma0duZ0ZKQnQ4eHMrc2oya0hjUDNuTTNNT0p2ZHpwTTlvUjZFV2loc1lGNHhHbjh3TjR2emJlaDhyL0RldFB0UnJmTGR2RzNDWElGTTd1blp3SzlDWFlLNStNdnBFclVnYlFEYmdXTDNidmRZN3FuWlFyUmdiMzVjQ3NQcGdkanpzY05UQnEwRXQrMWgyTE94UVdoRXJnZFIrVHZTWjdDamFRYmFpYTM5WGJYaXRSOEgreUNuNGNyejNqZjZjbWZ2aWVPVVQrem8rK2ZvL0Q5NkovbVQ0YVFTOWd3N0NQdnd0K3YvUjE3OWpiUitmdkdGNzV4UmNPZDU3UjNmUHpEMXh2UEwrYmZDTERlbTlySWZoU3czVTl6U0doU1dJZW5Jd3g3UGZyVzdOcEVybWxGY0pXU2t0Q0tWQndJcSt3MkRDNHVwRVRJTlkwd1A3Yk16MTNDNHBSWXRMQTFlTVNsVWQ4OVVQUmVyQWg3ZWpXUGhTV3BwNmFrUERYTGVBazZydVpsdlhRaU1Bb2Z0KzVXM2s4UWpQODh2T3lmN1RJUHRyUyt6SzkrRFpvNmFCdldkZDdJM3YxQi9GMThyd1lCcU1tR1p5WTFXK05IMlp1WFJhTVc0TGJVbitWSW5hRWpNMnJHTXhvM1c1ZzIyN1l6bkNxak9ySTNKMzJxbEUxaXJSc0c0d25ZbnBOckgvdlBKeXM5MlpSdUVIVkQwalV6N3loN3JBRXk2SlJVdDFXVGdtVlV3aU9lSGtMKytlU0pVUWJDYXFZN1BrNkhOVFNabkdFZEYwR2NsNnJuYWxxOGZvM2YyMXAybXB1bExVQm90NlRRZVArNmxTbTVPY20raWh0TDF3cWJCbXpRS2xQVzBLMllrNlZ4a0ZzUjRHa1k4Tk9jdG45eXlMUzJkVkFOZkRzRjFGZnRvVVRkbGxZSFRYUEpYWW1oRjJPczN3Ym1TRFpuNFdBc2VoR1U3SGFCTDFyYmhMRzNtTlVZQjgxaE5Ec1U3UVdvd3Bya3RCcWF1ZUpJQXp4cDdyT1JjOUJJZXVMczR0TExvM1lqMDRSVWNkbUQ0Wi9kMEx5NUM0K1h1TVZRTVdadG5aMHpxaDA4ZWZFYkxMZm1PYzRRMXVRbmlWak1YK2h1WjAwZHI1Z2FKV01yemZNdnA4RWluVHpoSmFCUnMwM0lhZVFzcFZFb1BRelBpVU5nSmx1amY1bUF0TTlUK3lRRGM3aWdwd2FVRGRKVTJMbFJZN1hINk55b2hkV253d2RndUZ1RzM1M0IyM0xGMlNwM3BlaWNEWjZIallHdFU1TEJ6bHNNSGNHVnRTTmZBVVhMNTdmVVRpVkpUNzJDZFh1aUZpMFhoZWw3NmlTbWIzcVlZNlhEbTl5UU8zSklSZG9HTXp0Y2dUVEluK215Y21OM1o2NXhLSC9aaFpyT1U2MDVxaUNjRkhWZE9qbFdybXlhY3E1VnFqWmg4RG1ZbENYeGFCb1pudFJHR2pxR2lyZW1UaU9ERnFLSTAySTVLODRqVVpGUlZncldNV0pTTm5aemI0QXczQWtuYWRYMTB2R2d4WVkySVlrejJiYWRFZ29pWk5JT2t2bDJubVREQXlQTUV0eU1Ub0sxaHorcE0ySTdUNWIrdlQ0UlhUZ0JHa0lGT1MyMHkzYkpReFJ5UzM2Z3l5WFBuMUMxamRnb3hRY2QzOVpMSEFHNUVJSWNqTDc2NnFualAwTFJRZXFSTEl6TzJ0aXhoVEVSRjNkNzl0NnRzNWRkWFVqcXZ1U0MrNGNhZXFSb1FBNjJKbDVNWEpVdzMxN2E1b1hZVFpydnY1UFlORGFUVGpzalNVQkZ3a3RKc1hrYldsVlVhVjNKeGtSQnc4bk5MN01wa3o4bFYxRjRvOEY0UXFsdVUwNCtVT1U4Wk5HazM4Mm9xSnhacEVBNzQrZ2xRb0l6SUtFdmJRVlcrVk93Wk55dDV4emthOGoxMjZyOHllZW5MYjc5M2xOTlRkK01DdWRiMSs2NnI0NlM1K1FvbjF1VUZmT3hHR3E2c3V3MFNwSjBDVkphMDNvV3RLRzlmaVF0YUZIbFAzVmdxVjNlcG03dzJWdlFxNTkyczZ2UnBBZE9TalZHY3IvUWxlajJwTWJxTEJ5UTdrTmVVemZhRUNtQk5vUE4rRUpEY05TdHl5K0xwbEgwUE1PdmZQd3U5dzJxODBONHJ1bnR1SjlRcHBzdEVHK2RieGJ5ZG1tU0l0OVRHNFpZV3kzU2xDTUcvTENWK3hyZUJmMnU5RVhBV1NrWWFYM1VXV3RqZ1YxdXRNb1pVMU5JS0NUTzl1OGtxMThrNzRSMElxRUdVMndGSkVzTzJIaHAzUDFycENORS9GWlNYdmhSL2FpMTM0bGF4TDRrRXp6S2lqemhoYlcyY0t4MmtSbGtMcHArSVhYUThXL1NWU0lrZlhXb3M3dTJ2TUptZnIyN3czRUJCTUhZVUhWK2JESDFHVUppeU9WSnBxeU5FMVV4UGowd3lkaVZlUUZCR1psQXdkUG81ajNFaTdsUUFoNGJ2ZUUzTzhJM3U0UldWMHRZTE5ZaHQ1VldQNTRPSFI0Qi95aTJ4SUQ1R3ZwcXVpTVpPc0hzVDNVdlpHOVZGWXdEekVpTVl0NUt4NnhqN0lNWkxQay90UU1kZ25nT1grcEFzR2xWTTBIZUVyMkFqc0ZaS1dvSXlXWUpoKzVicHRUM1hmM1Jkblprd2VJZ3U5U1VTRTdNQVpUUElBOUxpQjZlRFVjdHBUTkJqQ0JCekNCUG80cVZ5Z1ZmMUNRY1lQa1pvN2NzZlJXbHVYT2UyNE5LQ1U4bEFGcVJ6c2VlUUVranpYaDVOM2llVWNIWFZXM3c5MFcydjNQSzdKU21HeHRRYlBOMDlhemV6TGlqTWQ3dnBGTEFQSWxsSlhkcVRNT01nTHBYenZZMnV0MXRjd2tpN3NNSXpMVW5SWHAyWXlIakx2WTVBQ1d1d0w2K09weHVIQzNFTTU0YW90dy9TcGV2b1MzdklXTHprQW5ZMFVKZXBGRnp0MmsrcTVYU2phb2xHZCtlZFFSKzJGQVhYT0tmZDI2YWxYUWZsZEZHK3NyYkt6VHdUaUpWU01SRTB0aWhrWlFBRm5hTURFRllVenBwbkdJclpNRk5ySGZQOW1xSWdzNmo1ZnBVQWhaQ0xRSnM3Qk02Q0RVckp3NklRT01jSUFBWVlqV3hTS2d6SzRlYnZhL2tiV1NOSzVURU5qMGFiTTFMTzBSVDF6ck02d0dxdldaeU9SU3ZUUUtjdHJLcEFBN1pXNkR0ZFZVTk5wUmVjak9Ta2wrakp1aHhKZEkzbHJSQzB1NjJlYzBnSzlBeTBtczhOc2tCWVozVXFUQmYrWFQvZ1VJZ1hZb3ZoRTNlZUEyRU4yNTZKYTkrMDU3eHpPbTdQQXhWS2V5N0tSOWswOXNJdDR6V2IweTZaVXg4eEY5WEJoMkF1anpHUW13KzgyV0dXTjZ0Sk5iWVdMdGxlSUFOYTdoV2lISzlHYVBaR2lTMzVwV3o5VFp1Y3A4em1QbFdJcUdJYjAwcXY3KzQxak5YTTF5M0dicUo1eWV4bXBhYjVVbFVOZVpnWUwzVVJFRkJkeURkdHA1K0VUeGg0RldDcWQ3VHZGQlZRamY5N1ZWOGJHaldPczZibTcwWEcrbFZnVmxFUGV4ZDU4YklWd25TaEpXSzdGV0dsclRXaVMxMVJGc2J0YURpYWVRdEFPV2F2amNLcU9EaDg2NnRQWDgwQWp2OFZ3OTZidTEvRjNpSWlwU3NyeW9TWHZBNi90alE0c3o4ZnNIb1B4eVROU2wzWXBuYzdTR1EwU2pQQjg0eEsxSEM3R21hU1RlbUVTWWJIaEZTSXJ5TXZVZUJJYUtWUnVMNEd2MitJTXNaRks3UlExUnhjNGh2SWFXTnpEcG1Ldkk4UGY1emJlbDdSVDJQRWNiRXBSVEtJbjdFYmhTd01NN1Q3a21vNlpjK243a2FyWUxWSnBNL0ZwRWFRdUtYSGpKcGxCdUhOVTI3LzZmYjNJTi9hRkpHL3lsaDYvaXhWdERXNXpuN05Zckpodk5zWkt3TWU1TU10VE54NGVkK1pOUGJ0MVJDRUVDS0l1aFp0UGRRNWlaaVh2eUViVXFSdk9DMU0xRFI4OG52NUdJUTZGbEIySWFKZVV2c1RFcExyYWFEQUtNZnc1NStoOVhmcGJwWEV3ajF2Rk5rUmlEamFqVG5YQ1lZWFFUYVpacTNNYWE1aktNUEoyQ1Awd0FxRnBsMzZ4dW9MWGF6aTN0WHR4a1gxbGNiRjYxN0FTQW0yS1Rkc1lzN3BsMTY1eE4wdklXNWJYM0Z5aU9jNTZsTnpyb0ZCQnMyYnJYT2RkYkNtSmc5NVFWYzJBbmVXTmNLSmNrcElUUmNXbFhLSjBqa3E1RWo1Y2FEbGs2SzJydlc5KzB4SmJBT1ZNemoraFdaVXJkdXd4K0xTY2thZWxOQmlwd1hIaTNSd0d3d0hrUG01bDd6MExaSmpHQWVNTVNYT3lRN3BtajNiM2NsRGR5SEhpTGp6alZjdStZVy9CaU5xKzdlTTJIQzF4d3RNOFdqWTZSc3BlM2FLNm5CcFRhV3QxcnF6Wmc3OUQ0VmpaSTNwYmlxVEJ6Y3U5WSs3VEtDWG5GVUxWdFpsZUJhWkJBKzBsaFBnbzVkQ0o0Z3A5d2V5MGlNVnArUmRNNjVtT1JvVFA4b1hUOHBBVUFPaHFaVGlMUjlEMThRRDFKMWRXb2dVU2s1L01obUZHS3F6Vlh2VDY0RlR6N3J2c2tWQnNVZmo0WTVCcitXbnFiTFhpRm0zbHNWM0ZRWlY5cGwxSWZMUExmTUlLcHVCOEs4V2Nid2NlbVdxUDFDYi9BNjYxODdHS0M2M0c2M3A0dDhIc3lwM0Z2RytWN2x2dWRvVzA4cDR3UTNSbzBzaGI2UkI2OHBUdTdCbERXeVBJVE5nUlRxYWhTQ1pLWDBNbDkwUS9WM2xuUUw5U0ZBWERyOUpGWmFOSldaYmhjK1VDUmFVaCtheDB2T2tCb3lGYVNsVmxRR1VxaXVGZmI0dVc1MFNTN0VaOW0xd1hWclBjRzlQZmIxNHF1aWlSTENPcmlnV0dZY3VtUzFYYnFBV2F4bnNLcTF6aWpEMER1c2FKRVEwYW1FOEdweFJIYzYwWWtqMGMvSlczcjFhZGZQYzNaQnpiMGRnMmw3OWYzUEFyamswU0pER05MeVJJbXNGaXNEZHdSL2x5SHU5R2xMOWw5M1FoYUlMcWFMWTVPTmozQlNZRmxLdktVdEtpOThRcllDbGZMaTB2dlhZYnZuVUtacHV3WWFadWxrSjFZQXRlaUVJMVJxQ2lUWG1oSjZhaDg2YVdvaWVIM2hSMjBVMXFKWm00RnFtMFc2UXl3Rjk3MWFHK2lUZVhGMWJwOGhpNkRkUXdiSXJpd1ZHMDhvSTB6YVhmNjFxcFhxcE9HcWhhZWtseXFRa2U5MmVua2JVVVBacndSQ2dSTHF3WENadFRxcEdORkhFTzlQZFgxcm16OEVSYnYxaGJ0dGQ2dWpmck5BV0hoSWlRNU1sYUJJUWtkWlVtU0Y3T3Jpc0oreng4MVZyNjFGbXJtSDNqZTlKZFgxNytxdGxjQ2NNWkdZbEc0bkxlQ3l3TXkyQzJ6Z3FlTFNSSURHNDB3Y3h6UGw4ZlBKWEpYSldRb2lpb2xaQ1dEcEJZV0pKUUtwTGhsajR0aEVGUlQ2a0QwQm5SaGVieUtIc2JjSitiNENkWndKMlJnakdmY3gzcmtsbXp3VmVBSWE2SnZiejRIRzg0OWpoZXVuYS9lUjludWx3ZDlJMDVKdERKYW9wSkkwV21zbUl5ZkpnSDByaUNtSzZhNldhZFU3NVQ0RWs5a25ycUlEeGFpNjZZWVJqa1dBUjZIeU1jcWNXcEJmblNpNDF6cllnT0pZVjRvTDFSdGJuTXRpdy81RXM1bVd4UGMxU1h3WldQL0RKUkdTL2pZR0YvWHhJZlhMUEhmNjdlQmVoM25WR3V0MCs5VnIrMXJwdE01a0lCOE1wdHg2eGVtclVmclhXY3RSZkNUcFhLS04yaG8zQUdiSDlybDdBODIyd2k3YTVDcTAyb3dyZE1SaGRkSmcrblNTdzFONGx1cGZQWXFXUThtMjRYYkx2bEhwK295ODBhMUhHWW1KbGV4V1d0WDExRUZkN0M0ZklteWpsTDUyVEpSc001TTQvR0U0L0Jac1NqcDU1c1pWK1ppeCtYd1BFbHlrRm1NK0IwRWk4MjBtQkFCWG83QklxK1Y0RllYM0ROMXdtYnpzVHRmdllMbDB4czd6aTZCL0EyalpHQlovajdMV1VmS2Z1bWt6YkR6ZEREeGZpK3E5blAzVG95Q21jZjRtNEpMQzdST2k2MVQ2NmVNNW8xVEVUQzZoUWZ1ektJdVFadDZDeHJqUlJjbnVYZGVPcDdlMHF3OGw0Nkg2MTVINFc3ZmJCMHIzNzd0ZXhzampVZXNySDhNTnM2aWVzbWtUSUZ4M1d1VlJNaUU3Rzc3SFdqZjM1NGltdFRPV1pWVlVXNVBvalJ0SmUvS2NaVm4vY20rWEtTb012SHhmYnM0UjEzQTdzKyt0SjFkZkFZRWorMWZxNDZaUEZpd2J4N1I5N2NQTFlHa2g5Q0NtS2cwazBwUkJXeEJ5d0FBeDd2Tk1EZ0tXMVByaXBIdEhMeVpwVkQ4T0hDaERTRS84V3VOS24zMTNNZVNUQzBERTJCcDRjTjhkVnA1ZlhDc09ELzU3SHp6aG41UVVxUE5IemFSMlRxZzNDZW8zV1V4TDhzUEE2d1R2OVphTHU1WmxXTEw2L0hZc1ZaVzdjcVB3bk9MZEc5dkxKbVdHdjJ1UUJyeEdSY3ltME1lOUQ4aUlsbTdOdElnS3hpclhUc1BoN1hNaWNhaXZzby8rUTJrOTFnVkR2eVUzOVBqWlZwN3ZjQUhQUU1IeGNaNlNuUS9sRlV3SWpvT2k0dmRmV1NaYWk5S0ZFV0tKWExEeHZUSWIyRXBaanRtWkNWZmhwVHN4NXJocndoZU0zQVhFQVUyRjI3dFNYSFNJM1BYWG4vaHhkc0lMWXhrNHI0UzJDamluaGhucUdyb0RocElEdlMwM0NRc1hadVovSVBDY3JDenY2eVZuaTl0K2NZZHhGcjlCaWxVR0o3bDl1Q240NGpxOTNCU1N0ZVEyaythTnpvY25LRFdidVFKUWpOQnFpUmQxdVQxRFBxR1B1K0xyak1scE93WEdqandqNFNlLzR6NDF3T2dtSVpuSkZHK2RDQk1Fem1vOEI4ZEloSy9hcXlVS0NDYlQvZEJ6MVU0VW5zalRiM1lFdTBOT2RsY0NlR00xQXI5T0VHQmVlV2ZocXUxb3JqaGRjcVJRVnFLbXU4MW9uWXR4N0UwTllMRVVaczdzZEd0NytIZjdlMFFQQkp6REJJa1hxUDJLdVh5dDhjT3lxU2hEalAzemVHYzgveWJPa3c0aDl0aE1CUnlPc1NHVzBReDdvTlZ4cTVFNHd0ZXMyTnlZb0dwVmpYcUF6VFNYbGIyNEhEWUNZYTJLblk0OWdMVko5UlZhdDFHZVZhMVpUYTVCRC9yVzhzTTZwN0NiVldEL2NDdGh4NFQ0TEZSWHJCWXVUSXBwMnE4SldwWVFhVVJOZlEyNGpSRDdkSzJNT29iSndXM1ptUHBXa2xQU1hWSHBXVDk1ZytsMHBSL3ViNUVScVhkaE05Z0ovUjFvUmtrcGJEcDF0THFYdG8ybFBTUnlVRlczTTJVSEFvNE92NEZjRDFyQkI3bmtpVC8ydXI5WXlLekpYbmRjT0t0ZlVyYmJ4OXhleUpzd3I4ZlFwSTVMSHBlMHRUb0tCTjM4M29FMjdHaEhGeE1HS1lVLytsTGVCbjd4bEF2Sm4xa2UvMmVTVzdZZHU3emtQbFJpejFGMHNveFhFVmJ1MnJXUEF2SlE0Q2xsNDBJOFNXVjVPQkU0NkZlZzVVOGt6OVYyeXVjSm1CeXNJODFxbEhTOEJNMzVia1ZadHVHZHU0S2ZsNHZHbWluRktpak5LOVNoM2M3WEVIWFlDZ3kvbWd5MzR0dTRhUkZCTUV0eC8vZm0vNmJKcXJNK3htN2pueXpKcDdxYjJNblc0OUxvT2kyUlAxZ1hRekI0S1gybFRRdUdXRFdyWGRYQ29ocTFpY0dyOEMyWExoYVZnZTF2bjdOSVc5dFdveGJMS3QyR1Fob0ZCcXRqV0p3ZHJWV0xwWjNhYnJrRG9UOUwzVmdqcXA2TzZKeDFrQ2I4a01ySk9WcXJWUnljVnFXdzhYVDRjM1VRYkhZMi8wTW1ROUE4dEl3YjVsODZ6VzVzNVdXSXZNZzVLdkN2b0huNFpiSG1NaEs0dUh0c1ZLamFpeXB4S3o5RlVXWCszeHlsWXExUWFweDc2eTM2cDBNWnVQUHNvYjFMWnBBN09vYVJHZTVwcEU0dUFxZFJmMkxhdUd4Tk5ya3ZPb2FRMC9nUzFKMUtZQmVVWkk3TVY1YjBwSEpqMzh3U1VKQkExaXFaMWJGbDdYc1oxRXZXSENZaXpsbU0zeUZObGd5WVp1eDcyZzBpVE5XdUJ4MVlXRVhzTTJ6WTl0ZTFZWE1TUVkyZlZoUEZiZGxDeVlxc0xQbk91RDQ0aG45TnR0Zkp3ZVQrb1kvTkZOQXlMWEVLK0RCZ1BmUXhmc3JxOGU5aWV2N2xaWCtEMzM5NFNiNmsyZWJqYWJrYStDR2RFZFZ6MXNtT1FaMld0Z2Yzd0lmL3pSbEFEUkwxUVp5OUd2OEd2ZTd3THcvMTg5THc0QzNBZG8xMVJBd3ZkMWVyUVRCOGlKMzNWSi9YVzhoaE5KOXVLeTJVeWdSdEdrVjhGdVo2UTFTRHNLV1lxSDh2bGxHdTdabEZERFJ2WllUTUtZdGZLTHJZRGNaeE90OGZIQU5MNmxoZnBNTEV0akRCdTlrYmFKay84bTRUbkFyVWNxcEZBa0ZWRWtRVkVFa1kxRktjVUNMWk5NZnJFRnNoakhwNG1qM3NBZzRIelBNOFk4UFJvRDNxaTRpUWRUZzlITThkOUdiSFJLc0k4OXloVWxLc2tiRXBndDlvdkdjQWlXU3R5QVM1LzV1YVd5VlFBN3o0MEhDVW81ZXdUTnJYVVZZQlBkRm5MdnQ5aXRNUjRudStVTHhFd3RwUFhqQXpVWHI3aEFYRGJkR280ZkFHU3h1cW1Dcm1kOTUyMmEyejI1TGZBMWVKTzU0NUpyakpkNHZBTmJRV05IdGZFWkhad2QvbEtjK0ZUL3d6WGkzZnRzaVFkbVJ0VjlpcktSMHI1Q29WUnZ4MW5KR0hoNHNGTHBhSWJHdnVOeWI4YXlNMGdVTlUvTzlCRHhxK2dvOU5TYW9xYm1ob05tUVAyMG9lVUI5L3p6UjJRK3ROeFM3NCtDZCt2eGQ1bnhqQ3VGblFMRE83MDk3M3FGbklNcjE3M21tOCtPcDhtN1c4cDdIZHNwVXlPRWNTdlRjUytuMVlqR2x1UHNMS2R5N1VwVml5UWtLcWRHUloxcVpTaXF3M0hGNU9nVHppemFHYnJLeFpORzFZWHlra2JGSlo3cUtaV21oZnVkK21abVIxT05naWUwYVdWVnRWTGRORG8wUUYyOVYvRjRkcTYwb3h5ZXRWbUtObGtXN2NrRWxGTm5yWElsc3B6Z2hkOTRQeUtPSHMwdmRUNG1xRVBNWDdhL0hQTVZpOTdHSFQzYTFHZkxWb2theS9oTEdsVTFxbEJaeG9NOTIrVi9uWndxU2xUTUo0Rkd5Y3BNenI1TmlGaVhGVi9rczhnVXJPMWxxbElDU01xeG1ob0xmNFgvdW1YMDVOa1NrOUNpU0h6UWRIR3cyaDQ4TURadHpFMDVMaitVbzBwRFkwMEgxaWxEbFZ3enpQT0lWNVZGSjFwaFB2QnFxbStmTEk5SUdqcnNWOVNvTUJranhnQjV5dnA1Ump5MndiQjd2cDhWOG52K0JkbFhjNktqNjJub096WjRNRFkwUnc2cUE4UkU1VzZvU1doZ29LaGhpUFFwMGVhQlZ1QXorS0RQYUJUd1RHZno1L2FWbDhmMUdzUFY5YlpFUWxiSjNyYTI1eDZNUzlmckJuaU03M1BmVkVuaTB6bUl2SEZiNnZHcEx5VDlOMGNEUjloL2RETXkyMy9uWm1RbVJyWi9leE95Y3Z5RXhRQTl2TWpUWjdoR3N4UEJXQXg3c0Q0NVpCRDFhNjVFaDFxaHZVV3BDUUhYbjdRcXdtQXJncHJJZE5lR2NTVnVmdHZjZW1BS2JhRlBCNW1lZlpnR3l4eVdvb2NnNDM2Q1ZZWnRacnNUZEVvWDhJU3ZlN0hMTXNWK3JNWXlhQmdiOUpTV2RXenQzN3dweFQzZ0NWM1daN2kveENZeStiekJJQXFKZU5wbXo4MFFFRnozSDZKRldqZTcwTHYvaVY5NlErZlc2UkdZcVU3akdvTktWZ01EZGpFTmdVVmhNamVzcDVGTWs5dndkWmVtNmJoZXhxVEhhZHppOEVLK0xtd2hnNXlCVkNXWkgxNTJORzZSSkQ2V2FWNFVtbWhNbWNxc05CWW9qYUpna29hWjc1RkhsdDlFVU82WUg4eGl1V1NsM21BNnBUUTBtRzVhVmpqMjQrRHRoeUlGNTVCdzBvRmt2bldHaUNNcTJtSU4yYmtDWnNTQkNuTGhieGNwbHVPRUNzQitDMDJhRklTOTN6MjF1UXhBb0d0Z2ZlS21RSzVEWE8rUnFQZGIra0hwUHd6R2YrUHFlWTYveDRTWmtVNFduL0gvZFBFOG94SzlQTDBhZmFOOGJkM2NFOVVVVFRTWVBReXl2K0hGK1UvQ3ZsZGFGNWUvcnZXUENvSmcrd2RlL0p0NytQOGVmbFo2RmpvbFowT252MVZFa0pIK0o5Qy9YL24vcjdEY2ZHNTJCa2FXSms3NGhpWm1BQnNld3F1T0hrSjhnREVQb1JxTERMMk1uWkNKT1VEY3c4RkV5VU5XMmNqRDBvakRtSkNQOXdlM0c2ZWJ0WjMxSDJ2NGJ0WldObzZjYmp5RUJuODhNZUg4OC83WE1CMGgvdDlVbkN4NUNBWCtFdUNyeThqakM5azZtT0N6MERMU0dOSFRNK0N6TXRFeU1IRXdNM0ZRNHpQU005RFQwWFBRTWJMUk1EQnhNckZ4TXJMK3Zab0NJZTlmaFJXNEhZeE5PUldGUmY4WjdrK1BoOURjeWNtT2s0N08xZFdWMXBXSjF0YkJqSTZCZzRPRGpwNlJqcEdSNW84R2phTzdqWk9CRzQyTkk5RS9HZm03SFdFVFJ5TUhnSjBUd05ZRy82KytnYUd0c3hNUEllRVAvSC9UL2duSTJPaGZjT3ljSGF6K2htSnNSR2RpWldMOVY3RURPZ1phQnJwL01mNlhmV01qVGxOYkIyc0RKMTRET3pzcmdKSEJYeWgwZHNhbTNIVC9LdnIzK2taL0l1Rms2OEQ3cjZOL2QxVEp4UDdmai81ZFlBWGdWUndvTXdNNDRpc3BpNGdLeUtvb0s4dHgwLzJ6NU4vYm9mdlBocmpwL2lIcVg3NDRBWnlzVFA2Qkp3SldUdjhuVC81aWl0UEt3TWFNaDlDTnh0akUxTURaeW9tUVZ3Wmc1R0RyYUd2cWhLOW02MkNNVDRNdmJHdmsvQmRuRFArVm4vOGVocHZ1UDNyRVRmY2Y0dmYvYVZ6L3BPYS9CTmJHa2ZadnVVdHJaR3RONTJaZzl5ZW85UDgrcUgrME9ZWCs0c3RFK00rUDkwKzJzdFBRczlBd01pa3pNSEF5TUhNeU0xSFJNM0xTMDNQVC9RZk5mMlREMWtIWjF0YUtWMTdwYjc2eTBCcGJXZUdybWpnNC91WDFuNzFCeThoTjl4OTEvNE1aR1Z0amdLbjdmOGVWZjZQNS96U0Rkc2FtLzVqQlA0SS9EREw5ZXdiL0RITEtPOWdhT3h1Wk9QQUsvRWtOUXdNbmZHR0FveFBBeXNyRUFaK0JudmJQVHNJblZ3UDgrWjY1T2xKdzAvMjdDZjh2UkY5RzVyK092N1gxZjBvQkdSbk92eWV4aERDdnN6UEFtSk9lZ1pXUjBaVGVpSWFaalltTmhwbWVucDNHa043QWdJYU4wWlNaellDSndZU2UwWkNiN2ovTi9VOTJKV3djblF4c2pFeitidGVJd2REVWdNT0FnY2FZa2RtRWhwbVZ3WlNHZzUyZW1jYlV5SWlEbmNXUXhZaU4xWVNiN2ovTi9TOTUrcWRSUldIUlA1OXZ1bi81ZnY5TjlQOTYrMStRLzFIN1g1RC9VZnRma1A5UisxK1EvMUg3WDVEL1VmdGZrUC8vQXZrM0o4QS9oMGtlUXRjLzU3dC9jTUw4NzVSWVkvNlhjeTdIUDlVai9NZm4zSHA1K3IrT3VLN1RkRk5VQ3ZTTFQ5UFNGTkdzek1BL3dJWk9RNVJSQzAvQmlZdExVTmRYZ2I2amY5dCtoYXI2Qjg0dy8wK2NZV0JuL0srODhacnNDKytuaC8rNXE1YVdBV21ZTGd4RlNZaGN3YVkyVjQ1RzF4U0dHWXFUSnIxcTlraHpiakRqK2RYakM0YUpHbEY1OGh4R0RKc2pKbTVYdVpTeGQ2eXN3cFZXTmJxTVhVdGorWmlmcVdWZHpObGlaRFJweklocndUWHJjYTMyNE9OclJkN0pvVVlyeXU0cDJSV29yV0ZpMGl6eTlHVXNkOUkrbkVDTzJhODFKUjg4U0NBcXA5L0lPTjZyb2kxNGRzMm1VelJaM2pzWFlYMnlIK2dhREJVZmdKQzQ0a1MzWFI4M2NhajJFK2liM3BQZzREK2doT1gveHdvNS9zZmFqY3pzLzdsZ0l3UDkvMjNCeG0vQXBNT0QxdERTMEpIVy9QNTBrSU9ub0FqOS9HSGRBL3lvSUNCRXNmcXZjTVRvR04rQW9iLzloQURGK3Evck5ESXdzUDVMcGNiL0MxQkxBUUlmQUJRQUFBQUlBTlZadDB3aXRvbHcyR01BQUd0ekFBQUtBQ1FBQUFBQUFBQUFJQUFBQUFBQUFBQmtiMk5mY3pVdWNHUm1DZ0FnQUFBQUFBQUJBQmdBUUNLL2ZIYnkwd0ZBSXI5OGR2TFRBVUFpdjN4Mjh0TUJVRXNGQmdBQUFBQUJBQUVBWEFBQUFBQmtBQUFBQUE9PQ==</file>
      <response>
        <code>0</code>
        <message>Export OK pour le document BPE-nom_du_document, id =xxxxxxxxxxxxxxxx</message>
      </response>
    </ns2:exportDocumentV2Response>
  </soap:Body>
</soap:Envelope>
cid5420
Auteur

C'est Orange.... Les mecs sont surpuissant et toi bah...... t'es une merde qui sais rien..... Donc il y a une méthode ou tu envois un document encodé en base64, tu dois indiquer l'extention du fichier et eux en retour si tu veux récupérer un fichier, bah tu te démerde !!!

Et on ne peux pas leur demandé de modifier le code :/

cid5420
Auteur

non malheureusement je ne peux pas faire ça ! ils doivent traiter le document et je dois respecter le non du fichier dans un format specifique sinon je pars en erreur... Il y a d'autres dev qui font leurs applications, je me demande si je suis le seul à avoir ce problème, ou je sais pas comment ils font.... peut être avec un logiciel tier....

cid5420
Auteur

Tu peux toujours essayer de lire les premiers octets :
PK -> .zip
GIF -> .gif
ÿØÿ -> jpeg

est-ce que tu as une liste de correspondance avec toutes sorte d'extentions ? Je vais peut être essayer comme ça !

cid5420
Auteur

comment savoir que PK = .zip ? je vais faire une table de correspondance dans ma bdd donc si vous avez ce genre de tableau de correspondance ça résoudrait mon problème..... c'est quand même incroyable de galérer comme ça juste pour un fichier :(

cid5420
Auteur

Bon en cherchant sur comment detecter le type de fichier en fonction des premiers octetc, j'ai trouvé une lib php qui est mimeMagic....

Je vais essayer de voir comment ça fonctionne. Si vous connaissez, je suis preneur !

Ok, Hésite pas a mettre ton sujet en résolu si c'est bon !

cid5420
Auteur

Pas de problème je n'ai pas encore eu le temps de regarder mais dès que j'ai la solution, je la partagerais et le sujet sera résolu ;)