From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v12 1/4] x86emul: New return code for unimplemented instruction Date: Thu, 21 Sep 2017 08:53:13 +0000 Message-ID: References: <1505970726-5671-1-git-send-email-ppircalabu@bitdefender.com> <1505970726-5671-2-git-send-email-ppircalabu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1505970726-5671-2-git-send-email-ppircalabu@bitdefender.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Petre Pircalabu' , "xen-devel@lists.xen.org" Cc: Kevin Tian , "sstabellini@kernel.org" , Wei Liu , "jun.nakajima@intel.com" , "rcojocaru@bitdefender.com" , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , "tamas@tklengyel.com" , "jbeulich@suse.com" , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBldHJlIFBpcmNhbGFidSBbbWFp bHRvOnBwaXJjYWxhYnVAYml0ZGVmZW5kZXIuY29tXQo+IFNlbnQ6IDIxIFNlcHRlbWJlciAyMDE3 IDA2OjEyCj4gVG86IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gQ2M6IElhbiBKYWNrc29uIDxJ YW4uSmFja3NvbkBjaXRyaXguY29tPjsgV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT47Cj4g QW5kcmV3IENvb3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IEdlb3JnZSBEdW5sYXAK PiA8R2VvcmdlLkR1bmxhcEBjaXRyaXguY29tPjsgamJldWxpY2hAc3VzZS5jb207IGtvbnJhZC53 aWxrQG9yYWNsZS5jb207Cj4gc3N0YWJlbGxpbmlAa2VybmVsLm9yZzsgVGltIChYZW4ub3JnKSA8 dGltQHhlbi5vcmc+OyBQYXVsIER1cnJhbnQKPiA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+OyBy Y29qb2NhcnVAYml0ZGVmZW5kZXIuY29tOwo+IHRhbWFzQHRrbGVuZ3llbC5jb207IGp1bi5uYWth amltYUBpbnRlbC5jb207IEtldmluIFRpYW4KPiA8a2V2aW4udGlhbkBpbnRlbC5jb20+OyBQZXRy ZSBQaXJjYWxhYnUgPHBwaXJjYWxhYnVAYml0ZGVmZW5kZXIuY29tPgo+IFN1YmplY3Q6IFtQQVRD SCB2MTIgMS80XSB4ODZlbXVsOiBOZXcgcmV0dXJuIGNvZGUgZm9yIHVuaW1wbGVtZW50ZWQKPiBp bnN0cnVjdGlvbgo+IAo+IEVuZm9yY2UgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gYW4gaW5zdHJ1 Y3Rpb24gbm90IGltcGxlbWVudGVkIGJ5IHRoZQo+IGVtdWxhdG9yIGFuZCB0aGUgZmFpbHVyZSB0 byBlbXVsYXRlIHRoYXQgaW5zdHJ1Y3Rpb24gYnkgZGVmaW5pbmcgYSBuZXcKPiByZXR1cm4gY29k ZSwgWDg2RU1VTF9VTklNUExFTUVOVEVELgo+IAo+IFRoaXMgdmFsdWUgc2hvdWxkIG9ubHkgYmUg cmV0dXJuZWQgYnkgdGhlIGNvcmUgZW11bGF0b3Igb25seSBpZiBpdCBmYWlscyB0bwo+IHByb3Bl cmx5IGRlY29kZSB0aGUgY3VycmVudCBpbnN0cnVjdGlvbidzIG9wY29kZSwgYW5kIG5vdCBieSBh bnkgb2Ygb3RoZXIKPiBmdW5jdGlvbnMsIHN1Y2ggYXMgdGhlIHg4Nl9lbXVsYXRlX29wcyBvciB0 aGUgaHZtX2lvX29wcyBjYWxsYmFja3MuCj4gCj4gZS5nLiBodm1fcHJvY2Vzc19pb19pbnRlcmNl cHQgc2hvdWxkIG5vdCByZXR1cm4KPiBYODZFTVVMX1VOSU1QTEVNRU5URUQuCj4gVGhlIHJldHVy biB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGRlcGVuZHMgb24gZWl0aGVyIHRoZSByZXR1cm4gY29k ZSBvZgo+IG9uZSBvZiB0aGUgaHZtX2lvX29wcyBoYW5kbGVycyAocmVhZC93cml0ZSkgb3IgdGhl IHZhbHVlIHJldHVybmVkIGJ5Cj4gaHZtX2NvcHlfZ3Vlc3RfZnJvbV9waHlzIC8gaHZtX2NvcHlf dG9fZ3Vlc3RfcGh5cy4KPiAKPiBTaW1pbGFyeSwgbm9uZSBvZiB0aGlzIGZ1bmN0aW9ucyBzaG91 bGQgcmV0dXJuIFg4NkVNVUxfVU5JTVBMRU1FTlRFRC4KPiAgLSBodm1faW9faW50ZXJjZXB0Cj4g IC0gaHZtZW11bF9kb19pbwo+ICAtIGh2bV9zZW5kX2J1ZmZlcmVkX2lvcmVxCj4gIC0gaHZtX3Nl bmRfaW9yZXEKPiAgLSBodm1fYnJvYWRjYXN0X2lvcmVxCj4gIC0gaHZtZW11bF9kb19pb19idWZm ZXIKPiAgLSBodm1lbXVsX3ZhbGlkYXRlCj4gCj4gU2lnbmVkLW9mZi1ieTogUGV0cmUgUGlyY2Fs YWJ1IDxwcGlyY2FsYWJ1QGJpdGRlZmVuZGVyLmNvbT4KPiAKPiAtLS0KPiBDaGFuZ2VkIHNpbmNl IHYxMDoKPiAgICAgKiBBZGRlZCBhc3NlcnRzIHRvIG1ha2Ugc3VyZSB0aGUgcmV0dXJuIGNvZGUg Y2Fubm90IGJlCj4gWDg2RU1VTF9VTklNUExFTUVOVEVELgo+ICAgICAqIEFkZCBuZXcgcmV0dXJu IGNvZGUgKFg4NkVNVUxfVU5SRUNPR05JWkVEKSB0byBiZSB1c2VkIHdoZW4KPiB0cnlpbmcKPiAg ICAgdG8gZW11bGF0ZSBhbiBpbnN0cnVjdGlvbiB3aXRoIGFuIGludmFsaWQgb3Bjb2RlLgo+IAo+ IENoYW5nZWQgc2luY2UgdjExOgo+ICAgICAqIEZpeGVkIGRvdWJsZSBuZWdhdGl2ZSBpbiB0aGUg cGF0Y2ggZGVzY3JpcHRpb24uCj4gICAgICogTW92ZSBhc3NlcnRpb24gaW50byB0aGUgc3dpdGNo IGFuZCB1c2UgQVNTRVJUX1VOUkVBQ0hBQkxFKCkgd2hlbgo+ICAgICBhcHBsaWNhYmxlLgo+ICAg ICAqIENoYW5nZWQgdGhlIGRlc2NyaXB0aW9uIG9mIFg4NkVNVUxfVU5JTVBMRU1FTlRFRCAvCj4g WDg2RU1VTF9VTlJFQ09HTklaRUQKPiAgICAgdG8gcmVmbGVjdCB0aGUgZGlmZmVyZW5jZXMgYmV0 d2VlbiB0aG9zZSAyIHJldHVybiBjb2Rlcy4KPiAgICAgKiBDaGFuZ2VkIHRoZSByZXR1cm5lZCB2 YWx1ZSB0byBYODZFTVVMX1VOUkVDT0dOSVpFRCBpbiB0aGUKPiAgICAgZm9sbG93aW5nIGNhc2Vz Ogo+ICAgICAgICAgWDg2RU1VTF9PUEMoMHgwZiwgMHg3Myk6IC8qIEdyb3VwIDE0ICovCj4gICAg ICAgICBYODZFTVVMX09QQ182NigweDBmLCAweDczKToKPiAgICAgICAgIFg4NkVNVUxfT1BDX1ZF WF82NigweDBmLCAweDczKToKPiAgICAgICAgICAgICAgICAgLSBBbGwgdmFsaWQgb3Bjb2RlcyBh cmUgZGVmaW5lZCwgc28gaXQgc2hvdWxkIHJldHVybgo+ICAgICAgICAgICAgICAgICBYODZFTVVM X1VOUkVDT0dOSVpFRCBpZiBtb2QgUi9NIGJpdHMgYXJlIG5vdCBtYXRjaGVkLgo+IAo+ICAgICAg ICAgWDg2RU1VTF9PUEMoMHgwZiwgMHhjNykgLyogR3JvdXAgOSAqLwo+ICAgICAgICAgICAgICAg ICAtIEZvciByZWdpc3RlciB0eXBlIGluc3RydWN0aW9ucyBhbGwgcG9zc2libGUgb3Bjb2RlcyBh cmUKPiAgICAgICAgICAgICAgICAgZGVmaW5lZCwgc28gaXQgc2hvdWxkIHJldHVybiBYODZFTVVM X1VOUkVDT0dOSVpFRCBpZgo+ICAgICAgICAgICAgICAgICBtb2QgUi9NIGJpdHMgYXJlIG5vdCBt YXRjaGVkLgo+IAo+ICAgICAgICAgWDg2RU1VTF9PUENfVkVYKDB4MGYzOCwgMHhmMyk6IC8qIEdy b3VwIDE3ICovCj4gICAgICAgICAgICAgICAgIC0gQWxsIHZhbGlkIG9wY29kZXMgYXJlIGRlZmlu ZWQsIHNvIGl0IHNob3VsZCByZXR1cm4KPiAgICAgICAgICAgICAgICAgWDg2RU1VTF9VTlJFQ09H TklaRUQgaWYgbW9kIFIvTSBiaXRzIGFyZSBub3QgbWF0Y2hlZC4KPiAKPiAgICAgICAgIFg4NkVN VUxfT1BDX1hPUCgwOSwgMHgwMSk6IC8qIFhPUCBHcnAxICovCj4gICAgICAgICBYODZFTVVMX09Q Q19YT1AoMDksIDB4MDIpOiAvKiBYT1AgR3JwMiAqLwo+ICAgICAgICAgICAgICAgICAtIEFsbCB2 YWxpZCBvcGNvZGVzIGFyZSBkZWZpbmVkLCBzbyBpdCBzaG91bGQgcmV0dXJuCj4gICAgICAgICAg ICAgICAgIFg4NkVNVUxfVU5SRUNPR05JWkVEIGlmIG1vZCBSL00gYml0cyBhcmUgbm90IG1hdGNo ZWQuCj4gCj4gICAgICAgICBYODZFTVVMX09QQygweDBmLCAweDAxKTogLyogR3JwNyAqLwo+ICAg ICAgICAgICAgICAgICAtIE5vdCBhbGwgdmFsaWQgb3Bjb2RlcyBhcmUgZGVmaW5lZCBzbyBpdCBz aG91bGQgcmV0dXJuCj4gICAgICAgICAgICAgICAgIFg4NkVNVUxfVU5JTVBMRU1FTlRFRCBpZiBt b2QgUi9NIGJpdHMgYXJlIG5vdCBtYXRjaGVkLgo+ICAgICAgICAgICAgICAgICAoZS5nLiBYR0VU QlYpCj4gCj4gICAgICAgICBYODZFTVVMX09QQ182NigweDBmLCAweDc4KToKPiAgICAgICAgICAg ICAgICAgLSBBbGwgdmFsaWQgb3Bjb2RlcyBhcmUgZGVmaW5lZCwgc28gaXQgc2hvdWxkIHJldHVy bgo+ICAgICAgICAgICAgICAgICBYODZFTVVMX1VOUkVDT0dOSVpFRCBpZiBtb2QgUi9NIGJpdHMg YXJlIG5vdCBtYXRjaGVkLgo+IAo+ICAgICAgICAgWDg2RU1VTF9PUEMoMHgwZiwgMHhhZSk6Cj4g ICAgICAgICBYODZFTVVMX09QQ182NigweDBmLCAweGFlKTogLyogR3JwMTUgKi8KPiAgICAgICAg ICAgICAgICAgLSBOb3QgYWxsIHZhbGlkIG9wY29kZXMgYXJlIGRlZmluZWQgc28gaXQgc2hvdWxk IHJldHVybgo+ICAgICAgICAgICAgICAgICBYODZFTVVMX1VOSU1QTEVNRU5URUQgaWYgbW9kIFIv TSBiaXRzIGFyZSBub3QgbWF0Y2hlZC4KPiAgICAgICAgICAgICAgICAgKGUuZy4gRlhTQVZFL0ZY UlNUT1IgKQo+IC0tLQo+ICB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyAgICAgICAgICAgICB8 IDEyICsrKysrKysrCj4gIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgICAgIHwg IDEgKwo+ICB4ZW4vYXJjaC94ODYvaHZtL2lvLmMgICAgICAgICAgICAgICAgICB8ICAxICsKPiAg eGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYyAgICAgICAgfCAgMiArLQo+ICB4ZW4vYXJj aC94ODYvbW0vc2hhZG93L211bHRpLmMgICAgICAgICB8ICAyICstCj4gIHhlbi9hcmNoL3g4Ni94 ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIHwgNTIgKysrKysrKysrKysrKysrKysrKystLQo+IC0t LS0tLS0tLS0tLQo+ICB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaCB8IDEz ICsrKysrKysrKwo+ICA3IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDIzIGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4gaW5kZXggY2M4NzRjZS4uMzg1ZmUxZSAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCj4gQEAgLTI4NCwxMCArMjg0LDE1IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9k b19pbygKPiAgICAgICAgICB9Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gKyAgICBjYXNl IFg4NkVNVUxfVU5JTVBMRU1FTlRFRDoKPiArICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsK PiArICAgICAgICAvKiBGYWxsLXRocm91Z2ggKi8KCktpbmQgb2Ygc3VycHJpc2VkIHlvdSBuZWVk IHRoZSBmYWxsLXRocm91Z2ggaWYgeW91IGFzc2VydCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZS4u LiBidXQgYW5hbHlzaXMgdG9vbHMgY2FuIGJlIGEgYml0IHRlbXBlcmFtZW50YWwgc28gb2suCgo+ ICAgICAgZGVmYXVsdDoKPiAgICAgICAgICBCVUcoKTsKPiAgICAgIH0KPiAKPiArICAgIEFTU0VS VChyYyAhPSBYODZFTVVMX1VOSU1QTEVNRU5URUQpOwo+ICsKCklzbid0IHRoaXMgYXNzZXJ0aW9u IHJlZHVuZGFudCBnaXZlbiB0aGUgQVNTRVJUX1VOUkVBQ0hBQkxFKCkgYWJvdmU/CgogIFBhdWwK Cj4gICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCj4gICAgICAgICAgcmV0dXJuIHJjOwo+ IAo+IEBAIC0zMTMsNiArMzE4LDkgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvX2J1ZmZlcigK PiAKPiAgICAgIHJjID0gaHZtZW11bF9kb19pbyhpc19tbWlvLCBhZGRyLCByZXBzLCBzaXplLCBk aXIsIGRmLCAwLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpYnVmZmVyKTsK PiArCj4gKyAgICBBU1NFUlQocmMgIT0gWDg2RU1VTF9VTklNUExFTUVOVEVEKTsKPiArCj4gICAg ICBpZiAoIHJjID09IFg4NkVNVUxfVU5IQU5ETEVBQkxFICYmIGRpciA9PSBJT1JFUV9SRUFEICkK PiAgICAgICAgICBtZW1zZXQoYnVmZmVyLCAweGZmLCBzaXplKTsKPiAKPiBAQCAtNDA1LDYgKzQx Myw4IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19pb19hZGRyKAo+ICAgICAgcmMgPSBodm1lbXVs X2RvX2lvKGlzX21taW8sIGFkZHIsICZjb3VudCwgc2l6ZSwgZGlyLCBkZiwgMSwKPiAgICAgICAg ICAgICAgICAgICAgICAgICByYW1fZ3BhKTsKPiAKPiArICAgIEFTU0VSVChyYyAhPSBYODZFTVVM X1VOSU1QTEVNRU5URUQpOwo+ICsKPiAgICAgIGlmICggcmMgPT0gWDg2RU1VTF9PS0FZICkKPiAg ICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh2bV9pby5tbWlvX3JldHJ5ID0gKGNvdW50IDwgKnJl cHMpOwo+IAo+IEBAIC0yMDQ1LDYgKzIwNTUsNyBAQCBpbnQgaHZtX2VtdWxhdGVfb25lX21taW8o dW5zaWduZWQgbG9uZyBtZm4sCj4gdW5zaWduZWQgbG9uZyBnbGEpCj4gICAgICBzd2l0Y2ggKCBy YyApCj4gICAgICB7Cj4gICAgICBjYXNlIFg4NkVNVUxfVU5IQU5ETEVBQkxFOgo+ICsgICAgY2Fz ZSBYODZFTVVMX1VOSU1QTEVNRU5URUQ6Cj4gICAgICAgICAgaHZtX2R1bXBfZW11bGF0aW9uX3N0 YXRlKFhFTkxPR19HX1dBUk5JTkcsICJNTUNGRyIsCj4gJmN0eHQpOwo+ICAgICAgICAgIGJyZWFr Owo+ICAgICAgY2FzZSBYODZFTVVMX0VYQ0VQVElPTjoKPiBAQCAtMjEwMiw2ICsyMTEzLDcgQEAg dm9pZCBodm1fZW11bGF0ZV9vbmVfdm1fZXZlbnQoZW51bQo+IGVtdWxfa2luZCBraW5kLCB1bnNp Z25lZCBpbnQgdHJhcG5yLAo+ICAgICAgICAgICAqIGNvbnNpc3RlbnQgd2l0aCBYODZFTVVMX1JF VFJZLgo+ICAgICAgICAgICAqLwo+ICAgICAgICAgIHJldHVybjsKPiArICAgIGNhc2UgWDg2RU1V TF9VTklNUExFTUVOVEVEOgo+ICAgICAgY2FzZSBYODZFTVVMX1VOSEFORExFQUJMRToKPiAgICAg ICAgICBodm1fZHVtcF9lbXVsYXRpb25fc3RhdGUoWEVOTE9HX0dfREVCVUcsICJNZW0gZXZlbnQi LCAmY3R4KTsKPiAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbih0cmFwbnIsIGVycmNv ZGUpOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwo+IGluZGV4IDkzMzk0YzEuLjQzZmY1YWEgMTAwNjQ0Cj4gLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9odm0uYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiBAQCAtMzcy Myw2ICszNzIzLDcgQEAgdm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdz Cj4gKnJlZ3MpCj4gICAgICBzd2l0Y2ggKCBodm1fZW11bGF0ZV9vbmUoJmN0eHQpICkKPiAgICAg IHsKPiAgICAgIGNhc2UgWDg2RU1VTF9VTkhBTkRMRUFCTEU6Cj4gKyAgICBjYXNlIFg4NkVNVUxf VU5JTVBMRU1FTlRFRDoKPiAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2lu dmFsaWRfb3AsIFg4Nl9FVkVOVF9OT19FQyk7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNl IFg4NkVNVUxfRVhDRVBUSU9OOgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2lvLmMKPiBpbmRleCBiZjQxOTU0Li45ODRkYjIxIDEwMDY0NAo+ IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW8uYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8u Ywo+IEBAIC05Niw2ICs5Niw3IEBAIGJvb2wgaHZtX2VtdWxhdGVfb25lX2luc24oaHZtX2VtdWxh dGVfdmFsaWRhdGVfdAo+ICp2YWxpZGF0ZSwgY29uc3QgY2hhciAqZGVzY3IpCj4gICAgICBzd2l0 Y2ggKCByYyApCj4gICAgICB7Cj4gICAgICBjYXNlIFg4NkVNVUxfVU5IQU5ETEVBQkxFOgo+ICsg ICAgY2FzZSBYODZFTVVMX1VOSU1QTEVNRU5URUQ6Cj4gICAgICAgICAgaHZtX2R1bXBfZW11bGF0 aW9uX3N0YXRlKFhFTkxPR19HX1dBUk5JTkcsIGRlc2NyLCAmY3R4dCk7Cj4gICAgICAgICAgcmV0 dXJuIGZhbHNlOwo+IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9k ZS5jCj4gYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCj4gaW5kZXggMTJkNDNhZC4u Y2Y0ODEzOSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCj4g KysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYwo+IEBAIC0xMDYsNyArMTA2LDcg QEAgdm9pZCB2bXhfcmVhbG1vZGVfZW11bGF0ZV9vbmUoc3RydWN0Cj4gaHZtX2VtdWxhdGVfY3R4 dCAqaHZtZW11bF9jdHh0KQo+ICAgICAgaWYgKCBodm1fdmNwdV9pb19uZWVkX2NvbXBsZXRpb24o dmlvKSB8fCB2aW8tPm1taW9fcmV0cnkgKQo+ICAgICAgICAgIHZpby0+aW9fY29tcGxldGlvbiA9 IEhWTUlPX3JlYWxtb2RlX2NvbXBsZXRpb247Cj4gCj4gLSAgICBpZiAoIHJjID09IFg4NkVNVUxf VU5IQU5ETEVBQkxFICkKPiArICAgIGlmICggcmMgPT0gWDg2RU1VTF9VTkhBTkRMRUFCTEUgfHwg cmMgPT0gWDg2RU1VTF9VTklNUExFTUVOVEVECj4gKQo+ICAgICAgewo+ICAgICAgICAgIGdkcHJp bnRrKFhFTkxPR19FUlIsICJGYWlsZWQgdG8gZW11bGF0ZSBpbnNuLlxuIik7Cj4gICAgICAgICAg Z290byBmYWlsOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMK PiBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwo+IGluZGV4IDhkNGYyNDQuLjI1NTdl MjEgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCj4gKysrIGIv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCj4gQEAgLTM0ODgsNyArMzQ4OCw3IEBAIHN0 YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKPiAgICAgICAqIHdvdWxkIGJl IGEgZ29vZCB1bnNoYWRvdyBoaW50LiBJZiB3ZSAqZG8qIGRlY2lkZSB0byB1bnNoYWRvdy1vbi0K PiBmYXVsdAo+ICAgICAgICogdGhlbiBpdCBtdXN0IGJlICdmYWlsYWJsZSc6IHdlIGNhbm5vdCBy ZXF1aXJlIHRoZSB1bnNoYWRvdyB0byBzdWNjZWVkLgo+ICAgICAgICovCj4gLSAgICBpZiAoIHIg PT0gWDg2RU1VTF9VTkhBTkRMRUFCTEUgKQo+ICsgICAgaWYgKCByID09IFg4NkVNVUxfVU5IQU5E TEVBQkxFIHx8IHIgPT0gWDg2RU1VTF9VTklNUExFTUVOVEVEICkKPiAgICAgIHsKPiAgICAgICAg ICBwZXJmY19pbmNyKHNoYWRvd19mYXVsdF9lbXVsYXRlX2ZhaWxlZCk7Cj4gICNpZiBTSEFET1df T1BUSU1JWkFUSU9OUyAmIFNIT1BUX0ZBU1RfRU1VTEFUSU9OCj4gZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCj4gYi94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuYwo+IGluZGV4IGMxZTIzMDAuLmYzMzRkZTkgMTAwNjQ0Cj4gLS0t IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJj aC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwo+IEBAIC04NDgsNyArODQ4LDggQEAgZG97 IGFzbSB2b2xhdGlsZSAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICAgICAgc3R1Yi5mdW5jKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICAgICAgZ2VuZXJhdGVfZXhj ZXB0aW9uX2lmKHJlc18uZmllbGRzLnRyYXBuciA9PSBFWENfVUQsIEVYQ19VRCk7ICAgIFwKPiAg ICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+IC0gICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgcmMgPSBYODZF TVVMX1VOSEFORExFQUJMRTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiArICAgICAgICBnb3RvIGRvbmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gIH0gd2hpbGUgKDApCj4g ICNlbHNlCj4gQEAgLTI1ODUsNyArMjU4Niw3IEBAIHg4Nl9kZWNvZGUoCj4gICAgICAgICAgICAg ICAgICAgICAgICAgIGQgPSB0d29ieXRlX3RhYmxlWzB4M2FdLmRlc2M7Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTlJFQ09HTklaRUQ7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiAgICAgICAgICAgICAgICAgICAgICB9Cj4gICAg ICAgICAgICAgICAgICB9Cj4gQEAgLTI1OTksNyArMjYwMCw3IEBAIHg4Nl9kZWNvZGUoCj4gICAg ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICAgICBlbHNlCj4gICAgICAgICAgICAgICAg ICB7Cj4gLSAgICAgICAgICAgICAgICAgICAgcmMgPSBYODZFTVVMX1VOSEFORExFQUJMRTsKPiAr ICAgICAgICAgICAgICAgICAgICByYyA9IFg4NkVNVUxfVU5SRUNPR05JWkVEOwo+ICAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiAgICAgICAgICAgICAgICAgIH0KPiAKPiBAQCAtMjg3 OSw3ICsyODgwLDcgQEAgeDg2X2RlY29kZSgKPiAKPiAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAg QVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cj4gLSAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB QkxFOwo+ICsgICAgICAgIHJldHVybiBYODZFTVVMX1VOSU1QTEVNRU5URUQ7Cj4gICAgICB9Cj4g Cj4gICAgICBpZiAoIGVhLnR5cGUgPT0gT1BfTUVNICkKPiBAQCAtNDE5MSw3ICs0MTkyLDcgQEAg eDg2X2VtdWxhdGUoCj4gICAgICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICAgICAgY2Fz ZSA0OiAvKiBmbGRlbnYgLSBUT0RPICovCj4gICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0 cmwgPSB0cnVlOwo+IC0gICAgICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKPiArICAg ICAgICAgICAgICAgIGdvdG8gdW5pbXBsZW1lbnRlZF9pbnNuOwo+ICAgICAgICAgICAgICBjYXNl IDU6IC8qIGZsZGN3IG0yYnl0ZSAqLwo+ICAgICAgICAgICAgICAgICAgc3RhdGUtPmZwdV9jdHJs ID0gdHJ1ZTsKPiAgICAgICAgICAgICAgICAgIGlmICggKHJjID0gb3BzLT5yZWFkKGVhLm1lbS5z ZWcsIGVhLm1lbS5vZmYsICZzcmMudmFsLAo+IEBAIC00MjAyLDcgKzQyMDMsNyBAQCB4ODZfZW11 bGF0ZSgKPiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICAgICBjYXNlIDY6IC8q IGZuc3RlbnYgLSBUT0RPICovCj4gICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0 cnVlOwo+IC0gICAgICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKPiArICAgICAgICAg ICAgICAgIGdvdG8gdW5pbXBsZW1lbnRlZF9pbnNuOwo+ICAgICAgICAgICAgICBjYXNlIDc6IC8q IGZuc3RjdyBtMmJ5dGUgKi8KPiAgICAgICAgICAgICAgICAgIHN0YXRlLT5mcHVfY3RybCA9IHRy dWU7Cj4gICAgICAgICAgICAgICAgICBlbXVsYXRlX2ZwdV9pbnNuX21lbWRzdCgiZm5zdGN3Iiwg ZHN0LnZhbCk7Cj4gQEAgLTQ0MzgsNyArNDQzOSw3IEBAIHg4Nl9lbXVsYXRlKAo+ICAgICAgICAg ICAgICBjYXNlIDQ6IC8qIGZyc3RvciAtIFRPRE8gKi8KPiAgICAgICAgICAgICAgY2FzZSA2OiAv KiBmbnNhdmUgLSBUT0RPICovCj4gICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0 cnVlOwo+IC0gICAgICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKPiArICAgICAgICAg ICAgICAgIGdvdG8gdW5pbXBsZW1lbnRlZF9pbnNuOwo+ICAgICAgICAgICAgICBjYXNlIDc6IC8q IGZuc3RzdyBtMmJ5dGUgKi8KPiAgICAgICAgICAgICAgICAgIHN0YXRlLT5mcHVfY3RybCA9IHRy dWU7Cj4gICAgICAgICAgICAgICAgICBlbXVsYXRlX2ZwdV9pbnNuX21lbWRzdCgiZm5zdHN3Iiwg ZHN0LnZhbCk7Cj4gQEAgLTUxOTcsNyArNTE5OCw3IEBAIHg4Nl9lbXVsYXRlKAo+ICAjdW5kZWYg X0dSUDcKPiAKPiAgICAgICAgICBkZWZhdWx0Ogo+IC0gICAgICAgICAgICBnb3RvIGNhbm5vdF9l bXVsYXRlOwo+ICsgICAgICAgICAgICBnb3RvIHVuaW1wbGVtZW50ZWRfaW5zbjsKPiAgICAgICAg ICB9Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gQEAgLTYxOTUsNyArNjE5Niw3IEBAIHg4 Nl9lbXVsYXRlKAo+ICAgICAgICAgICAgICAgICAgLyogdnBzbGx7dyxkfSAkaW1tOCx7eCx5fW1t LHt4LHl9bW0gKi8KPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgZGVmYXVsdDoKPiAt ICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKPiArICAgICAgICAgICAgZ290byB1bmlt cGxlbWVudGVkX2luc247Cj4gICAgICAgICAgfQo+ICAgICAgc2ltZF8wZl9zaGlmdF9pbW06Cj4g ICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfUkVHLCBFWENfVUQp Owo+IEBAIC02MjQzLDcgKzYyNDQsOCBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICBjYXNlIDY6 IC8qIHBzbGxxICRpbW04LG1tICovCj4gICAgICAgICAgICAgIGdvdG8gc2ltZF8wZl9zaGlmdF9p bW07Cj4gICAgICAgICAgfQo+IC0gICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7Cj4gKyAgICAg ICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpFRDsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4gCj4g ICAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYsIDB4NzMpOgo+ICAgICAgY2FzZSBYODZFTVVM X09QQ19WRVhfNjYoMHgwZiwgMHg3Myk6Cj4gQEAgLTYyNTksNyArNjI2MSw4IEBAIHg4Nl9lbXVs YXRlKAo+ICAgICAgICAgICAgICAgICAgLyogdnBzbGxkcSAkaW1tOCx7eCx5fW1tLHt4LHl9bW0g Ki8KPiAgICAgICAgICAgICAgZ290byBzaW1kXzBmX3NoaWZ0X2ltbTsKPiAgICAgICAgICB9Cj4g LSAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKPiArICAgICAgICByYyA9IFg4NkVNVUxfVU5S RUNPR05JWkVEOwo+ICsgICAgICAgIGdvdG8gZG9uZTsKPiAKPiAgICAgIGNhc2UgWDg2RU1VTF9P UEMoMHgwZiwgMHg3Nyk6ICAgICAgICAvKiBlbW1zICovCj4gICAgICBjYXNlIFg4NkVNVUxfT1BD X1ZFWCgweDBmLCAweDc3KTogICAgLyogdnplcm97YWxsLHVwcGVyfSAqLwo+IEBAIC02MzIzLDcg KzYzMjYsOCBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICBjYXNlIDA6IC8qIGV4dHJxICRpbW04 LCRpbW04LHhtbSAqLwo+ICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICBkZWZhdWx0Ogo+ IC0gICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOwo+ICsgICAgICAgICAgICByYyA9IFg4 NkVNVUxfVU5SRUNPR05JWkVEOwo+ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gICAgICAgICAg fQo+ICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwo+ICAgICAgY2FzZSBYODZFTVVMX09QQ19G MigweDBmLCAweDc4KTogICAgIC8qIGluc2VydHEgJGltbTgsJGltbTgseG1tLHhtbQo+ICovCj4g QEAgLTY1MTgsNyArNjUyMiw3IEBAIHg4Nl9lbXVsYXRlKAo+ICAgICAgICAgICAgICAgICAgZ290 byBkb25lOwo+ICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICBkZWZhdWx0Ogo+IC0gICAg ICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOwo+ICsgICAgICAgICAgICBnb3RvIHVuaW1wbGVt ZW50ZWRfaW5zbjsKPiAgICAgICAgICB9Cj4gICAgICAgICAgYnJlYWs7Cj4gCj4gQEAgLTY1MzQs NyArNjUzOCw4IEBAIHg4Nl9lbXVsYXRlKAo+ICAgICAgICAgICAgICB2Y3B1X211c3RfaGF2ZShh dngpOwo+ICAgICAgICAgICAgICBnb3RvIHN0bXhjc3I7Cj4gICAgICAgICAgfQo+IC0gICAgICAg IGdvdG8gY2Fubm90X2VtdWxhdGU7Cj4gKyAgICAgICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpF RDsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4gCj4gICAgICBjYXNlIFg4NkVNVUxfT1BDX0YzKDB4 MGYsIDB4YWUpOiAvKiBHcnAxNSAqLwo+ICAgICAgICAgIGZhaWxfaWYobW9kcm1fbW9kICE9IDMp Owo+IEBAIC02Nzc3LDcgKzY3ODIsOCBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICAgICAgc3dp dGNoICggbW9kcm1fcmVnICYgNyApCj4gICAgICAgICAgICAgIHsKPiAgICAgICAgICAgICAgZGVm YXVsdDoKPiAtICAgICAgICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7Cj4gKyAgICAgICAg ICAgICAgICByYyA9IFg4NkVNVUxfVU5SRUNPR05JWkVEOwo+ICsgICAgICAgICAgICAgICAgZ290 byBkb25lOwo+IAo+ICAjaWZkZWYgSEFWRV9HQVNfUkRSQU5ECj4gICAgICAgICAgICAgIGNhc2Ug NjogLyogcmRyYW5kICovCj4gQEAgLTczNTksNyArNzM2NSw4IEBAIHg4Nl9lbXVsYXRlKAo+ICAg ICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShibWkxKTsKPiAgICAgICAgICAgICAg YnJlYWs7Cj4gICAgICAgICAgZGVmYXVsdDoKPiAtICAgICAgICAgICAgZ290byBjYW5ub3RfZW11 bGF0ZTsKPiArICAgICAgICAgICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpFRDsKPiArICAgICAg ICAgICAgZ290byBkb25lOwo+ICAgICAgICAgIH0KPiAKPiAgICAgICAgICBnZW5lcmF0ZV9leGNl cHRpb25faWYodmV4LmwsIEVYQ19VRCk7Cj4gQEAgLTc2NzAsNyArNzY3Nyw4IEBAIHg4Nl9lbXVs YXRlKAo+ICAgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZSh0Ym0pOwo+ICAgICAg ICAgICAgICBicmVhazsKPiAgICAgICAgICBkZWZhdWx0Ogo+IC0gICAgICAgICAgICBnb3RvIGNh bm5vdF9lbXVsYXRlOwo+ICsgICAgICAgICAgICByYyA9IFg4NkVNVUxfVU5SRUNPR05JWkVEOwo+ ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gICAgICAgICAgfQo+IAo+ICAgICAgeG9wXzA5X3Jt X3J2Ogo+IEBAIC03NzA0LDcgKzc3MTIsOCBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICAgICAg aG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUodGJtKTsKPiAgICAgICAgICAgICAgZ290byB4b3BfMDlf cm1fcnY7Cj4gICAgICAgICAgfQo+IC0gICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7Cj4gKyAg ICAgICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpFRDsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4g Cj4gICAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwYSwgMHgxMCk6IC8qIGJleHRyIGltbSxyL20s ciAqLwo+ICAgICAgewo+IEBAIC03NzM2LDggKzc3NDUsOCBAQCB4ODZfZW11bGF0ZSgKPiAgICAg IH0KPiAKPiAgICAgIGRlZmF1bHQ6Cj4gLSAgICBjYW5ub3RfZW11bGF0ZToKPiAtICAgICAgICBy YyA9IFg4NkVNVUxfVU5IQU5ETEVBQkxFOwo+ICsgICAgdW5pbXBsZW1lbnRlZF9pbnNuOgo+ICsg ICAgICAgIHJjID0gWDg2RU1VTF9VTklNUExFTUVOVEVEOwo+ICAgICAgICAgIGdvdG8gZG9uZTsK PiAgICAgIH0KPiAKPiBAQCAtNzc4OSw3ICs3Nzk4LDggQEAgeDg2X2VtdWxhdGUoCj4gICAgICAg ICAgICAgICAgICBpZiAoIChkICYgRHN0TWFzaykgIT0gRHN0TWVtICkKPiAgICAgICAgICAgICAg ICAgIHsKPiAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKPiAtICAg ICAgICAgICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOwo+ICsgICAgICAgICAgICAgICAg ICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7Cj4gKyAgICAgICAgICAgICAgICAgICAgZ290 byBkb25lOwo+ICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4g ICAgICAgICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmgKPiBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5oCj4g aW5kZXggNGRkZjExMS4uMWZiNzRjMCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuaAo+ICsrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZf ZW11bGF0ZS5oCj4gQEAgLTEzMyw2ICsxMzMsMTkgQEAgc3RydWN0IHg4Nl9lbXVsX2ZwdV9hdXgg ewo+ICAgICogVW5kZWZpbmVkIGJlaGF2aW9yIHdoZW4gdXNlZCBhbnl3aGVyZSBlbHNlLgo+ICAg ICovCj4gICNkZWZpbmUgWDg2RU1VTF9ET05FICAgICAgICAgICA0Cj4gKyAvKgo+ICsgICogQ3Vy cmVudCBpbnN0cnVjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIGVtdWxhdG9yLgo+ICsg ICogVGhpcyB2YWx1ZSBzaG91bGQgb25seSBiZSByZXR1cm5lZCBieSB0aGUgY29yZSBlbXVsYXRv ciB3aGVuIGEgdmFsaWQKPiArICAqIG9wY29kZSBpcyBmb3VuZCBidXQgdGhlIGV4ZWN1dGlvbiBs b2dpYyBmb3IgdGhhdCBpbnN0cnVjdGlvbiBpcyBtaXNzaW5nLgo+ICsgICogSXQgc2hvdWxkIE5P VCBiZSByZXR1cm5lZCBieSBhbnkgb2YgdGhlIHg4Nl9lbXVsYXRlX29wcyBjYWxsYmFja3MuCj4g KyAgKi8KPiArI2RlZmluZSBYODZFTVVMX1VOSU1QTEVNRU5URUQgIDUKPiArIC8qCj4gKyAgKiBU aGUgY3VycmVudCBpbnN0cnVjdGlvbidzIG9wY29kZSBpcyBub3QgdmFsaWQuCj4gKyAgKiBJZiB0 aGlzIGVycm9yIGNvZGUgaXMgcmV0dXJuZWQgYnkgYSBmdW5jdGlvbiwgYW4gI1VEIHRyYXAgc2hv dWxkIGJlCj4gKyAgKiByYWlzZWQgYnkgdGhlIGZpbmFsIGNvbnN1bWVyIG9mIGl0Lgo+ICsgKi8K PiArI2RlZmluZSBYODZFTVVMX1VOUkVDT0dOSVpFRCAgIFg4NkVNVUxfVU5JTVBMRU1FTlRFRAo+ IAo+ICAvKiBGUFUgc3ViLXR5cGVzIHdoaWNoIG1heSBiZSByZXF1ZXN0ZWQgdmlhIC0+Z2V0X2Zw dSgpLiAqLwo+ICBlbnVtIHg4Nl9lbXVsYXRlX2ZwdV90eXBlIHsKPiAtLQo+IDIuNy40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==