From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.425.1586209368813384989 for ; Mon, 06 Apr 2020 14:42:49 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: G2Hgn5/TiUE2Zy/QgB/AOfvt5cK+e2e7sK5TP311lcinl9RrvofPhANS3b+PjIMzkh1/E9ZHP+ RJYu1SGKPFQA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2020 14:42:47 -0700 IronPort-SDR: zaSYntCSPxuX3EKm2JtD9Do9SAIQcFFekj6iFmjD4rmAFyE2DRPQ4Gneqq3DkohPFe0bK2Sj5J Ebt/N9yQsgiQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,352,1580803200"; d="scan'208";a="269208617" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by orsmga002.jf.intel.com with ESMTP; 06 Apr 2020 14:42:47 -0700 Received: from orsmsx111.amr.corp.intel.com (10.22.240.12) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 6 Apr 2020 14:42:47 -0700 Received: from orsmsx114.amr.corp.intel.com ([169.254.8.205]) by ORSMSX111.amr.corp.intel.com ([169.254.12.226]) with mapi id 14.03.0439.000; Mon, 6 Apr 2020 14:42:47 -0700 From: "Nate DeSimone" To: "Bjorge, Erik C" , "devel@edk2.groups.io" CC: "Desimone, Ashley E" , "Pandya, Puja" , "Agyeman, Prince" , "Bret Barkelew" , Philippe Mathieu-Daude Subject: Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH] EdkRepo: Add Support for macOS Thread-Topic: [edk2-devel] [edk2-staging/EdkRepo] [PATCH] EdkRepo: Add Support for macOS Thread-Index: AQHWDFZZ0npClPTDcUi1SoWzYq7KwqhsmGSQgAAHjQA= Date: Mon, 6 Apr 2020 21:42:46 +0000 Message-ID: <110DB87F-C644-4E8A-B53B-52FA4AB3676B@intel.com> References: <20200406205904.27226-1-nathaniel.l.desimone@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.35.20030802 x-originating-ip: [10.255.229.189] MIME-Version: 1.0 Return-Path: nathaniel.l.desimone@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <6128982CAF236B44BED9A08EB0899E60@intel.com> Content-Transfer-Encoding: base64 SGkgRXJpaywNCg0KSSdtIG5vdCBwbGFubmluZyBvbiB0aGlzIGJlaW5nIHRoZSBvbmx5IHBhdGNo IG9uIHRoaXMgdG9waWMgYW55d2F5LiBJIHN0aWxsIG5lZWQgdG8gdXBkYXRlIGRvY3VtZW50YXRp b24gYW5kIHN0dWZmIGxpa2UgdGhhdC4gWW91IGFyZSB3ZWxjb21lIHRvIHRha2UgYSBsb29rIGF0 IHdoYXQgaXQgd291bGQgdGFrZSB0byBzd2l0Y2ggdG8gdXNlci1iYXNlZCBpbnN0YWxscy4gRm9y IG1hY09TLCB0aGUgb25seSBtZXRob2QgSSBzdXBwb3J0IGlzIHVzaW5nIHB5ZW52Lg0KDQpUaGFu a3MsDQpOYXRlDQoNCu+7v09uIDQvNi8yMCwgMjoxOSBQTSwgIkJqb3JnZSwgRXJpayBDIiA8ZXJp ay5jLmJqb3JnZUBpbnRlbC5jb20+IHdyb3RlOg0KDQogICAgTmF0ZSwNCiAgICANCiAgICBUbyBz aW1wbGlmeSBzb21lIG9mIHRoZSBpbnN0YWxsZXIgY29kZSBzaG91bGQgd2UganVzdCBzd2l0Y2gg dG8gbG9jYWwgKHVzZXIpIGluc3RhbGxzIGluIGZvciBMaW51eCBhbmQgTWFjPyAgSSB3b3VsZCBs aWtlIHRvIG1vdmUgdG8gdGhpcyBmb3IgTGludXggYW55d2F5LiAgSSBjYW4gYWxzbyBzdWJtaXQg YSBwYXRjaCBmb3IgdGhpcyBhdCBzb21lIG90aGVyIHRpbWUuDQogICAgDQogICAgVGhlIHJlc3Qg b2YgdGhlIGNvZGUgbG9va3MgZ29vZC4NCiAgICANCiAgICBUaGFua3MsDQogICAgLUVyaWsNCiAg ICANCiAgICAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgIEZyb206IGRldmVsQGVkazIu Z3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE5hdGUgRGVTaW1v bmUNCiAgICBTZW50OiBNb25kYXksIEFwcmlsIDYsIDIwMjAgMTo1OSBQTQ0KICAgIFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KICAgIENjOiBEZXNpbW9uZSwgQXNobGV5IEUgPGFzaGxleS5lLmRl c2ltb25lQGludGVsLmNvbT47IFBhbmR5YSwgUHVqYSA8cHVqYS5wYW5keWFAaW50ZWwuY29tPjsg QmpvcmdlLCBFcmlrIEMgPGVyaWsuYy5iam9yZ2VAaW50ZWwuY29tPjsgQWd5ZW1hbiwgUHJpbmNl IDxwcmluY2UuYWd5ZW1hbkBpbnRlbC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3 QG1pY3Jvc29mdC5jb20+OyBQaGlsaXBwZSBNYXRoaWV1LURhdWRlIDxwaGlsbWRAcmVkaGF0LmNv bT4NCiAgICBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW2VkazItc3RhZ2luZy9FZGtSZXBvXSBbUEFU Q0hdIEVka1JlcG86IEFkZCBTdXBwb3J0IGZvciBtYWNPUw0KICAgIA0KICAgIFNpZ25lZC1vZmYt Ynk6IE5hdGUgRGVTaW1vbmUgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT4NCiAgICBD YzogQXNobGV5IERlU2ltb25lIDxhc2hsZXkuZS5kZXNpbW9uZUBpbnRlbC5jb20+DQogICAgQ2M6 IFB1amEgUGFuZHlhIDxwdWphLnBhbmR5YUBpbnRlbC5jb20+DQogICAgQ2M6IEVyaWsgQmpvcmdl IDxlcmlrLmMuYmpvcmdlQGludGVsLmNvbT4NCiAgICBDYzogUHJpbmNlIEFneWVtYW4gPHByaW5j ZS5hZ3llbWFuQGludGVsLmNvbT4NCiAgICBDYzogQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxl d0BtaWNyb3NvZnQuY29tPg0KICAgIENjOiBQaGlsaXBwZSBNYXRoaWV1LURhdWRlIDxwaGlsbWRA cmVkaGF0LmNvbT4NCiAgICAtLS0NCiAgICAgYnVpbGQtc2NyaXB0cy9idWlsZF9saW51eF9pbnN0 YWxsZXIucHkgICAgICAgIHwgIDIgKw0KICAgICBidWlsZC1zY3JpcHRzL3NldF92ZXJzaW9uX2Fu ZF9idWlsZF93aGVlbHMucHkgfCAxMCArLS0NCiAgICAgZWRrcmVwby9jb25maWcvY29uZmlnX2Zh Y3RvcnkucHkgICAgICAgICAgICAgIHwgIDYgKy0NCiAgICAgZWRrcmVwb19pbnN0YWxsZXIvbGlu dXgtc2NyaXB0cy9pbnN0YWxsLnB5ICAgIHwgNjUgKysrKysrKysrKysrKysrKystLQ0KICAgICA0 IGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0KICAgIA0K ICAgIGRpZmYgLS1naXQgYS9idWlsZC1zY3JpcHRzL2J1aWxkX2xpbnV4X2luc3RhbGxlci5weSBi L2J1aWxkLXNjcmlwdHMvYnVpbGRfbGludXhfaW5zdGFsbGVyLnB5DQogICAgaW5kZXggMDEzMDU1 Mi4uMTFkZDhkNyAxMDA3NTUNCiAgICAtLS0gYS9idWlsZC1zY3JpcHRzL2J1aWxkX2xpbnV4X2lu c3RhbGxlci5weQ0KICAgICsrKyBiL2J1aWxkLXNjcmlwdHMvYnVpbGRfbGludXhfaW5zdGFsbGVy LnB5DQogICAgQEAgLTEwLDYgKzEwLDcgQEANCiAgICAgZnJvbSBhcmdwYXJzZSBpbXBvcnQgQXJn dW1lbnRQYXJzZXINCiAgICAgaW1wb3J0IGZubWF0Y2gsIG9zLCBzaHV0aWwsIHN1YnByb2Nlc3Ms IHN5cyAgaW1wb3J0IHNldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMgYXMgYnVpbGRfZWRrcmVw bw0KICAgICtpbXBvcnQgdHJhY2ViYWNrDQogICAgDQogICAgIGRlZiBtYWluKCk6DQogICAgICAg ICBwYXJzZXIgPSBBcmd1bWVudFBhcnNlcigpDQogICAgQEAgLTMxLDYgKzMyLDcgQEAgZGVmIG1h aW4oKToNCiAgICAgICAgIHRyeToNCiAgICAgICAgICAgICBidWlsZF9lZGtyZXBvLm1haW4oKQ0K ICAgICAgICAgZXhjZXB0Og0KICAgICsgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQ0KICAg ICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8gYnVpbGQgZWRrcmVwbyB3aGVlbCcpDQogICAgICAg ICAgICAgcmV0dXJuIDENCiAgICANCiAgICBkaWZmIC0tZ2l0IGEvYnVpbGQtc2NyaXB0cy9zZXRf dmVyc2lvbl9hbmRfYnVpbGRfd2hlZWxzLnB5IGIvYnVpbGQtc2NyaXB0cy9zZXRfdmVyc2lvbl9h bmRfYnVpbGRfd2hlZWxzLnB5DQogICAgaW5kZXggNDJlNThjYy4uN2RmMGM4NCAxMDA3NTUNCiAg ICAtLS0gYS9idWlsZC1zY3JpcHRzL3NldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMucHkNCiAg ICArKysgYi9idWlsZC1zY3JpcHRzL3NldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMucHkNCiAg ICBAQCAtMyw3ICszLDcgQEANCiAgICAgIyMgQGZpbGUNCiAgICAgIyBzZXRfdmVyc2lvbl9hbmRf YnVpbGRfd2hlZWxzLnB5DQogICAgICMNCiAgICAtIyBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDE5 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQogICAgKyMgQ29w eXJpZ2h0IChjKSAyMDE3IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCiAg ICArcmVzZXJ2ZWQuPEJSPg0KICAgICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50ICAjDQogICAgDQogICAgQEAgLTIxNCw3ICsyMTQsNyBAQCBkZWYgYnVpbGRf d2hlZWxzKGV4dGVuc2lvbl9wa2dzKToNCiAgICAgZGVmIGNvcHlfd2hlZWxzX2FuZF9zZXRfeG1s KHBhY2thZ2VfdmVyc2lvbiwgZXh0ZW5zaW9uX3BrZ3MpOg0KICAgICAgICAgZGlyX3BhdGggPSBv cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5h bWUoX19maWxlX18pKSksICJkaXN0IikNCiAgICAgICAgIGRlc3RfcGF0aCA9IG9zLnBhdGguam9p bihkaXJfcGF0aCwgInNlbGZfZXh0cmFjdCIpDQogICAgLSAgICBpZiBvc3R5cGUgPT0gTElOVVg6 DQogICAgKyAgICBpZiBvc3R5cGUgIT0gV0lOOg0KICAgICAgICAgICAgIGRlc3RfcGF0aCA9IG9z LnBhdGguam9pbihkZXN0X3BhdGgsICd3aGVlbHMnKQ0KICAgICAgICAgaWYgbm90IG9zLnBhdGgu aXNkaXIoZGVzdF9wYXRoKToNCiAgICAgICAgICAgICBvcy5tYWtlZGlycyhkZXN0X3BhdGgpDQog ICAgQEAgLTI0MSw5ICsyNDEsOSBAQCBkZWYgY3JlYXRlX2ZpbmFsX2NvcHlfc2NyaXB0KHZlcnNp b24pOg0KICAgICAgICAgICAgICAgICBmLndyaXRlKCJwdXNoZCAuLlxcZGlzdFxuIikNCiAgICAg ICAgICAgICAgICAgZi53cml0ZSgicmVuIFwic2V0dXAuZXhlXCIgXCJFZGtSZXBvU2V0dXAte30u ZXhlXCJcbiIuZm9ybWF0KHZlcnNpb24pKQ0KICAgICAgICAgICAgICAgICBmLndyaXRlKCJwb3Bk XG4iKQ0KICAgIC0gICAgZWxpZiBvc3R5cGUgPT0gTElOVVg6DQogICAgKyAgICBlbHNlOg0KICAg ICAgICAgICAgIHdpdGggb3BlbignZmluYWxfY29weS5weScsICd3JykgYXMgZjoNCiAgICAtICAg ICAgICAgICAgZi53cml0ZSgnIyEvdXNyL2Jpbi9weXRob24zXG4nKQ0KICAgICsgICAgICAgICAg ICBmLndyaXRlKCcjIS91c3IvYmluL2VudiBweXRob24zXG4nKQ0KICAgICAgICAgICAgICAgICBm LndyaXRlKCdpbXBvcnQgb3MsIHNodXRpbCwgc3lzXG4nKQ0KICAgICAgICAgICAgICAgICBmLndy aXRlKCdkaXN0X25hbWUgPSAiZWRrcmVwby17e319Ii5mb3JtYXQoInt9IilcbicuZm9ybWF0KHZl cnNpb24pKQ0KICAgICAgICAgICAgICAgICBmLndyaXRlKCdpbnN0YWxsZXJfZGlyID0gIi4uL2Rp c3Qvc2VsZl9leHRyYWN0IlxuJykgQEAgLTI1Nyw3ICsyNTcsNyBAQCBkZWYgX2NvcHlfZmlsZShz b3VyY2UsIGRlc3RpbmF0aW9uKToNCiAgICAgICAgICAgICBjaGVja19jYWxsKCJjcCAtZiB7fSB7 fSIuZm9ybWF0KHNvdXJjZSwgZGVzdGluYXRpb24pLCBzaGVsbD1UcnVlKQ0KICAgIA0KICAgICBk ZWYgbWFrZV92ZXJzaW9uX2NmZ19maWxlKHZlcnNpb24pOg0KICAgIC0gICAgaWYgb3N0eXBlID09 IExJTlVYOg0KICAgICsgICAgaWYgb3N0eXBlICE9IFdJTjoNCiAgICAgICAgICAgICBjZmdfc3Jj ID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgob3MucGF0aC5k aXJuYW1lKF9fZmlsZV9fKSkpLCAnZWRrcmVwb19pbnN0YWxsZXInLCAnbGludXgtc2NyaXB0cycp DQogICAgICAgICAgICAgaW5zdGFsbF9jZmcgPSBjb25maWdwYXJzZXIuQ29uZmlnUGFyc2VyKGFs bG93X25vX3ZhbHVlPVRydWUpDQogICAgICAgICAgICAgaW5zdGFsbF9jZmcucmVhZChvcy5wYXRo LmpvaW4oY2ZnX3NyYywgJ2luc3RhbGwuY2ZnJykpIGRpZmYgLS1naXQgYS9lZGtyZXBvL2NvbmZp Zy9jb25maWdfZmFjdG9yeS5weSBiL2Vka3JlcG8vY29uZmlnL2NvbmZpZ19mYWN0b3J5LnB5DQog ICAgaW5kZXggZTNhNDM3Zi4uYjg2ZTBiOCAxMDA2NDQNCiAgICAtLS0gYS9lZGtyZXBvL2NvbmZp Zy9jb25maWdfZmFjdG9yeS5weQ0KICAgICsrKyBiL2Vka3JlcG8vY29uZmlnL2NvbmZpZ19mYWN0 b3J5LnB5DQogICAgQEAgLTMsNyArMyw3IEBADQogICAgICMjIEBmaWxlDQogICAgICMgY29uZmln X2ZhY3RvcnkucHkNCiAgICAgIw0KICAgIC0jIENvcHlyaWdodCAoYykgMjAxNy0gMjAxOSwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsjIENvcHlyaWdo dCAoYykgMjAxNyAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQogICAgK3Jl c2VydmVkLjxCUj4NCiAgICAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudCAgIw0KICAgIA0KICAgIEBAIC0zMCw5ICszMCw3IEBAIGRlZiBnZXRfZWRrcmVwb19n bG9iYWxfZGF0YV9kaXJlY3RvcnkoKToNCiAgICAgICAgICAgICBjb21tb25fYXBwZGF0YSA9IGNy ZWF0ZV91bmljb2RlX2J1ZmZlcihNQVhfUEFUSCkNCiAgICAgICAgICAgICBTSEdldEZvbGRlclBh dGgoTm9uZSwgQ1NJRExfQ09NTU9OX0FQUERBVEEsIE5vbmUsIFNIR0ZQX1RZUEVfQ1VSUkVOVCwg Y29tbW9uX2FwcGRhdGEpDQogICAgICAgICAgICAgZ2xvYmFsX2RhdGFfZGlyID0gb3MucGF0aC5q b2luKGNvbW1vbl9hcHBkYXRhLnZhbHVlLCAiZWRrcmVwbyIpDQogICAgLSAgICBlbGlmIHN5cy5w bGF0Zm9ybSA9PSAiZGFyd2luIjoNCiAgICAtICAgICAgICByYWlzZSBPU0Vycm9yKCJtYWNPUyBz dXBwb3J0IGlzIGluIHByb2dyZXNzIikNCiAgICAtICAgIGVsaWYgc3lzLnBsYXRmb3JtLnN0YXJ0 c3dpdGgoImxpbnV4Iikgb3Igb3MubmFtZSA9PSAicG9zaXgiOg0KICAgICsgICAgZWxpZiBzeXMu cGxhdGZvcm0gPT0gImRhcndpbiIgb3Igc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImxpbnV4Iikg b3Igb3MubmFtZSA9PSAicG9zaXgiOg0KICAgICAgICAgICAgIGdsb2JhbF9kYXRhX2RpciA9IG9z LnBhdGguZXhwYW5kdXNlcigifi8uZWRrcmVwbyIpDQogICAgICAgICBpZiBub3Qgb3MucGF0aC5p c2RpcihnbG9iYWxfZGF0YV9kaXIpOg0KICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0 cyhvcy5wYXRoLmRpcm5hbWUoZ2xvYmFsX2RhdGFfZGlyKSk6DQogICAgZGlmZiAtLWdpdCBhL2Vk a3JlcG9faW5zdGFsbGVyL2xpbnV4LXNjcmlwdHMvaW5zdGFsbC5weSBiL2Vka3JlcG9faW5zdGFs bGVyL2xpbnV4LXNjcmlwdHMvaW5zdGFsbC5weQ0KICAgIGluZGV4IDUyZjBjNTIuLjA5OTk1NGQg MTAwNzU1DQogICAgLS0tIGEvZWRrcmVwb19pbnN0YWxsZXIvbGludXgtc2NyaXB0cy9pbnN0YWxs LnB5DQogICAgKysrIGIvZWRrcmVwb19pbnN0YWxsZXIvbGludXgtc2NyaXB0cy9pbnN0YWxsLnB5 DQogICAgQEAgLTIzLDYgKzIzLDIxIEBAIGltcG9ydCBzeXMNCiAgICAgaW1wb3J0IHRyYWNlYmFj aw0KICAgICBpbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRUcmVlIGFzIGV0DQogICAgDQogICAgKyMN CiAgICArIyBFbnZpcm9ubWVudCBkZXRlY3Rpb24NCiAgICArIw0KICAgICtNQUMgPSAibWFjIg0K ICAgICtMSU5VWCA9ICJsaW51eCINCiAgICAraWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOg0K ICAgICsgICAgb3N0eXBlID0gTUFDDQogICAgK2VsaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgo ImxpbnV4Iik6DQogICAgKyAgICBvc3R5cGUgPSBMSU5VWA0KICAgICtlbGlmIG9zLm5hbWUgPT0g InBvc2l4IjoNCiAgICArICAgIHByaW50KCJXYXJuaW5nOiBVbnJlY29nbml6ZWQgVU5JWCBPUy4u LiB0cmVhdGluZyBhcyBMaW51eCIpDQogICAgKyAgICBvc3R5cGUgPSBMSU5VWA0KICAgICtlbHNl Og0KICAgICsgICAgcmFpc2UgRW52aXJvbm1lbnRFcnJvcigiVW5zdXBwb3J0ZWQgT1MiKQ0KICAg ICsNCiAgICAgdG9vbF9zaWduX29uID0gJ0luc3RhbGxlciBmb3IgZWRrcmVwbyB2ZXJzaW9uIHt9 XG5Db3B5cmlnaHQoYykgSW50ZWwgQ29ycG9yYXRpb24sIDIwMjAnDQogICAgDQogICAgICMgRGF0 YSBoZXJlIHNob3VsZCBiZSBtYWludGFpbmVkIGluIGEgY29uZmlndXJhdGlvbiBmaWxlIEBAIC0z MSw2ICs0Niw3IEBAIGRpcmVjdG9yaWVzX3dpdGhfZXhlY3V0YWJsZXMgPSBbJ2dpdF9hdXRvbWF0 aW9uJ10gIGNmZ19zcmNfZGlyID0gb3MucGF0aC5hYnNwYXRoKCdjb25maWcnKSAgd2hsX3NyY19k aXIgPSBvcy5wYXRoLmFic3BhdGgoJ3doZWVscycpICBkZWZfcHl0aG9uID0gJ3B5dGhvbjMnDQog ICAgK25mc19ob21lX2RpcmVjdG9yeV9kYXRhID0gcmUuY29tcGlsZShyIk5GU0hvbWVEaXJlY3Rv cnk6XHMqKFxTKykiKQ0KICAgIA0KICAgICAjIFpTSCBDb25maWd1cmF0aW9uIG9wdGlvbnMNCiAg ICAgcHJvbXB0X3JlZ2V4ID0gcmUuY29tcGlsZShyIiNccytbQWFdW0RkXVtEZF1ccytbRWVdW0Rk XVtLa11bUnJdW0VlXVtQcF1bT29dXHMrJlxzK1tHZ11bSWldW1R0XVxzK1tUdF1bT29dXHMrW1R0 XVtIaF1bRWVdXHMrW1BwXVtScl1bT29dW01tXVtQcF1bVHRdIikNCiAgICBAQCAtNjMsNyArNzks OCBAQCBkZWYgaW5pdF9sb2dnZXIodmVyYm9zZSk6DQogICAgDQogICAgIGRlZiBnZXRfYXJncygp Og0KICAgICAgICAgcGFyc2VyID0gQXJndW1lbnRQYXJzZXIoKQ0KICAgIC0gICAgcGFyc2VyLmFk ZF9hcmd1bWVudCgnLWwnLCAnLS1sb2NhbCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9 RmFsc2UsIGhlbHA9J0luc3RhbGwgZWRrcmVwbyB0byB0aGUgdXNlciBkaXJlY3RvcnkgaW5zdGVh ZCBvZiBzeXN0ZW0gd2lkZScpDQogICAgKyAgICBpZiBvc3R5cGUgIT0gTUFDOg0KICAgICsgICAg ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1sJywgJy0tbG9jYWwnLCBhY3Rpb249J3N0b3JlX3Ry dWUnLA0KICAgICsgZGVmYXVsdD1GYWxzZSwgaGVscD0nSW5zdGFsbCBlZGtyZXBvIHRvIHRoZSB1 c2VyIGRpcmVjdG9yeSBpbnN0ZWFkIG9mDQogICAgKyBzeXN0ZW0gd2lkZScpDQogICAgICAgICBw YXJzZXIuYWRkX2FyZ3VtZW50KCctcCcsICctLXB5JywgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9 Tm9uZSwgaGVscD0nU3BlY2lmeSB0aGUgcHl0aG9uIGNvbW1hbmQgdG8gdXNlIHdoZW4gaW5zdGFs bGluZycpDQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctdScsICctLXVzZXInLCBhY3Rp b249J3N0b3JlJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTcGVjaWZ5IHVzZXIgYWNjb3VudCB0byBp bnN0YWxsIGVka3JlcG8gc3VwcG9ydCBvbicpDQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50 KCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLCBo ZWxwPSdFbmFibGVzIHZlcmJvc2Ugb3V0cHV0JykgQEAgLTIxOCw2ICsyMzUsMTggQEAgZGVmIF9j aGVja192ZXJzaW9uKGN1cnJlbnQsIGV4cGVjdGVkKToNCiAgICAgICAgICAgICAgICAgcmV0dXJu IDENCiAgICAgICAgIHJldHVybiAwDQogICAgDQogICAgK2RlZiBnZXRfdXNlcl9ob21lX2RpcmVj dG9yeSh1c2VybmFtZSk6DQogICAgKyAgICBpZiBvc3R5cGUgPT0gTUFDOg0KICAgICsgICAgICAg IHJlcyA9IGRlZmF1bHRfcnVuKFsnZHNjbCcsICcuJywgJy1yZWFkJywgJy9Vc2Vycy97fScuZm9y bWF0KHVzZXJuYW1lKSwgJ05GU0hvbWVEaXJlY3RvcnknXSkNCiAgICArICAgICAgICBkYXRhID0g bmZzX2hvbWVfZGlyZWN0b3J5X2RhdGEubWF0Y2gocmVzLnN0ZG91dC5zdHJpcCgpKQ0KICAgICsg ICAgICAgIGlmIGRhdGE6DQogICAgKyAgICAgICAgICAgIHJldHVybiBkYXRhLmdyb3VwKDEpDQog ICAgKyAgICAgICAgZWxzZToNCiAgICArICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaG9t ZSBkaXJlY3Rvcnkgbm90IGZvdW5kIikNCiAgICArICAgIGVsc2U6DQogICAgKyAgICAgICAgcmVz ID0gZGVmYXVsdF9ydW4oWydnZXRlbnQnLCAncGFzc3dkJywgdXNlcm5hbWVdKQ0KICAgICsgICAg ICAgIHJldHVybiByZXMuc3Rkb3V0LnN0cmlwKCkuc3BsaXQoJzonKVs1XQ0KICAgICsNCiAgICAg ZGVmIGdldF9zaXRlX3BhY2thZ2VzX2RpcmVjdG9yeSgpOg0KICAgICAgICAgcmVzID0gZGVmYXVs dF9ydW4oW2RlZl9weXRob24sICctYycsICdpbXBvcnQgc2l0ZTsgcHJpbnQoc2l0ZS5nZXRzaXRl cGFja2FnZXMoKVswXSknXSkNCiAgICAgICAgIHJldHVybiByZXMuc3Rkb3V0LnN0cmlwKCkNCiAg ICBAQCAtNDI0LDYgKzQ1Myw5IEBAIGRlZiBkb19pbnN0YWxsKCk6DQogICAgDQogICAgICAgICAj IEluaXRpYWxpemUgaW5mb3JtYXRpb24gYmFzZWQgb24gY29tbWFuZCBsaW5lIGlucHV0DQogICAg ICAgICB1c2VybmFtZSA9IGFyZ3MudXNlcg0KICAgICsgICAgaW5zdGFsbF90b19sb2NhbCA9IEZh bHNlDQogICAgKyAgICBpZiBvc3R5cGUgIT0gTUFDIGFuZCBhcmdzLmxvY2FsOg0KICAgICsgICAg ICAgIGluc3RhbGxfdG9fbG9jYWwgPSBUcnVlDQogICAgDQogICAgICAgICB0cnk6DQogICAgICAg ICAgICAgY2ZnID0gY29uZmlncGFyc2VyLkNvbmZpZ1BhcnNlcihhbGxvd19ub192YWx1ZT1UcnVl KQ0KICAgIEBAIC00NDksNyArNDgxLDcgQEAgZGVmIGRvX2luc3RhbGwoKToNCiAgICANCiAgICAg ICAgICMgRGV0ZXJtaW5lIHRoZSB1c2VyIHJ1bm5pbmcgc3Vkbw0KICAgICAgICAgbG9nLmluZm8o J1xuQ29sbGVjdGluZyBzeXN0ZW0gaW5mb3JtYXRpb246JykNCiAgICAtICAgIGlmIG5vdCBhcmdz LmxvY2FsOg0KICAgICsgICAgaWYgbm90IGluc3RhbGxfdG9fbG9jYWwgYW5kIG9zdHlwZSAhPSBN QUM6DQogICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICByZXMgPSBkZWZhdWx0X3J1 bihbJ2lkJywgJy11J10pDQogICAgICAgICAgICAgZXhjZXB0Og0KICAgIEBAIC00NjYsMTEgKzQ5 OCwyMSBAQCBkZWYgZG9faW5zdGFsbCgpOg0KICAgICAgICAgICAgICAgICBsb2cuaW5mbygnLSBV bmFibGUgdG8gZGV0ZXJtaW5lIGN1cnJlbnQgdXNlci4gIFJ1biBpbnN0YWxsZXIgdXNpbmcgdGhl IC0tdXNlciBmbGFnIGFuZCBzcGVjaWZ5IHRoZSBjb3JyZWN0IHVzZXIgbmFtZS4nKQ0KICAgICAg ICAgICAgICAgICByZXR1cm4gMQ0KICAgICAgICAgdHJ5Og0KICAgIC0gICAgICAgIHJlcyA9IGRl ZmF1bHRfcnVuKFsnZ2V0ZW50JywgJ3Bhc3N3ZCcsIHVzZXJuYW1lXSkNCiAgICAtICAgICAgICB1 c2VyX2hvbWVfZGlyID0gcmVzLnN0ZG91dC5zdHJpcCgpLnNwbGl0KCc6JylbNV0NCiAgICArICAg ICAgICB1c2VyX2hvbWVfZGlyID0gZ2V0X3VzZXJfaG9tZV9kaXJlY3RvcnkodXNlcm5hbWUpDQog ICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICAgbG9nLmluZm8oJy0gVW5hYmxlIHRvIGRldGVy bWluZSB1c2VycyBob21lIGRpcmVjdG9yeScpDQogICAgICAgICAgICAgcmV0dXJuIDENCiAgICAr ICAgIGlmIG9zdHlwZSA9PSBNQUM6DQogICAgKyAgICAgICAgdHJ5Og0KICAgICsgICAgICAgICAg ICByZXMgPSBkZWZhdWx0X3J1bihbJ2lkJywgJy11J10pDQogICAgKyAgICAgICAgZXhjZXB0Og0K ICAgICsgICAgICAgICAgICBsb2cuaW5mbygnLSBGYWlsZWQgdG8gZGV0ZXJtaW5lIHVzZXIgSUQn KQ0KICAgICsgICAgICAgICAgICByZXR1cm4gMQ0KICAgICsgICAgICAgIGlmIHJlcy5zdGRvdXQu c3RyaXAoKSA9PSAnMCc6DQogICAgKyAgICAgICAgICAgIGxvZy5pbmZvKCctIEluc3RhbGxlciBt dXN0IE5PVCBiZSBydW4gYXMgcm9vdCcpDQogICAgKyAgICAgICAgICAgIHJldHVybiAxDQogICAg KyAgICAgICAgaWYgb3MucGF0aC5jb21tb25wcmVmaXgoW3VzZXJfaG9tZV9kaXIsIHN5cy5leGVj dXRhYmxlXSkgIT0gdXNlcl9ob21lX2RpcjoNCiAgICArICAgICAgICAgICAgaW5zdGFsbF90b19s b2NhbCA9IFRydWUNCiAgICAgICAgIGRlZmF1bHRfY2ZnX2RpciA9IG9zLnBhdGguam9pbih1c2Vy X2hvbWVfZGlyLCBjZmdfZGlyKQ0KICAgICAgICAgZ2V0X2FkZF9wcm9tcHRfY3VzdG9taXphdGlv bihhcmdzLCB1c2VyX2hvbWVfZGlyKQ0KICAgICAgICAgbG9nLmluZm8oJysgU3lzdGVtIGluZm9y bWF0aW9uIGNvbGxlY3RlZCcpIEBAIC02MjUsNyArNjY3LDcgQEAgZGVmIGRvX2luc3RhbGwoKToN CiAgICAgICAgICAgICAgICAgaW5zdGFsbF93aGwgPSB3aGVlbHNfdG9faW5zdGFsbFt3aGxfbmFt ZV1bJ2luc3RhbGwnXQ0KICAgICAgICAgICAgICAgICBpZiBpbnN0YWxsX3dobDoNCiAgICAgICAg ICAgICAgICAgICAgIGluc3RhbGxfY21kID0gW2RlZl9weXRob24sICctbScsICdwaXAnLCAnaW5z dGFsbCddDQogICAgLSAgICAgICAgICAgICAgICBpZiBhcmdzLmxvY2FsOg0KICAgICsgICAgICAg ICAgICAgICAgaWYgaW5zdGFsbF90b19sb2NhbDoNCiAgICAgICAgICAgICAgICAgICAgICAgICBp bnN0YWxsX2NtZC5hcHBlbmQoJy0tdXNlcicpDQogICAgICAgICAgICAgICAgICAgICBpbnN0YWxs X2NtZC5hcHBlbmQob3MucGF0aC5qb2luKHdobF9zcmNfZGlyLCB3aGwpKQ0KICAgICAgICAgICAg ICAgICAgICAgdHJ5Og0KICAgIEBAIC02MzksMjMgKzY4MSwzMiBAQCBkZWYgZG9faW5zdGFsbCgp Og0KICAgICAgICAgc2V0X2V4ZWN1dGVfcGVybWlzc2lvbnMoKQ0KICAgICAgICAgbG9nLmluZm8o JysgTWFya2VkIHNjcmlwdHMgYXMgZXhlY3V0YWJsZScpDQogICAgDQogICAgKyAgICAjSWYgcHll bnYgaXMgYmVpbmcgdXNlZCwgcmVnZW5lcmF0ZSB0aGUgcHllbnYgc2hpbXMNCiAgICArICAgIGlm IHNodXRpbC53aGljaCgncHllbnYnKSBpcyBub3QgTm9uZToNCiAgICArICAgICAgICB0cnk6DQog ICAgKyAgICAgICAgICAgIHJlcyA9IGRlZmF1bHRfcnVuKFsncHllbnYnLCAncmVoYXNoJ10pDQog ICAgKyAgICAgICAgICAgIGxvZy5pbmZvKCcrIEdlbmVyYXRlZCBweWVudiBzaGltcycpDQogICAg KyAgICAgICAgZXhjZXB0Og0KICAgICsgICAgICAgICAgICBsb2cuaW5mbygnLSBGYWlsZWQgdG8g Z2VuZXJhdGUgcHllbnYgc2hpbScpDQogICAgDQogICAgICAgICAjSW5zdGFsbCB0aGUgY29tbWFu ZCBjb21wbGV0aW9uIHNjcmlwdA0KICAgICAgICAgaWYgc2h1dGlsLndoaWNoKCdlZGtyZXBvJykg aXMgbm90IE5vbmU6DQogICAgLSAgICAgICAgaWYgYXJncy5sb2NhbDoNCiAgICArICAgICAgICBp ZiBpbnN0YWxsX3RvX2xvY2FsIG9yIG9zdHlwZSA9PSBNQUM6DQogICAgICAgICAgICAgICAgIGNv bW1hbmRfY29tcGxldGlvbl9zY3JpcHQgPSBvcy5wYXRoLmpvaW4oZGVmYXVsdF9jZmdfZGlyLCAn ZWRrcmVwb19jb21wbGV0aW9ucy5zaCcpDQogICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAg ICAgICAgY29tbWFuZF9jb21wbGV0aW9uX3NjcmlwdCA9IG9zLnBhdGguam9pbignLycsICdldGMn LCAncHJvZmlsZS5kJywgJ2Vka3JlcG9fY29tcGxldGlvbnMuc2gnKQ0KICAgICAgICAgICAgIHRy eToNCiAgICAgICAgICAgICAgICAgcmVzID0gZGVmYXVsdF9ydW4oWydlZGtyZXBvJywgJ2dlbmVy YXRlLWNvbW1hbmQtY29tcGxldGlvbi1zY3JpcHQnLCBjb21tYW5kX2NvbXBsZXRpb25fc2NyaXB0 XSkNCiAgICAtICAgICAgICAgICAgaWYgYXJncy5sb2NhbDoNCiAgICArICAgICAgICAgICAgaWYg aW5zdGFsbF90b19sb2NhbCBvciBvc3R5cGUgPT0gTUFDOg0KICAgICAgICAgICAgICAgICAgICAg c2h1dGlsLmNob3duKGNvbW1hbmRfY29tcGxldGlvbl9zY3JpcHQsIHVzZXI9dXNlcm5hbWUpDQog ICAgICAgICAgICAgICAgICAgICBvcy5jaG1vZChjb21tYW5kX2NvbXBsZXRpb25fc2NyaXB0LCAw bzY0NCkNCiAgICAgICAgICAgICAgICAgYWRkX2NvbW1hbmRfY29tcGxldGlvbnNfdG9fc2hlbGwo Y29tbWFuZF9jb21wbGV0aW9uX3NjcmlwdCwgYXJncywgdXNlcm5hbWUsIHVzZXJfaG9tZV9kaXIp DQogICAgKyAgICAgICAgICAgIGxvZy5pbmZvKCcrIENvbmZpZ3VyZWQgZWRrcmVwbyBjb21tYW5k IGNvbXBsZXRpb24nKQ0KICAgICAgICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgICAgICAgbG9n LmluZm8oJy0gRmFpbGVkIHRvIGNvbmZpZ3VyZSBlZGtyZXBvIGNvbW1hbmQgY29tcGxldGlvbicp DQogICAgICAgICAgICAgICAgIGlmIGFyZ3MudmVyYm9zZToNCiAgICAgICAgICAgICAgICAgICAg IHRyYWNlYmFjay5wcmludF9leGMoKQ0KICAgICsNCiAgICAgICAgIGxvZy5sb2cobG9nZ2luZy5Q UklOVCwgJ1xuSW5zdGFsbGF0aW9uIGNvbXBsZXRlXG4nKQ0KICAgIA0KICAgICAgICAgcmV0dXJu IDANCiAgICAtLQ0KICAgIDIuMjUuMg0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KDQo=