From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A406D81ECB for ; Tue, 29 Nov 2016 17:28:51 -0800 (PST) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP; 29 Nov 2016 17:28:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,719,1473145200"; d="scan'208";a="37186616" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 29 Nov 2016 17:28:46 -0800 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 29 Nov 2016 17:28:46 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 29 Nov 2016 17:28:45 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.239]) by shsmsx102.ccr.corp.intel.com ([169.254.2.239]) with mapi id 14.03.0248.002; Wed, 30 Nov 2016 09:28:42 +0800 From: "Tian, Feng" To: Marcin Wojtas , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Gao, Liming" , "leif.lindholm@linaro.org" , "ard.biesheuvel@linaro.org" , "jsd@semihalf.com" , "Tian, Feng" Thread-Topic: [PATCH] MdeModulePkg/SdMmcPciHcDxe: Replace deprecated debug level macros Thread-Index: AQHSSkd73XlMyGOC3025hx4O8+wPPaDwvYGQ Date: Wed, 30 Nov 2016 01:28:41 +0000 Message-ID: <7F1BAD85ADEA444D97065A60D2E97EE566E56096@SHSMSX101.ccr.corp.intel.com> References: <1480427548-22298-1-git-send-email-mw@semihalf.com> In-Reply-To: <1480427548-22298-1-git-send-email-mw@semihalf.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/SdMmcPciHcDxe: Replace deprecated debug level macros X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2016 01:28:51 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IEZlbmcgVGlhbiA8ZmVuZy50aWFuQGludGVsLmNvbT4NCg0KSSB3aWxsIGhl bHAgcHVzaCBpdCBpbnRvIEVES0lJIHRydW5rLg0KDQpUaGFua3MNCkZlbmcNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE1hcmNpbiBXb2p0YXMgW21haWx0bzptd0BzZW1paGFs Zi5jb21dIA0KU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMjksIDIwMTYgOTo1MiBQTQ0KVG86IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogVGlhbiwgRmVuZyA8ZmVuZy50aWFuQGludGVsLmNv bT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywg TGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZzsg YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsgbXdAc2VtaWhhbGYuY29tOyBqc2RAc2VtaWhhbGYu Y29tDQpTdWJqZWN0OiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9TZE1tY1BjaUhjRHhlOiBSZXBsYWNl IGRlcHJlY2F0ZWQgZGVidWcgbGV2ZWwgbWFjcm9zDQoNCkZyb206IEphbiBExIVicm/FmyA8anNk QHNlbWloYWxmLmNvbT4NCg0KRUZJX0RfSU5GTywgRUZJX0RfVkVSQk9TRSwgRUZJX0RfV0FSTiBh bmQgRUZJX0RfRVJST1IgYXJlIHJlcGxhY2VkIHdpdGggY3VycmVudGx5IHJlY29tbWVuZGVkIHZh bHVlcy4NCg0KQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVt ZW50IDEuMA0KU2lnbmVkLW9mZi1ieTogSmFuIERhYnJvcyA8anNkQHNlbWloYWxmLmNvbT4NClNp Z25lZC1vZmYtYnk6IE1hcmNpbiBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT4NCi0tLQ0KIE1kZU1v ZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1tY0RldmljZS5jICAgIHwgMzYgKysrKyst LS0tLQ0KIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvU2REZXZpY2UuYyAgICAg IHwgNDAgKysrKystLS0tLS0NCiBNZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL1Nk TW1jUGNpSGNEeGUuYyB8IDIyICsrKy0tLQ0KIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNp SGNEeGUvU2RNbWNQY2lIY2kuYyAgIHwgNzggKysrKysrKysrKystLS0tLS0tLS0tLQ0KIDQgZmls ZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgODggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1n aXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL0VtbWNEZXZpY2UuYyBiL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1tY0RldmljZS5jDQppbmRleCA2MWQz NTE3Li4zZjczMTk0IDEwMDc1NQ0KLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lI Y0R4ZS9FbW1jRGV2aWNlLmMNCisrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNE eGUvRW1tY0RldmljZS5jDQpAQCAtNTMzLDcgKzUzMyw3IEBAIEVtbWNUdW5pbmdDbGtGb3JIczIw MCAoDQogICBkbyB7DQogICAgIFN0YXR1cyA9IEVtbWNTZW5kVHVuaW5nQmxrIChQYXNzVGhydSwg U2xvdCwgQnVzV2lkdGgpOw0KICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgICAg REVCVUcgKChFRklfRF9FUlJPUiwgIkVtbWNUdW5pbmdDbGtGb3JIczIwMDogU2VuZCB0dW5pbmcg YmxvY2sgZmFpbHMgd2l0aCAlclxuIiwgU3RhdHVzKSk7DQorICAgICAgREVCVUcgKChERUJVR19F UlJPUiwgIkVtbWNUdW5pbmdDbGtGb3JIczIwMDogU2VuZCB0dW5pbmcgYmxvY2sgDQorIGZhaWxz IHdpdGggJXJcbiIsIFN0YXR1cykpOw0KICAgICAgIHJldHVybiBTdGF0dXM7DQogICAgIH0NCiAN CkBAIC01NTEsNyArNTUxLDcgQEAgRW1tY1R1bmluZ0Nsa0ZvckhzMjAwICgNCiAgICAgfQ0KICAg fSB3aGlsZSAoKytSZXRyeSA8IDQwKTsNCiANCi0gIERFQlVHICgoRUZJX0RfRVJST1IsICJFbW1j VHVuaW5nQ2xrRm9ySHMyMDA6IFNlbmQgdHVuaW5nIGJsb2NrIGZhaWxzIGF0ICVkIHRpbWVzIHdp dGggSG9zdEN0cmwyICUwMnhcbiIsIFJldHJ5LCBIb3N0Q3RybDIpKTsNCisgIERFQlVHICgoREVC VUdfRVJST1IsICJFbW1jVHVuaW5nQ2xrRm9ySHMyMDA6IFNlbmQgdHVuaW5nIGJsb2NrIGZhaWxz IA0KKyBhdCAlZCB0aW1lcyB3aXRoIEhvc3RDdHJsMiAlMDJ4XG4iLCBSZXRyeSwgSG9zdEN0cmwy KSk7DQogICAvLw0KICAgLy8gQWJvcnQgdGhlIHR1bmluZyBwcm9jZWR1cmUgYW5kIHJlc2V0IHRo ZSB0dW5pbmcgY2lyY3VpdC4NCiAgIC8vDQpAQCAtNjE4LDIwICs2MTgsMjAgQEAgRW1tY1N3aXRj aEJ1c1dpZHRoICgNCiAgIENtZFNldCA9IDA7DQogICBTdGF0dXMgPSBFbW1jU3dpdGNoIChQYXNz VGhydSwgU2xvdCwgQWNjZXNzLCBJbmRleCwgVmFsdWUsIENtZFNldCk7DQogICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJFbW1jU3dpdGNoQnVz V2lkdGg6IFN3aXRjaCB0byBidXMgd2lkdGggJWQgZmFpbHMgd2l0aCAlclxuIiwgQnVzV2lkdGgs IFN0YXR1cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRW1tY1N3aXRjaEJ1c1dpZHRo OiBTd2l0Y2ggdG8gYnVzIHdpZHRoICVkIA0KKyBmYWlscyB3aXRoICVyXG4iLCBCdXNXaWR0aCwg U3RhdHVzKSk7DQogICAgIHJldHVybiBTdGF0dXM7DQogICB9DQogDQogICBTdGF0dXMgPSBFbW1j U2VuZFN0YXR1cyAoUGFzc1RocnUsIFNsb3QsIFJjYSwgJkRldlN0YXR1cyk7DQogICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJFbW1jU3dpdGNo QnVzV2lkdGg6IFNlbmQgc3RhdHVzIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KKyAgICBE RUJVRyAoKERFQlVHX0VSUk9SLCAiRW1tY1N3aXRjaEJ1c1dpZHRoOiBTZW5kIHN0YXR1cyBmYWls cyB3aXRoIA0KKyAlclxuIiwgU3RhdHVzKSk7DQogICAgIHJldHVybiBTdGF0dXM7DQogICB9DQog ICAvLw0KICAgLy8gQ2hlY2sgdGhlIHN3aXRjaCBvcGVyYXRpb24gaXMgcmVhbGx5IHN1Y2Nlc3Nm dWwgb3Igbm90Lg0KICAgLy8NCiAgIGlmICgoRGV2U3RhdHVzICYgQklUNykgIT0gMCkgew0KLSAg ICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiRW1tY1N3aXRjaEJ1c1dpZHRoOiBUaGUgc3dpdGNoIG9w ZXJhdGlvbiBmYWlscyBhcyBEZXZTdGF0dXMgaXMgMHglMDh4XG4iLCBEZXZTdGF0dXMpKTsNCisg ICAgREVCVUcgKChERUJVR19FUlJPUiwgIkVtbWNTd2l0Y2hCdXNXaWR0aDogVGhlIHN3aXRjaCBv cGVyYXRpb24gDQorIGZhaWxzIGFzIERldlN0YXR1cyBpcyAweCUwOHhcbiIsIERldlN0YXR1cykp Ow0KICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsNCiAgIH0NCiANCkBAIC02ODYsMjAgKzY4 NiwyMCBAQCBFbW1jU3dpdGNoQ2xvY2tGcmVxICgNCiANCiAgIFN0YXR1cyA9IEVtbWNTd2l0Y2gg KFBhc3NUaHJ1LCBTbG90LCBBY2Nlc3MsIEluZGV4LCBWYWx1ZSwgQ21kU2V0KTsNCiAgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIkVtbWNTd2l0 Y2hDbG9ja0ZyZXE6IFN3aXRjaCB0byBoc3RpbWluZyAlZCBmYWlscyB3aXRoICVyXG4iLCBIc1Rp bWluZywgU3RhdHVzKSk7DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICJFbW1jU3dpdGNoQ2xv Y2tGcmVxOiBTd2l0Y2ggdG8gaHN0aW1pbmcgJWQgDQorIGZhaWxzIHdpdGggJXJcbiIsIEhzVGlt aW5nLCBTdGF0dXMpKTsNCiAgICAgcmV0dXJuIFN0YXR1czsNCiAgIH0NCiANCiAgIFN0YXR1cyA9 IEVtbWNTZW5kU3RhdHVzIChQYXNzVGhydSwgU2xvdCwgUmNhLCAmRGV2U3RhdHVzKTsNCiAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIkVtbWNT d2l0Y2hDbG9ja0ZyZXE6IFNlbmQgc3RhdHVzIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0K KyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRW1tY1N3aXRjaENsb2NrRnJlcTogU2VuZCBzdGF0 dXMgZmFpbHMgd2l0aCANCisgJXJcbiIsIFN0YXR1cykpOw0KICAgICByZXR1cm4gU3RhdHVzOw0K ICAgfQ0KICAgLy8NCiAgIC8vIENoZWNrIHRoZSBzd2l0Y2ggb3BlcmF0aW9uIGlzIHJlYWxseSBz dWNjZXNzZnVsIG9yIG5vdC4NCiAgIC8vDQogICBpZiAoKERldlN0YXR1cyAmIEJJVDcpICE9IDAp IHsNCi0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIkVtbWNTd2l0Y2hDbG9ja0ZyZXE6IFRoZSBz d2l0Y2ggb3BlcmF0aW9uIGZhaWxzIGFzIERldlN0YXR1cyBpcyAweCUwOHhcbiIsIERldlN0YXR1 cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRW1tY1N3aXRjaENsb2NrRnJlcTogVGhl IHN3aXRjaCBvcGVyYXRpb24gDQorIGZhaWxzIGFzIERldlN0YXR1cyBpcyAweCUwOHhcbiIsIERl dlN0YXR1cykpOw0KICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsNCiAgIH0NCiAgIC8vDQpA QCAtOTk1LDEzICs5OTUsMTMgQEAgRW1tY1NldEJ1c01vZGUgKA0KIA0KICAgU3RhdHVzID0gRW1t Y0dldENzZCAoUGFzc1RocnUsIFNsb3QsIFJjYSwgJkNzZCk7DQogICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJFbW1jU2V0QnVzTW9kZTogR2V0 Q3NkIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiRW1tY1NldEJ1c01vZGU6IEdldENzZCBmYWlscyB3aXRoICVyXG4iLCANCisgU3RhdHVzKSk7 DQogICAgIHJldHVybiBTdGF0dXM7DQogICB9DQogDQogICBTdGF0dXMgPSBFbW1jU2VsZWN0IChQ YXNzVGhydSwgU2xvdCwgUmNhKTsNCiAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAg REVCVUcgKChFRklfRF9FUlJPUiwgIkVtbWNTZXRCdXNNb2RlOiBTZWxlY3QgZmFpbHMgd2l0aCAl clxuIiwgU3RhdHVzKSk7DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICJFbW1jU2V0QnVzTW9k ZTogU2VsZWN0IGZhaWxzIHdpdGggJXJcbiIsIA0KKyBTdGF0dXMpKTsNCiAgICAgcmV0dXJuIFN0 YXR1czsNCiAgIH0NCiANCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBFbW1jU2V0QnVzTW9kZSAoDQog ICAvLw0KICAgU3RhdHVzID0gRW1tY0dldEV4dENzZCAoUGFzc1RocnUsIFNsb3QsICZFeHRDc2Qp Ow0KICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICBERUJVRyAoKEVGSV9EX0VSUk9S LCAiRW1tY1NldEJ1c01vZGU6IEdldEV4dENzZCBmYWlscyB3aXRoICVyXG4iLCBTdGF0dXMpKTsN CisgICAgREVCVUcgKChERUJVR19FUlJPUiwgIkVtbWNTZXRCdXNNb2RlOiBHZXRFeHRDc2QgZmFp bHMgd2l0aCAlclxuIiwgDQorIFN0YXR1cykpOw0KICAgICByZXR1cm4gU3RhdHVzOw0KICAgfQ0K ICAgLy8NCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCBFbW1jU2V0QnVzTW9kZSAoDQogICAgIHJldHVy biBFRklfU1VDQ0VTUzsNCiAgIH0NCiANCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIkVtbWNTZXRC dXNNb2RlOiBIc1RpbWluZyAlZCBDbG9ja0ZyZXEgJWQgQnVzV2lkdGggJWQgRGRyICVhXG4iLCBI c1RpbWluZywgQ2xvY2tGcmVxLCBCdXNXaWR0aCwgSXNEZHIgPyAiVFJVRSI6IkZBTFNFIikpOw0K KyAgREVCVUcgKChERUJVR19JTkZPLCAiRW1tY1NldEJ1c01vZGU6IEhzVGltaW5nICVkIENsb2Nr RnJlcSAlZCANCisgQnVzV2lkdGggJWQgRGRyICVhXG4iLCBIc1RpbWluZywgQ2xvY2tGcmVxLCBC dXNXaWR0aCwgSXNEZHIgPyANCisgIlRSVUUiOiJGQUxTRSIpKTsNCiANCiAgIGlmIChIc1RpbWlu ZyA9PSAzKSB7DQogICAgIC8vDQpAQCAtMTA4NCw3ICsxMDg0LDcgQEAgRW1tY1NldEJ1c01vZGUg KA0KICAgICBTdGF0dXMgPSBFbW1jU3dpdGNoVG9IaWdoU3BlZWQgKFBjaUlvLCBQYXNzVGhydSwg U2xvdCwgUmNhLCBDbG9ja0ZyZXEsIElzRGRyLCBCdXNXaWR0aCk7DQogICB9DQogDQotICBERUJV RyAoKEVGSV9EX0lORk8sICJFbW1jU2V0QnVzTW9kZTogU3dpdGNoIHRvICVhICVyXG4iLCAoSHNU aW1pbmcgPT0gMykgPyAiSFM0MDAiIDogKChIc1RpbWluZyA9PSAyKSA/ICJIUzIwMCIgOiAiSGln aFNwZWVkIiksIFN0YXR1cykpOw0KKyAgREVCVUcgKChERUJVR19JTkZPLCAiRW1tY1NldEJ1c01v ZGU6IFN3aXRjaCB0byAlYSAlclxuIiwgKEhzVGltaW5nID09IA0KKyAzKSA/ICJIUzQwMCIgOiAo KEhzVGltaW5nID09IDIpID8gIkhTMjAwIiA6ICJIaWdoU3BlZWQiKSwgU3RhdHVzKSk7DQogDQog ICByZXR1cm4gU3RhdHVzOw0KIH0NCkBAIC0xMTE4LDcgKzExMTgsNyBAQCBFbW1jSWRlbnRpZmlj YXRpb24gKA0KIA0KICAgU3RhdHVzID0gRW1tY1Jlc2V0IChQYXNzVGhydSwgU2xvdCk7DQogICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfVkVSQk9TRSwgIkVt bWNJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIENtZDAgZmFpbHMgd2l0aCAlclxuIiwgU3RhdHVz KSk7DQorICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIkVtbWNJZGVudGlmaWNhdGlvbjogRXhl Y3V0aW5nIENtZDAgZmFpbHMgDQorIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KICAgICByZXR1cm4g U3RhdHVzOw0KICAgfQ0KIA0KQEAgLTExMjYsNyArMTEyNiw3IEBAIEVtbWNJZGVudGlmaWNhdGlv biAoDQogICBkbyB7DQogICAgIFN0YXR1cyA9IEVtbWNHZXRPY3IgKFBhc3NUaHJ1LCBTbG90LCAm T2NyKTsNCiAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICAgIERFQlVHICgoRUZJ X0RfVkVSQk9TRSwgIkVtbWNJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIENtZDEgZmFpbHMgd2l0 aCAlclxuIiwgU3RhdHVzKSk7DQorICAgICAgREVCVUcgKChERUJVR19WRVJCT1NFLCAiRW1tY0lk ZW50aWZpY2F0aW9uOiBFeGVjdXRpbmcgQ21kMSBmYWlscyANCisgd2l0aCAlclxuIiwgU3RhdHVz KSk7DQogICAgICAgcmV0dXJuIFN0YXR1czsNCiAgICAgfQ0KICAgICBPY3IgfD0gQklUMzA7DQpA QCAtMTEzNCw3ICsxMTM0LDcgQEAgRW1tY0lkZW50aWZpY2F0aW9uICgNCiANCiAgIFN0YXR1cyA9 IEVtbWNHZXRBbGxDaWQgKFBhc3NUaHJ1LCBTbG90KTsNCiAgIGlmIChFRklfRVJST1IgKFN0YXR1 cykpIHsNCi0gICAgREVCVUcgKChFRklfRF9WRVJCT1NFLCAiRW1tY0lkZW50aWZpY2F0aW9uOiBF eGVjdXRpbmcgQ21kMiBmYWlscyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCisgICAgREVCVUcgKChE RUJVR19WRVJCT1NFLCAiRW1tY0lkZW50aWZpY2F0aW9uOiBFeGVjdXRpbmcgQ21kMiBmYWlscyAN Cisgd2l0aCAlclxuIiwgU3RhdHVzKSk7DQogICAgIHJldHVybiBTdGF0dXM7DQogICB9DQogICAv Lw0KQEAgLTExNDYsMTMgKzExNDYsMTMgQEAgRW1tY0lkZW50aWZpY2F0aW9uICgNCiAgIFJjYSAg ICA9IFNsb3QgKyAxOw0KICAgU3RhdHVzID0gRW1tY1NldFJjYSAoUGFzc1RocnUsIFNsb3QsIFJj YSk7DQogICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJS T1IsICJFbW1jSWRlbnRpZmljYXRpb246IEV4ZWN1dGluZyBDbWQzIGZhaWxzIHdpdGggJXJcbiIs IFN0YXR1cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRW1tY0lkZW50aWZpY2F0aW9u OiBFeGVjdXRpbmcgQ21kMyBmYWlscyB3aXRoIA0KKyAlclxuIiwgU3RhdHVzKSk7DQogICAgIHJl dHVybiBTdGF0dXM7DQogICB9DQogICAvLw0KICAgLy8gRW50ZXIgRGF0YSBUcmFuZmVyIE1vZGUu DQogICAvLw0KLSAgREVCVUcgKChFRklfRF9JTkZPLCAiRW1tY0lkZW50aWZpY2F0aW9uOiBGb3Vu ZCBhIEVNTUMgZGV2aWNlIGF0IHNsb3QgWyVkXSwgUkNBIFslZF1cbiIsIFNsb3QsIFJjYSkpOw0K KyAgREVCVUcgKChERUJVR19JTkZPLCAiRW1tY0lkZW50aWZpY2F0aW9uOiBGb3VuZCBhIEVNTUMg ZGV2aWNlIGF0IHNsb3QgDQorIFslZF0sIFJDQSBbJWRdXG4iLCBTbG90LCBSY2EpKTsNCiAgIFBy aXZhdGUtPlNsb3RbU2xvdF0uQ2FyZFR5cGUgPSBFbW1jQ2FyZFR5cGU7DQogDQogICBTdGF0dXMg PSBFbW1jU2V0QnVzTW9kZSAoUGNpSW8sIFBhc3NUaHJ1LCBTbG90LCBSY2EpOyBkaWZmIC0tZ2l0 IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZERldmljZS5jIGIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZERldmljZS5jDQppbmRleCA4MTkzZjRlLi45 MTIyODQ4IDEwMDY0NA0KLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9T ZERldmljZS5jDQorKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL1NkRGV2 aWNlLmMNCkBAIC03NzksNyArNzc5LDcgQEAgU2RDYXJkVHVuaW5nQ2xvY2sgKA0KICAgZG8gew0K ICAgICBTdGF0dXMgPSBTZENhcmRTZW5kVHVuaW5nQmxrIChQYXNzVGhydSwgU2xvdCk7DQogICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAi U2RDYXJkU2VuZFR1bmluZ0JsazogU2VuZCB0dW5pbmcgYmxvY2sgZmFpbHMgd2l0aCAlclxuIiwg U3RhdHVzKSk7DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlNkQ2FyZFNlbmRUdW5pbmdC bGs6IFNlbmQgdHVuaW5nIGJsb2NrIA0KKyBmYWlscyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCiAg ICAgICByZXR1cm4gU3RhdHVzOw0KICAgICB9DQogDQpAQCAtNzk2LDcgKzc5Niw3IEBAIFNkQ2Fy ZFR1bmluZ0Nsb2NrICgNCiAgICAgfQ0KICAgfSB3aGlsZSAoKytSZXRyeSA8IDQwKTsNCiANCi0g IERFQlVHICgoRUZJX0RfRVJST1IsICJTZENhcmRUdW5pbmdDbG9jazogU2VuZCB0dW5pbmcgYmxv Y2sgZmFpbHMgYXQgJWQgdGltZXMgd2l0aCBIb3N0Q3RybDIgJTAyeFxuIiwgUmV0cnksIEhvc3RD dHJsMikpOw0KKyAgREVCVUcgKChERUJVR19FUlJPUiwgIlNkQ2FyZFR1bmluZ0Nsb2NrOiBTZW5k IHR1bmluZyBibG9jayBmYWlscyBhdCANCisgJWQgdGltZXMgd2l0aCBIb3N0Q3RybDIgJTAyeFxu IiwgUmV0cnksIEhvc3RDdHJsMikpOw0KICAgLy8NCiAgIC8vIEFib3J0IHRoZSB0dW5pbmcgcHJv Y2VkdXJlIGFuZCByZXNldCB0aGUgdHVuaW5nIGNpcmN1aXQuDQogICAvLw0KQEAgLTgzOCwyMCAr ODM4LDIwIEBAIFNkQ2FyZFN3aXRjaEJ1c1dpZHRoICgNCiANCiAgIFN0YXR1cyA9IFNkQ2FyZFNl dEJ1c1dpZHRoIChQYXNzVGhydSwgU2xvdCwgUmNhLCBCdXNXaWR0aCk7DQogICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTZENhcmRTd2l0Y2hC dXNXaWR0aDogU3dpdGNoIHRvIGJ1cyB3aWR0aCAlZCBmYWlscyB3aXRoICVyXG4iLCBCdXNXaWR0 aCwgU3RhdHVzKSk7DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICJTZENhcmRTd2l0Y2hCdXNX aWR0aDogU3dpdGNoIHRvIGJ1cyB3aWR0aCAlZCANCisgZmFpbHMgd2l0aCAlclxuIiwgQnVzV2lk dGgsIFN0YXR1cykpOw0KICAgICByZXR1cm4gU3RhdHVzOw0KICAgfQ0KIA0KICAgU3RhdHVzID0g U2RDYXJkU2VuZFN0YXR1cyAoUGFzc1RocnUsIFNsb3QsIFJjYSwgJkRldlN0YXR1cyk7DQogICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTZENh cmRTd2l0Y2hCdXNXaWR0aDogU2VuZCBzdGF0dXMgZmFpbHMgd2l0aCAlclxuIiwgU3RhdHVzKSk7 DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICJTZENhcmRTd2l0Y2hCdXNXaWR0aDogU2VuZCBz dGF0dXMgZmFpbHMgd2l0aCANCisgJXJcbiIsIFN0YXR1cykpOw0KICAgICByZXR1cm4gU3RhdHVz Ow0KICAgfQ0KICAgLy8NCiAgIC8vIENoZWNrIHRoZSBzd2l0Y2ggb3BlcmF0aW9uIGlzIHJlYWxs eSBzdWNjZXNzZnVsIG9yIG5vdC4NCiAgIC8vDQogICBpZiAoKERldlN0YXR1cyA+PiAxNikgIT0g MCkgew0KLSAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU2RDYXJkU3dpdGNoQnVzV2lkdGg6IFRo ZSBzd2l0Y2ggb3BlcmF0aW9uIGZhaWxzIGFzIERldlN0YXR1cyBpcyAweCUwOHhcbiIsIERldlN0 YXR1cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiU2RDYXJkU3dpdGNoQnVzV2lkdGg6 IFRoZSBzd2l0Y2ggb3BlcmF0aW9uIA0KKyBmYWlscyBhcyBEZXZTdGF0dXMgaXMgMHglMDh4XG4i LCBEZXZTdGF0dXMpKTsNCiAgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQogICB9DQogDQpA QCAtOTQ0LDExICs5NDQsMTEgQEAgU2RDYXJkU2V0QnVzTW9kZSAoDQogICB9DQogDQogICBpZiAo KFN3aXRjaFJlc3BbMTZdICYgMHhGKSAhPSBBY2Nlc3NNb2RlKSB7DQotICAgIERFQlVHICgoRUZJ X0RfRVJST1IsICJTZENhcmRTZXRCdXNNb2RlOiBTd2l0Y2ggdG8gQWNjZXNzTW9kZSAlZCBDbG9j a0ZyZXEgJWQgQnVzV2lkdGggJWQgZmFpbHMhIFRoZSBTd2l0Y2ggcmVzcG9uc2UgaXMgMHglMXhc biIsIEFjY2Vzc01vZGUsIENsb2NrRnJlcSwgQnVzV2lkdGgsIFN3aXRjaFJlc3BbMTZdICYgMHhG KSk7DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICJTZENhcmRTZXRCdXNNb2RlOiBTd2l0Y2gg dG8gQWNjZXNzTW9kZSAlZCANCisgQ2xvY2tGcmVxICVkIEJ1c1dpZHRoICVkIGZhaWxzISBUaGUg U3dpdGNoIHJlc3BvbnNlIGlzIDB4JTF4XG4iLCANCisgQWNjZXNzTW9kZSwgQ2xvY2tGcmVxLCBC dXNXaWR0aCwgU3dpdGNoUmVzcFsxNl0gJiAweEYpKTsNCiAgICAgcmV0dXJuIEVGSV9ERVZJQ0Vf RVJST1I7DQogICB9DQogDQotICBERUJVRyAoKEVGSV9EX0lORk8sICJTZENhcmRTZXRCdXNNb2Rl OiBTd2l0Y2ggdG8gQWNjZXNzTW9kZSAlZCBDbG9ja0ZyZXEgJWQgQnVzV2lkdGggJWRcbiIsIEFj Y2Vzc01vZGUsIENsb2NrRnJlcSwgQnVzV2lkdGgpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywg IlNkQ2FyZFNldEJ1c01vZGU6IFN3aXRjaCB0byBBY2Nlc3NNb2RlICVkIA0KKyBDbG9ja0ZyZXEg JWQgQnVzV2lkdGggJWRcbiIsIEFjY2Vzc01vZGUsIENsb2NrRnJlcSwgQnVzV2lkdGgpKTsNCiAN CiAgIC8vDQogICAvLyBTZXQgdG8gSGlnaHQgU3BlZWQgdGltaW5nDQpAQCAtMTAyNSw3ICsxMDI1 LDcgQEAgU2RDYXJkSWRlbnRpZmljYXRpb24gKA0KICAgLy8NCiAgIFN0YXR1cyA9IFNkQ2FyZFJl c2V0IChQYXNzVGhydSwgU2xvdCk7DQogICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAg IERFQlVHICgoRUZJX0RfSU5GTywgIlNkQ2FyZElkZW50aWZpY2F0aW9uOiBFeGVjdXRpbmcgQ21k MCBmYWlscyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCisgICAgREVCVUcgKChERUJVR19JTkZPLCAi U2RDYXJkSWRlbnRpZmljYXRpb246IEV4ZWN1dGluZyBDbWQwIGZhaWxzIA0KKyB3aXRoICVyXG4i LCBTdGF0dXMpKTsNCiAgICAgcmV0dXJuIFN0YXR1czsNCiAgIH0NCiAgIC8vDQpAQCAtMTAzMyw3 ICsxMDMzLDcgQEAgU2RDYXJkSWRlbnRpZmljYXRpb24gKA0KICAgLy8NCiAgIFN0YXR1cyA9IFNk Q2FyZFZvbHRhZ2VDaGVjayAoUGFzc1RocnUsIFNsb3QsIDB4MSwgMHhGRik7DQogICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlNkQ2FyZElkZW50 aWZpY2F0aW9uOiBFeGVjdXRpbmcgQ21kOCBmYWlscyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCisg ICAgREVCVUcgKChERUJVR19JTkZPLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IEV4ZWN1dGluZyBD bWQ4IGZhaWxzIA0KKyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCiAgICAgcmV0dXJuIFN0YXR1czsN CiAgIH0NCiAgIC8vDQpAQCAtMTA0MSw3ICsxMDQxLDcgQEAgU2RDYXJkSWRlbnRpZmljYXRpb24g KA0KICAgLy8NCiAgIFN0YXR1cyA9IFNkaW9TZW5kT3BDb25kIChQYXNzVGhydSwgU2xvdCwgMCwg RkFMU0UpOw0KICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgREVCVUcgKChFRklf RF9JTkZPLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IEZvdW5kIFNESU8gZGV2aWNlLCBpZ25vcmUg aXQgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuIikpOw0KKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJT ZENhcmRJZGVudGlmaWNhdGlvbjogRm91bmQgU0RJTyBkZXZpY2UsIA0KKyBpZ25vcmUgaXQgYXMg d2UgZG9uJ3Qgc3VwcG9ydFxuIikpOw0KICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsNCiAg IH0NCiAgIC8vDQpAQCAtMTA0OSw3ICsxMDQ5LDcgQEAgU2RDYXJkSWRlbnRpZmljYXRpb24gKA0K ICAgLy8NCiAgIFN0YXR1cyA9IFNkQ2FyZFNlbmRPcENvbmQgKFBhc3NUaHJ1LCBTbG90LCAwLCAw LCBGQUxTRSwgRkFMU0UsIEZBTFNFLCAmT2NyKTsNCiAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCi0gICAgREVCVUcgKChFRklfRF9JTkZPLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IEV4ZWN1 dGluZyBTZENhcmRTZW5kT3BDb25kIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJTZENhcmRJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIA0KKyBT ZENhcmRTZW5kT3BDb25kIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KICAgICByZXR1cm4g RUZJX0RFVklDRV9FUlJPUjsNCiAgIH0NCiANCkBAIC0xMTAwLDcgKzExMDAsNyBAQCBTZENhcmRJ ZGVudGlmaWNhdGlvbiAoDQogICBkbyB7DQogICAgIFN0YXR1cyA9IFNkQ2FyZFNlbmRPcENvbmQg KFBhc3NUaHJ1LCBTbG90LCAwLCBPY3IsIFMxOHIsIFhwYywgVFJVRSwgJk9jcik7DQogICAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU2RD YXJkSWRlbnRpZmljYXRpb246IFNkQ2FyZFNlbmRPcENvbmQgZmFpbHMgd2l0aCAlciBPY3IgJXgs IFMxOHIgJXgsIFhwYyAleFxuIiwgU3RhdHVzLCBPY3IsIFMxOHIsIFhwYykpOw0KKyAgICAgIERF QlVHICgoREVCVUdfRVJST1IsICJTZENhcmRJZGVudGlmaWNhdGlvbjogU2RDYXJkU2VuZE9wQ29u ZCANCisgZmFpbHMgd2l0aCAlciBPY3IgJXgsIFMxOHIgJXgsIFhwYyAleFxuIiwgU3RhdHVzLCBP Y3IsIFMxOHIsIFhwYykpOw0KICAgICAgIHJldHVybiBFRklfREVWSUNFX0VSUk9SOw0KICAgICB9 DQogICB9IHdoaWxlICgoT2NyICYgQklUMzEpID09IDApOw0KQEAgLTExMTYsNyArMTExNiw3IEBA IFNkQ2FyZElkZW50aWZpY2F0aW9uICgNCiAgICAgICAgKChPY3IgJiBCSVQyNCkgIT0gMCkpIHsN CiAgICAgU3RhdHVzID0gU2RDYXJkVm9sdGFnZVN3aXRjaCAoUGFzc1RocnUsIFNsb3QpOw0KICAg ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgICAgREVCVUcgKChFRklfRF9FUlJPUiwg IlNkQ2FyZElkZW50aWZpY2F0aW9uOiBFeGVjdXRpbmcgU2RDYXJkVm9sdGFnZVN3aXRjaCBmYWls cyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCisgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiU2RD YXJkSWRlbnRpZmljYXRpb246IEV4ZWN1dGluZyANCisgU2RDYXJkVm9sdGFnZVN3aXRjaCBmYWls cyB3aXRoICVyXG4iLCBTdGF0dXMpKTsNCiAgICAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9S Ow0KICAgICAgIGdvdG8gRXJyb3I7DQogICAgIH0gZWxzZSB7DQpAQCAtMTEyOCw3ICsxMTI4LDcg QEAgU2RDYXJkSWRlbnRpZmljYXRpb24gKA0KIA0KICAgICAgIFNkTW1jSGNSd01taW8gKFBjaUlv LCBTbG90LCBTRF9NTUNfSENfUFJFU0VOVF9TVEFURSwgVFJVRSwgc2l6ZW9mIChQcmVzZW50U3Rh dGUpLCAmUHJlc2VudFN0YXRlKTsNCiAgICAgICBpZiAoKChQcmVzZW50U3RhdGUgPj4gMjApICYg MHhGKSAhPSAwKSB7DQotICAgICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU2RDYXJkSWRlbnRp ZmljYXRpb246IFN3aXRjaFZvbHRhZ2UgZmFpbHMgd2l0aCBQcmVzZW50U3RhdGUgPSAweCV4XG4i LCBQcmVzZW50U3RhdGUpKTsNCisgICAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICJTZENhcmRJ ZGVudGlmaWNhdGlvbjogU3dpdGNoVm9sdGFnZSBmYWlscyANCisgd2l0aCBQcmVzZW50U3RhdGUg PSAweCV4XG4iLCBQcmVzZW50U3RhdGUpKTsNCiAgICAgICAgIFN0YXR1cyA9IEVGSV9ERVZJQ0Vf RVJST1I7DQogICAgICAgICBnb3RvIEVycm9yOw0KICAgICAgIH0NCkBAIC0xMTM5LDcgKzExMzks NyBAQCBTZENhcmRJZGVudGlmaWNhdGlvbiAoDQogDQogICAgICAgU2RNbWNIY1J3TW1pbyAoUGNp SW8sIFNsb3QsIFNEX01NQ19IQ19IT1NUX0NUUkwyLCBUUlVFLCBzaXplb2YgKEhvc3RDdHJsMiks ICZIb3N0Q3RybDIpOw0KICAgICAgIGlmICgoSG9zdEN0cmwyICYgQklUMykgPT0gMCkgew0KLSAg ICAgICAgREVCVUcgKChFRklfRF9FUlJPUiwgIlNkQ2FyZElkZW50aWZpY2F0aW9uOiBTd2l0Y2hW b2x0YWdlIGZhaWxzIHdpdGggSG9zdEN0cmwyID0gMHgleFxuIiwgSG9zdEN0cmwyKSk7DQorICAg ICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IFN3aXRjaFZv bHRhZ2UgZmFpbHMgDQorIHdpdGggSG9zdEN0cmwyID0gMHgleFxuIiwgSG9zdEN0cmwyKSk7DQog ICAgICAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KICAgICAgICAgZ290byBFcnJvcjsN CiAgICAgICB9DQpAQCAtMTE1MCwyOSArMTE1MCwyOSBAQCBTZENhcmRJZGVudGlmaWNhdGlvbiAo DQogDQogICAgICAgU2RNbWNIY1J3TW1pbyAoUGNpSW8sIFNsb3QsIFNEX01NQ19IQ19QUkVTRU5U X1NUQVRFLCBUUlVFLCBzaXplb2YgKFByZXNlbnRTdGF0ZSksICZQcmVzZW50U3RhdGUpOw0KICAg ICAgIGlmICgoKFByZXNlbnRTdGF0ZSA+PiAyMCkgJiAweEYpICE9IDB4Rikgew0KLSAgICAgICAg REVCVUcgKChFRklfRF9FUlJPUiwgIlNkQ2FyZElkZW50aWZpY2F0aW9uOiBTd2l0Y2hWb2x0YWdl IGZhaWxzIHdpdGggUHJlc2VudFN0YXRlID0gMHgleCwgSXQgc2hvdWxkIGJlIDB4RlxuIiwgUHJl c2VudFN0YXRlKSk7DQorICAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiU2RDYXJkSWRlbnRp ZmljYXRpb246IFN3aXRjaFZvbHRhZ2UgZmFpbHMgDQorIHdpdGggUHJlc2VudFN0YXRlID0gMHgl eCwgSXQgc2hvdWxkIGJlIDB4RlxuIiwgUHJlc2VudFN0YXRlKSk7DQogICAgICAgICBTdGF0dXMg PSBFRklfREVWSUNFX0VSUk9SOw0KICAgICAgICAgZ290byBFcnJvcjsNCiAgICAgICB9DQogICAg IH0NCi0gICAgREVCVUcgKChFRklfRF9JTkZPLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IFN3aXRj aCB0byAxLjh2IHNpZ25hbCB2b2x0YWdlIHN1Y2Nlc3NcbiIpKTsNCisgICAgREVCVUcgKChERUJV R19JTkZPLCAiU2RDYXJkSWRlbnRpZmljYXRpb246IFN3aXRjaCB0byAxLjh2IHNpZ25hbCANCisg dm9sdGFnZSBzdWNjZXNzXG4iKSk7DQogICB9DQogDQogICBTdGF0dXMgPSBTZENhcmRBbGxTZW5k Q2lkIChQYXNzVGhydSwgU2xvdCk7DQogICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAg IERFQlVHICgoRUZJX0RfRVJST1IsICJTZENhcmRJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIFNk Q2FyZEFsbFNlbmRDaWQgZmFpbHMgd2l0aCAlclxuIiwgU3RhdHVzKSk7DQorICAgIERFQlVHICgo REVCVUdfRVJST1IsICJTZENhcmRJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIA0KKyBTZENhcmRB bGxTZW5kQ2lkIGZhaWxzIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KICAgICByZXR1cm4gU3RhdHVz Ow0KICAgfQ0KIA0KICAgU3RhdHVzID0gU2RDYXJkU2V0UmNhIChQYXNzVGhydSwgU2xvdCwgJlJj YSk7DQogICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJS T1IsICJTZENhcmRJZGVudGlmaWNhdGlvbjogRXhlY3V0aW5nIFNkQ2FyZFNldFJjYSBmYWlscyB3 aXRoICVyXG4iLCBTdGF0dXMpKTsNCisgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlNkQ2FyZElk ZW50aWZpY2F0aW9uOiBFeGVjdXRpbmcgU2RDYXJkU2V0UmNhIA0KKyBmYWlscyB3aXRoICVyXG4i LCBTdGF0dXMpKTsNCiAgICAgcmV0dXJuIFN0YXR1czsNCiAgIH0NCiAgIC8vDQogICAvLyBFbnRl ciBEYXRhIFRyYW5mZXIgTW9kZS4NCiAgIC8vDQotICBERUJVRyAoKEVGSV9EX0lORk8sICJTZENh cmRJZGVudGlmaWNhdGlvbjogRm91bmQgYSBTRCBkZXZpY2UgYXQgc2xvdCBbJWRdXG4iLCBTbG90 KSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICJTZENhcmRJZGVudGlmaWNhdGlvbjogRm91bmQg YSBTRCBkZXZpY2UgYXQgc2xvdCANCisgWyVkXVxuIiwgU2xvdCkpOw0KICAgUHJpdmF0ZS0+U2xv dFtTbG90XS5DYXJkVHlwZSA9IFNkQ2FyZFR5cGU7DQogDQogICBTdGF0dXMgPSBTZENhcmRTZXRC dXNNb2RlIChQY2lJbywgUGFzc1RocnUsIFNsb3QsIFJjYSwgKChPY3IgJiBCSVQyNCkgIT0gMCkp OyBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZE1tY1Bj aUhjRHhlLmMgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL1NkTW1jUGNpSGNE eGUuYw0KaW5kZXggNWRlMWRkNi4uNGMxYjVjOCAxMDA2NDQNCi0tLSBhL01kZU1vZHVsZVBrZy9C dXMvUGNpL1NkTW1jUGNpSGNEeGUvU2RNbWNQY2lIY0R4ZS5jDQorKysgYi9NZGVNb2R1bGVQa2cv QnVzL1BjaS9TZE1tY1BjaUhjRHhlL1NkTW1jUGNpSGNEeGUuYw0KQEAgLTE5Nyw3ICsxOTcsNyBA QCBEb25lOg0KICAgICAgIFRyYi0+UGFja2V0LT5UcmFuc2FjdGlvblN0YXR1cyA9IEVGSV9USU1F T1VUOw0KICAgICAgIFRyYkV2ZW50ID0gVHJiLT5FdmVudDsNCiAgICAgICBTZE1tY0ZyZWVUcmIg KFRyYik7DQotICAgICAgREVCVUcgKChFRklfRF9WRVJCT1NFLCAiUHJvY2Vzc0FzeW5jVGFza0xp c3QoKTogU2lnbmFsIEV2ZW50ICVwIEVGSV9USU1FT1VUXG4iLCBUcmJFdmVudCkpOw0KKyAgICAg IERFQlVHICgoREVCVUdfVkVSQk9TRSwgIlByb2Nlc3NBc3luY1Rhc2tMaXN0KCk6IFNpZ25hbCBF dmVudCAlcCANCisgRUZJX1RJTUVPVVRcbiIsIFRyYkV2ZW50KSk7DQogICAgICAgZ0JTLT5TaWdu YWxFdmVudCAoVHJiRXZlbnQpOw0KICAgICAgIHJldHVybjsNCiAgICAgfQ0KQEAgLTIwNyw3ICsy MDcsNyBAQCBEb25lOg0KICAgICBUcmItPlBhY2tldC0+VHJhbnNhY3Rpb25TdGF0dXMgPSBTdGF0 dXM7DQogICAgIFRyYkV2ZW50ID0gVHJiLT5FdmVudDsNCiAgICAgU2RNbWNGcmVlVHJiIChUcmIp Ow0KLSAgICBERUJVRyAoKEVGSV9EX1ZFUkJPU0UsICJQcm9jZXNzQXN5bmNUYXNrTGlzdCgpOiBT aWduYWwgRXZlbnQgJXAgd2l0aCAlclxuIiwgVHJiRXZlbnQsIFN0YXR1cykpOw0KKyAgICBERUJV RyAoKERFQlVHX1ZFUkJPU0UsICJQcm9jZXNzQXN5bmNUYXNrTGlzdCgpOiBTaWduYWwgRXZlbnQg JXAgDQorIHdpdGggJXJcbiIsIFRyYkV2ZW50LCBTdGF0dXMpKTsNCiAgICAgZ0JTLT5TaWduYWxF dmVudCAoVHJiRXZlbnQpOw0KICAgfQ0KICAgcmV0dXJuOw0KQEAgLTI0Niw3ICsyNDYsNyBAQCBT ZE1tY1BjaUhjRW51bWVyYXRlRGV2aWNlICgNCiAgICAgaWYgKChQcml2YXRlLT5TbG90W1Nsb3Rd LkVuYWJsZSkgJiYgKFByaXZhdGUtPlNsb3RbU2xvdF0uU2xvdFR5cGUgPT0gUmVtb3ZhYmxlU2xv dCkpIHsNCiAgICAgICBTdGF0dXMgPSBTZE1tY0hjQ2FyZERldGVjdCAoUHJpdmF0ZS0+UGNpSW8s IFNsb3QsICZNZWRpYVByZXNlbnQpOw0KICAgICAgIGlmICgoU3RhdHVzID09IEVGSV9NRURJQV9D SEFOR0VEKSAmJiAhTWVkaWFQcmVzZW50KSB7DQotICAgICAgICBERUJVRyAoKEVGSV9EX0lORk8s ICJTZE1tY1BjaUhjRW51bWVyYXRlRGV2aWNlOiBkZXZpY2UgZGlzY29ubmVjdGVkIGF0IHNsb3Qg JWQgb2YgcGNpICVwXG4iLCBTbG90LCBQcml2YXRlLT5QY2lJbykpOw0KKyAgICAgICAgREVCVUcg KChERUJVR19JTkZPLCAiU2RNbWNQY2lIY0VudW1lcmF0ZURldmljZTogZGV2aWNlIA0KKyBkaXNj b25uZWN0ZWQgYXQgc2xvdCAlZCBvZiBwY2kgJXBcbiIsIFNsb3QsIFByaXZhdGUtPlBjaUlvKSk7 DQogICAgICAgICBQcml2YXRlLT5TbG90W1Nsb3RdLk1lZGlhUHJlc2VudCA9IEZBTFNFOw0KICAg ICAgICAgUHJpdmF0ZS0+U2xvdFtTbG90XS5Jbml0aWFsaXplZCAgPSBGQUxTRTsNCiAgICAgICAg IC8vDQpAQCAtMjc3LDcgKzI3Nyw3IEBAIFNkTW1jUGNpSGNFbnVtZXJhdGVEZXZpY2UgKA0KICAg ICAgICAgICAgICAgKTsNCiAgICAgICB9DQogICAgICAgaWYgKChTdGF0dXMgPT0gRUZJX01FRElB X0NIQU5HRUQpICYmIE1lZGlhUHJlc2VudCkgew0KLSAgICAgICAgREVCVUcgKChFRklfRF9JTkZP LCAiU2RNbWNQY2lIY0VudW1lcmF0ZURldmljZTogZGV2aWNlIGNvbm5lY3RlZCBhdCBzbG90ICVk IG9mIHBjaSAlcFxuIiwgU2xvdCwgUHJpdmF0ZS0+UGNpSW8pKTsNCisgICAgICAgIERFQlVHICgo REVCVUdfSU5GTywgIlNkTW1jUGNpSGNFbnVtZXJhdGVEZXZpY2U6IGRldmljZSANCisgY29ubmVj dGVkIGF0IHNsb3QgJWQgb2YgcGNpICVwXG4iLCBTbG90LCBQcml2YXRlLT5QY2lJbykpOw0KICAg ICAgICAgLy8NCiAgICAgICAgIC8vIFJlc2V0IHRoZSBzcGVjaWZpZWQgc2xvdCBvZiB0aGUgU0Qv TU1DIFBjaSBIb3N0IENvbnRyb2xsZXINCiAgICAgICAgIC8vDQpAQCAtNTI5LDcgKzUyOSw3IEBA IFNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3RhcnQgKA0KICAgQk9PTEVBTiAgICAgICAgICAgICAg ICAgICAgICAgICBNZWRpYVByZXNlbnQ7DQogICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAg ICAgIFN1cHBvcnQ2NEJpdERtYTsNCiANCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIlNkTW1jUGNp SGNEcml2ZXJCaW5kaW5nU3RhcnQ6IFN0YXJ0XG4iKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8s ICJTZE1tY1BjaUhjRHJpdmVyQmluZGluZ1N0YXJ0OiBTdGFydFxuIikpOw0KIA0KICAgLy8NCiAg IC8vIE9wZW4gUENJIEkvTyBQcm90b2NvbCBhbmQgc2F2ZSBwb2ludGVyIHRvIG9wZW4gcHJvdG9j b2wgQEAgLTYyMCw3ICs2MjAsNyBAQCBTZE1tY1BjaUhjRHJpdmVyQmluZGluZ1N0YXJ0ICgNCiAN CiAgICAgUHJpdmF0ZS0+U2xvdFtTbG90XS5TbG90VHlwZSA9IFByaXZhdGUtPkNhcGFiaWxpdHlb U2xvdF0uU2xvdFR5cGU7DQogICAgIGlmICgoUHJpdmF0ZS0+U2xvdFtTbG90XS5TbG90VHlwZSAh PSBSZW1vdmFibGVTbG90KSAmJiAoUHJpdmF0ZS0+U2xvdFtTbG90XS5TbG90VHlwZSAhPSBFbWJl ZGRlZFNsb3QpKSB7DQotICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiU2RNbWNQY2lIY0R4ZSBk b2Vzbid0IHN1cHBvcnQgdGhlIHNsb3QgdHlwZSBbJWRdISEhXG4iLCBQcml2YXRlLT5TbG90W1Ns b3RdLlNsb3RUeXBlKSk7DQorICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiU2RNbWNQY2lIY0R4 ZSBkb2Vzbid0IHN1cHBvcnQgdGhlIHNsb3QgdHlwZSANCisgWyVkXSEhIVxuIiwgUHJpdmF0ZS0+ U2xvdFtTbG90XS5TbG90VHlwZSkpOw0KICAgICAgIGNvbnRpbnVlOw0KICAgICB9DQogDQpAQCAt NjM4LDcgKzYzOCw3IEBAIFNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3RhcnQgKA0KICAgICBpZiAo RUZJX0VSUk9SIChTdGF0dXMpICYmIChTdGF0dXMgIT0gRUZJX01FRElBX0NIQU5HRUQpKSB7DQog ICAgICAgY29udGludWU7DQogICAgIH0gZWxzZSBpZiAoIU1lZGlhUHJlc2VudCkgew0KLSAgICAg IERFQlVHICgoRUZJX0RfRVJST1IsICJTZE1tY0hjQ2FyZERldGVjdDogTm8gZGV2aWNlIGF0dGFj aGVkIGluIFNsb3RbJWRdISEhXG4iLCBTbG90KSk7DQorICAgICAgREVCVUcgKChFRklfRVJST1Is ICJTZE1tY0hjQ2FyZERldGVjdDogTm8gZGV2aWNlIGF0dGFjaGVkIGluIA0KKyBTbG90WyVkXSEh IVxuIiwgU2xvdCkpOw0KICAgICAgIGNvbnRpbnVlOw0KICAgICB9DQogDQpAQCAtNjc5LDcgKzY3 OSw3IEBAIFNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3RhcnQgKA0KICAgICAgICAgICAgICAgICAg ICAgICBOVUxMDQogICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCi0gICAgICBERUJVRyAoKEVGSV9EX1dBUk4sICJTZE1tY1BjaUhjRHJpdmVy QmluZGluZ1N0YXJ0OiBmYWlsZWQgdG8gZW5hYmxlIDY0LWJpdCBETUEgKCVyKVxuIiwgU3RhdHVz KSk7DQorICAgICAgREVCVUcgKChERUJVR19XQVJOLCAiU2RNbWNQY2lIY0RyaXZlckJpbmRpbmdT dGFydDogZmFpbGVkIHRvIA0KKyBlbmFibGUgNjQtYml0IERNQSAoJXIpXG4iLCBTdGF0dXMpKTsN CiAgICAgfQ0KICAgfQ0KIA0KQEAgLTcyOCw3ICs3MjgsNyBAQCBTZE1tY1BjaUhjRHJpdmVyQmlu ZGluZ1N0YXJ0ICgNCiAgICAgICAgICAgICAgICAgICBOVUxMDQogICAgICAgICAgICAgICAgICAg KTsNCiANCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIlNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3Rh cnQ6ICVyIEVuZCBvbiAleFxuIiwgU3RhdHVzLCBDb250cm9sbGVyKSk7DQorICBERUJVRyAoKERF QlVHX0lORk8sICJTZE1tY1BjaUhjRHJpdmVyQmluZGluZ1N0YXJ0OiAlciBFbmQgb24gJXhcbiIs IA0KKyBTdGF0dXMsIENvbnRyb2xsZXIpKTsNCiANCiBEb25lOg0KICAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KQEAgLTgwOSw3ICs4MDksNyBAQCBTZE1tY1BjaUhjRHJpdmVyQmluZGluZ1N0 b3AgKA0KICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICAgICAgKk5leHRMaW5rOw0K ICAgU0RfTU1DX0hDX1RSQiAgICAgICAgICAgICAgICAgICAgICAgKlRyYjsNCiANCi0gIERFQlVH ICgoRUZJX0RfSU5GTywgIlNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3RvcDogU3RhcnRcbiIpKTsN CisgIERFQlVHICgoREVCVUdfSU5GTywgIlNkTW1jUGNpSGNEcml2ZXJCaW5kaW5nU3RvcDogU3Rh cnRcbiIpKTsNCiANCiAgIFN0YXR1cyA9IGdCUy0+T3BlblByb3RvY29sICgNCiAgICAgICAgICAg ICAgICAgICBDb250cm9sbGVyLA0KQEAgLTg4Myw3ICs4ODMsNyBAQCBTZE1tY1BjaUhjRHJpdmVy QmluZGluZ1N0b3AgKA0KIA0KICAgRnJlZVBvb2wgKFByaXZhdGUpOw0KIA0KLSAgREVCVUcgKChF RklfRF9JTkZPLCAiU2RNbWNQY2lIY0RyaXZlckJpbmRpbmdTdG9wOiBFbmQgd2l0aCAlclxuIiwg U3RhdHVzKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICJTZE1tY1BjaUhjRHJpdmVyQmluZGlu Z1N0b3A6IEVuZCB3aXRoICVyXG4iLCANCisgU3RhdHVzKSk7DQogDQogICByZXR1cm4gU3RhdHVz Ow0KIH0NCmRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL1Nk TW1jUGNpSGNpLmMgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL1NkTW1jUGNp SGNpLmMNCmluZGV4IGI0ZmYyYWYuLmNjYmYzNTUgMTAwNjQ0DQotLS0gYS9NZGVNb2R1bGVQa2cv QnVzL1BjaS9TZE1tY1BjaUhjRHhlL1NkTW1jUGNpSGNpLmMNCisrKyBiL01kZU1vZHVsZVBrZy9C dXMvUGNpL1NkTW1jUGNpSGNEeGUvU2RNbWNQY2lIY2kuYw0KQEAgLTMzLDQ2ICszMyw0NiBAQCBE dW1wQ2FwYWJpbGl0eVJlZyAoDQogICAvLw0KICAgLy8gRHVtcCBDYXBhYmlsaXR5IERhdGENCiAg IC8vDQotICBERUJVRyAoKEVGSV9EX0lORk8sICIgPT0gU2xvdCBbJWRdIENhcGFiaWxpdHkgaXMg MHgleCA9PVxuIiwgU2xvdCwgQ2FwYWJpbGl0eSkpOw0KLSAgREVCVUcgKChFRklfRF9JTkZPLCAi ICAgVGltZW91dCBDbGsgRnJlcSAgJWQlYVxuIiwgQ2FwYWJpbGl0eS0+VGltZW91dEZyZXEsIChD YXBhYmlsaXR5LT5UaW1lb3V0VW5pdCkgPyAiTUh6IiA6ICJLSHoiKSk7DQotICBERUJVRyAoKEVG SV9EX0lORk8sICIgICBCYXNlIENsayBGcmVxICAgICAlZE1IelxuIiwgQ2FwYWJpbGl0eS0+QmFz ZUNsa0ZyZXEpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIE1heCBCbGsgTGVuICAgICAg ICVkYnl0ZXNcbiIsIDUxMiAqICgxIDw8IENhcGFiaWxpdHktPk1heEJsa0xlbikpKTsNCi0gIERF QlVHICgoRUZJX0RfSU5GTywgIiAgIDgtYml0IFN1cHBvcnQgICAgICVhXG4iLCBDYXBhYmlsaXR5 LT5CdXNXaWR0aDggPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQotICBERUJVRyAoKEVGSV9EX0lORk8s ICIgICBBRE1BMiBTdXBwb3J0ICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+QWRtYTIgPyAiVFJVRSIg OiAiRkFMU0UiKSk7DQotICBERUJVRyAoKEVGSV9EX0lORk8sICIgICBIaWdoU3BlZWQgU3VwcG9y dCAlYVxuIiwgQ2FwYWJpbGl0eS0+SGlnaFNwZWVkID8gIlRSVUUiIDogIkZBTFNFIikpOw0KLSAg REVCVUcgKChFRklfRF9JTkZPLCAiICAgU0RNQSBTdXBwb3J0ICAgICAgJWFcbiIsIENhcGFiaWxp dHktPlNkbWEgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQotICBERUJVRyAoKEVGSV9EX0lORk8sICIg ICBTdXNwZW5kL1Jlc3VtZSAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+U3VzcFJlcyA/ICJUUlVFIiA6 ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIFZvbHRhZ2UgMy4zICAgICAg ICVhXG4iLCBDYXBhYmlsaXR5LT5Wb2x0YWdlMzMgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQotICBE RUJVRyAoKEVGSV9EX0lORk8sICIgICBWb2x0YWdlIDMuMCAgICAgICAlYVxuIiwgQ2FwYWJpbGl0 eS0+Vm9sdGFnZTMwID8gIlRSVUUiIDogIkZBTFNFIikpOw0KLSAgREVCVUcgKChFRklfRF9JTkZP LCAiICAgVm9sdGFnZSAxLjggICAgICAgJWFcbiIsIENhcGFiaWxpdHktPlZvbHRhZ2UxOCA/ICJU UlVFIiA6ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIDY0LWJpdCBTeXMg QnVzICAgICVhXG4iLCBDYXBhYmlsaXR5LT5TeXNCdXM2NCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsN Ci0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIEFzeW5jIEludGVycnVwdCAgICVhXG4iLCBDYXBh YmlsaXR5LT5Bc3luY0ludCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0Rf SU5GTywgIiAgIFNsb3RUeXBlICAgICAgICAgICIpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywg IiA9PSBTbG90IFslZF0gQ2FwYWJpbGl0eSBpcyAweCV4ID09XG4iLCBTbG90LCBDYXBhYmlsaXR5 KSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBUaW1lb3V0IENsayBGcmVxICAlZCVhXG4i LCBDYXBhYmlsaXR5LT5UaW1lb3V0RnJlcSwgKENhcGFiaWxpdHktPlRpbWVvdXRVbml0KSA/ICJN SHoiIDogIktIeiIpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIEJhc2UgQ2xrIEZyZXEg ICAgICVkTUh6XG4iLCBDYXBhYmlsaXR5LT5CYXNlQ2xrRnJlcSkpOw0KKyAgREVCVUcgKChERUJV R19JTkZPLCAiICAgTWF4IEJsayBMZW4gICAgICAgJWRieXRlc1xuIiwgNTEyICogKDEgPDwgQ2Fw YWJpbGl0eS0+TWF4QmxrTGVuKSkpOw0KKyAgREVCVUcgKChERUJVR19JTkZPLCAiICAgOC1iaXQg U3VwcG9ydCAgICAgJWFcbiIsIENhcGFiaWxpdHktPkJ1c1dpZHRoOCA/ICJUUlVFIiA6ICJGQUxT RSIpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIEFETUEyIFN1cHBvcnQgICAgICVhXG4i LCBDYXBhYmlsaXR5LT5BZG1hMiA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCisgIERFQlVHICgoREVC VUdfSU5GTywgIiAgIEhpZ2hTcGVlZCBTdXBwb3J0ICVhXG4iLCBDYXBhYmlsaXR5LT5IaWdoU3Bl ZWQgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBTRE1B IFN1cHBvcnQgICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+U2RtYSA/ICJUUlVFIiA6ICJGQUxTRSIp KTsNCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIFN1c3BlbmQvUmVzdW1lICAgICVhXG4iLCBD YXBhYmlsaXR5LT5TdXNwUmVzID8gIlRSVUUiIDogIkZBTFNFIikpOw0KKyAgREVCVUcgKChERUJV R19JTkZPLCAiICAgVm9sdGFnZSAzLjMgICAgICAgJWFcbiIsIENhcGFiaWxpdHktPlZvbHRhZ2Uz MyA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIFZvbHRh Z2UgMy4wICAgICAgICVhXG4iLCBDYXBhYmlsaXR5LT5Wb2x0YWdlMzAgPyAiVFJVRSIgOiAiRkFM U0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBWb2x0YWdlIDEuOCAgICAgICAlYVxu IiwgQ2FwYWJpbGl0eS0+Vm9sdGFnZTE4ID8gIlRSVUUiIDogIkZBTFNFIikpOw0KKyAgREVCVUcg KChERUJVR19JTkZPLCAiICAgNjQtYml0IFN5cyBCdXMgICAgJWFcbiIsIENhcGFiaWxpdHktPlN5 c0J1czY0ID8gIlRSVUUiIDogIkZBTFNFIikpOw0KKyAgREVCVUcgKChERUJVR19JTkZPLCAiICAg QXN5bmMgSW50ZXJydXB0ICAgJWFcbiIsIENhcGFiaWxpdHktPkFzeW5jSW50ID8gIlRSVUUiIDog IkZBTFNFIikpOw0KKyAgREVCVUcgKChERUJVR19JTkZPLCAiICAgU2xvdFR5cGUgICAgICAgICAg IikpOw0KICAgaWYgKENhcGFiaWxpdHktPlNsb3RUeXBlID09IDB4MDApIHsNCi0gICAgREVCVUcg KChFRklfRF9JTkZPLCAiJWFcbiIsICJSZW1vdmFibGUgU2xvdCIpKTsNCisgICAgREVCVUcgKChE RUJVR19JTkZPLCAiJWFcbiIsICJSZW1vdmFibGUgU2xvdCIpKTsNCiAgIH0gZWxzZSBpZiAoQ2Fw YWJpbGl0eS0+U2xvdFR5cGUgPT0gMHgwMSkgew0KLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICIl YVxuIiwgIkVtYmVkZGVkIFNsb3QiKSk7DQorICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhXG4i LCAiRW1iZWRkZWQgU2xvdCIpKTsNCiAgIH0gZWxzZSBpZiAoQ2FwYWJpbGl0eS0+U2xvdFR5cGUg PT0gMHgwMikgew0KLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICIlYVxuIiwgIlNoYXJlZCBCdXMg U2xvdCIpKTsNCisgICAgREVCVUcgKChERUJVR19JTkZPLCAiJWFcbiIsICJTaGFyZWQgQnVzIFNs b3QiKSk7DQogICB9IGVsc2Ugew0KLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICIlYVxuIiwgIlJl c2VydmVkIikpOw0KLSAgfQ0KLSAgREVCVUcgKChFRklfRF9JTkZPLCAiICAgU0RSNTAgIFN1cHBv cnQgICAgJWFcbiIsIENhcGFiaWxpdHktPlNkcjUwID8gIlRSVUUiIDogIkZBTFNFIikpOw0KLSAg REVCVUcgKChFRklfRF9JTkZPLCAiICAgU0RSMTA0IFN1cHBvcnQgICAgJWFcbiIsIENhcGFiaWxp dHktPlNkcjEwNCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywg IiAgIEREUjUwICBTdXBwb3J0ICAgICVhXG4iLCBDYXBhYmlsaXR5LT5EZHI1MCA/ICJUUlVFIiA6 ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIERyaXZlciBUeXBlIEEgICAg ICVhXG4iLCBDYXBhYmlsaXR5LT5Ecml2ZXJUeXBlQSA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCi0g IERFQlVHICgoRUZJX0RfSU5GTywgIiAgIERyaXZlciBUeXBlIEMgICAgICVhXG4iLCBDYXBhYmls aXR5LT5Ecml2ZXJUeXBlQyA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0Rf SU5GTywgIiAgIERyaXZlciBUeXBlIEQgICAgICVhXG4iLCBDYXBhYmlsaXR5LT5Ecml2ZXJUeXBl RCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCi0gIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIERyaXZl ciBUeXBlIDQgICAgICVhXG4iLCBDYXBhYmlsaXR5LT5Ecml2ZXJUeXBlNCA/ICJUUlVFIiA6ICJG QUxTRSIpKTsNCisgICAgREVCVUcgKChERUJVR19JTkZPLCAiJWFcbiIsICJSZXNlcnZlZCIpKTsg IH0NCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIFNEUjUwICBTdXBwb3J0ICAgICVhXG4iLCBD YXBhYmlsaXR5LT5TZHI1MCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCisgIERFQlVHICgoREVCVUdf SU5GTywgIiAgIFNEUjEwNCBTdXBwb3J0ICAgICVhXG4iLCBDYXBhYmlsaXR5LT5TZHIxMDQgPyAi VFJVRSIgOiAiRkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBERFI1MCAgU3Vw cG9ydCAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+RGRyNTAgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQor ICBERUJVRyAoKERFQlVHX0lORk8sICIgICBEcml2ZXIgVHlwZSBBICAgICAlYVxuIiwgQ2FwYWJp bGl0eS0+RHJpdmVyVHlwZUEgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVH X0lORk8sICIgICBEcml2ZXIgVHlwZSBDICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+RHJpdmVyVHlw ZUMgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBEcml2 ZXIgVHlwZSBEICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+RHJpdmVyVHlwZUQgPyAiVFJVRSIgOiAi RkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBEcml2ZXIgVHlwZSA0ICAgICAl YVxuIiwgQ2FwYWJpbGl0eS0+RHJpdmVyVHlwZTQgPyAiVFJVRSIgOiAiRkFMU0UiKSk7DQogICBp ZiAoQ2FwYWJpbGl0eS0+VGltZXJDb3VudCA9PSAwKSB7DQotICAgIERFQlVHICgoRUZJX0RfSU5G TywgIiAgIFJldHVuaW5nIFRpbWVyQ250IERpc2FibGVkXG4iLCAyICogKENhcGFiaWxpdHktPlRp bWVyQ291bnQgLSAxKSkpOw0KKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIgICBSZXR1bmluZyBU aW1lckNudCBEaXNhYmxlZFxuIiwgMiAqIChDYXBhYmlsaXR5LT5UaW1lckNvdW50IC0gMSkpKTsN CiAgIH0gZWxzZSB7DQotICAgIERFQlVHICgoRUZJX0RfSU5GTywgIiAgIFJldHVuaW5nIFRpbWVy Q250ICVkc2Vjb25kc1xuIiwgMiAqIChDYXBhYmlsaXR5LT5UaW1lckNvdW50IC0gMSkpKTsNCisg ICAgREVCVUcgKChERUJVR19JTkZPLCAiICAgUmV0dW5pbmcgVGltZXJDbnQgJWRzZWNvbmRzXG4i LCAyICogKENhcGFiaWxpdHktPlRpbWVyQ291bnQgLSAxKSkpOw0KICAgfQ0KLSAgREVCVUcgKChF RklfRF9JTkZPLCAiICAgU0RSNTAgVHVuaW5nICAgICAgJWFcbiIsIENhcGFiaWxpdHktPlR1bmlu Z1NEUjUwID8gIlRSVUUiIDogIkZBTFNFIikpOw0KLSAgREVCVUcgKChFRklfRF9JTkZPLCAiICAg UmV0dW5pbmcgTW9kZSAgICAgTW9kZSAlZFxuIiwgQ2FwYWJpbGl0eS0+UmV0dW5pbmdNb2QgKyAx KSk7DQotICBERUJVRyAoKEVGSV9EX0lORk8sICIgICBDbG9jayBNdWx0aXBsaWVyICBNID0gJWRc biIsIENhcGFiaWxpdHktPkNsa011bHRpcGxpZXIgKyAxKSk7DQotICBERUJVRyAoKEVGSV9EX0lO Rk8sICIgICBIUyA0MDAgICAgICAgICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+SHM0MDAgPyAiVFJV RSIgOiAiRkFMU0UiKSk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBTRFI1MCBUdW5pbmcg ICAgICAlYVxuIiwgQ2FwYWJpbGl0eS0+VHVuaW5nU0RSNTAgPyAiVFJVRSIgOiAiRkFMU0UiKSk7 DQorICBERUJVRyAoKERFQlVHX0lORk8sICIgICBSZXR1bmluZyBNb2RlICAgICBNb2RlICVkXG4i LCBDYXBhYmlsaXR5LT5SZXR1bmluZ01vZCArIDEpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywg IiAgIENsb2NrIE11bHRpcGxpZXIgIE0gPSAlZFxuIiwgQ2FwYWJpbGl0eS0+Q2xrTXVsdGlwbGll ciArIDEpKTsNCisgIERFQlVHICgoREVCVUdfSU5GTywgIiAgIEhTIDQwMCAgICAgICAgICAgICVh XG4iLCBDYXBhYmlsaXR5LT5IczQwMCA/ICJUUlVFIiA6ICJGQUxTRSIpKTsNCiAgIHJldHVybjsN CiB9DQogDQpAQCAtNDM5LDcgKzQzOSw3IEBAIFNkTW1jSGNSZXNldCAoDQogICBTdGF0dXMgID0g U2RNbWNIY1J3TW1pbyAoUGNpSW8sIFNsb3QsIFNEX01NQ19IQ19TV19SU1QsIEZBTFNFLCBzaXpl b2YgKFN3UmVzZXQpLCAmU3dSZXNldCk7DQogDQogICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTZE1tY0hjUmVzZXQ6IHdyaXRlIGZ1bGwgMSBm YWlsczogJXJcbiIsIFN0YXR1cykpOw0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiU2RNbWNI Y1Jlc2V0OiB3cml0ZSBmdWxsIDEgZmFpbHM6ICVyXG4iLCANCisgU3RhdHVzKSk7DQogICAgIHJl dHVybiBTdGF0dXM7DQogICB9DQogDQpAQCAtNDUzLDcgKzQ1Myw3IEBAIFNkTW1jSGNSZXNldCAo DQogICAgICAgICAgICAgIFNEX01NQ19IQ19HRU5FUklDX1RJTUVPVVQNCiAgICAgICAgICAgICAg KTsNCiAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgREVCVUcgKChFRklfRF9JTkZP LCAiU2RNbWNIY1Jlc2V0OiByZXNldCBkb25lIHdpdGggJXJcbiIsIFN0YXR1cykpOw0KKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJTZE1tY0hjUmVzZXQ6IHJlc2V0IGRvbmUgd2l0aCAlclxuIiwg U3RhdHVzKSk7DQogICAgIHJldHVybiBTdGF0dXM7DQogICB9DQogICAvLw0KQEAgLTczMiw3ICs3 MzIsNyBAQCBTZE1tY0hjQ2xvY2tTdXBwbHkgKA0KICAgICB9DQogICB9DQogDQotICBERUJVRyAo KEVGSV9EX0lORk8sICJCYXNlQ2xrRnJlcSAlZE1IeiBEaXZpc29yICVkIENsb2NrRnJlcSAlZEto elxuIiwgQmFzZUNsa0ZyZXEsIERpdmlzb3IsIENsb2NrRnJlcSkpOw0KKyAgREVCVUcgKChERUJV R19JTkZPLCAiQmFzZUNsa0ZyZXEgJWRNSHogRGl2aXNvciAlZCBDbG9ja0ZyZXEgJWRLaHpcbiIs IA0KKyBCYXNlQ2xrRnJlcSwgRGl2aXNvciwgQ2xvY2tGcmVxKSk7DQogDQogICBTdGF0dXMgPSBT ZE1tY0hjUndNbWlvIChQY2lJbywgU2xvdCwgU0RfTU1DX0hDX0NUUkxfVkVSLCBUUlVFLCBzaXpl b2YgKENvbnRyb2xsZXJWZXIpLCAmQ29udHJvbGxlclZlcik7DQogICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpKSB7DQpAQCAtNzU0LDcgKzc1NCw3IEBAIFNkTW1jSGNDbG9ja1N1cHBseSAoDQogICAg IEFTU0VSVCAoRGl2aXNvciA8PSAweDgwKTsNCiAgICAgQ2xvY2tDdHJsID0gKERpdmlzb3IgJiAw eEZGKSA8PCA4Ow0KICAgfSBlbHNlIHsNCi0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIlVua25v d24gU0QgSG9zdCBDb250cm9sbGVyIFNwZWMgdmVyc2lvbiBbMHgleF0hISFcbiIsIENvbnRyb2xs ZXJWZXIpKTsNCisgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVua25vd24gU0QgSG9zdCBDb250 cm9sbGVyIFNwZWMgdmVyc2lvbiANCisgWzB4JXhdISEhXG4iLCBDb250cm9sbGVyVmVyKSk7DQog ICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQogICB9DQogDQpAQCAtNzcyLDcgKzc3Miw3IEBA IFNkTW1jSGNDbG9ja1N1cHBseSAoDQogICBDbG9ja0N0cmwgfD0gQklUMDsNCiAgIFN0YXR1cyA9 IFNkTW1jSGNSd01taW8gKFBjaUlvLCBTbG90LCBTRF9NTUNfSENfQ0xPQ0tfQ1RSTCwgRkFMU0Us IHNpemVvZiAoQ2xvY2tDdHJsKSwgJkNsb2NrQ3RybCk7DQogICBpZiAoRUZJX0VSUk9SIChTdGF0 dXMpKSB7DQotICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTZXQgU0RDTEsgRnJlcXVlbmN5IFNl bGVjdCBhbmQgSW50ZXJuYWwgQ2xvY2sgRW5hYmxlIGZpZWxkcyBmYWlsc1xuIikpOw0KKyAgICBE RUJVRyAoKERFQlVHX0VSUk9SLCAiU2V0IFNEQ0xLIEZyZXF1ZW5jeSBTZWxlY3QgYW5kIEludGVy bmFsIENsb2NrIA0KKyBFbmFibGUgZmllbGRzIGZhaWxzXG4iKSk7DQogICAgIHJldHVybiBTdGF0 dXM7DQogICB9DQogDQpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgQnVpbGRBZG1hRGVzY1RhYmxlICgN CiAgIC8vIGZvciAzMi1iaXQgYWRkcmVzcyBkZXNjcmlwdG9yIHRhYmxlLg0KICAgLy8NCiAgIGlm ICgoRGF0YSAmIChCSVQwIHwgQklUMSkpICE9IDApIHsNCi0gICAgREVCVUcgKChFRklfRF9JTkZP LCAiVGhlIGJ1ZmZlciBbMHgleF0gdG8gY29uc3RydWN0IEFETUEgZGVzYyBpcyBub3QgYWxpZ25l ZCB0byA0IGJ5dGVzIGJvdW5kYXJ5IVxuIiwgRGF0YSkpOw0KKyAgICBERUJVRyAoKERFQlVHX0lO Rk8sICJUaGUgYnVmZmVyIFsweCV4XSB0byBjb25zdHJ1Y3QgQURNQSBkZXNjIGlzIA0KKyBub3Qg YWxpZ25lZCB0byA0IGJ5dGVzIGJvdW5kYXJ5IVxuIiwgRGF0YSkpOw0KICAgfQ0KIA0KICAgRW50 cmllcyAgID0gRGl2VTY0eDMyICgoRGF0YUxlbiArIEFETUFfTUFYX0RBVEFfUEVSX0xJTkUgLSAx KSwgQURNQV9NQVhfREFUQV9QRVJfTElORSk7DQotLQ0KMS44LjMuMQ0KDQo=