From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: [PATCH v2 05/22] mini-os: add boot code for HVMlite support Date: Wed, 24 Aug 2016 12:21:16 +0200 Message-ID: <20160824102116.GB5996@var.bordeaux.inria.fr> References: <1472033504-23180-1-git-send-email-jgross@suse.com> <1472033504-23180-6-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1472033504-23180-6-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Juergen Gross Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org SnVlcmdlbiBHcm9zcywgb24gV2VkIDI0IEF1ZyAyMDE2IDEyOjExOjI3ICswMjAwLCB3cm90ZToK PiBBIEhWTWxpdGUgZG9tYWluIGlzIGFsd2F5cyBzdGFydGluZyBpbiAzMiBiaXQgbW9kZS4gQWRk IHRoZSBhcHByb3ByaWF0ZQo+IGJvb3QgY29kZSB0byBhcmNoL3g4NiBmb3IgdGhlIG5vbi1wYXJh dmlydHVhbGl6ZWQgY2FzZS4KPiAKPiBGb3IgdGhpcyBib290IGNvZGUgdG8gYmVjb21lIGFjdGl2 ZSB3ZSBuZWVkIHRvIHN1cHByZXNzIHRoZSBwdiByZWxhdGVkCj4gZWxmbm90ZXMgYW5kIGFkZCBh biBhcHByb3ByaWF0ZSBlbGZub3RlIGZvciBIVk1saXRlLgo+IAo+IEFzIHRoZSBIVk1saXRlIGJv b3QgY29kZSBpcyBtb3JlIG9yIGxlc3MgdGhlIHNhbWUgZm9yIDMyLSBhbmQgNjQtYml0Cj4gTWlu aS1PUyAjaW5jbHVkZSB0aGUgbmV3IGNvZGUgZnJvbSB4ODZfWzMyfDY0XS5TIGluIG9yZGVyIHRv IGF2b2lkCj4gZXJyb3IgcHJvbmUgY29kZSBkdXBsaWNhdGlvbi4gVGhlIHNwZWNpZmljIHBhcnRz IG9mIDMyLSBvciA2NC1iaXQgY29kZQo+IGFyZSBhZGRlZCB0byB4ODZfWzMyfDY0XS5TCj4gCj4g VGhpcyBlbmFibGVzIE1pbmktT1MgdG8gc3RhcnQgdGhlIGJvb3QgcHJvY2VzcyBpbiBIVk1saXRl IG1vZGUgdW50aWwgaXQKPiBlbnRlcnMgQyBjb2RlLiBUaGlzIGlzIHdvcmtpbmcgZm9yIDMyLSBh bmQgZm9yIDY0LWJpdCBtb2RlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn cm9zc0BzdXNlLmNvbT4KPiAtLS0KPiBWMjogYWRkIHNvbWUgY29tbWVudHMgYXMgcmVxdWVzdGVk IGJ5IFNhbXVlbCBUaGliYXVsdAoKV2F5IGNsZWFyZXIsIHRoYW5rcyEKClJldmlld2VkLWJ5OiBT YW11ZWwgVGhpYmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+Cgo+IC0tLQo+ICBN YWtlZmlsZSAgICAgICAgICAgfCAgIDIgKy0KPiAgYXJjaC94ODYvYXJjaC5tayAgIHwgICA0ICsK PiAgYXJjaC94ODYvbW0uYyAgICAgIHwgIDMxICsrKysrCj4gIGFyY2gveDg2L3NldHVwLmMgICB8 ICAgNCArLQo+ICBhcmNoL3g4Ni94ODZfMzIuUyAgfCAgMzEgKysrKy0KPiAgYXJjaC94ODYveDg2 XzY0LlMgIHwgIDM1ICsrKystCj4gIGFyY2gveDg2L3g4Nl9odm0uUyB8ICA4OCArKysrKysrKysr KysrCj4gIGluY2x1ZGUvY29tcGlsZXIuaCB8ICAgMSArCj4gIGluY2x1ZGUveDg2L2Rlc2MuaCB8 IDM2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ICBpbmNsdWRlL3g4Ni9vcy5oICAgfCAgIDUgKwo+ICBtaW5pb3MubWsgICAgICAgICAgfCAg IDIgKy0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgNTU2IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9u cygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC94ODYveDg2X2h2bS5TCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL3g4Ni9kZXNjLmgKPiAKPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUg Yi9NYWtlZmlsZQo+IGluZGV4IDc3OWJjOTEuLmI3ODM2ODQgMTAwNjQ0Cj4gLS0tIGEvTWFrZWZp bGUKPiArKysgYi9NYWtlZmlsZQo+IEBAIC0yNCw3ICsyNCw3IEBAIGluY2x1ZGUgbWluaW9zLm1r Cj4gIExETElCUyA6PSAKPiAgQVBQX0xETElCUyA6PSAKPiAgTERBUkNITElCIDo9IC1MJChPQkpf RElSKS8kKFRBUkdFVF9BUkNIX0RJUikgLWwkKEFSQ0hfTElCX05BTUUpCj4gLUxERkxBR1NfRklO QUwgOj0gLVQgJChUQVJHRVRfQVJDSF9ESVIpL21pbmlvcy0kKE1JTklPU19UQVJHRVRfQVJDSCku bGRzCj4gK0xERkxBR1NfRklOQUwgOj0gLVQgJChUQVJHRVRfQVJDSF9ESVIpL21pbmlvcy0kKE1J TklPU19UQVJHRVRfQVJDSCkubGRzICQoQVJDSF9MREZMQUdTX0ZJTkFMKQo+ICAKPiAgIyBQcmVm aXggZm9yIGdsb2JhbCBBUEkgbmFtZXMuIEFsbCBvdGhlciBzeW1ib2xzIGFyZSBsb2NhbGlzZWQg YmVmb3JlCj4gICMgbGlua2luZyB3aXRoIEVYVFJBX09CSlMuCj4gZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2FyY2gubWsgYi9hcmNoL3g4Ni9hcmNoLm1rCj4gaW5kZXggODFlODExOC4uNjczYTE5ZCAx MDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9hcmNoLm1rCj4gKysrIGIvYXJjaC94ODYvYXJjaC5tawo+ IEBAIC0yMCwzICsyMCw3IEBAIEVYVFJBX0lOQyArPSAkKFRBUkdFVF9BUkNIX0ZBTSkvJChNSU5J T1NfVEFSR0VUX0FSQ0gpCj4gIEVYVFJBX1NSQyArPSBhcmNoLyQoRVhUUkFfSU5DKQo+ICBlbmRp Zgo+ICAKPiAraWZlcSAoJChDT05GSUdfUEFSQVZJUlQpLG4pCj4gK0FSQ0hfTERGTEFHU19GSU5B TCA6PSAtLW9mb3JtYXQ9ZWxmMzItaTM4Ngo+ICtBUkNIX0FTX0RFUFMgKz0geDg2X2h2bS5TCj4g K2VuZGlmCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tLmMgYi9hcmNoL3g4Ni9tbS5jCj4gaW5k ZXggODhhOTI4ZC4uZmUxOGY1MyAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9tbS5jCj4gKysrIGIv YXJjaC94ODYvbW0uYwo+IEBAIC01Niw2ICs1NiwzNyBAQCB1bnNpZ25lZCBsb25nIG1mbl96ZXJv Owo+ICBleHRlcm4gY2hhciBzdGFja1tdOwo+ICBleHRlcm4gdm9pZCBwYWdlX3dhbGsodW5zaWdu ZWQgbG9uZyB2YSk7Cj4gIAo+ICsjaWZuZGVmIENPTkZJR19QQVJBVklSVAo+ICsjaW5jbHVkZSA8 bWluaS1vcy9kZXNjLmg+Cj4gK3VzZXJfZGVzYyBnZHRbTlJfR0RUX0VOVFJJRVNdID0KPiArewo+ ICsgICAgW0dEVEVfQ1M2NF9EUEwwXSA9IElOSVRfR0RURV9TWU0oMCwgMHhmZmZmZiwgQ09NTU9O LCBDT0RFLCBEUEwwLCBSLCBMKSwKPiArICAgIFtHRFRFX0NTMzJfRFBMMF0gPSBJTklUX0dEVEVf U1lNKDAsIDB4ZmZmZmYsIENPTU1PTiwgQ09ERSwgRFBMMCwgUiwgRCksCj4gKyAgICBbR0RURV9E UzMyX0RQTDBdID0gSU5JVF9HRFRFX1NZTSgwLCAweGZmZmZmLCBDT01NT04sIERBVEEsIERQTDAs IEIsIFcpLAo+ICsKPiArICAgIFtHRFRFX0NTNjRfRFBMM10gPSBJTklUX0dEVEVfU1lNKDAsIDB4 ZmZmZmYsIENPTU1PTiwgQ09ERSwgRFBMMywgUiwgTCksCj4gKyAgICBbR0RURV9DUzMyX0RQTDNd ID0gSU5JVF9HRFRFX1NZTSgwLCAweGZmZmZmLCBDT01NT04sIENPREUsIERQTDMsIFIsIEQpLAo+ ICsgICAgW0dEVEVfRFMzMl9EUEwzXSA9IElOSVRfR0RURV9TWU0oMCwgMHhmZmZmZiwgQ09NTU9O LCBEQVRBLCBEUEwzLCBCLCBXKSwKPiArCj4gKyAgICAvKiBbR0RURV9UU1NdICAgICAqLwo+ICsg ICAgLyogW0dEVEVfVFNTICsgMV0gKi8KPiArfTsKPiArCj4gK2Rlc2NfcHRyIGdkdF9wdHIgPQo+ ICt7Cj4gKyAgICAubGltaXQgPSBzaXplb2YoZ2R0KSAtIDEsCj4gKyAgICAuYmFzZSA9ICh1bnNp Z25lZCBsb25nKSZnZHQsCj4gK307Cj4gKwo+ICtnYXRlX2Rlc2MgaWR0WzI1Nl0gPSB7IH07Cj4g Kwo+ICtkZXNjX3B0ciBpZHRfcHRyID0KPiArewo+ICsgICAgLmxpbWl0ID0gc2l6ZW9mKGlkdCkg LSAxLAo+ICsgICAgLmJhc2UgPSAodW5zaWduZWQgbG9uZykmaWR0LAo+ICt9Owo+ICsjZW5kaWYK PiArCj4gIC8qCj4gICAqIE1ha2UgcHRfcGZuIGEgbmV3ICdsZXZlbCcgcGFnZSB0YWJsZSBmcmFt ZSBhbmQgaG9vayBpdCBpbnRvIHRoZSBwYWdlCj4gICAqIHRhYmxlIGF0IG9mZnNldCBpbiBwcmV2 aW91cyBsZXZlbCBNRk4gKHByZWZfbF9tZm4pLiBwdF9wZm4gaXMgYSBndWVzdAo+IGRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9zZXR1cC5jIGIvYXJjaC94ODYvc2V0dXAuYwo+IGluZGV4IDVlODdkZDEu LjMwYTkxNDMgMTAwNjQ0Cj4gLS0tIGEvYXJjaC94ODYvc2V0dXAuYwo+ICsrKyBiL2FyY2gveDg2 L3NldHVwLmMKPiBAQCAtOTQsOSArOTQsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHNzZV9pbml0 KHZvaWQpIHsKPiAgICogSU5JVElBTCBDIEVOVFJZIFBPSU5ULgo+ICAgKi8KPiAgdm9pZAo+IC1h cmNoX2luaXQoc3RhcnRfaW5mb190ICpzaSkKPiArYXJjaF9pbml0KHZvaWQgKnBhcikKPiAgewo+ ICAJc3RhdGljIGNoYXIgaGVsbG9bXSA9ICJCb290c3RyYXBwaW5nLi4uXG4iOwo+ICsJc3RhcnRf aW5mb190ICpzaTsKPiAgCj4gIAkodm9pZClIWVBFUlZJU09SX2NvbnNvbGVfaW8oQ09OU09MRUlP X3dyaXRlLCBzdHJsZW4oaGVsbG8pLCBoZWxsbyk7Cj4gIAo+IEBAIC0xMTEsNiArMTEyLDcgQEAg YXJjaF9pbml0KHN0YXJ0X2luZm9fdCAqc2kpCj4gIAkvKiBDb3B5IHRoZSBzdGFydF9pbmZvIHN0 cnVjdCB0byBhIGdsb2JhbGx5LWFjY2Vzc2libGUgYXJlYS4gKi8KPiAgCS8qIFdBUk46IGRvbid0 IGRvIHByaW50ayBiZWZvcmUgaGVyZSwgaXQgdXNlcyBpbmZvcm1hdGlvbiBmcm9tCj4gIAkgICBz aGFyZWRfaW5mby4gVXNlIHhwcmludGsgaW5zdGVhZC4gKi8KPiArCXNpID0gcGFyOwo+ICAJbWVt Y3B5KCZzdGFydF9pbmZvLCBzaSwgc2l6ZW9mKCpzaSkpOwo+ICAKPiAgCS8qIHByaW50IG91dCBz b21lIHVzZWZ1bCBpbmZvcm1hdGlvbiAgKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYveDg2XzMy LlMgYi9hcmNoL3g4Ni94ODZfMzIuUwo+IGluZGV4IDZkYzk4NWEuLjZmMzg3MDggMTAwNjQ0Cj4g LS0tIGEvYXJjaC94ODYveDg2XzMyLlMKPiArKysgYi9hcmNoL3g4Ni94ODZfMzIuUwo+IEBAIC0x LDIwICsxLDMxIEBACj4gICNpbmNsdWRlIDxtaW5pLW9zL29zLmg+Cj4gICNpbmNsdWRlIDxtaW5p LW9zL3g4Ni9hcmNoX2xpbWl0cy5oPgo+ICAjaW5jbHVkZSA8bWluaS1vcy9hc21fbWFjcm9zLmg+ Cj4gKyNpbmNsdWRlIDxtaW5pLW9zL2FyY2hfbW0uaD4KPiArI2luY2x1ZGUgPG1pbmktb3MvZGVz Yy5oPgo+ICsjaW5jbHVkZSA8eGVuL2FyY2gteDg2XzMyLmg+Cj4gICNpbmNsdWRlIDx4ZW4vZWxm bm90ZS5oPgo+ICAjaW5jbHVkZSA8eGVuL2FyY2gteDg2XzMyLmg+Cj4gIAo+ICsjaWZkZWYgQ09O RklHX1BBUkFWSVJUCj4gIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9HVUVTVF9PUywgLmFzY2l6 ICJNaW5pLU9TIikKPiAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0xPQURFUiwgLmFzY2l6ICJn ZW5lcmljIikKPiAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0hZUEVSQ0FMTF9QQUdFLCBfV09S RCBoeXBlcmNhbGxfcGFnZSkKPiAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX1hFTl9WRVJTSU9O LCAuYXNjaXogInhlbi0zLjAiKQo+ICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfUEFFX01PREUs IC5hc2NpeiAieWVzIikKPiArLnRleHQKPiAgCj4gLS5nbG9ibCBfc3RhcnQsIHNoYXJlZF9pbmZv LCBoeXBlcmNhbGxfcGFnZQo+ICsuZ2xvYmwgX3N0YXJ0Cj4gICAgICAgICAgICAgICAgICAgICAg ICAgIAo+ICBfc3RhcnQ6Cj4gLSAgICAgICAgY2xkCj4gICAgICAgICAgbHNzIHN0YWNrX3N0YXJ0 LCVlc3AKPiArI2Vsc2UKPiArCj4gKyNpbmNsdWRlICJ4ODZfaHZtLlMiCj4gKyAgICAgICAgbW92 bCBzdGFja19zdGFydCwlZXNwCj4gKwo+ICsjZW5kaWYKPiArICAgICAgICBjbGQKPiAgICAgICAg ICBhbmRsICQofihfX1NUQUNLX1NJWkUtMSkpLCAlZXNwCj4gICAgICAgICAgcHVzaCAlZXNpIAo+ ICAgICAgICAgIGNhbGwgYXJjaF9pbml0Cj4gQEAgLTIyLDE0ICszMywxNSBAQCBfc3RhcnQ6Cj4g IHN0YWNrX3N0YXJ0Ogo+ICAJLmxvbmcgc3RhY2srKDIqX19TVEFDS19TSVpFKSwgX19LRVJORUxf U1MKPiAgCj4gKy5nbG9ibCBzaGFyZWRfaW5mbywgaHlwZXJjYWxsX3BhZ2UKPiAgICAgICAgICAv KiBVbnBsZWFzYW50IC0tIHRoZSBQVEUgdGhhdCBtYXBzIHRoaXMgcGFnZSBpcyBhY3R1YWxseSBv dmVyd3JpdHRlbiAqLwo+ICAgICAgICAgIC8qIHRvIG1hcCB0aGUgcmVhbCBzaGFyZWQtaW5mbyBw YWdlISA6LSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCj4gLSAgICAgICAgLm9yZyAw eDEwMDAKPiArICAgICAgICAuYWxpZ24gX19QQUdFX1NJWkUKPiAgc2hhcmVkX2luZm86Cj4gLSAg ICAgICAgLm9yZyAweDIwMDAKPiArICAgICAgICAuZmlsbCBfX1BBR0VfU0laRSwxLDAKPiAgCj4g IGh5cGVyY2FsbF9wYWdlOgo+IC0gICAgICAgIC5vcmcgMHgzMDAwCj4gKyAgICAgICAgLmZpbGwg X19QQUdFX1NJWkUsMSwwCj4gIAo+ICBFUwkJPSAweDIwCj4gIE9SSUdfRUFYCT0gMHgyNAo+IEBA IC0zMDAsMyArMzEyLDEyIEBAIEVOVFJZKF9fYXJjaF9zd2l0Y2hfdGhyZWFkcykKPiAgICAgIHBv cGwgJWVieAo+ICAgICAgcG9wbCAlZWJwCj4gICAgICByZXQKPiArCj4gKyNpZm5kZWYgQ09ORklH X1BBUkFWSVJUCj4gKy5kYXRhCj4gKy5nbG9ibCBwYWdlX3RhYmxlX2Jhc2UKPiArICAgICAgICAu YWxpZ24gX19QQUdFX1NJWkUKPiArcGFnZV90YWJsZV9iYXNlOgo+ICsgICAgICAgIFBURShwYWdl X3RhYmxlX2wyICsgTDNfUFJPVCkKPiArICAgICAgICAuYWxpZ24gX19QQUdFX1NJWkUsIDAKPiAr I2VuZGlmCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L3g4Nl82NC5TIGIvYXJjaC94ODYveDg2XzY0 LlMKPiBpbmRleCA4ZWQ0NTJmLi4zNzNmNDAwIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L3g4Nl82 NC5TCj4gKysrIGIvYXJjaC94ODYveDg2XzY0LlMKPiBAQCAtMSwxOSArMSwyOSBAQAo+ICAjaW5j bHVkZSA8bWluaS1vcy9vcy5oPgo+ICAjaW5jbHVkZSA8bWluaS1vcy94ODYvYXJjaF9saW1pdHMu aD4KPiAgI2luY2x1ZGUgPG1pbmktb3MvYXNtX21hY3Jvcy5oPgo+ICsjaW5jbHVkZSA8bWluaS1v cy9hcmNoX21tLmg+Cj4gKyNpbmNsdWRlIDxtaW5pLW9zL2Rlc2MuaD4KPiArI2luY2x1ZGUgPHhl bi9mZWF0dXJlcy5oPgo+ICAjaW5jbHVkZSA8eGVuL2VsZm5vdGUuaD4KPiAgI2luY2x1ZGUgPHhl bi9mZWF0dXJlcy5oPgo+ICAKPiArI2RlZmluZSBFTlRSWShYKSAuZ2xvYmwgWCA7IFggOgo+ICsK PiArI2lmZGVmIENPTkZJR19QQVJBVklSVAo+ICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfR1VF U1RfT1MsIC5hc2NpeiAiTWluaS1PUyIpCj4gIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9MT0FE RVIsIC5hc2NpeiAiZ2VuZXJpYyIpCj4gIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9IWVBFUkNB TExfUEFHRSwgX1dPUkQgaHlwZXJjYWxsX3BhZ2UpCj4gIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9U RV9YRU5fVkVSU0lPTiwgLmFzY2l6ICJ4ZW4tMy4wIikKPiArLnRleHQKPiAgCj4gLSNkZWZpbmUg RU5UUlkoWCkgLmdsb2JsIFggOyBYIDoKPiAtLmdsb2JsIF9zdGFydCwgc2hhcmVkX2luZm8sIGh5 cGVyY2FsbF9wYWdlCj4gLQo+ICsuZ2xvYmwgX3N0YXJ0Cj4gIAo+ICBfc3RhcnQ6Cj4gKyNlbHNl Cj4gKwo+ICsjaW5jbHVkZSAieDg2X2h2bS5TIgo+ICsKPiArI2VuZGlmCj4gICAgICAgICAgY2xk Cj4gICAgICAgICAgbW92cSBzdGFja19zdGFydCglcmlwKSwlcnNwCj4gICAgICAgICAgYW5kcSAk KH4oX19TVEFDS19TSVpFLTEpKSwgJXJzcAo+IEBAIC0yMywxNCArMzMsMTUgQEAgX3N0YXJ0Ogo+ ICBzdGFja19zdGFydDoKPiAgICAgICAgICAucXVhZCBzdGFjaysoMipfX1NUQUNLX1NJWkUpCj4g IAo+ICsuZ2xvYmwgc2hhcmVkX2luZm8sIGh5cGVyY2FsbF9wYWdlCj4gICAgICAgICAgLyogVW5w bGVhc2FudCAtLSB0aGUgUFRFIHRoYXQgbWFwcyB0aGlzIHBhZ2UgaXMgYWN0dWFsbHkgb3Zlcndy aXR0ZW4gKi8KPiAgICAgICAgICAvKiB0byBtYXAgdGhlIHJlYWwgc2hhcmVkLWluZm8gcGFnZSEg Oi0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+IC0gICAgICAgIC5vcmcgMHgxMDAw Cj4gKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFCj4gIHNoYXJlZF9pbmZvOgo+IC0gICAgICAg IC5vcmcgMHgyMDAwCj4gKyAgICAgICAgLmZpbGwgX19QQUdFX1NJWkUsMSwwCj4gIAo+ICBoeXBl cmNhbGxfcGFnZToKPiAtICAgICAgICAub3JnIDB4MzAwMAo+ICsgICAgICAgIC5maWxsIF9fUEFH RV9TSVpFLDEsMAo+ICAKPiAgCj4gICNkZWZpbmUgWEVOX0dFVF9WQ1BVX0lORk8ocmVnKQltb3Zx IEhZUEVSVklTT1Jfc2hhcmVkX2luZm8scmVnCj4gQEAgLTM3OCwzICszODksMTUgQEAgRU5UUlko X19hcmNoX3N3aXRjaF90aHJlYWRzKQo+ICAJcG9wcSAlcmJ4Cj4gIAlwb3BxICVyYnAKPiAgCXJl dAo+ICsKPiArI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKPiArLmRhdGEKPiArLmdsb2JsIHBhZ2Vf dGFibGVfYmFzZQo+ICsgICAgICAgIC5hbGlnbiBfX1BBR0VfU0laRQo+ICtwYWdlX3RhYmxlX2wz Ogo+ICsgICAgICAgIFBURShwYWdlX3RhYmxlX2wyICsgTDNfUFJPVCkKPiArICAgICAgICAuYWxp Z24gX19QQUdFX1NJWkUsIDAKPiArcGFnZV90YWJsZV9iYXNlOgo+ICsgICAgICAgIFBURShwYWdl X3RhYmxlX2wzICsgTDRfUFJPVCkKPiArICAgICAgICAuYWxpZ24gX19QQUdFX1NJWkUsIDAKPiAr I2VuZGlmCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L3g4Nl9odm0uUyBiL2FyY2gveDg2L3g4Nl9o dm0uUwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNmU4YWQ5OAo+IC0t LSAvZGV2L251bGwKPiArKysgYi9hcmNoL3g4Ni94ODZfaHZtLlMKPiBAQCAtMCwwICsxLDg4IEBA Cj4gKy8qIEluY2x1ZGVkIGJ5IHg4Nl9bMzJ8NjRdLlMgKi8KPiArCj4gKyAgICAgICAgRUxGTk9U RShYZW4sIFhFTl9FTEZOT1RFX1BIWVMzMl9FTlRSWSwgLmxvbmcgX3N0YXJ0KQo+ICsudGV4dAo+ ICsgICAgICAgIC5jb2RlMzIgICAgICAgICAgICAgICAgIC8qIEFsd2F5cyBzdGFydHMgaW4gMzJi aXQgZmxhdCBtb2RlLiAqLwo+ICsKPiArLmdsb2JsIF9zdGFydAo+ICsKPiArX3N0YXJ0Ogo+ICsg ICAgICAgIG1vdiAkKFg4Nl9DUjRfUEFFIHwgWDg2X0NSNF9PU0ZYU1IpLCAlZWF4Cj4gKyAgICAg ICAgbW92ICVlYXgsICVjcjQKPiArICAgICAgICBtb3YgJHBhZ2VfdGFibGVfYmFzZSwgJWVheAo+ ICsgICAgICAgIG1vdiAlZWF4LCAlY3IzCj4gKwo+ICsjaWZkZWYgX194ODZfNjRfXyAgICAgICAg ICAgICAgIC8qIEVGRVIuTE1FID0gMSAqLwo+ICsgICAgICAgIG1vdiAkTVNSX0VGRVIsICVlY3gK PiArICAgICAgICByZG1zcgo+ICsgICAgICAgIGJ0cyAkX0VGRVJfTE1FLCAlZWF4Cj4gKyAgICAg ICAgd3Jtc3IKPiArI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KPiArCj4gKyAgICAgICAgbW92ICVj cjAsICVlYXgKPiArICAgICAgICBvciAkWDg2X0NSMF9QRywgJWVheAo+ICsgICAgICAgIG1vdiAl ZWF4LCAlY3IwCj4gKwo+ICsgICAgICAgIGxnZHQgZ2R0X3B0cgo+ICsKPiArICAgICAgICAvKiBM b2FkIGNvZGUgc2VnbWVudC4gKi8KPiArICAgICAgICBsam1wICRfX0tFUk5fQ1MsICQxZgo+ICsj aWZkZWYgX194ODZfNjRfXwo+ICsgICAgICAgIC5jb2RlNjQKPiArI2VuZGlmCj4gKwo+ICsgICAg ICAgIC8qIExvYWQgZGF0YSBzZWdtZW50cy4gKi8KPiArMToKPiArICAgICAgICBtb3YgJF9fVVNF Ul9EUywgJWVheAo+ICsgICAgICAgIG1vdiAlZWF4LCAlZHMKPiArICAgICAgICBtb3YgJWVheCwg JWVzCj4gKyAgICAgICAgbW92ICVlYXgsICVmcwo+ICsgICAgICAgIG1vdiAlZWF4LCAlZ3MKPiAr ICAgICAgICBtb3YgJF9fS0VSTl9EUywgJWVheAo+ICsgICAgICAgIG1vdiAlZWF4LCAlc3MKPiAr Cj4gKyAgICAgICAgbW92ICVlYngsICVlc2kKPiArCj4gKy5kYXRhCj4gKy8qCj4gKyAqIE1hY3Jv IHRvIGNyZWF0ZSBhIHNlcXVlbmNlIG9mIHBhZ2UgdGFibGUgZW50cmllcy4KPiArICogQXMgYSBs b29wIGNhbiBiZSBkb25lIHZpYSByZWN1cnNpb24gb25seSBhbmQgdGhlIG5lc3RpbmcgbGV2ZWwg aXMgbGltaXRlZAo+ICsgKiB3ZSB0cmVhdCB0aGUgZmlyc3QgMzIgUFRFcyBpbiBhIHNwZWNpYWwg d2F5IGxpbWl0aW5nIG5lc3RpbmcgbGV2ZWwgdG8gNjQKPiArICogaW4gY2FzZSBvZiBhIGNvbXBs ZXRlIHBhZ2UgdGFibGUgKDUxMiBQVEVzKSB0byBiZSBmaWxsZWQuCj4gKyAqIHByb3Q6IHByb3Rl Y3Rpb24gYml0cyBpbiBhbGwgUFRFcwo+ICsgKiBhZGRyOiBwaHlzaWNhbCBhZGRyZXNzIG9mIHRo ZSBhcmVhIHRvIG1hcAo+ICsgKiBpbmNyOiBpbmNyZW1lbnQgb2YgYWRkcmVzcyBmb3IgZWFjaCBQ VEUKPiArICogaWR4OiAgaW5kZXggb2YgZmlyc3QgUFRFIGluIHBhZ2UgdGFibGUKPiArICogZW5k OiAgaW5kZXggb2YgbGFzdCBQVEUgaW4gcGFnZSB0YWJsZSArIDEKPiArICovCj4gKyAgICAgICAg Lm1hY3JvIFBURVMgcHJvdCwgYWRkciwgaW5jciwgaWR4LCBlbmQKPiArICAgICAgICAuaWZndCBc ZW5kLVxpZHgtMzIKPiArICAgICAgICBQVEVTIFxwcm90LCBcYWRkciwgXGluY3IsIFxpZHgsICIo XGlkeCszMikiCj4gKyAgICAgICAgUFRFUyBccHJvdCwgIihcYWRkciszMipcaW5jcikiLCBcaW5j ciwgIihcaWR4KzMyKSIsIFxlbmQKPiArICAgICAgICAuZWxzZQo+ICsgICAgICAgIFBURShcYWRk ciArIFxwcm90KQo+ICsgICAgICAgIC5pZiBcZW5kLVxpZHgtMQo+ICsgICAgICAgIFBURVMgXHBy b3QsICIoXGFkZHIrXGluY3IpIiwgXGluY3IsICIoXGlkeCsxKSIsIFxlbmQKPiArICAgICAgICAu ZW5kaWYKPiArICAgICAgICAuZW5kaWYKPiArICAgICAgICAuZW5kbQo+ICsgICAgICAgIC5hbGln biBfX1BBR0VfU0laRQo+ICtwYWdlX3RhYmxlX3ZpcnRfbDE6Cj4gKyAgICAgICAgUFRFKDApCj4g KyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFLCAwCj4gK3BhZ2VfdGFibGVfbDE6Cj4gKyAgICAg ICAgUFRFUyBMMV9QUk9ULCAweDAwMDAwMDAwLCAweDAwMDAxMDAwLCAwLCBMMV9QQUdFVEFCTEVf RU5UUklFUwo+ICsgICAgICAgIC5hbGlnbiBfX1BBR0VfU0laRSwgMAo+ICtwYWdlX3RhYmxlX2wy Ogo+ICsgICAgICAgIC8qIE1hcCB0aGUgZmlyc3QgMUdCIG9mIG1lbW9yeSAob24gMzIgYml0IDE2 TUIgbGVzcykuICovCj4gKyAgICAgICAgUFRFKHBhZ2VfdGFibGVfbDEgKyBMMl9QUk9UKQo+ICsj aWZkZWYgX194ODZfNjRfXwo+ICsgICAgICAgIFBURVMgTDJfUFJPVHxfUEFHRV9QU0UsIDB4MDAy MDAwMDAsIDB4MDAyMDAwMDAsIDEsIEwyX1BBR0VUQUJMRV9FTlRSSUVTCj4gKyNlbHNlCj4gKyAg ICAgICAgLyogQXQgM2YwMDAwMDAgdmlydHVhbCBrZXJuZWwgYXJlYSBpcyBzdGFydGluZy4gKi8K PiArICAgICAgICBQVEVTIEwyX1BST1R8X1BBR0VfUFNFLCAweDAwMjAwMDAwLCAweDAwMjAwMDAw LCAxLCBsMl90YWJsZV9vZmZzZXQoVklSVF9LRVJORUxfQVJFQSkKPiArICAgICAgICBQVEUocGFn ZV90YWJsZV92aXJ0X2wxICsgTDJfUFJPVCkKPiArI2VuZGlmCj4gKyAgICAgICAgLmFsaWduIF9f UEFHRV9TSVpFLCAwCj4gKwo+ICsudGV4dAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbXBpbGVy LmggYi9pbmNsdWRlL2NvbXBpbGVyLmgKPiBpbmRleCA0MTg4Mjc3Li4wY2JhZDk4IDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvY29tcGlsZXIuaAo+ICsrKyBiL2luY2x1ZGUvY29tcGlsZXIuaAo+IEBA IC02LDUgKzYsNiBAQAo+ICAjZW5kaWYKPiAgI2RlZmluZSB1bmxpa2VseSh4KSAgX19idWlsdGlu X2V4cGVjdCghISh4KSwwKQo+ICAjZGVmaW5lIGxpa2VseSh4KSAgICBfX2J1aWx0aW5fZXhwZWN0 KCEhKHgpLDEpCj4gKyNkZWZpbmUgX19wYWNrZWQgICAgIF9fYXR0cmlidXRlX18oKF9fcGFja2Vk X18pKQo+ICAKPiAgI2VuZGlmIC8qIF9fTUlOSU9TX0NPTVBJTEVSX0hfICovCj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUveDg2L2Rlc2MuaCBiL2luY2x1ZGUveDg2L2Rlc2MuaAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYjliOTIxYgo+IC0tLSAvZGV2L251bGwKPiArKysg Yi9pbmNsdWRlL3g4Ni9kZXNjLmgKPiBAQCAtMCwwICsxLDM2NyBAQAo+ICsvKiAtKi0gIE1vZGU6 QzsgYy1iYXNpYy1vZmZzZXQ6NDsgdGFiLXdpZHRoOjQgLSotCj4gKyAqCj4gKyAqIChDKSAyMDE2 IC0gSnVlcmdlbiBHcm9zcywgU1VTRSBMaW51eCBHbWJICj4gKyAqIGJhc2VkIG9uIHNvbWUgaGVh ZGVyIGZpbGVzIGZyb20gWGVuIFRlc3QgRnJhbWV3b3JrIGJ5IEFuZHJldyBDb29wZXIKPiArICoK PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVh bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3 YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqLwo+ICsKPiArI2lm bmRlZiBfREVTQ19IXwo+ICsjZGVmaW5lIF9ERVNDX0hfCj4gKwo+ICsvKgo+ICsgKiBDb3VudCB0 aGUgbnVtYmVyIG9mIHZhcmFkaWMgYXJndW1lbnRzIHByb3ZpZGVkLgo+ICsgKgo+ICsgKiA8cHJl Pgo+ICsgKiAgIFZBX05BUkdTKCkgICAgID0+IDAKPiArICogICBWQV9OQVJHUyh4KSAgICA9PiAx Cj4gKyAqICAgVkFfTkFSR1MoeCwgeSkgPT4gMgo+ICsgKiA8L3ByZT4KPiArICoKPiArICogQ3Vy cmVudGx5IGZ1bmN0aW9ucyBmb3IgMCB0byAxMSBhcmd1bWVudHMuCj4gKyAqLwo+ICsjZGVmaW5l IFZBX05BUkdTXyhfMSwgXzIsIF8zLCBfNCwgXzUsIF82LCBfNywgXzgsIF85LCBfMTAsIF8xMSwg XzEyLCBOLCAuLi4pIE4KPiArI2RlZmluZSBWQV9OQVJHUyguLi4pIFwKPiArICAgIFZBX05BUkdT XyhYLCMjX19WQV9BUkdTX18sIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCkK PiArCj4gKy8qCj4gKyAqIENhbGwgYSBtYWNybyB2YXJpYXRpb24sIGJhc2VkIG9uIHRoZSBudW1i ZXIgb2YgdmFyYWRpYyBhcmd1bWVudHMuCj4gKyAqCj4gKyAqIEBwYXJhbSBtYWNybyBQYXJ0aWFs IHRva2VuIHRvIGNhbGwgYSB2YXJpYXRpb24gb2YuCj4gKyAqIEBwYXJhbSBjMSAgICBDb25zdGFu dCBwYXJhbWV0ZXIgdG8gcGFzcyB0aHJvdWdoLgo+ICsgKiBAcGFyYW0gLi4uICAgVmFyYWRpYyBh cmd1bWVudHMgdG8gcGFzcyB0aHJvdWdoLgo+ICsgKgo+ICsgKiBUb2tlbmlzZXMgJ21hY3JvJyB3 aXRoIHRoZSBjb3VudCBvZiB2YXJhZGljIGFyZ3VtZW50cywgcGFzc2luZyAnYzEnIGFuZCB0aGUK PiArICogdmFyYWRpYyBhcmd1bWVudHMuCj4gKyAqCj4gKyAqIDxwcmU+Cj4gKyAqICAgVkFSX01B Q1JPX0MxKG0sIGMpICAgICAgICAgID0+IG0wKGMpCj4gKyAqICAgVkFSX01BQ1JPX0MxKG0sIGMs IHgpICAgICAgID0+IG0xKGMsIHgpCj4gKyAqICAgVkFSX01BQ1JPX0MxKG0sIGMsIHgsIHkpICAg ID0+IG0yKGMsIHgsIHkpCj4gKyAqICAgVkFSX01BQ1JPX0MxKG0sIGMsIHgsIHksIHopID0+IG0z KGMsIHgsIHksIHopCj4gKyAqIDwvcHJlPgo+ICsgKi8KPiArI2RlZmluZSBWQVJfTUFDUk9fQzFf XyhtYWNybywgYzEsIGNvdW50LCAuLi4pIG1hY3JvIyNjb3VudChjMSwgIyNfX1ZBX0FSR1NfXykK PiArI2RlZmluZSBWQVJfTUFDUk9fQzFfKG1hY3JvLCBjMSwgY291bnQsIC4uLikgICAgICAgIFwK PiArICAgIFZBUl9NQUNST19DMV9fKG1hY3JvLCBjMSwgY291bnQsICMjX19WQV9BUkdTX18pCj4g KyNkZWZpbmUgVkFSX01BQ1JPX0MxKG1hY3JvLCBjMSwgLi4uKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICsgICAgVkFSX01BQ1JPX0MxXyhtYWNybywgYzEsIFZBX05BUkdTKF9f VkFfQVJHU19fKSwgIyNfX1ZBX0FSR1NfXykKPiArCj4gKy8qCj4gKyAqIEdEVCBsYXlvdXQ6Cj4g KyAqCj4gKyAqICAwIC0gbnVsbAo+ICsgKiAgMSAtIDY0Yml0IHN1cGVydmlzb3IgY29kZQo+ICsg KiAgMiAtIDMyYml0IHN1cGVydmlzb3IgY29kZQo+ICsgKiAgMyAtIDMyYml0IHN1cGVydmlzb3Ig ZGF0YQo+ICsgKiAgNCAtIDY0Yml0IHVzZXJzcGFjZSBjb2RlCj4gKyAqICA1IC0gMzJiaXQgdXNl cnNwYWNlIGNvZGUKPiArICogIDYgLSAzMmJpdCB1c2Vyc3BhY2UgZGF0YQo+ICsgKiAgNyAtIFRT UyAodHdvIHNsb3RzIGluIGxvbmcgbW9kZSkKPiArICoKPiArICogIDktMTIgLSBBdmFpbGFibGUg Zm9yIHRlc3QgdXNlCj4gKyAqLwo+ICsKPiArI2RlZmluZSBHRFRFX0NTNjRfRFBMMCAxCj4gKyNk ZWZpbmUgR0RURV9DUzMyX0RQTDAgMgo+ICsjZGVmaW5lIEdEVEVfRFMzMl9EUEwwIDMKPiArI2Rl ZmluZSBHRFRFX0NTNjRfRFBMMyA0Cj4gKyNkZWZpbmUgR0RURV9DUzMyX0RQTDMgNQo+ICsjZGVm aW5lIEdEVEVfRFMzMl9EUEwzIDYKPiArCj4gKyNkZWZpbmUgR0RURV9UU1MgNwo+ICsKPiArI2Rl ZmluZSBHRFRFX0FWQUlMMCAgICAgOQo+ICsjZGVmaW5lIEdEVEVfQVZBSUwxICAgIDEwCj4gKyNk ZWZpbmUgR0RURV9BVkFJTDIgICAgMTEKPiArI2RlZmluZSBHRFRFX0FWQUlMMyAgICAxMgo+ICsK PiArI2RlZmluZSBOUl9HRFRfRU5UUklFUyAxMwo+ICsKPiArI2lmZGVmIF9feDg2XzY0X18KPiAr Cj4gKyNkZWZpbmUgX19LRVJOX0NTIChHRFRFX0NTNjRfRFBMMCAqIDgpCj4gKyNkZWZpbmUgX19L RVJOX0RTICgwKQo+ICsjZGVmaW5lIF9fVVNFUl9DUyAoR0RURV9DUzY0X0RQTDMgKiA4ICsgMykK PiArI2RlZmluZSBfX1VTRVJfRFMgKEdEVEVfRFMzMl9EUEwzICogOCArIDMpCj4gKwo+ICsjZWxz ZSAvKiBfX3g4Nl82NF9fICovCj4gKwo+ICsjZGVmaW5lIF9fS0VSTl9DUyAoR0RURV9DUzMyX0RQ TDAgKiA4KQo+ICsjZGVmaW5lIF9fS0VSTl9EUyAoR0RURV9EUzMyX0RQTDAgKiA4KQo+ICsjZGVm aW5lIF9fVVNFUl9DUyAoR0RURV9DUzMyX0RQTDMgKiA4ICsgMykKPiArI2RlZmluZSBfX1VTRVJf RFMgKEdEVEVfRFMzMl9EUEwzICogOCArIDMpCj4gKwo+ICsjZW5kaWYgLyogX194ODZfNjRfXyAq Lwo+ICsKPiArI2lmbmRlZiBfX0FTU0VNQkxZX18KPiArLyogOCBieXRlIHVzZXIgc2VnbWVudCBk ZXNjcmlwdG9yIChHRFQvTERUIGVudHJpZXMgd2l0aCAucyA9IDEpICovCj4gK3N0cnVjdCBfX3Bh Y2tlZCBzZWdfZGVzYzMyIHsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICAvKiBSYXcgYmFja2lu ZyBpbnRlZ2Vycy4gKi8KPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1aW50MzJf dCBsbywgaGk7Cj4gKyAgICAgICAgfTsKPiArICAgICAgICAvKiBDb21tb24gbmFtZWQgZmllbGRz LiAqLwo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQxNl90IGxpbWl0MDsK PiArICAgICAgICAgICAgdWludDE2X3QgYmFzZTA7Cj4gKyAgICAgICAgICAgIHVpbnQ4X3QgIGJh c2UxOwo+ICsgICAgICAgICAgICB1bnNpZ25lZCB0eXBlOiA0Owo+ICsgICAgICAgICAgICB1bnNp Z25lZCBzOiAxLCBkcGw6IDIsIHA6IDE7Cj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGxpbWl0OiA0 Owo+ICsgICAgICAgICAgICB1bnNpZ25lZCBhdmw6IDEsIGw6IDEsIGQ6IDEsIGc6IDE7Cj4gKyAg ICAgICAgICAgIHVpbnQ4X3QgYmFzZTI7Cj4gKyAgICAgICAgfTsKPiArICAgICAgICAvKiBDb2Rl IHNlZ21lbnQgc3BlY2lmaWMgZmllbGQgbmFtZXMuICovCj4gKyAgICAgICAgc3RydWN0IHsKPiAr ICAgICAgICAgICAgdWludDE2X3QgbGltaXQwOwo+ICsgICAgICAgICAgICB1aW50MTZfdCBiYXNl MDsKPiArICAgICAgICAgICAgdWludDhfdCAgYmFzZTE7Cj4gKyAgICAgICAgICAgIHVuc2lnbmVk IGE6IDEsIHI6IDEsIGM6IDEsIHg6IDE7Cj4gKyAgICAgICAgICAgIHVuc2lnbmVkIHM6IDEsIGRw bDogMiwgcDogMTsKPiArICAgICAgICAgICAgdW5zaWduZWQgbGltaXQ6IDQ7Cj4gKyAgICAgICAg ICAgIHVuc2lnbmVkIGF2bDogMSwgbDogMSwgZDogMSwgZzogMTsKPiArICAgICAgICAgICAgdWlu dDhfdCBiYXNlMjsKPiArICAgICAgICB9IGNvZGU7Cj4gKyAgICAgICAgLyogRGF0YSBzZWdtZW50 IHNwZWNpZmljIGZpZWxkIG5hbWVzLiAqLwo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAg ICAgIHVpbnQxNl90IGxpbWl0MDsKPiArICAgICAgICAgICAgdWludDE2X3QgYmFzZTA7Cj4gKyAg ICAgICAgICAgIHVpbnQ4X3QgIGJhc2UxOwo+ICsgICAgICAgICAgICB1bnNpZ25lZCBhOiAxLCB3 OiAxLCBlOiAxLCB4OiAxOwo+ICsgICAgICAgICAgICB1bnNpZ25lZCBzOiAxLCBkcGw6IDIsIHA6 IDE7Cj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGxpbWl0OiA0Owo+ICsgICAgICAgICAgICB1bnNp Z25lZCBhdmw6IDEsIF9yMDogMSwgYjogMSwgZzogMTsKPiArICAgICAgICAgICAgdWludDhfdCBi YXNlMjsKPiArICAgICAgICB9IGRhdGE7Cj4gKyAgICB9Owo+ICt9Owo+ICsKPiArLyogOC1ieXRl IGdhdGUgLSBQcm90ZWN0ZWQgbW9kZSBJRFQgZW50cnksIEdEVCB0YXNrL2NhbGwgZ2F0ZS4gKi8K PiArc3RydWN0IF9fcGFja2VkIHNlZ19nYXRlMzIgewo+ICsgICAgdW5pb24gewo+ICsgICAgICAg IHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IGxvLCBoaTsKPiArICAgICAgICB9Owo+ ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIHVpbnQxNl90IG9mZnNldDA7Cj4gKyAg ICAgICAgICAgIHVpbnQxNl90IHNlbGVjdG9yOwo+ICsgICAgICAgICAgICB1aW50OF90ICBfcjA7 Cj4gKyAgICAgICAgICAgIHVuc2lnbmVkIHR5cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsKPiAr ICAgICAgICAgICAgdWludDE2X3Qgb2Zmc2V0MTsKPiArICAgICAgICB9Owo+ICsgICAgfTsKPiAr fTsKPiArCj4gKy8qIDE2LWJ5dGUgZ2F0ZSAtIExvbmcgbW9kZSBJRFQgZW50cnkuICovCj4gK3N0 cnVjdCBfX3BhY2tlZCBzZWdfZ2F0ZTY0IHsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1 Y3Qgewo+ICsgICAgICAgICAgICB1aW50NjRfdCBsbywgaGk7Cj4gKyAgICAgICAgfTsKPiArICAg ICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1aW50MTZfdCBvZmZzZXQwOwo+ICsgICAgICAg ICAgICB1aW50MTZfdCBzZWxlY3RvcjsKPiArICAgICAgICAgICAgdW5zaWduZWQgaXN0OiAzLCBf cjA6IDUsIHR5cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsKPiArICAgICAgICAgICAgdWludDE2 X3Qgb2Zmc2V0MTsKPiArICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0MjsKPiArICAgICAgICAg ICAgdWludDMyX3QgX3IxOwo+ICsgICAgICAgIH07Cj4gKyAgICB9Owo+ICt9Owo+ICsKPiArLyog R0RUL0xEVCBhdHRyaWJ1dGUgZmxhZ3MgZm9yIHVzZXIgc2VnbWVudHMgKi8KPiArCj4gKy8qIENv bW1vbiAqLwo+ICsjZGVmaW5lIFNFR19BVFRSX0cgICAgICAweDgwMDAgLyogR3JhbnVsYXJpdHkg b2YgbGltaXQgKDAgPSAxLCAxID0gNEspICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfQVZMICAgIDB4 MTAwMCAvKiBBdmFpbGFibGUgZm9yIHNvZnR3YXJlIHVzZSAqLwo+ICsjZGVmaW5lIFNFR19BVFRS X1AgICAgICAweDAwODAgLyogUHJlc2VudD8gKi8KPiArI2RlZmluZSBTRUdfQVRUUl9TICAgICAg MHgwMDEwIC8qICFTeXN0ZW0gZGVzYyAoMCA9IHN5c3RlbSwgMSA9IHVzZXIpICovCj4gKyNkZWZp bmUgU0VHX0FUVFJfQSAgICAgIDB4MDAwMSAvKiBBY2Nlc3NlZD8gKHNldCBieSBoYXJkd2FyZSkg Ki8KPiArCj4gKyNkZWZpbmUgU0VHX0FUVFJfQ09NTU9OIDB4ODA5MSAvKiBDb21tb25seSBzZXQg Yml0cyAoRyBQIFMgQSkgKi8KPiArCj4gKyNkZWZpbmUgU0VHX0FUVFJfRFBMMCAgIDB4MDAwMCAv KiBEZXNjcmlwdG9yIHByaXZpbGVnZSBsZXZlbCAwICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfRFBM MSAgIDB4MDAyMCAvKiBEZXNjcmlwdG9yIHByaXZpbGVnZSBsZXZlbCAxICovCj4gKyNkZWZpbmUg U0VHX0FUVFJfRFBMMiAgIDB4MDA0MCAvKiBEZXNjcmlwdG9yIHByaXZpbGVnZSBsZXZlbCAyICov Cj4gKyNkZWZpbmUgU0VHX0FUVFJfRFBMMyAgIDB4MDA2MCAvKiBEZXNjcmlwdG9yIHByaXZpbGVn ZSBsZXZlbCAzICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfQ09ERSAgIDB4MDAwOCAvKiBUeXBlICgw ID0gZGF0YSwgMSA9IGNvZGUpICAgICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfREFUQSAgIDB4MDAw MCAvKiBUeXBlICgwID0gZGF0YSwgMSA9IGNvZGUpICAgICovCj4gKwo+ICsvKiBDb2RlIHNlZ21l bnRzICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfRCAgICAgIDB4NDAwMCAvKiBEZWZhdWx0IG9wZXJh bmQgc2l6ZSAoMCA9IDE2Yml0LCAxID0gMzJiaXQpICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfTCAg ICAgIDB4MjAwMCAvKiBMb25nIHNlZ21lbnQ/ICgxID0gNjRiaXQpICovCj4gKyNkZWZpbmUgU0VH X0FUVFJfQyAgICAgIDB4MDAwNCAvKiBDb25mb3JtaW5nPyAoMCA9IG5vbiwgMSA9IGNvbmZvcm1p bmcpICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfUiAgICAgIDB4MDAwMiAvKiBSZWFkYWJsZT8gKDAg PSBYTyBzZWcsIDEgPSBSWCBzZWcpICovCj4gKwo+ICsvKiBEYXRhIHNlZ21lbnRzICovCj4gKyNk ZWZpbmUgU0VHX0FUVFJfQiAgICAgIDB4NDAwMCAvKiAnQmlnJyBmbGFnLgo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICogICAgLSBGb3IgJXNzLCBkZWZhdWx0IG9wZXJhbmQgc2l6 ZS4KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgIC0gRm9yIGV4cGFuZC1k b3duIHNlZ21lbnQsIHNldHMgdXBwZXIgYm91bmQuICovCj4gKyNkZWZpbmUgU0VHX0FUVFJfRSAg ICAgIDB4MDAwNCAvKiBFeHBhbmQtZG93bj8gKDAgPSBub3JtYWwsIDEgPSBleHBhbmQtZG93bikg Ki8KPiArI2RlZmluZSBTRUdfQVRUUl9XICAgICAgMHgwMDAyIC8qIFdyaXRhYmxlPyAoMCA9IFJP IHNlZywgMSA9IFJXIHNlZykgKi8KPiArCj4gKy8qCj4gKyAqIEluaXRpYWxpc2UgYW4gTERUL0dE VCBlbnRyeSB1c2luZyBhIHJhdyBhdHRyaWJ1dGUgbnVtYmVyLgo+ICsgKgo+ICsgKiBAcGFyYW0g YmFzZSAgU2VnbWVudCBiYXNlLgo+ICsgKiBAcGFyYW0gbGltaXQgU2VnbWVudCBsaW1pdC4KPiAr ICogQHBhcmFtIGF0dHIgIFNlZ21lbnQgYXR0cmlidXRlcy4KPiArICovCj4gKyNkZWZpbmUgSU5J VF9HRFRFKGJhc2UsIGxpbWl0LCBhdHRyKSB7IHsgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gKyAgICAgLmxvID0gKCgoYmFzZSkgJiAweGZmZmYpIDw8IDE2KSB8ICgobGltaXQpICYg MHhmZmZmKSwgICAgICAgICAgICBcCj4gKyAgICAgLmhpID0gKChiYXNlKSAmIDB4ZmYwMDAwMDAp IHwgKChsaW1pdCkgJiAweGYwMDAwKSB8ICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgKCgo YXR0cikgJiAweGYwZmYpIDw8IDgpIHwgKCgoYmFzZSkgJiAweGZmMDAwMCkgPj4gMTYpICAgICBc Cj4gKyAgICAgfSB9IH0KPiArCj4gKy8qCj4gKyAqIFRva2VuaXNlIGFuZCBPUiB0b2dldGhlci4K PiArICoKPiArICogRm9yIGVhY2ggdmFyYWRpYyBwYXJhbWV0ZXIsIHRva2VuaXNlIHdpdGggJ3Qn IGFuZCBPUiB0b2dldGhlci4KPiArICoKPiArICogQHBhcmFtIHQgICBDb21tb24gc3RlbSBwYXJ0 aWFsIHRva2VuLgo+ICsgKiBAcGFyYW0gLi4uIFBhcnRpYWwgdG9rZW5zLgo+ICsgKgo+ICsgKiBF eGFtcGxlOgo+ICsgKiA8cHJlPgo+ICsgKiAgIFRPS19PUih0LCB4LCB5KSAgICA9PiAodCAjIyB4 IHwgdCAjIyB5KQo+ICsgKiAgIFRPS19PUih0LCB4LCB5LCB6KSA9PiAodCAjIyB4IHwgdCAjIyB5 IHwgdCAjIyB6KQo+ICsgKiA8L3ByZT4KPiArICovCj4gKyNkZWZpbmUgVE9LX09SMCh0KSAgICAg ICAgICgwKQo+ICsjZGVmaW5lIFRPS19PUjEodCwgeCkgICAgICAodCAjIyB4KQo+ICsjZGVmaW5l IFRPS19PUjIodCwgeCwgLi4uKSAodCAjIyB4IHwgVE9LX09SMSh0LCAjI19fVkFfQVJHU19fKSkK PiArI2RlZmluZSBUT0tfT1IzKHQsIHgsIC4uLikgKHQgIyMgeCB8IFRPS19PUjIodCwgIyNfX1ZB X0FSR1NfXykpCj4gKyNkZWZpbmUgVE9LX09SNCh0LCB4LCAuLi4pICh0ICMjIHggfCBUT0tfT1Iz KHQsICMjX19WQV9BUkdTX18pKQo+ICsjZGVmaW5lIFRPS19PUjUodCwgeCwgLi4uKSAodCAjIyB4 IHwgVE9LX09SNCh0LCAjI19fVkFfQVJHU19fKSkKPiArI2RlZmluZSBUT0tfT1I2KHQsIHgsIC4u LikgKHQgIyMgeCB8IFRPS19PUjUodCwgIyNfX1ZBX0FSR1NfXykpCj4gKyNkZWZpbmUgVE9LX09S Nyh0LCB4LCAuLi4pICh0ICMjIHggfCBUT0tfT1I2KHQsICMjX19WQV9BUkdTX18pKQo+ICsjZGVm aW5lIFRPS19PUjgodCwgeCwgLi4uKSAodCAjIyB4IHwgVE9LX09SNyh0LCAjI19fVkFfQVJHU19f KSkKPiArI2RlZmluZSBUT0tfT1IodCwgLi4uKSAgICAgVkFSX01BQ1JPX0MxKFRPS19PUiwgdCwg IyNfX1ZBX0FSR1NfXykKPiArCj4gKy8qCj4gKyAqIEluaXRpYWxpc2UgYW4gTERUL0dEVCBlbnRy eSB1c2luZyBTRUdfQVRUUl8gbW5lbW9uaWNzLgo+ICsgKgo+ICsgKiBAcGFyYW0gYmFzZSAgU2Vn bWVudCBiYXNlLgo+ICsgKiBAcGFyYW0gbGltaXQgU2VnbWVudCBsaW1pdC4KPiArICogQHBhcmFt IC4uLiAgIFBhcnRpYWwgU0VHX0FUVFJfIHRva2VucyBmb3IgYXR0cmlidXRlcy4KPiArICoKPiAr ICogRXhhbXBsZSB1c2FnZToKPiArICogLSBJTklUX0dEVEVfU1lNKDAsIDB4ZmZmZmYsIFApCj4g KyAqICAgLSB1c2VzIEByZWYgU0VHX0FUVFJfUAo+ICsgKgo+ICsgKiAtIElOSVRfR0RURV9TWU0o MCwgMHhmZmZmZiwgQ09ERSwgTCkKPiArICogICAtIHVzZXMgQHJlZiBTRUdfQVRUUl9DT0RFIGFu ZCBAcmVmIFNFR19BVFRSX0wKPiArICovCj4gKyNkZWZpbmUgSU5JVF9HRFRFX1NZTShiYXNlLCBs aW1pdCwgLi4uKSBcCj4gKyAgICBJTklUX0dEVEUoYmFzZSwgbGltaXQsIFRPS19PUihTRUdfQVRU Ul8sICMjX19WQV9BUkdTX18pKQo+ICsKPiArLyogTG9uZyBtb2RlIGxnZHQvbGlkdCB0YWJsZSBw b2ludGVyLiAqLwo+ICtzdHJ1Y3QgX19wYWNrZWQgZGVzY19wdHI2NCB7Cj4gKyAgICB1aW50MTZf dCBsaW1pdDsKPiArICAgIHVpbnQ2NF90IGJhc2U7Cj4gK307Cj4gKwo+ICsvKiBQcm90ZWN0ZWQg bW9kZSBsZ2R0L2xpZHQgdGFibGUgcG9pbnRlci4gKi8KPiArc3RydWN0IF9fcGFja2VkIGRlc2Nf cHRyMzIgewo+ICsgICAgdWludDE2X3QgbGltaXQ7Cj4gKyAgICB1aW50MzJfdCBiYXNlOwo+ICt9 Owo+ICsKPiArc3RydWN0IF9fcGFja2VkIGh3X3RzczMyIHsKPiArICAgIHVpbnQxNl90IGxpbms7 IHVpbnQxNl90IF9yMDsKPiArCj4gKyAgICB1aW50MzJfdCBlc3AwOwo+ICsgICAgdWludDE2X3Qg c3MwOyB1aW50MTZfdCBfcjE7Cj4gKwo+ICsgICAgdWludDMyX3QgZXNwMTsKPiArICAgIHVpbnQx Nl90IHNzMTsgdWludDE2X3QgX3IyOwo+ICsKPiArICAgIHVpbnQzMl90IGVzcDI7Cj4gKyAgICB1 aW50MTZfdCBzczI7IHVpbnQxNl90IF9yMzsKPiArCj4gKyAgICB1aW50MzJfdCBjcjM7Cj4gKyAg ICB1aW50MzJfdCBlaXA7Cj4gKyAgICB1aW50MzJfdCBlZmxhZ3M7Cj4gKyAgICB1aW50MzJfdCBl YXg7Cj4gKyAgICB1aW50MzJfdCBlY3g7Cj4gKyAgICB1aW50MzJfdCBlZHg7Cj4gKyAgICB1aW50 MzJfdCBlYng7Cj4gKyAgICB1aW50MzJfdCBlc3A7Cj4gKyAgICB1aW50MzJfdCBlYnA7Cj4gKyAg ICB1aW50MzJfdCBlc2k7Cj4gKyAgICB1aW50MzJfdCBlZGk7Cj4gKwo+ICsgICAgdWludDE2X3Qg ZXM7IHVpbnQxNl90IF9yNDsKPiArICAgIHVpbnQxNl90IGNzOyB1aW50MTZfdCBfcjU7Cj4gKyAg ICB1aW50MTZfdCBzczsgdWludDE2X3QgX3I2Owo+ICsgICAgdWludDE2X3QgZHM7IHVpbnQxNl90 IF9yNzsKPiArICAgIHVpbnQxNl90IGZzOyB1aW50MTZfdCBfcjg7Cj4gKyAgICB1aW50MTZfdCBn czsgdWludDE2X3QgX3I5Owo+ICsgICAgdWludDE2X3QgbGR0cjsgdWludDE2X3QgX3IxMDsKPiAr ICAgIHVpbnQxNl90IHQ7IHVpbnQxNl90IGlvcGI7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgX19wYWNr ZWQgaHdfdHNzNjQgewo+ICsgICAgdWludDE2X3QgbGluazsgdWludDE2X3QgX3IwOwo+ICsKPiAr ICAgIHVpbnQ2NF90IHJzcDA7Cj4gKyAgICB1aW50NjRfdCByc3AxOwo+ICsgICAgdWludDY0X3Qg cnNwMjsKPiArCj4gKyAgICB1aW50NjRfdCBfcjE7Cj4gKwo+ICsgICAgdWludDY0X3QgaXN0Wzdd OyAvKiAxLWJhc2VkIHN0cnVjdHVyZSAqLwo+ICsKPiArICAgIHVpbnQ2NF90IF9yMjsKPiArCj4g KyAgICB1aW50MTZfdCB0Owo+ICsgICAgdWludDE2X3QgaW9wYjsKPiArfTsKPiArCj4gKyNkZWZp bmUgWDg2X1RTU19JTlZBTElEX0lPX0JJVE1BUCAweDgwMDAKPiArCj4gKyNpZiBkZWZpbmVkKF9f eDg2XzY0X18pCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCBkZXNjX3B0cjY0IGRlc2NfcHRyOwo+ICt0 eXBlZGVmIHN0cnVjdCBzZWdfZGVzYzMyIHVzZXJfZGVzYzsKPiArdHlwZWRlZiBzdHJ1Y3Qgc2Vn X2dhdGU2NCBnYXRlX2Rlc2M7Cj4gK3R5cGVkZWYgc3RydWN0IGh3X3RzczY0IGh3X3RzczsKPiAr Cj4gKyNlbGlmIGRlZmluZWQoX19pMzg2X18pCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCBkZXNjX3B0 cjMyIGRlc2NfcHRyOwo+ICt0eXBlZGVmIHN0cnVjdCBzZWdfZGVzYzMyIHVzZXJfZGVzYzsKPiAr dHlwZWRlZiBzdHJ1Y3Qgc2VnX2dhdGUzMiBnYXRlX2Rlc2M7Cj4gK3R5cGVkZWYgc3RydWN0IGh3 X3RzczMyIGh3X3RzczsKPiArCj4gKyNlbmRpZgo+ICsKPiArZXh0ZXJuIHVzZXJfZGVzYyBnZHRb TlJfR0RUX0VOVFJJRVNdOwo+ICtleHRlcm4gZGVzY19wdHIgIGdkdF9wdHI7Cj4gKwo+ICtleHRl cm4gZ2F0ZV9kZXNjIGlkdFsyNTZdOwo+ICtleHRlcm4gZGVzY19wdHIgIGlkdF9wdHI7Cj4gKwo+ ICtleHRlcm4gaHdfdHNzIHRzczsKPiArCj4gKyNlbmRpZgo+ICsKPiArI2VuZGlmIC8qIF9ERVND X0hfICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveDg2L29zLmggYi9pbmNsdWRlL3g4Ni9vcy5o Cj4gaW5kZXggZWU5MDUwYi4uZWVlZmJlMiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3g4Ni9vcy5o Cj4gKysrIGIvaW5jbHVkZS94ODYvb3MuaAo+IEBAIC0yNCw3ICsyNCwxMiBAQAo+ICAjZW5kaWYK PiAgI2luY2x1ZGUgPHhlbi94ZW4uaD4KPiAgCj4gKyNkZWZpbmUgTVNSX0VGRVIgICAgICAgICAg MHhjMDAwMDA4MAo+ICsjZGVmaW5lIF9FRkVSX0xNRSAgICAgICAgIDggICAgICAgICAgICAgLyog TG9uZyBtb2RlIGVuYWJsZSAqLwo+ICAKPiArI2RlZmluZSBYODZfQ1IwX1BHICAgICAgICAweDgw MDAwMDAwICAgIC8qIFBhZ2luZyAqLwo+ICsjZGVmaW5lIFg4Nl9DUjRfUEFFICAgICAgIDB4MDAw MDAwMjAgICAgLyogZW5hYmxlIHBoeXNpY2FsIGFkZHJlc3MgZXh0ZW5zaW9ucyAqLwo+ICsjZGVm aW5lIFg4Nl9DUjRfT1NGWFNSICAgIDB4MDAwMDAyMDAgICAgLyogZW5hYmxlIGZhc3QgRlBVIHNh dmUgYW5kIHJlc3RvcmUgKi8KPiAgCj4gICNkZWZpbmUgX19LRVJORUxfQ1MgIEZMQVRfS0VSTkVM X0NTCj4gICNkZWZpbmUgX19LRVJORUxfRFMgIEZMQVRfS0VSTkVMX0RTCj4gZGlmZiAtLWdpdCBh L21pbmlvcy5tayBiL21pbmlvcy5tawo+IGluZGV4IDFkMWNjOTkuLjlmZjZiZjcgMTAwNjQ0Cj4g LS0tIGEvbWluaW9zLm1rCj4gKysrIGIvbWluaW9zLm1rCj4gQEAgLTY4LDcgKzY4LDcgQEAgSEVB RF9PQkogOj0gJChPQkpfRElSKS8kKFRBUkdFVF9BUkNIX0RJUikvJChIRUFEX0FSQ0hfT0JKKQo+ ICAkKE9CSl9ESVIpLyUubzogJS5jICQoSERSUykgTWFrZWZpbGUgJChFWFRSQV9ERVBTKQo+ICAJ JChDQykgJChDRkxBR1MpICQoQ1BQRkxBR1MpIC1jICQ8IC1vICRACj4gIAo+IC0kKE9CSl9ESVIp LyUubzogJS5TICQoSERSUykgTWFrZWZpbGUgJChFWFRSQV9ERVBTKQo+ICskKE9CSl9ESVIpLyUu bzogJS5TICQoSERSUykgTWFrZWZpbGUgJChFWFRSQV9ERVBTKSAkKEFSQ0hfQVNfREVQUykKPiAg CSQoQ0MpICQoQVNGTEFHUykgJChDUFBGTEFHUykgLWMgJDwgLW8gJEAKPiAgCj4gIAo+IC0tIAo+ IDIuNi42Cj4gCgotLSAKU2FtdWVsCisjaWYgZGVmaW5lZChfX2FscGhhX18pICYmIGRlZmluZWQo Q09ORklHX1BDSSkKKyAgICAgICAvKgorICAgICAgICAqIFRoZSBtZWFuaW5nIG9mIGxpZmUsIHRo ZSB1bml2ZXJzZSwgYW5kIGV2ZXJ5dGhpbmcuIFBsdXMKKyAgICAgICAgKiB0aGlzIG1ha2VzIHRo ZSB5ZWFyIGNvbWUgb3V0IHJpZ2h0LgorICAgICAgICAqLworICAgICAgIHllYXIgLT0gNDI7Cisj ZW5kaWYKKEZyb20gdGhlIHBhdGNoIGZvciAxLjMuMjogKGtlcm5lbC90aW1lLmMpLCBzdWJtaXR0 ZWQgYnkgTWFyY3VzIE1laXNzbmVyKQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==