File size: 36,094 Bytes
fa3721f
 
 
 
 
 
 
 
faa4cae
fa3721f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# run_encrypted.py

import os
import base64
from cryptography.fernet import Fernet

# Replace this with the ciphertext from your local encryption step:
ENCRYPTED_CODE_B64 = """
Z0FBQUFBQm56RFFzNTFSWjhmb3VLUUx6MHlmV0s3aU9LRGRpZlcxZk5YOW1nVWRuY3Rra3pTU25UdFFDTEJaUElIN09vNWJkRFd3dC1XcHpCNkZnMThJWldqVkRqYnltNFhMTnAxX1pUWW9uQU9USDlhcUw3elRMVllZb3RjaW1OTGx6eU9DeDlPa19LeVVNMWpZSTZyVjFmcUpOdms4NUJ3aE9PRmdiTjFtNFM0c2pLWlJoTGJGWmRKdmZTSlJ4akZYM0FrUFRBd3lmcUV2QUtFN3BjRkp0a0RlaktCRGdCajZVQXFnV3plS1g3ZHZYVlRvc3ZSVld5U2twd2hMQk92bUwza042NXNmZ3ZNRjNmRG1kR0RwdkJsc20tcm5MdDlFU2hNM0sydE96bnJFbFFYa3JKNnhSUjluUmt2X0FSRmVHd0tGSkNVQzFIcHF1Sjc1VE1TQ2tBV3NpQlBwTk45aHJxVGp5eTlBVHcteXRVQ19IY2JVOUN5T3NURDRSUUVkR3VBYmp4Tm5xc3l2YVJyeTIxQ3BUNU9Ed0FuOUIyOUNkLVI2X0o0bWJ4bFVuTVcyZ1JsSFBQT09XWEk2T3lCcjJXcmlCMmpYWlpRTS1jd2I4NU9ZLXNsTmFVNGlqTWFlYmRvcmhFeFltR1FHbmktbDBqTW1sNWZkd2x3SHRoSVRHZVd2bERjaUZyY2RveWN5QkNhNW5xa3lIMjVaVUZLWGJoNjlGQmE5Rnd6bkxfYi1aZm5vdVREdG9PSmVIVEZ0SGg2Q2N3SHo4QzZVUmIzSkx4dG1jZDAxNWJJRG9VSDRuTWZFblVNR3liMjM5MVVoVmxZQXEybk94TkFiMkpKV3VORjM4Y3VZZkQ1cnlocFFEMzAweDlfTWNoamhLdU9uZ0ZJWHBBR2pCNm1FWE9vclZMTVlJdTNmNERPS2pjUWtXZ21ZMG12SFowYWtSTzRnWklvblpOUk9ubUE5NlpCQWdSRW9UM2RpYjFUUUtTM2VWc3dtWFZhOEdxb205aXM3N1lyWXdvT1Z1N1lOZTZQaU9jXzROeVNLLUxoamxuYlVjbjg4NHNmV0xXaWR2V29FNDJrY0I4eE5xU3EyVnNUaUxtQkxjY2JVdVU2RU5JY09vc05IQk1QWExabFpfSWdKajRNZU5zQ0FFNDI3VjdIZVBBWDZsQzJWN1ZZMHVHbXlUdVhyRjZnRXFRdXE3eDRPSFZfNTVsREx0cHhmVWVGNUJqV0MwVGFJN25KeU5sYXRfbWpOMDMtc0lZNlZnSzRyU3RmY2s2T0JLdHl0UUJRZXNWRXVaUFRMUVI3WnI4Z0tLR3lZU2ZpaW0xOVE0b0JmQ1pzR255eENqdjhlejloYkFvYWdtNTdyVjVpUy0wQ1RDV3Z3bl9vcXY0NGJ3X0J6TG85MjFBY0Q4RlhhVmxvbWhDMXJVYUowZGJQd1g2dndsNXBQTTN0SklnZEhmb3ZhbzRJUUhIa2czelJMeG5mY00yNlludlh0OHA4TkU2c2dZcmVGamM5SlRiX1FvMXppSS1NbXZQejNMMF81R1pxckZoV0taWl9PTDBsMU5ab0NNa2RKLWJlSGNrM1J3VkNFUVpJeXVVQi1vYlNBa3dKM3NweWJVQXNFb25wNng3WER3SmNrOEZ5TklMckNRYlVCVmNROU1mem1HWDkyNFpmWEhLVlFNTENrT1BYLUd4VFV6ZVZISjZPQ2FkYW50VklpRkJITzlZN2ExZVl4X1R6SmdCNzQ3WnFMQnJuZVl1V1RWU3RPVDJ4N2VSSjNkLThsZGR0TWpxZGpoZ3lRc2U5RE1FQVp6MEFaMHFpWTdUVmlKcWRyU0hCTXVaTWNQVVFsZXE5YnExcWpzZUNYdzhzVllrYmhWTkhYR01QZHBmNlk5a01YeUFKMmhGakNrcXBtQnhEeFdrMFNCQk1SUGhfVjc4bjVPTW96MXRHbktlU1BCdFpSSWtqbzd1ZU0zLU1tYll6amQzWWRzak5RNHRNVWZMaUxhQ0cwWGp5UTBLeGU5THZBNVMyYm1qNTV1NmZ5dTFNSnpnUEhWTE16ZEtKakFrcERYeWtqcERaSjRLMDZuQVhNa0NOS2tYOTNkdHNDZWZnMFNOSUhQUGVFc1ZQcnZuM3JrZGtJOTBURmpfb2F4TEx1SkdzdE43VzZKUjNiR19QdTVLZWdhbnI0NE5SOUU3UEtucDNKMENrYmxDbjJvMEFscnpMVWFzeTlpTHFqc296ZFdXc0U3SHF3NHdpSUZ2TGFxdk1PY3YtYzVETmc4eHFMQ2lDaHVIOTE2U3N2SEpkYmh2Wi1hNmo5aWZacEpvSko0SFY0ZUNUV1NTbzVpTzd0ZTZfYjU3RHV5UzBaZ083OHdpMUxqNzBwYTF0Tm82cWxJbXN1QVZCRHVNSXU0N0NSZU0wMjRiWVd5QUdFY0Y3UnRGUXlsZUg1TUhaSXQ4ZElsbGFyd0lRb0NWaGUyZzhZLUU4aGR1S08xd2JZaExIWHp3ci1YbGN5b3RSdmlQTzZ5bTJFUzRKNDg5RWZRLVphemY0VTRJcFVhcnlHR1dkZEhVNXBYVjBFeExjeHVmUW9JQlhzTEJqWmJzejRkNEw4amNOb3hRZUVzRUF4N2U3SWc4RmtlS0daUE45dHAwYUpBSkFiNHRnSHA2UVM5S01tRVNncEN3UHV5WHNuY09laEFwSTVSYVZGY19qUE14ZXMtYTl2SHg0Y3VuUm1iRzdYb3lpVGRUWmc0cTNiVDZWQ1JJTjdlcXBUWTFZb0phSUcxWEc2UGpEbEdwV0Y1WnY5YzdoMmpzUkZLX2M1TG1TVUlvM0R0ZUdWTFdYTzdCcEZLOW04ZFNfVG9RSjA1RWJNM0d4dnc4cUJJTE5XamJHVE1nQlNob095OWFfUWpyV2p5aXVzdWw1cEc3TWtCWkI5YjBKbzZVUGZBckxhNEwtNk9ial9VWTRqN0JVaEYtUm83dldTZmZxb2FGclZaSHdHM0p0LUZsOXQzdlZnYWQ4WjB1MjZxNG5aT2tncWpzcU1IQ2xtVzNyT3h2MTZ5NzlzcVVBTGJvLUYwMzRTODVocGo2MzM5RmlYWmxCVXBUZWdDbmR6cHp4YXFmVDI0QTRWVWhHMU9jbVpCWkFualg5WWx4VE1kMTlHX24ydU5SZERjMnZ2VDJ6cDFTbjJ0NndYZnNrNHB3Z1RwcnRSN2RqZWQ1UHgtSW9xMkJicnBDT2xMeXRrM3FiRjJkZi04VnpxS2Jjc1BTSXhqU1VoQXpodnZoUmRjZjlUXzFVOFRaSVpFR1ZJbkhGWXhKX2FlYkxkMVpSRlZJaDQ3QzFNeEFNTXBHTGJGVnptT3hyaE1CZ2l1M3o3cG1HdVA1dkEzTVZ0WjU1aG9tZ1YwdmRMRWNSUzhuWTRVbTZVMldZbnpBUmNteHNlUHNkUzVETmRhaDZaSDFrU2RyVm9GbEdFeWpFSWp2OWx3bTM1Y1dNV3BtVXZyeVRSN2NWVlRoYVFzNmprOEhaVTdyRVRNSmt3Y2R5UmQ0YzhpMEJpdlZvT1J6VE4yRXdLVkh4VVJIa19GZ3JfVzN4RWhwWFAwVFVjdllDUFNESmh0ZGpFRnN4MUw5eHpSbTFlazhONWYxR2R3Z3lOQlpKaUJCZGpMRTFielFmX2hwcGVyR2l0ZFNSM3JidjFsUlEzZmE1cV8ydWxQWHZyUDd5MWNXR2Z1bnd5dTdaQU9JdFRqVmtLZVZ2dEpPRGQxUHY3aUozbnFZUC1JWUktU0VVblpZdE9sUnVsSkk3dTlQd0NUZEFqMldSNUM5YVZ4ZDNrTkVRSmVoOERTRUF2NGlnRVZjSXVja3dCaFhwaGFFN013aTY0elNkNmRIVEZIVmc3WjdHdUk4dUNfMzRUcXhIRGY4Ni1XQ2hiWlBwZnRSVGZxNjZtdW1FcXZxV0lyVDVXaDNSbXRTQTFSM3hPY3h2UGxBMDlMcDZHeW82djNTbFYydWdSVHppcHNnMkcwcXh4emxUUHJkbGNQb3k0V2tJQ1QzOHBGZlBOUm1MVmNHTE5BX29vUjVVRDJ6ZkNyaTgxMjFRclBHcURNMll2VHBDOFVDbmVpTno3anNOa0RGZzNjYzIzdXZCWUM5LU9Vam5NRXNTNWxJaUZGOHk3U3piY2tIMjVneklkOUJJa2d0YktFYW5FaC1LRWJTRlVra3JMM3BhR2VxTWozQ1J4eVJnMThHTXRyRmw5bWU3RTJTbGNpNmRjMUJyZGlNQjZDVmNMV3VoOHB1SU5kc3R4REZRcnljQy1QNjFnWjlLZFNLTk5GUmNiNEswMDF0WExZb1ZySmJ4WlEyYlNjWmdNaEJ3bGJNUzM1c2F1ODJNNXFsR0FmUjJEd2dhclk5dE1jOW1FdElJaDF3LWwyVTFuSkxJcUVnM2N0ckVaVEFfeERBMmJfdDUxak4yZHhQLVgtV0FWblZ5UjVQRUs5ZGplMURKd2ZvcVFYTkY0d3B4WHNvVTh5cUZJTWVDckVVY3gtOTh3dGIxd0k3WWVGeXRkb1dkaWdPM2w4THE2aDBjMG5pX1VOcFdfOHVHMUk1QmZweFFyRWhCbTRETDM3SlE3NUJlX0hySWMta3pwUFV1MERmRnZmeHFRTzVIRUQzSHlRbUlpdU1INl84TnBURXJEbE5telhxdkU0cnU3LVpvR01Ddm1hYzhadDBGQmd0azd1Zk5mdVdLY25IRTIwVkVtWkRyWHBvVEJDRnVfLXBic3kzZmdUdTA1MThrbENHVUNaOGlzZzROWl9ob0p2d0lzMWtYYXA3WE80V3dOd0RPUnFacHBuMTJ6SWFvUlFjN2k0a2EyUm5qTTJNTE5aQm9Wdm1jcGs3RU9lVG9mRUg1LU5HVjl5ZERDUlFacFJfUnE0QWxoeFlqNkJBUWY4dGI3YkFCWEY3UEFsY2FiVnREYmdOVmc0TXpmRk96VHNPaEtEX2JkVlhUZGZwVDc3LTBoNlN2eU1kbmU5bHd1cjhMSjlDZnl1bC10TUxSRWhMenJKTlZiNEFSSzBvdjZ3MklIbmVXOThsdnczb2FXOXVhaEw2a1I2T2RQRGYyZ1QyY0xWaTlDdnZzUzRaVDAtNUJiQXJGRV9fa0l5ZU0yREYzMXFCaC1fblRONGxxaXFZdEEta1A4emI1YXMtandaNjlMWTVJQ2VfekJQTVY3NkxOcHJMdXJZM3N6NW9UNFgyM3pld2JjOXZUb1hXU3lvSF9MR2R3SE5weElZQV83MGoyYVdRQloxR3IzZ19sNUhXT0YwSExnWFFUaHdWbGRHRTR6WUJlYVB3WnMzeHh3VmJhY2MxTWdjMHo1Q0RDd1ZiZE1DXzY5RkpIV1dDNUpaSndvVDNOWjU3YWJiN1JpcW5NUjNuYkNaUEdDbXVYQnphdHM5UlNkcExYWFd2V3RqWGxVT0RCWDdBOGg0SGhiQ3ZybHMxbE9xUVpFcmhfUHliR3RwQmw3TTFyNTJ1OE9ReVFCaGp5M0RubEJaYWRtcVpkd0YzQ3I2bjV2N21PTHJ0NmJpX2RWUUh6N3A0NmpueEpJZjFqLWdEaS1uN19BeTU3V0lHMDM4S1VLUnlicFBsRURBejhyOThLeDNBbW42NVVzYzlRemVhdmZUWW9oSWJuMkpJa19HRTRyRWxRdVdMbTMya2hQQktUYzIyZVZ2d1BfcWE4WGk2djJVNEtsOE1MVlFyX2dDam9fWDZvUkFnQk4xQ21uWDV5SHh4OGprV0FNOEZ5Nk5XVF9KNlBpd3dPZHIyb1VnZUhtcWxnRmR5ZllhVjlwdWJ0TUptMkxLbWZnTWYxWjdrbDQ4VVByOWh4WXc0VENvMGU0TVdKN2hXbmEzZVVjUk11V2FaZGo1SGlTUGVadi04SktUQ0xFWHlNeEYyNUV5by1WeW96MTNoOUJlVTN5RnpGN0RTM2MzSlNOemI4U0FWVVdhMEdEQVdybld4YXEwQmdSbVFYRkM4b1hiTXBnTVZlbzFvRXYyM2VFWmlUcDNXdkVQWnRtVG4yWWxuaEdMMzdqaXo0ZkxvU2xvVnB6OV9ENENkTl9Xc1BMLWUzVUpkTlNzOVNqSWRZUWp1bW9CWkJlWTU5TTQtOHhDM1NPS2NqSm5PM1Ytc2t4UGU1Z1hmb0ZIZW1SRUZrUlIteXI3ZE5xRFA4ei1GNHhTZXR1UFFHaU5BaXFQTXVEYXIzS3JnS0lJemJUeWVuVmEtRUU4eE44R1VxYWNsZUJUQ1BkWHRfWXM2dUY0RzNJQ25EbU1HVkdybmdKVkJTY1FCYXJudzdOWWhxbGY4X0ZrT1FjNzdrNGZzdW1NRTNMLTZMSjc5V3ljaVVmR1pnem8tcFJ0eTRfQ29nNDZBcGY1YmVBQ3J6aWVkaXhuVlhTZjRxalA3UG13Wldfdml5WVZzUkFoM0doZW9GLVJuWTkyVFEzb2Y3ODdxWkY0RU05OWw4bXBTc3R3M3R6VXdSYUtHWDAyQmI0S2xzNDFqajBnZ1hyZy1ZVXFGTV9sTWpGWmduRWlqbkV3ZHlzdzRTcGpOY2ZPaFh6azJpTGJwSXBnNmFmN2VPeGN0dW5nejJVUXBBRHcwLVhlN043NVF4ZWZtSTlzaXlNaWxQSVVtU0xhcFFzMVNnQzZmS1ZUV081RmhvODlXYkpXdkFhS0JaaHhEek5BY2Q3S0psM2xneWdvb25UOEdPQUE4RXF2MVF5ZDM3b0cyVnF5UlUyckhKNmU4bXctYXNGNm5HMEpCcENJQUY0TzMtUXJpcmpIdVktUjRjQng0d2h6Q204X1NyTk9FQ1BJd1c3ZnJaWkdvbkdKZkZyUXBRUWpBMnVpV2JqMS1NT3J5Y1FWYVlVdmV3US1VWU1sME1ibFhjQXdMenhMbWNlZDdDejhmdW01UkV3QW91M2I5N0xlX1Qxc0JudTJ1SkdnMnJXbU90TU83V2hiY2h3bmV3MV94d25vTlFMcHFhYmFrMk5INVhZcDlwZ2VhT3lCbVpUQW1qNlpCaXV3RXBMNHU2bWFITk1Oay1NdXdwVDRGSUN5aFg2aTJia24zZC1PYkJ4dDIzQjczSVJRbTBpTlpxSHpUcmh5aTZPZGtVYkEzeFllQ2JDM3FyVzlNb0xTUWJQOVBUSTRqYXYzWGZPQTFtZkRjVEZ5SDBmdHg5OXJpTG1lN2ZJQ2VoOVVTdEdGZGpPdVkxMGNObTRlbktCMGNveFJ4WkoxVmV4S3pNZm5RbTdpV2FDX3dsZFIxRkloWG5uaVFBcmxiVmo3RXdmbUhHNGVmSURzQlZOZ09ZVUlJd0tMcHA5ZTVQOVktMUtXY3ZLOFFUcXZWQWVUQTkxX003RzRWOEF3a0w5Z3ZQMVdTQk1XSDN1UnpmeGkzcnoxZ1A4R1FqVl9LWGludHRZZnhrSTR6Q3dxNnl6Z3RmaWdXQUJKbXh6Y2Vaem5mcUN6dkNtUnZoc1RMQlNBQjFjMW9BNjUxY19vUm1pVHVLdEFWTi1fOHJDc2t4ZVlNdHZRbnVPYWN5V2h4dlJKWXVQOFk3RGY3S2FKbTBIWmJnYjVBWG44Mlp2QUx3d0dhRjZ3QUtnaU42dHVPNmw2T2VEZXNSSVAtT2NvOXRNUjgwel83SkNTTnpuaW9vRllQSS1EVDJQRi1wOUJtY1RHNWNUamhFdkp5MUhIOEl6VmhmX2N1cFRGcmVTUDJWYWo2S05xZWV2S2h4UDVqbDgwSWRITG9STDRoTXNhTzUycjRsNHFsMmxraGY2TjV3ZHR0d3pwNFZxUEtkSEhJV1FpUlpNLUkzaXVScUdLT2F1ekFkRF80TmlVeTZ5akxubndzVnpMM2dfcFltTXZJcV9OS0RwVXN6aEZ0d2lnQ3llTzV3RzNlOThMSG03OU42X3A2dGdIbjFHY2FQdV9yUWFjd0xWOUJEVTVoV2plV1VIbG02TzRBaml2ZFFTekZETmYwUUptSUhCbi12N05XLVEzVFpYbF95T1UtR2J0Vk9GMDhpU3ZWOGZBcjU2RzQzUlJWN1F4TnRiSnpuajVKT256NlNTdXVtdDZ3b2U5a3lvSWZidmRhWXk4M19idlJjV1pfN2ZYcjBWb24yRGVDUXZXWkVpWTFEemhhbGVoaHQzNFZybmU1RS1mNktpREEwTm9leTFiUmYwMWhYS0FUanlJb0N5QUxwZUdTWkRQMHk2Y0JsM3VTbk5qdWxFTWg5TlEwQm5rYk9fR29oX2hOQXVZRVY4cnpqLUI0azNzMm5pZGxYd21XLXVFR0NWZzFIWEoxUkZ5dFIzam9HZWJzQWowUmFIMGZvcmVQQW04UXp1V3NzRk91bTVXSzhLWUcwbmdDYzFpekdkQWZuOFB4cTh3SVMyOEpKTFc4Y3hSdjBybFI3U3hKQkxHd01QS01PRkFnLU1EMWVXenRWTFcyV05RMnY0X0YxRDNKMEswTFhXSjBrSE9reTNfSzVjckRBVjlzVWNHLWdzNmhHUUxYeUFBZW8ybUp3MktsbTdUaDhqZzdXaGUxOHNiT19pTjBfcjBRNzA3RnJocEVHNUJESEhJa3p3ejltZ1ZBcEZVUFFZcXJuTTVfeVV1MTRGZGJVSmxXdU9uTWlSWXlxQWZIbkNyZTIwaWd3S0xBdzdkUU1ESWlQQjdIOHIyekZTZUNTLVo3YXlsSEVVUlF5Nzk2TWpsd3I3Y2tKNldMUWU5NUNhdTdYbUVPTWxILXVUQnB1SjBqRDlpMEpFdHJtSkNrdEhONVFhcGd3c2VBM3A2aUx3VUl0ZGcwMnloUVhzSU0tdFEyNC1Qd0N4VjdiVEhmOC1xSER1bkpDRElEODAzamU4dWxXS0p2UW00WHpPVDdBc2xBaHlpQWl6aWVtcG5ReXZHZU9CZVJYUTVIOS02WlVhTUFPTFo1cUl2bEhrOTZHY29VYmdWX3BfLTllZ0dDSmI5dDROMTFfc09tTkxjSjJNdGtqbmxXVkZuR0VaejRSQ210Y1BMQWdXSzdwaF9MRWFFYmQyY3VlSzFlYUlKcWhJQ0U0VTlyWWItTE1WWDRSbWhCTVlURWgzMDFzWjhQZzZ5V1ZRYy1yMmIzaW54VXdjYlFVODVNbTBWWWVmLUtMaDUzVjRMV2w0NGZZRzR6M2lsYlctY1MydnlDVUhheHhsaGFlaE5JZlhmcUhiQVphOExBVjB5NUhGeXRkakRndkkxQlhOaG5tNmd3RFBYVmpkNGxHbDNJd29BVFJzLXpSeDA1bzFLaGt3WklackQyd0E1SDhiWmpsNlhqZkZzRTlicWRxeTNZYi1yR3Q5dkdQVDA0Rk41UFVTSHR1ZFBTbXk2eDJOQ0pGVlUwU2hUanhrdExicUV1LUhUVm1CVjRIdGRHVlB6YkxLcnphbWNfYXpMODZ1VFJCcHpNSjg5YXlCOWZMeXE3YVdfRXhBMmtzNHg2ZnZPeW92Y0hjeEl5dE00TlZyeDF3Z21LVDZhUkhHcmJIOVZuUFNBeUk0bVc2Y1RGSHV3UDdMbmlRTlViZVRJQnNTVzlTUVgyamgwUmZjWXVXeUpKZmZJemRtODNSNjMwa3VvRExIaEVDd0czOElGX1NWVDFUYktmOExWVmVVUDhJXzktSVFpSE1ORDUyU2s0RUFXeHRFVWZWdUU5MUR5c3lGZ1BHV256djA1RWxrZi1lcFdpcFc5QVBLOU0yUkVpOHFnM0czNXlMZEVsUEcwc29lZnI2MDVBMHdyblZDOE9VaGh6R3JhTkhpNU9lRlQzMmJfeUE1RlN5WGpieHNxbEFLNVNYOU5yUE5jX1RuY29EVFhxeklSNmhIcGR1T2lEYzY2LXdxaG5xdWpXaEhtU1pJdmUwVFhYdHY4Uy16WWFuaHBqeU5neUdCRjh1a2lJbkpJc0ZHVW5YRm5hc19CNjlVZDd5VEt2YUJHYnRVNjFiZmp1Z05oaFkxSmF1ODZQb3FNMTh6b1ZDbjZUVHRHM2tCU1g1aEdzVUljX0hmWDEzeHQ1b3phNU16a0hrNHVwY2xpN3RicVYxSElzOVUyQWFvTTlIMXdvTU95alJ3elcza2ZNMDIwXzVjc3NPY0gwb252MFJLWHJ4LVNDUzZtUjRCaGw4U1lwdjVWVm1pY1phaTAxcWs4RFdpbHZoZzA2NklXUUwxVGhwZi1DeFhuM1dObVltdHcwYkhVamUxVnJHcHhaeWVVaUprNzFvNFJJSzlxamxTempmdXhIR2tPSnljSmZpQVdvRkN1WDJRX1ltTmJjUngwUmM2SlNyeTRmV0hRWjdWYjVjdkI2ZXE5RFlsZWxpZGhXLUJTenY3MmkwRFpwUFhocHA5QnlUZl9LaHRMOUNFUjg5MG9YQUZObkoyZDJoQW1KUHIydlVYcDdZQldlQTFiUkhVRjAtS3FQVDBaSkdLQlJ5M2ZvSi1CVG04TV9YVGU5RzlGemVCVTF4SEZVamRab2UwT0t1d2o2QkpfN2djVEJYYTBWYktrMTVWbUFTQ25oc3VpcGpGMXBBdVkwanlqaXdpbnp4d09ORkY2ZVNLZ1lvMHhDWlZ6b0hiczdfb2lIQXc5TTVVQXhETTVYSWVMYWdQT1dfQ2dKOWI3VlBuelBzTTEzaXhBSENTQVZITE9Gb1FqcE41QVdXZnVsVEFuSmJjUThCWEJPMUtfRkJ4ZjFyZ3I5TVNaemU0dzZzaWlNNUdFQ0k0cjRmZWpJekdjT0RvcEZpVWJUM000d0dlWEV5VURnbGpZLWdVOV9vUGY0YXlwZlFDMFF5M2w3Y29yeVE1ajVBbDRGMWpiLXNDQnk1cE9wQVA2ckdGdGI2MVdDd3Q4bS1mNHdxLVdmQ2JaOVp6d3laSlREdkswOEMxLVNoZW5HZTVkZzQ0Q1lhQXhvbVNSa2hxamQ2WHY1STg2OWZUZXJFSDI3LVBRZHMwYndWd09zemp3S3U0a1M3NzJPc0R6cVhLaG1MNnlsejdVY3FfcmljQl90emhBalBFOThiWVREZXZhNi1UYkpLUkd4RjlsUG1aNGxvOE9YRWZwTWJxVllCNzJ2MkEySHRHUXExUGV2U2diTVh4RkZYZXdqQXhUdERDQTBDZk5PYmNFelJGNXdIWjJ3TFFYVkI1RTRnNE41Rllub2taeFM3Y1VIbmFCemNjaDRGMUtZbEMyYzlsanlTajlOS1VQZHVLajNuSEIyVU1vQ2VvcVIzXzBIUVVGQjNVZWcwY0pwRTlWNmpfRTNZVHlKQ19jcGNjSkpEa0VpWjRpMks2TVVxdzNES1hPUm9ua2lRSnAxOVhnbk45bUw3b0Y3azNjdmx0VlotX3NLZkViQUZHaWd4aHVxQmJ1ZFBLZVBiTEVBX0pfU0w1S19KdmUzc1pKUFpGX3BvT0ZtUDdtWnVHWnEwSVF5akw2YkJ5Qk12ZFJOU0NrdGxFcGd5clZMcm5EVUlwWGdvWUd3dDh0UHE4emFkWWFfd1hCMDlUenpwb21ZMThQX0plekpSbGJGdGFZNjdRN2EtMlVHa2IxWGdzalpnR2otbndjT0JYbDBwN1owaE9kelQ4c24wRzlVMTFjb0Q1bkw1SnBHa1p4aGR2Ty1sbEtaVEE3aVRyX2dya2ROcnBSN1pDZ0xlS2xtYk4zblQ2VU1YdVo3ZDNJaXI0S05WSURmeHg2VE1vSGttQVhmWHVLVVIzVTNSVWZ2SUVORkhXQ3F6WmM5RERzNE5Nc2NFRnIyRWl0QWZmWERvLTZqdk4zM05ENkI4bkJ1aEZ0X19kOUFjY29FNDFCaFhvUUQ4elJPMzJybWdzOVJFTWc4OVNQUy1UTk9mS1dBVjlDSDhhaTI4LWMxd01KelNrSmVFYWJlZzk0RVpkc3pxSzVrLXVZOHNjQTFaWW02MGROUFVqbzh2a3V2WUFsY0FrYXljVHVoM1hNNXI3ZldCUUJPUzhKUWNuNDhfRjhFTHcxdHVyQklOdHozTkFZVlN1OVBfZWl1MVFFSmdOMGs2TmExeTZ1NkdnUHY4Y3JmcEdVMlVYOXFlYlB2SEJBbjZqSGxNS3hxZEFSVTdWSXV6NkZ6LWg5ZW1QV2NSVDluWE54T0kycHFfWkdzdUk0SjdZX1pSYzlRdmVBS2ZkOXFkRW8zRy1sZ1Z0SU8xcjVnN2F4RUZXZGFrTFdNVGN3VXFUdzdwRW81bE56aWttQ2I5SF90cVR2aGs1UWJOZWJZaGdzQkxpUWVTdlhLQkJfYnRSOEJGMjdHbjQzNFdodTdvSkxBWXNpLUs5djY3ekVIeFo5N05WNm9LRTVMdVhWS1hpQV9MYWg1ZzJacTUwbDVaeTJzU01xZFhneFhOaS00dldjUldKN1NmR3M5SEtHZkpGNUE0aHFUV3dtM0FXRFliYmVQczlnejhCcFp1SDRlT0RES1ltYVcxVUhrTFZZTVZCNHdYVE9LQWhIVXZ0cGllb2JyVzNEU19zSHJSZkFHejJkdmVfV0FXTDhfQk5TOXgyNmhRUmF2WTBUZzVoX0R3OThoaldxRjlFSHFWVUNuYVc2S2VweElSRDk1Y1ljSGY0cHNuOGl4VVZuaDFBOVBvdzFGMDdVZno1Mnh4ZFVqTkNKOURndXpoWDhHejJfQ0tBbzl3WklRdzhuc3lDUDdqOEVOZk9JRmhqT1Y2UkRHQUlQWHBpZ0pmbnFfNjY2SUVRbDY2YVUyeU8zWThaaXhKaHdNZlVRR0l5QUthOEx2RndiY2E1T3R5RHN3TlpqMHJQZm1tUTlGVEFwV3hOUVRNaXlnaTg0cGVmZkV5U25kQ1hQTm1hT1Rsak1NTnhfNjJJM1VRYVhONG9GS00zVEUzR2tFeWlKSHVzQUZEOVNLQXR2S3NwWmYwZHJ0X19ieWgyaks3OGtldzBmazZ6ZHltWFNPZ1hmSnJZeG9RY2VROFhwU2p6U3lOcl9tMzg0NDB0OUZzcE1MNDBYZHBSZHduLVpLV1JRMVg1Y25mWlhKWXUxYnRjVXNjR1RaS0gwZTBab1ZSUFRKRzkyRnp2NDVEVEFGenpzakFhX184NTlJT1NGQlRYTmFSbFpwT0owNGsxdU9HLWNKR0NDTlFzWlFmMXdSb2NuRHdtWGswb0ptMkI0d0tOZEhGZ3VzLXVWZWJHOGVZdXktTTdFR281eGJXbFo5VFMzX25jQ1hFdGMxTEJDSXQyZ3RSbzdjVEdQdVQ0dFBxOGZHVU8zbjVWVnNHSkQyYnVPN0VZTExkMjF0VjI4UE13OHBjdEs2X0dqNkFXckVFM2pVV2tFV1BHTURlRFNSdWFxdTNQWWR2dmRSdU5ScnotNV9MNU9KaG1sb3EwSlNPdEFmOUFsbU83T29XRjZpMG9hTEFUaFk4Z0FyUmV2MVEtVWVOYzNHYXBXMjhCb2tZQjBSZ2FmU1d4bU9JOEt5OElVVFdDRThaSUNReXNoRVcxemxJWE5ROUdxcG9YZmtiNWR2Z3QwWS1LNFBncmxJT2xBc3FvcGotV2l0VUI1ZzdjM3NkLW1EbEM0SUFCcmo5SmxmYWpQbkZqUkRhRGUyNHd5dHQxZXJKRG1yV09UV2NnSm9FakhVWXpKSkdOMjZHajJaZlh1SVh6aFp2ODBxRENBV3Y0MS1ROXpaOUVPMjM5NTBIdS1YcjdPTTdRTDRTdnhNdlBxQm5RV1Nnd1ZMT1VCWWVfdnAtVXZMMjNnbWtGQzczc1dWVENCcHd3STNLdURYdC1zaTc0dVh5aWhtMWtyU25xdkJsdTJGbzhHTjVxOEt1dkhyYjZuYS1kQkItcl9nMUlleG9hcHFWdlNpMlVZVEFTNnY0aUlidXc2VE1fcnpMWGltS21tUGVxS3F5Q1ZKWXNvU1B3TDh0N0wxekxrX29qbnd4cGNxakpkcVh3NEpMaU83cWV2Q1Zxb2RoLWl3QXhndHA5LXA4ZUZQNVIyVVkxUkREYjhfY1A4b1NLR182ejJhcW80eUNpWjdoc0ppOTFMZ2ZCN19ydUNNNWlWNV9Na2c0SzdVRVkyR2ttSFlFWmtPOVQzQl8tWW54TEVWR0U5M2hVeXNQa29aTDI3ZzJyUVJIVjVRSXoyejRWd3NUclpEU2tJakJuNnl0ZjUzSGhQQTVQSHhtYm5hci14cmpqUFVXZkNxbXI4aUpUZENCMVI1alZyWVlVTFBkRUNUXzZ4eFBEOF8zeUJiMTBRaWthMF9ESVY0V3FVM0xxTnVtOExRbGdBS2ZhLW5xQzlXOTEzLVRuOWlCc29ldGZKa19HUER2dXpjMWQtenItdUVLaFZJTVphN3VrS1BUelBYaDNQeVY4YmUxSzlVekx4alpFY09rYVpSa0o3TEZld3Z6c2ExZkpfMmxKdWlscURyR2lMcXZxOGJGVFNBemdSV2IxNi1QV3l5b295NnZzVmIyYmttakw1dVdTZnJXTDFEal84MWFNaEIyRjFGa1Q3STdjZTNWb3RuSVNnTWpvSmQzRjNBMC1HN0ZPT3UyVHRDd2lxaWVzRzhsLUtrNkhyUDhvaE9rWWNibUZWOE9TUGQ5QXRiTDRwVHo1Wm1ueDVPeHhNQWxuU19FZ3ZDRTR0LWFOeVRxUHUtOE0yaU9BUGdLSkNXbzJJbTBtTnllemhudzlQd3hMMXN3LVRmaGxVamRBa2dyWXdZX3VhOVl2ZlVtbjc3amRzc0lRNlVrQjRvM0J6SGZTYVlmYzAtQi1TNDE4NnRLT1lrWW9hU0hjLTdaZVMzREdLdVVmR051R1M4bXZjY3FfSVlQamMwNy1vMDVkbTk2U240dENtLUpHb0Zvd3llS1JkcmVVQnVBZ0tsM2JMVU9yTnIzZHhfdGlSLUhkd19FZ0hwQ3ZVV1QyY3hfMnoxRUdYOWsxandUWm03ZHVvdjZNQklyOHI5TDJRb2VtZE1OY2lEWThiN0NCNWdtb3FKZFlhbTBLSTEweFhxM1lGeWxhNUYtcnBrdkljMDh3VFpXbWo5RHN2N0FVZ1ZnRXl5akZkdVFhSUR6Z1NRQ3J3MFAzUzVGckJGekxzSmFqbXpTZm92enRQZDc4a0xjS25vTDZEZDBjeENOSDhYUTlWNVpJODdXNldMUWlPQk9odGU1d1hDRXNMZkJqVU5VNjdrUmJudWhtYUlZeXNNb1lHWkx2RVZYRmZSOXhEN1RPS3JCWTVOSUJGU1hFaF9zanhoMlZWMkZiTXNSY0dMa1ZFMTcxYXl4c3o1Z1U0M1JZS1dzTS0zQVZrUjFuVjhVMVFST0MxYXlnX29pajl1aGZDZ3YtSGl5U09SdXVYSUktOEQyYUp0akxEdHp0ZDhqRjY5TUwxLW1XbnBBd1RnRmtxNWRmdnd0WHk4VjhLOGVjRFdlQk1WVjA5YUx0djhSeGk4QnVBeWhUcXhJc21SM21rQmplX3ZhU0dWM3AzMklZMzg4UmdSM19vd2FlcHdCTmFWSVU5ZGtOU08yRTQydWJBV0V6RVkxODhNamstMDdqeXJCeXk2dWI0MTlvYzdxb2p1aVR6b0FPQmZDTTUtaEIzSTI2ZlppX0hrMjFxRllSQmFFbktxSUU4eGVrbjloc2VvTUY2NXlNWU11VG11azVTbElsZzJCUUFtVFVqM2h3bjBSV0pmaXF0cGgwRXI3b1N3bklVWThJeC1pdFM0c2lQWlBOLXBCNzhJZm84S0ZUZmxKNVpfSHlpM2dzanJRcm1nSUd0eXVyY1k0QkxlN19SODN2WXlySVpncDA2MUlZODYwLWtidHRtZWRzTWVZZVQyM29mczBmLXNqTzdNN3hmbzdDZW81c1NmSXdtd1BNSU1jZlZfOEVDZF9WNXJraG1xU0dMSXZ5R20zRnp5aWdtRk9YTVJYNzZkR1B0dlVNcm5EeGVFQmJZMlp5Skg3U0I4amNUMVNYZkFSMlRweTFoSTNoRENIeE9JYXlVbmFtdXpxaElTUTVHMlgzVE91czVXNjlFb1F3TGtnY19VcW1Kd3pyZTJuOE5TUE9SMEgzNXdndkZuQ2I5WFZ6QXBZc0xaeHJXSG5Wd1R5XzhjUHRtQ2ZEX1hBY3pKMGJOa0NnV1R2VDAyYWhWb2YyQUlVVld2NTFDV3gzOUhkOXNRRzBuX0dRNHMxeU1rVlAwdXFPem1iVVRPQ1VkYnNlVDdHSlh6cTQ0TTlhMWctRU1XTnNWazhheURuYlhsdTNhdFphSk1TLVJGTWNFbFNleHppRXN0V1VFV1FIeEE2c3Vnd3JoSUxsYTNDam5xekxrSG1LSHM1c3p5U1JVTnV2MDFuRVROenFGam1feTRCZUZFalZrakRPWTJIWXZPNGlZRmVjcFlQZWtEMUowM2pBMzVZQWVTOXYtb0FkSmlfbHFNQzFqQTJkb1QxSnZHU0w5Q1hsN1YwVXdFNEZ2TTY1VnhXN0RsV0VuUlBmQ2h1aE4wTGN4WkVYNTlqa2x2cEFaSUktQ1Qza2UyTTRPUE01S1o3YjlXN2U2QWFFc3g2LUY3WFJ5dW1iUUZBeld6S1g2YXBCQlBvOFlwdzRodVIza0VnWU1XbXRzdktaZzUwa1Z5VFYxWWFfVW1qLVZzSXpEVklNRkJjb01ON0VsXzVkaFd1Vkp3WFhzRVBfLXBrc0pkRmp2bzYtdUNrMjZDVXBGaE9Wd3p6bjY0bjEyQVVkX29VSmVnSUJTdFhDeGY4YlM2ZVI0SDdaN0NTZGtjY2lxUnBRSUROMDR4LXR2SHFMVlFMOF8wTUJnN3RJZENTY1A0dTlUZmlWeVNhSmFkZ0tqUlE4LUdYM3VfZXpNc2cwWnV5QjdIS3BwVDdUZENWNzRPeTVxb1g0NFZTRFgydzd1eXNOUU5fWkIyUlJCSTNkTFYtTHFSMDBSR0J3Y2pneGxLUEh3UmFrZG9GWXNIbWhTMGRmT1RrN2tEb1lDd0dQSzJLU0VOMXFNcklMcy0xWFVYeWRmRVdQZGg1RGtQUTVZMkJOTHNuY0U3MDRfUXRFLS1CZjIzWURhYnFqV2Y5RFdvT3hOcnBMZldPX1Y0ckMzWW1WVVdvS19ZZE5aRXd6NzhZOEtKVlh4dlFaQWp0Y190VWZpcEQzaHl2QXBzajhvbjBLNWJKb2txeEtBRHJLNi1mdGV2QVBmV2s1blItY0xSTEJRb2lMRnNGTGpNVW4xdlpRVVBHWmxjRW9EbnQ3TWxZUUpTa25faDZNY0t2em5LYjMtRjdZN2g4RlgwYkNCZXZXNldaUnVtR1I5SmpnYi1mU0RybDgxa0dvbEJXVmR4TGFKRVllRjV6Z2NpTTdwVk9Dc2VuRlp3Ty1tckR3aE1yX24zTE5PTkVYbV9zRXgxRm1VWWluRnQ3SmFLV3hLd3hqeUlFS3d1UnJkc1VnMlp4SlZadHdGM29OR25CQXVrcERKMlBTVElCYm0tQVNhel91T2pMSlZvRmNOWWdod0k3QkJpaDZmX3VuaTBhOWx6cXJFM0tPMk5hc1ZSQlJKYXo2VEtHNXRCdGFaRjhOdFBRbzRiTmJXNllXVkxHMWZwLUZIZGZ4cTJucDhEeW5oR2lJSmhnd1NZTlJtVnZQdVp0QzhwNGFrZGVPdW1iRGdXU0JOSWR3SFplX0hmNUx3cmlFdHU5TnAyd2NRcHNLRkd0cjFFNi1YckRsR0N0dFV3dzNiS2FDYXFCY0xadUlEbmx3Rk5DY19reW9ubEdHZGJqWE1TZGhJUXI1c3BrZGNZSlVWM3lEU0xJejlvdkt6MEdlcmJucndLZk9FYlZtUFJNbEZJSHVxWk1qSGNUc0VhaVBxMDhsZkZzMHBUZlNST2NlVjNLZjk4Wm1iSU1DSnUyR1gzRjlrSzRHLXlWeGp5TTR5eDRNcHRkcEhGVnk1UHVZNWx2eEdiOVU2TGZJR2hXTDlCLVkyOVBoWENpNEdGT1M4MFlQSlJlSG1obG5Vc01uamppQ3hsTXhSY2tqLTREZDVtTUFDVHRIN3NLQ0FfalQtOTRGV0M0S2hEZkpkMVVJaVREeUJkdi1JMHlqbjlzdlJUa3lURlZERkVUV0xCUC1BVTZoMEU1WGtsOFpIVU42ZzV6bHpLcmJoUjUzWi13VXpDN2U1X0paQ3BsbnhOVm5uWFUydTFPMkU0dlBNZmF1UGdxcTRoVnFxR1MyRWo2dkIwLTlBbFpITEwtdWl0MW1jLWNaSkVkQzI5QndCeWJRU3RZSTNYUU1NXzdQOFAydFlLQm1qcGxGaEpUdzFNM2RkNGVSS08tUlpIN3BmQTVtYmtGUXM3UG16S2h0aDRLRS1taUI5RV9xRHZsT2tpVEpONTRrM19iWG04N0VRTHF6YmRLWGNtY3JodXVzZUJWd08wRmRGOHBXdHNJWkZ6NFFWV3EyTWw1V0ljd05IRVZJNlhsUTAzelFnd3lmY2VySHpnV082VzJYcDhNeGlsYmJKUmw2Nld1N3hOQk9Pc2FjVFpJVW1SMWVNSmNxWHZHZnhOLTFvV0hESVo5MjdaRzhjMmRYb1hPcnRtc1RrcXBtRE9uUU5HZXhwTEhMd2U0S2V4VzN6RFJkZGFIMHNwVGcwYlpvRzNoMmxtaGVLMG1OQ082YUE5RjJZZmRHYXNWRTRHNmJBb19nakswZk9uajc1dWZuM0ZxU1d4NVBZTUVxdzlzQjR6dTdFaWZ6VTFRVWlJTnRDYno1MGNfMkUtWWZFNS1wZVRHN2FPRDZhUzUwTjNYMDlWWkRuOWtPZHhGQWJEQWRIdnlSd0duanBmTDRHbl9sdDlRZFk4MHZiQWNnUmVPU3N3eWY3aUJMSDBHaXMySUVRT1hXUXl0ODRvVi02cVUxQ1RnaTB1eE9vTmM1YlZ6c1hyT0dZR2llSzNuZ0FGRjRBN2lwUjNsSHBER3JHTlNGZHN6R3BSclBFMTRkejlyS3g2TzlxcUFNN1JGbWpUVE5ESGdTNndxOXhBdWhiTGMzTnNndlZldDYzeU85bkVxMDJialdubHJRdE5FYVVLNTJSLWM4Ym11S3Z4TWxBcEprVXFNZnFURjE3ck9jYjBkaFh0NHo1ZVZZUENsU1JLOU44MjdMM1BBaWVNMDJjX09ycHdxS2MwUllkUmtEdFo3bm8tQlVHVWJZUzFlN0swYjlGU1BNaHNmRzZSbUlQRDc0OC14eUVtRDIzNDhFZUZvaEVYVWdCWXcxV0pLdFpvRXhoT3JoLUNPMEprU0Q1dmxZSUNQbE5KMUM0dS1vWXhfTlJMWXkyU1hCN09oWHhMWnRwR2ptRU1jYTg3ZDZlRUlNUl84a3ZJeDJWZFZvRGs5YUJvbEk5NFNsdHRQc05vZndjT3Q4dHNkczhCZS0tendJc2Jpek1KeE41R3hTMUlGMDFtS3o4ZFQ2YTc0c3c0elZKbXFTMnpTajRmT2I0OFVQa0U0UjR0OVhVSWx0R2FRdDcwU3RlRXdhMEdLU1NDbEMyZ2YxdTFtNmJYR1Jxa19paWJmVW1VT1FPZEJxS0I0c3hveGE1MXZ3M0VRUGp4WFk5c2dWbW9ONzRzc3ctcDhTLVpQVVhEVUZCdl81Z1dqRDNwTnk5WW1rYlNlOGwwVWtoRkFmY1g4RGFUamxWNXNQQ3Bra3ZGU0NIeGIxVy1DUGRoWXkyN1BYdTdqNXVsSHRhTm5KWUs4VmxxYktPeW4wakRIQWRlQXVULXNZSUxONG96REVDaWZySnlydkxlUDdZd1dadmlKal9QOXVSU2V2M19NYzJRRTRUN3JvbDNuSmxYdnAyNW9kLTRNd0JtNFg1OThPdHJRRTFONTN1SWFuRlJkNGs0TlY3YzZqLW95c0dacTNjXzRnV2lTbFFsdzE1VXh2al9GQlJ4NTh5U09aX3RTUlZtLVZ6MXpkM09RWDk0NXZVX1o0T25tVWY4N1NYYTNrb2FBQkl6cWhFM01Pdk5HYlVUVkZxZEcyOVBHbmhUY2M4U3FrYk9udE8zSVNtYlJXOGhzRmgwZHREYXAxXzVFSmJVcG9PbDFwWWlmV2dpM0NoREpEUWZVdGxoMnFjRlFCejBOckpxQl9qanAwNjJEVm1iTmExLU92MlVZNHlxN3AzSkg0NkJCOFdZY1l5RW5iWGcxREVJSFQ2dXA2UGhvVGVlVHBFRnZ3UGZjM2JvaU5mdUlyT21CWDBTUm9yVnFuVGgzSlBhNlVQLUtZbGZqMlNrOUJVMzJoWjcyeEhSdHhEQUY3Sy1DMjllUGc4MDB1Mm5BSi0tRW9hMFY4ck1sZFRDdEs5Y1RCRVdIUlBsc0NYeXp1dFgtNU9DLWdwa1ItMlJqc3hFb2NiZHMxZm1RUDFoS2tjbFZzcGkyc3BaNVh2YkZGam42am1QeXUzMXhUdWRXdDFBN3pZQy1yTVlDcWdaejhNV0JZVE1PX0tEdVN1NzgxSWtHdGpRcHFBTmNzLXpBd1pxaWJLQmVsY2hfeTBOQVlKMEFQcEhEbTNFNmdDclgtb3E1LXFsWVBNM2ZoTXNNYUxSeEVCQ2RLbm9pcHJfbmRKcFRTWnVCeHJmUjh6U3ZMR1FXVXRfZDhpMllXMFI3WGZRUXl6Q2hRYW5VVkpHNURRbVdjdGYweW5ZeDNHMTM4ZjB6WDBnSE1vR2FvdVJVM19UMkYyUGl6bXpfSi0xNFZ0WVBDekpqZEpZOHE3TGpxU05GTndjREktMkN5RG9vdnZtRnB0QTg3X2hZLWpHUmpGaG44SXZydDlDLVVhRF9pdThSSURFLTZjTjcwd2MtbFJpVkdHZnJwdEh6NUxmUXJMajRBcmVndXpvVHJWQURFMjRFTmMxaVVrZ05wWV9ELXpLNDJ4cjNXU05jSVBQd2JyQk1YeEE2d0NnN0IwRkZhclRNcFVYQTN6ak4tX0hfZzhSNjk4Qlh3V3lUNjdSZzNCUDItbEFxTll4bTJvWngwSmExLTFTbFhmVXBWelgwQl9ERzNsUE4xLXBrUk9jZENwak9WNHJFajdVYVlQNHI2NVhZT3B4WjNKNWZialMxNWJ0QXUtcnJ2NGRzNVF0Xy05dzg2QktWVEZNQVkwYWtmVDVtNE9faHJnanhJTHJ0TVBaQVVOdEE4MlotbHBQdXA2S1JEbTAzSEppaEtFbTM5SmNPclR0cU0yQ19qTzdZTFFtRG9MNWp6RDJxNWRyNkNxVWZHSl9OcjNfeTJ2ZXVrSkFuczg4dWE3RzE5aU1mRDMwTnNseVpfWEJ0T1p2dVpWbnFVTWlqOWdKdFJnN3BOQ2hYVjJXUEpxSmNibm1QS2U1RWxTZ2hydVVFWlVMcmpacVVhaVNuUkJHSmFhcFVvWDRqVkhPdVNGVnJhWTZkYzdodEVBMGhNcGpPZFNJbWxtcWVLaHJQMUlEVUlLREZTSHpqN1l4blFaWXR3aHdaV0tWMmtFclljTFhNQjdBYjBaWlJJX0JfOGtaYmt2Yl81OGhHT1BvdmoxY29WaktmcEk2Q09leU1SX3VSMUhZTDFBRVE1djd0dnhkenVTWm5vVWZhYld2LXQzOUQ1NTg1UXQtNzlXNW10MGxOUk9TRDc2WnBWajFJcDY0RWNCVTJyVThtdHZsVXBVOXpzY0hHb2J3SnVDV3hrOEFGRF9TQVN6WkZHcER6ZFY1aS1kZk1CYWI1THZ5eXNvU0pJX0hFTWVtV3Y5d0s3NFhjTUlLQXhlck1vUkZneGE0QXIyRW1VVzlTeS01bGQ4a29UbzIxZ2d1WDROVTMyZlFjeWNnMlR4SHJNeDlWeVk2MEVjWFUzZ2YwMDJENEcyQVU5Z3hBMV9BZDJjbEVzOGNWRkhybEJHMGVuYmR0eGVnZjYxZVNjcWhYTktkYWdvbHJOYk1CVzh4Y2p5eWJLdlNpbnpUYVQycXZQWElFMDdDTkJ6bkd2SWJNcEpyUTdhQW8zY0g4Q0NMV2JYS29UWWhkWWRkVzJYMzJESmFITVRKaXYwNjZmVmFHMWRZdmJFMEp5eXRaSFlCWlFkMzkwUThZWUx1ZTlmaXRkLVJ5aWNPZTR5eVhKSzU5bGZ5aEhFSERFNmpxMjFxdTE5MlZneG15SmVueFkwdFlGeTdEUjVRakZtdVRhSkNKNHpYc0J1X2l2T0lpWW41SWlXQlB3WTkxdmxGQ1JXZHFmNHZZbGk1aU4wbHdKM1dZelVfcWpmazlvVVJDS2VkZWtnTTRpSlNrcWZaZWJKdURxTkx5ZW9YOE1DelUxSlIyLU5UeHNIOUhiR0h6MFZSb0Jydk05V3JvTE01enU4TWlKX2g4X3dyQnk4b3pCcWlyNDNFOUo0R2lYQXk3b0JCWktHaHRUeTNBenpRLXJyS19PNGlRTjExSmhwU0ZrNWJrY3ZJY0Q2cUpuNkJucFktNE85dGhHMldDTjNMak9MbksxRjdXbE91ZmlPSThzVGJLRkg3ZDVHZUFpclJGSzV6aE43VmpXUW1oeFJkaFp1dWxYcmxvZjQ0U0JjS1ZFMHR4YlVMQkYzX2l1cnIzRlFYUjZLcmUyNHlwNnZ1R0pkRTdVeEFCeVJ4YkxiejBGMk10c0FsNlpqM1FEbFVOTTFkYkdYQVRYM3JUUXVTQWx5N0l1TzRIX2dxM1pQVkVLLXdFQy1WcVprTDJLN0Zfbi1HMmdGUFBtWE93M28xdUQxXzdYOW1fU05sR3B1TE1jNUxWdXo0dmpKRlQxSlE5M3J5clBLT1lBX1pTZkpmcEhfb2V6a2dPbzNuVkNaVUlmSjZTUUJPSnZYbzVFR3RyV3dMS1ZZTW12dS1QM09aYmFialRQbHJUbWN4bTk5RmpwaGpBQkk3RzVsWlJLNDV4ZFl5ZHFyMktKU0NuM2lXUUtEVGI4bWVLU0QxZHl4Xzc3VHVzeURzS3lvSkF2Ylg1LXQ2WHJHcGpkOXg2QzZ3RTZPNzZIQ013dUI3bTZXVHdUb1psalA4bXJBMUtXV016dkJxYW9hcDYtVDFYOHJCNUQ0NnFhdXI4M0U0SXNMR1ZDT1IwdFkzVW5VS3RzcGt0QzBEeW5KOER2eXFvRDZNOUxEeWdxeVE5cnRMY2RzMUp2OTBDWE03aW51YUMxa3lFWG56dVhTMWFvZWdueFR6dDNENkhBMlJ3NFE1aWVNZlZCVFBfWkpfM3FlSnkxeGR3aGdtOHhweWVuNGhuQkp5OHl3Qmxla2RZdDFkbTdEVjNPZXUwWmtnR3M4bUxFM042TUl3cVRFdTFIRTJtQzk3dm9XTkZjN2UwUm1ZZndTS0YtUmowbGpfUmRweTVydWlzZ2FkZDZqaHlWaVpoTmhnbjI4ZUJhU1RtTXQ2bmxrR1FtclhHUXpXSVNWS3liT1VramxjNDRRclhuNGp0R1Rfc0NwWFFiQ2MyLUZOSlR1dmUxQmFzR2g1TFlCMWhFZUdBQ2VsTnFYQ2Q4N3hqU2xjN09sb0hfWmVIZjZIOG1odjVLWUFzaUljZVE0TndmQTRLZkltNXB5N2lkano2dkRhcHJvcE5KVDk5aGVCYlg2ejM0V01CV195NDZFd2phZ2JFdEhyWklFd01jY09LeVVmOHpERHVUUXhIMkZCVkxiWjdhVk45aDBXLTgzVzFfdHBqRHFZMU54Q3lCXzlMa1Y0Mk1yUFRib2JrQUdiVjBQUVhGQy1rQWNFSmlEYl9iakt2UkJlMGNWcG01TmxXMlktTGJSbDVrYVhWYkZkNGZBRHRSQWx1T3paamQ5TktLeU5NRUxteHRKZ0RHTmx4UXRGYVlsUV9wNm9UZFRnUUR2dm40UWpTN1l2YUN3c1p4ODJ3Um5MT0pFakNhUlJ3cGVpN2lqWFZkbXB6b0NoT2lsa1FhazkwSzR5dksydGtuT1ZuTm5iSkQ0U1B2a29jRVdMV0tld3hrazFEMncweVNhRUlOaDVKd3BpVllwYld0UnV3d2k1dmpneTNYNW1CTjhWWlJpdDFrNWU2R2tWOUg1LWRvcDdLLWE5R2JXT2YxenZpdFRIaDdhVF9tSDZiTXpDeFpveEFPbTB5Z0kxUENIai1NYkhuMDhRRENJbGEyTnEyekFYZUd5dFBPWEVvU2h1WkM0Q2JKYmw0U1RMcHR0QVh0QURUR0dtZmlOVHQyQmdLTUx3aVRTSHFNaURVZHFRNWJHbkMwcmVURUd6QWpjeEgtZDhMbmtDeXU5bVFpQ0swZXNSTVVnNDJXOHFrRExNa21PaS12cHM0TjBKbXhWQ3FwcDVpT2ZCM0VEVkd3THE0UlRvclo4a2NiTHZ3YWhQc2NGVWtRdmpZSEpIUkJ5bFRMajZQTWdSY3hxeFpieHVVVHFYbFNrT1VkOFJmU0NaeWVqaXJOYm9TZlFCYlR4M2JlRGtGeUlIb3Nscl9abnI1MmR6NVhWMGxGMUVZZWxwLXRWbFZ6TE9kaE1RbS16QlNNdDBlLUM3ajNTWUtFM0szNUhyN1Y0ek5sNzA0YWFBQnY0bG45NlRoRkV6aVBOZjI2MlJJdy0ycUpZaVpBSGFhV2kxNEdJb1cwdmZNOFB5QmFpTXhDV1FXRlQ5VlJEZU9YZl9HV1loVU1fRjlMdlVOZG02NDBkMVROTDBtYXFPTkUxTXpNWW9hS0UxWDJHMjh5RUZ1aGgwVm9DdURDbHFzTnZ3OFZPVE10RENTTHZ0UjF2Q1JZS2hXNjlFdlNmbFM0Zll6ZktsaThnaDQ2ckYycG5FUnlfQzNVNXZ5MUQxTS1LSHNsVGs3ckZGOTFGSDg0NlB6RmFHQWFJR2VnYmhyb2RBVllzdGp6UmhrMWRLOFp4RzdCSXFMRGVUY1Nhekw5a2w2aUdUSk1uQU0wd2FvWGhfQ0FhNzczQk5tTFBRMHFBdGtYeUZoaEEtMFFkZE5aS3M0WHhBdFlGb1lfbVg2RzFzQy0zeGJXOEdZRkNiUlJrNWFnUmdoWlhPeVRRUDdOV25qWjYyYS05YWdxaUtkOXVWM01jb1JnT0RMU1p3Y3BYblgwMmVjcU1Dd2xYZkhQUk4zZ05XQ2dBY3M1MlVYOEx1RFFYZVhrRm5oQkFUaFdTOEFUN00ydEJ1anQ4TGtMSVJxcHNIVkhzMlNockk3RVFnUEtFSFpsWDFUQjNXSFplUVN4TlFCT05sM0xUcjlYWnc2N0stYWtiTzNCTUlaTVY5OWx4bmlxS2FlaE5kenZKTXgwTXFLelpfMEtqWEhZcmxLRElMWVcwN2N4RlhKZHhsLWdEd0h1UTJrT1Frcjl4VV9FTWZqQTlmZnU3RTlwcGtNd3R1RG1CMXlIM2dqN3N5NjdLdDVQbHplMmtQQS1LQm1FRk5ZVm92ZmdvSWpyZUFoZjN5cHZmWEp5RnRmZTFuWTNIUmtlSU5SQVZMbExWNU5UQWtpUUM4UzE2eUJnYnNGNXMzR2oxTkN3YXQ0ZnR2dmNBX2Vya09fZHpfZnI5eGl4d0FPN1ZqRnJ5X1ZWSFJyeDU5bEJZZ2M5aWRSZ3pPZDBWMllLZnFhVHI1QndUb1VVYWtYU0EzZ3RDNlBtM0xmVjhqVFpqamFjb2FuVHBDeXdST1VFNDRNeW94YmJHa2FWOUEtSzZUUm8zMWZSYThubnMzX1JXTTdtZEtHZjFzakFsMG9rZG40ZmY2VXZBZlU2RjJrQ2htd0RZWDRWbFUwYmg2VEFPRzJ5V2s2bWQ4bGtPaDRtNHB2QWx2YzFDMFlDeV9XM1RXVkdxem5lX0tXVVNIWkQ4UVZVdTc5em9qNFN5cndIdjJWWDRfQTRpQ3dqVVg3TEc3M2VkVmF5ZDZPZDAwMExMTC03TU5McHV2MUFwVzNwSzBMYkhxNk9uOEFTeE41OEZsZElCdHBFTVp0UHY4UFJUWnk4RnIxazl0YVFsc2tva3Z0bHFGdy1ZNGpValJPWUJ2c2dVZDB5aE5rX3N3MFRvckd1d3FZWDNqcDFlMXFEQU9iUExZc2hkdzhUUzhxc21YWmE5cWlpc2RtYmFEelJXUlV1WE1sSVJhQ0NSVEhCYXJjX3VxRG9GYkluMG5sU184N3pCU3laa185WFJUVENudGQ2aVFTZURJSWtTdDlZT2FTUTM0a0JaYkZNMExwUUZsZjExbEVSejdKaGhFTEI5RFM1MndTc01iMW0tR0VxQ2NZOFNpVGhPUkhjemZVc0NsQTJFWHFST3cwYm9kbDVuM1RCRGZaNXNXeFhXV2Y0ZHJ1YWVIRkMyLXJBSGJWS291WUR6N3dKS2pwZ2hZWm9fTy1KazRoUjJoMFY0YXZtaENhNXU1SzZ0RHFaT29qcDA4UDlsYzkzMThHejNYTEc3WnhXWFF3cDhnUk04akF0bmN1a3RURkpINW9wU21GcUZHMWFzRks3dGRScGExVnQtdHVaYkdQQk5iLVRTck9QM2RBZXpoVEl4ZTh5cnFOUXhQeVZsRjZkU1R4dTdoeHdXRFlSbHJCa05lRWN4VWd4SmxHM0VsY1BsZEQwWjBZTnNiemhNZ0JEd193blhyZDFndFR1cUZGZUNJRGNMWVNBNGszS0ZEelNOZXJqMWlrV2Uyb29HN3lnQlVVWEt6UHc1SGtOVnA5M0RORWhOTDRpWi1iSVM1U21ZV0xKRHc4TlJxR3BSbExFSUlvbzN5bVd2UHZuU05Dd3VKYUppXzhHVHpGcDRCbndUbnc3VnNxYy05OTVQTEZqT2tRSmhvcUNIUnF6VzVfd2tJQUswbF84QVRxUVZrRWFKV0NBVUZNREpudEtXeEdubWVoV1hkSU5na0Q3Q19VY2ZPdDZZeWdBblpSbDdqMjZOV2JtN1dNUDcyMU9MTHVUd0JmQW9DbGJQbmp4Mlp6U1dQNy1wcm9ycm05MmxaRnEzaG5JbnRnbDNKdUEzeDVmc0liZG5YQmZyUFRCRHhYVDViR0lTSDJiODNBTnZCQ2hvY1N0LWpaMTlCcDJfMlYtajVPc2RDTVVjT0JldFExWWJRbzJvc010Z0VBYnNZUnJPX3BZOEhxaEFhcHViRnNlNlRtVmF4cmE0R0djS0hoeFRYZHBZUEFmbWNucFdWbFRlMGw4NHpMUUlWOGtzeG14LWhiYWZOejN2ckpxWUxjOU1GWTRCaTNQMnd0dUhJV24wWlpkWGFXVm82SlR3WnZHRHN5NU5GWGJJeUV2SjY4ZTFEXzlCWHJZQ3JVa1BtRUNtdWxEYjFteGNkZ1FwTmNSUWxxd25UN0FlMFFockhkc3l5cnk3ZUdjaXNCbmt1Um9UVkVncGlucUdsNTl3cGxkeEc1RGo3Y1hOVE1uR0x1dHdzaktNaUtfcHM5NGV3R05VeGc2Y2FSWVIxRHJpQTJMLVJUTGRuVDE2ak5mWXhvU2FFa2gyZU8tRmNJSWwta0NuSzBCeU9aZWJydTloeC1nMjNsTTZvZlp5R043eHhoVl95QXRFQUJIM1Z1UFh4YTFXQnk2aUVjbm1vV09aTTd2UnlpdUlDaUx6dXJKeFFucVMwVUxkOUdldkVHTUd1eGoycnhJbFFuNWRVMTU1VmZXbVRQRF9lNUlTcTlsdlY2WE1CNzd0QmhJSVUtT0RkSWNWRVhpbl9pbll2blVlR3BTVW5ua3N5anJMLTNka1hoTlR1ZjZBNDJva19iNndjR0l6c2tfTkxlOXRpNk11MVFXZnotYzFMdWVmQlpQRjFZaFVQeU5hRTJsU3FJTFh2d0xTNW5jc2JMUXlValhaVndfaEl6aDNVc0k3S2VreTQtdjlHeldRU2h2ZGRoTjdTR3UtZ0NzS0hRV21VVXRHMHB6MU93cGVXLVJkdWpQZnlERVNHem9aVnplN29XNXh1V3pmNnVtNW0yTnRGbWVnd19uRV9qRG9FcF9xdU1sTkNidDhrOWVVOGdzQmtoMlA2cFRsaExteVotbWV0TTRGVzZTdk96MVQ4V2pLcnFaY2FOT2VXNWdGYkNlTzE0cHhVZFhtd2l1MllqdGxYOU82RS1BUmVvSGxnVmZFUUZLcmtsQ0pzU1JrZGNFeWRFUGRyNUVwbmZpdXE1U3l0NndDSk9BMlhVb0hCRmhHbUIzendvMXliNzV0bm1MZ0tRTjR6Z215eWw0MVRpMUFSNm9JRDJGaHR5MHczWDN0b2gzYVV2UzZyWkpxVFgyQ3hXWTZ2SVZzcVdIa2dqLWpsYV9OeFhXVV8ybzdZaWRhY1B6eGw4UUxzeFFzeXRXVlMySVlUcjJNRlp6cGc1QUhsS2Z1SUt5NkFYLTF5R05zVTR3WlU1RkJXZ2oxTlNVY3FZVE93RURxT2ZPRGNjWExZWWxCQm1sX2FHYkMxNVJ4VUxqUGJPQ28xdmVjV2pFWWdiSW1sRk9TS3pVV2hYVnhPbDlNYXYtTW4zaWlMckZHM1pWQU0yTC1zMHlwV0VEVVVsQmFqTmhON1RsT0VrZDY4emN5TWJqSUIwdjh4RXU0bVotRzR6cXRXUjU1eThMV1hNTHhVcW8yNXVpNW9fNlZ5S3JIZTNTenIwNUhSTTFnQ3ZuSHp0bk5QV0JOWDBEeHRpMjdseURPcFZOeTQxWHV3Ump4WURmWG4yR3YwbnFsQXN2bmZXbmFzSWNzVVhIcmNiSkVWQmRKRXlmcG5RWDB1WGtoaUpVZVFWd0UyQUVvRWhlTHhSTTR1Q2VGbm5hUEplU1dReDZScFVCN2t6azB6LVVqLXZqelhUaDZrVTF0SGY2R0JadnBCbW01WlB0bVJGZTRvYVU0SW9mRnp1VGwzUEl4V0RoQ2xMTVR3RkNUQU1telNRM292bVdyYWZqX2Q0MC1nQVgyaWxRVWhwakJXVThyc3Rtc1NaY3FYcWFsRDNsbm4tdTBkLUU1TTEyQjdhaFRsYWhRem82cHFnUWJOLW9JTkstNko1cm53Ukl6MWRFMkVIUmVwcFhvVmt3LXhIOTdfZ2xjNm84bHhlNmd2QlhXLU1nS1BwSVAyUm9UQTNVemRTN0ViaDRBbUdxeWM5cDdfWmRuVTRYX1NOVGUzV0xweHAyeW1PWFR2dGlHODIwajc5dzNfQllPWlZEMWdxZkxWV1hva01xa2hOZWpYSHZyblJNUnRNdXJFNFJ0T0FyNkgyNW5hY3EzOS1CcFJ3MVpkX1pwVzVycll3amgzTFdxSzgyUm0tX21sZVE0R0hkMUxXN1pjdlJLYS03MHluS210eTdIaFV3SzVQMEYtbW1OcmVZSTcxZmhjOXBuZzM2THpCbnRRTjNVSm5xZHlScVBHYzlJMXJhZDE1Vl84dEtralBkYk5PSkl5c3BmZU5jTnhXM0xmN0d3YVhhWXFQNlBDUE5LTlhUYWcxbFdVZDJsYk5DZ1R6R0RWZGdURVFQLXRGR2lOb3U2S29sblNJTDVZUnQ4Y0NoczNIbUFnMzBrUTBENGhGNVlvaUxOVlpablMycVVGSTNWcTFWeUVWclpmSzlMRVpBeUg3ekk4THIyQnc2eXFXRk5UeGtfb2xxQXNmN0FhcnJsNW1mWi1Zb19QNnhPNTR0cFNHeWhleUprZ1VYMi10am84M21wUHlEUmdrZkRvamJCa21Manl6aWNzXy1yS3dfZW1kRmcyazBuY1NsbXRoQnprUkd0TlFTMlk1cjhmY3dKcDVkYTN1d1A0cXJSU2taS2xZdGZfNmRuS3BxUm9WazJnU0VIazVBUVF2QmNwWkVmQzZJMFBSM3FaTmQ0YlV2MEREU0NqbVNFZHp0cm9FcTRkeGs2VUMtUTllTloxcnJMUDFzR19KaGd2T0Joc0NjOGphOF92Nk5OYmhCbDdSQm5UNHc5eFd2dWpjN2d5clcyNDZHaU1vcmZqRmIxekxTN2RTUHp0a0EtVVpkbmVRNC1DZ1lsUWl0emZkUU5CaTRQcEVOWjJFT2xzdmpjbnlKUFlOUkUxMXV5Y19lU0RCVXdqa3hERDdTTjVPem1DcWNEaWpyNWtweDVFRmVDZzl5dWoyRWJrSFFtLTZ3MzJ3alpMS3VxU2p3dkV2SEtpNmc2WmNGT1MxSWMzTzN4Q2RUVDR3RHVxSmdaOG44c2pSWGF4UDRaQ2x2bi1LNWUwb2NTWUtpODNnWUJLekRCRnkxQTBUWElOcUpwbzN1V241dWlqdW80b19hM29IeXMzeGlkdEcxMENZZjY4VkRSVkNZQjY0S3pqODdXUzJHQkJETk9Cd1RZNlBRQVNleGl6SlpxLWxoaUpzdFVGVW5ZQ2d2bUlfUXBQVnlVOVFSSjZvTjlhWFRNNWFrYWF2ZzF6bV85QWpKcEJUd3JEaXczLVUxUlR6eURtelJFSGNCUmthMDI5RURhMnpxUTRZRnZaR1QtT2JobVJsZWg3VE9PZG90MVBKSzBaQzI0X2pvYnpTQm5UNWk1eXh1SWZOeWZvQU1XdnA0RU5xN3A0ZDgtdlRta09kRDg0TW9mTGIzUEJxV1BtaGlZQnl1b0cwNFdXa2xvY3JtbUV6aDVrZzNOMFotRGgtSlJUZVd5QW9qc0F5azk4dkJXaEdxanFaU1k4UWVkMHBBOG5rclFPcjF5MHFXcDByTFd6R3dYMWNaWnA2TUVRYy1zczhXanBhMnotZUtJREN3X3Vsd2VNc0lEcGZyWHAyd2ZlaTVFemdmcjJZYjFHUVppSlBOWTV0aUlieWd3T1JMM21ROF9lSU5JY0g0Y2Ewekl1bFNraVM4OTU2T1pRRXhqcUQ0WHFEUy1CR1dQUjVLSEpsRXpqcHpOSGtDdEluNEt6ZzJ5OEZBZmRmb2JNcFBBMzRnbnlMSFJ6T0VSTmdzblBydjl5SWFCQTVHMHo4X1JXdG5iM3RuZkpLWTVaZFlzNldOMEZSR2VHTmwxVHVaY0h3aGZhUFlTTk50WHRwVDMxcnJJLUszVGJCLTNjSndZN3ZGUUJOTm04T1I3TlFjS2FuUHItMG90cGYyLU00SGJ3YU9DYklOLVIyR3gwajdfc18xNHhUVFJzaTlXUk1aUGptWnJ0dHpPRWVKaml6cE9FRzJ3VnJWUUV5a2FPZ3hsU0lwTE90WWdwSlNfeTVKM2ZxS3lpaWd0S3pqQXE2WGxFUk5idFZyVlJxODVpVlhMd1RVS2JIVUVlaVRFcklEdkRlamZvRUNPVnczZGFvSjVLWWY0V1drbTJ2VnM2clZib1l0dVptZ0dTdmJwdWFHYkdlMlhrTm9ZV2cxbERHN1NiRWNUT08zMW44cVB5NGZvd0ltRFBkeHlmYVd3SUJXS3lmWk1iM0F2S1VuVFhPdE52NVBubFkyM0lfWXNvMzFLRHpEaGxkMHN3OTI3VjlnQ2hHQTZwNTJxeDVucWh4WGtiWnpETEhsVWw0U3oyS3lxTDY1VU8tS3hheW1sT3BzRWI5V2ZYMFpxUmdGZ3QweHUtMmR6QkhmakE2WnBfYjRtMmZ3UDVvRmg5cG95OGtaalVBZ3lMeWNFS0haT1JiMWdsNkk4S2pIOTRrZWF1TFNFeWJ2TV84eHQtR2NiNzlYbnZacmtWYmljZ1FhX2xaY1dDc2dqeV91NmlBdUJBamQ2TF8tVmt1enhlV1hpbGc4aEpjSlNBNEt1WllLaWFTZmh0UGVzcHhncEhIdDJyemh3T00xYkQxOXhoRlJNRUN4QzdzaGVZeThqRHd6QkJaNEhjM1NoeVNrd2N5dWhPOG9nN2FpVjJaTENDVW5QVUQ5cEZ5Mjk3VE5VdnFWc1FiMlNhZ1pQcUpfa1FOUXhvaFJwOC11a1F1TlJBLVgyeUNaQ3JZNjVfVHdzTTJucExMMkZrVkJGVVNIaVB0SFpMVFJJSVBvVXREallvdkFsQmhXYXoxaVJwTkgzWGlpbXpaWWhIOG94RmhCYmZ1dEVYdGl3RGg1V21RX1VBMklRaGNyMmhpMzU4NDJVTk43TTBzNWVvTE1iZElPaEd6c1NHZ0xlYzNGYVJvTVp4dl8wRGY1dkhxOFhEeVlaYldXVHp5V2ZJUmtZM1ViNng4YS1FM2dDNld6VXlaQ1UwTGQ3THVDdnhqX1FVRkdWZVlYTnlKcDk0WjJKLUN6NjNVczdfYmJ3a0dNOXAwRGtpYV9jNlprOWlIRGREZVVhU01seHlhMjBoNkJCMzRoa3p6aTNIcjN6MklqRVo5Q2ZHejZ4ZFB6anVZOWNnQzR5TC14MlZNUE1xOUdPdE1ORV90UDNRaTY0a05iQ20tbnFmbHBEOVoyNUZYNzJRNUZ6Q2VpQTdCWWM0RTFJUGoweGg1MFN1X1Vjc0NWT0x5MzdFMkg1eXRZRWpMTmpOM1NxOGV3S2hsem1kMXE1V3FaYWNnMGVRWE9OWmZaYlBqT3Y2Y3dBTU1WbFhxdjd6YmxTWWhEaG9uRXFPX2FEd0VodzZsT0c1cjZHeTB1ZFNidks2RzdxRlpSV08xZWRxMlJjOXZMV3M1NXZVdlIxOHlmX3N0LXlBZ3R1dVpTd0xIdTVkbU8zckFpUmlzT1p4TF9zRzBEdV80UDlNMWV4a3Q3a3hWLWU0cXhIUmRCTHFtMXpLTGxnWlpXdEcxa0VDeDhvV1doMmdiUHFiWWVnRVNsU3A0VzNOaWhQWVFWUmsxMTkxeFRYTGY4VGJ5cVp1bEdHSWFHbmxwbGJyUjkzNWVodHI5dnJMZFJkYWJQS09aMnlyaldsT01icjF3blZPSFZxZUJYM2lYVDV0eW5WbW1OUGN2bmxySDhpMVNxU2FSczIxSkNTWEplT0lmT1JyOGN0ZUlyUm9xUHRYaVc2RlQyakpnYld3ajNOak45V0JaekpzTXBUSkllN21kNzZtc09YR21QelZkaEpNdWsyZS1CQnFTemlpQ2wwMGJrcjFfanlpaU54OTZmLWpOcFRlaDZFdGgtMzZXOG5fcVhtWVRqa3dhWDRXeGgxbjAxVGFVaUR6ZlZOVU1YMERvdUxDYkFtUHNQT0VjOW5jZWdBbEc3eWtIV0RUenhySzN0ZUtoNjNoQVlCRE9KTmxwZ3FfMnVmMTNETGk1ZDZyNi1KRllyNnNfbjZldXVqTGtzajZlUUhNcU12UUFqam15ekNGMmRMNnpmM1RCMVNQbWMzS1d1UDg1Sy1LZTlfVld5ZjdFVFFDckl4WUFsVzU5VzlJa3o4ZkNnSTc5SVkzSGNwR3ZlWEg0cjBBV3pvZ2tBZjJsa1ctWXRJMFF3TmZvaW1UcjVmcmptdjg1OUJESkQwb3VWeVdPOC1ERGxqbnJhVzFkdWU5bE5rVDFPcHVmUHk5aThTcVhVeUNSNTBoRDRXNFNRbnhsRkl0dzVDMlh6OERqUGYzaGc1elVYcnZ2bTV1NS1NLXdURDluNVo1LTM5WUhlaDlLNk9hME9xM3c2ZTAtNVZOaDZ0VWZkOHlzaGFjX0p3bXM2bDBmT0dvdG1nTG9ldnQyM29tVDRsMmJpdW1vQk16UkQ4UEw4T3lkOHVVbDBycGxyeUk1UVVCcjlnb2dSMFRIMGR1anpzNHVZRmZZdGYyQndERGE0TWJwcTE3YXRoQXZxTnFXWHFtc0pJM1ZVYUQybnpKX0h3UEU2OVlxbkxUY3EwWWVWZnVtZzBQV2N1b2kwWWI2QmtHV0h0QlU1R1FKSkNBTlVPTGF2Z0xuRTUwbFJTRVNqR1J6X1JQSVVYWS1xUndMM2xHSHRsT3ppWGNnZ1RWbmZ4a0Z5Tm5laEM4UUJ6aW8tc2tvcXFMSlZBUHZTUEc0UklFZHRCQ2RvbE1VVDZtVUJ4MmdZaXI4M0F3WU1VLUhRemR3OVhuUk1EdFdYLURQdHdQS0hHbTM2Y0FlbDljNUJBWDE1UWhnT2phbWEtazk0ejI0S1dXVm44bmdUVm12SUJ1V1ROZENfeUxNTFZBQWV1YjRINnU0OGJHY2JjQmFMMzd2cWNpcl9LcFRQUG5EVjM0OVVfRVVrZGVkRHc1bTcxSVZ4Tk1XY1QwZk5SZGkzT2VGMU5aTXBEamZVd1ZWSXZ0ZFRBbURPaUUtTURDdmtleG9WM1AyNUE2SWlMcTNwM1ByWnppQ3V4MWpWdVFVTTVHQ3hZb1k1X2I1RmFPeEdCYm1lN0FkUS1mT3NQWEJvMzJ3QWJ2dTEyaDVQQ2YxNHhHbl81Y1ZkTzA4N3M1cmxabGdwOE5TNVZFNENkVERlMnMtVGZqRmxZRTdFT2FIbFlyRFVuTXpwUEpSOU55Y0lwNVNJN3Q0QjdxNW5ic0RDdml6REp3aDlNT2ItN1FhMk5xME8xREYxcW5rcS14T0QxeWZlNnFLeE9rWjh3YmN6eGVaSlEwMGNiaWxlaTZVVmtKSi0zSUthdUE2Qk5FVGhPMVRTeW5PUDJwN1VuNVVnTTRIT190TW91aGR6OWlVRUNYb254a0FSRE0xMmFYa0VrTlR1S0luSVhYT00wNVp4ZDVLU2ViYkZVYzV1czJSdGd5SVpFaUlwYVRLVDdvTXgyRmFfaDBLc2M5amFfQUVCeXNFSmZKSC1YUjMySmx6UWkzQ3JWSzJGQ1NPbW5BNVI4eU9qanhQTFRMZWozNzhLaVR5Um5QdzdMSWQtSnM1dWU5R1l3bFNzV0d1UTdfRXRjaDVTUlNnR1h3SldKTGh3Vy1tdGZ1bmZSaENRN0xWUi1Ocjlfam1Ga1dFeU1DOFZpSmhFQWNvY2doUFlXeERiSjlVYUN6TXBOR0xlaW5VekJkWG4tZTJlX01VSXJSTHZCQmpIU2RHdFRGeGpyMVV5anpPYXNNZ0txd2NMZk5mQmRUbXlWMS1qWW9vUXVJQlVZTmpUdFRyMkcyWTBlWEI5aEpWUDBucllnSVpTUnk0REo1bkNZQlptMTBLQWh0ckdIXzg5Z2dpSWhhWHRKcFlsLUpocUlEU2l2VHZuSGdOVm9HRXU0a0lqdEpqZHJfMTctT0RwU2tISXhKWXp2Tk51Wk0zM1dyNVpTU25YR2IyX21hVWpoUXotb0dRQk05M2xRMkx4dnZSemd3Q1BxblBwUHJob1pJRVBGWDh3N05KQTFJcTBjR3FVNlBOMWwweXdxV29xS3FFWnJQLUFrRXhiT1h4MWFFeHJyclpGRUFwTHRkNGxuMmUybWRJS2kxLXF1aGhXVTlfU1VKYnJmV1JDbkQyQmxKZURVTjAwNUNjR3N2WVlNQ2VHeTRRMm1sZTZfaXBRT3gydGdfblNLcEtSYXVJWWE3bWc5RWU2d0ljMFhydE16dmNzczhUZzZQbmV3UHpWd2JhdTFBSWp2cVFtQ19QdUdrdEo0Smo0S09XX2RicmwyWmxuYXd0bEw5OW5ac2tFOHVGVHNXXy0wNWFjPQ==""".strip()

def main():
    # 1) Read the key from environment
    secret_key = os.getenv("ENCRYPTION_KEY")
    if not secret_key:
        raise ValueError("Missing ENCRYPTION_KEY in environment variables!")

    # 2) Decode from Base64 -> bytes
    ciphertext = base64.b64decode(ENCRYPTED_CODE_B64)

    # 3) Decrypt with the provided key
    fernet = Fernet(secret_key.encode())
    decrypted_bytes = fernet.decrypt(ciphertext)

    # 4) Execute in memory
    #    If your code defines a Gradio demo, it should be launched here
    exec_globals = {}
    exec(decrypted_bytes, exec_globals)

    # If your decrypted script defines a 'demo' (gr.Blocks),
    # it might automatically launch. If not, call:
    if "demo" in exec_globals:
        exec_globals["demo"].launch(server_name="0.0.0.0", server_port=7860)

if __name__ == "__main__":
    main()