REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 73.91 KB
Close
/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/dialects/mssql/__pycache__/base.cpython-37.pyc
Text
Base64
Qg0NCgAAAADDzDRdZUwBAOMAAAAAAAAAAAAAAAC1AAAAQAAAAHNABgAAZABaAGQBZAJsAVoBZAFkAmwCWgJkAWQCbANaA2QBZAJsBFoEZANkBGwFbQZaBwEAZAVkBmwFbQhaCAEAZAVkB2wFbQlaCQEAZAVkCGwFbQpaCwEAZAVkCWwFbQxaDAEAZAVkCmwFbQ1aDgEAZAVkC2wFbQ9aDwEAZAVkDGwIbRBaEAEAZAVkDWwIbRFaEQEAZAVkDmwMbRJaEgEAZAVkD2wMbRNaEwEAZAVkEGwMbRRaFAEAZAVkC2wMbQ9aFQEAZAVkEWwNbRZaFgEAZAVkEmwNbRdaFwEAZAVkE2wNbRhaGAEAZAVkFGwNbRlaGQEAZAVkFWwNbRpaGgEAZAVkFmwNbRtaGwEAZAVkF2wNbRxaHAEAZAVkGGwNbR1aHQEAZAVkGWwNbR5aHgEAZAVkGmwNbR9aHwEAZAVkG2wNbSBaIAEAZAVkHGwNbSFaIQEAZAVkHWwNbSJaIgEAZAVkHmwNbSNaIwEAZAVkH2wPbSRaJAEAZCBaJWQhWiZkIlonZCNaKGQkWilkJVoqZStkJmQnZChkKWQqZCtkLGQtZC5kL2QwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZDpkO2Q8ZD1kPmQ/ZEBkQWRCZENkRGRFZEZkR2RIZElkSmRLZExkTWROZE9kUGRRZFJkU2RUZFVkVmRXZFhkWWRaZFtkXGRdZF5kX2RgZGFkYmRjZGRkZWRmZGdkaGRpZGpka2RsZG1kbmRvZHBkcWRyZHNkdGR1ZHZkd2R4ZHlkemR7ZHxkfWR+ZH9kgGSBZIJkg2SEZIVkhmSHZIhkiWSKZItkjGSNZI5kj2SQZJFkkmSTZJRklWSWZJdkmGSZZJpkm2ScZJ1knmSfZKBkoWSiZKNkpGSlZKZkp2SoZKlkqmSrZKxkrWSuZK9ksGSxZLJks2S0ZLVktmS3ZLhkuWS6ZLtkvGS9ZL5kv2TAZMFkwmTDZMRkxWTGZMdkyGTJZMpky2TMZM1kzmTPZNBk0WTSZNNk1GTVZNZk12TYZNlntIMBWixHAGTaZNuEAGTbZQ5qLYMDWi1HAGTcZN2EAGTdZQ5qLoMDWi9HAGTeZN+EAGTfZQ5qMIMDWjFHAGTgZOGEAGThZQ5qMoMDWjJlMlozRwBk4mTjhABk42U0gwNaNUcAZORk5YQAZOVlNWUOajaDBFo3RwBk5mTnhABk52U1ZQ5qNoMEWjhHAGToZOmEAGTpZTVlDmo2gwRaOUcAZOpk64QAZOtlDmo6gwNaO0cAZOxk7YQAZO1lNIMDWjxHAGTuZO+EAGTvZTxlDmo9gwRaPkcAZPBk8YQAZPFlPGUOaj+DBFpARwBk8mTzhABk82UOakGDA1pCRwBk9GT1hABk9WVCgwNaQ0cAZPZk94QAZPdlDmo/gwNaREcAZPhk+YQAZPllDmpFZQ5qRoMEWkVHAGT6ZPuEAGT7ZQ5qRoMDWkdHAGT8ZP2EAGT9ZQ5qSIMDWklHAGT+ZP+EAGT/ZQ5qOoMDWkpHAJABZACQAWQBhACQAWQBZQ5qOoMDWktHAJABZAKQAWQDhACQAWQDZQ5qOoMDWkxHAJABZASQAWQFhACQAWQFZQ5qOoMDWk1HAJABZAaQAWQHhACQAWQHZQ5qOoMDWk5lN1pPZTFaUGUtWlFlL1pSZTJaU2U4WlRlOVpVZTtaVmUiWldlRFpYZSNaWWUgWlplGFpbZR5aXGUXWl1lRVpeZUdaX2VKWmBlS1phZUxaYmVNWmNlTlpkZR1lFmUhZS9lI2UgZRhlHmUiZURlG2UfZRxlGmU5ZTtlGWUyZThlF2VFZUplLWVHZUllQmVLZUxlTWVOkAFkCJweWmVHAJABZAmQAWQKhACQAWQKZRJqZoMDWmdHAJABZAuQAWQMhACQAWQMZRBqaIMDWmlHAJABZA2QAWQOhACQAWQOZRJqaoMDWmtHAJABZA+QAWQQhACQAWQQZWuDA1psRwCQAWQRkAFkEoQAkAFkEmUSam2DA1puRwCQAWQTkAFkFIQAkAFkFGUSam+DA1pwkAFkFZABZBaEAFpxkAFkF5ABZBiEAFpykAFkGZABZBqEAFpzkAFkG5ABZByEAFp0kAFkHZABZB6EAFp1RwCQAWQfkAFkIIQAkAFkIGUQanaDA1p3ZAJTACghAQAAYQ1ZAAAKLi4gZGlhbGVjdDo6IG1zc3FsCiAgICA6bmFtZTogTWljcm9zb2Z0IFNRTCBTZXJ2ZXIKCgouLiBfbXNzcWxfaWRlbnRpdHk6CgpBdXRvIEluY3JlbWVudCBCZWhhdmlvciAvIElERU5USVRZIENvbHVtbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTUUwgU2VydmVyIHByb3ZpZGVzIHNvLWNhbGxlZCAiYXV0byBpbmNyZW1lbnRpbmciIGJlaGF2aW9yIHVzaW5nIHRoZQpgYElERU5USVRZYGAgY29uc3RydWN0LCB3aGljaCBjYW4gYmUgcGxhY2VkIG9uIGFueSBzaW5nbGUgaW50ZWdlciBjb2x1bW4gaW4gYQp0YWJsZS4gU1FMQWxjaGVteSBjb25zaWRlcnMgYGBJREVOVElUWWBgIHdpdGhpbiBpdHMgZGVmYXVsdCAiYXV0b2luY3JlbWVudCIKYmVoYXZpb3IgZm9yIGFuIGludGVnZXIgcHJpbWFyeSBrZXkgY29sdW1uLCBkZXNjcmliZWQgYXQKOnBhcmFtcmVmOmAuQ29sdW1uLmF1dG9pbmNyZW1lbnRgLiAgVGhpcyBtZWFucyB0aGF0IGJ5IGRlZmF1bHQsIHRoZSBmaXJzdAppbnRlZ2VyIHByaW1hcnkga2V5IGNvbHVtbiBpbiBhIDpjbGFzczpgLlRhYmxlYCB3aWxsIGJlIGNvbnNpZGVyZWQgdG8gYmUgdGhlCmlkZW50aXR5IGNvbHVtbiBhbmQgd2lsbCBnZW5lcmF0ZSBEREwgYXMgc3VjaDo6CgogICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBUYWJsZSwgTWV0YURhdGEsIENvbHVtbiwgSW50ZWdlcgoKICAgIG0gPSBNZXRhRGF0YSgpCiAgICB0ID0gVGFibGUoJ3QnLCBtLAogICAgICAgICAgICBDb2x1bW4oJ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSksCiAgICAgICAgICAgIENvbHVtbigneCcsIEludGVnZXIpKQogICAgbS5jcmVhdGVfYWxsKGVuZ2luZSkKClRoZSBhYm92ZSBleGFtcGxlIHdpbGwgZ2VuZXJhdGUgRERMIGFzOgoKLi4gc291cmNlY29kZTo6IHNxbAoKICAgIENSRUFURSBUQUJMRSB0ICgKICAgICAgICBpZCBJTlRFR0VSIE5PVCBOVUxMIElERU5USVRZKDEsMSksCiAgICAgICAgeCBJTlRFR0VSIE5VTEwsCiAgICAgICAgUFJJTUFSWSBLRVkgKGlkKQogICAgKQoKRm9yIHRoZSBjYXNlIHdoZXJlIHRoaXMgZGVmYXVsdCBnZW5lcmF0aW9uIG9mIGBgSURFTlRJVFlgYCBpcyBub3QgZGVzaXJlZCwKc3BlY2lmeSBgYEZhbHNlYGAgZm9yIHRoZSA6cGFyYW1yZWY6YC5Db2x1bW4uYXV0b2luY3JlbWVudGAgZmxhZywKb24gdGhlIGZpcnN0IGludGVnZXIgcHJpbWFyeSBrZXkgY29sdW1uOjoKCiAgICBtID0gTWV0YURhdGEoKQogICAgdCA9IFRhYmxlKCd0JywgbSwKICAgICAgICAgICAgQ29sdW1uKCdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUsIGF1dG9pbmNyZW1lbnQ9RmFsc2UpLAogICAgICAgICAgICBDb2x1bW4oJ3gnLCBJbnRlZ2VyKSkKICAgIG0uY3JlYXRlX2FsbChlbmdpbmUpCgpUbyBhZGQgdGhlIGBgSURFTlRJVFlgYCBrZXl3b3JkIHRvIGEgbm9uLXByaW1hcnkga2V5IGNvbHVtbiwgc3BlY2lmeQpgYFRydWVgYCBmb3IgdGhlIDpwYXJhbXJlZjpgLkNvbHVtbi5hdXRvaW5jcmVtZW50YCBmbGFnIG9uIHRoZSBkZXNpcmVkCjpjbGFzczpgLkNvbHVtbmAgb2JqZWN0LCBhbmQgZW5zdXJlIHRoYXQgOnBhcmFtcmVmOmAuQ29sdW1uLmF1dG9pbmNyZW1lbnRgCmlzIHNldCB0byBgYEZhbHNlYGAgb24gYW55IGludGVnZXIgcHJpbWFyeSBrZXkgY29sdW1uOjoKCiAgICBtID0gTWV0YURhdGEoKQogICAgdCA9IFRhYmxlKCd0JywgbSwKICAgICAgICAgICAgQ29sdW1uKCdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUsIGF1dG9pbmNyZW1lbnQ9RmFsc2UpLAogICAgICAgICAgICBDb2x1bW4oJ3gnLCBJbnRlZ2VyLCBhdXRvaW5jcmVtZW50PVRydWUpKQogICAgbS5jcmVhdGVfYWxsKGVuZ2luZSkKCi4uIHZlcnNpb25jaGFuZ2VkOjogIDEuMyAgIEFkZGVkIGBgbXNzcWxfaWRlbnRpdHlfc3RhcnRgYCBhbmQKICAgYGBtc3NxbF9pZGVudGl0eV9pbmNyZW1lbnRgYCBwYXJhbWV0ZXJzIHRvIDpjbGFzczpgLkNvbHVtbmAuICBUaGVzZSByZXBsYWNlCiAgIHRoZSB1c2Ugb2YgdGhlIDpjbGFzczpgLlNlcXVlbmNlYCBvYmplY3QgaW4gb3JkZXIgdG8gc3BlY2lmeSB0aGVzZSB2YWx1ZXMuCgouLiBkZXByZWNhdGVkOjogMS4zCgogICBUaGUgdXNlIG9mIDpjbGFzczpgLlNlcXVlbmNlYCB0byBzcGVjaWZ5IElERU5USVRZIGNoYXJhY3RlcmlzdGljcyBpcwogICBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gICBQbGVhc2UgdXNlCiAgIHRoZSBgYG1zc3FsX2lkZW50aXR5X3N0YXJ0YGAgYW5kIGBgbXNzcWxfaWRlbnRpdHlfaW5jcmVtZW50YGAgcGFyYW1ldGVycwogICBkb2N1bWVudGVkIGF0IDpyZWY6YG1zc3FsX2lkZW50aXR5YC4KCi4uIG5vdGU6OgoKICAgIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBJREVOVElUWSBjb2x1bW4gb24gdGhlIHRhYmxlLiAgV2hlbiB1c2luZwogICAgYGBhdXRvaW5jcmVtZW50PVRydWVgYCB0byBlbmFibGUgdGhlIElERU5USVRZIGtleXdvcmQsIFNRTEFsY2hlbXkgZG9lcyBub3QKICAgIGd1YXJkIGFnYWluc3QgbXVsdGlwbGUgY29sdW1ucyBzcGVjaWZ5aW5nIHRoZSBvcHRpb24gc2ltdWx0YW5lb3VzbHkuICBUaGUKICAgIFNRTCBTZXJ2ZXIgZGF0YWJhc2Ugd2lsbCBpbnN0ZWFkIHJlamVjdCB0aGUgYGBDUkVBVEUgVEFCTEVgYCBzdGF0ZW1lbnQuCgouLiBub3RlOjoKCiAgICBBbiBJTlNFUlQgc3RhdGVtZW50IHdoaWNoIGF0dGVtcHRzIHRvIHByb3ZpZGUgYSB2YWx1ZSBmb3IgYSBjb2x1bW4gdGhhdCBpcwogICAgbWFya2VkIHdpdGggSURFTlRJVFkgd2lsbCBiZSByZWplY3RlZCBieSBTUUwgU2VydmVyLiAgIEluIG9yZGVyIGZvciB0aGUKICAgIHZhbHVlIHRvIGJlIGFjY2VwdGVkLCBhIHNlc3Npb24tbGV2ZWwgb3B0aW9uICJTRVQgSURFTlRJVFlfSU5TRVJUIiBtdXN0IGJlCiAgICBlbmFibGVkLiAgIFRoZSBTUUxBbGNoZW15IFNRTCBTZXJ2ZXIgZGlhbGVjdCB3aWxsIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24KICAgIGF1dG9tYXRpY2FsbHkgd2hlbiB1c2luZyBhIGNvcmUgOmNsYXNzOmAuSW5zZXJ0YCBjb25zdHJ1Y3Q7IGlmIHRoZQogICAgZXhlY3V0aW9uIHNwZWNpZmllcyBhIHZhbHVlIGZvciB0aGUgSURFTlRJVFkgY29sdW1uLCB0aGUgIklERU5USVRZX0lOU0VSVCIKICAgIG9wdGlvbiB3aWxsIGJlIGVuYWJsZWQgZm9yIHRoZSBzcGFuIG9mIHRoYXQgc3RhdGVtZW50J3MgaW52b2NhdGlvbi5Ib3dldmVyLAogICAgdGhpcyBzY2VuYXJpbyBpcyBub3QgaGlnaCBwZXJmb3JtaW5nIGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCB1cG9uIGZvcgogICAgbm9ybWFsIHVzZS4gICBJZiBhIHRhYmxlIGRvZXNuJ3QgYWN0dWFsbHkgcmVxdWlyZSBJREVOVElUWSBiZWhhdmlvciBpbiBpdHMKICAgIGludGVnZXIgcHJpbWFyeSBrZXkgY29sdW1uLCB0aGUga2V5d29yZCBzaG91bGQgYmUgZGlzYWJsZWQgd2hlbiBjcmVhdGluZwogICAgdGhlIHRhYmxlIGJ5IGVuc3VyaW5nIHRoYXQgYGBhdXRvaW5jcmVtZW50PUZhbHNlYGAgaXMgc2V0LgoKQ29udHJvbGxpbmcgIlN0YXJ0IiBhbmQgIkluY3JlbWVudCIKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCgpTcGVjaWZpYyBjb250cm9sIG92ZXIgdGhlICJzdGFydCIgYW5kICJpbmNyZW1lbnQiIHZhbHVlcyBmb3IKdGhlIGBgSURFTlRJVFlgYCBnZW5lcmF0b3IgYXJlIHByb3ZpZGVkIHVzaW5nIHRoZQpgYG1zc3FsX2lkZW50aXR5X3N0YXJ0YGAgYW5kIGBgbXNzcWxfaWRlbnRpdHlfaW5jcmVtZW50YGAgcGFyYW1ldGVycwpwYXNzZWQgdG8gdGhlIDpjbGFzczpgLkNvbHVtbmAgb2JqZWN0OjoKCiAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IFRhYmxlLCBJbnRlZ2VyLCBDb2x1bW4KCiAgICB0ZXN0ID0gVGFibGUoCiAgICAgICAgJ3Rlc3QnLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oCiAgICAgICAgICAgICdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUsIG1zc3FsX2lkZW50aXR5X3N0YXJ0PTEwMCwKICAgICAgICAgICAgIG1zc3FsX2lkZW50aXR5X2luY3JlbWVudD0xMAogICAgICAgICksCiAgICAgICAgQ29sdW1uKCduYW1lJywgU3RyaW5nKDIwKSkKICAgICkKClRoZSBDUkVBVEUgVEFCTEUgZm9yIHRoZSBhYm92ZSA6Y2xhc3M6YC5UYWJsZWAgb2JqZWN0IHdvdWxkIGJlOgoKLi4gc291cmNlY29kZTo6IHNxbAoKICAgQ1JFQVRFIFRBQkxFIHRlc3QgKAogICAgIGlkIElOVEVHRVIgTk9UIE5VTEwgSURFTlRJVFkoMTAwLDEwKSBQUklNQVJZIEtFWSwKICAgICBuYW1lIFZBUkNIQVIoMjApIE5VTEwsCiAgICAgKQoKLi4gdmVyc2lvbmNoYW5nZWQ6OiAxLjMgIFRoZSBgYG1zc3FsX2lkZW50aXR5X3N0YXJ0YGAgYW5kCiAgIGBgbXNzcWxfaWRlbnRpdHlfaW5jcmVtZW50YGAgcGFyYW1ldGVycyBhcmUgbm93IHVzZWQgdG8gYWZmZWN0IHRoZQogICBgYElERU5USVRZYGAgZ2VuZXJhdG9yIGZvciBhIDpjbGFzczpgLkNvbHVtbmAgdW5kZXIgIFNRTCBTZXJ2ZXIuCiAgIFByZXZpb3VzbHksIHRoZSA6Y2xhc3M6YC5TZXF1ZW5jZWAgb2JqZWN0IHdhcyB1c2VkLiAgQXMgU1FMIFNlcnZlciBub3cKICAgc3VwcG9ydHMgcmVhbCBzZXF1ZW5jZXMgYXMgYSBzZXBhcmF0ZSBjb25zdHJ1Y3QsIDpjbGFzczpgLlNlcXVlbmNlYCB3aWxsIGJlCiAgIGZ1bmN0aW9uYWwgaW4gdGhlIG5vcm1hbCB3YXkgaW4gYSBmdXR1cmUgU1FMQWxjaGVteSB2ZXJzaW9uLgoKSU5TRVJUIGJlaGF2aW9yCl5eXl5eXl5eXl5eXl5eXl4KCkhhbmRsaW5nIG9mIHRoZSBgYElERU5USVRZYGAgY29sdW1uIGF0IElOU0VSVCB0aW1lIGludm9sdmVzIHR3byBrZXkKdGVjaG5pcXVlcy4gVGhlIG1vc3QgY29tbW9uIGlzIGJlaW5nIGFibGUgdG8gZmV0Y2ggdGhlICJsYXN0IGluc2VydGVkIHZhbHVlIgpmb3IgYSBnaXZlbiBgYElERU5USVRZYGAgY29sdW1uLCBhIHByb2Nlc3Mgd2hpY2ggU1FMQWxjaGVteSBwZXJmb3JtcwppbXBsaWNpdGx5IGluIG1hbnkgY2FzZXMsIG1vc3QgaW1wb3J0YW50bHkgd2l0aGluIHRoZSBPUk0uCgpUaGUgcHJvY2VzcyBmb3IgZmV0Y2hpbmcgdGhpcyB2YWx1ZSBoYXMgc2V2ZXJhbCB2YXJpYW50czoKCiogSW4gdGhlIHZhc3QgbWFqb3JpdHkgb2YgY2FzZXMsIFJFVFVSTklORyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggSU5TRVJUCiAgc3RhdGVtZW50cyBvbiBTUUwgU2VydmVyIGluIG9yZGVyIHRvIGdldCBuZXdseSBnZW5lcmF0ZWQgcHJpbWFyeSBrZXkgdmFsdWVzOgoKICAuLiBzb3VyY2Vjb2RlOjogc3FsCgogICAgSU5TRVJUIElOVE8gdCAoeCkgT1VUUFVUIGluc2VydGVkLmlkIFZBTFVFUyAoPykKCiogV2hlbiBSRVRVUk5JTkcgaXMgbm90IGF2YWlsYWJsZSBvciBoYXMgYmVlbiBkaXNhYmxlZCB2aWEKICBgYGltcGxpY2l0X3JldHVybmluZz1GYWxzZWBgLCBlaXRoZXIgdGhlIGBgc2NvcGVfaWRlbnRpdHkoKWBgIGZ1bmN0aW9uIG9yCiAgdGhlIGBgQEBpZGVudGl0eWBgIHZhcmlhYmxlIGlzIHVzZWQ7IGJlaGF2aW9yIHZhcmllcyBieSBiYWNrZW5kOgoKICAqIHdoZW4gdXNpbmcgUHlPREJDLCB0aGUgcGhyYXNlIGBgOyBzZWxlY3Qgc2NvcGVfaWRlbnRpdHkoKWBgIHdpbGwgYmUKICAgIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIElOU0VSVCBzdGF0ZW1lbnQ7IGEgc2Vjb25kIHJlc3VsdCBzZXQgd2lsbCBiZQogICAgZmV0Y2hlZCBpbiBvcmRlciB0byByZWNlaXZlIHRoZSB2YWx1ZS4gIEdpdmVuIGEgdGFibGUgYXM6OgoKICAgICAgICB0ID0gVGFibGUoJ3QnLCBtLCBDb2x1bW4oJ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSksCiAgICAgICAgICAgICAgICBDb2x1bW4oJ3gnLCBJbnRlZ2VyKSwKICAgICAgICAgICAgICAgIGltcGxpY2l0X3JldHVybmluZz1GYWxzZSkKCiAgICBhbiBJTlNFUlQgd2lsbCBsb29rIGxpa2U6CgogICAgLi4gc291cmNlY29kZTo6IHNxbAoKICAgICAgICBJTlNFUlQgSU5UTyB0ICh4KSBWQUxVRVMgKD8pOyBzZWxlY3Qgc2NvcGVfaWRlbnRpdHkoKQoKICAqIE90aGVyIGRpYWxlY3RzIHN1Y2ggYXMgcHltc3NxbCB3aWxsIGNhbGwgdXBvbgogICAgYGBTRUxFQ1Qgc2NvcGVfaWRlbnRpdHkoKSBBUyBsYXN0cm93aWRgYCBzdWJzZXF1ZW50IHRvIGFuIElOU0VSVAogICAgc3RhdGVtZW50LiBJZiB0aGUgZmxhZyBgYHVzZV9zY29wZV9pZGVudGl0eT1GYWxzZWBgIGlzIHBhc3NlZCB0bwogICAgOmZ1bmM6YC5jcmVhdGVfZW5naW5lYCwgdGhlIHN0YXRlbWVudCBgYFNFTEVDVCBAQGlkZW50aXR5IEFTIGxhc3Ryb3dpZGBgCiAgICBpcyB1c2VkIGluc3RlYWQuCgpBIHRhYmxlIHRoYXQgY29udGFpbnMgYW4gYGBJREVOVElUWWBgIGNvbHVtbiB3aWxsIHByb2hpYml0IGFuIElOU0VSVCBzdGF0ZW1lbnQKdGhhdCByZWZlcnMgdG8gdGhlIGlkZW50aXR5IGNvbHVtbiBleHBsaWNpdGx5LiAgVGhlIFNRTEFsY2hlbXkgZGlhbGVjdCB3aWxsCmRldGVjdCB3aGVuIGFuIElOU0VSVCBjb25zdHJ1Y3QsIGNyZWF0ZWQgdXNpbmcgYSBjb3JlIDpmdW5jOmAuaW5zZXJ0YApjb25zdHJ1Y3QgKG5vdCBhIHBsYWluIHN0cmluZyBTUUwpLCByZWZlcnMgdG8gdGhlIGlkZW50aXR5IGNvbHVtbiwgYW5kCmluIHRoaXMgY2FzZSB3aWxsIGVtaXQgYGBTRVQgSURFTlRJVFlfSU5TRVJUIE9OYGAgcHJpb3IgdG8gdGhlIGluc2VydApzdGF0ZW1lbnQgcHJvY2VlZGluZywgYW5kIGBgU0VUIElERU5USVRZX0lOU0VSVCBPRkZgYCBzdWJzZXF1ZW50IHRvIHRoZQpleGVjdXRpb24uICBHaXZlbiB0aGlzIGV4YW1wbGU6OgoKICAgIG0gPSBNZXRhRGF0YSgpCiAgICB0ID0gVGFibGUoJ3QnLCBtLCBDb2x1bW4oJ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgQ29sdW1uKCd4JywgSW50ZWdlcikpCiAgICBtLmNyZWF0ZV9hbGwoZW5naW5lKQoKICAgIGVuZ2luZS5leGVjdXRlKHQuaW5zZXJ0KCksIHsnaWQnOiAxLCAneCc6MX0sIHsnaWQnOjIsICd4JzoyfSkKClRoZSBhYm92ZSBjb2x1bW4gd2lsbCBiZSBjcmVhdGVkIHdpdGggSURFTlRJVFksIGhvd2V2ZXIgdGhlIElOU0VSVCBzdGF0ZW1lbnQKd2UgZW1pdCBpcyBzcGVjaWZ5aW5nIGV4cGxpY2l0IHZhbHVlcy4gIEluIHRoZSBlY2hvIG91dHB1dCB3ZSBjYW4gc2VlCmhvdyBTUUxBbGNoZW15IGhhbmRsZXMgdGhpczoKCi4uIHNvdXJjZWNvZGU6OiBzcWwKCiAgICBDUkVBVEUgVEFCTEUgdCAoCiAgICAgICAgaWQgSU5URUdFUiBOT1QgTlVMTCBJREVOVElUWSgxLDEpLAogICAgICAgIHggSU5URUdFUiBOVUxMLAogICAgICAgIFBSSU1BUlkgS0VZIChpZCkKICAgICkKCiAgICBDT01NSVQKICAgIFNFVCBJREVOVElUWV9JTlNFUlQgdCBPTgogICAgSU5TRVJUIElOVE8gdCAoaWQsIHgpIFZBTFVFUyAoPywgPykKICAgICgoMSwgMSksICgyLCAyKSkKICAgIFNFVCBJREVOVElUWV9JTlNFUlQgdCBPRkYKICAgIENPTU1JVAoKCgpUaGlzCmlzIGFuIGF1eGlsaWFyeSB1c2UgY2FzZSBzdWl0YWJsZSBmb3IgdGVzdGluZyBhbmQgYnVsayBpbnNlcnQgc2NlbmFyaW9zLgoKTUFYIG9uIFZBUkNIQVIgLyBOVkFSQ0hBUgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTUUwgU2VydmVyIHN1cHBvcnRzIHRoZSBzcGVjaWFsIHN0cmluZyAiTUFYIiB3aXRoaW4gdGhlCjpjbGFzczpgLnNxbHR5cGVzLlZBUkNIQVJgIGFuZCA6Y2xhc3M6YC5zcWx0eXBlcy5OVkFSQ0hBUmAgZGF0YXR5cGVzLAp0byBpbmRpY2F0ZSAibWF4aW11bSBsZW5ndGggcG9zc2libGUiLiAgIFRoZSBkaWFsZWN0IGN1cnJlbnRseSBoYW5kbGVzIHRoaXMgYXMKYSBsZW5ndGggb2YgIk5vbmUiIGluIHRoZSBiYXNlIHR5cGUsIHJhdGhlciB0aGFuIHN1cHBseWluZyBhCmRpYWxlY3Qtc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGVzZSB0eXBlcywgc28gdGhhdCBhIGJhc2UgdHlwZQpzcGVjaWZpZWQgc3VjaCBhcyBgYFZBUkNIQVIoTm9uZSlgYCBjYW4gYXNzdW1lICJ1bmxlbmd0aGVkIiBiZWhhdmlvciBvbgptb3JlIHRoYW4gb25lIGJhY2tlbmQgd2l0aG91dCB1c2luZyBkaWFsZWN0LXNwZWNpZmljIHR5cGVzLgoKVG8gYnVpbGQgYSBTUUwgU2VydmVyIFZBUkNIQVIgb3IgTlZBUkNIQVIgd2l0aCBNQVggbGVuZ3RoLCB1c2UgTm9uZTo6CgogICAgbXlfdGFibGUgPSBUYWJsZSgKICAgICAgICAnbXlfdGFibGUnLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oJ215X2RhdGEnLCBWQVJDSEFSKE5vbmUpKSwKICAgICAgICBDb2x1bW4oJ215X25fZGF0YScsIE5WQVJDSEFSKE5vbmUpKQogICAgKQoKCkNvbGxhdGlvbiBTdXBwb3J0Ci0tLS0tLS0tLS0tLS0tLS0tCgpDaGFyYWN0ZXIgY29sbGF0aW9ucyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBiYXNlIHN0cmluZyB0eXBlcywKc3BlY2lmaWVkIGJ5IHRoZSBzdHJpbmcgYXJndW1lbnQgImNvbGxhdGlvbiI6OgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVkFSQ0hBUgogICAgQ29sdW1uKCdsb2dpbicsIFZBUkNIQVIoMzIsIGNvbGxhdGlvbj0nTGF0aW4xX0dlbmVyYWxfQ0lfQVMnKSkKCldoZW4gc3VjaCBhIGNvbHVtbiBpcyBhc3NvY2lhdGVkIHdpdGggYSA6Y2xhc3M6YC5UYWJsZWAsIHRoZQpDUkVBVEUgVEFCTEUgc3RhdGVtZW50IGZvciB0aGlzIGNvbHVtbiB3aWxsIHlpZWxkOjoKCiAgICBsb2dpbiBWQVJDSEFSKDMyKSBDT0xMQVRFIExhdGluMV9HZW5lcmFsX0NJX0FTIE5VTEwKCkxJTUlUL09GRlNFVCBTdXBwb3J0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNU1NRTCBoYXMgbm8gc3VwcG9ydCBmb3IgdGhlIExJTUlUIG9yIE9GRlNFVCBrZXl3b3Jkcy4gTElNSVQgaXMKc3VwcG9ydGVkIGRpcmVjdGx5IHRocm91Z2ggdGhlIGBgVE9QYGAgVHJhbnNhY3QgU1FMIGtleXdvcmQ6OgoKICAgIHNlbGVjdC5saW1pdAoKd2lsbCB5aWVsZDo6CgogICAgU0VMRUNUIFRPUCBuCgpJZiB1c2luZyBTUUwgU2VydmVyIDIwMDUgb3IgYWJvdmUsIExJTUlUIHdpdGggT0ZGU0VUCnN1cHBvcnQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIGBgUk9XX05VTUJFUiBPVkVSYGAgY29uc3RydWN0LgpGb3IgdmVyc2lvbnMgYmVsb3cgMjAwNSwgTElNSVQgd2l0aCBPRkZTRVQgdXNhZ2Ugd2lsbCBmYWlsLgoKLi4gX21zc3FsX2lzb2xhdGlvbl9sZXZlbDoKClRyYW5zYWN0aW9uIElzb2xhdGlvbiBMZXZlbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFsbCBTUUwgU2VydmVyIGRpYWxlY3RzIHN1cHBvcnQgc2V0dGluZyBvZiB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwKYm90aCB2aWEgYSBkaWFsZWN0LXNwZWNpZmljIHBhcmFtZXRlcgo6cGFyYW1yZWY6YC5jcmVhdGVfZW5naW5lLmlzb2xhdGlvbl9sZXZlbGAKYWNjZXB0ZWQgYnkgOmZ1bmM6YC5jcmVhdGVfZW5naW5lYCwKYXMgd2VsbCBhcyB0aGUgOnBhcmFtcmVmOmAuQ29ubmVjdGlvbi5leGVjdXRpb25fb3B0aW9ucy5pc29sYXRpb25fbGV2ZWxgCmFyZ3VtZW50IGFzIHBhc3NlZCB0bwo6bWV0aDpgLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnNgLiAgVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGlzc3VpbmcgdGhlCmNvbW1hbmQgYGBTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIDxsZXZlbD5gYCBmb3IKZWFjaCBuZXcgY29ubmVjdGlvbi4KClRvIHNldCBpc29sYXRpb24gbGV2ZWwgdXNpbmcgOmZ1bmM6YC5jcmVhdGVfZW5naW5lYDo6CgogICAgZW5naW5lID0gY3JlYXRlX2VuZ2luZSgKICAgICAgICAibXNzcWwrcHlvZGJjOi8vc2NvdHQ6dGlnZXJAbXNfMjAwOCIsCiAgICAgICAgaXNvbGF0aW9uX2xldmVsPSJSRVBFQVRBQkxFIFJFQUQiCiAgICApCgpUbyBzZXQgdXNpbmcgcGVyLWNvbm5lY3Rpb24gZXhlY3V0aW9uIG9wdGlvbnM6OgoKICAgIGNvbm5lY3Rpb24gPSBlbmdpbmUuY29ubmVjdCgpCiAgICBjb25uZWN0aW9uID0gY29ubmVjdGlvbi5leGVjdXRpb25fb3B0aW9ucygKICAgICAgICBpc29sYXRpb25fbGV2ZWw9IlJFQUQgQ09NTUlUVEVEIgogICAgKQoKVmFsaWQgdmFsdWVzIGZvciBgYGlzb2xhdGlvbl9sZXZlbGBgIGluY2x1ZGU6CgoqIGBgQVVUT0NPTU1JVGBgIC0gcHlvZGJjIC8gcHltc3NxbC1zcGVjaWZpYwoqIGBgUkVBRCBDT01NSVRURURgYAoqIGBgUkVBRCBVTkNPTU1JVFRFRGBgCiogYGBSRVBFQVRBQkxFIFJFQURgYAoqIGBgU0VSSUFMSVpBQkxFYGAKKiBgYFNOQVBTSE9UYGAgLSBzcGVjaWZpYyB0byBTUUwgU2VydmVyCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjEgc3VwcG9ydCBmb3IgaXNvbGF0aW9uIGxldmVsIHNldHRpbmcgb24gTWljcm9zb2Z0CiAgIFNRTCBTZXJ2ZXIuCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjIgYWRkZWQgQVVUT0NPTU1JVCBpc29sYXRpb24gbGV2ZWwgc2V0dGluZwoKTnVsbGFiaWxpdHkKLS0tLS0tLS0tLS0KTVNTUUwgaGFzIHN1cHBvcnQgZm9yIHRocmVlIGxldmVscyBvZiBjb2x1bW4gbnVsbGFiaWxpdHkuIFRoZSBkZWZhdWx0Cm51bGxhYmlsaXR5IGFsbG93cyBudWxscyBhbmQgaXMgZXhwbGljaXQgaW4gdGhlIENSRUFURSBUQUJMRQpjb25zdHJ1Y3Q6OgoKICAgIG5hbWUgVkFSQ0hBUigyMCkgTlVMTAoKSWYgYGBudWxsYWJsZT1Ob25lYGAgaXMgc3BlY2lmaWVkIHRoZW4gbm8gc3BlY2lmaWNhdGlvbiBpcyBtYWRlLiBJbgpvdGhlciB3b3JkcyB0aGUgZGF0YWJhc2UncyBjb25maWd1cmVkIGRlZmF1bHQgaXMgdXNlZC4gVGhpcyB3aWxsCnJlbmRlcjo6CgogICAgbmFtZSBWQVJDSEFSKDIwKQoKSWYgYGBudWxsYWJsZWBgIGlzIGBgVHJ1ZWBgIG9yIGBgRmFsc2VgYCB0aGVuIHRoZSBjb2x1bW4gd2lsbCBiZQpgYE5VTExgYCBvciBgYE5PVCBOVUxMYGAgcmVzcGVjdGl2ZWx5LgoKRGF0ZSAvIFRpbWUgSGFuZGxpbmcKLS0tLS0tLS0tLS0tLS0tLS0tLS0KREFURSBhbmQgVElNRSBhcmUgc3VwcG9ydGVkLiAgIEJpbmQgcGFyYW1ldGVycyBhcmUgY29udmVydGVkCnRvIGRhdGV0aW1lLmRhdGV0aW1lKCkgb2JqZWN0cyBhcyByZXF1aXJlZCBieSBtb3N0IE1TU1FMIGRyaXZlcnMsCmFuZCByZXN1bHRzIGFyZSBwcm9jZXNzZWQgZnJvbSBzdHJpbmdzIGlmIG5lZWRlZC4KVGhlIERBVEUgYW5kIFRJTUUgdHlwZXMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIE1TU1FMIDIwMDUgYW5kCnByZXZpb3VzIC0gaWYgYSBzZXJ2ZXIgdmVyc2lvbiBiZWxvdyAyMDA4IGlzIGRldGVjdGVkLCBEREwKZm9yIHRoZXNlIHR5cGVzIHdpbGwgYmUgaXNzdWVkIGFzIERBVEVUSU1FLgoKLi4gX21zc3FsX2xhcmdlX3R5cGVfZGVwcmVjYXRpb246CgpMYXJnZSBUZXh0L0JpbmFyeSBUeXBlIERlcHJlY2F0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClBlcgpgU1FMIFNlcnZlciAyMDEyLzIwMTQgRG9jdW1lbnRhdGlvbiA8aHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMTg3OTkzLmFzcHg+YF8sCnRoZSBgYE5URVhUYGAsIGBgVEVYVGBgIGFuZCBgYElNQUdFYGAgZGF0YXR5cGVzIGFyZSB0byBiZSByZW1vdmVkIGZyb20gU1FMClNlcnZlciBpbiBhIGZ1dHVyZSByZWxlYXNlLiAgIFNRTEFsY2hlbXkgbm9ybWFsbHkgcmVsYXRlcyB0aGVzZSB0eXBlcyB0byB0aGUKOmNsYXNzOmAuVW5pY29kZVRleHRgLCA6Y2xhc3M6YC5UZXh0YCBhbmQgOmNsYXNzOmAuTGFyZ2VCaW5hcnlgIGRhdGF0eXBlcy4KCkluIG9yZGVyIHRvIGFjY29tbW9kYXRlIHRoaXMgY2hhbmdlLCBhIG5ldyBmbGFnIGBgZGVwcmVjYXRlX2xhcmdlX3R5cGVzYGAKaXMgYWRkZWQgdG8gdGhlIGRpYWxlY3QsIHdoaWNoIHdpbGwgYmUgYXV0b21hdGljYWxseSBzZXQgYmFzZWQgb24gZGV0ZWN0aW9uCm9mIHRoZSBzZXJ2ZXIgdmVyc2lvbiBpbiB1c2UsIGlmIG5vdCBvdGhlcndpc2Ugc2V0IGJ5IHRoZSB1c2VyLiAgVGhlCmJlaGF2aW9yIG9mIHRoaXMgZmxhZyBpcyBhcyBmb2xsb3dzOgoKKiBXaGVuIHRoaXMgZmxhZyBpcyBgYFRydWVgYCwgdGhlIDpjbGFzczpgLlVuaWNvZGVUZXh0YCwgOmNsYXNzOmAuVGV4dGAgYW5kCiAgOmNsYXNzOmAuTGFyZ2VCaW5hcnlgIGRhdGF0eXBlcywgd2hlbiB1c2VkIHRvIHJlbmRlciBEREwsIHdpbGwgcmVuZGVyIHRoZQogIHR5cGVzIGBgTlZBUkNIQVIobWF4KWBgLCBgYFZBUkNIQVIobWF4KWBgLCBhbmQgYGBWQVJCSU5BUlkobWF4KWBgLAogIHJlc3BlY3RpdmVseS4gIFRoaXMgaXMgYSBuZXcgYmVoYXZpb3IgYXMgb2YgdGhlIGFkZGl0aW9uIG9mIHRoaXMgZmxhZy4KCiogV2hlbiB0aGlzIGZsYWcgaXMgYGBGYWxzZWBgLCB0aGUgOmNsYXNzOmAuVW5pY29kZVRleHRgLCA6Y2xhc3M6YC5UZXh0YCBhbmQKICA6Y2xhc3M6YC5MYXJnZUJpbmFyeWAgZGF0YXR5cGVzLCB3aGVuIHVzZWQgdG8gcmVuZGVyIERETCwgd2lsbCByZW5kZXIgdGhlCiAgdHlwZXMgYGBOVEVYVGBgLCBgYFRFWFRgYCwgYW5kIGBgSU1BR0VgYCwKICByZXNwZWN0aXZlbHkuICBUaGlzIGlzIHRoZSBsb25nLXN0YW5kaW5nIGJlaGF2aW9yIG9mIHRoZXNlIHR5cGVzLgoKKiBUaGUgZmxhZyBiZWdpbnMgd2l0aCB0aGUgdmFsdWUgYGBOb25lYGAsIGJlZm9yZSBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMKICBlc3RhYmxpc2hlZC4gICBJZiB0aGUgZGlhbGVjdCBpcyB1c2VkIHRvIHJlbmRlciBEREwgd2l0aG91dCB0aGUgZmxhZyBiZWluZwogIHNldCwgaXQgaXMgaW50ZXJwcmV0ZWQgdGhlIHNhbWUgYXMgYGBGYWxzZWBgLgoKKiBPbiBmaXJzdCBjb25uZWN0aW9uLCB0aGUgZGlhbGVjdCBkZXRlY3RzIGlmIFNRTCBTZXJ2ZXIgdmVyc2lvbiAyMDEyIG9yCiAgZ3JlYXRlciBpcyBpbiB1c2U7IGlmIHRoZSBmbGFnIGlzIHN0aWxsIGF0IGBgTm9uZWBgLCBpdCBzZXRzIGl0IHRvIGBgVHJ1ZWBgCiAgb3IgYGBGYWxzZWBgIGJhc2VkIG9uIHdoZXRoZXIgMjAxMiBvciBncmVhdGVyIGlzIGRldGVjdGVkLgoKKiBUaGUgZmxhZyBjYW4gYmUgc2V0IHRvIGVpdGhlciBgYFRydWVgYCBvciBgYEZhbHNlYGAgd2hlbiB0aGUgZGlhbGVjdAogIGlzIGNyZWF0ZWQsIHR5cGljYWxseSB2aWEgOmZ1bmM6YC5jcmVhdGVfZW5naW5lYDo6CgogICAgICAgIGVuZyA9IGNyZWF0ZV9lbmdpbmUoIm1zc3FsK3B5bXNzcWw6Ly91c2VyOnBhc3NAaG9zdC9kYiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZV9sYXJnZV90eXBlcz1UcnVlKQoKKiBDb21wbGV0ZSBjb250cm9sIG92ZXIgd2hldGhlciB0aGUgIm9sZCIgb3IgIm5ldyIgdHlwZXMgYXJlIHJlbmRlcmVkIGlzCiAgYXZhaWxhYmxlIGluIGFsbCBTUUxBbGNoZW15IHZlcnNpb25zIGJ5IHVzaW5nIHRoZSBVUFBFUkNBU0UgdHlwZSBvYmplY3RzCiAgaW5zdGVhZDogOmNsYXNzOmAuTlZBUkNIQVJgLCA6Y2xhc3M6YC5WQVJDSEFSYCwgOmNsYXNzOmAudHlwZXMuVkFSQklOQVJZYCwKICA6Y2xhc3M6YC5URVhUYCwgOmNsYXNzOmAubXNzcWwuTlRFWFRgLCA6Y2xhc3M6YC5tc3NxbC5JTUFHRWAgd2lsbCBhbHdheXMKICByZW1haW4gZml4ZWQgYW5kIGFsd2F5cyBvdXRwdXQgZXhhY3RseSB0aGF0IHR5cGUuCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjAuMAoKLi4gX211bHRpcGFydF9zY2hlbWFfbmFtZXM6CgpNdWx0aXBhcnQgU2NoZW1hIE5hbWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClNRTCBTZXJ2ZXIgc2NoZW1hcyBzb21ldGltZXMgcmVxdWlyZSBtdWx0aXBsZSBwYXJ0cyB0byB0aGVpciAic2NoZW1hIgpxdWFsaWZpZXIsIHRoYXQgaXMsIGluY2x1ZGluZyB0aGUgZGF0YWJhc2UgbmFtZSBhbmQgb3duZXIgbmFtZSBhcyBzZXBhcmF0ZQp0b2tlbnMsIHN1Y2ggYXMgYGBteWRhdGFiYXNlLmRiby5zb21lX3RhYmxlYGAuIFRoZXNlIG11bHRpcGFydCBuYW1lcyBjYW4gYmUgc2V0CmF0IG9uY2UgdXNpbmcgdGhlIDpwYXJhbXJlZjpgLlRhYmxlLnNjaGVtYWAgYXJndW1lbnQgb2YgOmNsYXNzOmAuVGFibGVgOjoKCiAgICBUYWJsZSgKICAgICAgICAic29tZV90YWJsZSIsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbigicSIsIFN0cmluZyg1MCkpLAogICAgICAgIHNjaGVtYT0ibXlkYXRhYmFzZS5kYm8iCiAgICApCgpXaGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyBzdWNoIGFzIHRhYmxlIG9yIGNvbXBvbmVudCByZWZsZWN0aW9uLCBhIHNjaGVtYQphcmd1bWVudCB0aGF0IGNvbnRhaW5zIGEgZG90IHdpbGwgYmUgc3BsaXQgaW50byBzZXBhcmF0ZQoiZGF0YWJhc2UiIGFuZCAib3duZXIiICBjb21wb25lbnRzIGluIG9yZGVyIHRvIGNvcnJlY3RseSBxdWVyeSB0aGUgU1FMClNlcnZlciBpbmZvcm1hdGlvbiBzY2hlbWEgdGFibGVzLCBhcyB0aGVzZSB0d28gdmFsdWVzIGFyZSBzdG9yZWQgc2VwYXJhdGVseS4KQWRkaXRpb25hbGx5LCB3aGVuIHJlbmRlcmluZyB0aGUgc2NoZW1hIG5hbWUgZm9yIERETCBvciBTUUwsIHRoZSB0d28KY29tcG9uZW50cyB3aWxsIGJlIHF1b3RlZCBzZXBhcmF0ZWx5IGZvciBjYXNlIHNlbnNpdGl2ZSBuYW1lcyBhbmQgb3RoZXIKc3BlY2lhbCBjaGFyYWN0ZXJzLiAgIEdpdmVuIGFuIGFyZ3VtZW50IGFzIGJlbG93OjoKCiAgICBUYWJsZSgKICAgICAgICAic29tZV90YWJsZSIsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbigicSIsIFN0cmluZyg1MCkpLAogICAgICAgIHNjaGVtYT0iTXlEYXRhQmFzZS5kYm8iCiAgICApCgpUaGUgYWJvdmUgc2NoZW1hIHdvdWxkIGJlIHJlbmRlcmVkIGFzIGBgW015RGF0YUJhc2VdLmRib2BgLCBhbmQgYWxzbyBpbgpyZWZsZWN0aW9uLCB3b3VsZCBiZSByZWZsZWN0ZWQgdXNpbmcgImRibyIgYXMgdGhlIG93bmVyIGFuZCAiTXlEYXRhQmFzZSIKYXMgdGhlIGRhdGFiYXNlIG5hbWUuCgpUbyBjb250cm9sIGhvdyB0aGUgc2NoZW1hIG5hbWUgaXMgYnJva2VuIGludG8gZGF0YWJhc2UgLyBvd25lciwKc3BlY2lmeSBicmFja2V0cyAod2hpY2ggaW4gU1FMIFNlcnZlciBhcmUgcXVvdGluZyBjaGFyYWN0ZXJzKSBpbiB0aGUgbmFtZS4KQmVsb3csIHRoZSAib3duZXIiIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBgYE15RGF0YUJhc2UuZGJvYGAgYW5kIHRoZQoiZGF0YWJhc2UiIHdpbGwgYmUgTm9uZTo6CgogICAgVGFibGUoCiAgICAgICAgInNvbWVfdGFibGUiLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oInEiLCBTdHJpbmcoNTApKSwKICAgICAgICBzY2hlbWE9IltNeURhdGFCYXNlLmRib10iCiAgICApCgpUbyBpbmRpdmlkdWFsbHkgc3BlY2lmeSBib3RoIGRhdGFiYXNlIGFuZCBvd25lciBuYW1lIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzCm9yIGVtYmVkZGVkIGRvdHMsIHVzZSB0d28gc2V0cyBvZiBicmFja2V0czo6CgogICAgVGFibGUoCiAgICAgICAgInNvbWVfdGFibGUiLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oInEiLCBTdHJpbmcoNTApKSwKICAgICAgICBzY2hlbWE9IltNeURhdGFCYXNlLlBlcmlvZF0uW015T3duZXIuRG90XSIKICAgICkKCgouLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMiB0aGUgU1FMIFNlcnZlciBkaWFsZWN0IG5vdyB0cmVhdHMgYnJhY2tldHMgYXMKICAgaWRlbnRpZmllciBkZWxpbWV0ZXJzIHNwbGl0dGluZyB0aGUgc2NoZW1hIGludG8gc2VwYXJhdGUgZGF0YWJhc2UKICAgYW5kIG93bmVyIHRva2VucywgdG8gYWxsb3cgZG90cyB3aXRoaW4gZWl0aGVyIG5hbWUgaXRzZWxmLgoKLi4gX2xlZ2FjeV9zY2hlbWFfcmVuZGVyaW5nOgoKTGVnYWN5IFNjaGVtYSBNb2RlCi0tLS0tLS0tLS0tLS0tLS0tLQoKVmVyeSBvbGQgdmVyc2lvbnMgb2YgdGhlIE1TU1FMIGRpYWxlY3QgaW50cm9kdWNlZCB0aGUgYmVoYXZpb3Igc3VjaCB0aGF0IGEKc2NoZW1hLXF1YWxpZmllZCB0YWJsZSB3b3VsZCBiZSBhdXRvLWFsaWFzZWQgd2hlbiB1c2VkIGluIGEKU0VMRUNUIHN0YXRlbWVudDsgZ2l2ZW4gYSB0YWJsZTo6CgogICAgYWNjb3VudF90YWJsZSA9IFRhYmxlKAogICAgICAgICdhY2NvdW50JywgbWV0YWRhdGEsCiAgICAgICAgQ29sdW1uKCdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUpLAogICAgICAgIENvbHVtbignaW5mbycsIFN0cmluZygxMDApKSwKICAgICAgICBzY2hlbWE9ImN1c3RvbWVyX3NjaGVtYSIKICAgICkKCnRoaXMgbGVnYWN5IG1vZGUgb2YgcmVuZGVyaW5nIHdvdWxkIGFzc3VtZSB0aGF0ICJjdXN0b21lcl9zY2hlbWEuYWNjb3VudCIKd291bGQgbm90IGJlIGFjY2VwdGVkIGJ5IGFsbCBwYXJ0cyBvZiB0aGUgU1FMIHN0YXRlbWVudCwgYXMgaWxsdXN0cmF0ZWQKYmVsb3c6OgoKICAgID4+PiBlbmcgPSBjcmVhdGVfZW5naW5lKCJtc3NxbCtweW1zc3FsOi8vbXlkc24iLCBsZWdhY3lfc2NoZW1hX2FsaWFzaW5nPVRydWUpCiAgICA+Pj4gcHJpbnQoYWNjb3VudF90YWJsZS5zZWxlY3QoKS5jb21waWxlKGVuZykpCiAgICBTRUxFQ1QgYWNjb3VudF8xLmlkLCBhY2NvdW50XzEuaW5mbwogICAgRlJPTSBjdXN0b21lcl9zY2hlbWEuYWNjb3VudCBBUyBhY2NvdW50XzEKClRoaXMgbW9kZSBvZiBiZWhhdmlvciBpcyBub3cgb2ZmIGJ5IGRlZmF1bHQsIGFzIGl0IGFwcGVhcnMgdG8gaGF2ZSBzZXJ2ZWQKbm8gcHVycG9zZTsgaG93ZXZlciBpbiB0aGUgY2FzZSB0aGF0IGxlZ2FjeSBhcHBsaWNhdGlvbnMgcmVseSB1cG9uIGl0LAppdCBpcyBhdmFpbGFibGUgdXNpbmcgdGhlIGBgbGVnYWN5X3NjaGVtYV9hbGlhc2luZ2BgIGFyZ3VtZW50IHRvCjpmdW5jOmAuY3JlYXRlX2VuZ2luZWAgYXMgaWxsdXN0cmF0ZWQgYWJvdmUuCgouLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMSB0aGUgYGBsZWdhY3lfc2NoZW1hX2FsaWFzaW5nYGAgZmxhZyBpbnRyb2R1Y2VkCiAgIGluIHZlcnNpb24gMS4wLjUgdG8gYWxsb3cgZGlzYWJsaW5nIG9mIGxlZ2FjeSBtb2RlIGZvciBzY2hlbWFzIG5vdwogICBkZWZhdWx0cyB0byBGYWxzZS4KCgouLiBfbXNzcWxfaW5kZXhlczoKCkNsdXN0ZXJlZCBJbmRleCBTdXBwb3J0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgTVNTUUwgZGlhbGVjdCBzdXBwb3J0cyBjbHVzdGVyZWQgaW5kZXhlcyAoYW5kIHByaW1hcnkga2V5cykgdmlhIHRoZQpgYG1zc3FsX2NsdXN0ZXJlZGBgIG9wdGlvbi4gIFRoaXMgb3B0aW9uIGlzIGF2YWlsYWJsZSB0byA6Y2xhc3M6YC5JbmRleGAsCjpjbGFzczpgLlVuaXF1ZUNvbnN0cmFpbnRgLiBhbmQgOmNsYXNzOmAuUHJpbWFyeUtleUNvbnN0cmFpbnRgLgoKVG8gZ2VuZXJhdGUgYSBjbHVzdGVyZWQgaW5kZXg6OgoKICAgIEluZGV4KCJteV9pbmRleCIsIHRhYmxlLmMueCwgbXNzcWxfY2x1c3RlcmVkPVRydWUpCgp3aGljaCByZW5kZXJzIHRoZSBpbmRleCBhcyBgYENSRUFURSBDTFVTVEVSRUQgSU5ERVggbXlfaW5kZXggT04gdGFibGUgKHgpYGAuCgpUbyBnZW5lcmF0ZSBhIGNsdXN0ZXJlZCBwcmltYXJ5IGtleSB1c2U6OgoKICAgIFRhYmxlKCdteV90YWJsZScsIG1ldGFkYXRhLAogICAgICAgICAgQ29sdW1uKCd4JywgLi4uKSwKICAgICAgICAgIENvbHVtbigneScsIC4uLiksCiAgICAgICAgICBQcmltYXJ5S2V5Q29uc3RyYWludCgieCIsICJ5IiwgbXNzcWxfY2x1c3RlcmVkPVRydWUpKQoKd2hpY2ggd2lsbCByZW5kZXIgdGhlIHRhYmxlLCBmb3IgZXhhbXBsZSwgYXM6OgoKICBDUkVBVEUgVEFCTEUgbXlfdGFibGUgKHggSU5URUdFUiBOT1QgTlVMTCwgeSBJTlRFR0VSIE5PVCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgQ0xVU1RFUkVEICh4LCB5KSkKClNpbWlsYXJseSwgd2UgY2FuIGdlbmVyYXRlIGEgY2x1c3RlcmVkIHVuaXF1ZSBjb25zdHJhaW50IHVzaW5nOjoKCiAgICBUYWJsZSgnbXlfdGFibGUnLCBtZXRhZGF0YSwKICAgICAgICAgIENvbHVtbigneCcsIC4uLiksCiAgICAgICAgICBDb2x1bW4oJ3knLCAuLi4pLAogICAgICAgICAgUHJpbWFyeUtleUNvbnN0cmFpbnQoIngiKSwKICAgICAgICAgIFVuaXF1ZUNvbnN0cmFpbnQoInkiLCBtc3NxbF9jbHVzdGVyZWQ9VHJ1ZSksCiAgICAgICAgICApCgpUbyBleHBsaWNpdGx5IHJlcXVlc3QgYSBub24tY2x1c3RlcmVkIHByaW1hcnkga2V5IChmb3IgZXhhbXBsZSwgd2hlbgphIHNlcGFyYXRlIGNsdXN0ZXJlZCBpbmRleCBpcyBkZXNpcmVkKSwgdXNlOjoKCiAgICBUYWJsZSgnbXlfdGFibGUnLCBtZXRhZGF0YSwKICAgICAgICAgIENvbHVtbigneCcsIC4uLiksCiAgICAgICAgICBDb2x1bW4oJ3knLCAuLi4pLAogICAgICAgICAgUHJpbWFyeUtleUNvbnN0cmFpbnQoIngiLCAieSIsIG1zc3FsX2NsdXN0ZXJlZD1GYWxzZSkpCgp3aGljaCB3aWxsIHJlbmRlciB0aGUgdGFibGUsIGZvciBleGFtcGxlLCBhczo6CgogIENSRUFURSBUQUJMRSBteV90YWJsZSAoeCBJTlRFR0VSIE5PVCBOVUxMLCB5IElOVEVHRVIgTk9UIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSBOT05DTFVTVEVSRUQgKHgsIHkpKQoKLi4gdmVyc2lvbmNoYW5nZWQ6OiAxLjEgdGhlIGBgbXNzcWxfY2x1c3RlcmVkYGAgb3B0aW9uIG5vdyBkZWZhdWx0cwogICB0byBOb25lLCByYXRoZXIgdGhhbiBGYWxzZS4gIGBgbXNzcWxfY2x1c3RlcmVkPUZhbHNlYGAgbm93IGV4cGxpY2l0bHkKICAgcmVuZGVycyB0aGUgTk9OQ0xVU1RFUkVEIGNsYXVzZSwgd2hlcmVhcyBOb25lIG9taXRzIHRoZSBDTFVTVEVSRUQKICAgY2xhdXNlIGVudGlyZWx5LCBhbGxvd2luZyBTUUwgU2VydmVyIGRlZmF1bHRzIHRvIHRha2UgZWZmZWN0LgoKCk1TU1FMLVNwZWNpZmljIEluZGV4IE9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkluIGFkZGl0aW9uIHRvIGNsdXN0ZXJpbmcsIHRoZSBNU1NRTCBkaWFsZWN0IHN1cHBvcnRzIG90aGVyIHNwZWNpYWwgb3B0aW9ucwpmb3IgOmNsYXNzOmAuSW5kZXhgLgoKSU5DTFVERQpeXl5eXl5eCgpUaGUgYGBtc3NxbF9pbmNsdWRlYGAgb3B0aW9uIHJlbmRlcnMgSU5DTFVERShjb2xuYW1lKSBmb3IgdGhlIGdpdmVuIHN0cmluZwpuYW1lczo6CgogICAgSW5kZXgoIm15X2luZGV4IiwgdGFibGUuYy54LCBtc3NxbF9pbmNsdWRlPVsneSddKQoKd291bGQgcmVuZGVyIHRoZSBpbmRleCBhcyBgYENSRUFURSBJTkRFWCBteV9pbmRleCBPTiB0YWJsZSAoeCkgSU5DTFVERSAoeSlgYAoKLi4gX21zc3FsX2luZGV4X3doZXJlOgoKRmlsdGVyZWQgSW5kZXhlcwpeXl5eXl5eXl5eXl5eXl5eCgpUaGUgYGBtc3NxbF93aGVyZWBgIG9wdGlvbiByZW5kZXJzIFdIRVJFKGNvbmRpdGlvbikgZm9yIHRoZSBnaXZlbiBzdHJpbmcKbmFtZXM6OgoKICAgIEluZGV4KCJteV9pbmRleCIsIHRhYmxlLmMueCwgbXNzcWxfd2hlcmU9dGFibGUuYy54ID4gMTApCgp3b3VsZCByZW5kZXIgdGhlIGluZGV4IGFzIGBgQ1JFQVRFIElOREVYIG15X2luZGV4IE9OIHRhYmxlICh4KSBXSEVSRSB4ID4gMTBgYC4KCi4uIHZlcnNpb25hZGRlZDo6IDEuMy40CgpJbmRleCBvcmRlcmluZwpeXl5eXl5eXl5eXl5eXgoKSW5kZXggb3JkZXJpbmcgaXMgYXZhaWxhYmxlIHZpYSBmdW5jdGlvbmFsIGV4cHJlc3Npb25zLCBzdWNoIGFzOjoKCiAgICBJbmRleCgibXlfaW5kZXgiLCB0YWJsZS5jLnguZGVzYygpKQoKd291bGQgcmVuZGVyIHRoZSBpbmRleCBhcyBgYENSRUFURSBJTkRFWCBteV9pbmRleCBPTiB0YWJsZSAoeCBERVNDKWBgCgouLiBzZWVhbHNvOjoKCiAgICA6cmVmOmBzY2hlbWFfaW5kZXhlc19mdW5jdGlvbmFsYAoKQ29tcGF0aWJpbGl0eSBMZXZlbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0KTVNTUUwgc3VwcG9ydHMgdGhlIG5vdGlvbiBvZiBzZXR0aW5nIGNvbXBhdGliaWxpdHkgbGV2ZWxzIGF0IHRoZQpkYXRhYmFzZSBsZXZlbC4gVGhpcyBhbGxvd3MsIGZvciBpbnN0YW5jZSwgdG8gcnVuIGEgZGF0YWJhc2UgdGhhdAppcyBjb21wYXRpYmxlIHdpdGggU1FMMjAwMCB3aGlsZSBydW5uaW5nIG9uIGEgU1FMMjAwNSBkYXRhYmFzZQpzZXJ2ZXIuIGBgc2VydmVyX3ZlcnNpb25faW5mb2BgIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgZGF0YWJhc2UKc2VydmVyIHZlcnNpb24gaW5mb3JtYXRpb24gKGluIHRoaXMgY2FzZSBTUUwyMDA1KSBhbmQgbm90IHRoZQpjb21wYXRpYmlsaXR5IGxldmVsIGluZm9ybWF0aW9uLiBCZWNhdXNlIG9mIHRoaXMsIGlmIHJ1bm5pbmcgdW5kZXIKYSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtb2RlIFNRTEFsY2hlbXkgbWF5IGF0dGVtcHQgdG8gdXNlIFQtU1FMCnN0YXRlbWVudHMgdGhhdCBhcmUgdW5hYmxlIHRvIGJlIHBhcnNlZCBieSB0aGUgZGF0YWJhc2Ugc2VydmVyLgoKVHJpZ2dlcnMKLS0tLS0tLS0KClNRTEFsY2hlbXkgYnkgZGVmYXVsdCB1c2VzIE9VVFBVVCBJTlNFUlRFRCB0byBnZXQgYXQgbmV3bHkKZ2VuZXJhdGVkIHByaW1hcnkga2V5IHZhbHVlcyB2aWEgSURFTlRJVFkgY29sdW1ucyBvciBvdGhlcgpzZXJ2ZXIgc2lkZSBkZWZhdWx0cy4gICBNUy1TUUwgZG9lcyBub3QKYWxsb3cgdGhlIHVzYWdlIG9mIE9VVFBVVCBJTlNFUlRFRCBvbiB0YWJsZXMgdGhhdCBoYXZlIHRyaWdnZXJzLgpUbyBkaXNhYmxlIHRoZSB1c2FnZSBvZiBPVVRQVVQgSU5TRVJURUQgb24gYSBwZXItdGFibGUgYmFzaXMsCnNwZWNpZnkgYGBpbXBsaWNpdF9yZXR1cm5pbmc9RmFsc2VgYCBmb3IgZWFjaCA6Y2xhc3M6YC5UYWJsZWAKd2hpY2ggaGFzIHRyaWdnZXJzOjoKCiAgICBUYWJsZSgnbXl0YWJsZScsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbignaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKSwKICAgICAgICAjIC4uLiwKICAgICAgICBpbXBsaWNpdF9yZXR1cm5pbmc9RmFsc2UKICAgICkKCkRlY2xhcmF0aXZlIGZvcm06OgoKICAgIGNsYXNzIE15Q2xhc3MoQmFzZSk6CiAgICAgICAgIyAuLi4KICAgICAgICBfX3RhYmxlX2FyZ3NfXyA9IHsnaW1wbGljaXRfcmV0dXJuaW5nJzpGYWxzZX0KCgpUaGlzIG9wdGlvbiBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgZW5naW5lLXdpZGUgdXNpbmcgdGhlCmBgaW1wbGljaXRfcmV0dXJuaW5nPUZhbHNlYGAgYXJndW1lbnQgb24gOmZ1bmM6YC5jcmVhdGVfZW5naW5lYC4KCi4uIF9tc3NxbF9yb3djb3VudF92ZXJzaW9uaW5nOgoKUm93Y291bnQgU3VwcG9ydCAvIE9STSBWZXJzaW9uaW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIFNRTCBTZXJ2ZXIgZHJpdmVycyBtYXkgaGF2ZSBsaW1pdGVkIGFiaWxpdHkgdG8gcmV0dXJuIHRoZSBudW1iZXIKb2Ygcm93cyB1cGRhdGVkIGZyb20gYW4gVVBEQVRFIG9yIERFTEVURSBzdGF0ZW1lbnQuCgpBcyBvZiB0aGlzIHdyaXRpbmcsIHRoZSBQeU9EQkMgZHJpdmVyIGlzIG5vdCBhYmxlIHRvIHJldHVybiBhIHJvd2NvdW50IHdoZW4KT1VUUFVUIElOU0VSVEVEIGlzIHVzZWQuICBUaGlzIGltcGFjdHMgdGhlIFNRTEFsY2hlbXkgT1JNJ3MgdmVyc2lvbmluZyBmZWF0dXJlCmluIG1hbnkgY2FzZXMgd2hlcmUgc2VydmVyLXNpZGUgdmFsdWUgZ2VuZXJhdG9ycyBhcmUgaW4gdXNlIGluIHRoYXQgd2hpbGUgdGhlCnZlcnNpb25pbmcgb3BlcmF0aW9ucyBjYW4gc3VjY2VlZCwgdGhlIE9STSBjYW5ub3QgYWx3YXlzIGNoZWNrIHRoYXQgYW4gVVBEQVRFCm9yIERFTEVURSBzdGF0ZW1lbnQgbWF0Y2hlZCB0aGUgbnVtYmVyIG9mIHJvd3MgZXhwZWN0ZWQsIHdoaWNoIGlzIGhvdyBpdAp2ZXJpZmllcyB0aGF0IHRoZSB2ZXJzaW9uIGlkZW50aWZpZXIgbWF0Y2hlZC4gICBXaGVuIHRoaXMgY29uZGl0aW9uIG9jY3VycywgYQp3YXJuaW5nIHdpbGwgYmUgZW1pdHRlZCBidXQgdGhlIG9wZXJhdGlvbiB3aWxsIHByb2NlZWQuCgpUaGUgdXNlIG9mIE9VVFBVVCBJTlNFUlRFRCBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUKOnBhcmFtcmVmOmAuVGFibGUuaW1wbGljaXRfcmV0dXJuaW5nYCBmbGFnIHRvIGBgRmFsc2VgYCBvbiBhIHBhcnRpY3VsYXIKOmNsYXNzOmAuVGFibGVgLCB3aGljaCBpbiBkZWNsYXJhdGl2ZSBsb29rcyBsaWtlOjoKCiAgICBjbGFzcyBNeVRhYmxlKEJhc2UpOgogICAgICAgIF9fdGFibGVuYW1lX18gPSAnbXl0YWJsZScKICAgICAgICBpZCA9IENvbHVtbihJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKQogICAgICAgIHN0dWZmID0gQ29sdW1uKFN0cmluZygxMCkpCiAgICAgICAgdGltZXN0YW1wID0gQ29sdW1uKFRJTUVTVEFNUCgpLCBkZWZhdWx0PXRleHQoJ0RFRkFVTFQnKSkKICAgICAgICBfX21hcHBlcl9hcmdzX18gPSB7CiAgICAgICAgICAgICd2ZXJzaW9uX2lkX2NvbCc6IHRpbWVzdGFtcCwKICAgICAgICAgICAgJ3ZlcnNpb25faWRfZ2VuZXJhdG9yJzogRmFsc2UsCiAgICAgICAgfQogICAgICAgIF9fdGFibGVfYXJnc19fID0gewogICAgICAgICAgICAnaW1wbGljaXRfcmV0dXJuaW5nJzogRmFsc2UKICAgICAgICB9CgpFbmFibGluZyBTbmFwc2hvdCBJc29sYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTUUwgU2VydmVyIGhhcyBhIGRlZmF1bHQgdHJhbnNhY3Rpb24KaXNvbGF0aW9uIG1vZGUgdGhhdCBsb2NrcyBlbnRpcmUgdGFibGVzLCBhbmQgY2F1c2VzIGV2ZW4gbWlsZGx5IGNvbmN1cnJlbnQKYXBwbGljYXRpb25zIHRvIGhhdmUgbG9uZyBoZWxkIGxvY2tzIGFuZCBmcmVxdWVudCBkZWFkbG9ja3MuCkVuYWJsaW5nIHNuYXBzaG90IGlzb2xhdGlvbiBmb3IgdGhlIGRhdGFiYXNlIGFzIGEgd2hvbGUgaXMgcmVjb21tZW5kZWQKZm9yIG1vZGVybiBsZXZlbHMgb2YgY29uY3VycmVuY3kgc3VwcG9ydC4gIFRoaXMgaXMgYWNjb21wbGlzaGVkIHZpYSB0aGUKZm9sbG93aW5nIEFMVEVSIERBVEFCQVNFIGNvbW1hbmRzIGV4ZWN1dGVkIGF0IHRoZSBTUUwgcHJvbXB0OjoKCiAgICBBTFRFUiBEQVRBQkFTRSBNeURhdGFiYXNlIFNFVCBBTExPV19TTkFQU0hPVF9JU09MQVRJT04gT04KCiAgICBBTFRFUiBEQVRBQkFTRSBNeURhdGFiYXNlIFNFVCBSRUFEX0NPTU1JVFRFRF9TTkFQU0hPVCBPTgoKQmFja2dyb3VuZCBvbiBTUUwgU2VydmVyIHNuYXBzaG90IGlzb2xhdGlvbiBpcyBhdmFpbGFibGUgYXQKaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMTc1MDk1LmFzcHguCgrpAAAAAE7pAQAAACkB2hJpbmZvcm1hdGlvbl9zY2hlbWHpAwAAACkB2gZlbmdpbmUpAdoDZXhjKQHaBnNjaGVtYSkB2gNzcWwpAdoFdHlwZXMpAdoEdXRpbCkB2gdkZWZhdWx0KQHaCnJlZmxlY3Rpb24pAdoIY29tcGlsZXIpAdoKZXhwcmVzc2lvbikB2gtxdW90ZWRfbmFtZSkB2gZCSUdJTlQpAdoGQklOQVJZKQHaBENIQVIpAdoEREFURSkB2ghEQVRFVElNRSkB2gdERUNJTUFMKQHaBUZMT0FUKQHaB0lOVEVHRVIpAdoFTkNIQVIpAdoHTlVNRVJJQykB2ghOVkFSQ0hBUikB2ghTTUFMTElOVCkB2gRURVhUKQHaB1ZBUkNIQVIpAdoOdXBkYXRlX3dyYXBwZXIpAekNAAAAKQHpDAAAACkB6QsAAAApAekKAAAAKQHpCQAAACkB6QgAAADaA2FkZNoDYWxsWgVhbHRlctoDYW5k2gNhbnnaAmFzWgNhc2NaDWF1dGhvcml6YXRpb25aBmJhY2t1cNoFYmVnaW5aB2JldHdlZW7aBWJyZWFrWgZicm93c2VaBGJ1bGtaAmJ5WgdjYXNjYWRl2gRjYXNl2gVjaGVja1oKY2hlY2twb2ludNoFY2xvc2XaCWNsdXN0ZXJlZFoIY29hbGVzY2XaB2NvbGxhdGXaBmNvbHVtbtoGY29tbWl0Wgdjb21wdXRl2gpjb25zdHJhaW502ghjb250YWluc1oNY29udGFpbnN0YWJsZdoIY29udGludWXaB2NvbnZlcnTaBmNyZWF0ZVoFY3Jvc3PaB2N1cnJlbnRaDGN1cnJlbnRfZGF0ZVoMY3VycmVudF90aW1lWhFjdXJyZW50X3RpbWVzdGFtcFoMY3VycmVudF91c2Vy2gZjdXJzb3JaCGRhdGFiYXNlWgRkYmNjWgpkZWFsbG9jYXRlWgdkZWNsYXJlcgsAAADaBmRlbGV0ZVoEZGVuedoEZGVzY1oEZGlza1oIZGlzdGluY3RaC2Rpc3RyaWJ1dGVkWgZkb3VibGXaBGRyb3DaBGR1bXDaBGVsc2XaA2VuZFoGZXJybHZs2gZlc2NhcGXaBmV4Y2VwdNoEZXhlY9oHZXhlY3V0ZdoGZXhpc3Rz2gRleGl0WghleHRlcm5hbFoFZmV0Y2jaBGZpbGVaCmZpbGxmYWN0b3LaA2ZvcloHZm9yZWlnbloIZnJlZXRleHRaDWZyZWV0ZXh0dGFibGXaBGZyb23aBGZ1bGzaCGZ1bmN0aW9uWgRnb3RvWgVncmFudNoFZ3JvdXBaBmhhdmluZ1oIaG9sZGxvY2vaCGlkZW50aXR5Wg9pZGVudGl0eV9pbnNlcnRaC2lkZW50aXR5Y29s2gJpZtoCaW7aBWluZGV42gVpbm5lctoGaW5zZXJ0WglpbnRlcnNlY3RaBGludG/aAmlz2gRqb2lu2gNrZXnaBGtpbGzaBGxlZnRaBGxpa2XaBmxpbmVub9oEbG9hZNoFbWVyZ2VaCG5hdGlvbmFsWgdub2NoZWNrWgxub25jbHVzdGVyZWTaA25vdNoEbnVsbFoGbnVsbGlmWgJvZtoDb2Zm2gdvZmZzZXRz2gJvbtoEb3BlbloOb3BlbmRhdGFzb3VyY2VaCW9wZW5xdWVyeVoKb3BlbnJvd3NldFoHb3BlbnhtbNoGb3B0aW9u2gJvctoFb3JkZXJaBW91dGVy2gRvdmVy2gdwZXJjZW502gVwaXZvdFoEcGxhbtoJcHJlY2lzaW9uWgdwcmltYXJ52gVwcmludNoEcHJvY1oJcHJvY2VkdXJl2gZwdWJsaWNaCXJhaXNlcnJvctoEcmVhZFoIcmVhZHRleHTaC3JlY29uZmlndXJlWgpyZWZlcmVuY2VzWgtyZXBsaWNhdGlvbtoHcmVzdG9yZVoIcmVzdHJpY3TaBnJldHVybloGcmV2ZXJ0WgZyZXZva2XaBXJpZ2h0Wghyb2xsYmFja1oIcm93Y291bnRaCnJvd2d1aWRjb2xaBHJ1bGVaBHNhdmVyBwAAAFoNc2VjdXJpdHlhdWRpdNoGc2VsZWN0WgxzZXNzaW9uX3VzZXLaA3NldFoHc2V0dXNlctoIc2h1dGRvd25aBHNvbWVaCnN0YXRpc3RpY3NaC3N5c3RlbV91c2Vy2gV0YWJsZVoLdGFibGVzYW1wbGVaCHRleHRzaXplWgR0aGVu2gJ0b9oDdG9wWgR0cmFuWgt0cmFuc2FjdGlvbloHdHJpZ2dlctoIdHJ1bmNhdGVaB3RzZXF1YWzaBXVuaW9u2gZ1bmlxdWVaB3VucGl2b3TaBnVwZGF0ZVoKdXBkYXRldGV4dFoDdXNl2gR1c2Vy2gZ2YWx1ZXNaB3ZhcnlpbmfaBHZpZXdaB3dhaXRmb3JaBHdoZW7aBXdoZXJl2gV3aGlsZdoEd2l0aFoJd3JpdGV0ZXh0YwAAAAAAAAAAAAAAAAMAAAAAAAAAcyAAAABlAFoBZABaAmQAWgOHAGYBZAFkAoQIWgSHAAQAWgVTACkD2gRSRUFMYwEAAAAAAAAAAgAAAAQAAAALAAAAcyIAAAB8AaAAZAFkAqECAQB0AXQCfACDAmoDZgB8AY4BAQBkAFMAKQNOcmYAAADpGAAAACkE2gpzZXRkZWZhdWx02gVzdXBlcnJ/AAAA2ghfX2luaXRfXykC2gRzZWxm2gJrdykB2glfX2NsYXNzX1+pAPpRL29wdC9hbHQvcHl0aG9uMzcvbGliNjQvcHl0aG9uMy43L3NpdGUtcGFja2FnZXMvc3FsYWxjaGVteS9kaWFsZWN0cy9tc3NxbC9iYXNlLnB5coMAAAB8AwAAcwQAAAAABAwBeg1SRUFMLl9faW5pdF9fKQbaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aDl9fdmlzaXRfbmFtZV9fcoMAAADaDV9fY2xhc3NjZWxsX19yhwAAAHKHAAAAKQFyhgAAAHKIAAAAcn8AAAB5AwAAcwQAAAAIAQQCcn8AAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoHVElOWUlOVE4pBHKJAAAAcooAAAByiwAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAAByjgAAAIQDAABzAgAAAAgBco4AAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzJgAAAGUAWgFkAFoCZAFkAoQAWgNlBKAFZAOhAVoGZARkBYQAWgdkBlMAKQfaB19NU0RhdGVjAgAAAAAAAAADAAAAAgAAAEMAAABzDAAAAGQBZAKEAH0CfAJTACkDTmMBAAAAAAAAAAEAAAAFAAAAUwAAAHMqAAAAdAB8AIMBdAFqAmsCciJ0AaABfABqA3wAagR8AGoFoQNTAHwAUwBkAFMAKQFOKQbaBHR5cGXaCGRhdGV0aW1l2gRkYXRl2gR5ZWFy2gVtb250aNoDZGF5KQHaBXZhbHVlcocAAAByhwAAAHKIAAAA2gdwcm9jZXNzkAMAAHMGAAAAAAEOARQCeidfTVNEYXRlLmJpbmRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3NyhwAAACkDcoQAAADaB2RpYWxlY3RylwAAAHKHAAAAcocAAAByiAAAANoOYmluZF9wcm9jZXNzb3KPAwAAcwQAAAAAAQgGehZfTVNEYXRlLmJpbmRfcHJvY2Vzc29yehEoXGQrKS0oXGQrKS0oXGQrKWMDAAAAAAAAAAQAAAADAAAAAwAAAHMQAAAAhwBmAWQBZAKECH0DfANTACkDTmMBAAAAAAAAAAIAAAAEAAAAEwAAAHNeAAAAdAB8AHQBagGDAnIUfACgAqEAUwB0AHwAdANqBIMCclaIAGoFoAZ8AKEBfQF8AXM+dAdkAXwAZgEWAIMBggF0AWoCZAJkA4QAfAGgCKEARACDAY4AUwB8AFMAZABTACkETnoiY291bGQgbm90IHBhcnNlICVyIGFzIGEgZGF0ZSB2YWx1ZWMBAAAAAAAAAAIAAAAEAAAAUwAAAHMYAAAAZwB8AF0QfQF0AHwBcBBkAIMBkQJxBFMAKQFyAQAAACkB2gNpbnQpAtoCLjDaAXhyhwAAAHKHAAAAcogAAAD6CjxsaXN0Y29tcD6kAwAAcwIAAAAGAHo9X01TRGF0ZS5yZXN1bHRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3MuPGxvY2Fscz4uPGxpc3Rjb21wPikJ2gppc2luc3RhbmNlcpEAAABykgAAAHIKAAAA2gxzdHJpbmdfdHlwZXPaBF9yZWfaBW1hdGNo2gpWYWx1ZUVycm9y2gZncm91cHMpAnKWAAAA2gFtKQFyhAAAAHKHAAAAcogAAABylwAAAJsDAABzEgAAAAABDAEIAQwBDAEEAQIBDAIYAnopX01TRGF0ZS5yZXN1bHRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3NyhwAAACkEcoQAAABymAAAANoHY29sdHlwZXKXAAAAcocAAAApAXKEAAAAcogAAADaEHJlc3VsdF9wcm9jZXNzb3KaAwAAcwQAAAAAAQwNehhfTVNEYXRlLnJlc3VsdF9wcm9jZXNzb3JOKQhyiQAAAHKKAAAAcosAAABymQAAANoCcmXaB2NvbXBpbGVyoAAAAHKmAAAAcocAAAByhwAAAHKHAAAAcogAAAByjwAAAI4DAABzBgAAAAgBCAkKAnKPAAAAYwAAAAAAAAAAAAAAAAUAAAAAAAAAc0YAAABlAFoBZABaAmQLhwBmAWQCZAOECVoDZQSgBWQEZAVkBaEDWgZkBmQHhABaB2UIoAlkCKEBWgpkCWQKhABaC4cABABaDFMAKQzaBFRJTUVOYwIAAAAAAAAAAwAAAAMAAAALAAAAcxgAAAB8AXwAXwB0AXQCfACDAqADoQABAGQAUwApAU4pBHJmAAAAcoIAAAByqQAAAHKDAAAAKQNyhAAAAHJmAAAA2gZrd2FyZ3MpAXKGAAAAcocAAAByiAAAAHKDAAAArAMAAHMEAAAAAAEGAXoNVElNRS5fX2luaXRfX2lsBwAAcgIAAABjAgAAAAAAAAADAAAAAwAAAAMAAABzEAAAAIcAZgFkAWQChAh9AnwCUwApA05jAQAAAAAAAAABAAAABQAAABMAAABzQgAAAHQAfAB0AWoBgwJyInQBagGgAogAagN8AKAEoQChAn0Abhx0AHwAdAFqBIMCcj50AWoBoAKIAGoDfAChAn0AfABTACkBTikFcp4AAABykQAAANoHY29tYmluZdoQX1RJTUVfX3plcm9fZGF0ZdoEdGltZSkBcpYAAAApAXKEAAAAcocAAAByiAAAAHKXAAAAswMAAHMMAAAAAAEMAQYBEAIMARABeiRUSU1FLmJpbmRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3NyhwAAACkDcoQAAABymAAAAHKXAAAAcocAAAApAXKEAAAAcogAAABymQAAALIDAABzBAAAAAABDAl6E1RJTUUuYmluZF9wcm9jZXNzb3J6IShcZCspOihcZCspOihcZCspKD86XC4oXGR7MCw2fSkpP2MDAAAAAAAAAAQAAAADAAAAAwAAAHMQAAAAhwBmAWQBZAKECH0DfANTACkDTmMBAAAAAAAAAAIAAAAEAAAAEwAAAHNeAAAAdAB8AHQBagGDAnIUfACgAqEAUwB0AHwAdANqBIMCclaIAGoFoAZ8AKEBfQF8AXM+dAdkAXwAZgEWAIMBggF0AWoCZAJkA4QAfAGgCKEARACDAY4AUwB8AFMAZABTACkETnoiY291bGQgbm90IHBhcnNlICVyIGFzIGEgdGltZSB2YWx1ZWMBAAAAAAAAAAIAAAAEAAAAUwAAAHMYAAAAZwB8AF0QfQF0AHwBcBBkAIMBkQJxBFMAKQFyAQAAACkBcpoAAAApAnKbAAAAcpwAAAByhwAAAHKHAAAAcogAAABynQAAAMoDAABzAgAAAAYAejpUSU1FLnJlc3VsdF9wcm9jZXNzb3IuPGxvY2Fscz4ucHJvY2Vzcy48bG9jYWxzPi48bGlzdGNvbXA+KQlyngAAAHKRAAAAcq0AAAByCgAAAHKfAAAAcqAAAAByoQAAAHKiAAAAcqMAAAApAnKWAAAAcqQAAAApAXKEAAAAcocAAAByiAAAAHKXAAAAwQMAAHMSAAAAAAEMAQgBDAEMAQQBAgEMAhgCeiZUSU1FLnJlc3VsdF9wcm9jZXNzb3IuPGxvY2Fscz4ucHJvY2Vzc3KHAAAAKQRyhAAAAHKYAAAAcqUAAABylwAAAHKHAAAAKQFyhAAAAHKIAAAAcqYAAADAAwAAcwQAAAAAAQwNehVUSU1FLnJlc3VsdF9wcm9jZXNzb3IpAU4pDXKJAAAAcooAAAByiwAAAHKDAAAAcpEAAABykgAAAHKsAAAAcpkAAABypwAAAHKoAAAAcqAAAABypgAAAHKNAAAAcocAAAByhwAAACkBcoYAAAByiAAAAHKpAAAAqwMAAHMKAAAACAEOBA4CCAwKAnKpAAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcxQAAABlAFoBZABaAmQBZAKEAFoDZANTACkE2g1fRGF0ZVRpbWVCYXNlYwIAAAAAAAAAAwAAAAIAAABDAAAAcwwAAABkAWQChAB9AnwCUwApA05jAQAAAAAAAAABAAAABQAAAFMAAABzKgAAAHQAfACDAXQBagJrAnIidAGgAXwAagN8AGoEfABqBaEDUwB8AFMAZABTACkBTikGcpAAAABykQAAAHKSAAAAcpMAAABylAAAAHKVAAAAKQFylgAAAHKHAAAAcocAAAByiAAAAHKXAAAA1gMAAHMGAAAAAAEOARQCei1fRGF0ZVRpbWVCYXNlLmJpbmRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3NyhwAAACkDcoQAAABymAAAAHKXAAAAcocAAAByhwAAAHKIAAAAcpkAAADVAwAAcwQAAAAAAQgGehxfRGF0ZVRpbWVCYXNlLmJpbmRfcHJvY2Vzc29yTikEcokAAAByigAAAHKLAAAAcpkAAAByhwAAAHKHAAAAcocAAAByiAAAAHKuAAAA1AMAAHMCAAAACAFyrgAAAGMAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQLaC19NU0RhdGVUaW1lTikDcokAAAByigAAAHKLAAAAcocAAAByhwAAAHKHAAAAcogAAAByrwAAAN8DAABzAgAAAAgBcq8AAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoNU01BTExEQVRFVElNRU4pBHKJAAAAcooAAAByiwAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAABysAAAAOMDAABzAgAAAAgBcrAAAABjAAAAAAAAAAAAAAAABAAAAAAAAABzIgAAAGUAWgFkAFoCZABaA2QEhwBmAWQCZAOECVoEhwAEAFoFUwApBdoJREFURVRJTUUyTmMCAAAAAAAAAAMAAAADAAAACwAAAHMcAAAAdAB0AXwAgwJqAmYAfAKOAQEAfAF8AF8DZABTACkBTikEcoIAAABysQAAAHKDAAAAcmYAAAApA3KEAAAAcmYAAAByhQAAACkBcoYAAAByhwAAAHKIAAAAcoMAAADqAwAAcwQAAAAAARIBehJEQVRFVElNRTIuX19pbml0X18pAU4pBnKJAAAAcooAAAByiwAAAHKMAAAAcoMAAAByjQAAAHKHAAAAcocAAAApAXKGAAAAcogAAABysQAAAOcDAABzBAAAAAgBBAJysQAAAGMAAAAAAAAAAAAAAAADAAAAQAAAAHMaAAAAZQBaAWQAWgJkAFoDZARkAmQDhAFaBGQBUwApBdoOREFURVRJTUVPRkZTRVROYwIAAAAAAAAAAwAAAAIAAABLAAAAcwoAAAB8AXwAXwBkAFMAKQFOKQFyZgAAACkDcoQAAAByZgAAAHKqAAAAcocAAAByhwAAAHKIAAAAcoMAAADzAwAAcwIAAAAAAXoXREFURVRJTUVPRkZTRVQuX19pbml0X18pAU4pBXKJAAAAcooAAAByiwAAAHKMAAAAcoMAAAByhwAAAHKHAAAAcocAAAByiAAAAHKyAAAA8AMAAHMEAAAACAEEAnKyAAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcxQAAABlAFoBZABaAmQBZAKEAFoDZANTACkE2g9fVW5pY29kZUxpdGVyYWxjAgAAAAAAAAADAAAAAwAAAAMAAABzEAAAAIcAZgFkAWQChAh9AnwCUwApA05jAQAAAAAAAAABAAAABAAAABMAAABzKAAAAHwAoABkAWQCoQJ9AIgAagFqAnIgfACgAGQDZAShAn0AZAV8ABYAUwApBk76ASd6Aicn+gElegIlJXoFTiclcycpA9oHcmVwbGFjZdoTaWRlbnRpZmllcl9wcmVwYXJlcloQX2RvdWJsZV9wZXJjZW50cykBcpYAAAApAXKYAAAAcocAAAByiAAAAHKXAAAA+QMAAHMIAAAAAAIMAggBDAJ6Ml9Vbmljb2RlTGl0ZXJhbC5saXRlcmFsX3Byb2Nlc3Nvci48bG9jYWxzPi5wcm9jZXNzcocAAAApA3KEAAAAcpgAAABylwAAAHKHAAAAKQFymAAAAHKIAAAA2hFsaXRlcmFsX3Byb2Nlc3NvcvgDAABzBAAAAAABDAl6IV9Vbmljb2RlTGl0ZXJhbC5saXRlcmFsX3Byb2Nlc3Nvck4pBHKJAAAAcooAAAByiwAAAHK4AAAAcocAAAByhwAAAHKHAAAAcogAAAByswAAAPcDAABzAgAAAAgBcrMAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzDAAAAGUAWgFkAFoCZAFTACkC2gpfTVNVbmljb2RlTikDcokAAAByigAAAHKLAAAAcocAAAByhwAAAHKHAAAAcogAAAByuQAAAAUEAABzAgAAAAgBcrkAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzDAAAAGUAWgFkAFoCZAFTACkC2g5fTVNVbmljb2RlVGV4dE4pA3KJAAAAcooAAAByiwAAAHKHAAAAcocAAAByhwAAAHKIAAAAcroAAAAJBAAAcwIAAAAIAXK6AAAAYwAAAAAAAAAAAAAAAAMAAAAAAAAAczIAAABlAFoBZABaAmQBWgNkAFoEZAJaBWQIZARkBYQBWgaHAGYBZAZkB4QIWgeHAAQAWghTACkJ2glUSU1FU1RBTVBhQgEAAEltcGxlbWVudCB0aGUgU1FMIFNlcnZlciBUSU1FU1RBTVAgdHlwZS4KCiAgICBOb3RlIHRoaXMgaXMgKipjb21wbGV0ZWx5IGRpZmZlcmVudCoqIHRoYW4gdGhlIFNRTCBTdGFuZGFyZAogICAgVElNRVNUQU1QIHR5cGUsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgU1FMIFNlcnZlci4gIEl0CiAgICBpcyBhIHJlYWQtb25seSBkYXRhdHlwZSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgSU5TRVJUIG9mIHZhbHVlcy4KCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjIKCiAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgOmNsYXNzOmAubXNzcWwuUk9XVkVSU0lPTmAKCiAgICBORmMCAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAAfAF8AF8AZAFTACkCer5Db25zdHJ1Y3QgYSBUSU1FU1RBTVAgb3IgUk9XVkVSU0lPTiB0eXBlLgoKICAgICAgICA6cGFyYW0gY29udmVydF9pbnQ6IGlmIFRydWUsIGJpbmFyeSBpbnRlZ2VyIHZhbHVlcyB3aWxsCiAgICAgICAgIGJlIGNvbnZlcnRlZCB0byBpbnRlZ2VycyBvbiByZWFkLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjIKCiAgICAgICAgTikB2gtjb252ZXJ0X2ludCkCcoQAAAByvAAAAHKHAAAAcocAAAByiAAAAHKDAAAAIQQAAHMCAAAAAAl6ElRJTUVTVEFNUC5fX2luaXRfX2MDAAAAAAAAAAQAAAAEAAAAAwAAAHMwAAAAdAB0AXwAgwKgAnwBfAKhAokAfABqA3IohwBmAWQBZAKECH0DfANTAIgAUwBkAFMAKQNOYwEAAAAAAAAAAQAAAAUAAAATAAAAcyYAAACIAHwAgwF9AHwAZABrCXIidAB0AaACfABkAaECZAKDAn0AfABTACkDTtoDaGV46RAAAAApA3KaAAAA2gZjb2RlY3PaBmVuY29kZSkBcpYAAAApAdoGc3VwZXJfcocAAAByiAAAAHKXAAAAMAQAAHMIAAAAAAEIAQgCEgF6K1RJTUVTVEFNUC5yZXN1bHRfcHJvY2Vzc29yLjxsb2NhbHM+LnByb2Nlc3MpBHKCAAAAcrsAAABypgAAAHK8AAAAKQRyhAAAAHKYAAAAcqUAAABylwAAACkBcoYAAAApAXLBAAAAcogAAABypgAAACwEAABzCgAAAAABEgEGAgwHBAJ6GlRJTUVTVEFNUC5yZXN1bHRfcHJvY2Vzc29yKQFGKQlyiQAAAHKKAAAAcosAAADaB19fZG9jX19yjAAAANoGbGVuZ3RocoMAAABypgAAAHKNAAAAcocAAAByhwAAACkBcoYAAAByiAAAAHK7AAAADQQAAHMKAAAACA0EAgQDBAIKC3K7AAAAYwAAAAAAAAAAAAAAAAEAAABAAAAAcxQAAABlAFoBZABaAmQBWgNkAFoEZAJTACkD2gpST1dWRVJTSU9OYSgCAABJbXBsZW1lbnQgdGhlIFNRTCBTZXJ2ZXIgUk9XVkVSU0lPTiB0eXBlLgoKICAgIFRoZSBST1dWRVJTSU9OIGRhdGF0eXBlIGlzIGEgU1FMIFNlcnZlciBzeW5vbnltIGZvciB0aGUgVElNRVNUQU1QCiAgICBkYXRhdHlwZSwgaG93ZXZlciBjdXJyZW50IFNRTCBTZXJ2ZXIgZG9jdW1lbnRhdGlvbiBzdWdnZXN0cyB1c2luZwogICAgUk9XVkVSU0lPTiBmb3IgbmV3IGRhdGF0eXBlcyBnb2luZyBmb3J3YXJkLgoKICAgIFRoZSBST1dWRVJTSU9OIGRhdGF0eXBlIGRvZXMgKipub3QqKiByZWZsZWN0IChlLmcuIGludHJvc3BlY3QpIGZyb20gdGhlCiAgICBkYXRhYmFzZSBhcyBpdHNlbGY7IHRoZSByZXR1cm5lZCBkYXRhdHlwZSB3aWxsIGJlCiAgICA6Y2xhc3M6YC5tc3NxbC5USU1FU1RBTVBgLgoKICAgIFRoaXMgaXMgYSByZWFkLW9ubHkgZGF0YXR5cGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IElOU0VSVCBvZiB2YWx1ZXMuCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4yCgogICAgLi4gc2VlYWxzbzo6CgogICAgICAgIDpjbGFzczpgLm1zc3FsLlRJTUVTVEFNUGAKCiAgICBOKQVyiQAAAHKKAAAAcosAAABywgAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAAByxAAAADwEAABzBAAAAAgTBAJyxAAAAGMAAAAAAAAAAAAAAAABAAAAQAAAAHMUAAAAZQBaAWQAWgJkAVoDZABaBGQCUwApA9oFTlRFWFR6TU1TU1FMIE5URVhUIHR5cGUsIGZvciB2YXJpYWJsZS1sZW5ndGggdW5pY29kZSB0ZXh0IHVwIHRvIDJeMzAKICAgIGNoYXJhY3RlcnMuTikFcokAAAByigAAAHKLAAAAcsIAAAByjAAAAHKHAAAAcocAAAByhwAAAHKIAAAAcsUAAABUBAAAcwQAAAAIAwQCcsUAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzFAAAAGUAWgFkAFoCZAFaA2QAWgRkAlMAKQPaCVZBUkJJTkFSWWFHAQAAVGhlIE1TU1FMIFZBUkJJTkFSWSB0eXBlLgoKICAgIFRoaXMgdHlwZSBpcyBwcmVzZW50IHRvIHN1cHBvcnQgImRlcHJlY2F0ZV9sYXJnZV90eXBlcyIgbW9kZSB3aGVyZQogICAgZWl0aGVyIGBgVkFSQklOQVJZKG1heClgYCBvciBJTUFHRSBpcyByZW5kZXJlZC4gICBPdGhlcndpc2UsIHRoaXMgdHlwZQogICAgb2JqZWN0IGlzIHJlZHVuZGFudCB2cy4gOmNsYXNzOmAudHlwZXMuVkFSQklOQVJZYC4KCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjAuMAoKICAgIC4uIHNlZWFsc286OgoKICAgICAgICA6cmVmOmBtc3NxbF9sYXJnZV90eXBlX2RlcHJlY2F0aW9uYAoKCgogICAgTikFcokAAAByigAAAHKLAAAAcsIAAAByjAAAAHKHAAAAcocAAAByhwAAAHKIAAAAcsYAAABcBAAAcwQAAAAIDwQCcsYAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoFSU1BR0VOKQRyiQAAAHKKAAAAcosAAAByjAAAAHKHAAAAcocAAAByhwAAAHKIAAAAcscAAABwBAAAcwIAAAAIAXLHAAAAYwAAAAAAAAAAAAAAAAEAAABAAAAAcxQAAABlAFoBZABaAmQBWgNkAFoEZAJTACkD2gNYTUxhIgEAAE1TU1FMIFhNTCB0eXBlLgoKICAgIFRoaXMgaXMgYSBwbGFjZWhvbGRlciB0eXBlIGZvciByZWZsZWN0aW9uIHB1cnBvc2VzIHRoYXQgZG9lcyBub3QgaW5jbHVkZQogICAgYW55IFB5dGhvbi1zaWRlIGRhdGF0eXBlIHN1cHBvcnQuICAgSXQgYWxzbyBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydAogICAgYWRkaXRpb25hbCBhcmd1bWVudHMsIHN1Y2ggYXMgIkNPTlRFTlQiLCAiRE9DVU1FTlQiLAogICAgInhtbF9zY2hlbWFfY29sbGVjdGlvbiIuCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4xLjExCgogICAgTikFcokAAAByigAAAHKLAAAAcsIAAAByjAAAAHKHAAAAcocAAAByhwAAAHKIAAAAcsgAAAB0BAAAcwQAAAAICgQCcsgAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoDQklUTikEcokAAAByigAAAHKLAAAAcowAAAByhwAAAHKHAAAAcocAAAByiAAAAHLJAAAAgwQAAHMCAAAACAFyyQAAAGMAAAAAAAAAAAAAAAABAAAAQAAAAHMQAAAAZQBaAWQAWgJkAFoDZAFTACkC2gVNT05FWU4pBHKJAAAAcooAAAByiwAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAAByygAAAIcEAABzAgAAAAgBcsoAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoKU01BTExNT05FWU4pBHKJAAAAcooAAAByiwAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAAByywAAAIsEAABzAgAAAAgBcssAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoQVU5JUVVFSURFTlRJRklFUk4pBHKJAAAAcooAAAByiwAAAHKMAAAAcocAAAByhwAAAHKHAAAAcogAAAByzAAAAI8EAABzAgAAAAgBcswAAABjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZABaA2QBUwApAtoLU1FMX1ZBUklBTlROKQRyiQAAAHKKAAAAcosAAAByjAAAAHKHAAAAcocAAAByhwAAAHKIAAAAcs0AAACTBAAAcwIAAAAIAXLNAAAAKR5ymgAAAFoGYmlnaW50WghzbWFsbGludFoHdGlueWludFoHdmFyY2hhcloIbnZhcmNoYXLaBGNoYXJaBW5jaGFy2gR0ZXh0WgVudGV4dFoHZGVjaW1hbFoHbnVtZXJpY9oFZmxvYXRykQAAAFoJZGF0ZXRpbWUyWg5kYXRldGltZW9mZnNldHKSAAAAcq0AAABaDXNtYWxsZGF0ZXRpbWXaBmJpbmFyeVoJdmFyYmluYXJ52gNiaXTaBHJlYWxaBWltYWdl2gN4bWzaCXRpbWVzdGFtcFoFbW9uZXlaCnNtYWxsbW9uZXlaEHVuaXF1ZWlkZW50aWZpZXJaC3NxbF92YXJpYW50YwAAAAAAAAAAAAAAAAMAAABAAAAAc/4AAABlAFoBZABaAmQ+ZAJkA4QBWgNkBGQFhABaBGQGZAeEAFoFZAhkCYQAWgZkCmQLhABaB2QMZA2EAFoIZA5kD4QAWglkEGQRhABaCmQSZBOEAFoLZBRkFYQAWgxkFmQXhABaDWQYZBmEAFoOZBpkG4QAWg9kHGQdhABaEGQeZB+EAFoRZCBkIYQAWhJkImQjhABaE2QkZCWEAFoUZCZkJ4QAWhVkKGQphABaFmQqZCuEAFoXZCxkLYQAWhhkLmQvhABaGWQwZDGEAFoaZDJkM4QAWhtkNGQ1hABaHGQ2ZDeEAFodZDhkOYQAWh5kOmQ7hABaH2Q8ZD2EAFogZAFTACk/2g5NU1R5cGVDb21waWxlck5jBAAAAAAAAAAFAAAABQAAAEMAAABzTgAAAHQAfAJkAWQCgwNyGGQDfAJqARYAfQRuBGQCfQR8A3MmfAJqAn0DfANyNnwBZAR8AxYAFwB9AWQFoANkBmQHhAB8AXwEZgJEAIMBoQFTACkIellFeHRlbmQgYSBzdHJpbmctdHlwZSBkZWNsYXJhdGlvbiB3aXRoIHN0YW5kYXJkIFNRTAogICAgICAgIENPTExBVEUgYW5ub3RhdGlvbnMuCgogICAgICAgINoJY29sbGF0aW9uTnoKQ09MTEFURSAlc3oEKCVzKfoBIGMBAAAAAAAAAAIAAAAEAAAAUwAAAHMYAAAAZwB8AF0QfQF8AWQAawlyBHwBkQJxBFMAKQFOcocAAAApAnKbAAAA2gFjcocAAAByhwAAAHKIAAAAcp0AAADjBAAAcwIAAAAGAHoqTVNUeXBlQ29tcGlsZXIuX2V4dGVuZC48bG9jYWxzPi48bGlzdGNvbXA+KQTaB2dldGF0dHJy1wAAAHLDAAAAclMAAAApBXKEAAAA2gRzcGVj2gV0eXBlX3LDAAAActcAAAByhwAAAHKHAAAAcogAAADaB19leHRlbmTSBAAAcxAAAAAABgwBDAIEAgQBBgIEAQwCehZNU1R5cGVDb21waWxlci5fZXh0ZW5kYwIAAAAAAAAABAAAAAQAAABLAAAAcygAAAB0AHwBZAFkAIMDfQN8A2QAawhyGGQCUwBkA2QBfANpARYAUwBkAFMAKQROcmYAAAByFgAAAHoURkxPQVQoJShwcmVjaXNpb24pcykpAXLaAAAAKQRyhAAAAHLcAAAAcoUAAAByZgAAAHKHAAAAcocAAAByiAAAANoLdmlzaXRfRkxPQVTlBAAAcwgAAAAAAQwBCAEEAnoaTVNUeXBlQ29tcGlsZXIudmlzaXRfRkxPQVRjAgAAAAAAAAADAAAAAQAAAEsAAABzBAAAAGQBUwApAk5yjgAAAHKHAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaDXZpc2l0X1RJTllJTlTsBAAAcwIAAAAAAXocTVNUeXBlQ29tcGlsZXIudmlzaXRfVElOWUlOVGMCAAAAAAAAAAMAAAACAAAASwAAAHMcAAAAfAFqAGQAawlyFGQBfAFqABYAUwBkAlMAZABTACkDTnoSREFURVRJTUVPRkZTRVQoJXMpcrIAAAApAXJmAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaFHZpc2l0X0RBVEVUSU1FT0ZGU0VU7wQAAHMGAAAAAAEKAQoCeiNNU1R5cGVDb21waWxlci52aXNpdF9EQVRFVElNRU9GRlNFVGMCAAAAAAAAAAQAAAAEAAAASwAAAHMkAAAAdAB8AWQBZACDA30DfANkAGsJchxkAnwDFgBTAGQDUwBkAFMAKQROcmYAAAB6CFRJTUUoJXMpcqkAAAApAXLaAAAAKQRyhAAAAHLcAAAAcoUAAAByZgAAAHKHAAAAcocAAAByiAAAANoKdmlzaXRfVElNRfUEAABzCAAAAAABDAEIAQgCehlNU1R5cGVDb21waWxlci52aXNpdF9USU1FYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOcrsAAAByhwAAACkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2g92aXNpdF9USU1FU1RBTVD8BAAAcwIAAAAAAXoeTVNUeXBlQ29tcGlsZXIudmlzaXRfVElNRVNUQU1QYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOcsQAAAByhwAAACkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2hB2aXNpdF9ST1dWRVJTSU9O/wQAAHMCAAAAAAF6H01TVHlwZUNvbXBpbGVyLnZpc2l0X1JPV1ZFUlNJT05jAgAAAAAAAAAEAAAABAAAAEsAAABzJAAAAHQAfAFkAWQAgwN9A3wDZABrCXIcZAJ8AxYAUwBkA1MAZABTACkETnJmAAAAeg1EQVRFVElNRTIoJXMpcrEAAAApAXLaAAAAKQRyhAAAAHLcAAAAcoUAAAByZgAAAHKHAAAAcocAAAByiAAAANoPdmlzaXRfREFURVRJTUUyAgUAAHMIAAAAAAEMAQgBCAJ6Hk1TVHlwZUNvbXBpbGVyLnZpc2l0X0RBVEVUSU1FMmMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnKwAAAAcocAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoTdmlzaXRfU01BTExEQVRFVElNRQkFAABzAgAAAAABeiJNU1R5cGVDb21waWxlci52aXNpdF9TTUFMTERBVEVUSU1FYwIAAAAAAAAAAwAAAAMAAABLAAAAcw4AAAB8AGoAfAFmAXwCjgFTACkBTikB2g52aXNpdF9OVkFSQ0hBUikDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2g12aXNpdF91bmljb2RlDAUAAHMCAAAAAAF6HE1TVHlwZUNvbXBpbGVyLnZpc2l0X3VuaWNvZGVjAgAAAAAAAAADAAAAAwAAAEsAAABzKAAAAHwAagBqAXIWfABqAnwBZgF8Ao4BUwB8AGoDfAFmAXwCjgFTAGQAUwApAU4pBHKYAAAA2hVkZXByZWNhdGVfbGFyZ2VfdHlwZXPaDXZpc2l0X1ZBUkNIQVLaCnZpc2l0X1RFWFQpA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoKdmlzaXRfdGV4dA8FAABzBgAAAAABCAEOAnoZTVNUeXBlQ29tcGlsZXIudmlzaXRfdGV4dGMCAAAAAAAAAAMAAAADAAAASwAAAHMoAAAAfABqAGoBchZ8AGoCfAFmAXwCjgFTAHwAagN8AWYBfAKOAVMAZABTACkBTikEcpgAAABy6AAAAHLmAAAA2gt2aXNpdF9OVEVYVCkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2hJ2aXNpdF91bmljb2RlX3RleHQVBQAAcwYAAAAAAQgBDgJ6IU1TVHlwZUNvbXBpbGVyLnZpc2l0X3VuaWNvZGVfdGV4dGMCAAAAAAAAAAMAAAAEAAAASwAAAHMMAAAAfACgAGQBfAGhAlMAKQJOcsUAAAApAXLdAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAABy7AAAABsFAABzAgAAAAABehpNU1R5cGVDb21waWxlci52aXNpdF9OVEVYVGMCAAAAAAAAAAMAAAAEAAAASwAAAHMMAAAAfACgAGQBfAGhAlMAKQJOchwAAAApAXLdAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAABy6gAAAB4FAABzAgAAAAABehlNU1R5cGVDb21waWxlci52aXNpdF9URVhUYwIAAAAAAAAAAwAAAAUAAABLAAAAcxYAAAB8AGoAZAF8AXwBagFwEGQCZAONA1MAKQROch0AAADaA21heCkBcsMAAAApAnLdAAAAcsMAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAAHLpAAAAIQUAAHMCAAAAAAF6HE1TVHlwZUNvbXBpbGVyLnZpc2l0X1ZBUkNIQVJjAgAAAAAAAAADAAAABAAAAEsAAABzDAAAAHwAoABkAXwBoQJTACkCTnISAAAAKQFy3QAAACkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2gp2aXNpdF9DSEFSJAUAAHMCAAAAAAF6GU1TVHlwZUNvbXBpbGVyLnZpc2l0X0NIQVJjAgAAAAAAAAADAAAABAAAAEsAAABzDAAAAHwAoABkAXwBoQJTACkCTnIYAAAAKQFy3QAAACkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2gt2aXNpdF9OQ0hBUicFAABzAgAAAAABehpNU1R5cGVDb21waWxlci52aXNpdF9OQ0hBUmMCAAAAAAAAAAMAAAAFAAAASwAAAHMWAAAAfABqAGQBfAF8AWoBcBBkAmQDjQNTACkETnIaAAAAcu4AAAApAXLDAAAAKQJy3QAAAHLDAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAABy5gAAACoFAABzAgAAAAABeh1NU1R5cGVDb21waWxlci52aXNpdF9OVkFSQ0hBUmMCAAAAAAAAAAMAAAADAAAASwAAAHMsAAAAfABqAGoBdAJrAHIafABqA3wBZgF8Ao4BUwB8AGoEfAFmAXwCjgFTAGQAUwApAU4pBXKYAAAA2hNzZXJ2ZXJfdmVyc2lvbl9pbmZv2g9NU18yMDA4X1ZFUlNJT07aDnZpc2l0X0RBVEVUSU1FWgp2aXNpdF9EQVRFKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaCnZpc2l0X2RhdGUtBQAAcwYAAAAAAQwBDgJ6GU1TVHlwZUNvbXBpbGVyLnZpc2l0X2RhdGVjAgAAAAAAAAADAAAAAwAAAEsAAABzLAAAAHwAagBqAXQCawByGnwAagN8AWYBfAKOAVMAfABqBHwBZgF8Ao4BUwBkAFMAKQFOKQVymAAAAHLxAAAAcvIAAABy8wAAAHLhAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaCnZpc2l0X3RpbWUzBQAAcwYAAAAAAQwBDgJ6GU1TVHlwZUNvbXBpbGVyLnZpc2l0X3RpbWVjAgAAAAAAAAADAAAAAwAAAEsAAABzKAAAAHwAagBqAXIWfABqAnwBZgF8Ao4BUwB8AGoDfAFmAXwCjgFTAGQAUwApAU4pBHKYAAAAcugAAADaD3Zpc2l0X1ZBUkJJTkFSWdoLdmlzaXRfSU1BR0UpA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoSdmlzaXRfbGFyZ2VfYmluYXJ5OQUAAHMGAAAAAAEIAQ4CeiFNU1R5cGVDb21waWxlci52aXNpdF9sYXJnZV9iaW5hcnljAgAAAAAAAAADAAAAAQAAAEsAAABzBAAAAGQBUwApAk5yxwAAAHKHAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAABy9wAAAD8FAABzAgAAAAABehpNU1R5cGVDb21waWxlci52aXNpdF9JTUFHRWMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnLIAAAAcocAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoJdmlzaXRfWE1MQgUAAHMCAAAAAAF6GE1TVHlwZUNvbXBpbGVyLnZpc2l0X1hNTGMCAAAAAAAAAAMAAAAFAAAASwAAAHMWAAAAfABqAGQBfAF8AWoBcBBkAmQDjQNTACkETnLGAAAAcu4AAAApAXLDAAAAKQJy3QAAAHLDAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAABy9gAAAEUFAABzAgAAAAABeh5NU1R5cGVDb21waWxlci52aXNpdF9WQVJCSU5BUlljAgAAAAAAAAADAAAAAwAAAEsAAABzCgAAAHwAoAB8AaEBUwApAU4pAdoJdmlzaXRfQklUKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaDXZpc2l0X2Jvb2xlYW5IBQAAcwIAAAAAAXocTVNUeXBlQ29tcGlsZXIudmlzaXRfYm9vbGVhbmMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnLJAAAAcocAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAAHL6AAAASwUAAHMCAAAAAAF6GE1TVHlwZUNvbXBpbGVyLnZpc2l0X0JJVGMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnLKAAAAcocAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoLdmlzaXRfTU9ORVlOBQAAcwIAAAAAAXoaTVNUeXBlQ29tcGlsZXIudmlzaXRfTU9ORVljAgAAAAAAAAADAAAAAQAAAEsAAABzBAAAAGQBUwApAk5yywAAAHKHAAAAKQNyhAAAAHLcAAAAcoUAAAByhwAAAHKHAAAAcogAAADaEHZpc2l0X1NNQUxMTU9ORVlRBQAAcwIAAAAAAXofTVNUeXBlQ29tcGlsZXIudmlzaXRfU01BTExNT05FWWMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnLMAAAAcocAAAApA3KEAAAActwAAAByhQAAAHKHAAAAcocAAAByiAAAANoWdmlzaXRfVU5JUVVFSURFTlRJRklFUlQFAABzAgAAAAABeiVNU1R5cGVDb21waWxlci52aXNpdF9VTklRVUVJREVOVElGSUVSYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOcs0AAAByhwAAACkDcoQAAABy3AAAAHKFAAAAcocAAAByhwAAAHKIAAAA2hF2aXNpdF9TUUxfVkFSSUFOVFcFAABzAgAAAAABeiBNU1R5cGVDb21waWxlci52aXNpdF9TUUxfVkFSSUFOVCkBTikhcokAAAByigAAAHKLAAAAct0AAABy3gAAAHLfAAAAcuAAAABy4QAAAHLiAAAAcuMAAABy5AAAAHLlAAAAcucAAABy6wAAAHLtAAAAcuwAAABy6gAAAHLpAAAAcu8AAABy8AAAAHLmAAAAcvQAAABy9QAAAHL4AAAAcvcAAABy+QAAAHL2AAAAcvsAAABy+gAAAHL8AAAAcv0AAABy/gAAAHL/AAAAcocAAAByhwAAAHKHAAAAcogAAABy1gAAANEEAABzPAAAAAgBChMIBwgDCAYIBwgDCAMIBwgDCAMIBggGCAMIAwgDCAMIAwgDCAYIBggGCAMIAwgDCAMIAwgDCAMIA3LWAAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAc0wAAABlAFoBZABaAmQBWgNkAVoEZAJaBWQCWgZkA2QEhABaB2QFZAaEAFoIZAdkCIQAWglkCWQKhABaCmQLZAyEAFoLZA1kDoQAWgxkAlMAKQ/aEk1TRXhlY3V0aW9uQ29udGV4dEZOYwIAAAAAAAAAAgAAAAMAAABDAAAAcyAAAAB8AGoAagFzGHwAagCgAnwBoQFkARkAUwB8AVMAZABTACkCTnIBAAAAKQNymAAAAFobc3VwcG9ydHNfdW5pY29kZV9zdGF0ZW1lbnRz2ghfZW5jb2RlcikCcoQAAADaCXN0YXRlbWVudHKHAAAAcocAAAByiAAAANoLX29wdF9lbmNvZGVhBQAAcwYAAAAAAQgBEAJ6Hk1TRXhlY3V0aW9uQ29udGV4dC5fb3B0X2VuY29kZWMBAAAAAAAAAAQAAAAJAAAAQwAAAHP8AAAAfABqAHL4fABqAWoCagN9AXwBagR9AnwCZAFrCX0DfANymnwCagV8AGoGZAIZAGsGcJR8AGoBagJqB2+UfABqAWoCaghybHwCagV8AGoBagJqB2QCGQBrBnCUfAJ8AGoBagJqB2QCGQBrBnCUfABqAWoCaggMAG+UfAJqBXwAagFqAmoHawZwlHwCfABqAWoCagdrBnwAXwluBmQDfABfCXwAagFqCgwAb8Z8A2/GfABqAWoLDABvxnwAagkMAG/GfABqDAwAfABfDXwAagly+HwAag6gD3wAahB8AKARZAR8AGoSahOgFHwBoQEWAKEBZAV8AKEEAQBkAVMAKQZ6I0FjdGl2YXRlIElERU5USVRZX0lOU0VSVCBpZiBuZWVkZWQuTnIBAAAARnoZU0VUIElERU5USVRZX0lOU0VSVCAlcyBPTnKHAAAAKRXaCGlzaW5zZXJ02ghjb21waWxlZHICAQAAcnIAAADaFV9hdXRvaW5jcmVtZW50X2NvbHVtbnJUAAAAWhNjb21waWxlZF9wYXJhbWV0ZXJz2gpwYXJhbWV0ZXJzWhVfaGFzX211bHRpX3BhcmFtZXRlcnPaF19lbmFibGVfaWRlbnRpdHlfaW5zZXJ02gZpbmxpbmXaCXJldHVybmluZ1oLZXhlY3V0ZW1hbnnaEV9zZWxlY3RfbGFzdHJvd2lk2g9yb290X2Nvbm5lY3Rpb27aD19jdXJzb3JfZXhlY3V0ZXI5AAAAcgMBAABymAAAAHK3AAAA2gxmb3JtYXRfdGFibGUpBHKEAAAAWgN0YmxaCnNlcV9jb2x1bW5aE2luc2VydF9oYXNfc2VxdWVuY2VyhwAAAHKHAAAAcogAAADaCHByZV9leGVjZwUAAHM+AAAAAAMGAQoBBgEIAgQCEAIKAwoCBAEQAQIBEAQMAgQBDAECARAGBgMKAQQBCgEIAQoDBgEGAQQBBAECARACAgF6G01TRXhlY3V0aW9uQ29udGV4dC5wcmVfZXhlY2MBAAAAAAAAAAMAAAAJAAAAQwAAAHOyAAAAfABqAH0BfABqAXJWfABqAmoDcih8AaAEfABqBWQBZAJ8AKEEAQBuEnwBoAR8AGoFZANkAnwAoQQBAHwAagWgBqEAZAQZAH0CdAd8AmQEGQCDAXwAXwh8AGoJc2h8AGoKc2h8AGoLcnx8AGoMag1yfHQOoA98AKEBfABfEHwAahFyrnwBoAR8AGoFfACgEmQFfABqAmoToBR8AGoMahVqFqEBFgChAWQCfAChBAEAZAZTACkHeiNEaXNhYmxlIElERU5USVRZX0lOU0VSVCBpZiBlbmFibGVkLnokU0VMRUNUIHNjb3BlX2lkZW50aXR5KCkgQVMgbGFzdHJvd2lkcocAAAB6HlNFTEVDVCBAQGlkZW50aXR5IEFTIGxhc3Ryb3dpZHIBAAAAehpTRVQgSURFTlRJVFlfSU5TRVJUICVzIE9GRk4pF3IMAQAAcgsBAABymAAAANoSdXNlX3Njb3BlX2lkZW50aXR5cg0BAAByOQAAANoIZmV0Y2hhbGxymgAAANoKX2xhc3Ryb3dpZHIEAQAA2ghpc3VwZGF0ZdoIaXNkZWxldGVyBQEAAHIKAQAAcgUAAABaGEZ1bGx5QnVmZmVyZWRSZXN1bHRQcm94edoNX3Jlc3VsdF9wcm94eXIIAQAAcgMBAABytwAAAHIOAQAAcgIBAABycgAAACkDcoQAAADaBGNvbm7aA3Jvd3KHAAAAcocAAAByiAAAANoJcG9zdF9leGVjnwUAAHMwAAAAAAMGAQYBCAEEAQQBAgECAQgDBAEOAw4BDgMSAQgBDAIGAQQBBAEEAQIBCAEOAwIBehxNU0V4ZWN1dGlvbkNvbnRleHQucG9zdF9leGVjYwEAAAAAAAAAAQAAAAEAAABDAAAAcwYAAAB8AGoAUwApAU4pAXISAQAAKQFyhAAAAHKHAAAAcocAAAByiAAAANoNZ2V0X2xhc3Ryb3dpZMUFAABzAgAAAAABeiBNU0V4ZWN1dGlvbkNvbnRleHQuZ2V0X2xhc3Ryb3dpZGMCAAAAAAAAAAIAAAAIAAAAQwAAAHNKAAAAfABqAHJGeSp8AGoBoAJ8AKADZAF8AGoEagWgBnwAagdqCGoJoQEWAKEBoQEBAFcAbhQEAHQKawpyRAEAAQABAFkAbgJYAGQAUwApAk56GlNFVCBJREVOVElUWV9JTlNFUlQgJXMgT0ZGKQtyCAEAAHI5AAAAckMAAAByAwEAAHKYAAAAcrcAAAByDgEAAHIFAQAAcgIBAABycgAAANoJRXhjZXB0aW9uKQJyhAAAANoBZXKHAAAAcocAAAByiAAAANoWaGFuZGxlX2RiYXBpX2V4Y2VwdGlvbsgFAABzEgAAAAABBgECAQYBBAECAQgBFgQOAXopTVNFeGVjdXRpb25Db250ZXh0LmhhbmRsZV9kYmFwaV9leGNlcHRpb25jAQAAAAAAAAABAAAAAwAAAEMAAABzGgAAAHwAagByDHwAagBTAHQBoAJ8AKEBUwBkAFMAKQFOKQNyFQEAAHIFAAAAWgtSZXN1bHRQcm94eSkBcoQAAAByhwAAAHKHAAAAcogAAADaEGdldF9yZXN1bHRfcHJveHnWBQAAcwYAAAAAAQYBBgJ6I01TRXhlY3V0aW9uQ29udGV4dC5nZXRfcmVzdWx0X3Byb3h5KQ1yiQAAAHKKAAAAcosAAAByCAEAAHILAQAAchUBAAByEgEAAHIDAQAAcg8BAAByGAEAAHIZAQAAchwBAAByHQEAAHKHAAAAcocAAAByhwAAAHKIAAAAcgABAABbBQAAcxQAAAAIAQQBBAEEAQQCCAYIOAgmCAMIDnIAAQAAYwAAAAAAAAAAAAAAAAgAAAAAAAAAc1oBAABlAFoBZABaAmQBWgNlBKAFZQZqB2oIZAJkA2QEZAVkBpwEoQJaCIcAZgFkB2QIhAhaCYcAZgFkCWQKhAhaCmQLZAyEAFoLZA1kDoQAWgxkD2QQhABaDWQRZBKEAFoOZBNkFIQAWg9kFWQWhABaEGQXZBiEAFoRZBlkGoQAWhJkG2QchABaE2QdZB6EAFoUZB9kIIQAWhVkIWQihABaFmQjZCSEAFoXZQpkSYcAZgFkJmQnhAmDAVoYZQqHAGYBZChkKYQIgwFaGWUKZEqHAGYBZCtkLIQJgwFaGmQtZC6EAFobZC9kMIQAWhxkMWQyhABaHWQzZDSEAFoehwBmAWQ1ZDaECFofZDdkOIQAWiBkOWQ6hABaIYcAZgFkO2Q8hAhaImQ9ZD6EAFojZD9kQIQAWiRkQWRChABaJWRDZESEAFomZEVkRoQAWidkR2RIhABaKIcABABaKVMAKUvaDU1TU1FMQ29tcGlsZXJUWglkYXlvZnllYXLaB3dlZWtkYXlaC21pbGxpc2Vjb25k2gttaWNyb3NlY29uZCkEWgNkb3laA2Rvd1oMbWlsbGlzZWNvbmRz2gxtaWNyb3NlY29uZHNjAQAAAAAAAAADAAAAAwAAAA8AAABzHAAAAGkAfABfAHQBdAJ8AIMCagN8AXwCjgEBAGQAUwApAU4pBNoMdGFibGVhbGlhc2VzcoIAAAByHgEAAHKDAAAAKQNyhAAAANoEYXJnc3KqAAAAKQFyhgAAAHKHAAAAcogAAABygwAAAOoFAABzBAAAAAABBgF6Fk1TU1FMQ29tcGlsZXIuX19pbml0X19jAQAAAAAAAAACAAAAAwAAAAMAAABzEgAAAIcBhwBmAmQBZAKECH0BfAFTACkDTmMBAAAAAAAAAAQAAAAEAAAAHwAAAHM4AAAAfABqAGoBchiIAXwAZgF8AZ4CfAKOAVMAdAJ0A3QEfACDAogBagWDAn0DfAN8AXwCjgFTAGQAUwApAU4pBnKYAAAA2hZsZWdhY3lfc2NoZW1hX2FsaWFzaW5nctoAAAByggAAAHIeAQAAcokAAAApBHKEAAAA2gNhcmdyhQAAAHLBAAAAKQJyhgAAANoCZm5yhwAAAHKIAAAA2ghkZWNvcmF0Ze8FAABzCAAAAAABCAEQAhIBejxNU1NRTENvbXBpbGVyLl93aXRoX2xlZ2FjeV9zY2hlbWFfYWxpYXNpbmcuPGxvY2Fscz4uZGVjb3JhdGVyhwAAACkCciYBAAByJwEAACkBcoYAAAApAXImAQAAcogAAADaHF93aXRoX2xlZ2FjeV9zY2hlbWFfYWxpYXNpbmfuBQAAcwQAAAAAAQ4HeipNU1NRTENvbXBpbGVyLl93aXRoX2xlZ2FjeV9zY2hlbWFfYWxpYXNpbmdjAgAAAAAAAAADAAAAAQAAAEsAAABzBAAAAGQBUwApAk5aEUNVUlJFTlRfVElNRVNUQU1QcocAAAApA3KEAAAAciYBAAByhQAAAHKHAAAAcocAAAByiAAAANoOdmlzaXRfbm93X2Z1bmP4BQAAcwIAAAAAAXocTVNTUUxDb21waWxlci52aXNpdF9ub3dfZnVuY2MCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnoJR0VUREFURSgpcocAAAApA3KEAAAAciYBAAByhQAAAHKHAAAAcocAAAByiAAAANoXdmlzaXRfY3VycmVudF9kYXRlX2Z1bmP7BQAAcwIAAAAAAXolTVNTUUxDb21waWxlci52aXNpdF9jdXJyZW50X2RhdGVfZnVuY2MCAAAAAAAAAAMAAAAEAAAASwAAAHMSAAAAZAF8AGoAfAFmAXwCjgEWAFMAKQJOegVMRU4lcykB2hBmdW5jdGlvbl9hcmdzcGVjKQNyhAAAAHImAQAAcoUAAAByhwAAAHKHAAAAcogAAADaEXZpc2l0X2xlbmd0aF9mdW5j/gUAAHMCAAAAAAF6H01TU1FMQ29tcGlsZXIudmlzaXRfbGVuZ3RoX2Z1bmNjAgAAAAAAAAADAAAABAAAAEsAAABzEgAAAGQBfABqAHwBZgF8Ao4BFgBTACkCTnoFTEVOJXMpAXIrAQAAKQNyhAAAAHImAQAAcoUAAAByhwAAAHKHAAAAcogAAADaFnZpc2l0X2NoYXJfbGVuZ3RoX2Z1bmMBBgAAcwIAAAAAAXokTVNTUUxDb21waWxlci52aXNpdF9jaGFyX2xlbmd0aF9mdW5jYwMAAAAAAAAABAAAAAUAAABLAAAAcyQAAABkAXwAagB8AWoBZgF8A44BfABqAHwBagJmAXwDjgFmAhYAUwApAk56ByVzICsgJXMpA3KXAAAAclYAAABybgAAACkEcoQAAABy0QAAANoIb3BlcmF0b3JyhQAAAHKHAAAAcocAAAByiAAAANoWdmlzaXRfY29uY2F0X29wX2JpbmFyeQQGAABzBgAAAAABAgEOAXokTVNTUUxDb21waWxlci52aXNpdF9jb25jYXRfb3BfYmluYXJ5YwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJO2gExcocAAAApA3KEAAAA2gRleHBycoUAAAByhwAAAHKHAAAAcogAAADaCnZpc2l0X3RydWUKBgAAcwIAAAAAAXoYTVNTUUxDb21waWxlci52aXNpdF90cnVlYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJO2gEwcocAAAApA3KEAAAAcjEBAAByhQAAAHKHAAAAcocAAAByiAAAANoLdmlzaXRfZmFsc2UNBgAAcwIAAAAAAXoZTVNTUUxDb21waWxlci52aXNpdF9mYWxzZWMDAAAAAAAAAAQAAAAFAAAASwAAAHMkAAAAZAF8AGoAfAFqAWYBfAOOAXwAagB8AWoCZgF8A44BZgIWAFMAKQJOehFDT05UQUlOUyAoJXMsICVzKSkDcpcAAAByVgAAAHJuAAAAKQRyhAAAAHLRAAAAci4BAAByhQAAAHKHAAAAcocAAAByiAAAANoVdmlzaXRfbWF0Y2hfb3BfYmluYXJ5EAYAAHMGAAAAAAECAQ4BeiNNU1NRTENvbXBpbGVyLnZpc2l0X21hdGNoX29wX2JpbmFyeWMCAAAAAAAAAAQAAAADAAAASwAAAHNKAAAAZAF9A3wBagByEnwDZAI3AH0DfAFqAXIsfAFqAnMsfANkA3wBagMWADcAfQN8A3I0fANTAHQEagVqBnwAfAFmAnwCjgFTAGQEUwApBXotIE1TLVNRTCBwdXRzIFRPUCwgaXQncyB2ZXJzaW9uIG9mIExJTUlUIGhlcmUg2gB6CURJU1RJTkNUIHoHVE9QICVkIE4pB1oJX2Rpc3RpbmN02hFfc2ltcGxlX2ludF9saW1pdNoHX29mZnNldNoGX2xpbWl0cg0AAADaC1NRTENvbXBpbGVy2hVnZXRfc2VsZWN0X3ByZWNvbHVtbnMpBHKEAAAAcm8AAAByhQAAANoBc3KHAAAAcocAAAByiAAAAHI7AQAAFgYAAHMSAAAAAAMEAQYBCAIMBA4CBAEEAgYBeiNNU1NRTENvbXBpbGVyLmdldF9zZWxlY3RfcHJlY29sdW1uc2MDAAAAAAAAAAMAAAABAAAAQwAAAHMEAAAAfAJTACkBTnKHAAAAKQNyhAAAAHJyAAAAcs8AAAByhwAAAHKHAAAAcogAAADaEmdldF9mcm9tX2hpbnRfdGV4dCoGAABzAgAAAAABeiBNU1NRTENvbXBpbGVyLmdldF9mcm9tX2hpbnRfdGV4dGMDAAAAAAAAAAMAAAABAAAAQwAAAHMEAAAAfAJTACkBTnKHAAAAKQNyhAAAAHJyAAAAcs8AAAByhwAAAHKHAAAAcogAAADaEmdldF9jcnVkX2hpbnRfdGV4dC0GAABzAgAAAAABeiBNU1NRTENvbXBpbGVyLmdldF9jcnVkX2hpbnRfdGV4dGMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnI2AQAAcocAAAApA3KEAAAAcm8AAAByhQAAAHKHAAAAcocAAAByiAAAANoMbGltaXRfY2xhdXNlMAYAAHMCAAAAAAJ6Gk1TU1FMQ29tcGlsZXIubGltaXRfY2xhdXNlYwIAAAAAAAAACAAAAAUAAABLAAAAcygBAAB8AWoAcxB8AWoBZAFrCXMofAFqAmQBawlyIHwBagNyKHwBagSQAXISdAV8AWQCZAGDA5ABcxJ8AWoGagdzSHQIoAlkA6EBggFkBGQFhAB8AWoGagdEAIMBfQN8AWoBfQR8AWoCfQV8AXwCZAY8AHwBoAqhAH0BZAd8AV8LfAGgDHQNag6gD6EAahB8A2QIjQGgEWQJoQGhAaASZAGhAaAToQB9AXQNoAxkCaEBfQZ0DaAUZApkBYQAfAFqFUQAgwGhAX0HfAVkAWsJcvZ8B6AWfAZ8BWsEoQEBAHwEZAFrCXL0fAegFnwGfAR8BRcAawGhAQEAbg58B6AWfAZ8BGsBoQEBAHwAahd8B2YBfAKOAVMAdBhqGWoafAB8AWYCfAKOAVMAZAFTACkLepBMb29rIGZvciBgYExJTUlUYGAgYW5kIE9GRlNFVCBpbiBhIHNlbGVjdCBzdGF0ZW1lbnQsIGFuZCBpZgogICAgICAgIHNvIHRyaWVzIHRvIHdyYXAgaXQgaW4gYSBzdWJxdWVyeSB3aXRoIGBgcm93X251bWJlcigpYGAgY3JpdGVyaW9uLgoKICAgICAgICBO2gxfbXNzcWxfdmlzaXR6TE1TU1FMIHJlcXVpcmVzIGFuIG9yZGVyX2J5IHdoZW4gdXNpbmcgYW4gT0ZGU0VUIG9yIGEgbm9uLXNpbXBsZSBMSU1JVCBjbGF1c2VjAQAAAAAAAAACAAAABQAAAFMAAABzFgAAAGcAfABdDn0BdACgAXwBoQGRAnEEUwByhwAAACkC2ghzcWxfdXRpbFoWdW53cmFwX2xhYmVsX3JlZmVyZW5jZSkCcpsAAADaBGVsZW1yhwAAAHKHAAAAcogAAABynQAAAEsGAABzAgAAAAYBei5NU1NRTENvbXBpbGVyLnZpc2l0X3NlbGVjdC48bG9jYWxzPi48bGlzdGNvbXA+WhBzZWxlY3Rfd3JhcHNfZm9yVCkB2ghvcmRlcl9iedoIbXNzcWxfcm5jAQAAAAAAAAACAAAABAAAAFMAAABzGgAAAGcAfABdEn0BfAFqAGQAawNyBHwBkQJxBFMAKQFyRAEAACkBclQAAAApAnKbAAAActkAAAByhwAAAHKHAAAAcogAAABynQAAAGAGAABzAgAAAAYAKRtyNwEAAFoNX2xpbWl0X2NsYXVzZVoOX29mZnNldF9jbGF1c2VaEl9zaW1wbGVfaW50X29mZnNldHI4AQAActoAAADaEF9vcmRlcl9ieV9jbGF1c2VaB2NsYXVzZXNyBgAAANoMQ29tcGlsZUVycm9yWglfZ2VuZXJhdGVyQAEAAHIxAAAAcggAAADaBGZ1bmNaClJPV19OVU1CRVJyYwAAANoFbGFiZWxyQwEAANoFYWxpYXNybwAAAHLZAAAAWhJhcHBlbmRfd2hlcmVjbGF1c2VylwAAAHINAAAAcjoBAADaDHZpc2l0X3NlbGVjdCkIcoQAAABybwAAAHKqAAAAWhFfb3JkZXJfYnlfY2xhdXNlc3I/AQAAWg1vZmZzZXRfY2xhdXNlckQBAABaC2xpbWl0c2VsZWN0cocAAAByhwAAAHKIAAAAckoBAAA0BgAAcz4AAAAABhACCgEGAQgCDgMIAQQBBgYGAQwDBgEGAQgBCAEGAgQBCgEIAQgCCgQKAQQBEgIIAQ4BCAEEARADDgEOAnoaTVNTUUxDb21waWxlci52aXNpdF9zZWxlY3RGYwQAAAAAAAAABgAAAAQAAAALAAAAc2AAAAB8AnwBawhzDHwDciB0AHQBfACDAmoCfAFmAXwEjgFTAHwAoAN8AaEBfQV8BWQAawlySHwAagR8BWYBZAF8AWkBfASXAo4BUwB0AHQBfACDAmoCfAFmAXwEjgFTAGQAUwApAk7aDW1zc3FsX2FsaWFzZWQpBXKCAAAAch4BAADaC3Zpc2l0X3RhYmxl2hVfc2NoZW1hX2FsaWFzZWRfdGFibGVylwAAACkGcoQAAABycgAAAHJLAQAA2gZpc2NydWRyqgAAAHJJAQAAKQFyhgAAAHKHAAAAcogAAAByTAEAAG4GAABzDAAAAAACDAEUAwoBCAEWAnoZTVNTUUxDb21waWxlci52aXNpdF90YWJsZWMCAAAAAAAAAAMAAAADAAAACwAAAHMeAAAAfAFqAHwCZAE8AHQBdAJ8AIMCagN8AWYBfAKOAVMAKQJOcksBAAApBNoIb3JpZ2luYWxyggAAAHIeAQAA2gt2aXNpdF9hbGlhcykDcoQAAABySQEAAHKFAAAAKQFyhgAAAHKHAAAAcogAAAByUAEAAHoGAABzBAAAAAADCgF6GU1TU1FMQ29tcGlsZXIudmlzaXRfYWxpYXNOYwMAAAAAAAAABgAAAAYAAAALAAAAc5QAAAB8AWoAZABrCXIWfABqAXMWfABqAnIefACgA6EAcnh8AKAEfAFqAKEBfQR8BGQAawlyeHQFoAZ8BHwBoQJ9BXwCZABrCXJkfAJ8AWoHfAFqB3wBfAFqB3wBaghmA3wBagmDBAEAdAp0C3wAgwJqDHwFZgF8A44BUwB0CnQLfACDAmoMfAFmAWQBfAJpAXwDlwKOAVMAKQJO2hFhZGRfdG9fcmVzdWx0X21hcCkNcnIAAAByEwEAAHIUAQAA2gtpc19zdWJxdWVyeXJNAQAAcg4AAABaHl9jb3JyZXNwb25kaW5nX2NvbHVtbl9vcl9lcnJvctoEbmFtZXJUAAAAcpAAAAByggAAAHIeAQAA2gx2aXNpdF9jb2x1bW4pBnKEAAAAcjEAAAByUQEAAHKFAAAA2gF0Wgljb252ZXJ0ZWQpAXKGAAAAcocAAAByiAAAAHJUAQAAgAYAAHMgAAAAAAMKAQwBCAMMAQgBBAEIAggBAgEEAQQBDAEIAxQCCgF6Gk1TU1FMQ29tcGlsZXIudmlzaXRfY29sdW1uYwIAAAAAAAAAAgAAAAQAAABDAAAAczoAAAB0AHwBZAFkAIMDZABrCXIyfAF8AGoBawdyKHwBoAKhAHwAagF8ATwAfABqAXwBGQBTAGQAUwBkAFMAKQJOcgcAAAApA3LaAAAAciIBAABySQEAACkCcoQAAABycgAAAHKHAAAAcocAAAByiAAAAHJNAQAAmwYAAHMKAAAAAAEQAQoBDgEKAnojTVNTUUxDb21waWxlci5fc2NoZW1hX2FsaWFzZWRfdGFibGVjAgAAAAAAAAAEAAAABQAAAEsAAABzKgAAAHwAagCgAXwBagJ8AWoCoQJ9A2QBfAN8AGoDfAFqBGYBfAKOAWYCFgBTACkCTnoQREFURVBBUlQoJXMsICVzKSkF2gtleHRyYWN0X21hcNoDZ2V02gVmaWVsZHKXAAAAcjEBAAApBHKEAAAA2gdleHRyYWN0coUAAAByWAEAAHKHAAAAcocAAAByiAAAANoNdmlzaXRfZXh0cmFjdKMGAABzBAAAAAABEgF6G01TU1FMQ29tcGlsZXIudmlzaXRfZXh0cmFjdGMCAAAAAAAAAAIAAAAEAAAAQwAAAHMQAAAAZAF8AGoAoAF8AaEBFgBTACkCTnoTU0FWRSBUUkFOU0FDVElPTiAlcykC2ghwcmVwYXJlctoQZm9ybWF0X3NhdmVwb2ludCkCcoQAAADaDnNhdmVwb2ludF9zdG10cocAAAByhwAAAHKIAAAA2g92aXNpdF9zYXZlcG9pbnSnBgAAcwQAAAAAAQgBeh1NU1NRTENvbXBpbGVyLnZpc2l0X3NhdmVwb2ludGMCAAAAAAAAAAIAAAAEAAAAQwAAAHMQAAAAZAF8AGoAoAF8AaEBFgBTACkCTnoXUk9MTEJBQ0sgVFJBTlNBQ1RJT04gJXMpAnJbAQAAclwBAAApAnKEAAAAcl0BAAByhwAAAHKHAAAAcogAAADaG3Zpc2l0X3JvbGxiYWNrX3RvX3NhdmVwb2ludKwGAABzBAAAAAABCAF6KU1TU1FMQ29tcGlsZXIudmlzaXRfcm9sbGJhY2tfdG9fc2F2ZXBvaW50YwIAAAAAAAAAAwAAAAYAAAALAAAAc1oAAAB0AHwBagF0AmoDgwJyRnwBagR0BGoFawJyRnQAfAFqBnQCagODAnNGfABqB3QCoAh8AWoGfAFqAXwBagShA2YBfAKOAVMAdAl0CnwAgwJqC3wBZgF8Ao4BUwApAXpdTW92ZSBiaW5kIHBhcmFtZXRlcnMgdG8gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhbiBvcGVyYXRvciwgd2hlcmUKICAgICAgICBwb3NzaWJsZS4KCiAgICAgICAgKQxyngAAAHJWAAAAcg4AAABaDUJpbmRQYXJhbWV0ZXJyLgEAANoCZXFybgAAAHKXAAAAWhBCaW5hcnlFeHByZXNzaW9ucoIAAAByHgEAANoMdmlzaXRfYmluYXJ5KQNyhAAAAHLRAAAAcqoAAAApAXKGAAAAcocAAAByiAAAAHJhAQAAsQYAAHMQAAAAAAYOAQwBDgIEAQQBEAIGAnoaTVNTUUxDb21waWxlci52aXNpdF9iaW5hcnljAwAAAAAAAAAFAAAABAAAAAMAAABzWAAAAIgBagBzDIgBagFyGnwBagKgA2QBoQF9A24MfAFqAqADZAKhAX0DdASgBXwDoQGJAIcAhwFmAmQDZASECHQGoAd8AqEBRACDAX0EZAVkBqAIfAShARcAUwApB05aCGluc2VydGVkWgdkZWxldGVkYwEAAAAAAAAAAgAAAAkAAAATAAAAcyQAAABnAHwAXRx9AYgBoABkAIgAoAF8AaEBZAFkAmkAoQWRAnEEUwApA05URikCWhRfbGFiZWxfc2VsZWN0X2NvbHVtbloIdHJhdmVyc2UpAnKbAAAActkAAAApAtoHYWRhcHRlcnKEAAAAcocAAAByiAAAAHKdAAAAzQYAAHMCAAAABgN6Mk1TU1FMQ29tcGlsZXIucmV0dXJuaW5nX2NsYXVzZS48bG9jYWxzPi48bGlzdGNvbXA+egdPVVRQVVQgegIsICkJcgQBAAByEwEAAHJyAAAAckkBAAByQQEAAFoNQ2xhdXNlQWRhcHRlcnIOAAAAWhFfc2VsZWN0X2l0ZXJhYmxlc3JTAAAAKQVyhAAAANoEc3RtdFoOcmV0dXJuaW5nX2NvbHPaBnRhcmdldNoHY29sdW1uc3KHAAAAKQJyYgEAAHKEAAAAcogAAADaEHJldHVybmluZ19jbGF1c2XDBgAAcw4AAAAAAgwBDgIMAgoDDAMOA3oeTVNTUUxDb21waWxlci5yZXR1cm5pbmdfY2xhdXNlYwIAAAAAAAAAAgAAAAEAAABDAAAAcwQAAABkAVMAKQJOWgRXSVRIcocAAAApAnKEAAAA2glyZWN1cnNpdmVyhwAAAHKHAAAAcogAAADaEGdldF9jdGVfcHJlYW1ibGXVBgAAcwIAAAAABXoeTVNTUUxDb21waWxlci5nZXRfY3RlX3ByZWFtYmxlYwQAAAAAAAAABAAAAAUAAAADAAAAcy4AAAB0AHwCdAFqAoMCchZ8AqADZAChAVMAdAR0BXwAgwKgBnwBfAJ8A6EDUwBkAFMAKQFOKQdyngAAAHIOAAAAWghGdW5jdGlvbnJIAQAAcoIAAAByHgEAANoTbGFiZWxfc2VsZWN0X2NvbHVtbikEcoQAAABybwAAAHIxAAAA2gZhc2Zyb20pAXKGAAAAcocAAAByiAAAAHJpAQAA3AYAAHMIAAAAAAEMAQoCCgF6IU1TU1FMQ29tcGlsZXIubGFiZWxfc2VsZWN0X2NvbHVtbmMCAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAFTACkCTnI2AQAAcocAAAApAnKEAAAAcm8AAAByhwAAAHKHAAAAcogAAADaEWZvcl91cGRhdGVfY2xhdXNl5AYAAHMCAAAAAAN6H01TU1FMQ29tcGlsZXIuZm9yX3VwZGF0ZV9jbGF1c2VjAgAAAAAAAAAEAAAAAwAAAEsAAABzNgAAAHwAoAChAHISfAFqAXMSZAFTAHwAagJ8AWoDZgF8Ao4BfQN8A3IuZAJ8AxcAUwBkAVMAZABTACkDTnI2AQAAegogT1JERVIgQlkgKQRyUgEAAHI5AQAAcpcAAAByRQEAACkEcoQAAABybwAAAHKFAAAAckMBAAByhwAAAHKHAAAAcogAAADaD29yZGVyX2J5X2NsYXVzZekGAABzDAAAAAACDgQEAhACBAEIAnodTVNTUUxDb21waWxlci5vcmRlcl9ieV9jbGF1c2VjBQAAAAAAAAAGAAAABgAAAAsAAABzJgAAAGQBZAKgAIcAhwGHAmYDZANkBIQIfAJnAXwDFwBEAIMBoQEXAFMAKQVhGQEAAFJlbmRlciB0aGUgVVBEQVRFLi5GUk9NIGNsYXVzZSBzcGVjaWZpYyB0byBNU1NRTC4KCiAgICAgICAgSW4gTVNTUUwsIGlmIHRoZSBVUERBVEUgc3RhdGVtZW50IGludm9sdmVzIGFuIGFsaWFzIG9mIHRoZSB0YWJsZSB0bwogICAgICAgIGJlIHVwZGF0ZWQsIHRoZW4gdGhlIHRhYmxlIGl0c2VsZiBtdXN0IGJlIGFkZGVkIHRvIHRoZSBGUk9NIGxpc3QgYXMKICAgICAgICB3ZWxsLiBPdGhlcndpc2UsIGl0IGlzIG9wdGlvbmFsLiBIZXJlLCB3ZSBhZGQgaXQgcmVnYXJkbGVzcy4KCiAgICAgICAgegVGUk9NIHoCLCBjAQAAAAAAAAACAAAABgAAADMAAABzJgAAAHwAXR59AXwBagCIAmYBZACIAGQBnAKIAZcCjgFWAAEAcQJkAlMAKQNUKQJyagEAANoJZnJvbWhpbnRzTikB2hJfY29tcGlsZXJfZGlzcGF0Y2gpAnKbAAAAclUBAAApA9oKZnJvbV9oaW50c3KFAAAAcoQAAAByhwAAAHKIAAAA+gk8Z2VuZXhwcj4DBwAAcwIAAAAEAXozTVNTUUxDb21waWxlci51cGRhdGVfZnJvbV9jbGF1c2UuPGxvY2Fscz4uPGdlbmV4cHI+KQFyUwAAACkGcoQAAABaC3VwZGF0ZV9zdG102gpmcm9tX3RhYmxl2gtleHRyYV9mcm9tc3JvAQAAcoUAAAByhwAAACkDcm8BAAByhQAAAHKEAAAAcogAAADaEnVwZGF0ZV9mcm9tX2NsYXVzZfgGAABzBgAAAAAKBgEOAXogTVNTUUxDb21waWxlci51cGRhdGVfZnJvbV9jbGF1c2VjBAAAAAAAAAAFAAAABgAAAEMAAABzHgAAAGQBfQR8A3IMZAJ9BHwCagB8AGQCZAJ8BGQDjQRTACkEej1JZiB3ZSBoYXZlIGV4dHJhIGZyb21zIG1ha2Ugc3VyZSB3ZSByZW5kZXIgYW55IGFsaWFzIGFzIGhpbnQuRlQpA3JqAQAAck4BAADaBmFzaGludCkBcm4BAAApBXKEAAAA2gtkZWxldGVfc3RtdHJxAQAAcnIBAABydAEAAHKHAAAAcocAAAByiAAAANoTZGVsZXRlX3RhYmxlX2NsYXVzZQcHAABzCgAAAAACBAEEAQQBBAF6IU1TU1FMQ29tcGlsZXIuZGVsZXRlX3RhYmxlX2NsYXVzZWMFAAAAAAAAAAYAAAAGAAAACwAAAHMmAAAAZAFkAqAAhwCHAYcCZgNkA2QEhAh8AmcBfAMXAEQAgwGhARcAUwApBXpqUmVuZGVyIHRoZSBERUxFVEUgLi4gRlJPTSBjbGF1c2Ugc3BlY2lmaWMgdG8gTVNTUUwuCgogICAgICAgIFllcywgaXQgaGFzIHRoZSBGUk9NIGtleXdvcmQgdHdpY2UuCgogICAgICAgIHoFRlJPTSB6AiwgYwEAAAAAAAAAAgAAAAYAAAAzAAAAcyYAAAB8AF0efQF8AWoAiAJmAWQAiABkAZwCiAGXAo4BVgABAHECZAJTACkDVCkCcmoBAABybQEAAE4pAXJuAQAAKQJymwAAAHJVAQAAKQNybwEAAHKFAAAAcoQAAAByhwAAAHKIAAAAcnABAAAZBwAAcwIAAAAEAXo5TVNTUUxDb21waWxlci5kZWxldGVfZXh0cmFfZnJvbV9jbGF1c2UuPGxvY2Fscz4uPGdlbmV4cHI+KQFyUwAAACkGcoQAAABydQEAAHJxAQAAcnIBAABybwEAAHKFAAAAcocAAAApA3JvAQAAcoUAAAByhAAAAHKIAAAA2hhkZWxldGVfZXh0cmFfZnJvbV9jbGF1c2UQBwAAcwYAAAAACAYBDgF6Jk1TU1FMQ29tcGlsZXIuZGVsZXRlX2V4dHJhX2Zyb21fY2xhdXNlYwIAAAAAAAAAAgAAAAEAAABDAAAAcwQAAABkAVMAKQJOehNTRUxFQ1QgMSBXSEVSRSAxIT0xcocAAAApAnKEAAAActwAAAByhwAAAHKHAAAAcogAAADaFHZpc2l0X2VtcHR5X3NldF9leHByHQcAAHMCAAAAAAF6Ik1TU1FMQ29tcGlsZXIudmlzaXRfZW1wdHlfc2V0X2V4cHIpAkZGKQFOKSpyiQAAAHKKAAAAcosAAABaGXJldHVybmluZ19wcmVjZWRlc192YWx1ZXNyCgAAAFoLdXBkYXRlX2NvcHlyDQAAAHI6AQAAclYBAABygwAAAHIoAQAAcikBAAByKgEAAHIsAQAAci0BAAByLwEAAHIyAQAAcjQBAAByNQEAAHI7AQAAcj0BAAByPgEAAHI/AQAAckoBAAByTAEAAHJQAQAAclQBAAByTQEAAHJaAQAAcl4BAAByXwEAAHJhAQAAcmYBAAByaAEAAHJpAQAAcmsBAABybAEAAHJzAQAAcnYBAABydwEAAHJ4AQAAco0AAAByhwAAAHKHAAAAKQFyhgAAAHKIAAAAch4BAADdBQAAc1IAAAAIAQQCBAEGAgIBAgECAQoEDAQMCggDCAMIAwgDCAYIAwgDCAYIFAgDCAMIBAg6AgEQCxAGAgEQGggICAQIBQgFDBIIEggHDAgIBQgPCA8ICQgNch4BAABjAAAAAAAAAAAAAAAAAwAAAAAAAABzNAAAAGUAWgFkAFoCZAFaA2QCWgRkA2QEhABaBWQFZAaEAFoGhwBmAWQHZAiECFoHhwAEAFoIUwApCdoTTVNTUUxTdHJpY3RDb21waWxlcnrLQSBzdWJjbGFzcyBvZiBNU1NRTENvbXBpbGVyIHdoaWNoIGRpc2FibGVzIHRoZSB1c2FnZSBvZiBiaW5kCiAgICBwYXJhbWV0ZXJzIHdoZXJlIG5vdCBhbGxvd2VkIG5hdGl2ZWx5IGJ5IE1TLVNRTC4KCiAgICBBIGRpYWxlY3QgbWF5IHVzZSB0aGlzIGNvbXBpbGVyIG9uIGEgcGxhdGZvcm0gd2hlcmUgbmF0aXZlCiAgICBiaW5kcyBhcmUgdXNlZC4KCiAgICBUYwMAAAAAAAAABAAAAAUAAABLAAAAcywAAABkAXwDZAI8AGQDfABqAHwBagFmAXwDjgF8AGoAfAFqAmYBfAOOAWYCFgBTACkETlTaDWxpdGVyYWxfYmluZHN6CCVzIElOICVzKQNylwAAAHJWAAAAcm4AAAApBHKEAAAActEAAAByLgEAAHKFAAAAcocAAAByhwAAAHKIAAAA2hJ2aXNpdF9pbl9vcF9iaW5hcnktBwAAcwgAAAAAAQgBAgEOAXomTVNTUUxTdHJpY3RDb21waWxlci52aXNpdF9pbl9vcF9iaW5hcnljAwAAAAAAAAAEAAAABQAAAEsAAABzLAAAAGQBfANkAjwAZAN8AGoAfAFqAWYBfAOOAXwAagB8AWoCZgF8A44BZgIWAFMAKQROVHJ6AQAAegwlcyBOT1QgSU4gJXMpA3KXAAAAclYAAABybgAAACkEcoQAAABy0QAAAHIuAQAAcoUAAAByhwAAAHKHAAAAcogAAADaFXZpc2l0X25vdGluX29wX2JpbmFyeTQHAABzCAAAAAABCAECAQ4BeilNU1NRTFN0cmljdENvbXBpbGVyLnZpc2l0X25vdGluX29wX2JpbmFyeWMDAAAAAAAAAAMAAAAEAAAAAwAAAHM2AAAAdAB0AXwBgwF0AmoDgwJyIGQBdAR8AYMBFwBkARcAUwB0BXQGfACDAqAHfAF8AqECUwBkAlMAKQNhNQEAAAogICAgICAgIEZvciBkYXRlIGFuZCBkYXRldGltZSB2YWx1ZXMsIGNvbnZlcnQgdG8gYSBzdHJpbmcKICAgICAgICBmb3JtYXQgYWNjZXB0YWJsZSB0byBNU1NRTC4gVGhhdCBzZWVtcyB0byBiZSB0aGUKICAgICAgICBzby1jYWxsZWQgT0RCQyBjYW5vbmljYWwgZGF0ZSBmb3JtYXQgd2hpY2ggbG9va3MKICAgICAgICBsaWtlIHRoaXM6CgogICAgICAgICAgICB5eXl5LW1tLWRkIGhoOm1pOnNzLm1tbSgyNGgpCgogICAgICAgIEZvciBvdGhlciBkYXRhIHR5cGVzLCBjYWxsIHRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uLgogICAgICAgIHK0AAAATikI2gppc3N1YmNsYXNzcpAAAABykQAAAHKSAAAA2gNzdHJyggAAAHJ5AQAA2hRyZW5kZXJfbGl0ZXJhbF92YWx1ZSkDcoQAAABylgAAAHLcAAAAKQFyhgAAAHKHAAAAcogAAAByfwEAADsHAABzCAAAAAAMEAIQAgoBeihNU1NRTFN0cmljdENvbXBpbGVyLnJlbmRlcl9saXRlcmFsX3ZhbHVlKQlyiQAAAHKKAAAAcosAAABywgAAAFoPYW5zaV9iaW5kX3J1bGVzcnsBAAByfAEAAHJ/AQAAco0AAAByhwAAAHKHAAAAKQFyhgAAAHKIAAAAcnkBAAAhBwAAcwoAAAAICAQCBAIIBwgHcnkBAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzNgAAAGUAWgFkAFoCZAFkAoQAWgNkDWQEZAWEAVoEZAZkB4QAWgVkCGQJhABaBmQKZAuEAFoHZAxTACkO2g1NU0RETENvbXBpbGVyYwIAAAAAAAAABwAAAAUAAABLAAAAc1gBAAB8AGoAoAF8AaEBZAEXAHwAagJqA2oEfAFqBXwBZAKNAhcAfQN8AWoGZABrCXJkfAFqBnJSfAFqB3NSdAh8AWoJdApqC4MCc1J8AWoMZANrCHJcfANkBDcAfQNuCHwDZAU3AH0DfAFqDWQAawhyeHQOoA9kBqEBggF0CHwBagl0CmoLgwJy7HwBaglqEGQAawlzqnwBaglqEWQAawlzqnwBfAFqDWoSawlytHQToBRkB6EBAQB8AWoJahBkCGsCcsZkCH0Ebgx8AWoJahBw0GQJfQR8A2QKfAR8AWoJahFw4mQJZgIWADcAfQNuaHwBfAFqDWoSawiQAXMGfAFqDGQDawiQAXI0fAFqFWQLGQBkDBkAfQR8AWoVZAsZAGQNGQB9BXwDZAp8BHwFZgIWADcAfQNuIHwAoBZ8AaEBfQZ8BmQAawmQAXJUfANkDnwGFwA3AH0DfANTACkPTnLYAAAAKQFaD3R5cGVfZXhwcmVzc2lvblR6CSBOT1QgTlVMTHoFIE5VTEx6O21zc3FsIHJlcXVpcmVzIFRhYmxlLWJvdW5kIGNvbHVtbnMgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgRERMYQ0BAABVc2Ugb2YgU2VxdWVuY2Ugd2l0aCBTUUwgU2VydmVyIGluIG9yZGVyIHRvIGFmZmVjdCB0aGUgcGFyYW1ldGVycyBvZiB0aGUgSURFTlRJVFkgdmFsdWUgaXMgZGVwcmVjYXRlZCwgYXMgU2VxdWVuY2Ugd2lsbCBjb3JyZXNwb25kIHRvIGFuIGFjdHVhbCBTUUwgU2VydmVyIENSRUFURSBTRVFVRU5DRSBpbiBhIGZ1dHVyZSByZWxlYXNlLiAgUGxlYXNlIHVzZSB0aGUgbXNzcWxfaWRlbnRpdHlfc3RhcnQgYW5kIG1zc3FsX2lkZW50aXR5X2luY3JlbWVudCBwYXJhbWV0ZXJzLnIBAAAAcgIAAAB6ECBJREVOVElUWSglcywlcynaBW1zc3Fs2g5pZGVudGl0eV9zdGFydNoSaWRlbnRpdHlfaW5jcmVtZW50egkgREVGQVVMVCApF3JbAQAAWg1mb3JtYXRfY29sdW1ucpgAAADaDXR5cGVfY29tcGlsZXJylwAAAHKQAAAA2ghudWxsYWJsZVoLcHJpbWFyeV9rZXlyngAAAHILAAAA2glzYV9zY2hlbWHaCFNlcXVlbmNl2g1hdXRvaW5jcmVtZW50cnIAAAByBgAAAHJGAQAA2gVzdGFydNoJaW5jcmVtZW50cgYBAAByCgAAANoPd2Fybl9kZXByZWNhdGVk2g9kaWFsZWN0X29wdGlvbnNaGWdldF9jb2x1bW5fZGVmYXVsdF9zdHJpbmcpB3KEAAAAcjEAAAByqgAAAFoHY29sc3BlY3KJAQAAcooBAAByCwAAAHKHAAAAcocAAAByiAAAANoYZ2V0X2NvbHVtbl9zcGVjaWZpY2F0aW9uUQcAAHNCAAAAAAQWAQ4ECgIGAQYBDgEKAgoCCAIKAQQBBgYOAwwBDAEMAgQBBggMAQYCDAIEAQIBFAMOAQwCDgEOARICCgEKAQwCeiZNU0RETENvbXBpbGVyLmdldF9jb2x1bW5fc3BlY2lmaWNhdGlvbkZjAwAAAAAAAAAIAAAACQAAAAMAAABzEgEAAHwBagCJAIgCoAGIAKEBAQCIAmoCiQFkAX0DiABqA3IofANkAjcAfQOIAGoEZAMZAGQEGQB9BHwEZABrCXJUfARyTHwDZAU3AH0Dbgh8A2QGNwB9A3wDZAeIAmoFiAB8AmQIjQKIAaAGiABqB6EBZAmgCIcCZgFkCmQLhAiIAGoJRACDAaEBZgMWADcAfQOIAGoEZAMZAGQMGQB9BXwFZABrCXLCiAJqCmoLfAVkDWQOZA+NA30GfANkEHwGFwA3AH0DiABqBGQDGQBkERkAkAFyDocAZgFkEmQThAiIAGoEZAMZAGQRGQBEAIMBfQd8A2QUZAmgCIcBZgFkFWQThAh8B0QAgwGhARYANwB9A3wDUwApFk56B0NSRUFURSB6B1VOSVFVRSBygQEAAHIvAAAAegpDTFVTVEVSRUQgeg1OT05DTFVTVEVSRUQgehNJTkRFWCAlcyBPTiAlcyAoJXMpKQHaDmluY2x1ZGVfc2NoZW1hegIsIGMBAAAAAAAAAAIAAAAGAAAAMwAAAHMgAAAAfABdGH0BiABqAGoBfAFkAGQBZAKNA1YAAQBxAmQDUwApBEZUKQLaDWluY2x1ZGVfdGFibGVyegEAAE4pAtoMc3FsX2NvbXBpbGVycpcAAAApAnKbAAAAcjEBAAApAXKEAAAAcocAAAByiAAAAHJwAQAAqAcAAHMCAAAABAN6M01TRERMQ29tcGlsZXIudmlzaXRfY3JlYXRlX2luZGV4Ljxsb2NhbHM+LjxnZW5leHByPnJ8AAAARlQpAnKPAQAAcnoBAAB6ByBXSEVSRSDaB2luY2x1ZGVjAQAAAAAAAAACAAAABQAAABMAAABzKAAAAGcAfABdIH0BdAB8AXQBagKDAnIgiABqA2oEfAEZAG4CfAGRAnEEUwByhwAAACkFcp4AAAByCgAAAHKfAAAAcnIAAABy2QAAACkCcpsAAADaA2NvbCkBck8AAAByhwAAAHKIAAAAcp0AAAC6BwAAcwIAAAAGA3o0TVNERExDb21waWxlci52aXNpdF9jcmVhdGVfaW5kZXguPGxvY2Fscz4uPGxpc3Rjb21wPnoNIElOQ0xVREUgKCVzKWMBAAAAAAAAAAIAAAAFAAAAEwAAAHMYAAAAZwB8AF0QfQGIAKAAfAFqAaEBkQJxBFMAcocAAAApAtoFcXVvdGVyUwEAACkCcpsAAABy2QAAACkBclsBAAByhwAAAHKIAAAAcp0AAADBBwAAcwIAAAAGACkM2gdlbGVtZW50WhNfdmVyaWZ5X2luZGV4X3RhYmxlclsBAABydwAAAHKMAQAA2hRfcHJlcGFyZWRfaW5kZXhfbmFtZXIOAQAAcnIAAAByUwAAAFoLZXhwcmVzc2lvbnNykAEAAHKXAAAAKQhyhAAAAHI3AAAAco4BAAByzwAAAHIvAAAA2gt3aGVyZWNsYXVzZVoOd2hlcmVfY29tcGlsZWRaCmluY2x1c2lvbnNyhwAAACkDck8AAAByWwEAAHKEAAAAcogAAADaEnZpc2l0X2NyZWF0ZV9pbmRleJQHAABzOAAAAAABBgEKAQYBBAEGAQgDDgEIAQQBCgIIAgQBDAEKAQQBCgMSBA4CCAEGAQwCDAMQAgoDEgMIARgDeiBNU0RETENvbXBpbGVyLnZpc2l0X2NyZWF0ZV9pbmRleGMCAAAAAAAAAAIAAAAFAAAAQwAAAHMkAAAAZAF8AGoAfAFqAWQCZAONAnwAagKgA3wBagFqBKEBZgIWAFMAKQROehQKRFJPUCBJTkRFWCAlcyBPTiAlc0YpAXKOAQAAKQVylQEAAHKUAQAAclsBAAByDgEAAHJyAAAAKQJyhAAAAHI8AAAAcocAAAByhwAAAHKIAAAA2hB2aXNpdF9kcm9wX2luZGV4xgcAAHMGAAAAAAECAQ4Beh5NU0RETENvbXBpbGVyLnZpc2l0X2Ryb3BfaW5kZXhjAgAAAAAAAAAEAAAABwAAAAMAAABzmAAAAHQAfAGDAWQBawJyEGQCUwBkAn0CfAFqAWQAawlyMnwCZAOIAGoCoAN8AaEBFgA3AH0CfAJkBDcAfQJ8AWoEZAUZAGQGGQB9A3wDZABrCXJmfANyXnwCZAc3AH0Cbgh8AmQINwB9AnwCZAlkCqAFhwBmAWQLZAyECHwBRACDAaEBFgA3AH0CfAKIAKAGfAGhATcAfQJ8AlMAKQ1OcgEAAAByNgEAAHoOQ09OU1RSQUlOVCAlcyB6DFBSSU1BUlkgS0VZIHKBAQAAci8AAAB6CkNMVVNURVJFRCB6DU5PTkNMVVNURVJFRCB6BCglcyl6AiwgYwEAAAAAAAAAAgAAAAQAAAAzAAAAcxwAAAB8AF0UfQGIAGoAoAF8AWoCoQFWAAEAcQJkAFMAKQFOKQNyWwEAAHKTAQAAclMBAAApAnKbAAAActkAAAApAXKEAAAAcocAAAByiAAAAHJwAQAA3gcAAHMCAAAABAB6PU1TRERMQ29tcGlsZXIudmlzaXRfcHJpbWFyeV9rZXlfY29uc3RyYWludC48bG9jYWxzPi48Z2VuZXhwcj4pB9oDbGVuclMBAAByWwEAANoRZm9ybWF0X2NvbnN0cmFpbnRyjAEAAHJTAAAA2h9kZWZpbmVfY29uc3RyYWludF9kZWZlcnJhYmlsaXR5KQRyhAAAAHIzAAAAcs8AAAByLwAAAHKHAAAAKQFyhAAAAHKIAAAA2hx2aXNpdF9wcmltYXJ5X2tleV9jb25zdHJhaW50zAcAAHMgAAAAAAEMAQQBBAEKAQoBCgIIAg4BCAEEAQoCCAIIARgCDgF6Kk1TRERMQ29tcGlsZXIudmlzaXRfcHJpbWFyeV9rZXlfY29uc3RyYWludGMCAAAAAAAAAAQAAAAHAAAAAwAAAHOYAAAAdAB8AYMBZAFrAnIQZAJTAGQCfQJ8AWoBZABrCXIyfAJkA4gAagKgA3wBoQEWADcAfQJ8AmQENwB9AnwBagRkBRkAZAYZAH0DfANkAGsJcmZ8A3JefAJkBzcAfQJuCHwCZAg3AH0CfAJkCWQKoAWHAGYBZAtkDIQIfAFEAIMBoQEWADcAfQJ8AogAoAZ8AaEBNwB9AnwCUwApDU5yAQAAAHI2AQAAeg5DT05TVFJBSU5UICVzIHoHVU5JUVVFIHKBAQAAci8AAAB6CkNMVVNURVJFRCB6DU5PTkNMVVNURVJFRCB6BCglcyl6AiwgYwEAAAAAAAAAAgAAAAQAAAAzAAAAcxwAAAB8AF0UfQGIAGoAoAF8AWoCoQFWAAEAcQJkAFMAKQFOKQNyWwEAAHKTAQAAclMBAAApAnKbAAAActkAAAApAXKEAAAAcocAAAByiAAAAHJwAQAA9QcAAHMCAAAABAB6OE1TRERMQ29tcGlsZXIudmlzaXRfdW5pcXVlX2NvbnN0cmFpbnQuPGxvY2Fscz4uPGdlbmV4cHI+KQdymQEAAHJTAQAAclsBAABymgEAAHKMAQAAclMAAABymwEAACkEcoQAAAByMwAAAHLPAAAAci8AAAByhwAAACkBcoQAAAByiAAAANoXdmlzaXRfdW5pcXVlX2NvbnN0cmFpbnTjBwAAcyAAAAAAAQwBBAEEAQoBCgEKAggCDgEIAQQBCgIIAggBGAIOAXolTVNERExDb21waWxlci52aXNpdF91bmlxdWVfY29uc3RyYWludE4pAUYpCHKJAAAAcooAAAByiwAAAHKNAQAAcpcBAABymAEAAHKcAQAAcp0BAAByhwAAAHKHAAAAcocAAAByiAAAAHKAAQAAUAcAAHMKAAAACAEIQwoyCAYIF3KAAQAAYwAAAAAAAAAAAAAAAAMAAAAAAAAAczIAAABlAFoBZABaAmUDWgSHAGYBZAFkAoQIWgVkA2QEhABaBmQIZAZkB4QBWgeHAAQAWghTACkJ2hRNU0lkZW50aWZpZXJQcmVwYXJlcmMCAAAAAAAAAAIAAAAGAAAAAwAAAHMcAAAAdAB0AXwAgwJqAnwBZAFkAmQDZASNBAEAZABTACkFTvoBW/oBXUYpA1oNaW5pdGlhbF9xdW90ZVoLZmluYWxfcXVvdGVaH3F1b3RlX2Nhc2Vfc2Vuc2l0aXZlX2NvbGxhdGlvbnMpA3KCAAAAcp4BAABygwAAACkCcoQAAABymAAAACkBcoYAAAByhwAAAHKIAAAAcoMAAAD+BwAAcwoAAAAAAQoBAgECAQIBeh1NU0lkZW50aWZpZXJQcmVwYXJlci5fX2luaXRfX2MCAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAfAFTACkBTnKHAAAAKQJyhAAAAHKWAAAAcocAAAByhwAAAHKIAAAA2hJfZXNjYXBlX2lkZW50aWZpZXIGCAAAcwIAAAAAAXonTVNJZGVudGlmaWVyUHJlcGFyZXIuX2VzY2FwZV9pZGVudGlmaWVyTmMDAAAAAAAAAAYAAAAFAAAAQwAAAHNUAAAAfAJkAWsJchJ0AKABZAKhAQEAdAJ8AYMBXAJ9A30EfANyPGQDfACgA3wDoQF8AKADfAShAWYCFgB9BW4UfARyTHwAoAN8BKEBfQVuBGQEfQV8BVMAKQV6J1ByZXBhcmUgYSBxdW90ZWQgdGFibGUgYW5kIHNjaGVtYSBuYW1lLk562lRoZSBJZGVudGlmaWVyUHJlcGFyZXIucXVvdGVfc2NoZW1hLmZvcmNlIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gIFRoaXMgZmxhZyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBiZWhhdmlvciBvZiB0aGUgSWRlbnRpZmllclByZXBhcmVyLnF1b3RlIG1ldGhvZDsgcGxlYXNlIHJlZmVyIHRvIHF1b3RlZF9uYW1lKCkuegUlcy4lc3I2AQAAKQRyCgAAAHKLAQAA2hBfc2NoZW1hX2VsZW1lbnRzcpMBAAApBnKEAAAAcgcAAADaBWZvcmNl2gZkYm5hbWXaBW93bmVy2gZyZXN1bHRyhwAAAHKHAAAAcogAAADaDHF1b3RlX3NjaGVtYQkIAABzFAAAAAAECAQEAQYHDAEEARoBBAEMAgQBeiFNU0lkZW50aWZpZXJQcmVwYXJlci5xdW90ZV9zY2hlbWEpAU4pCXKJAAAAcooAAAByiwAAANoOUkVTRVJWRURfV09SRFNaDnJlc2VydmVkX3dvcmRzcoMAAAByoQEAAHKnAQAAco0AAAByhwAAAHKHAAAAKQFyhgAAAHKIAAAAcp4BAAD7BwAAcwgAAAAIAQQCDAgIA3KeAQAAYwEAAAAAAAAAAgAAAAQAAAADAAAAcxgAAABkA4cAZgFkAWQChAl9AXQAfAGIAIMCUwApBE5jAwAAAAAAAAAGAAAACQAAABsAAABzKAAAAHQAfAB8AoMCXAJ9BH0FdAF8BHwBiAB8AHwBfAR8BXwCZgh8A44BUwApAU4pAtoOX293bmVyX3BsdXNfZGLaCl9zd2l0Y2hfZGIpBnKYAAAA2gpjb25uZWN0aW9ucgcAAAByhQAAAHKkAQAAcqUBAAApAXImAQAAcocAAAByiAAAANoEd3JhcCQIAABzFgAAAAABDgECAQIBAgECAQIBAgECAQIBBAF6JF9kYl9wbHVzX293bmVyX2xpc3RpbmcuPGxvY2Fscz4ud3JhcCkBTikBch4AAAApAnImAQAAcqwBAAByhwAAACkBciYBAAByiAAAANoWX2RiX3BsdXNfb3duZXJfbGlzdGluZyMIAABzBAAAAAABDg5yrQEAAGMBAAAAAAAAAAIAAAAEAAAAAwAAAHMYAAAAZAOHAGYBZAFkAoQJfQF0AHwBiACDAlMAKQROYwQAAAAAAAAABwAAAAoAAAAbAAAAcyoAAAB0AHwAfAODAlwCfQV9BnQBfAV8AYgAfAB8AXwCfAV8BnwDZgl8BI4BUwApAU4pAnKpAQAAcqoBAAApB3KYAAAAcqsBAADaCXRhYmxlbmFtZXIHAAAAcoUAAABypAEAAHKlAQAAKQFyJgEAAHKHAAAAcogAAAByrAEAADYIAABzGAAAAAABDgECAQIBAgECAQIBAgECAQIBAgEEAXocX2RiX3BsdXNfb3duZXIuPGxvY2Fscz4ud3JhcCkBTikBch4AAAApAnImAQAAcqwBAAByhwAAACkBciYBAAByiAAAANoOX2RiX3BsdXNfb3duZXI1CAAAcwQAAAAAAQ4Pcq8BAABjAwAAAAAAAAAGAAAACgAAAE8AAABzQAAAAHwAchx8AaAAZAGhAX0FfAGgAWQCfAAWAKEBAQB6CnwCfAN8BI4BUwB8AHI6fAGgAWQCfAUWAKEBAQBYAGQAUwApA056EHNlbGVjdCBkYl9uYW1lKCl6BnVzZSAlcykC2gZzY2FsYXJyQwAAACkGcqQBAAByqwEAAHImAQAAciUBAAByhQAAAFoKY3VycmVudF9kYnKHAAAAcocAAAByiAAAAHKqAQAASAgAAHMOAAAAAAEEAQoBDgECAQoCBAFyqgEAAGMCAAAAAAAAAAIAAAACAAAAQwAAAHMqAAAAfAFzDmQAfABqAGYCUwBkAXwBawZyHnQBfAGDAVMAZAB8AWYCUwBkAFMAKQJO2gEuKQLaE2RlZmF1bHRfc2NoZW1hX25hbWVyogEAACkCcpgAAAByBwAAAHKHAAAAcocAAAByiAAAAHKpAQAAUwgAAHMKAAAAAAEEAQoBCAEIAnKpAQAAYwEAAAAAAAAABQAAAAYAAABDAAAAc9AAAAB0AHwAdAGDAnIYfABqAnIYZAB8AGYCUwBnAH0BZAF9AmQCfQN4WnQDoARkA3wAoQJEAF1KfQR8BHM8cTJ8BGQEawJySmQFfQNxMnwEZAZrAnJYZAJ9A3EyfANzdHwEZAdrAnJ0fAGgBXwCoQEBAGQBfQJxMnwCfAQ3AH0CcTJXAHwCco58AaAFfAKhAQEAdAZ8AYMBZAhrBHK0fAFkCRkAZAGgB3wBZAhkAIUCGQChAWYCUwB0BnwBgwFyyGQAfAFkCRkAZgJTAGQKUwBkAFMAKQtOcjYBAABGegooXFt8XF18XC4pcp8BAABUcqABAABysQEAAHICAAAAcgEAAAApAk5OKQhyngAAAHIPAAAAcpMBAABypwAAANoFc3BsaXTaBmFwcGVuZHKZAQAAclMAAAApBXIHAAAA2gRwdXNo2gZzeW1ib2xaB2JyYWNrZXTaBXRva2VucocAAAByhwAAAHKIAAAAcqIBAABcCAAAcy4AAAAAARABCAIEAQQBBAESAQQBAgEIAQYBCAEGAQwBCgEGAgwBBAEKAQwBGgEIAQwCcqIBAABjAAAAAAAAAAAAAAAACgAAAAAAAABzxgEAAGUAWgFkAFoCZAFaA2QCWgRkA1oFZQZaB2QCWghkBFoJZAVaCmULagxlDWULag5lD2ULahBlEWULahJlE2ULahRlFWkFWhZlF2oYahmgGmQGZRtqHGYCZwGhAVoZZR1aHWQDWh5kA1ofZAJaIGQCWiFkB1oiZSNaJGUlWiZlJ1ooZSlaKmUraixkCGQJaQFmAmUrai1kCGQJaQFmAmUrai5kCWQJZAlkCpwDZgJlK2ovZAtkC2QMnAJmAmcEWjBkNocAZgFkDWQOhAlaMYcAZgFkD2QQhAhaMmQRZBKEAFozZTRkE2QUZBVkFmQXZwWDAVo1ZBhkGYQAWjZkGmQbhABaN4cAZgFkHGQdhAhaOGQeZB+EAFo5ZCBkIYQAWjpkImQjhABaO2U8ZCRkJYQAgwFaPWU+aj9kJmQnhACDAVpAZT5qP2VBZChkKYQAgwGDAVpCZT5qP2VBZCpkK4QAgwGDAVpDZT5qP2U8ZCxkLYQAgwGDAVpEZT5qP2U8ZC5kL4QAgwGDAVpFZT5qP2U8ZDBkMYQAgwGDAVpGZT5qP2U8ZDJkM4QAgwGDAVpHZT5qP2U8ZDRkNYQAgwGDAVpIhwAEAFpJUwApN9oJTVNEaWFsZWN0coEBAABURumAAAAA2gNkYm9yJAEAAHKHAAAAci8AAABOKQNyLwAAAHKRAQAAcnwAAAByAgAAACkCcoIBAABygwEAAGMIAAAAAAAAAAkAAAADAAAACwAAAHNWAAAAdAB8AXAIZAGDAXwAXwF8BHwAXwJ8AnwAXwN0AHwDcCJkAYMBcCp8AGoEfABfBHwGfABfBXwHfABfBnQHdAh8AIMCaglmAHwIjgEBAHwFfABfCmQAUwApAk5yAQAAACkLcpoAAADaDXF1ZXJ5X3RpbWVvdXTaC3NjaGVtYV9uYW1lchABAADaFW1heF9pZGVudGlmaWVyX2xlbmd0aHLoAAAAciQBAAByggAAAHK4AQAAcoMAAADaD2lzb2xhdGlvbl9sZXZlbCkJcoQAAAByuwEAAHIQAQAAcr0BAAByvAEAAHK+AQAAcugAAAByJAEAANoEb3B0cykBcoYAAAByhwAAAHKIAAAAcoMAAACjCAAAcxAAAAAACw4BBgIGAhQCBgEGAhICehJNU0RpYWxlY3QuX19pbml0X19jAwAAAAAAAAADAAAABAAAAAMAAABzIAAAAHwBoABkAaEBAQB0AXQCfACDAqADfAF8AqECAQBkAFMAKQJOeiRJRiBAQFRSQU5DT1VOVCA9IDAgQkVHSU4gVFJBTlNBQ1RJT04pBHJDAAAAcoIAAAByuAEAANoMZG9fc2F2ZXBvaW50KQNyhAAAAHKrAQAAclMBAAApAXKGAAAAcocAAAByiAAAAHLAAQAAvAgAAHMEAAAAAAIKAXoWTVNEaWFsZWN0LmRvX3NhdmVwb2ludGMDAAAAAAAAAAMAAAABAAAAQwAAAHMEAAAAZABTACkBTnKHAAAAKQNyhAAAAHKrAQAAclMBAAByhwAAAHKHAAAAcogAAADaFGRvX3JlbGVhc2Vfc2F2ZXBvaW50wQgAAHMCAAAAAAJ6Hk1TRGlhbGVjdC5kb19yZWxlYXNlX3NhdmVwb2ludFoMU0VSSUFMSVpBQkxFehBSRUFEIFVOQ09NTUlUVEVEeg5SRUFEIENPTU1JVFRFRHoPUkVQRUFUQUJMRSBSRUFE2ghTTkFQU0hPVGMDAAAAAAAAAAQAAAAIAAAAQwAAAHNmAAAAfAKgAGQBZAKhAn0CfAJ8AGoBawdyNHQCoANkA3wCfABqBGQEoAV8AGoBoQFmAxYAoQGCAXwBoAahAH0DfAOgB2QFfAIWAKEBAQB8A6AIoQABAHwCZAZrAnJifAGgCaEAAQBkAFMAKQdO2gFfctgAAAB6TEludmFsaWQgdmFsdWUgJyVzJyBmb3IgaXNvbGF0aW9uX2xldmVsLiBWYWxpZCBpc29sYXRpb24gbGV2ZWxzIGZvciAlcyBhcmUgJXN6AiwgeiJTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMICVzcsIBAAApCnK2AAAA2hFfaXNvbGF0aW9uX2xvb2t1cHIGAAAA2g1Bcmd1bWVudEVycm9yclMBAAByUwAAAHI5AAAAckMAAAByLgAAAHIyAAAAKQRyhAAAAHKrAQAA2gVsZXZlbHI5AAAAcocAAAByhwAAAHKIAAAA2hNzZXRfaXNvbGF0aW9uX2xldmVszwgAAHMUAAAAAAEMAQoBBAECAhgCCAEOAQgBCAF6HU1TRGlhbGVjdC5zZXRfaXNvbGF0aW9uX2xldmVsYwIAAAAAAAAACAAAAAsAAABDAAAAc7IAAAB8AGoAdAFrAHISdAJkAYMBggFkAH0CZAJ9A3iSfANEAF1wfQR8AaADoQB9BXpYeR58BaAEZAN8BBYAoQEBAHwFoAWhAGQEGQB9BlcAbiwEAHwAagZqB2sKcngBAH0HAQB6CnwHfQJ3IFcAZABkAH0HfgdYAFkAbgpYAHwGoAihAFMAVwBkAHwFoAmhAAEAWABxIFcAdAqgC2QFfAN8AmYCFgChAQEAdAJkBoMBggFkAFMAKQdOejRDYW4ndCBmZXRjaCBpc29sYXRpb24gbGV2ZWwgcHJpb3IgdG8gU1FMIFNlcnZlciAyMDA1KQJ6FHN5cy5kbV9leGVjX3Nlc3Npb25zeh5zeXMuZG1fcGR3X25vZGVzX2V4ZWNfc2Vzc2lvbnNhzwEAAAogICAgICAgICAgICAgICAgICBTRUxFQ1QgQ0FTRSB0cmFuc2FjdGlvbl9pc29sYXRpb25fbGV2ZWwKICAgICAgICAgICAgICAgICAgICBXSEVOIDAgVEhFTiBOVUxMCiAgICAgICAgICAgICAgICAgICAgV0hFTiAxIFRIRU4gJ1JFQUQgVU5DT01NSVRURUQnCiAgICAgICAgICAgICAgICAgICAgV0hFTiAyIFRIRU4gJ1JFQUQgQ09NTUlUVEVEJwogICAgICAgICAgICAgICAgICAgIFdIRU4gMyBUSEVOICdSRVBFQVRBQkxFIFJFQUQnCiAgICAgICAgICAgICAgICAgICAgV0hFTiA0IFRIRU4gJ1NFUklBTElaQUJMRScKICAgICAgICAgICAgICAgICAgICBXSEVOIDUgVEhFTiAnU05BUFNIT1QnIEVORCBBUyBUUkFOU0FDVElPTl9JU09MQVRJT05fTEVWRUwKICAgICAgICAgICAgICAgICAgICBGUk9NICVzCiAgICAgICAgICAgICAgICAgICAgd2hlcmUgc2Vzc2lvbl9pZCA9IEBAU1BJRAogICAgICAgICAgICAgICAgICByAQAAAHpRQ291bGQgbm90IGZldGNoIHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbCwgdHJpZWQgdmlld3M6ICVzOyBmaW5hbCBlcnJvciB3YXM6ICVzekFDYW4ndCBmZXRjaCBpc29sYXRpb24gbGV2ZWwgb24gdGhpcyBwYXJ0aWN1bGFyIFNRTCBTZXJ2ZXIgdmVyc2lvbikMcvEAAADaD01TXzIwMDVfVkVSU0lPTtoTTm90SW1wbGVtZW50ZWRFcnJvcnI5AAAAckMAAADaCGZldGNob25lWgVkYmFwadoFRXJyb3LaBXVwcGVyci4AAAByCgAAANoEd2FybikIcoQAAAByqwEAAFoKbGFzdF9lcnJvcloFdmlld3NyewAAAHI5AAAA2gN2YWzaA2VycnKHAAAAcocAAAByiAAAANoTZ2V0X2lzb2xhdGlvbl9sZXZl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d2hlcmUgdGFiLm5hbWUgPSA6dGFibmFtZSBhbmQgc2NoLm5hbWU9OnNjaG5hbWUgYW5kIGluZC5pc19wcmltYXJ5X2tleT0wIGFuZCBpbmQudHlwZSAhPSAwWgd0YWJuYW1l2gdzY2huYW1lKQFyUwEAAHJTAQAAWglpc191bmlxdWVyAgAAACkDclMBAABydwAAANoMY29sdW1uX25hbWVzWghpbmRleF9pZGFSAQAAc2VsZWN0IGluZF9jb2wuaW5kZXhfaWQsIGluZF9jb2wub2JqZWN0X2lkLCBjb2wubmFtZSBmcm9tIHN5cy5jb2x1bW5zIGFzIGNvbCBqb2luIHN5cy50YWJsZXMgYXMgdGFiIG9uIHRhYi5vYmplY3RfaWQ9Y29sLm9iamVjdF9pZCBqb2luIHN5cy5pbmRleF9jb2x1bW5zIGFzIGluZF9jb2wgb24gKGluZF9jb2wuY29sdW1uX2lkPWNvbC5jb2x1bW5faWQgYW5kIGluZF9jb2wub2JqZWN0X2lkPXRhYi5vYmplY3RfaWQpIGpvaW4gc3lzLnNjaGVtYXMgYXMgc2NoIG9uIHNjaC5zY2hlbWFfaWQ9dGFiLnNjaGVtYV9pZCB3aGVyZSB0YWIubmFtZT06dGFibmFtZSBhbmQgc2NoLm5hbWU9OnNjaG5hbWVy6gEAACkPcvEAAAByyAEAAHJDAAAAcggAAAByzwAAANoKYmluZHBhcmFtc9oJYmluZHBhcmFtct0BAADaDUNvZXJjZVVuaWNvZGVyZQEAANoIc3FsdHlwZXPaB1VuaWNvZGVytAEAAHLXAQAAcnoAAAApCnKEAAAAcqsBAAByrgEAAHKkAQAAcqUBAAByBwAAAHKFAAAA2gJycNoHaW5kZXhlc3IXAQAAcocAAAByhwAAAHKIAAAA2gtnZXRfaW5kZXhlc2sJAABzLgAAAAAFCgEEAgQBBAEGCRABFAIOAgQBCgIGAQoBFAIEAQQBBgsQARQCDgIKAQwBHgJ6FU1TRGlhbGVjdC5nZXRfaW5kZXhlc2MGAAAAAAAAAAkAAAALAAAASwAAAHNIAAAAfAGgAHQBoAJkAaEBoAN0AaAEZAJ8AnQFoAahAKEDdAGgBGQDfAR0BaAGoQChA6ECoQF9B3wHckR8B6AHoQB9CHwIUwBkAFMAKQROespzZWxlY3Qg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CwIAAFoMbWF0Y2hfb3B0aW9uWgt1cGRhdGVfcnVsZVoLZGVsZXRlX3J1bGVy3wEAAFoRY29uc3RyYWludF9zY2hlbWFaFnVuaXF1ZV9jb25zdHJhaW50X25hbWVaGHVuaXF1ZV9jb25zdHJhaW50X3NjaGVtYXL3AQAAcgoAAADaC2RlZmF1bHRkaWN0ckMAAAByEQEAAHK0AQAActcBAAByegAAACkZcoQAAAByqwEAAHKuAQAAcqQBAABypQEAAHIHAAAAcoUAAABaAlJScgcCAAByDQIAAHI8AQAAWgVma2V5c3IRAgAAcuMBAABaBHNjb2xaB3JzY2hlbWFaBHJ0YmxaBHJjb2xaBXJma25tWgdma21hdGNoWghma3VwcnVsZVoJZmtkZWxydWxlWgNyZWNaCmxvY2FsX2NvbHNaC3JlbW90ZV9jb2xzcocAAAByhwAAAHKIAAAA2hBnZXRfZm9yZWlnbl9rZXlzUwoAAHNOAAAAAAUGAQwBDAMEAgYBBgEGAQYBBgEGAQYBCAIEAQoBCgEOAQ4BDgEOARACFAQEAggJCgIUARQCCAEIAQoBCAEUAQYBDAEIAwYBDAMKAQ4CehpNU0RpYWxlY3QuZ2V0X2ZvcmVpZ25fa2V5cykHTlROcroBAABOTkYpSnKJAAAAcooAAAByiwAAAHJTAQAAWhdzdXBwb3J0c19kZWZhdWx0X3ZhbHVlc1oVc3VwcG9ydHNfZW1wdHlfaW5zZXJ0cgABAABaEWV4ZWN1dGlvbl9jdHhfY2xzchABAAByvQEAAHK8AQAAcu4BAADaCERhdGVUaW1lcq8AAADaBERhdGVyjwAAAFoEVGltZXKpAAAAcu8BAAByuQAAANoLVW5pY29kZVRleHRyugAAAFoIY29sc3BlY3NyCwAAANoORGVmYXVsdERpYWxlY3RaE2VuZ2luZV9jb25maWdfdHlwZXNydgAAAHIKAAAAWgZhc2Jvb2xy+QEAAFoXc3VwcG9ydHNfbmF0aXZlX2Jvb2xlYW5aI25vbl9uYXRpdmVfYm9vbGVhbl9jaGVja19jb25zdHJhaW50WhZzdXBwb3J0c191bmljb2RlX2JpbmRzWhNwb3N0ZmV0Y2hfbGFzdHJvd2lkcvEAAAByHgEAAFoSc3RhdGVtZW50X2NvbXBpbGVycoABAABaDGRkbF9jb21w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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
adodbapi.cpython-37.pyc
2.96 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-37.pyc
73.91 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
information_schema.cpython-37.pyc
3.68 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mxodbc.cpython-37.pyc
4.82 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pymssql.cpython-37.pyc
4.11 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyodbc.cpython-37.pyc
11.00 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
zxjdbc.cpython-37.pyc
2.45 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
1.45 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).