From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: Ping: [PATCH v2] x86: assorted array_index_nospec() insertions Date: Thu, 23 Aug 2018 08:40:21 +0000 Message-ID: <5f9cdf71b51f44f994399ddcd558d203@AMSPEX02CL03.citrite.net> References: <5B59C78002000078001D8317@prv1-mh.provo.novell.com> <5B752FC302000078001DEBC0@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fslAF-0002rr-Mx for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 08:40:23 +0000 In-Reply-To: <5B752FC302000078001DEBC0@prv1-mh.provo.novell.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: 'Jan Beulich' , Andrew Cooper Cc: xen-devel , Tamas K Lengyel , Razvan Cojocaru List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEphbiBCZXVsaWNoIFttYWlsdG86 SkJldWxpY2hAc3VzZS5jb21dCj4gU2VudDogMTYgQXVndXN0IDIwMTggMDk6MDMKPiBUbzogQW5k cmV3IENvb3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT4KPiBDYzogUmF6dmFuIENvam9j YXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPjsgUGF1bCBEdXJyYW50Cj4gPFBhdWwuRHVy cmFudEBjaXRyaXguY29tPjsgeGVuLWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmc+Owo+IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5neWVsLmNvbT4KPiBTdWJqZWN0OiBQ aW5nOiBbUEFUQ0ggdjJdIHg4NjogYXNzb3J0ZWQgYXJyYXlfaW5kZXhfbm9zcGVjKCkgaW5zZXJ0 aW9ucwo+IAo+ID4+PiBPbiAyNi4wNy4xOCBhdCAxNTowNywgIHdyb3RlOgo+ID4gRG9uJ3QgY2hh bmNlIGhhdmluZyBTcGVjdHJlIHYxIChpbmNsdWRpbmcgQkNCUykgZ2FkZ2V0cy4gSW4gc29tZSBv ZiB0aGUKPiA+IGNhc2VzIHRoZSBpbnNlcnRpb25zIGFyZSBtb3JlIG9mIHByZWNhdXRpb25hcnkg bmF0dXJlIHJhdGhlciB0aGFuIHRoZXJlCj4gPiBwcm92YWJseSBiZWluZyBhIGdhZGdldCwgYnV0 IEkgdGhpbmsgd2Ugc2hvdWxkIGVyciBvbiB0aGUgc2FmZSAoc2VjdXJlKQo+ID4gc2lkZSBoZXJl Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgoKPiA+ IC0tLQo+ID4gdjI6IFJlLWJhc2UuIERyb3AgZ3Vlc3RfY3B1aWQoKSBjaGFuZ2VzLiBGaXggb2Zm LWJ5LTEgaW4KPiA+ICAgICB7ZG8sY29tcGF0fV9kbV9vcCgpLgo+ID4KPiA+IC0tLSBhL3hlbi9h cmNoL3g4Ni9kb21jdGwuYwo+ID4gKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCj4gPiBAQCAt MjgsNiArMjgsNyBAQAo+ID4gICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+IC8qIGZvciBhcmNo X2RvX2RvbWN0bCAqLwo+ID4gICNpbmNsdWRlIDx4c20veHNtLmg+Cj4gPiAgI2luY2x1ZGUgPHhl bi9pb21tdS5oPgo+ID4gKyNpbmNsdWRlIDx4ZW4vbm9zcGVjLmg+Cj4gPiAgI2luY2x1ZGUgPHhl bi92bV9ldmVudC5oPgo+ID4gICNpbmNsdWRlIDxwdWJsaWMvdm1fZXZlbnQuaD4KPiA+ICAjaW5j bHVkZSA8YXNtL21lbV9zaGFyaW5nLmg+Cj4gPiBAQCAtOTMsMjcgKzk0LDM0IEBAIHN0YXRpYyBp bnQgdXBkYXRlX2RvbWFpbl9jcHVpZF9pbmZvKHN0cnUKPiA+ICAgICAgLyogSW5zZXJ0IGN0bCBk YXRhIGludG8gY3B1aWRfcG9saWN5LiAqLwo+ID4gICAgICBzd2l0Y2ggKCBjdGwtPmlucHV0WzBd ICkKPiA+ICAgICAgewo+ID4gKyAgICAgICAgdW5zaWduZWQgaW50IGlkeDsKPiA+ICsKPiA+ICAg ICAgY2FzZSAweDAwMDAwMDAwIC4uLiBBUlJBWV9TSVpFKHAtPmJhc2ljLnJhdykgLSAxOgo+ID4g ICAgICAgICAgc3dpdGNoICggY3RsLT5pbnB1dFswXSApCj4gPiAgICAgICAgICB7Cj4gPiAgICAg ICAgICBjYXNlIDQ6Cj4gPiAtICAgICAgICAgICAgcC0+Y2FjaGUucmF3W2N0bC0+aW5wdXRbMV1d ID0gbGVhZjsKPiA+ICsgICAgICAgICAgICBpZHggPSBhcnJheV9pbmRleF9ub3NwZWMoY3RsLT5p bnB1dFsxXSwgQVJSQVlfU0laRShwLQo+ID5jYWNoZS5yYXcpKTsKPiA+ICsgICAgICAgICAgICBw LT5jYWNoZS5yYXdbaWR4XSA9IGxlYWY7Cj4gPiAgICAgICAgICAgICAgYnJlYWs7Cj4gPgo+ID4g ICAgICAgICAgY2FzZSA3Ogo+ID4gLSAgICAgICAgICAgIHAtPmZlYXQucmF3W2N0bC0+aW5wdXRb MV1dID0gbGVhZjsKPiA+ICsgICAgICAgICAgICBpZHggPSBhcnJheV9pbmRleF9ub3NwZWMoY3Rs LT5pbnB1dFsxXSwgQVJSQVlfU0laRShwLT5mZWF0LnJhdykpOwo+ID4gKyAgICAgICAgICAgIHAt PmZlYXQucmF3W2lkeF0gPSBsZWFmOwo+ID4gICAgICAgICAgICAgIGJyZWFrOwo+ID4KPiA+ICAg ICAgICAgIGNhc2UgMHhiOgo+ID4gLSAgICAgICAgICAgIHAtPnRvcG8ucmF3W2N0bC0+aW5wdXRb MV1dID0gbGVhZjsKPiA+ICsgICAgICAgICAgICBpZHggPSBhcnJheV9pbmRleF9ub3NwZWMoY3Rs LT5pbnB1dFsxXSwgQVJSQVlfU0laRShwLT50b3BvLnJhdykpOwo+ID4gKyAgICAgICAgICAgIHAt PnRvcG8ucmF3W2lkeF0gPSBsZWFmOwo+ID4gICAgICAgICAgICAgIGJyZWFrOwo+ID4KPiA+ICAg ICAgICAgIGNhc2UgWFNUQVRFX0NQVUlEOgo+ID4gLSAgICAgICAgICAgIHAtPnhzdGF0ZS5yYXdb Y3RsLT5pbnB1dFsxXV0gPSBsZWFmOwo+ID4gKyAgICAgICAgICAgIGlkeCA9IGFycmF5X2luZGV4 X25vc3BlYyhjdGwtPmlucHV0WzFdLCBBUlJBWV9TSVpFKHAtCj4gPnhzdGF0ZS5yYXcpKTsKPiA+ ICsgICAgICAgICAgICBwLT54c3RhdGUucmF3W2lkeF0gPSBsZWFmOwo+ID4gICAgICAgICAgICAg IGJyZWFrOwo+ID4KPiA+ICAgICAgICAgIGRlZmF1bHQ6Cj4gPiAtICAgICAgICAgICAgcC0+YmFz aWMucmF3W2N0bC0+aW5wdXRbMF1dID0gbGVhZjsKPiA+ICsgICAgICAgICAgICBpZHggPSBhcnJh eV9pbmRleF9ub3NwZWMoY3RsLT5pbnB1dFswXSwgQVJSQVlfU0laRShwLQo+ID5iYXNpYy5yYXcp KTsKPiA+ICsgICAgICAgICAgICBwLT5iYXNpYy5yYXdbaWR4XSA9IGxlYWY7Cj4gPiAgICAgICAg ICAgICAgYnJlYWs7Cj4gPiAgICAgICAgICB9Cj4gPiAgICAgICAgICBicmVhazsKPiA+IEBAIC0x MjcsNyArMTM1LDkgQEAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydQo+ ID4gICAgICAgICAgYnJlYWs7Cj4gPgo+ID4gICAgICBjYXNlIDB4ODAwMDAwMDAgLi4uIDB4ODAw MDAwMDAgKyBBUlJBWV9TSVpFKHAtPmV4dGQucmF3KSAtIDE6Cj4gPiAtICAgICAgICBwLT5leHRk LnJhd1tjdGwtPmlucHV0WzBdIC0gMHg4MDAwMDAwMF0gPSBsZWFmOwo+ID4gKyAgICAgICAgaWR4 ID0gYXJyYXlfaW5kZXhfbm9zcGVjKGN0bC0+aW5wdXRbMF0gJiAweGZmZmYsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShwLT5leHRkLnJhdykpOwo+ID4g KyAgICAgICAgcC0+ZXh0ZC5yYXdbaWR4XSA9IGxlYWY7Cj4gPiAgICAgICAgICBicmVhazsKPiA+ ICAgICAgfQo+ID4KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwo+ID4gKysrIGIveGVu L2FyY2gveDg2L2h2bS9kbS5jCj4gPiBAQCAtMTcsNiArMTcsNyBAQAo+ID4gICNpbmNsdWRlIDx4 ZW4vZXZlbnQuaD4KPiA+ICAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgo+ID4gICNpbmNs dWRlIDx4ZW4vaHlwZXJjYWxsLmg+Cj4gPiArI2luY2x1ZGUgPHhlbi9ub3NwZWMuaD4KPiA+ICAj aW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4gPgo+ID4gICNpbmNsdWRlIDxhc20vaGFwLmg+Cj4gPiBA QCAtMjMyLDcgKzIzMyw3IEBAIHN0YXRpYyBpbnQgc2V0X21lbV90eXBlKHN0cnVjdCBkb21haW4g KmQKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1f dHlwZSAqZGF0YSkKPiA+ICB7Cj4gPiAgICAgIHhlbl9wZm5fdCBsYXN0X3BmbiA9IGRhdGEtPmZp cnN0X3BmbiArIGRhdGEtPm5yIC0gMTsKPiA+IC0gICAgdW5zaWduZWQgaW50IGl0ZXIgPSAwOwo+ ID4gKyAgICB1bnNpZ25lZCBpbnQgaXRlciA9IDAsIG1lbV90eXBlOwo+ID4gICAgICBpbnQgcmMg PSAwOwo+ID4KPiA+ICAgICAgLyogSW50ZXJmYWNlIHR5cGVzIHRvIGludGVybmFsIHAybSB0eXBl cyAqLwo+ID4gQEAgLTI1Miw3ICsyNTMsOSBAQCBzdGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1 Y3QgZG9tYWluICpkCj4gPiAgICAgICAgICAgdW5saWtlbHkoZGF0YS0+bWVtX3R5cGUgPT0gSFZN TUVNX3VudXNlZCkgKQo+ID4gICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPgo+ID4gLSAgICBp ZiAoIGRhdGEtPm1lbV90eXBlICA9PSBIVk1NRU1faW9yZXFfc2VydmVyICkKPiA+ICsgICAgbWVt X3R5cGUgPSBhcnJheV9pbmRleF9ub3NwZWMoZGF0YS0+bWVtX3R5cGUsCj4gQVJSQVlfU0laRSht ZW10eXBlKSk7Cj4gPiArCj4gPiArICAgIGlmICggbWVtX3R5cGUgPT0gSFZNTUVNX2lvcmVxX3Nl cnZlciApCj4gPiAgICAgIHsKPiA+ICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKPiA+Cj4g PiBAQCAtMjc5LDEwICsyODIsMTAgQEAgc3RhdGljIGludCBzZXRfbWVtX3R5cGUoc3RydWN0IGRv bWFpbiAqZAo+ID4KPiA+ICAgICAgICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSApCj4gPiAgICAg ICAgICAgICAgcmMgPSAtRUFHQUlOOwo+ID4gLSAgICAgICAgZWxzZSBpZiAoICFhbGxvd19wMm1f dHlwZV9jaGFuZ2UodCwgbWVtdHlwZVtkYXRhLT5tZW1fdHlwZV0pICkKPiA+ICsgICAgICAgIGVs c2UgaWYgKCAhYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHQsIG1lbXR5cGVbbWVtX3R5cGVdKSApCj4g PiAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwo+ID4gICAgICAgICAgZWxzZQo+ID4gLSAgICAg ICAgICAgIHJjID0gcDJtX2NoYW5nZV90eXBlX29uZShkLCBwZm4sIHQsIG1lbXR5cGVbZGF0YS0K PiA+bWVtX3R5cGVdKTsKPiA+ICsgICAgICAgICAgICByYyA9IHAybV9jaGFuZ2VfdHlwZV9vbmUo ZCwgcGZuLCB0LCBtZW10eXBlW21lbV90eXBlXSk7Cj4gPgo+ID4gICAgICAgICAgcHV0X2dmbihk LCBwZm4pOwo+ID4KPiA+IEBAIC0zODcsNiArMzkwLDggQEAgc3RhdGljIGludCBkbV9vcChjb25z dCBzdHJ1Y3QgZG1vcF9hcmdzCj4gPiAgICAgICAgICBnb3RvIG91dDsKPiA+ICAgICAgfQo+ID4K PiA+ICsgICAgb3Aub3AgPSBhcnJheV9pbmRleF9ub3NwZWMob3Aub3AsIEFSUkFZX1NJWkUob3Bf c2l6ZSkpOwo+ID4gKwo+ID4gICAgICBpZiAoIG9wX2FyZ3MtPmJ1ZlswXS5zaXplIDwgb2Zmc2V0 ICsgb3Bfc2l6ZVtvcC5vcF0gKQo+ID4gICAgICAgICAgZ290byBvdXQ7Cj4gPgo+ID4gQEAgLTcz OSw3ICs3NDQsNyBAQCBpbnQgY29tcGF0X2RtX29wKGRvbWlkX3QgZG9taWQsCj4gPiAgICAgICAg ICByZXR1cm4gLUUyQklHOwo+ID4KPiA+ICAgICAgYXJncy5kb21pZCA9IGRvbWlkOwo+ID4gLSAg ICBhcmdzLm5yX2J1ZnMgPSBucl9idWZzOwo+ID4gKyAgICBhcmdzLm5yX2J1ZnMgPSBhcnJheV9p bmRleF9ub3NwZWMobnJfYnVmcywgQVJSQVlfU0laRShhcmdzLmJ1ZikgKwo+IDEpOwo+ID4KPiA+ ICAgICAgZm9yICggaSA9IDA7IGkgPCBhcmdzLm5yX2J1ZnM7IGkrKyApCj4gPiAgICAgIHsKPiA+ IEBAIC03NzYsNyArNzgxLDcgQEAgbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAo+ID4gICAg ICAgICAgcmV0dXJuIC1FMkJJRzsKPiA+Cj4gPiAgICAgIGFyZ3MuZG9taWQgPSBkb21pZDsKPiA+ IC0gICAgYXJncy5ucl9idWZzID0gbnJfYnVmczsKPiA+ICsgICAgYXJncy5ucl9idWZzID0gYXJy YXlfaW5kZXhfbm9zcGVjKG5yX2J1ZnMsIEFSUkFZX1NJWkUoYXJncy5idWYpICsKPiAxKTsKPiA+ Cj4gPiAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgmYXJncy5idWZbMF0sIGJ1ZnMs IDAsIGFyZ3MubnJfYnVmcykgKQo+ID4gICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4gPiAtLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jCj4gPiArKysgYi94ZW4vYXJjaC94ODYvaHZt L2h5cGVyY2FsbC5jCj4gPiBAQCAtMjAsNiArMjAsNyBAQAo+ID4gICAqLwo+ID4gICNpbmNsdWRl IDx4ZW4vbGliLmg+Cj4gPiAgI2luY2x1ZGUgPHhlbi9oeXBlcmNhbGwuaD4KPiA+ICsjaW5jbHVk ZSA8eGVuL25vc3BlYy5oPgo+ID4KPiA+ICAjaW5jbHVkZSA8YXNtL2h2bS9zdXBwb3J0Lmg+Cj4g Pgo+ID4gQEAgLTE4MSw4ICsxODIsMTUgQEAgaW50IGh2bV9oeXBlcmNhbGwoc3RydWN0IGNwdV91 c2VyX3JlZ3MgKgo+ID4gICAgICBCVUlMRF9CVUdfT04oQVJSQVlfU0laRShodm1faHlwZXJjYWxs X3RhYmxlKSA+Cj4gPiAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKGh5cGVyY2FsbF9hcmdz X3RhYmxlKSk7Cj4gPgo+ID4gLSAgICBpZiAoIChlYXggPj0gQVJSQVlfU0laRShodm1faHlwZXJj YWxsX3RhYmxlKSkgfHwKPiA+IC0gICAgICAgICAhaHZtX2h5cGVyY2FsbF90YWJsZVtlYXhdLm5h dGl2ZSApCj4gPiArICAgIGlmICggZWF4ID49IEFSUkFZX1NJWkUoaHZtX2h5cGVyY2FsbF90YWJs ZSkgKQo+ID4gKyAgICB7Cj4gPiArICAgICAgICByZWdzLT5yYXggPSAtRU5PU1lTOwo+ID4gKyAg ICAgICAgcmV0dXJuIEhWTV9IQ0FMTF9jb21wbGV0ZWQ7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsg ICAgZWF4ID0gYXJyYXlfaW5kZXhfbm9zcGVjKGVheCwgQVJSQVlfU0laRShodm1faHlwZXJjYWxs X3RhYmxlKSk7Cj4gPiArCj4gPiArICAgIGlmICggIWh2bV9oeXBlcmNhbGxfdGFibGVbZWF4XS5u YXRpdmUgKQo+ID4gICAgICB7Cj4gPiAgICAgICAgICByZWdzLT5yYXggPSAtRU5PU1lTOwo+ID4g ICAgICAgICAgcmV0dXJuIEhWTV9IQ0FMTF9jb21wbGV0ZWQ7Cj4gPiAtLS0gYS94ZW4vYXJjaC94 ODYvbW0vbWVtX2FjY2Vzcy5jCj4gPiArKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5j Cj4gPiBAQCAtMjMsNiArMjMsNyBAQAo+ID4KPiA+ICAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vz cy5oPiAvKiBjb3B5X2Zyb21fZ3Vlc3QoKSAqLwo+ID4gICNpbmNsdWRlIDx4ZW4vbWVtX2FjY2Vz cy5oPgo+ID4gKyNpbmNsdWRlIDx4ZW4vbm9zcGVjLmg+Cj4gPiAgI2luY2x1ZGUgPHhlbi92bV9l dmVudC5oPgo+ID4gICNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KPiA+ICAjaW5jbHVkZSA8cHVibGlj L3ZtX2V2ZW50Lmg+Cj4gPiBAQCAtMzM0LDYgKzMzNSw3IEBAIHN0YXRpYyBib29sIHhlbm1lbV9h Y2Nlc3NfdG9fcDJtX2FjY2VzcygKPiA+ICAgICAgc3dpdGNoICggeGFjY2VzcyApCj4gPiAgICAg IHsKPiA+ICAgICAgY2FzZSAwIC4uLiBBUlJBWV9TSVpFKG1lbWFjY2VzcykgLSAxOgo+ID4gKyAg ICAgICAgeGFjY2VzcyA9IGFycmF5X2luZGV4X25vc3BlYyh4YWNjZXNzLCBBUlJBWV9TSVpFKG1l bWFjY2VzcykpOwo+ID4gICAgICAgICAgKnBhY2Nlc3MgPSBtZW1hY2Nlc3NbeGFjY2Vzc107Cj4g PiAgICAgICAgICBicmVhazsKPiA+ICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX2RlZmF1bHQ6Cj4g PiAtLS0gYS94ZW4vYXJjaC94ODYvcHYvaHlwZXJjYWxsLmMKPiA+ICsrKyBiL3hlbi9hcmNoL3g4 Ni9wdi9oeXBlcmNhbGwuYwo+ID4gQEAgLTIxLDYgKzIxLDcgQEAKPiA+Cj4gPiAgI2luY2x1ZGUg PHhlbi9jb21waWxlci5oPgo+ID4gICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+Cj4gPiArI2lu Y2x1ZGUgPHhlbi9ub3NwZWMuaD4KPiA+ICAjaW5jbHVkZSA8eGVuL3RyYWNlLmg+Cj4gPgo+ID4g ICNkZWZpbmUgSFlQRVJDQUxMKHgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gQEAgLTk5LDggKzEwMCwxNSBAQCB2b2lkIHB2X2h5cGVyY2FsbChz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqCj4gPiAgICAgIEJVSUxEX0JVR19PTihBUlJBWV9TSVpFKHB2 X2h5cGVyY2FsbF90YWJsZSkgPgo+ID4gICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShoeXBl cmNhbGxfYXJnc190YWJsZSkpOwo+ID4KPiA+IC0gICAgaWYgKCAoZWF4ID49IEFSUkFZX1NJWkUo cHZfaHlwZXJjYWxsX3RhYmxlKSkgfHwKPiA+IC0gICAgICAgICAhcHZfaHlwZXJjYWxsX3RhYmxl W2VheF0ubmF0aXZlICkKPiA+ICsgICAgaWYgKCBlYXggPj0gQVJSQVlfU0laRShwdl9oeXBlcmNh bGxfdGFibGUpICkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgcmVncy0+cmF4ID0gLUVOT1NZUzsK PiA+ICsgICAgICAgIHJldHVybjsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICBlYXggPSBhcnJh eV9pbmRleF9ub3NwZWMoZWF4LCBBUlJBWV9TSVpFKHB2X2h5cGVyY2FsbF90YWJsZSkpOwo+ID4g Kwo+ID4gKyAgICBpZiAoICFwdl9oeXBlcmNhbGxfdGFibGVbZWF4XS5uYXRpdmUgKQo+ID4gICAg ICB7Cj4gPiAgICAgICAgICByZWdzLT5yYXggPSAtRU5PU1lTOwo+ID4gICAgICAgICAgcmV0dXJu Owo+ID4KPiA+Cj4gPgo+ID4KPiAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs