From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from exchange.timesys.com (mail.timesys.com [65.117.135.102]) by ozlabs.org (Postfix) with ESMTP id D0CF667A6B for ; Wed, 16 Mar 2005 06:43:12 +1100 (EST) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="=-jZ9Dn3x4d7iFo1P84fq2" In-Reply-To: <1110907039.24673.12.camel@rhino.az.mvista.com> Date: Tue, 15 Mar 2005 14:31:03 -0500 References: <1110907039.24673.12.camel@rhino.az.mvista.com> Message-ID: <1110915063.5937.93.camel@ad.doubleclick.net> MIME-Version: 1.0 Date: Tue, 15 Mar 2005 14:27:57 -0500 Message-ID: <1110915063.5937.93.camel@ad.doubleclick.net> From: "McMullan, Jason" To: "Wade Farnsworth" Cc: linuxppc-embedded Subject: 440EP FPU patch List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --=-jZ9Dn3x4d7iFo1P84fq2 Content-Type: multipart/mixed; boundary="=-IXrt6mYcH+Uw3xI5kZuQ" --=-IXrt6mYcH+Uw3xI5kZuQ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable This patch (against vanilla 2.4.11.3) breaks out the FPU code for PowerPC into a common .S code for all the head*.S files. Less cargo-culted code. Wade, you may want to integrate this into your 440EP patch. --=20 Jason McMullan TimeSys Corporation --=-IXrt6mYcH+Uw3xI5kZuQ Content-Disposition: attachment; filename=cpu-ppc-fpu.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=cpu-ppc-fpu.patch; charset=ISO-8859-1 IyMjIyBBdXRvLWdlbmVyYXRlZCBwYXRjaCAjIyMjDQpEYXRlOiAgICAgICAgVHVlLCAxNSBNYXIg MjAwNSAxNDoyNzo1MCAtMDUwMA0KTWFpbnRhaW5lcjogIEphc29uIE1jTXVsbGFuIDxqYXNvbi5t Y211bGxhbkB0aW1lc3lzLmNvbT4NClN1bW1hcnk6ICAgICBGUFUgc3VwcG9ydCBvbiBQUEMgY2hp cHMgdGhhdCBkb24ndCB1c2UgdGhlIG5vcm1hbCBoZWFkLlMNClNpZ25lZC1PZmYtQnk6IEphc29u IE1jTXVsbGFuIDxqYXNvbi5tY211bGxhbkB0aW1lc3lzLmNvbT4NCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMNCg0KSW5kZXggb2YgY2hhbmdlczoNCg0KIGFyY2gvcHBjL0tjb25maWcg ICAgICAgICAgICB8ICAgIDYgDQogYXJjaC9wcGMvTWFrZWZpbGUgICAgICAgICAgIHwgICAgMSAN CiBhcmNoL3BwYy9rZXJuZWwvTWFrZWZpbGUgICAgfCAgICAxIA0KIGFyY2gvcHBjL2tlcm5lbC9o ZWFkLlMgICAgICB8ICAyNzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KIGFyY2gvcHBjL2tlcm5lbC9oZWFkXzQ0eC5TICB8ICAgMTMgKw0KIGFyY2gvcHBjL2tlcm5l bC90cmFwcy5jICAgICB8ICAgIDIgDQogaW5jbHVkZS9hc20tcHBjL3JlZ19ib29rZS5oIHwgICAg MSANCiBsaW51eC9hcmNoL3BwYy9rZXJuZWwvZnB1LlMgfCAgMjk3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQogOCBmaWxlcyBjaGFuZ2VkLCAzMTcgaW5zZXJ0 aW9ucygrKSwgMjgwIGRlbGV0aW9ucygtKQ0KDQoNCi0tLSBsaW51eC1vcmlnL2FyY2gvcHBjL0tj b25maWcNCisrKyBsaW51eC9hcmNoL3BwYy9LY29uZmlnDQpAQCAtNTMsNiArNTMsNyBAQA0KIA0K IGNvbmZpZyA2eHgNCiAJYm9vbCAiNnh4Lzd4eC83NHh4LzUyeHgvODI2MCINCisJc2VsZWN0IEZQ VQ0KIAloZWxwDQogCSAgVGhlcmUgYXJlIGZvdXIgdHlwZXMgb2YgUG93ZXJQQyBjaGlwcyBzdXBw b3J0ZWQuICBUaGUgbW9yZSBjb21tb24NCiAJICB0eXBlcyAoNjAxLCA2MDMsIDYwNCwgNzQwLCA3 NTAsIDc0MDApLCB0aGUgTW90b3JvbGEgZW1iZWRkZWQNCkBAIC04Myw4ICs4NCwxMSBAQA0KIA0K IGNvbmZpZyBFNTAwDQogCWJvb2wgImU1MDAiDQorCQ0KK2VuZGNob2ljZQ0KIA0KLWVuZGNob2lj ZQ0KK2NvbmZpZyBGUFUNCisJYm9vbA0KIA0KIGNvbmZpZyBCT09LRQ0KIAlib29sDQotLS0gbGlu dXgtb3JpZy9hcmNoL3BwYy9NYWtlZmlsZQ0KKysrIGxpbnV4L2FyY2gvcHBjL01ha2VmaWxlDQpA QCAtNTMsNiArNTMsNyBAQA0KIA0KIGhlYWQtJChDT05GSUdfNnh4KQkJKz0gYXJjaC9wcGMva2Vy bmVsL2lkbGVfNnh4Lm8NCiBoZWFkLSQoQ09ORklHX1BPV0VSNCkJCSs9IGFyY2gvcHBjL2tlcm5l bC9pZGxlX3Bvd2VyNC5vDQoraGVhZC0kKENPTkZJR19GUFUpICAgICAgICAgICAgICArPSBhcmNo L3BwYy9rZXJuZWwvZnB1Lm8NCiANCiBjb3JlLXkJCQkJKz0gYXJjaC9wcGMva2VybmVsLyBhcmNo L3BwYy9wbGF0Zm9ybXMvIFwNCiAJCQkJICAgYXJjaC9wcGMvbW0vIGFyY2gvcHBjL2xpYi8gYXJj aC9wcGMvc3lzbGliLw0KLS0tIGxpbnV4LW9yaWcvYXJjaC9wcGMva2VybmVsL01ha2VmaWxlDQor KysgbGludXgvYXJjaC9wcGMva2VybmVsL01ha2VmaWxlDQpAQCAtOSw2ICs5LDcgQEANCiBleHRy YS0kKENPTkZJR184eHgpCQk6PSBoZWFkXzh4eC5vDQogZXh0cmEtJChDT05GSUdfNnh4KQkJKz0g aWRsZV82eHgubw0KIGV4dHJhLSQoQ09ORklHX1BPV0VSNCkJCSs9IGlkbGVfcG93ZXI0Lm8NCitl eHRyYS0kKENPTkZJR19GUFUpICAgICAgICAgICAgICs9IGZwdS5vDQogZXh0cmEteQkJCQkrPSB2 bWxpbnV4Lmxkcw0KIA0KIG9iai15CQkJCTo9IGVudHJ5Lm8gdHJhcHMubyBpcnEubyBpZGxlLm8g dGltZS5vIG1pc2MubyBcDQotLS0gL2Rldi9udWxsDQorKysgbGludXgvYXJjaC9wcGMva2VybmVs L2ZwdS5TDQpAQCAtMCwwICsxLDI5NyBAQA0KKy8vIEZQVSBzdXBwb3J0IGNvZGUsIG1vdmVkIGhl cmUgZnJvbSBoZWFkLlMgc28gdGhhdCBpdCBjYW4gYmUgdXNlZA0KKy8vIGJ5IGNoaXBzIHdoaWNo IHVzZSBvdGhlciBoZWFkLXdoYXRldmVyLlMgZmlsZXMuDQorDQorI2luY2x1ZGUgPGxpbnV4L2Nv bmZpZy5oPg0KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+DQorI2luY2x1ZGUgPGFzbS9wYWdl Lmg+DQorI2luY2x1ZGUgPGFzbS9tbXUuaD4NCisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4NCisj aW5jbHVkZSA8YXNtL2NwdXRhYmxlLmg+DQorI2luY2x1ZGUgPGFzbS9jYWNoZS5oPg0KKyNpbmNs dWRlIDxhc20vdGhyZWFkX2luZm8uaD4NCisjaW5jbHVkZSA8YXNtL3BwY19hc20uaD4NCisjaW5j bHVkZSA8YXNtL29mZnNldHMuaD4NCisNCisvKg0KKyAqIFRoaXMgdGFzayB3YW50cyB0byB1c2Ug dGhlIEZQVSBub3cuDQorICogT24gVVAsIGRpc2FibGUgRlAgZm9yIHRoZSB0YXNrIHdoaWNoIGhh ZCB0aGUgRlBVIHByZXZpb3VzbHksDQorICogYW5kIHNhdmUgaXRzIGZsb2F0aW5nLXBvaW50IHJl Z2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCisgKiBMb2FkIHVwIHRoaXMgdGFzaydzIEZQ IHJlZ2lzdGVycyBmcm9tIGl0cyB0aHJlYWRfc3RydWN0LA0KKyAqIGVuYWJsZSB0aGUgRlBVIGZv ciB0aGUgY3VycmVudCB0YXNrIGFuZCByZXR1cm4gdG8gdGhlIHRhc2suDQorICovDQorCS5nbG9i YWwgbG9hZF91cF9mcHUNCitsb2FkX3VwX2ZwdToNCisJbWZtc3IJcjUNCisJb3JpCXI1LHI1LE1T Ul9GUA0KKyNpZmRlZiBDT05GSUdfUFBDNjRCUklER0UNCisJY2xybGRpCXI1LHI1LDEJCQkvKiB0 dXJuIG9mZiA2NC1iaXQgbW9kZSAqLw0KKyNlbmRpZiAvKiBDT05GSUdfUFBDNjRCUklER0UgKi8N CisJU1lOQw0KKwlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBvZiBmcHUgbm93ICovDQorCWlz eW5jDQorLyoNCisgKiBGb3IgU01QLCB3ZSBkb24ndCBkbyBsYXp5IEZQVSBzd2l0Y2hpbmcgYmVj YXVzZSBpdCBqdXN0IGdldHMgdG9vDQorICogaG9ycmVuZG91c2x5IGNvbXBsZXgsIGVzcGVjaWFs bHkgd2hlbiBhIHRhc2sgc3dpdGNoZXMgZnJvbSBvbmUgQ1BVDQorICogdG8gYW5vdGhlci4gIElu c3RlYWQgd2UgY2FsbCBnaXZldXBfZnB1IGluIHN3aXRjaF90by4NCisgKi8NCisjaWZuZGVmIENP TkZJR19TTVANCisJdG9waHlzKHI2LDApCQkJLyogZ2V0IF9fcGEgY29uc3RhbnQgKi8NCisJYWRk aXMJcjMscjYsbGFzdF90YXNrX3VzZWRfbWF0aEBoYQ0KKwlsd3oJcjQsbGFzdF90YXNrX3VzZWRf bWF0aEBsKHIzKQ0KKwljbXB3aQkwLHI0LDANCisJYmVxCTFmDQorCWFkZAlyNCxyNCxyNg0KKwlh ZGRpCXI0LHI0LFRIUkVBRAkJLyogd2FudCBsYXN0X3Rhc2tfdXNlZF9tYXRoLT50aHJlYWQgKi8N CisJU0FWRV8zMkZQUlMoMCwgcjQpDQorCW1mZnMJZnIwDQorCXN0ZmQJZnIwLFRIUkVBRF9GUFND Ui00KHI0KQ0KKwlsd3oJcjUsUFRfUkVHUyhyNCkNCisJYWRkCXI1LHI1LHI2DQorCWx3eglyNCxf TVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKwlsaQlyMTAsTVNSX0ZQfE1TUl9GRTB8TVNS X0ZFMQ0KKwlhbmRjCXI0LHI0LHIxMAkJLyogZGlzYWJsZSBGUCBmb3IgcHJldmlvdXMgdGFzayAq Lw0KKwlzdHcJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCisxOg0KKyNlbmRpZiAv KiBDT05GSUdfU01QICovDQorCS8qIGVuYWJsZSB1c2Ugb2YgRlAgYWZ0ZXIgcmV0dXJuICovDQor CW1mc3ByCXI1LFNQUkczCQkvKiBjdXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICovDQorCWx3 eglyNCxUSFJFQURfRlBFWENfTU9ERShyNSkNCisJb3JpCXI5LHI5LE1TUl9GUAkJLyogZW5hYmxl IEZQIGZvciBjdXJyZW50ICovDQorCW9yCXI5LHI5LHI0DQorCWxmZAlmcjAsVEhSRUFEX0ZQU0NS LTQocjUpDQorCW10ZnNmCTB4ZmYsZnIwDQorCVJFU1RfMzJGUFJTKDAsIHI1KQ0KKyNpZm5kZWYg Q09ORklHX1NNUA0KKwlzdWJpCXI0LHI1LFRIUkVBRA0KKwlzdWIJcjQscjQscjYNCisJc3R3CXI0 LGxhc3RfdGFza191c2VkX21hdGhAbChyMykNCisjZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KKwkv KiByZXN0b3JlIHJlZ2lzdGVycyBhbmQgcmV0dXJuICovDQorCS8qIHdlIGhhdmVuJ3QgdXNlZCBj dHIgb3IgeGVyIG9yIGxyICovDQorCS8qIGZhbGwgdGhyb3VnaCB0byBmYXN0X2V4Y2VwdGlvbl9y ZXR1cm4gKi8NCisNCisJLmdsb2JhbCBmYXN0X2V4Y2VwdGlvbl9yZXR1cm4NCitmYXN0X2V4Y2Vw dGlvbl9yZXR1cm46DQorI2lmICEoZGVmaW5lZChDT05GSUdfNHh4KSB8fCBkZWZpbmVkKENPTkZJ R19CT09LRSkpDQorCWFuZGkuCXIxMCxyOSxNU1JfUkkJCS8qIGNoZWNrIGZvciByZWNvdmVyYWJs ZSBpbnRlcnJ1cHQgKi8NCisJYmVxCTFmCQkJLyogaWYgbm90LCB3ZSd2ZSBnb3QgcHJvYmxlbXMg Ki8NCisjZW5kaWYNCisNCisyOglSRVNUXzRHUFJTKDMsIHIxMSkNCisJbHd6CXIxMCxfQ0NSKHIx MSkNCisJUkVTVF9HUFIoMSwgcjExKQ0KKwltdGNyCXIxMA0KKwlsd3oJcjEwLF9MSU5LKHIxMSkN CisJbXRscglyMTANCisJUkVTVF9HUFIoMTAsIHIxMSkNCisJbXRzcHIJU1JSMSxyOQ0KKwltdHNw cglTUlIwLHIxMg0KKwlSRVNUX0dQUig5LCByMTEpDQorCVJFU1RfR1BSKDEyLCByMTEpDQorCWx3 eglyMTEsR1BSMTEocjExKQ0KKwlTWU5DDQorCVJGSQ0KKw0KKy8qIGNoZWNrIGlmIHRoZSBleGNl cHRpb24gaGFwcGVuZWQgaW4gYSByZXN0YXJ0YWJsZSBzZWN0aW9uICovDQorMToJbGlzCXIzLGV4 Y19leGl0X3Jlc3RhcnRfZW5kQGhhDQorCWFkZGkJcjMscjMsZXhjX2V4aXRfcmVzdGFydF9lbmRA bA0KKwljbXBsdwlyMTIscjMNCisJYmdlCTNmDQorCWxpcwlyNCxleGNfZXhpdF9yZXN0YXJ0QGhh DQorCWFkZGkJcjQscjQsZXhjX2V4aXRfcmVzdGFydEBsDQorCWNtcGx3CXIxMixyNA0KKwlibHQJ M2YNCisJbGlzCXIzLGZlZV9yZXN0YXJ0c0BoYQ0KKwl0b3BoeXMocjMscjMpDQorCWx3eglyNSxm ZWVfcmVzdGFydHNAbChyMykNCisJYWRkaQlyNSxyNSwxDQorCXN0dwlyNSxmZWVfcmVzdGFydHNA bChyMykNCisJbXIJcjEyLHI0CQkvKiByZXN0YXJ0IGF0IGV4Y19leGl0X3Jlc3RhcnQgKi8NCisJ YgkyYg0KKw0KKwkuY29tbQlmZWVfcmVzdGFydHMsNA0KKw0KKy8qIGFhcmdoLCBhIG5vbnJlY292 ZXJhYmxlIGludGVycnVwdCwgcGFuaWMgKi8NCisvKiBhYXJnaCwgd2UgZG9uJ3Qga25vdyB3aGlj aCB0cmFwIHRoaXMgaXMgKi8NCisvKiBidXQgdGhlIDYwMSBkb2Vzbid0IGltcGxlbWVudCB0aGUg UkkgYml0LCBzbyBhc3N1bWUgaXQncyBPSyAqLw0KKzM6DQorQkVHSU5fRlRSX1NFQ1RJT04NCisJ YgkyYg0KK0VORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSXzYwMSkNCisJbGkJcjEwLC0xDQor CXN0dwlyMTAsVFJBUChyMTEpDQorCWFkZGkJcjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQNCisJ bGlzCXIxMCwgTVNSX0tFUk5FTEBoDQorCW9yaQlyMTAsIHIxMCwgTVNSX0tFUk5FTEBsDQorCWJs CXRyYW5zZmVyX3RvX2hhbmRsZXJfZnVsbA0KKwkubG9uZwlub25yZWNvdmVyYWJsZV9leGNlcHRp b24NCisJLmxvbmcJcmV0X2Zyb21fZXhjZXB0DQorDQorLyoNCisgKiBGUCB1bmF2YWlsYWJsZSB0 cmFwIGZyb20ga2VybmVsIC0gcHJpbnQgYSBtZXNzYWdlLCBidXQgbGV0DQorICogdGhlIHRhc2sg dXNlIEZQIGluIHRoZSBrZXJuZWwgdW50aWwgaXQgcmV0dXJucyB0byB1c2VyIG1vZGUuDQorICov DQorIAkuZ2xvYmFsIEtlcm5lbEZQDQorS2VybmVsRlA6DQorCWx3eglyMyxfTVNSKHIxKQ0KKwlv cmkJcjMscjMsTVNSX0ZQDQorCXN0dwlyMyxfTVNSKHIxKQkJLyogZW5hYmxlIHVzZSBvZiBGUCBh ZnRlciByZXR1cm4gKi8NCisJbGlzCXIzLDg2ZkBoDQorCW9yaQlyMyxyMyw4NmZAbA0KKwltcgly NCxyMgkJCS8qIGN1cnJlbnQgKi8NCisJbHd6CXI1LF9OSVAocjEpDQorCWJsCXByaW50aw0KKwli CXJldF9mcm9tX2V4Y2VwdA0KKzg2Ogkuc3RyaW5nCSJmbG9hdGluZyBwb2ludCB1c2VkIGluIGtl cm5lbCAodGFzaz0lcCwgcGM9JXgpXG4iDQorCS5hbGlnbgk0LDANCisNCisjaWZkZWYgQ09ORklH X0FMVElWRUMNCisvKiBOb3RlIHRoYXQgdGhlIEFsdGlWZWMgc3VwcG9ydCBpcyBjbG9zZWx5IG1v ZGVsZWQgYWZ0ZXIgdGhlIEZQDQorICogc3VwcG9ydC4gIENoYW5nZXMgdG8gb25lIGFyZSBsaWtl bHkgdG8gYmUgYXBwbGljYWJsZSB0byB0aGUNCisgKiBvdGhlciEgICovDQorIAkuZ2xvYmFsIGxv YWRfdXBfYWx0aXZlYw0KK2xvYWRfdXBfYWx0aXZlYzoNCisvKg0KKyAqIERpc2FibGUgQWx0aVZl YyBmb3IgdGhlIHRhc2sgd2hpY2ggaGFkIEFsdGlWZWMgcHJldmlvdXNseSwNCisgKiBhbmQgc2F2 ZSBpdHMgQWx0aVZlYyByZWdpc3RlcnMgaW4gaXRzIHRocmVhZF9zdHJ1Y3QuDQorICogRW5hYmxl cyBBbHRpVmVjIGZvciB1c2UgaW4gdGhlIGtlcm5lbCBvbiByZXR1cm4uDQorICogT24gU01QIHdl IGtub3cgdGhlIEFsdGlWZWMgdW5pdHMgYXJlIGZyZWUsIHNpbmNlIHdlIGdpdmUgaXQgdXAgZXZl cnkNCisgKiBzd2l0Y2guICAtLSBLdW1hcg0KKyAqLw0KKwltZm1zcglyNQ0KKwlvcmlzCXI1LHI1 LE1TUl9WRUNAaA0KKwlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBvZiBBbHRpVmVjIG5vdyAq Lw0KKwlpc3luYw0KKy8qDQorICogRm9yIFNNUCwgd2UgZG9uJ3QgZG8gbGF6eSBBbHRpVmVjIHN3 aXRjaGluZyBiZWNhdXNlIGl0IGp1c3QgZ2V0cyB0b28NCisgKiBob3JyZW5kb3VzbHkgY29tcGxl eCwgZXNwZWNpYWxseSB3aGVuIGEgdGFzayBzd2l0Y2hlcyBmcm9tIG9uZSBDUFUNCisgKiB0byBh bm90aGVyLiAgSW5zdGVhZCB3ZSBjYWxsIGdpdmV1cF9hbHRpdmVjIGluIHN3aXRjaF90by4NCisg Ki8NCisjaWZuZGVmIENPTkZJR19TTVANCisJdG9waHlzKHI2LDApDQorCWFkZGlzCXIzLHI2LGxh c3RfdGFza191c2VkX2FsdGl2ZWNAaGENCisJbHd6CXI0LGxhc3RfdGFza191c2VkX2FsdGl2ZWNA bChyMykNCisJY21wd2kJMCxyNCwwDQorCWJlcQkxZg0KKwlhZGQJcjQscjQscjYNCisJYWRkaQly NCxyNCxUSFJFQUQJLyogd2FudCBUSFJFQUQgb2YgbGFzdF90YXNrX3VzZWRfYWx0aXZlYyAqLw0K KwlTQVZFXzMyVlIoMCxyMTAscjQpDQorCW1mdnNjcgl2cjANCisJbGkJcjEwLFRIUkVBRF9WU0NS DQorCXN0dngJdnIwLHIxMCxyNA0KKwlsd3oJcjUsUFRfUkVHUyhyNCkNCisJYWRkCXI1LHI1LHI2 DQorCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKwlsaXMJcjEwLE1TUl9W RUNAaA0KKwlhbmRjCXI0LHI0LHIxMAkvKiBkaXNhYmxlIGFsdGl2ZWMgZm9yIHByZXZpb3VzIHRh c2sgKi8NCisJc3R3CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQorMToNCisjZW5k aWYgLyogQ09ORklHX1NNUCAqLw0KKwkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgYWZ0ZXIgcmV0 dXJuICovDQorCW9yaXMJcjkscjksTVNSX1ZFQ0BoDQorCW1mc3ByCXI1LFNQUkczCQkvKiBjdXJy ZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICovDQorCWxpCXI0LDENCisJbGkJcjEwLFRIUkVBRF9W U0NSDQorCXN0dwlyNCxUSFJFQURfVVNFRF9WUihyNSkNCisJbHZ4CXZyMCxyMTAscjUNCisJbXR2 c2NyCXZyMA0KKwlSRVNUXzMyVlIoMCxyMTAscjUpDQorI2lmbmRlZiBDT05GSUdfU01QDQorCXN1 YmkJcjQscjUsVEhSRUFEDQorCXN1YglyNCxyNCxyNg0KKwlzdHcJcjQsbGFzdF90YXNrX3VzZWRf YWx0aXZlY0BsKHIzKQ0KKyNlbmRpZiAvKiBDT05GSUdfU01QICovDQorCS8qIHJlc3RvcmUgcmVn aXN0ZXJzIGFuZCByZXR1cm4gKi8NCisJLyogd2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIgb3Ig bHIgKi8NCisJYglmYXN0X2V4Y2VwdGlvbl9yZXR1cm4NCisNCisvKg0KKyAqIEFsdGlWZWMgdW5h dmFpbGFibGUgdHJhcCBmcm9tIGtlcm5lbCAtIHByaW50IGEgbWVzc2FnZSwgYnV0IGxldA0KKyAq IHRoZSB0YXNrIHVzZSBBbHRpVmVjIGluIHRoZSBrZXJuZWwgdW50aWwgaXQgcmV0dXJucyB0byB1 c2VyIG1vZGUuDQorICovDQorIAkuZ2xvYmFsIEtlcm5lbEFsdGlWZWMNCitLZXJuZWxBbHRpVmVj Og0KKwlsd3oJcjMsX01TUihyMSkNCisJb3JpcwlyMyxyMyxNU1JfVkVDQGgNCisJc3R3CXIzLF9N U1IocjEpCS8qIGVuYWJsZSB1c2Ugb2YgQWx0aVZlYyBhZnRlciByZXR1cm4gKi8NCisJbGlzCXIz LDg3ZkBoDQorCW9yaQlyMyxyMyw4N2ZAbA0KKwltcglyNCxyMgkJLyogY3VycmVudCAqLw0KKwls d3oJcjUsX05JUChyMSkNCisJYmwJcHJpbnRrDQorCWIJcmV0X2Zyb21fZXhjZXB0DQorODc6CS5z dHJpbmcJIkFsdGlWZWMgdXNlZCBpbiBrZXJuZWwgICh0YXNrPSVwLCBwYz0leCkgIFxuIg0KKwku YWxpZ24JNCwwDQorDQorLyoNCisgKiBnaXZldXBfYWx0aXZlYyh0c2spDQorICogRGlzYWJsZSBB bHRpVmVjIGZvciB0aGUgdGFzayBnaXZlbiBhcyB0aGUgYXJndW1lbnQsDQorICogYW5kIHNhdmUg dGhlIEFsdGlWZWMgcmVnaXN0ZXJzIGluIGl0cyB0aHJlYWRfc3RydWN0Lg0KKyAqIEVuYWJsZXMg QWx0aVZlYyBmb3IgdXNlIGluIHRoZSBrZXJuZWwgb24gcmV0dXJuLg0KKyAqLw0KKw0KKwkuZ2xv YmFsIGdpdmV1cF9hbHRpdmVjDQorZ2l2ZXVwX2FsdGl2ZWM6DQorCW1mbXNyCXI1DQorCW9yaXMJ cjUscjUsTVNSX1ZFQ0BoDQorCVNZTkMNCisJTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2Yg QWx0aVZlYyBub3cgKi8NCisJaXN5bmMNCisJY21wd2kJMCxyMywwDQorCWJlcWxyLQkJCQkvKiBp ZiBubyBwcmV2aW91cyBvd25lciwgZG9uZSAqLw0KKwlhZGRpCXIzLHIzLFRIUkVBRAkJLyogd2Fu dCBUSFJFQUQgb2YgdGFzayAqLw0KKwlsd3oJcjUsUFRfUkVHUyhyMykNCisJY21wd2kJMCxyNSww DQorCVNBVkVfMzJWUigwLCByNCwgcjMpDQorCW1mdnNjcgl2cjANCisJbGkJcjQsVEhSRUFEX1ZT Q1INCisJc3R2eAl2cjAscjQscjMNCisJYmVxCTFmDQorCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1F X09WRVJIRUFEKHI1KQ0KKwlsaXMJcjMsTVNSX1ZFQ0BoDQorCWFuZGMJcjQscjQscjMJCS8qIGRp c2FibGUgQWx0aVZlYyBmb3IgcHJldmlvdXMgdGFzayAqLw0KKwlzdHcJcjQsX01TUi1TVEFDS19G UkFNRV9PVkVSSEVBRChyNSkNCisxOg0KKyNpZm5kZWYgQ09ORklHX1NNUA0KKwlsaQlyNSwwDQor CWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGhhDQorCXN0dwlyNSxsYXN0X3Rhc2tfdXNl ZF9hbHRpdmVjQGwocjQpDQorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCisJYmxyDQorI2VuZGlm IC8qIENPTkZJR19BTFRJVkVDICovDQorDQorLyoNCisgKiBnaXZldXBfZnB1KHRzaykNCisgKiBE aXNhYmxlIEZQIGZvciB0aGUgdGFzayBnaXZlbiBhcyB0aGUgYXJndW1lbnQsDQorICogYW5kIHNh dmUgdGhlIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCisg KiBFbmFibGVzIHRoZSBGUFUgZm9yIHVzZSBpbiB0aGUga2VybmVsIG9uIHJldHVybi4NCisgKi8N CisJLmdsb2JhbCBnaXZldXBfZnB1DQorZ2l2ZXVwX2ZwdToNCisJbWZtc3IJcjUNCisJb3JpCXI1 LHI1LE1TUl9GUA0KKwlTWU5DXzYwMQ0KKwlJU1lOQ182MDENCisJTVRNU1JEKHI1KQkJCS8qIGVu YWJsZSB1c2Ugb2YgZnB1IG5vdyAqLw0KKwlTWU5DXzYwMQ0KKwlpc3luYw0KKwljbXB3aQkwLHIz LDANCisJYmVxbHItCQkJCS8qIGlmIG5vIHByZXZpb3VzIG93bmVyLCBkb25lICovDQorCWFkZGkJ cjMscjMsVEhSRUFECSAgICAgICAgLyogd2FudCBUSFJFQUQgb2YgdGFzayAqLw0KKwlsd3oJcjUs UFRfUkVHUyhyMykNCisJY21wd2kJMCxyNSwwDQorCVNBVkVfMzJGUFJTKDAsIHIzKQ0KKwltZmZz CWZyMA0KKwlzdGZkCWZyMCxUSFJFQURfRlBTQ1ItNChyMykNCisJYmVxCTFmDQorCWx3eglyNCxf TVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KKwlsaQlyMyxNU1JfRlB8TVNSX0ZFMHxNU1Jf RkUxDQorCWFuZGMJcjQscjQscjMJCS8qIGRpc2FibGUgRlAgZm9yIHByZXZpb3VzIHRhc2sgKi8N CisJc3R3CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQorMToNCisjaWZuZGVmIENP TkZJR19TTVANCisJbGkJcjUsMA0KKwlsaXMJcjQsbGFzdF90YXNrX3VzZWRfbWF0aEBoYQ0KKwlz dHcJcjUsbGFzdF90YXNrX3VzZWRfbWF0aEBsKHI0KQ0KKyNlbmRpZiAvKiBDT05GSUdfU01QICov DQorCWJscg0KDQotLS0gbGludXgtb3JpZy9hcmNoL3BwYy9rZXJuZWwvaGVhZC5TDQorKysgbGlu dXgvYXJjaC9wcGMva2VybmVsL2hlYWQuUw0KQEAgLTc3NiwyODIgKzc3Niw2IEBADQogI2VuZGlm IC8qIENPTkZJR19QUEM2NEJSSURHRSAqLw0KIA0KIC8qDQotICogVGhpcyB0YXNrIHdhbnRzIHRv IHVzZSB0aGUgRlBVIG5vdy4NCi0gKiBPbiBVUCwgZGlzYWJsZSBGUCBmb3IgdGhlIHRhc2sgd2hp Y2ggaGFkIHRoZSBGUFUgcHJldmlvdXNseSwNCi0gKiBhbmQgc2F2ZSBpdHMgZmxvYXRpbmctcG9p bnQgcmVnaXN0ZXJzIGluIGl0cyB0aHJlYWRfc3RydWN0Lg0KLSAqIExvYWQgdXAgdGhpcyB0YXNr J3MgRlAgcmVnaXN0ZXJzIGZyb20gaXRzIHRocmVhZF9zdHJ1Y3QsDQotICogZW5hYmxlIHRoZSBG UFUgZm9yIHRoZSBjdXJyZW50IHRhc2sgYW5kIHJldHVybiB0byB0aGUgdGFzay4NCi0gKi8NCi1s b2FkX3VwX2ZwdToNCi0JbWZtc3IJcjUNCi0Jb3JpCXI1LHI1LE1TUl9GUA0KLSNpZmRlZiBDT05G SUdfUFBDNjRCUklER0UNCi0JY2xybGRpCXI1LHI1LDEJCQkvKiB0dXJuIG9mZiA2NC1iaXQgbW9k ZSAqLw0KLSNlbmRpZiAvKiBDT05GSUdfUFBDNjRCUklER0UgKi8NCi0JU1lOQw0KLQlNVE1TUkQo cjUpCQkJLyogZW5hYmxlIHVzZSBvZiBmcHUgbm93ICovDQotCWlzeW5jDQotLyoNCi0gKiBGb3Ig U01QLCB3ZSBkb24ndCBkbyBsYXp5IEZQVSBzd2l0Y2hpbmcgYmVjYXVzZSBpdCBqdXN0IGdldHMg dG9vDQotICogaG9ycmVuZG91c2x5IGNvbXBsZXgsIGVzcGVjaWFsbHkgd2hlbiBhIHRhc2sgc3dp dGNoZXMgZnJvbSBvbmUgQ1BVDQotICogdG8gYW5vdGhlci4gIEluc3RlYWQgd2UgY2FsbCBnaXZl dXBfZnB1IGluIHN3aXRjaF90by4NCi0gKi8NCi0jaWZuZGVmIENPTkZJR19TTVANCi0JdG9waHlz KHI2LDApCQkJLyogZ2V0IF9fcGEgY29uc3RhbnQgKi8NCi0JYWRkaXMJcjMscjYsbGFzdF90YXNr X3VzZWRfbWF0aEBoYQ0KLQlsd3oJcjQsbGFzdF90YXNrX3VzZWRfbWF0aEBsKHIzKQ0KLQljbXB3 aQkwLHI0LDANCi0JYmVxCTFmDQotCWFkZAlyNCxyNCxyNg0KLQlhZGRpCXI0LHI0LFRIUkVBRAkJ Lyogd2FudCBsYXN0X3Rhc2tfdXNlZF9tYXRoLT50aHJlYWQgKi8NCi0JU0FWRV8zMkZQUlMoMCwg cjQpDQotCW1mZnMJZnIwDQotCXN0ZmQJZnIwLFRIUkVBRF9GUFNDUi00KHI0KQ0KLQlsd3oJcjUs UFRfUkVHUyhyNCkNCi0JYWRkCXI1LHI1LHI2DQotCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09W RVJIRUFEKHI1KQ0KLQlsaQlyMTAsTVNSX0ZQfE1TUl9GRTB8TVNSX0ZFMQ0KLQlhbmRjCXI0LHI0 LHIxMAkJLyogZGlzYWJsZSBGUCBmb3IgcHJldmlvdXMgdGFzayAqLw0KLQlzdHcJcjQsX01TUi1T VEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0xOg0KLSNlbmRpZiAvKiBDT05GSUdfU01QICovDQot CS8qIGVuYWJsZSB1c2Ugb2YgRlAgYWZ0ZXIgcmV0dXJuICovDQotCW1mc3ByCXI1LFNQUkczCQkv KiBjdXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICovDQotCWx3eglyNCxUSFJFQURfRlBFWENf TU9ERShyNSkNCi0Jb3JpCXI5LHI5LE1TUl9GUAkJLyogZW5hYmxlIEZQIGZvciBjdXJyZW50ICov DQotCW9yCXI5LHI5LHI0DQotCWxmZAlmcjAsVEhSRUFEX0ZQU0NSLTQocjUpDQotCW10ZnNmCTB4 ZmYsZnIwDQotCVJFU1RfMzJGUFJTKDAsIHI1KQ0KLSNpZm5kZWYgQ09ORklHX1NNUA0KLQlzdWJp CXI0LHI1LFRIUkVBRA0KLQlzdWIJcjQscjQscjYNCi0Jc3R3CXI0LGxhc3RfdGFza191c2VkX21h dGhAbChyMykNCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KLQkvKiByZXN0b3JlIHJlZ2lzdGVy cyBhbmQgcmV0dXJuICovDQotCS8qIHdlIGhhdmVuJ3QgdXNlZCBjdHIgb3IgeGVyIG9yIGxyICov DQotCS8qIGZhbGwgdGhyb3VnaCB0byBmYXN0X2V4Y2VwdGlvbl9yZXR1cm4gKi8NCi0NCi0JLmds b2JsCWZhc3RfZXhjZXB0aW9uX3JldHVybg0KLWZhc3RfZXhjZXB0aW9uX3JldHVybjoNCi0JYW5k aS4JcjEwLHI5LE1TUl9SSQkJLyogY2hlY2sgZm9yIHJlY292ZXJhYmxlIGludGVycnVwdCAqLw0K LQliZXEJMWYJCQkvKiBpZiBub3QsIHdlJ3ZlIGdvdCBwcm9ibGVtcyAqLw0KLTI6CVJFU1RfNEdQ UlMoMywgcjExKQ0KLQlsd3oJcjEwLF9DQ1IocjExKQ0KLQlSRVNUX0dQUigxLCByMTEpDQotCW10 Y3IJcjEwDQotCWx3eglyMTAsX0xJTksocjExKQ0KLQltdGxyCXIxMA0KLQlSRVNUX0dQUigxMCwg cjExKQ0KLQltdHNwcglTUlIxLHI5DQotCW10c3ByCVNSUjAscjEyDQotCVJFU1RfR1BSKDksIHIx MSkNCi0JUkVTVF9HUFIoMTIsIHIxMSkNCi0JbHd6CXIxMSxHUFIxMShyMTEpDQotCVNZTkMNCi0J UkZJDQotDQotLyogY2hlY2sgaWYgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZCBpbiBhIHJlc3RhcnRh YmxlIHNlY3Rpb24gKi8NCi0xOglsaXMJcjMsZXhjX2V4aXRfcmVzdGFydF9lbmRAaGENCi0JYWRk aQlyMyxyMyxleGNfZXhpdF9yZXN0YXJ0X2VuZEBsDQotCWNtcGx3CXIxMixyMw0KLQliZ2UJM2YN Ci0JbGlzCXI0LGV4Y19leGl0X3Jlc3RhcnRAaGENCi0JYWRkaQlyNCxyNCxleGNfZXhpdF9yZXN0 YXJ0QGwNCi0JY21wbHcJcjEyLHI0DQotCWJsdAkzZg0KLQlsaXMJcjMsZmVlX3Jlc3RhcnRzQGhh DQotCXRvcGh5cyhyMyxyMykNCi0JbHd6CXI1LGZlZV9yZXN0YXJ0c0BsKHIzKQ0KLQlhZGRpCXI1 LHI1LDENCi0Jc3R3CXI1LGZlZV9yZXN0YXJ0c0BsKHIzKQ0KLQltcglyMTIscjQJCS8qIHJlc3Rh cnQgYXQgZXhjX2V4aXRfcmVzdGFydCAqLw0KLQliCTJiDQotDQotCS5jb21tCWZlZV9yZXN0YXJ0 cyw0DQotDQotLyogYWFyZ2gsIGEgbm9ucmVjb3ZlcmFibGUgaW50ZXJydXB0LCBwYW5pYyAqLw0K LS8qIGFhcmdoLCB3ZSBkb24ndCBrbm93IHdoaWNoIHRyYXAgdGhpcyBpcyAqLw0KLS8qIGJ1dCB0 aGUgNjAxIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBSSSBiaXQsIHNvIGFzc3VtZSBpdCdzIE9LICov DQotMzoNCi1CRUdJTl9GVFJfU0VDVElPTg0KLQliCTJiDQotRU5EX0ZUUl9TRUNUSU9OX0lGU0VU KENQVV9GVFJfNjAxKQ0KLQlsaQlyMTAsLTENCi0Jc3R3CXIxMCxUUkFQKHIxMSkNCi0JYWRkaQly MyxyMSxTVEFDS19GUkFNRV9PVkVSSEVBRA0KLQlsaQlyMTAsTVNSX0tFUk5FTA0KLQlibAl0cmFu c2Zlcl90b19oYW5kbGVyX2Z1bGwNCi0JLmxvbmcJbm9ucmVjb3ZlcmFibGVfZXhjZXB0aW9uDQot CS5sb25nCXJldF9mcm9tX2V4Y2VwdA0KLQ0KLS8qDQotICogRlAgdW5hdmFpbGFibGUgdHJhcCBm cm9tIGtlcm5lbCAtIHByaW50IGEgbWVzc2FnZSwgYnV0IGxldA0KLSAqIHRoZSB0YXNrIHVzZSBG UCBpbiB0aGUga2VybmVsIHVudGlsIGl0IHJldHVybnMgdG8gdXNlciBtb2RlLg0KLSAqLw0KLUtl cm5lbEZQOg0KLQlsd3oJcjMsX01TUihyMSkNCi0Jb3JpCXIzLHIzLE1TUl9GUA0KLQlzdHcJcjMs X01TUihyMSkJCS8qIGVuYWJsZSB1c2Ugb2YgRlAgYWZ0ZXIgcmV0dXJuICovDQotCWxpcwlyMyw4 NmZAaA0KLQlvcmkJcjMscjMsODZmQGwNCi0JbXIJcjQscjIJCQkvKiBjdXJyZW50ICovDQotCWx3 eglyNSxfTklQKHIxKQ0KLQlibAlwcmludGsNCi0JYglyZXRfZnJvbV9leGNlcHQNCi04NjoJLnN0 cmluZwkiZmxvYXRpbmcgcG9pbnQgdXNlZCBpbiBrZXJuZWwgKHRhc2s9JXAsIHBjPSV4KVxuIg0K LQkuYWxpZ24JNCwwDQotDQotI2lmZGVmIENPTkZJR19BTFRJVkVDDQotLyogTm90ZSB0aGF0IHRo ZSBBbHRpVmVjIHN1cHBvcnQgaXMgY2xvc2VseSBtb2RlbGVkIGFmdGVyIHRoZSBGUA0KLSAqIHN1 cHBvcnQuICBDaGFuZ2VzIHRvIG9uZSBhcmUgbGlrZWx5IHRvIGJlIGFwcGxpY2FibGUgdG8gdGhl DQotICogb3RoZXIhICAqLw0KLWxvYWRfdXBfYWx0aXZlYzoNCi0vKg0KLSAqIERpc2FibGUgQWx0 aVZlYyBmb3IgdGhlIHRhc2sgd2hpY2ggaGFkIEFsdGlWZWMgcHJldmlvdXNseSwNCi0gKiBhbmQg c2F2ZSBpdHMgQWx0aVZlYyByZWdpc3RlcnMgaW4gaXRzIHRocmVhZF9zdHJ1Y3QuDQotICogRW5h YmxlcyBBbHRpVmVjIGZvciB1c2UgaW4gdGhlIGtlcm5lbCBvbiByZXR1cm4uDQotICogT24gU01Q IHdlIGtub3cgdGhlIEFsdGlWZWMgdW5pdHMgYXJlIGZyZWUsIHNpbmNlIHdlIGdpdmUgaXQgdXAg ZXZlcnkNCi0gKiBzd2l0Y2guICAtLSBLdW1hcg0KLSAqLw0KLQltZm1zcglyNQ0KLQlvcmlzCXI1 LHI1LE1TUl9WRUNAaA0KLQlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBvZiBBbHRpVmVjIG5v dyAqLw0KLQlpc3luYw0KLS8qDQotICogRm9yIFNNUCwgd2UgZG9uJ3QgZG8gbGF6eSBBbHRpVmVj IHN3aXRjaGluZyBiZWNhdXNlIGl0IGp1c3QgZ2V0cyB0b28NCi0gKiBob3JyZW5kb3VzbHkgY29t cGxleCwgZXNwZWNpYWxseSB3aGVuIGEgdGFzayBzd2l0Y2hlcyBmcm9tIG9uZSBDUFUNCi0gKiB0 byBhbm90aGVyLiAgSW5zdGVhZCB3ZSBjYWxsIGdpdmV1cF9hbHRpdmVjIGluIHN3aXRjaF90by4N Ci0gKi8NCi0jaWZuZGVmIENPTkZJR19TTVANCi0JdG9waHlzKHI2LDApDQotCWFkZGlzCXIzLHI2 LGxhc3RfdGFza191c2VkX2FsdGl2ZWNAaGENCi0JbHd6CXI0LGxhc3RfdGFza191c2VkX2FsdGl2 ZWNAbChyMykNCi0JY21wd2kJMCxyNCwwDQotCWJlcQkxZg0KLQlhZGQJcjQscjQscjYNCi0JYWRk aQlyNCxyNCxUSFJFQUQJLyogd2FudCBUSFJFQUQgb2YgbGFzdF90YXNrX3VzZWRfYWx0aXZlYyAq Lw0KLQlTQVZFXzMyVlIoMCxyMTAscjQpDQotCW1mdnNjcgl2cjANCi0JbGkJcjEwLFRIUkVBRF9W U0NSDQotCXN0dngJdnIwLHIxMCxyNA0KLQlsd3oJcjUsUFRfUkVHUyhyNCkNCi0JYWRkCXI1LHI1 LHI2DQotCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KLQlsaXMJcjEwLE1T Ul9WRUNAaA0KLQlhbmRjCXI0LHI0LHIxMAkvKiBkaXNhYmxlIGFsdGl2ZWMgZm9yIHByZXZpb3Vz IHRhc2sgKi8NCi0Jc3R3CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQocjUpDQotMToNCi0j ZW5kaWYgLyogQ09ORklHX1NNUCAqLw0KLQkvKiBlbmFibGUgdXNlIG9mIEFsdGlWZWMgYWZ0ZXIg cmV0dXJuICovDQotCW9yaXMJcjkscjksTVNSX1ZFQ0BoDQotCW1mc3ByCXI1LFNQUkczCQkvKiBj dXJyZW50IHRhc2sncyBUSFJFQUQgKHBoeXMpICovDQotCWxpCXI0LDENCi0JbGkJcjEwLFRIUkVB RF9WU0NSDQotCXN0dwlyNCxUSFJFQURfVVNFRF9WUihyNSkNCi0JbHZ4CXZyMCxyMTAscjUNCi0J bXR2c2NyCXZyMA0KLQlSRVNUXzMyVlIoMCxyMTAscjUpDQotI2lmbmRlZiBDT05GSUdfU01QDQot CXN1YmkJcjQscjUsVEhSRUFEDQotCXN1YglyNCxyNCxyNg0KLQlzdHcJcjQsbGFzdF90YXNrX3Vz ZWRfYWx0aXZlY0BsKHIzKQ0KLSNlbmRpZiAvKiBDT05GSUdfU01QICovDQotCS8qIHJlc3RvcmUg cmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8NCi0JLyogd2UgaGF2ZW4ndCB1c2VkIGN0ciBvciB4ZXIg b3IgbHIgKi8NCi0JYglmYXN0X2V4Y2VwdGlvbl9yZXR1cm4NCi0NCi0vKg0KLSAqIEFsdGlWZWMg dW5hdmFpbGFibGUgdHJhcCBmcm9tIGtlcm5lbCAtIHByaW50IGEgbWVzc2FnZSwgYnV0IGxldA0K LSAqIHRoZSB0YXNrIHVzZSBBbHRpVmVjIGluIHRoZSBrZXJuZWwgdW50aWwgaXQgcmV0dXJucyB0 byB1c2VyIG1vZGUuDQotICovDQotS2VybmVsQWx0aVZlYzoNCi0JbHd6CXIzLF9NU1IocjEpDQot CW9yaXMJcjMscjMsTVNSX1ZFQ0BoDQotCXN0dwlyMyxfTVNSKHIxKQkvKiBlbmFibGUgdXNlIG9m IEFsdGlWZWMgYWZ0ZXIgcmV0dXJuICovDQotCWxpcwlyMyw4N2ZAaA0KLQlvcmkJcjMscjMsODdm QGwNCi0JbXIJcjQscjIJCS8qIGN1cnJlbnQgKi8NCi0JbHd6CXI1LF9OSVAocjEpDQotCWJsCXBy aW50aw0KLQliCXJldF9mcm9tX2V4Y2VwdA0KLTg3Ogkuc3RyaW5nCSJBbHRpVmVjIHVzZWQgaW4g a2VybmVsICAodGFzaz0lcCwgcGM9JXgpICBcbiINCi0JLmFsaWduCTQsMA0KLQ0KLS8qDQotICog Z2l2ZXVwX2FsdGl2ZWModHNrKQ0KLSAqIERpc2FibGUgQWx0aVZlYyBmb3IgdGhlIHRhc2sgZ2l2 ZW4gYXMgdGhlIGFyZ3VtZW50LA0KLSAqIGFuZCBzYXZlIHRoZSBBbHRpVmVjIHJlZ2lzdGVycyBp biBpdHMgdGhyZWFkX3N0cnVjdC4NCi0gKiBFbmFibGVzIEFsdGlWZWMgZm9yIHVzZSBpbiB0aGUg a2VybmVsIG9uIHJldHVybi4NCi0gKi8NCi0NCi0JLmdsb2JsCWdpdmV1cF9hbHRpdmVjDQotZ2l2 ZXVwX2FsdGl2ZWM6DQotCW1mbXNyCXI1DQotCW9yaXMJcjUscjUsTVNSX1ZFQ0BoDQotCVNZTkMN Ci0JTVRNU1JEKHI1KQkJCS8qIGVuYWJsZSB1c2Ugb2YgQWx0aVZlYyBub3cgKi8NCi0JaXN5bmMN Ci0JY21wd2kJMCxyMywwDQotCWJlcWxyLQkJCQkvKiBpZiBubyBwcmV2aW91cyBvd25lciwgZG9u ZSAqLw0KLQlhZGRpCXIzLHIzLFRIUkVBRAkJLyogd2FudCBUSFJFQUQgb2YgdGFzayAqLw0KLQls d3oJcjUsUFRfUkVHUyhyMykNCi0JY21wd2kJMCxyNSwwDQotCVNBVkVfMzJWUigwLCByNCwgcjMp DQotCW1mdnNjcgl2cjANCi0JbGkJcjQsVEhSRUFEX1ZTQ1INCi0Jc3R2eAl2cjAscjQscjMNCi0J YmVxCTFmDQotCWx3eglyNCxfTVNSLVNUQUNLX0ZSQU1FX09WRVJIRUFEKHI1KQ0KLQlsaXMJcjMs TVNSX1ZFQ0BoDQotCWFuZGMJcjQscjQscjMJCS8qIGRpc2FibGUgQWx0aVZlYyBmb3IgcHJldmlv dXMgdGFzayAqLw0KLQlzdHcJcjQsX01TUi1TVEFDS19GUkFNRV9PVkVSSEVBRChyNSkNCi0xOg0K LSNpZm5kZWYgQ09ORklHX1NNUA0KLQlsaQlyNSwwDQotCWxpcwlyNCxsYXN0X3Rhc2tfdXNlZF9h bHRpdmVjQGhhDQotCXN0dwlyNSxsYXN0X3Rhc2tfdXNlZF9hbHRpdmVjQGwocjQpDQotI2VuZGlm IC8qIENPTkZJR19TTVAgKi8NCi0JYmxyDQotI2VuZGlmIC8qIENPTkZJR19BTFRJVkVDICovDQot DQotLyoNCi0gKiBnaXZldXBfZnB1KHRzaykNCi0gKiBEaXNhYmxlIEZQIGZvciB0aGUgdGFzayBn aXZlbiBhcyB0aGUgYXJndW1lbnQsDQotICogYW5kIHNhdmUgdGhlIGZsb2F0aW5nLXBvaW50IHJl Z2lzdGVycyBpbiBpdHMgdGhyZWFkX3N0cnVjdC4NCi0gKiBFbmFibGVzIHRoZSBGUFUgZm9yIHVz ZSBpbiB0aGUga2VybmVsIG9uIHJldHVybi4NCi0gKi8NCi0JLmdsb2JsCWdpdmV1cF9mcHUNCi1n aXZldXBfZnB1Og0KLQltZm1zcglyNQ0KLQlvcmkJcjUscjUsTVNSX0ZQDQotCVNZTkNfNjAxDQot CUlTWU5DXzYwMQ0KLQlNVE1TUkQocjUpCQkJLyogZW5hYmxlIHVzZSBvZiBmcHUgbm93ICovDQot CVNZTkNfNjAxDQotCWlzeW5jDQotCWNtcHdpCTAscjMsMA0KLQliZXFsci0JCQkJLyogaWYgbm8g cHJldmlvdXMgb3duZXIsIGRvbmUgKi8NCi0JYWRkaQlyMyxyMyxUSFJFQUQJICAgICAgICAvKiB3 YW50IFRIUkVBRCBvZiB0YXNrICovDQotCWx3eglyNSxQVF9SRUdTKHIzKQ0KLQljbXB3aQkwLHI1 LDANCi0JU0FWRV8zMkZQUlMoMCwgcjMpDQotCW1mZnMJZnIwDQotCXN0ZmQJZnIwLFRIUkVBRF9G UFNDUi00KHIzKQ0KLQliZXEJMWYNCi0JbHd6CXI0LF9NU1ItU1RBQ0tfRlJBTUVfT1ZFUkhFQUQo cjUpDQotCWxpCXIzLE1TUl9GUHxNU1JfRkUwfE1TUl9GRTENCi0JYW5kYwlyNCxyNCxyMwkJLyog ZGlzYWJsZSBGUCBmb3IgcHJldmlvdXMgdGFzayAqLw0KLQlzdHcJcjQsX01TUi1TVEFDS19GUkFN RV9PVkVSSEVBRChyNSkNCi0xOg0KLSNpZm5kZWYgQ09ORklHX1NNUA0KLQlsaQlyNSwwDQotCWxp cwlyNCxsYXN0X3Rhc2tfdXNlZF9tYXRoQGhhDQotCXN0dwlyNSxsYXN0X3Rhc2tfdXNlZF9tYXRo QGwocjQpDQotI2VuZGlmIC8qIENPTkZJR19TTVAgKi8NCi0JYmxyDQotDQotLyoNCiAgKiBUaGlz IGNvZGUgaXMganVtcGVkIHRvIGZyb20gdGhlIHN0YXJ0dXAgY29kZSB0byBjb3B5DQogICogdGhl IGtlcm5lbCBpbWFnZSB0byBwaHlzaWNhbCBhZGRyZXNzIDAuDQogICovDQotLS0gbGludXgtb3Jp Zy9hcmNoL3BwYy9rZXJuZWwvaGVhZF80NHguUw0KKysrIGxpbnV4L2FyY2gvcHBjL2tlcm5lbC9o ZWFkXzQ0eC5TDQpAQCAtNDI1LDggKzQyNSwxNSBAQA0KIAkvKiBQcm9ncmFtIEludGVycnVwdCAq Lw0KIAlQUk9HUkFNX0VYQ0VQVElPTg0KIA0KLQkvKiBGbG9hdGluZyBQb2ludCBVbmF2YWlsYWJs ZSBJbnRlcnJ1cHQgKi8NCisjaWZkZWYgQ09ORklHX0ZQVQ0KKwlTVEFSVF9FWENFUFRJT04oRmxv YXRpbmdQb2ludFVuYXZhaWxhYmxlKQ0KKwlOT1JNQUxfRVhDRVBUSU9OX1BST0xPRw0KKwlibmUJ bG9hZF91cF9mcHUJCS8qIGlmIGZyb20gdXNlciwganVzdCBsb2FkIGl0IHVwICovDQorCWFkZGkJ cjMscjEsU1RBQ0tfRlJBTUVfT1ZFUkhFQUQNCisJRVhDX1hGRVJfRUVfTElURSgweDgwMCwgS2Vy bmVsRlApDQorI2Vsc2UNCiAJRVhDRVBUSU9OKDB4MjAxMCwgRmxvYXRpbmdQb2ludFVuYXZhaWxh YmxlLCBVbmtub3duRXhjZXB0aW9uLCBFWENfWEZFUl9FRSkNCisjZW5kaWYNCiANCiAJLyogU3lz dGVtIENhbGwgSW50ZXJydXB0ICovDQogCVNUQVJUX0VYQ0VQVElPTihTeXN0ZW1DYWxsKQ0KQEAg LTY4Niw5ICs2OTMsMTEgQEANCiAgKg0KICAqIFRoZSA0NHggY29yZSBkb2VzIG5vdCBoYXZlIGFu IEZQVS4NCiAgKi8NCisjaWZuZGVmIENPTkZJR19GUFUNCiBfR0xPQkFMKGdpdmV1cF9mcHUpDQog CWJscg0KLQ0KKyNlbmRpZg0KKyANCiAvKg0KICAqIGV4dGVybiB2b2lkIGFib3J0KHZvaWQpDQog ICoNCi0tLSBsaW51eC1vcmlnL2FyY2gvcHBjL2tlcm5lbC90cmFwcy5jDQorKysgbGludXgvYXJj aC9wcGMva2VybmVsL3RyYXBzLmMNCkBAIC0xNzYsNyArMTc2LDcgQEANCiAjZWxzZQ0KICNkZWZp bmUgZ2V0X21jX3JlYXNvbihyZWdzKQkobWZzcHIoU1BSTl9NQ1NSKSkNCiAjZW5kaWYNCi0jZGVm aW5lIFJFQVNPTl9GUAkJMA0KKyNkZWZpbmUgUkVBU09OX0ZQCQlFU1JfRlANCiAjZGVmaW5lIFJF QVNPTl9JTExFR0FMCQlFU1JfUElMDQogI2RlZmluZSBSRUFTT05fUFJJVklMRUdFRAlFU1JfUFBS DQogI2RlZmluZSBSRUFTT05fVFJBUAkJRVNSX1BUUg0KLS0tIGxpbnV4LW9yaWcvaW5jbHVkZS9h c20tcHBjL3JlZ19ib29rZS5oDQorKysgbGludXgvaW5jbHVkZS9hc20tcHBjL3JlZ19ib29rZS5o DQpAQCAtMzA1LDYgKzMwNSw3IEBADQogI2RlZmluZSBFU1JfUElMCQkweDA4MDAwMDAwCS8qIFBy b2dyYW0gRXhjZXB0aW9uIC0gSWxsZWdhbCAqLw0KICNkZWZpbmUgRVNSX1BQUgkJMHgwNDAwMDAw MAkvKiBQcm9ncmFtIEV4Y2VwdGlvbiAtIFByaXZlbGVnZWQgKi8NCiAjZGVmaW5lIEVTUl9QVFIJ CTB4MDIwMDAwMDAJLyogUHJvZ3JhbSBFeGNlcHRpb24gLSBUcmFwICovDQorI2RlZmluZSBFU1Jf RlAgICAgICAgICAgMHgwMTAwMDAwMCAgICAgIC8qIEZsb2F0aW5nIFBvaW50IE9wZXJhdGlvbiAq Lw0KICNkZWZpbmUgRVNSX0RTVAkJMHgwMDgwMDAwMAkvKiBTdG9yYWdlIEV4Y2VwdGlvbiAtIERh dGEgbWlzcyAqLw0KICNkZWZpbmUgRVNSX0RJWgkJMHgwMDQwMDAwMAkvKiBTdG9yYWdlIEV4Y2Vw dGlvbiAtIFpvbmUgZmF1bHQgKi8NCiAjZGVmaW5lIEVTUl9TVAkJMHgwMDgwMDAwMAkvKiBTdG9y ZSBPcGVyYXRpb24gKi8NCi== --=-IXrt6mYcH+Uw3xI5kZuQ-- --=-jZ9Dn3x4d7iFo1P84fq2 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBCNzf38/0vJ5szK6kRAgrdAKDMgyG0yKDk0tD5JZiT23sio6yUPACfQ8i4 n8q0IU8jmKeiGcoKeBsWqZg= =+5vq -----END PGP SIGNATURE----- --=-jZ9Dn3x4d7iFo1P84fq2--