porting of m2crypto on python 3
Matej Cepl <[email protected]> Sat, 19 Jan 2013 20:28:51 +0100
| Newsgroups | gmane.comp.python.cryptography |
|---|---|
| Message-ID | <[email protected]> |
SGksCgpJIGhhdmUgdHJpZWQgdG8gZ2l2ZSBhbm90aGVyIHNob3QgdG8KaHR0cHM6Ly9idWd6aWxs YS5vc2Fmb3VuZGF0aW9uLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NTMgKCJQeXRob24gMy4qCnN1 cHBvcnQiIGZvciBtMmNyeXB0bykuIE15IGN1cnJlbnQgcmVwbyBpcwpodHRwOi8vbHV0aGVyLmNl cGxvdmkuY3ovZ2l0L20yY3J5cHRvLmdpdC8gKGJyYW5jaCAicHl0aG9uMyIpLgoKQnVpbGQgcnVu cyB3aXRob3V0IGVycm9ycyAoYnV0IHdpdGggdG9ucyBvZiB3YXJuaW5nczsgc2VlIGJlbG93IHRo ZSBsb2cKb2YgcHl0aG9uMyBzZXR1cC5weSBidWlsZCksIGJ1dCB3aGVuIEkgdHJ5IHRvIGltcG9y dCBjcmVhdGVkIGJ1aWxkIEkgZ2V0CnVuZGVmaW5lZCBzeW1ib2w6CgptYXRlakB3eWNsaWZmOiBN MkNyeXB0byAocHl0aG9uMyAlKSQgcHl0aG9uMwpQeXRob24gMy4zLjAgKGRlZmF1bHQsIE9jdCAg MiAyMDEyLCAwOToyNzoxMSkKW0dDQyA0LjcuMiAyMDEyMDkyMSAoUmVkIEhhdCA0LjcuMi0yKV0g b24gbGludXgKVHlwZSAiaGVscCIsICJjb3B5cmlnaHQiLCAiY3JlZGl0cyIgb3IgImxpY2Vuc2Ui IGZvciBtb3JlIGluZm9ybWF0aW9uLgo+Pj4gaW1wb3J0IF9fbTJjcnlwdG8KVHJhY2ViYWNrICht b3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1 bGU+CkltcG9ydEVycm9yOiAuL19fbTJjcnlwdG8uY3B5dGhvbi0zM20uc286IHVuZGVmaW5lZCBz eW1ib2w6IFB5RmlsZV9DaGVjawo+Pj4KClRoYXQncyBwcm9iYWJseSBwcm9ibGVtIHdpdGggU1dJ RywgaXNuJ3QgKEkgZG9uJ3QgaGF2ZSBQeUZpbGVfQ2hlY2sKYW55d2hlcmUgaW4gbXkgc291cmNl IGZpbGVzKT8gRG9lcyBhbnlib2R5IGhhdmUgYW55IGlkZWEgaG93IHRvIHdvcmsKYXJvdW5kIGl0 PwoKQmVzdCwKCk1hdMSbagotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQptYXRlakB3eWNsaWZmOiBtMmNyeXB0byAocHl0aG9u MykkIC4vZmVkb3JhX3NldHVwLnNoIGJ1aWxkCnJ1bm5pbmcgYnVpbGQKcnVubmluZyBidWlsZF9w eQpjcmVhdGluZyBidWlsZApjcmVhdGluZyBidWlsZC9saWIubGludXgteDg2XzY0LTMuMwpjcmVh dGluZyBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRv L3V0aWwucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8KY29weWluZyBN MkNyeXB0by90aHJlYWRpbmcucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlw dG8KY29weWluZyBNMkNyeXB0by9tMnhtbHJwY2xpYi5weSAtPiBidWlsZC9saWIubGludXgteDg2 XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL20ydXJsbGliMi5weSAtPiBidWlsZC9s aWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL20ydXJsbGliLnB5 IC0+IGJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvCmNvcHlpbmcgTTJDcnlwdG8v bTIucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8KY29weWluZyBNMkNy eXB0by9odHRwc2xpYi5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpj b3B5aW5nIE0yQ3J5cHRvL2Z0cHNsaWIucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMv TTJDcnlwdG8KY29weWluZyBNMkNyeXB0by9jYWxsYmFjay5weSAtPiBidWlsZC9saWIubGludXgt eDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL19faW5pdF9fLnB5IC0+IGJ1aWxk L2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvCmNvcHlpbmcgTTJDcnlwdG8vWDUwOS5weSAt PiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL1NN SU1FLnB5IC0+IGJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvCmNvcHlpbmcgTTJD cnlwdG8vUmFuZC5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5 aW5nIE0yQ3J5cHRvL1JTQS5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0 bwpjb3B5aW5nIE0yQ3J5cHRvL1JDNC5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9N MkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL0Vyci5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0 LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL0VuZ2luZS5weSAtPiBidWlsZC9saWIubGlu dXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL0VWUC5weSAtPiBidWlsZC9s aWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5nIE0yQ3J5cHRvL0VDLnB5IC0+IGJ1 aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvCmNvcHlpbmcgTTJDcnlwdG8vRFNBLnB5 IC0+IGJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvCmNvcHlpbmcgTTJDcnlwdG8v REgucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8KY29weWluZyBNMkNy eXB0by9CTi5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpjb3B5aW5n IE0yQ3J5cHRvL0JJTy5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0bwpj b3B5aW5nIE0yQ3J5cHRvL0F1dGhDb29raWUucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0z LjMvTTJDcnlwdG8KY29weWluZyBNMkNyeXB0by9BU04xLnB5IC0+IGJ1aWxkL2xpYi5saW51eC14 ODZfNjQtMy4zL00yQ3J5cHRvCmNyZWF0aW5nIGJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00y Q3J5cHRvL1NTTApjb3B5aW5nIE0yQ3J5cHRvL1NTTC90aW1lb3V0LnB5IC0+IGJ1aWxkL2xpYi5s aW51eC14ODZfNjQtMy4zL00yQ3J5cHRvL1NTTApjb3B5aW5nIE0yQ3J5cHRvL1NTTC9zc2xfZGlz cGF0Y2hlci5weSAtPgpidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0by9TU0wKY29w eWluZyBNMkNyeXB0by9TU0wvY2IucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJD cnlwdG8vU1NMCmNvcHlpbmcgTTJDcnlwdG8vU1NML19faW5pdF9fLnB5IC0+IGJ1aWxkL2xpYi5s aW51eC14ODZfNjQtMy4zL00yQ3J5cHRvL1NTTApjb3B5aW5nIE0yQ3J5cHRvL1NTTC9Ud2lzdGVk UHJvdG9jb2xXcmFwcGVyLnB5IC0+CmJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRv L1NTTApjb3B5aW5nIE0yQ3J5cHRvL1NTTC9TZXNzaW9uLnB5IC0+IGJ1aWxkL2xpYi5saW51eC14 ODZfNjQtMy4zL00yQ3J5cHRvL1NTTApjb3B5aW5nIE0yQ3J5cHRvL1NTTC9TU0xTZXJ2ZXIucHkg LT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8vU1NMCmNvcHlpbmcgTTJDcnlw dG8vU1NML0NvbnRleHQucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8v U1NMCmNvcHlpbmcgTTJDcnlwdG8vU1NML0Nvbm5lY3Rpb24ucHkgLT4KYnVpbGQvbGliLmxpbnV4 LXg4Nl82NC0zLjMvTTJDcnlwdG8vU1NMCmNvcHlpbmcgTTJDcnlwdG8vU1NML0NpcGhlci5weSAt PiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0by9TU0wKY29weWluZyBNMkNyeXB0 by9TU0wvQ2hlY2tlci5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0by9T U0wKY3JlYXRpbmcgYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8vUEdQCmNvcHlp bmcgTTJDcnlwdG8vUEdQL3BhY2tldC5weSAtPiBidWlsZC9saWIubGludXgteDg2XzY0LTMuMy9N MkNyeXB0by9QR1AKY29weWluZyBNMkNyeXB0by9QR1AvUlNBLnB5IC0+IGJ1aWxkL2xpYi5saW51 eC14ODZfNjQtMy4zL00yQ3J5cHRvL1BHUApjb3B5aW5nIE0yQ3J5cHRvL1BHUC9QdWJsaWNLZXlS aW5nLnB5IC0+CmJ1aWxkL2xpYi5saW51eC14ODZfNjQtMy4zL00yQ3J5cHRvL1BHUApjb3B5aW5n IE0yQ3J5cHRvL1BHUC9QdWJsaWNLZXkucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMv TTJDcnlwdG8vUEdQCmNvcHlpbmcgTTJDcnlwdG8vUEdQL2NvbnN0YW50cy5weSAtPiBidWlsZC9s aWIubGludXgteDg2XzY0LTMuMy9NMkNyeXB0by9QR1AKY29weWluZyBNMkNyeXB0by9QR1AvX19p bml0X18ucHkgLT4gYnVpbGQvbGliLmxpbnV4LXg4Nl82NC0zLjMvTTJDcnlwdG8vUEdQCnJ1bm5p bmcgYnVpbGRfZXh0CmJ1aWxkaW5nICdNMkNyeXB0by5fX20yY3J5cHRvJyBleHRlbnNpb24Kc3dp Z2dpbmcgU1dJRy9fbTJjcnlwdG8uaSB0byBTV0lHL19tMmNyeXB0b193cmFwLmMKc3dpZyAtcHl0 aG9uIC1JL3Vzci9pbmNsdWRlL3B5dGhvbjMuM20gLUkvdXNyL2luY2x1ZGUgLWluY2x1ZGVhbGwg LW8KU1dJRy9fbTJjcnlwdG9fd3JhcC5jIFNXSUcvX20yY3J5cHRvLmkKL3Vzci9pbmNsdWRlL29w ZW5zc2wvb3BlbnNzbGNvbmYteDg2XzY0Lmg6NTogV2FybmluZyAyMDU6IENQUCAjZXJyb3IKIiJE b24ndCBpbmNsdWRlIHRoaXMgZmlsZSBkaXJlY3RseSwgdXNlIDxvcGVuc3NsL29wZW5zc2xjb25m Lmg+IGluc3RlYWQhIiIuClNXSUcvX2Jpby5pOjY0OiBXYXJuaW5nIDQ1NDogU2V0dGluZyBhIHBv aW50ZXIvcmVmZXJlbmNlIHZhcmlhYmxlIG1heQpsZWFrIG1lbW9yeS4KU1dJRy9fcmFuZC5pOjIx OiBXYXJuaW5nIDQ1NDogU2V0dGluZyBhIHBvaW50ZXIvcmVmZXJlbmNlIHZhcmlhYmxlIG1heQps ZWFrIG1lbW9yeS4KU1dJRy9fZXZwLmk6MTYyOiBXYXJuaW5nIDQ1NDogU2V0dGluZyBhIHBvaW50 ZXIvcmVmZXJlbmNlIHZhcmlhYmxlIG1heQpsZWFrIG1lbW9yeS4KU1dJRy9fZGguaTozNjogV2Fy bmluZyA0NTQ6IFNldHRpbmcgYSBwb2ludGVyL3JlZmVyZW5jZSB2YXJpYWJsZSBtYXkKbGVhayBt ZW1vcnkuClNXSUcvX3JzYS5pOjQzOiBXYXJuaW5nIDQ1NDogU2V0dGluZyBhIHBvaW50ZXIvcmVm ZXJlbmNlIHZhcmlhYmxlIG1heQpsZWFrIG1lbW9yeS4KU1dJRy9fZHNhLmk6MzE6IFdhcm5pbmcg NDU0OiBTZXR0aW5nIGEgcG9pbnRlci9yZWZlcmVuY2UgdmFyaWFibGUgbWF5CmxlYWsgbWVtb3J5 LgpTV0lHL19zc2wuaToyMTQ6IFdhcm5pbmcgNDU0OiBTZXR0aW5nIGEgcG9pbnRlci9yZWZlcmVu Y2UgdmFyaWFibGUgbWF5CmxlYWsgbWVtb3J5LgpTV0lHL194NTA5Lmk6MzMyOiBXYXJuaW5nIDQ1 NDogU2V0dGluZyBhIHBvaW50ZXIvcmVmZXJlbmNlIHZhcmlhYmxlIG1heQpsZWFrIG1lbW9yeS4K U1dJRy9fcGtjczcuaTo0NDogV2FybmluZyA0NTQ6IFNldHRpbmcgYSBwb2ludGVyL3JlZmVyZW5j ZSB2YXJpYWJsZSBtYXkKbGVhayBtZW1vcnkuClNXSUcvX3BrY3M3Lmk6NDQ6IFdhcm5pbmcgNDU0 OiBTZXR0aW5nIGEgcG9pbnRlci9yZWZlcmVuY2UgdmFyaWFibGUgbWF5CmxlYWsgbWVtb3J5LgpT V0lHL191dGlsLmk6MTE6IFdhcm5pbmcgNDU0OiBTZXR0aW5nIGEgcG9pbnRlci9yZWZlcmVuY2Ug dmFyaWFibGUgbWF5CmxlYWsgbWVtb3J5LgpTV0lHL19lbmdpbmUuaToxNjg6IFdhcm5pbmcgNDU0 OiBTZXR0aW5nIGEgcG9pbnRlci9yZWZlcmVuY2UgdmFyaWFibGUKbWF5IGxlYWsgbWVtb3J5Lgpj cmVhdGluZyBidWlsZC90ZW1wLmxpbnV4LXg4Nl82NC0zLjMKY3JlYXRpbmcgYnVpbGQvdGVtcC5s aW51eC14ODZfNjQtMy4zL1NXSUcKZ2NjIC1wdGhyZWFkIC1Xbm8tdW51c2VkLXJlc3VsdCAtRERZ TkFNSUNfQU5OT1RBVElPTlNfRU5BQkxFRD0xIC1ETkRFQlVHCi1PMiAtZyAtcGlwZSAtV2FsbCAt V3AsLURfRk9SVElGWV9TT1VSQ0U9MiAtZmV4Y2VwdGlvbnMKLWZzdGFjay1wcm90ZWN0b3IgLS1w YXJhbT1zc3AtYnVmZmVyLXNpemU9NCAtbTY0IC1tdHVuZT1nZW5lcmljCi1EX0dOVV9TT1VSQ0Ug LWZQSUMgLWZ3cmFwdiAtTzIgLWcgLXBpcGUgLVdhbGwgLVdwLC1EX0ZPUlRJRllfU09VUkNFPTIK LWZleGNlcHRpb25zIC1mc3RhY2stcHJvdGVjdG9yIC0tcGFyYW09c3NwLWJ1ZmZlci1zaXplPTQg LW02NAotbXR1bmU9Z2VuZXJpYyAtRF9HTlVfU09VUkNFIC1mUElDIC1md3JhcHYgLWZQSUMKLUkv dXNyL2luY2x1ZGUvcHl0aG9uMy4zbSAtSS91c3IvaW5jbHVkZSAtSS90bXAvbTJjcnlwdG8vU1dJ RyAtYwpTV0lHL19tMmNyeXB0b193cmFwLmMgLW8KYnVpbGQvdGVtcC5saW51eC14ODZfNjQtMy4z L1NXSUcvX20yY3J5cHRvX3dyYXAubyAtRFRIUkVBRElORwpTV0lHL19tMmNyeXB0b193cmFwLmM6 IEluIGZ1bmN0aW9uIOKAmHNzbF92ZXJpZnlfY2FsbGJhY2vigJk6ClNXSUcvX20yY3J5cHRvX3dy YXAuYzozNDMyOjk6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZgrigJhQeVR5cGVfR2Vu ZXJpY05ld+KAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgW2VuYWJsZWQgYnkgZGVm YXVsdF0KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9weXRob24zLjNtL3B5dGlt ZS5oOjY6MCwKICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9weXRob24zLjNtL1B5 dGhvbi5oOjY1LAogICAgICAgICAgICAgICAgIGZyb20gU1dJRy9fbTJjcnlwdG9fd3JhcC5jOjEy NjoKL3Vzci9pbmNsdWRlL3B5dGhvbjMuM20vb2JqZWN0Lmg6NDgxOjEyOiBub3RlOiBleHBlY3Rl ZCDigJhzdHJ1Y3QKUHlUeXBlT2JqZWN0ICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCY c3RydWN0IFB5T2JqZWN0ICrigJkKU1dJRy9fbTJjcnlwdG9fd3JhcC5jOiBJbiBmdW5jdGlvbiDi gJhibl9yYW5kX3Jhbmdl4oCZOgpTV0lHL19tMmNyeXB0b193cmFwLmM6NDEzODoxNDogd2Fybmlu ZzogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZQpwb2ludGVyIHR5cGUgW2VuYWJsZWQgYnkg ZGVmYXVsdF0KU1dJRy9fbTJjcnlwdG9fd3JhcC5jOiBJbiBmdW5jdGlvbiDigJhwa2V5X2dldF9t b2R1bHVz4oCZOgpTV0lHL19tMmNyeXB0b193cmFwLmM6NDc1ODoxMzogd2FybmluZzogdmFsdWUg Y29tcHV0ZWQgaXMgbm90IHVzZWQKWy1XdW51c2VkLXZhbHVlXQpTV0lHL19tMmNyeXB0b193cmFw LmM6NDc4OToxMzogd2FybmluZzogdmFsdWUgY29tcHV0ZWQgaXMgbm90IHVzZWQKWy1XdW51c2Vk LXZhbHVlXQpTV0lHL19tMmNyeXB0b193cmFwLmM6IEluIGZ1bmN0aW9uIOKAmHJzYV9wcml2YXRl X2RlY3J5cHTigJk6ClNXSUcvX20yY3J5cHRvX3dyYXAuYzo1MzczOjU6IHdhcm5pbmc6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uCuKAmFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXpl 4oCZIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQpTV0lHL19tMmNyeXB0b193cmFw LmM6NTM3Mzo5OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbQppbnRlZ2Vy IHdpdGhvdXQgYSBjYXN0IFtlbmFibGVkIGJ5IGRlZmF1bHRdClNXSUcvX20yY3J5cHRvX3dyYXAu YzogSW4gZnVuY3Rpb24g4oCYcnNhX3BhZGRpbmdfYWRkX3BrY3MxX3Bzc+KAmToKU1dJRy9fbTJj cnlwdG9fd3JhcC5jOjU0NDk6OTogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZy b20KaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbZW5hYmxlZCBieSBkZWZhdWx0XQpTV0lHL19tMmNy eXB0b193cmFwLmM6IEluIGZ1bmN0aW9uIOKAmHg1MDl2M19saGFzaOKAmToKU1dJRy9fbTJjcnlw dG9fd3JhcC5jOjY2NTk6NTogd2FybmluZzogcmV0dXJuIGZyb20gaW5jb21wYXRpYmxlIHBvaW50 ZXIKdHlwZSBbZW5hYmxlZCBieSBkZWZhdWx0XQpTV0lHL19tMmNyeXB0b193cmFwLmM6IEluIGZ1 bmN0aW9uIOKAmGFzbjFfaW50ZWdlcl9zZXTigJk6ClNXSUcvX20yY3J5cHRvX3dyYXAuYzo2ODcz Ojk6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uCuKAmFB5SW50X0FT X0xPTkfigJkgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dClNXSUcvX20yY3J5cHRv X3dyYXAuYzogSW4gZnVuY3Rpb24g4oCYdXRpbF9zdHJpbmdfdG9faGV44oCZOgpTV0lHL19tMmNy eXB0b193cmFwLmM6NzE3Njo5OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJv bQppbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFtlbmFibGVkIGJ5IGRlZmF1bHRdClNXSUcvX20yY3J5 cHRvX3dyYXAuYzogSW4gZnVuY3Rpb24g4oCYX3dyYXBfZXJyX3ByaW50X2Vycm9yc19mcOKAmToK U1dJRy9fbTJjcnlwdG9fd3JhcC5jOjg1NDU6NTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24K4oCYUHlGaWxlX0NoZWNr4oCZIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQpTV0lHL19tMmNyeXB0b193cmFwLmM6ODU0OTo1OiB3YXJuaW5nOiBpbXBsaWNp dCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbgrigJhQeUZpbGVfQXNGaWxl4oCZIFstV2ltcGxpY2l0 LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQpTV0lHL19tMmNyeXB0b193cmFwLmM6ODU0OTo5OiB3YXJu aW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbQppbnRlZ2VyIHdpdGhvdXQgYSBjYXN0 IFtlbmFibGVkIGJ5IGRlZmF1bHRdClNXSUcvX20yY3J5cHRvX3dyYXAuYzogSW4gZnVuY3Rpb24g 4oCYX3dyYXBfYmlvX25ld19mcOKAmToKU1dJRy9fbTJjcnlwdG9fd3JhcC5jOjg4NjQ6OTogd2Fy bmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20KaW50ZWdlciB3aXRob3V0IGEgY2Fz dCBbZW5hYmxlZCBieSBkZWZhdWx0XQpTV0lHL19tMmNyeXB0b193cmFwLmM6IEluIGZ1bmN0aW9u IOKAmF93cmFwX3g1MDlfd3JpdGVfcGVtX2ZpbGXigJk6ClNXSUcvX20yY3J5cHRvX3dyYXAuYzox OTMwMzo5OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIHBvaW50ZXIgZnJvbQppbnRlZ2VyIHdp dGhvdXQgYSBjYXN0IFtlbmFibGVkIGJ5IGRlZmF1bHRdClNXSUcvX20yY3J5cHRvX3dyYXAuYzog SW4gZnVuY3Rpb24g4oCYX3dyYXBfeDUwOV9uYW1lX3ByaW50X2V4X2Zw4oCZOgpTV0lHL19tMmNy eXB0b193cmFwLmM6MjAwODY6OTogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZy b20KaW50ZWdlciB3aXRob3V0IGEgY2FzdCBbZW5hYmxlZCBieSBkZWZhdWx0XQpTV0lHL19tMmNy eXB0b193cmFwLmM6IEluIGZ1bmN0aW9uIOKAmFNXSUdfSW5pdGlhbGl6ZU1vZHVsZeKAmToKU1dJ Ry9fbTJjcnlwdG9fd3JhcC5jOjI2NTUwOjM6IHdhcm5pbmc6IHN0YXRlbWVudCB3aXRoIG5vIGVm ZmVjdApbLVd1bnVzZWQtdmFsdWVdCmdjYyAtcHRocmVhZCAtc2hhcmVkIC1XbCwteixyZWxybwpi dWlsZC90ZW1wLmxpbnV4LXg4Nl82NC0zLjMvU1dJRy9fbTJjcnlwdG9fd3JhcC5vIC1ML3Vzci9s aWI2NAotTC91c3IvbGliIC1scHl0aG9uMy4zbSAtbHNzbCAtbGNyeXB0byAtbwpidWlsZC9saWIu bGludXgteDg2XzY0LTMuMy9NMkNyeXB0by9fX20yY3J5cHRvLmNweXRob24tMzNtLnNvCm1hdGVq QHd5Y2xpZmY6IG0yY3J5cHRvIChweXRob24zICUpJAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KcHl0aG9uLWNyeXB0byBtYWlsaW5nIGxpc3QKcHl0aG9u LWNyeXB0b0BweXRob24ub3JnCmh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5m by9weXRob24tY3J5cHRvCg==