I need to obfuscate my Python code, I know the best way would be to convert it to a C file but I can't do that.
According to this article, although not 100% effective, I can "obfuscate" the code using:
python -OO -m py_compile <filename.py>
Doing this generates a PYC file, I tried to convert it to Exe using the Pyinstaller doing this:
pyinstaller --onefile filename.pyc
but it doesn't work, how can I then convert the obfuscated Pyc file to Exe? Is there any other way to obfuscate the code and then convert it to Exe without converting it to C language?
From How to Obfuscate Python Scripts With PyArmor:
Install PyArmor:
pip install pyarmor
Obfuscate script.py
with PyArmor:
pyarmor obfuscate script.py
The original script.py
file:
def main():
print("Hello World")
if __name__ == '__main__':
main()
After obfuscation:
from pytransform import pyarmor_runtime
pyarmor_runtime()
__pyarmor__(__name__, __file__, b'\x50\x59\x41\x52\x4d\x4f\x52\x00\x00\x03\x0a\x00\x6f\x0d\x0d\x0a\x09\x33\xe0\x02\x00\x00\x00\x00\x01\x00\x00\x00\x40\x00\x00\x00\xb2\x17\x00\x00\x00\x00\x00\x18\x4a\x9d\x70\x63\x25\x3b\xaf\x0e\x31\x3b\x1a\x3a\x18\x32\xa5\x92\x00\x00\x00\x00\x00\x00\x00\x00\x86\x7e\x95\xbd\xc0\x82\x5f\x72\xa1\xc3\x6d\x58\x28\xe2\x51\xd2\xee\x48\xee\x96\x83\x57\x9a\xf9\x45\x75\x6a\xe2\x4d\x35\xbd\xfb\xf0\xb4\xbe\xf4\xf3\x5a\x9e\x4c\x88\xd7\x42\x83\x60\x12\xa9\xbb\x4f\xb3\x18\xb5\x43\x0f\x1e\x72\xd1\xde\xd3\xc1\xde\x6c\x32\x38\x78\x51\xb0\x25\x1f\x11\x5d\x64\xd3\xf2\x81\x68\x3e\xe0\x6d\xc6\xcf\x6b\x9a\x27\x92\xad\xee\x97\xbf\xc6\x58\x2c\x5d\x7a\x21\xee\x65\xd8\x0c\xb0\x59\x04\xb8\x92\x29\x85\x61\x4c\x61\xe9\xc1\x0b\x98\x85\xe3\x41\x45\x34\xf1\xe8\xe2\x1a\xad\x88\x24\xb9\xca\xdc\x02\xbb\x63\x6d\x63\xca\x66\x32\x9a\x40\x12\x2a\xa6\xf7\x22\xbe\xea\x72\xab\x2c\x2f\x20\xbc\x77\xaa\xdb\x07\x9a\xf1\xff\x3e\x8f\xea\xa8\xa5\x7b\xe8\xa8\x85\x0c\x8e\x1a\xc4\xb2\x9b\xc8\x2d\xcd\xf6\xa4\xae\x8f\xcf\x76\xb7\x56\xb4\xe2\xcf\xaa\xd1\xeb\xfd\x29\xed\x77\x09\xc1\xb2\xc9\xd3\xce\x97\x60\x59\x22\xa3\xfa\x2c\x6e\x0a\xc1\x61\x87\x39\x96\x7e\x66\xc9\x79\x86\x42\x1b\xe4\x93\x83\x59\x42\xd9\x14\xba\x3e\x03\x08\xaf\x0a\x1d\xad\x91\x86\xf8\x2f\x5c\x5a\x1e\xd7\x74\x12\x9e\x08\xf4\x4e\xa0\xb2\x13\x8c\xce\x00\x97\x1d\x3d\xa5\x56\xe3\xe3\x28\x05\x1d\x0d\x1d\xc0\x85\x3b\xfe\xad\x81\x51\x6f\x1e\x81\xdc\x76\xdb\x5c\x4b\xa2\xf6\xe9\xbb\x11\x12\x47\xcd\x9f\xb3\x05\x73\xf8\xec\x36\xd5\xc9\x29\x54\x8d\x61\xb4\xaa\xec\x2c\xfa\x13\xdc\xed\xf9\xe7\x15\x08\xfa\xcd\x94\x02\x06\x8a\x43\xfc\xc2\x2f\xb4\x75\xeb\xe9\xa5\x85\x45\x99\xe0\xe8\xb5\x86\x3c\x54\x5e\x1f\x08\xaa\x19\x3a\xe3\x9e\xfd\x0e\x22\xaa\xe0\x0b\x52\xae\x1e\xd0\xf6\x52\xd3\x30\x06\xe0\x2e\x9b\x50\x90\x76\x96\xbf\xa2\xe1\x5a\x3f\x8d\x2f\xcb\xce\xab\x4a\xa1\x6e\x89\x91\xcc\xa6\x56\xf1\x65\xd2\xdc\xa9\xd9\x80\x6e\x82\x30\x5e\x6e\x7d\x82\x13\xfd\xe6\x5a\xb2\xcd\x4c\xab\xaa\x63\x79\x1d\x20\x8a\x8e\xd1\xea\x58\x05\xa5\xdc\x93\x65\x64\x74\xa6\x58\x40\x90\xa8\x7e\xd1\x7f\xcd\x40\xc1\x39\x0e\xf0\xa6\xd5\x7f\x00\xff\xd1\x37\x93\x0c\x10\x18\x18\xe8\xa1\x15\x42\x4f\x12\x4c\xcc\x9b\x58\x90\x95\x0e\xf3\xc4\x09\x76\x68\x7d\x77\x6e\xd4\xae\x5c\x5c\x95\x28\x01\x51\x9b\xeb\x08\x04\x6f\x3c\x48\xb5\x33\x92\xbf\xaa\xb0\x88\xcd\x76\x9f\x2b\x5a\x7b\xfe\xa2\x27\x92\x56\xed\xe9\xe2\x4b\x15\x3f\x47\x51\x82\x1b\x87\x1e\xcd\x6b\xfa\xc8\xb3\xa9\xce\xd6\x89\x7c\x98\x90\x95\xdf\x4c\xad\x4c\x9f\x3d\x7b\x27\x44\x53\x32\x5b\x9c\x5c\xad\x9b\xb2\x05\x33\xd9\xde\x54\x03\xb2\x25\xdc\x5e\xcd\x53\x3f\x39\xbb\x1a\x39\x5b\x13\x18\x49\x38\x0b\x1d\xd2\x8b\x78\x6a\xa0\x07\x12\x0f\x44\x71\xa4\xd5\x38\x29\xe0\x0e\x6d\xc5\x72\x15\xe3\xab\x89\x7c\x37\x1b\xb5\xb3\x87\x7c\xd2\x5d\xdc\xfc\xe5\x9d\xe6\xec\x9e\xb1\x39\xe1\x41\x99\x25\xe8\xb9\xd2\x92\x54\x24\x31\x4d\x1b\xa2\xc9\x91\xde\xac\x2a\xa5\x0d\xb8\x56\x69\x65\x29\xa1\xf5\xf8\x0d\x10\x3f\x26\x8c\x49\x00\x72\x27\xbb\x4b\x66\x9f\x8f\x31\x31\x0e\xb5\xa8\x40\xa9\xe0\xef\x80\x50\xec\xdd\xe9\x79\x10\x7f\x98\x29\xc5\xe2\x84\x98\xc7\x4f\xc0\xe7\x11\xae\xb9\x2f\xe0\x39\x91\xce\x8f\xaa\xb4\x5a\x0f\x53\x78\x8f\xbc\x7e\x0c\x81\x5d\x32\x0b\xcc\x0b\x9d\xcd\x8d\x88\xe2\xff\x62\x23\xbb\x45\x92\xd2\x6b\xc0\x2b\x60\xf7\x63\x94\xbf\x3c\xc6\x72\x88\x0f\x92\xbd\xce\xc2\xcb\x4c\x8b\x99\x8d\x8b\x60\xe6\x38\x7b\x1a\xd7\x67\xbf\x31\x68\x49\x92\x08\xfb\xdd\x89\xde\x05\x88\x7f\x54\x76\xba\x96\x60\x2b\x07\xf6\xc3\xaa\xa9\x71\xf3\x05\xd8\xb9\x22\xbc\x6e\x6e\xa7\x81\x8a\x2e\x9d\x70\xa0\x16\x90\xc9\x51\x05\x8f\x5d\xec\xb8\x7e\x9b\xef\x32\x35\xca\x98\xd4\x2f\xde\x0b\xc7\x00\x6e\xb8\x34\xf3\xed\xa0\x1b\xfc\x66\x03\x45\x4d\xa4\xa4\x31\xe8\x9d\x23\x38\x08\x26\xcd\x6d\x33\x1e\xcb\xd0\x9a\xc4\xca\x4e\xbc\x11\x71\xfc\xdc\xcb\x5f\x61\x06\xf9\xfd\xe6\x22\xdb\x89\xc0\x43\x14\x63\x36\xc3\x70\x63\xb7\x57\x15\x73\x0c\xa6\x5a\xc5\x86\x84\x80\x98\xc9\x1f\x56\x2b\x2e\xf3\x2d\x35\x70\xed\x4e\x01\xef\x03\x71\x66\xaa\x49\xdf\xcc\xa9\x53\x85\x35\x37\x40\x64\x25\x34\xb8\x27\xb9\x86\x3a\x50\xfe\x40\x4b\xfe\x89\x3e\xa5\x5a\xc5\xc0\xb5\x1d\x2a\x40\xd1\x3a\x27\x12\x4a\x98\xcb\xaf\xb4\xdc\xce\xde\xf7\xf8\x22\xa9\x98\x38\x32\x58\xf3\xc3\xe8\x20\x4d\x48\x2c\xfe\x4f\x24\x79\xd0\x67\xec\xaa\x96\xee\xf8\x5c\x27\xef\x09\x26\xe1\xd6\x95\x5f\x20\xfb\xda\x31\x01\x32\xf1\xb5\x5d\x8e\x51\x38\x67\x96\x5b\x0e\x7d\x55\xe6\xfa\xc5\x83\x92\x1e\x64\xb5\x5e\xbb\x2c\xad\xb3\xb3\x98\x8d\x15\xc6\xd3\xe4\x35\xd8\x43\x40\x45\x28\x30\xf6\x18\x23\x90\x1f\xaf\xa3\xac\xda\xdd\xf3\x4a\xca\x87\x4b\x36\x17\x45\x42\xad\x93\xed\x5f\x63\xd3\x3c\x7e\x64\x7d\xb8\xfb\x90\x43\xc1\xc0\x69\x2e\x9a\xdc\x26\xd5\xa9\x7f\x03\x44\xe6\xba\x51\x1f\x89\x75\xe6\xec\x9a\xee\x98\x9b\x55\x94\xf4\xd0\x73\xaf\x5b\x58\x97\xf5\x3f\xa9\xf9\x7a\x26\x16\x89\xd6\x3a\x54\x9c\x5c\x43\xaf\xdb\x00\x5e\x30\x59\x69\x6d\x60\x76\x77\xbd\xe0\x86\x78\xf3\xf6\xf9\x32\xfb\x5d\xf6\xf2\x09\x3f\x48\xf6\x51\xde\x1a\x88\x01\x89\x5e\x02\x9f\x48\xac\x27\xf2\xf5\x70\x1f\xd1\x2c\x3a\x48\x61\xd3\x22\xe2\xbf\x85\xb8\x63\x48\x72\xce\x50\x66\x80\x3e\x44\x8d\xbc\x15\x02\x2b\x7a\x1b\x76\xbd\x46\xca\x4f\xc6\x5d\x52\x02\x0c\xab\x67\x8a\xe8\x1b\xdd\x14\x93\x4d\x47\xf6\x03\xc3\xa1\xd1\x76\x01\xc6\x88\x06\xa1\x2e\xd2\x5e\x07\xde\x31\x30\x2f\xe5\xf1\xf2\xf6\x25\x88\x86\x38\xdc\x19\x1f\x55\x19\xad\x93\x06\x43\x48\x89\x67\xba\xfa\x2d\x19\xfe\x90\xb1\xff\x41\xb4\xf6\x65\x88\xd3\xb7\x7e\x96\x02\x7d\xa4\x83\xc3\x67\xb6\xed\x66\xa5\x98\x1f\xcf\xc2\xa3\xb4\xc5\x62\xfb\x14\x7e\xdc\x47\x33\x9d\x5f\x56\x6d\x29\xd1\xec\xa3\x05\xe9\x4f\x97\x00\x20\xea\x0b\xd1\x9d\x18\x14\x32\x24\xa5\x3b\xd1\x7b\x2c\xfe\xc0\xa3\x07\xc3\x04\xbd\xb0\x1b\x24\x4e\xbb\xc5\x30\x43\x2d\xc0\x59\x30\x0d\x8f\x2f\xb0\x4c\x30\xd3\x81\xe0\x79\xf9\x0f\x83\x72\x40\xa9\xba\x31\xd2\xa0\x86\x8e\x89\xff\x60\x5d\xec\x8a\xf7\x76\xe1\x14\x33\x9b\x6a\x12\xb6\xc2\xb7\xc1\xd2\x49\xd0\xd5\x11\x12\xe1\x53\x05\xfc\x62\x13\xaa\x33\x73\xd9\x87\x13\x56\xb2\xfe\x68\xed\x37\x9e\x8c\x9d\xa6\x00\x80\xbb\x31\xca\x42\xcf\xb9\x3d\x6d\x9d\x97\x7c\xb3\x83\x87\x2b\x1a\xba\x93\x4b\x42\xc6\x96\xe4\xbd\x83\xab\x72\xf4\xc3\x3f\xa9\x64\x7a\x16\x83\x75\x70\x8e\xe6\x0b\x60\xa5\xe2\xd4\xc5\x1a\xb4\x39\x5b\xb3\x77\x5b\xcd\x96\x74\x5a\xde\x1a\xdd\x59\x8b\x8a\xe9\xd9\xb5\xfe\xec\x53\x1a\xc0\x9d\x70\x67\x7a\xf9\x3e\xfb\xea\xbb\x7e\xeb\xe7\xb6\x9c\x5b\x21\x65\x42\xe9\x4b\x58\x84\x1c\x62\xe0\xd1\x15\x34\xab\x93\x91\xd8\xad\xaa\x74\x58\x17\xcb\x50\x00\x71\xd0\x92\x27\xe7\x12\xaa\xd2\xd0\x24\x39\xa6\xa1\xf8\xd8\x3d\x0e\x49\x86\x26\xb6\x67\xf6\x07\xf3\xaf\x95\x49\xee\xc1\x2a\x78\xbc\xd3\xa1\x39\x90\x9f\x2e\x79\xcc\x7e\x7d\x6a\xb6\x1b\x26\x9b\x54\x1c\x10\xfa\x02\xc6\x07\x0a\xc3\x15\xce\x16\xf5\x36\x38\x39\xf9\xf0\xe3\xaf\x38\x90\xf7\xe4\xf5\xcc\x16\x12\xb1\xaf\xf4\x80\x5c\xd8\xc2\x12\x71\xd2\x56\x8c\x24\x0d\x41\xbb\x04\xcd\xdb\xa9\x1d\x81\x1c\x92\xd5\x34\x5f\xc9\x8d\xcc\xc3\x12\xef\x19\xe5\x48\x44\x24\xa5\x57\xce\x0d\xa9\x72\xfb\xc3\x6c\x1b\xdb\xdf\x4e\x63\x54\xdf\xc5\x49\x95\x24\xf9\xca\x9c\x58\x61\x03\xff\x4d\xce\x29\x0d\x9b\xc2\x99\x73\xe1\xf6\xfd\xde\x52\x17\x07\x08\xe8\x82\x75\xce\x6f\xa9\x38\xdc\xbf\xa6\x64\x0c\x5c\xd2\x5c\x6d\x1c\x4c\x3b\xb7\x3e\x45\x7d\x34\x9f\x54\x8a\xbc\x7e\xa8\x7d\x66\x3d\xc8\x06\xbb\x2d\x5b\x73\x70\x6d\x94\xa0\xa6\xe8\x67\x00\x3d\x0e\xdb\x0d\xad\xa2\x2e\x8b\xc5\x6d\xc1\xcf\x59\x3b\x3a\x8a\x68\xec\xca\xf5\x70\x13\x05\xb9\xbb\xaa\x2a\x4c\xe7\x95\x6a\xe3\xc2\xb7\x21\xac\x84\x22\x94\xc3\xfb\x49\x87\x24\x19\xeb\x1b\xf6\x54\x4e\x8f\x82\x91\x18\x74\xc3\x18\x6e\xbf\xfd\x22\xb2\xf0\x53\x63\x18\x7d\x25\xfe\x97\x06\x4c\x56\x84\x8a\x56\x44\x0b\x44\xd1\x35\x8a\xad\x4a\x85\xc6\x6d\x85\x47\x28\x30\xb0\xb0\x41\x97\xec\x77\x98\xa3\x0f\xeb\xdf\x5c\x7e\xe1\x67\x3b\xf1\x39\x6c\x34\x38\xa2\x34\x43\x14\x3a\xa0\xcc\x7f\x6c\xee\x2c\x87\xa9\xdc\x22\xaa\x4d\x48\xb9\xbb\x9a\x81\x54\x04\x1f\xc6\x0d\x30\x96\xdd\x3d\xf2\xce\xde\x30\x94\xd5\xfa\xd2\x19\x7f\x7a\x25\x70\xff\x68\xc3\xbe\x05\x21\x29\x7d\xe2\x85\x90\xa8\x14\xd9\x27\xd4\x34\x19\xa2\x19\x87\xe7\xf4\xde\xbb\x14\x11\xca\xdc\x3d\x55\xc3\xdc\x9e\x31\xae\x6f\xef\x84\xe2\xbe\x8a\xfb\x8f\x21\x27\xcd\x99\xfa\x9f\xda\xa5\xe4\x81\xb7\xd1\x79\xed\x61\x58\x5d\x31\x7f\x19\x7e\x3f\xec\xe6\xbf\x64\x42\x81\x32\xe5\xac\x74\x9c\x8d\x69\xe4\xb1\x2c\x3b\x77\x4d\xe4\x6a\xd5\x4c\xa9\xd7\x66\x4a\x93\x94\x48\xfa\x25\x73\x75\x52\xc2\xfa\xd0\xed\x43\x43\x3b\x9d\x9c\x62\x3f\x7e\xfc\xa3\xff\xda\x79\xc0\x67\x0e\xf7\xc9\x8b\x0c\x73\xca\xf4\x72\xe8\x14\xcb\xa8\x80\x38\xa1\xeb\xce\xa0\x67\xd1\x57\x88\x7e\x6e\xc8\x35\x1f\xc5\x81\x3f\x79\x76\xfd\x90\xbb\x0e\x5d\xb3\x83\x2f\x34\x6c\xbf\x00\x14\xf5\xa9\x9a\x5b\x73\x66\xec\xe5\xca\xab\x77\x0a\xa0\x9d\xce\x98\x8a\x0e\x17\x5f\x9e\xf7\xfe\xdb\xee\x88\xb6\xd3\x54\x76\xa0\xbb\xa4\x9a\xd7\x94\x27\x11\x8c\x03\x71\x84\x00\xa6\xad\xa7\x3c\xbb\x13\x9a\x1d\x29\x8c\x1b\xe5\x81\x79\x85\xe8\xdc\xfb\x9f\xef\x63\xb9\x72\xd9\x54\x87\x4a\x04\x31\xa5\x16\x4c\xb4\x64\xc9\x03\xc5\x08\x18\x6e\x41\x74\xac\xfb\x6f\xca\x64\xcf\x27\xc5\xb1\x7e\x40\xb8\x5c\xce\xa2\xc5\xea\x46\x64\x2e\x0b\xce\xd9\xda\xfc\xf0\x89\x20\xdf\x85\x80\xa4\xe5\x37\xd0\xb3\x0e\x89\xab\x34\x64\xad\x3a\x6c\xca\xa2\x88\xbd\xd3\x79\xe1\x38\xee\x3b\xaf\x34\x21\x75\x8e\xc0\xf8\xd3\x63\xb6\x63\x6b\xb2\x39\x4f\x13\xad\x01\xd3\x1f\xbe\x38\x74\xa6\xf0\x83\x83\x6e\x67\x9e\x4a\xe4\xfd\x8f\x3a\x71\x1b\x63\x25\xe9\xc4\x1a\x47\x1b\xe6\xff\xad\xd4\x7f\xa5\xdb\xd3\x57\xc3\xe8\xf6\x2e\x34\x3b\x55\x5a\xeb\x72\x65\xad\xc2\x75\x28\x64\x68\x71\xa5\x6e\x5a\xf1\x82\x85\x68\x3d\x70\x19\xd0\x8c\xcf\x36\x7d\x11\x42\x10\x0c\x94\x43\x2d\xf2\x45\x72\x4d\x32\xac\xea\x9a\x4f\x6d\xb0\x0d\xf1\xfb\xf0\xf9\xe4\xb5\x97\xb9\x9a\x52\x10\x8c\xa6\x27\x65\xd0\x23\xde\x93\x04\x35\xc0\xb4\xb1\x20\xc7\x2c\xc2\xc7\xfc\xb7\x27\xce\x67\x0b\xc4\xaa\xf5\xd6\x2e\x99\x1e\x8b\x69\xb5\x5c\x44\xfe\xa5\x66\xfe\x1a\xb4\x12\xbc\x1e\x98\xa5\x7f\x2c\x96\x45\x10\x0b\xc8\x79\x98\x34\x5b\x2e\x94\xb9\x15\x0f\x18\x9b\xe7\x27\xb6\xb8\x8e\xbb\x06\x09\x81\xeb\x65\x25\x03\xb4\x41\x7a\x81\x84\x92\xee\xdb\x18\x44\x2e\xa8\xe1\x13\xce\xcf\xa3\xe6\xca\x7b\xf7\xf3\xab\x1b\xc3\xe3\x8e\x13\x8e\x29\xb0\x50\x2e\x68\x3e\x90\x97\x31\x3b\x0f\x02\x94\xdc\x97\xde\xa2\x7b\x74\xcf\x1b\x9c\x5f\xe0\xdc\xf7\xfb\x06\x34\x32\x9a\x56\x0d\xb5\x1a\x6d\x2b\x4e\xfc\x9c\xc7\x06\x9d\x2c\x29\xbb\x0c\x87\x93\xe7\xe7\x38\x49\x3f\xa2\x9a\x0a\x39\x5b\x7a\xb1\xdf\x03\xea\x9b\x84\x72\xe8\x3c\x72\xa1\xba\x4d\xbe\x29\x7d\x4d\x22\x58\xca\x84\xfa\x3a\x2c\x26\xc2\x60\x6a\xae\xce\xaa\x1e\xe5\x5e\x90\xc0\x72\x31\x00\xd7\x13\x37\x45\x9f\x1a\xdb\xf1\xf8\xe2\xf7\x9d\x4b\xe0\x7c\x66\x0f\x20\x57\xa3\xff\xd2\xa2\x72\x14\x5a\x14\x2a\xaf\xc5\x20\xad\x10\x40\xc2\x3f\x6b\xfc\xd9\x6a\xd2\x28\x7e\x73\xd8\xb8\x24\xb5\x7c\xaf\xcc\x2c\x1e\x84\xac\x5d\x65\x39\x1d\x33\x1c\x47\x05\x73\x54\x5f\x8a\xd8\x93\x56\xd4\x67\x2a\xee\x2c\x1b\x7f\xf4\x1d\x8b\x10\xa1\x30\xea\x50\x12\x0e\x13\x3f\x51\xf6\x4c\xff\xc5\xc4\x28\xb6\xb6\xe4\xb7\x6c\x53\xd4\xe4\xb9\x8a\xa9\xa3\x47\xa7\x1e\x41\x66\xe5\x7d\x3d\x1a\xae\xaa\x02\x4a\x78\x33\xd5\x69\x55\xeb\x4a\x16\x78\x0d\x8f\x14\xe8\xe9\x5f\x78\xec\x6b\x7c\xe6\x76\xe6\x0a\x15\x21\xae\x28\x06\x87\x67\xf4\x23\x0a\xeb\x87\x01\x0e\xee\x39\x00\x64\xc4\xbe\x32\x34\xdf\x75\xf9\x4c\xac\xd5\x85\x75\x6d\x35\x2c\xfa\x93\x02\xfc\x83\x05\x72\x1d\x4c\x5d\xb4\xab\x35\x3e\xc6\x3d\x44\xbe\x43\xde\x1f\x08\x81\xf9\xfb\x46\x6c\x38\xa9\xd8\x96\x36\x64\xc8\x49\x63\x7f\xcc\x3f\x4b\xd8\xf1\xb3\xc1\x0c\xe8\xd4\xd0\x82\xb6\x2b\x53\x88\x7f\xc6\x39\x56\xac\xe1\x9d\xc7\xfa\x66\x61\xf9\x0d\x95\x13\x1f\x71\x7c\x1e\x3f\xd5\x7c\x22\x08\xc2\x2e\x42\xe7\x2d\x59\x6d\xe0\x42\x4a\x0f\xdd\x00\xfa\x5c\x5a\x8c\xa9\x4d\x08\x18\xd9\x5d\x0b\x90\x5c\x53\x96\x1b\xc5\x33\x77\x9d\x54\x4b\x65\xda\x6c\xde\x76\x8f\x45\x52\xf2\xef\x26\x64\x3c\x7f\xc0\x12\x7e\x4c\x56\x35\x01\x3e\x82\x2f\x62\x88\xf7\xaf\xdc\x6c\x4d\x33\x51\x57\x72\x31\xc4\xa6\x02\x23\x9e\x60\x83\x70\x97\x1c\xed\x4f\x96\x8f\xac\x72\xdb\x57\xa2\x9a\x22\x51\x09\x82\x24\x34\x05\x82\x63\x4a\xba\x08\x48\x73\xb9\xcb\xaf\xf2\xea\xf6\x4a\x9b\x20\x00\x4e\xc1\x45\x6f\x06\x83\x17\x5c\x9b\x7a\x07\xf1\x1a\xfa\x15\x88\x0e\xee\x4a\xd9\x35\xec\xaa\x9e\x7c\x91\x2d\x24\x63\xa9\x05\x2e\x92\xb1\xb0\xb9\x9b\x49\xa9\xe2\xc1\x6c\xcc\x2c\x0a\x05\xf8\x32\xc4\xb4\x95\x19\x10\x25\xef\x06\x44\x2a\xc8\xed\x26\x12\x74\xf3\x2d\xb7\xcf\x48\xd4\xb5\x77\x42\x7d\xcf\x6e\xc7\x3d\xcd\xe6\xa7\xbe\x3a\x6a\xad\x87\xa7\x22\x36\x96\x14\x1b\x4a\x02\x09\x81\x60\x3c\xdf\x70\xb1\xfa\xc3\x36\x44\x06\x1b\x8f\x8b\x7b\xf7\x82\xe7\xb5\x60\x07\x31\xa1\xd6\x54\x81\x9d\x24\x37\x6e\xc8\x48\xa6\xe2\xde\x48\x1e\x1f\x27\xb9\xd3\xd3\xd1\x39\x66\x72\xf5\x7b\x07\x33\x5d\x0b\x9b\xf1\xab\x3f\x7f\x32\x35\xd2\xd4\x52\xcb\x68\x2d\x3c\xec\x51\x88\xee\x5c\x45\x11\x1a\xa4\x17\x0b\x34\x9b\xcf\x03\x86\xae\xb4\xde\x02\x94\xb7\xd8\x15\x64\x99\xdc\xb3\xfe\x30\x50\x09\x6d\x9d\x32\x34\xf8\x9d\x1e\x4a\x59\x15\x4f\x37\xb0\x23\xad\xd1\x26\x64\x9d\x6c\xa4\x76\x50\x04\x3a\x08\xe0\x62\x35\x51\x17\x29\xc5\xcf\xdd\xa2\x83\xcc\xbb\xd3\x86\x59\xa1\x50\x1d\x95\x1b\xe8\x4e\x88\x15\xf2\xc5\x86\x8a\xee\xf9\x1a\xe2\x28\x99\xb7\x19\xad\x4d\x35\xa6\x2d\xf9\xf6\x37\x78\x94\x26\x7b\x9e\x68\xfe\x49\xa0\x39\x24\xe3\x86\x6b\x0d\x76\xe4\x23\xc3\xdb\x78\x0e\x41\xb3\x3b\xe2\xd1\x91\x45\xe9\xdd\x6f\xb8\xdd\x8e\x6a\x05\x83\x4d\x01\xc2\xbb\xd8\x29\x2b\x4f\x6c\x2d\xa9\xb6\x39\x26\x77\xcd\x62\x2b\xe0\xf1\xd2\xa5\xaf\x78\x98\x15\x22\x0a\xb9\xa7\x92\x65\xad\x1b\x29\x62\x30\x8a\xa2\x5c\xe8\x98\xc9\xf7\x2f\xc5\x37\x6b\xf3\xc4\xa2\xbc\x76\x60\x38\xe7\x28\x46\x98\xac\xc5\x49\xec\x2a\xdb\x6a\x2c\x35\xaf\xc2\x27\x99\x2d\xfd\x1e\x86\x84\xcb\xb6\x91\x81\x1c\xa9\xd9\x74\xf0\xd0\x38\x72\x23\xd8\x2f\xb2\xca\xb2\x91\x5c\x5b\x8a\x19\xb3\x5e\xe1\x22\x90\xd4\xa2\x9c\x16\xdd\x4b\x92\x79\xac\xb0\xd2\x6d\x01\xd4\x97\xe8\x02\x71\x87\xff\xf4\x16\xf7\x37\x89\x89\x1f\x32\xa6\x70\xb9\xc7\x58\xf6\x02\x99\x86\x65\x49\x0e\x4d\x7f\xfb\xce\x83\x6f\xa7\x35\xf4\x34\x71\x0e\xee\xff\xa4\xc7\xdb\x14\x38\x4e\xa6\x4a\x27\x3e\x8d\x37\x9e\x04\x4d\xf1\x2a\x15\x16\x59\x4f\x04\x96\xe0\xca\xc4\x54\xe7\xbf\x27\x8b\xa6\x47\xf4\xe0\xb0\x51\x51\xaf\x48\xd0\xd0\x9f\x1b\xec\xa2\x99\x80\x07\x7d\xe9\xe4\x40\x70\x08\xda\x91\x87\x84\xf7\x1c\x22\x13\xea\xe0\xab\xa0\x39\x63\xe8\x6e\x46\xe8\x74\x65\x84\xa8\xe7\x7e\x1c\x2e\x12\x71\xb6\xa5\x07\x7a\xfa\xb6\x1f\x1d\x50\x12\x76\xb6\x14\xaf\x0f\x6a\x53\xce\xc7\xd7\x01\x38\x7d\x81\x7e\xd3\x35\xfb\x1e\x40\x68\xe4\x6b\x40\xcd\x2e\x54\x18\xcd\x63\xc4\x30\x24\x4c\x71\x3e\x2d\xe5\x6a\x0f\x14\xed\x24\x2a\x85\x5f\xaf\x55\xae\xa7\x9a\x2d\x58\x14\xdf\xad\xc0\xe3\xa4\xaf\x1b\xfa\x80\x8c\x84\x68\x36\x32\xe9\x18\xd1\x61\x43\xbc\xc5\xd1\x08\xa8\x91\x29\x42\x58\x0e\xf4\x94\x27\xd3\xcf\x80\xee\xc6\x67\xaf\xa5\xde\x01\x1d\x66\xbf\x01\xe3\xe4\xbf\xcf\x28\xa7\x21\xda\x79\xb5\x18\x46\xe3\x48\x11\x1e\x2c\xfe\xb0\xce\x79\xee\x86\x65\x6b\x55\x71\x34\xf5\x23\x07\x55\xd1\x84\x57\xa2\xe9\xfe\x0b\xa2\xaa\x86\x52\x9b\x61\x1b\x8e\x90\xa7\xee\x0e\x28\x37\xe8\x10\x5e\x17\x8c\x92\xf4\xc9\x90\xb5\xea\xe3\x42\xaa\x99\x6c\x19\x10\x7f\x94\x28\xa1\xce\xa6\x1f\xe1\xd4\x25\x49\x02\xf0\xf6\xa1\xbb\xe5\x2f\x7c\xfa\x36\x8c\x2b\xb0\xd0\x75\x2c\x6c\x2c\xcd\x65\x89\x9e\x37\xcb\xbc\x83\xc4\x7a\xbe\x8f\xb6\x39\xa5\x94\x13\x71\x1c\x80\x65\x41\x0e\x09\x4f\xdd\x2c\x44\x47\x37\xc5\x5a\x4c\x53\xcc\x2e\x18\x66\xbf\x74\x09\xb8\x26\x07\xea\x5c\xf1\x1b\xd6\x59\xda\x50\x4e\xed\xa4\xb3\x93\xd2\x78\x77\x69\x98\xb0\xee\x8b\xcf\xbb\x48\x5c\x64\x55\x67\x80\x2b\x1c\x46\xb2\x52\xa7\x7d\x14\xd9\x48\x0d\x52\xad\x99\xd2\x06\x52\x7c\xf0\x89\xd7\x5f\xdd\xca\x4a\x90\xbf\x45\x7f\xe1\x11\xc5\xd6\xef\xbe\x8a\xbb\xa2\x69\xf8\x77\x14\x61\xa6\x9d\x34\x69\x29\x42\xa0\x87\x90\x7c\xd9\xdf\x4b\x56\x39\xca\x2c\x8a\x2e\xa9\x39\x3b\xcb\x9c\x5e\x01\xdf\x67\xa4\x27\xa9\xba\xb5\x8a\x97\x35\x5d\xd1\x4a\x3f\x9f\x07\x0f\x5a\xeb\x11\x89\xd2\xae\x59\xc2\x74\x04\x7e\xf4\xa1\x29\x0b\x08\x80\xf2\x8d\x85\x0b\x32\x18\xaa\x24\xbb\x47\x1a\x0e\xc8\xea\xf7\x53\xdf\x6d\x1b\xab\xdc\xf0\xb4\x53\xb9\xa1\xf1\x82\xc6\x61\x6b\xb1\xed\xfc\xe6\xdb\x57\x95\x6b\x56\xd9\x80\x6c\xf0\xcf\x0b\x04\x4f\x1b\x76\xe6\x9c\x19\x72\x0d\xea\x45\x6f\x68\x8c\x78\x82\x6a\x72\x6e\xd8\xca\x79\xb3\x6a\x60\x99\xb6\xb4\x47\x7e\x54\xab\x95\xc2\x60\x15\xcb\x26\x53\xbe\x7c\xc6\x69\xc7\x20\xdc\x58\xa8\x60\x19\xf5\x8d\xcf\x14\x05\x3f\x30\x5b\x53\x83\x09\x3b\x62\xa8\x1f\xa0\x71\x7e\x3e\xab\x63\x80\x9f\xb7\xa3\x4f\xdc\x0d\x70\xc9\xbb\x9a\xff\x39\x7e\x2f\x53\x33\xec\xc1\x0a\x96\xa1\x13\x2d\xfa\x4b\xb9\xa9\xa4\xeb\xaa\x6d\xfe\x1d\xcd\xa5\x4e\x3f\x83\xf1\x9c\xa7\x29\x21\x89\xeb\x80\xad\xdb\x16\x8e\xf4\x53\xf5\xab\xdc\xb9\x01\x56\xa0\x58\x02\xc3\xa8\xdb\x1a\x37\xf8\x2d\x71\x78\xd4\x28\x8d\x18\xaf\xb4\xa2\xf9\x80\x8d\x18\x3b\x72\x34\x62\xb8\xbe\xcc\x24\x79\xd4\x8c\x32\x57\x0e\x4e\x91\xba\xe0\x05\xc2\x4e\xf9\xc6\x37\x97\x31\x1b\x89\x62\xb2\xb4\xca\xbc\x83\xe2\x02\xc0\xb1\x60\x03\x59\xa7\xc5\x21\x92\x5c\xe0\x56\xb3\x89\x4d\x91\xf5\x68\x5c\x9d\x8d\x71\x56\xa6\x77\x70\x8f\x25\x40\xf1\x89\x1e\x4c\xa2\xbe\xc2\xb5\xbd\xf4\xb8\xb2\x06\xc4\xaf\x7d\x15\x7c\xcf\x63\xfc\x52\xf5\x85\x7c\x1f\x4c\x87\x13\x70\x7f\x6b\x47\x2a\x63\x7c\x24\x41\x12\x6c\xec\x3e\x1f\xa0\x4a\x3f\x29\x03\xd9\x58\x86\x5a\x44\x82\x46\xd9\x6b\xa4\xa1\xd3\x55\x11\x64\xf8\x08\x8b\x1f\xb9\x3b\x98\x7b\x6c\xd3\xeb\x3e\x8b\xec\x52\x60\xe6\x08\xd9\xff\x14\x1a\x07\x2d\x49\x07\xe7\x95\x23\xfb\x68\x81\xc0\x63\x8c\xc9\xe7\xad\xe6\x63\xef\x18\x9a\xb8\xb6\x27\xc9\x59\x35\x36\xda\xc0\x49\x9a\x1c\x40\x5b\x44\x00\x02\xbe\x50\x71\x23\x9e\xa5\x97\xe4\xc9\x41\xdb\x85\xbe\x8c\x33\xa2\x45\xd1\xa5\xc1\x25\x9d\x0f\x13\x00\xb4\x1d\x71\xaa\x03\xba\x31\x1f\x50\x40\xb1\xe4\x2a\x96\x04\xdf\x35\xf0\xa5\x56\x09\x3f\x6a\x9d\x5d\x58\xcd\xd4\x1b\x6e\x47\x15\xce\x4a\x51\xbb\x97\xdc\x8a\xe1\x87\xb2\xba\x6f\x9b\xb8\x76\x06\xf0\xc7\x7b\x10\x80\xf2\x67\x4a\xd3\xc8\x08\xb1\x0b\x34\x51\x2a\xa7\xec\x24\x0e\xed\x4c\x51\x0a\x99\xa3\x4d\xbe\xb6\x77\xed\xec\x14\xc3\xc9\xff\x63\x24\xcf\x44\xf0\x7c\x4a\xe3\xc4\x5a\x90\x89\x23\xed\x3c\x26\x25\x33\xbb\xb0\x30\xfd\x0d\x2c\x25\xe7\x44\x57\x35\xa4\x34\x7b\x28\xfa\x2e\x8a\x2a\x2a\x52\x85\x22\x80\xb4\xce\x33\xe6\x42\x51\x02\x1f\x26\x7d\x2c\x2f\x28\x03\xbf\x6c\x5a\x39\x31\xae\xd5\x3d\x66\xef\x10\x86\xed\xfd\xe8\xf6\x41\x38\xe8\xd3\x4f\x68\xe2\x7d\x34\x44\xa7\xca\xc6\x49\xdc\xcf\xed\xb0\xc1\x81\xf4\x50\xa5\x1f\x7d\x14\x94\xdf\xcc\xc5\xa7\x79\x0b\xf6\x3a\x03\x65\x88\x22\x50\x94\xbd\xb6\x8b\x6b\xd6\xcd\xda\xd9\xe6\x17\x40\x5b\xa5\x7e\xc1\x0e\x1f\x69\x25\x13\x57\xcf\xd3\x3d\xe6\x2a\x36\x42\x45\x72\x90\x7d\x0e\x10\x2f\xcc\x22\xad\xf4\xc8\x6e\x44\x9c\xd1\xd8\x5c\x24\x6f\x81\xcd\x00\x3a\xbe\x6f\x64\xe9\x9d\x2a\x86\xf5\x7c\x15\xc1\xcc\x38\x96\x9f\xb3\xc0\xa0\x4f\x23\x14\x1a\x8e\x03\x5f\xc9\xae\x15\xdd\xbc\x2a\xcc\x57\x67\x93\xbc\xb3\xd2\x2b\xae\x9c\x52\x60\x9c\x0a\x90\x4c\x28\xd5\x17\x5d\x29\x6e\x67\xda\x38\xad\xbb\x5c\xbe\x1b\x02\x1d\x6d\x3f\x0f\xb3\x8a\x1c\x71\x3d\x28\xfc\xe4\x19\x99\x08\xfa\xd3\xe6\xbe\x4b\x32\x38\x56\x93\xbd\x86\xd3\x73\xab\xc3\x83\x62\xe7\xd7\xcf\x84\x4c\x19\x6a\x11\x6f\xcd\x23\x53\x43\x5b\xd9\xc6\xab\xa5\x2f\x07\xf2\xb0\xe3\xaa\xd0\xed\xe0\x8e\xc9\x0b\xdb\x60\x29\x10\xfa\x8f\xc7\xbc\x17\x3f\x1f\x55\x6d\x8c\x79\xe5\xa2\x54\xc7\x9a\x07\x00\xc2\xf7\x19\xa9\xa0\x78\x74\xed\x67\xb3\x88\xa6\x88\x79\x71\x90\x25\x03\xf8\xa3\xb9\x7f\x4e\x83\x44\x8f\x06\x2c\x96\x6d\xd3\xa5\xf9\xa0\x46\x3b\x2b\x8e\x2d\xf5\x93\xbb\xe9\x88\x04\xeb\x08\xa3\xe3\xdf\x24\xb8\x45\xda\x87\xcc\x04\x07\xd1\x5e\xdc\x49\xc8\xaa\x25\x53\x05\x4f\xf8\xf4\x60\xb5\x9b\xd3\x81\x94\xd6\xd0\xcb\x56\x58\xc6\x4f\x10\x4e\xc5\x9c\x9a\xa6\x57\x29\xd3\x86\xec\xbf\x5d\x15\x74\xe7\x95\xcb\x44\x7d\xb3\x01\xed\x3d\x5e\xd5\xf2\xb8\x64\xeb\xc8\x46\xdb\x2c\x10\xfe\xc9\x40\xce\x90\x30\x76\x81\x2e\x7b\xa1\x36\x7b\x94\x2a\xf5\xaf\x4c\x1f\x28\x29\xc8\x72\xbd\x9d\xd8\x1b\x9c\x79\x13\x95\x4a\xa9\xb2\xb2\xbb\xda\xc0\x25\xa4\xb6\x42\x50\xf1\x2b\x58\xbb\xbd\x4c\x0a\x61\x8a\xe8\x49\x00\xab\xa6\xb4\xa8\xfe\x7b\xaa\x03\x25\xb4\xa0\x70\x44\x2a\x46\xc9\x0e\xbe\xcd\xc7\x4e\x01\xc9\x30\x4f\x96\xae\x73\x03\xc3\x60\xb3\x1d\xc3\x19\x0f\xf2\x82\xc2\xb2\x42\x0f\x8b\x11\xa6\x80\xbf\xf7\x2c\xfb\xa5\x96\xc6\xea\x91\xc3\x46\xe1\x33\x33\x1e\xa0\x70\x5b\xad\xd6\x8e\xe3\xb0\xc1\xa9\x6b\xbf\x28\x93\x94\x10\x3f\x90\x23\x14\xee\x6f\x56\x74\x8e\xf1\xb4\xfb\xbd\x33\x51\x9d\x08\xd3\x3e\x58\x15\x17\x91\xf1\x19\xac\x7e\x8b\x70\x4b\x52\x3d\x89\x55\x73\x54\x43\x72\x99\x66\x83\x85\x13\x58\xe0\xce\x24\x65\x6b\x9b\x27\x2b\x4e\xf5\x01\x39\x86\x58\xf0\x46\x6d\x44\xdd\xbc\x18\xf1\xce\xbc\x9b\x20\x31\x52\x95\xe3\x7e\x52\x48\xf9\xfb\x19\x04\x74\x63\x8c\xc8\x38\x40\x43\x31\x0f\x10\xd4\xa3\x48\x9c\x19\xf7\xf5\x9a\x75\xb6\x2b\xcd\x49\x3e\x28\x2f\x3b\xf9\xd5\x18\xee\x8b\x78\x3d\xde\x21\x42\x69\x29\x48\x85\x72\x6f\x1d\x8b\xd6\xa1\xc0\xe9\x30\x4c\x23\x58\xc5\x50\x1d\xf6\xac\x14\x7f\xb4\x41\xff\xa7\x73\xa5\xcc\x3a\xe0\x17\xaf\x98\xf4\x0c\xb7\x46\x66\x15\xe5\x43\x89\x0f\x8c\x1a\xbe\xd1\x96\x61\xc7\x89\x81\xbe\xcf\xf7\x2b\xf0\x8b\x22\x74\xe3\x50\x1c\x75\xdb\xd6\x04\x78\x96\x77\x77\x0b\x43\x73\x95\xf4\x0f\x54\xaf\x2f\x3b\xc9\xb7\x61\xd4\x97\x19\x8d\x23\x50\x9a\x86\x63\xca\x9f\xf7\xe5\x94\xe5\x59\x26\x6c\x16\xcc\x40\x3a\xde\x09\xc4\x1b\x3c\x50\x68\xa1\x27\x45\x88\xc8\xfd\x7a\x67\x49\x98\x8e\x24\xe7\xba\x5a\xe6\x77\xdc\x7b\x69\xd8\x92\xa8\x4e\x25\xa6\x9c\x95\xe5\xaf\x67\x5b\x87\x67\x92\xae\xc9\xc3\x74\x84\x09\x3b\x45\x3f\x72\xf1\x79\x5d\xe1\x8e\xec\x40\x15\x11\xb6\x7e\x7c\x9d\x98\x6b\xd9\x9e\x1e\xf0\xea\x18\x2c\x25\xb5\x7d\xaa\x1d\xca\x04\xec\xfc\xd5\x04\x24\x60\x1c\x45\x3c\x67\x6e\x5c\x7e\x1d\x66\xa9\xc5\xc9\xa1\xb9\x3d\xf1\x71\x28\xcd\x13\xc4\x8e\x0f\x81\x9c\x44\x88\xcc\x31\xa3\xf6\x03\xfb\x33\x9f\x9e\xf3\xa2\x95\x89\xb0\xbe\x5a\x9b\xbe\xfc\x62\x0f\xeb\x69\x81\xea\xd9\xe1\x3c\x9f\x1e\xea\xeb\x8d\xc3\x4f\xd3\x8c\x0e\x89\x32\x3e\x99\x2a\xe1\x0f\x9f\xed\xa1\xe0\xfd\x40\x83\x7f\x40\x07\x49\xc0\x58\x3f\xd2\xf6\xe3\x91\x4e\x62\x90\xbe\xce\xa5\xab\x15\x51\x53\x54\xc7\xc4\xbd\x2c\x92\x57\xc0\x6b\xa9\x7f\x15\x5d\xa1\x09\x9d\xb2\x4f\xf6\xd9\xa2\xeb\xcd\xd5\x62\x6f\x84\x89\xe3\xa4\x9c\x5a\xd9\xdd\x2e\xfc\xde\xb5\xa5\x18\x83\x9e\x86\x44\xf7\x06\x03\x9a\xb8\x12\xf6\xe9\xf5\x87\x81\x30\xa9\x2d\x1d\xc1\x35\x7e\x5a\xf7\x34\x93\x71\xf8\x39\x4c\xd4\x90\x07\xda\x2c\x7b\x3f\x98\xfd\x75\x51\x64\x09\xb8\x52\x65\x7f\x06\x91\x53\x38\xa3\x31\xae\x0a\x25\x7a\x34\xd8\xab\x7b\x3d\x72\x04\x04\x6e\x1b\x2b\x59\x11\xa8\x1c\xd0\x98\xa9\x09\x0a\x3d\x95\xc3\x02\xc6\xb0\x00\x35\x9c\x0d\xb1\xc9\xc2\x1f\x66\xfd\xc4\x2a\xb2\xcb\x45\x96\x9c\x09\x5b\x2e\x4d\xb5\x9f\xa6\x8a\x97\xf6\x07\xb0\x80\x73\xa2\x7f\x43\x30\xd4\xe3\x31\x96\xc6\x0c\xf3\xaf\xba\x4c\xc8\x65\xec\x72\x90\x9b\x12\x0a\xe2\xb8\x10\x3f\xf9\xbc\xcc\x35\xd4\xde\x70\xa3\x99\x2f\x16\x51\x11\x00\x2f\x48\x4d\x55\x69\xa7\xbf\x92\xe7\x75\x7a\x9f\xda\xda\xee\x0b\xc2\x5b\x6e\x03\xb1\x7b\x2e\xd5\x56\xa7\x00\x44\x89\xb0\x24\xcf\x70\x39\x76\x42\x84\x5c\x83\x20\xac\x01\x97\xe7\x08\x14\x1b\x98\x65\xae\xbe\xfc\x1e\x7b\x96\x54\x65\xc7\x6d\xe5\x55\xdd\x38\x5d\xd0\x12\xf5\xdb\x0c\x49\xc1\xe6\x02\x0e\xbd\xf4\x17\x3c\x69\x0d\x78\x0e\x24\x6d\x65\xa2\xc2\x13\x9f\x21\x44\xf7\x41\x8f\x87\x83\xfe\xcb\x59\x73\x22\xaf\x39\xd9\xaf\x89\xfb\xec\x6b\xc4\xe8\x84\x41\xdb\xe8\xa2\x62\xe6\xbd\x05\xb3\x53\x5c\xce\xcb\xd8\x71\xfd\xdc\x69\xf7\x8e\xc4\xa1\xe9\x0a\xd3\x2a\xf9\x74\xe9\x61\xc9\x8a\xe2\x7d\x86\xc2\x84\x8f\x9e\x52\x29\x99\x1c\xe7\x94\x1a\xdc\x70\x45\xa3\x3f\xa1\xa5\xea\xbf\x55\x3f\x5f\x17\x1b\xc0\xd1\x1d\xe8\xe1\x6e\xc4\x19\xd4\x68\xe6\xb6\xc5\xca\x61\xb4\x6c\x0a\xe8\xea\xb4\xe6\xcf\xb7\xd2\x2d\xd3\xa0\x26\xd5\x45\x46\x52\x14\xeb\xaa\x2b\x97\x97\xa8\xbd\x50\xc3\x32\x01\x1a\x15\x5e\xaa\x99\x8e\x50\xfb\x8f\xe7\x11\xa8\x5b\x16\x1d\xb1\xe3\x99\x32\x53\x03\x31\x7e\x69\xfc\x32\xb8\x6d\xc1\xbb\x00\xf3\x6a\x3a\x05\x86\xec\xfe\xac\x46\x2c\xc4\x99\x78\x5f\xb3\x0f\xce\x54\x6f\x8a\x6e\x73\x5f\x45\xb4\x77\x86\xfa\xae\x82\x1e\x80\x8c\x61\x4f\x63\x43\x55\x64\x64\x2f\x43\xa4\xc9\x8a\x0c\x32\xac\x20\xea\x1e\xc4\x48\x0f\xd9\xec\xad\x4f\x6a\x4d\x5e\xc3\x9b\x98\x09\xf4\x5a\xac\xd5\x79\xea\xc5\x44\xc4\xd8\xa5\xc5\xb0\x92\x75\xad\x32\x07\x6e\x98\x11\x8d\x4b\x3c\x91\x6e\x76\xcc\xdb\xab\xc8\x15\xa5\x7d\x85\x57\x87\x2c\xea\x2a\x4b\x51\x9a\x2c\x7a\x98\x4f\x02\x3b\xf6\xb4\xb5\x79\x0c\xb5\xc1\xc4\x84\x7c\x88\xb1\xe9\x02\xcb\x8d\xfa\x60\xeb\x55\x31\x2e\xa8\xe7\xa3\xf9\x6c\x32\x5f\x48\xb8\x46\x6b\xe2\x1c\xc0\xe9\xb5\xb1\xb9\x6c\x44\x37\xd9\xb6\xec\x1d\x47\x56\x67\x1d\x57\x17\xd6\x87\x70\x74\xae\x61\x24\x7a\x93\x2f\x5e\x8f\x07\xc7\x9a\x42\x2a\xf4\x52\x44\x29\x7b\xfb\xc3\x0a\x9c\x17\x00\xe9\xc6\xea\xd0\xe3\x46\xf0\x6f\x7a\x6b\x51\xd5\x18\x0d\x5a\xa5\x87\x26\x5b\x92\xba\xe9\x34\x2c\x34\x97\xd9\x9f\x48\x3c\xeb\x18\xa1\xc1\xf7\xdc\xfb\x18\xe9\xc7\xb5\x4c\xae\x54\x6b\x4f\x94\x81\xd2\xb5\x49\xbd\x1f\x23\xb7\xa5\xb1\x70\x34\xb2\xb5\x34\x67\x70\xa6\x67\xca\x7c\x24\xaf\x5d\x14\x30\x2a\xe2\x49\x25\x31\xc0\x71\x18\xf6\xd9\x51\xde\xd0\x63\x45\xdc\x2b\xc6\x71\x14\xeb\x89\x3a\x81\xfd\xb7\x0b\xec\xfd\x77\x21\x8b\xe6\x5e\x70\xb8\xf2\x10\x73\x44\x71\xc5\x16\x1c\x47\x1c\x9d\xf4\x9d\x2e\x53\xe4\x7d\xed\x54\xb4\xd2\x7c\x1b\x9b\x98\x27\x73\x4d\x42\xbb\x70\xaa\x92\x4e\xce\x4f\xa7\x04\x6f\x5b\x31\xe6\x0a\xfc\xb2\x80\xfc\xaa\x3e\x12\xd9\xf0\x46\x86\x75\x48\x84\xeb\x3a\x88\xd8\x8c\x78\x5e\x5f\xef\x3d\x79\xc1', 2)
If you want to also obfuscate the strings, you can specify the --mix-str
option:
pyarmor obfuscate --mix-str script.py
In order to package your Python application, you need pyinstaller
:
pip install pyinstaller
Then run:
pyarmor pack script.py
In the dist
folder, you will find the obfuscated bundled application to distribute.