[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] [1/3] Xenoprof: Enabling performance profiling in Xen
On Mon, 2005-04-11 at 17:24, Keir Fraser wrote: > Is the nmi_sanity_check() needed? We shouldn't lose NMIs: even if we > take one while doing NMI processing, we sholuld retake the NMI as soon > as the first one IRETs. > > There used to be a problem whereby the Xen NMI handler would bail if > it detected it had interrupted Xen at an unfortunate time. I guess the > code in xenoprof was probably added to deal with this situation. If > so then it is no longer needed -- I fix up in a more generic way now > (reschedule the NMI automatically). Thats right, earlier we used to lose NMI samples, and nmi_sanity_check() was added as a guard against that. We may not need this anymore. I had noticed that even with the deferred NMI patch, we used to end up losing NMI samples, though I cannot offer any reasons why. The current xenoprof patch fixes this by forcing a call to the NMI handler after fixing up the segment registers, instead of deferring the call. > Apart from that I guess this is mostly just oprofile source files > pulled out of Linux? Is there much/any other Xen-specific code in the > patch? There are a few changes to allow an NMI callback to be registered, to be called instead of the default NMI handler. This is mostly pulled from the Linux code. Other changes include a new hypercall (do_pmc_op) which provides the interface between domain level profilers and Xen, and some additions to the MSR definition files (again from Linux). Aravind > > -- Keir > > > > > Here is part 1 of the patches for Xenoprof > > > > >> 1) xenoprof-1.0-xen-2.0.5.patch: > > >> - Patch for Xen > > > > Jose Renato Santos > > HP Labs > > xenoprof-1.0-xen-2.0.5.patch > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxxxxxxxx > > http://lists.xensource.com/xen-devel > -=- MIME -=- > This is a multi-part message in MIME format. > > ------_=_NextPart_001_01C53CB2.59CE8456 > Content-Type: text/plain; > charset="us-ascii" > Content-Transfer-Encoding: quoted-printable > > > Here is part 1 of the patches for Xenoprof > > >> 1) xenoprof-1.0-xen-2.0.5.patch: > >> - Patch for Xen > > Jose Renato Santos > HP Labs > > ------_=_NextPart_001_01C53CB2.59CE8456 > Content-Type: application/octet-stream; > name="xenoprof-1.0-xen-2.0.5.patch" > Content-Transfer-Encoding: base64 > Content-Description: xenoprof-1.0-xen-2.0.5.patch > Content-Disposition: attachment; > filename="xenoprof-1.0-xen-2.0.5.patch" > > ZGlmZiAtUE5hdXIgeGVuLTIuMC41L3hlbi9hcmNoL3g4Ni9hcGljLmMgeGVuLTIuMC41LXByb2Yv > eGVuL2FyY2gveDg2L2FwaWMuYwotLS0geGVuLTIuMC41L3hlbi9hcmNoL3g4Ni9hcGljLmMJMjAw > NS0wMy0xMCAxMTo1MjoxNS4wMDAwMDAwMDAgLTA4MDAKKysrIHhlbi0yLjAuNS1wcm9mL3hlbi9h > cmNoL3g4Ni9hcGljLmMJMjAwNS0wNC0wNiAwOToyNzoxMy4wMDAwMDAwMDAgLTA3MDAKQEAgLTcy > NCw2ICs3MjQsOSBAQAogCiB1bnNpZ25lZCBpbnQgYXBpY190aW1lcl9pcnFzIFtOUl9DUFVTXTsK > IAorZXh0ZXJuIGludCBubWlfcHJvZmlsaW5nX3N0YXJ0ZWQ7CitleHRlcm4gaW50IG5taV9zYW5p > dHlfY2hlY2soc3RydWN0IHhlbl9yZWdzICogcmVncywgaW50IGNwdSk7CisKIHZvaWQgc21wX2Fw > aWNfdGltZXJfaW50ZXJydXB0KHN0cnVjdCB4ZW5fcmVncyAqIHJlZ3MpCiB7CiAgICAgYWNrX0FQ > SUNfaXJxKCk7CkBAIC03MzEsNiArNzM0LDEyIEBACiAgICAgYXBpY190aW1lcl9pcnFzW3NtcF9w > cm9jZXNzb3JfaWQoKV0rKzsKICAgICBwZXJmY19pbmNyYyhhcGljX3RpbWVyKTsKIAorICAgIC8q > ICB3ZSBtYXkgbG9zZSBOTUkgc2FtcGxlcyBmb3Igc2V2ZXJhbCByZWFzb25zLgorCUhlcmUsIHdl > IHByb3RlY3QgYWdhaW5zdCB0aGF0IGJ5IGRvaW5nIGFuIG5taSBzYW5pdHkKKwljaGVjayBldmVy > eSB0aW1lciBpbnRlcnJ1cHQgb24gZXZlcnkgcHJvY2Vzc29yICovCisgICAgaWYgKG5taV9wcm9m > aWxpbmdfc3RhcnRlZCkKKwlubWlfc2FuaXR5X2NoZWNrKHJlZ3MsIHNtcF9wcm9jZXNzb3JfaWQo > KSk7CisKICAgICByYWlzZV9zb2Z0aXJxKEFDX1RJTUVSX1NPRlRJUlEpOwogfQogCmRpZmYgLVBO > YXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgeGVuLTIuMC41LXByb2YveGVuL2Fy > Y2gveDg2L01ha2VmaWxlCi0tLSB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L01ha2VmaWxlCTIwMDUt > MDMtMTAgMTE6NTI6MTMuMDAwMDAwMDAwIC0wODAwCisrKyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJj > aC94ODYvTWFrZWZpbGUJMjAwNS0wNC0wNyAwOTowNDoxMy4wMDAwMDAwMDAgLTA3MDAKQEAgLTEy > LDcgKzEyLDEwIEBACiAKIE9CSlMgOj0gJChzdWJzdCAkKFRBUkdFVF9TVUJBUkNIKS9hc20tb2Zm > c2V0cy5vLCwkKE9CSlMpKQogCitPQkpTICs9IG9wcm9maWxlL29wcm9maWxlLm8KKwogZGVmYXVs > dDogJChUQVJHRVQpCisJbWFrZSAtQyBvcHJvZmlsZQogCiAkKFRBUkdFVCk6ICQoVEFSR0VUKS1z > eW1zIGJvb3QvbWtlbGYzMgogCS4vYm9vdC9ta2VsZjMyICQoVEFSR0VUKS1zeW1zICQoVEFSR0VU > KSAweDEwMDAwMApAQCAtMzAsMTEgKzMzLDE1IEBACiBib290L21rZWxmMzI6IGJvb3QvbWtlbGYz > Mi5jCiAJJChIT1NUQ0MpICQoSE9TVENGTEFHUykgLW8gJEAgJDwKIAorb3Byb2ZpbGUvb3Byb2Zp > bGUubzoKKwkkKE1BS0UpIC1DIG9wcm9maWxlCisKIGNsZWFuOgogCXJtIC1mICoubyAqLnMgKn4g > Y29yZSBib290LyoubyBib290Lyp+IGJvb3QvY29yZSBib290L21rZWxmMzIKIAlybSAtZiB4ODZf > MzIvKi5vIHg4Nl8zMi8qfiB4ODZfMzIvY29yZQogCXJtIC1mIHg4Nl82NC8qLm8geDg2XzY0Lyp+ > IHg4Nl82NC9jb3JlCiAJcm0gLWYgbXRyci8qLm8gbXRyci8qfiBtdHJyL2NvcmUKKwlybSAtZiBv > cHJvZmlsZS8qLm8KIAogZGVsZXRlLXVuZnJlc2gtZmlsZXM6CiAJIyBub3RoaW5nCmRpZmYgLVBO > YXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgeGVuLTIuMC41LXByb2YveGVu > L2FyY2gveDg2L21pY3JvY29kZS5jCi0tLSB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L21pY3JvY29k > ZS5jCTIwMDUtMDMtMTAgMTE6NTI6MTMuMDAwMDAwMDAwIC0wODAwCisrKyB4ZW4tMi4wLjUtcHJv > Zi94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMJMjAwNS0wNC0wNiAwOToyNzoxMy4wMDAwMDAwMDAg > LTA3MDAKQEAgLTg3LDEzICs4Nyw2IEBACiAjZGVmaW5lIHZtYWxsb2MoX3MpIHhtYWxsb2MoX3Mp > CiAjZGVmaW5lIHZmcmVlKF9wKSB4ZnJlZShfcCkKICNkZWZpbmUgbnVtX29ubGluZV9jcHVzKCkg > c21wX251bV9jcHVzCi1zdGF0aWMgaW5saW5lIGludCBvbl9lYWNoX2NwdSgKLSAgICB2b2lkICgq > ZnVuYykgKHZvaWQgKmluZm8pLCB2b2lkICppbmZvLCBpbnQgcmV0cnksIGludCB3YWl0KQotewot > ICAgIGludCByZXQgPSBzbXBfY2FsbF9mdW5jdGlvbihmdW5jLCBpbmZvLCByZXRyeSwgd2FpdCk7 > Ci0gICAgZnVuYyhpbmZvKTsKLSAgICByZXR1cm4gcmV0OwotfQogCiAjaWYgMAogTU9EVUxFX0RF > U0NSSVBUSU9OKCJJbnRlbCBDUFUgKElBLTMyKSBNaWNyb2NvZGUgVXBkYXRlIERyaXZlciIpOwpk > aWZmIC1QTmF1ciB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L25taS5jIHhlbi0yLjAuNS1wcm9mL3hl > bi9hcmNoL3g4Ni9ubWkuYwotLS0geGVuLTIuMC41L3hlbi9hcmNoL3g4Ni9ubWkuYwkyMDA1LTAz > LTEwIDExOjUyOjEzLjAwMDAwMDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2FyY2gv > eDg2L25taS5jCTIwMDUtMDQtMDYgMDk6Mjc6MTMuMDAwMDAwMDAwIC0wNzAwCkBAIC01LDYgKzUs > MTAgQEAKICAqCiAgKiAgU3RhcnRlZCBieSBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4K > ICAqCisgKiBNb2RpZmllZCBieSBBcmF2aW5kIE1lbm9uIGZvciBzdXBwb3J0aW5nIG9wcm9maWxl > CisgKiBUaGVzZSBtb2RpZmljYXRpb25zIGFyZToKKyAqIENvcHlyaWdodCAoQykgMjAwNSBIZXds > ZXR0LVBhY2thcmQgQ28uCisgKgogICogIEZpeGVzOgogICogIE1pa2FlbCBQZXR0ZXJzc29uCTog > QU1EIEs3IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgogICogIE1pa2FlbCBQ > ZXR0ZXJzc29uCTogUG93ZXIgTWFuYWdlbWVudCBmb3IgbG9jYWwgQVBJQyBOTUkgd2F0Y2hkb2cu > CkBAIC0zNCw2ICszOCwyOCBAQAogCiBleHRlcm4gaW50IGxvZ2ljYWxfcHJvY19pZFtdOwogCisv > KgorICogbGFwaWNfbm1pX293bmVyIHRyYWNrcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBsYXBpYyBO > TUkgaGFyZHdhcmU6CisgKiAtIGl0IG1heSBiZSByZXNlcnZlZCBieSBzb21lIG90aGVyIGRyaXZl > ciwgb3Igbm90CisgKiAtIHdoZW4gbm90IHJlc2VydmVkIGJ5IHNvbWUgb3RoZXIgZHJpdmVyLCBp > dCBtYXkgYmUgdXNlZCBmb3IKKyAqICAgdGhlIE5NSSB3YXRjaGRvZywgb3Igbm90CisgKgorICog > VGhpcyBpcyBtYWludGFpbmVkIHNlcGFyYXRlbHkgZnJvbSBubWlfYWN0aXZlIGJlY2F1c2UgdGhl > IE5NSQorICogd2F0Y2hkb2cgbWF5IGFsc28gYmUgZHJpdmVuIGZyb20gdGhlIEkvTyBBUElDIHRp > bWVyLgorICovCitzdGF0aWMgc3BpbmxvY2tfdCBsYXBpY19ubWlfb3duZXJfbG9jayA9IFNQSU5f > TE9DS19VTkxPQ0tFRDsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbGFwaWNfbm1pX293bmVyOworI2Rl > ZmluZSBMQVBJQ19OTUlfV0FUQ0hET0cgICAgICAoMTw8MCkKKyNkZWZpbmUgTEFQSUNfTk1JX1JF > U0VSVkVEICAgICAgKDE8PDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgCisvKiBubWlfYWN0aXZlOgorICogKzE6IHRoZSBsYXBpYyBOTUkgd2F0 > Y2hkb2cgaXMgYWN0aXZlLCBidXQgY2FuIGJlIGRpc2FibGVkCisgKiAgMDogdGhlIGxhcGljIE5N > SSB3YXRjaGRvZyBoYXMgbm90IGJlZW4gc2V0IHVwLCBhbmQgY2Fubm90CisgKiAgICAgYmUgZW5h > YmxlZAorICogLTE6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaXMgZGlzYWJsZWQsIGJ1dCBjYW4g > YmUgZW5hYmxlZAorICovCitpbnQgbm1pX2FjdGl2ZTsKKwogI2RlZmluZSBLN19FVk5UU0VMX0VO > QUJMRQkoMSA8PCAyMikKICNkZWZpbmUgSzdfRVZOVFNFTF9JTlQJCSgxIDw8IDIwKQogI2RlZmlu > ZSBLN19FVk5UU0VMX09TCQkoMSA8PCAxNykKQEAgLTczLDkgKzk5LDkgQEAKICAqLwogI2RlZmlu > ZSBNU1JfUDRfSVFfQ09VTlRFUjAJMHgzMEMKICNkZWZpbmUgTVNSX1A0X0lRX0NPVU5URVIxCTB4 > MzBECi0jZGVmaW5lIE1TUl9QNF9JUV9DQ0NSMAkJMHgzNkMKLSNkZWZpbmUgTVNSX1A0X0lRX0ND > Q1IxCQkweDM2RAotI2RlZmluZSBNU1JfUDRfQ1JVX0VTQ1IwCTB4M0I4IC8qIEVTQ1Igbm8uIDQg > Ki8KKy8vI2RlZmluZSBNU1JfUDRfSVFfQ0NDUjAJCTB4MzZDCisvLyNkZWZpbmUgTVNSX1A0X0lR > X0NDQ1IxCQkweDM2RAorLy8jZGVmaW5lIE1TUl9QNF9DUlVfRVNDUjAJMHgzQjggLyogRVNDUiBu > by4gNCAqLwogI2RlZmluZSBQNF9OTUlfQ1JVX0VTQ1IwIFwKICAgICAoUDRfRVNDUl9FVkVOVF9T > RUxFQ1QoMHgzRil8UDRfRVNDUl9PUzB8UDRfRVNDUl9VU1IwfCBcCiAgICAgIFA0X0VTQ1JfT1Mx > fFA0X0VTQ1JfVVNSMSkKQEAgLTEzMSw2ICsxNTcsNjkgQEAKICAqIE9yaWdpbmFsIGNvZGUgd3Jp > dHRlbiBieSBLZWl0aCBPd2Vucy4KICAqLwogCitzdGF0aWMgdm9pZCBkaXNhYmxlX2xhcGljX25t > aV93YXRjaGRvZyh2b2lkKQoreworICAgICAgICBpZiAobm1pX2FjdGl2ZSA8PSAwKQorICAgICAg > ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3dpdGNoIChib290X2NwdV9kYXRhLng4Nl92ZW5k > b3IpIHsKKyAgICAgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgICAgICAgICB3cm1z > cihNU1JfSzdfRVZOVFNFTDAsIDAsIDApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg > ICBjYXNlIFg4Nl9WRU5ET1JfSU5URUw6CisgICAgICAgICAgICAgICAgc3dpdGNoIChib290X2Nw > dV9kYXRhLng4NikgeworICAgICAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgICAgICAg > ICAgICAgIHdybXNyKE1TUl9QNl9FVk5UU0VMMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgICAg > ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE1OgorCQkJaWYgKGxvZ2ljYWxfcHJv > Y19pZFtzbXBfcHJvY2Vzc29yX2lkKCldID09IDApCisJCQl7CisgICAgICAgICAgICAgICAgICAg > ICAgICAJd3Jtc3IoTVNSX1A0X0lRX0NDQ1IwLCAwLCAwKTsKKwkgICAgICAgICAgICAgICAgICAg > ICAgICB3cm1zcihNU1JfUDRfQ1JVX0VTQ1IwLCAwLCAwKTsKKwkJCX0gZWxzZSB7CisJCQkJd3Jt > c3IoTVNSX1A0X0lRX0NDQ1IxLCAwLCAwKTsJCisJCQl9CisgICAgICAgICAgICAgICAgICAgICAg > ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg > ICAgIH0KKyAgICAgICAgbm1pX2FjdGl2ZSA9IC0xOworICAgICAgICAvKiB0ZWxsIGRvX25taSgp > IGFuZCBvdGhlcnMgdGhhdCB3ZSdyZSBub3QgYWN0aXZlIGFueSBtb3JlICovCisgICAgICAgIG5t > aV93YXRjaGRvZyA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGVuYWJsZV9sYXBpY19ubWlfd2F0Y2hk > b2codm9pZCkKK3sKKyAgICAgICAgaWYgKG5taV9hY3RpdmUgPCAwKSB7CisgICAgICAgICAgICAg > ICAgbm1pX3dhdGNoZG9nID0gTk1JX0xPQ0FMX0FQSUM7CisgICAgICAgICAgICAgICAgc2V0dXBf > YXBpY19ubWlfd2F0Y2hkb2coKTsKKyAgICAgICAgfQorfQorCitpbnQgcmVzZXJ2ZV9sYXBpY19u > bWkodm9pZCkKK3sKKyAgICAgICAgdW5zaWduZWQgaW50IG9sZF9vd25lcjsKKyAgICAgICAgc3Bp > bl9sb2NrKCZsYXBpY19ubWlfb3duZXJfbG9jayk7CisgICAgICAgIG9sZF9vd25lciA9IGxhcGlj > X25taV9vd25lcjsKKyAgICAgICAgbGFwaWNfbm1pX293bmVyIHw9IExBUElDX05NSV9SRVNFUlZF > RDsKKyAgICAgICAgc3Bpbl91bmxvY2soJmxhcGljX25taV9vd25lcl9sb2NrKTsKKyAgICAgICAg > aWYgKG9sZF9vd25lciAmIExBUElDX05NSV9SRVNFUlZFRCkKKyAgICAgICAgICAgICAgICByZXR1 > cm4gLUVCVVNZOworICAgICAgICBpZiAob2xkX293bmVyICYgTEFQSUNfTk1JX1dBVENIRE9HKQor > ICAgICAgICAgICAgICAgIGRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7CisgICAgICAgIHJl > dHVybiAwOworfQorCit2b2lkIHJlbGVhc2VfbGFwaWNfbm1pKHZvaWQpCit7CisgICAgICAgIHVu > c2lnbmVkIGludCBuZXdfb3duZXI7CisgICAgICAgIHNwaW5fbG9jaygmbGFwaWNfbm1pX293bmVy > X2xvY2spOworICAgICAgICBuZXdfb3duZXIgPSBsYXBpY19ubWlfb3duZXIgJiB+TEFQSUNfTk1J > X1JFU0VSVkVEOworICAgICAgICBsYXBpY19ubWlfb3duZXIgPSBuZXdfb3duZXI7CisgICAgICAg > IHNwaW5fdW5sb2NrKCZsYXBpY19ubWlfb3duZXJfbG9jayk7CisgICAgICAgIGlmIChuZXdfb3du > ZXIgJiBMQVBJQ19OTUlfV0FUQ0hET0cpCisgICAgICAgICAgICAgICAgZW5hYmxlX2xhcGljX25t > aV93YXRjaGRvZygpOworfQorCiBzdGF0aWMgdm9pZCBfX3BtaW5pdCBjbGVhcl9tc3JfcmFuZ2Uo > dW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGludCBuKQogewogICAgIHVuc2lnbmVkIGludCBp > OwpAQCAtMjU1LDYgKzM0NCw4IEBACiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuOwogICAg > IH0KKyAgICBsYXBpY19ubWlfb3duZXIgPSBMQVBJQ19OTUlfV0FUQ0hET0c7CisgICAgbm1pX2Fj > dGl2ZSA9IDE7CiAgICAgbm1pX3BtX2luaXQoKTsKIH0KIApAQCAtMzE5LDMgKzQxMCw3IEBACiAg > ICAgICAgIH0KICAgICB9CiB9CisKK0VYUE9SVF9TWU1CT0wocmVzZXJ2ZV9sYXBpY19ubWkpOwor > RVhQT1JUX1NZTUJPTChyZWxlYXNlX2xhcGljX25taSk7CisKZGlmZiAtUE5hdXIgeGVuLTIuMC41 > L3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9NYWtlZmlsZSB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJjaC94 > ODYvb3Byb2ZpbGUvTWFrZWZpbGUKLS0tIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUv > TWFrZWZpbGUJMTk2OS0xMi0zMSAxNjowMDowMC4wMDAwMDAwMDAgLTA4MDAKKysrIHhlbi0yLjAu > NS1wcm9mL3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9NYWtlZmlsZQkyMDA1LTA0LTA2IDA5OjI3OjEz > LjAwMDAwMDAwMCAtMDcwMApAQCAtMCwwICsxLDM0IEBACisKK2luY2x1ZGUgJChCQVNFRElSKS9S > dWxlcy5taworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisjIEZMQUdT > IGlzIGlkZW50aWNhbCB0byBDRkxBR1MgZXhjZXB0IGZvciAtV2Vycm9yICAgICAgICAgICAgICAg > ICAgICAgICAgICAgIAorRkxBR1MgIDo9IC1ub3N0ZGluYyAtZm5vLWJ1aWx0aW4gLWZuby1jb21t > b24gLWZuby1zdHJpY3QtYWxpYXNpbmcKK0ZMQUdTICArPSAtaXdpdGhwcmVmaXggaW5jbHVkZSAt > V2FsbCAtcGlwZQorRkxBR1MgICs9IC1JJChCQVNFRElSKS9pbmNsdWRlIC1Xbm8tcG9pbnRlci1h > cml0aCAtV3JlZHVuZGFudC1kZWNscworCitpZmVxICgkKG9wdGltaXplKSx5KQorRkxBR1MgICs9 > IC1PMyAtZm9taXQtZnJhbWUtcG9pbnRlcgorZWxzZQoreDg2XzMyL3VzZXJjb3B5Lm86IENGTEFH > UyArPSAtTzEKK2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIyBQcmV2 > ZW50IGZsb2F0aW5nLXBvaW50IHZhcmlhYmxlcyBmcm9tIGNyZWVwaW5nIGludG8gWGVuLgorRkxB > R1MgICs9IC1tc29mdC1mbG9hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK2lm > ZXEgKCQoVEFSR0VUX1NVQkFSQ0gpLHg4Nl8zMikKK0ZMQUdTICArPSAtbTMyIC1tYXJjaD1pNjg2 > CitMREZMQUdTIDo9IC0tb2Zvcm1hdCBlbGYzMi1pMzg2CitlbmRpZgorICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAKK2lmZXEgKCQoVEFSR0VUX1NVQkFSQ0gpLHg4Nl82NCkKK0ZMQUdT > ICArPSAtbTY0IC1tbm8tcmVkLXpvbmUgLWZwaWMgLWZuby1yZW9yZGVyLWJsb2NrcworRkxBR1Mg > ICs9IC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMKK2VuZGlmCisKK2RlZmF1bHQ6ICQo > T0JKUykgCisJJChMRCkgJChMREZMQUdTKSAtciAtbyBvcHJvZmlsZS5vICQoT0JKUykKKwkKKyUu > bzogJS5jICQoSERSUykgTWFrZWZpbGUKKwkkKENDKSAkKEZMQUdTKSAtYyAkPCAtbyAkQAorCmRp > ZmYgLVBOYXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvI01ha2VmaWxlIyB4ZW4t > Mi4wLjUtcHJvZi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvI01ha2VmaWxlIwotLS0geGVuLTIuMC41 > L3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS8jTWFrZWZpbGUjCTE5NjktMTItMzEgMTY6MDA6MDAuMDAw > MDAwMDAwIC0wODAwCisrKyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvI01h > a2VmaWxlIwkyMDA1LTA0LTA2IDA5OjUzOjUzLjAwMDAwMDAwMCAtMDcwMApAQCAtMCwwICsxLDM0 > IEBACisKK2luY2x1ZGUgJChCQVNFRElSKS9SdWxlcy5taworICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgIAorCisjIEZMQUdTIGlzIGlkZW50aWNhbCB0byBDRkxBR1MgZXhjZXB0 > IGZvciAtV2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorRkxBR1MgIDo9IC1ub3N0 > ZGluYyAtZm5vLWJ1aWx0aW4gLWZuby1jb21tb24gLWZuby1zdHJpY3QtYWxpYXNpbmcKK0ZMQUdT > ICArPSAtaXdpdGhwcmVmaXggaW5jbHVkZSAtV2FsbCAtcGlwZQorRkxBR1MgICs9IC1JJChCQVNF > RElSKS9pbmNsdWRlIC1Xbm8tcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscworCitpZmVx > ICgkKG9wdGltaXplKSx5KQorRkxBR1MgICs9IC1PMyAtZm9taXQtZnJhbWUtcG9pbnRlcgorZWxz > ZQoreDg2XzMyL3VzZXJjb3B5Lm86IENGTEFHUyArPSAtTzEKK2VuZGlmCisgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgIAorIyBQcmV2ZW50IGZsb2F0aW5nLXBvaW50IHZhcmlhYmxlcyBm > cm9tIGNyZWVwaW5nIGludG8gWGVuLgorRkxBR1MgICs9IC1tc29mdC1mbG9hdAorICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAKK2lmZXEgKCQoVEFSR0VUX1NVQkFSQ0gpLHg4Nl8zMikK > K0ZMQUdTICArPSAtbTMyIC1tYXJjaD1pNjg2CitMREZMQUdTIDo9IC0tb2Zvcm1hdCBlbGYzMi1p > Mzg2CitlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK2lmZXEgKCQoVEFS > R0VUX1NVQkFSQ0gpLHg4Nl82NCkKK0ZMQUdTICArPSAtbTY0IC1tbm8tcmVkLXpvbmUgLWZwaWMg > LWZuby1yZW9yZGVyLWJsb2NrcworRkxBR1MgICs9IC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10 > YWJsZXMKK2VuZGlmCisKK2RlZmF1bHQ6ICQoT0JKUykgCisJJChMRCkgJChMREZMQUdTKSAtciAt > byBvcHJvZmlsZS5vICQoT0JKUykKKwkKKyUubzogJS5jICQoSERSUykgTWFrZWZpbGUKKwkkKEND > KSAkKEZMQUdTKSAtYyAkPCAtbyAkQAorCmRpZmYgLVBOYXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94 > ODYvb3Byb2ZpbGUvbm1pX2ludC5jIHhlbi0yLjAuNS1wcm9mL3hlbi9hcmNoL3g4Ni9vcHJvZmls > ZS9ubWlfaW50LmMKLS0tIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5j > CTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisrKyB4ZW4tMi4wLjUtcHJvZi94 > ZW4vYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jCTIwMDUtMDQtMDcgMTY6NDA6MjAuMDAwMDAw > MDAwIC0wNzAwCkBAIC0wLDAgKzEsNDMxIEBACisvKioKKyAqIEBmaWxlIG5taV9pbnQuYworICoK > KyAqIEByZW1hcmsgQ29weXJpZ2h0IDIwMDIgT1Byb2ZpbGUgYXV0aG9ycworICogQHJlbWFyayBS > ZWFkIHRoZSBmaWxlIENPUFlJTkcKKyAqCisgKiBAYXV0aG9yIEpvaG4gTGV2b24gPGxldm9uQG1v > dmVtZW50YXJpYW4ub3JnPgorICoKKyAqIE1vZGlmaWVkIGJ5IEFyYXZpbmQgTWVub24gZm9yIFhl > bgorICogVGhlc2UgbW9kaWZpY2F0aW9ucyBhcmU6CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgSGV3 > bGV0dC1QYWNrYXJkIENvLgorICovCisKKyNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KKyNpbmNsdWRl > IDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KKyNpbmNsdWRlIDx4ZW4vaW5p > dC5oPgorI2luY2x1ZGUgPHB1YmxpYy94ZW4uaD4KKyNpbmNsdWRlIDxhc20vbm1pLmg+CisjaW5j > bHVkZSA8YXNtL21zci5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisgCisjaW5jbHVkZSAib3Bf > Y291bnRlci5oIgorI2luY2x1ZGUgIm9wX3g4Nl9tb2RlbC5oIgorIAorc3RhdGljIHN0cnVjdCBv > cF94ODZfbW9kZWxfc3BlYyBjb25zdCAqIG1vZGVsOworc3RhdGljIHN0cnVjdCBvcF9tc3JzIGNw > dV9tc3JzW05SX0NQVVNdOworc3RhdGljIHVuc2lnbmVkIGxvbmcgc2F2ZWRfbHZ0cGNbTlJfQ1BV > U107CisKKyNkZWZpbmUgVklSUV9CSVRNQVNLX1NJWkUJKE1BWF9PUFJPRl9ET01BSU5TLzMyICsg > MSkKKworZXh0ZXJuIGludCBhY3RpdmVfZG9tYWluc1tNQVhfT1BST0ZfRE9NQUlOU107CitleHRl > cm4gdW5zaWduZWQgaW50IGFkb21haW5zOworCitleHRlcm4gc3RydWN0IGRvbWFpbiAqIHByaW1h > cnlfcHJvZmlsZXI7CitleHRlcm4gc3RydWN0IGRvbWFpbiAqIGFkb21haW5fcHRyc1tNQVhfT1BS > T0ZfRE9NQUlOU107CitleHRlcm4gdW5zaWduZWQgbG9uZyB2aXJxX292Zl9wZW5kaW5nW1ZJUlFf > QklUTUFTS19TSVpFXTsKKworZXh0ZXJuIGludCBpc19hY3RpdmUoc3RydWN0IGRvbWFpbiAqZCk7 > CitleHRlcm4gaW50IGFjdGl2ZV9pZChzdHJ1Y3QgZG9tYWluICpkKTsKK2V4dGVybiBpbnQgaXNf > cGFzc2l2ZShzdHJ1Y3QgZG9tYWluICpkKTsKK2V4dGVybiBpbnQgaXNfcHJvZmlsZWQoc3RydWN0 > IGRvbWFpbiAqZCk7CisKKworaW50IG5taV9wcm9maWxpbmdfc3RhcnRlZCA9IDA7CisKK2ludCBh > Y3RpdmVfdmlycV9jb3VudCA9IDA7CitpbnQgcGFzc2l2ZV92aXJxX2NvdW50ID0gMDsKK2ludCBv > dGhlcl92aXJxX2NvdW50ID0gMDsKK2ludCBvdGhlcl9pZCA9IC0xOworaW50IHhlbl9jb3VudCA9 > IDA7CitpbnQgZG9tX2NvdW50ID0gMDsgCitpbnQgb3ZmID0gMDsKKworaW50IG5taV9jYWxsYmFj > ayhzdHJ1Y3QgeGVuX3JlZ3MgKiByZWdzLCBpbnQgY3B1KQoreworCWludCB4ZW5fbW9kZSA9IDA7 > CisKKwlvdmYgPSBtb2RlbC0+Y2hlY2tfY3RycyhjcHUsICZjcHVfbXNyc1tjcHVdLCByZWdzKTsK > Kwl4ZW5fbW9kZSA9IFJJTkdfMChyZWdzKTsKKwlpZiAob3ZmKSB7CisJCWlmICh4ZW5fbW9kZSkK > KwkJCXhlbl9jb3VudCsrOworCQllbHNlCisJCQlkb21fY291bnQrKzsKKworCQlpZiAoaXNfYWN0 > aXZlKGN1cnJlbnQpKSB7CisJCS8qIFRoaXMgaXMgbGlnaHRseSBpbmNvcnJlY3QuIElmIHdlIGRv > IG5vdCBkZWxpdmVyIAorCQkJT1ZGIHZpcnR1YWwgaW50ZXJydXB0cyBpbiBhIHN5bmNocm9ub3Vz > IAorCQkJbWFubmVyLCBhIHByb2Nlc3Mgc3dpdGNoIG1heSBoYXBwZW4gaW4gdGhlIGRvbWFpbiAK > KwkJCWJldHdlZW4gdGhlIHBvaW50IHRoZSBzYW1wbGUgd2FzIGNvbGxlY3RlZCBhbmQgCisJCQl0 > aGUgcG9pbnQgYXQgd2hpY2ggYSBWSVJRIHdhcyBkZWxpdmVyZWQuIEhvd2V2ZXIsIAorCQkJaXQg > aXMgbm90IHNhZmUgdG8gY2FsbCBzZW5kX2d1ZXN0X3ZpcnEgZnJvbSB0aGlzIAorCQkJTk1JIGNv > bnRleHQsIGl0IG1heSBsZWFkIHRvIGEgZGVhZGxvY2sgc2luY2UgTk1JcyBhcmUgCisJCQl1bm1h > c2thYmxlLiBPbmUgb3B0aW1pemF0aW9uIHRoYXQgd2UgY2FuIGRvIGlzIAorCQkJdGhhdCBpZiB0 > aGUgc2FtcGxlIG9jY3VycyB3aGlsZSBkb21haW4gY29kZSBpcyAKKwkJCXJ1bm5uZywgd2Uga25v > dyB0aGF0IGl0IGlzIHNhZmUgdG8gY2FsbCAKKwkJCXNlbmRfZ3Vlc3RfdmlycSwgc2luY2Ugd2Ug > a25vdyBubyBYZW4gY29kZSAKKwkJCWlzIHJ1bm5pbmcgYXQgdGhhdCB0aW1lLgorCQkJSG93ZXZl > ciwgdGhpcyBtYXkgZGlzdG9ydCB0aGUgc2FtcGxlIGRpc3RyaWJ1dGlvbiwKKwkJCWJlY2F1c2Ug > d2UgbWF5IGxvc2UgbW9yZSBYZW4gbW9kZSBzYW1wbGVzLiovCisJCQlhY3RpdmVfdmlycV9jb3Vu > dCsrOworCQkJaWYgKCF4ZW5fbW9kZSkgeworCQkJCXNlbmRfZ3Vlc3RfdmlycShjdXJyZW50LCBW > SVJRX1BNQ19PVkYpOworCQkJCWNsZWFyX2JpdChhY3RpdmVfaWQoY3VycmVudCksICZ2aXJxX292 > Zl9wZW5kaW5nWzBdKTsKKwkJCX0gZWxzZSAKKwkJCQlzZXRfYml0KGFjdGl2ZV9pZChjdXJyZW50 > KSwgJnZpcnFfb3ZmX3BlbmRpbmdbMF0pOworCQkJcHJpbWFyeV9wcm9maWxlci0+c2hhcmVkX2lu > Zm8tPmFjdGl2ZV9zYW1wbGVzKys7CisJCX0KKwkJZWxzZSBpZiAoaXNfcGFzc2l2ZShjdXJyZW50 > KSkgeworCQkJc2V0X2JpdChhY3RpdmVfaWQocHJpbWFyeV9wcm9maWxlciksICZ2aXJxX292Zl9w > ZW5kaW5nWzBdKTsKKwkJCXBhc3NpdmVfdmlycV9jb3VudCsrOworCQkJcHJpbWFyeV9wcm9maWxl > ci0+c2hhcmVkX2luZm8tPnBhc3NpdmVfc2FtcGxlcysrOworCQl9CisJCWVsc2UgeworCQkJb3Ro > ZXJfdmlycV9jb3VudCsrOworCQkJb3RoZXJfaWQgPSBjdXJyZW50LT5pZDsKKwkJCXByaW1hcnlf > cHJvZmlsZXItPnNoYXJlZF9pbmZvLT5vdGhlcl9zYW1wbGVzKys7CisJCX0KKwl9CisJcmV0dXJu > IDE7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfbXNycyh2b2lkKQoreworCWludCBpOworCWZvciAo > aSA9IDA7IGkgPCBOUl9DUFVTOyArK2kpIHsKKwkJeGZyZWUoY3B1X21zcnNbaV0uY291bnRlcnMp > OworCQljcHVfbXNyc1tpXS5jb3VudGVycyA9IE5VTEw7CisJCXhmcmVlKGNwdV9tc3JzW2ldLmNv > bnRyb2xzKTsKKwkJY3B1X21zcnNbaV0uY29udHJvbHMgPSBOVUxMOworCX0KK30KKyAKK3N0YXRp > YyBpbnQgYWxsb2NhdGVfbXNycyh2b2lkKQoreworCWludCBzdWNjZXNzID0gMTsKKwlzaXplX3Qg > Y29udHJvbHNfc2l6ZSA9IHNpemVvZihzdHJ1Y3Qgb3BfbXNyKSAqIG1vZGVsLT5udW1fY29udHJv > bHM7CisJc2l6ZV90IGNvdW50ZXJzX3NpemUgPSBzaXplb2Yoc3RydWN0IG9wX21zcikgKiBtb2Rl > bC0+bnVtX2NvdW50ZXJzOworCisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7ICsr > aSkgeworCQkvL2lmICghY3B1X29ubGluZShpKSkKKwkJaWYgKCF0ZXN0X2JpdChpLCAmY3B1X29u > bGluZV9tYXApKQorCQkJY29udGludWU7CisKKwkJY3B1X21zcnNbaV0uY291bnRlcnMgPSB4bWFs > bG9jKGNvdW50ZXJzX3NpemUpOworCQlpZiAoIWNwdV9tc3JzW2ldLmNvdW50ZXJzKSB7CisJCQlz > dWNjZXNzID0gMDsKKwkJCWJyZWFrOworCQl9CisJCWNwdV9tc3JzW2ldLmNvbnRyb2xzID0geG1h > bGxvYyhjb250cm9sc19zaXplKTsKKwkJaWYgKCFjcHVfbXNyc1tpXS5jb250cm9scykgeworCQkJ > c3VjY2VzcyA9IDA7CisJCQlicmVhazsKKwkJfQorCX0KKwlpZiAoIXN1Y2Nlc3MpCisJCWZyZWVf > bXNycygpOworCisJcmV0dXJuIHN1Y2Nlc3M7Cit9CisKK3N0YXRpYyB2b2lkIG5taV9jcHVfc2F2 > ZV9yZWdpc3RlcnMoc3RydWN0IG9wX21zcnMgKiBtc3JzKQoreworCXVuc2lnbmVkIGludCBjb25z > dCBucl9jdHJzID0gbW9kZWwtPm51bV9jb3VudGVyczsKKwl1bnNpZ25lZCBpbnQgY29uc3QgbnJf > Y3RybHMgPSBtb2RlbC0+bnVtX2NvbnRyb2xzOyAKKwlzdHJ1Y3Qgb3BfbXNyICogY291bnRlcnMg > PSBtc3JzLT5jb3VudGVyczsKKwlzdHJ1Y3Qgb3BfbXNyICogY29udHJvbHMgPSBtc3JzLT5jb250 > cm9sczsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBucl9jdHJzOyArK2kp > IHsKKwkJcmRtc3IoY291bnRlcnNbaV0uYWRkciwKKwkJCWNvdW50ZXJzW2ldLnNhdmVkLmxvdywK > KwkJCWNvdW50ZXJzW2ldLnNhdmVkLmhpZ2gpOworCX0KKyAKKwlmb3IgKGkgPSAwOyBpIDwgbnJf > Y3RybHM7ICsraSkgeworCQlyZG1zcihjb250cm9sc1tpXS5hZGRyLAorCQkJY29udHJvbHNbaV0u > c2F2ZWQubG93LAorCQkJY29udHJvbHNbaV0uc2F2ZWQuaGlnaCk7CisJfQorfQorCitzdGF0aWMg > dm9pZCBubWlfc2F2ZV9yZWdpc3RlcnModm9pZCAqIGR1bW15KQoreworCWludCBjcHUgPSBzbXBf > cHJvY2Vzc29yX2lkKCk7CisJc3RydWN0IG9wX21zcnMgKiBtc3JzID0gJmNwdV9tc3JzW2NwdV07 > CisJbW9kZWwtPmZpbGxfaW5fYWRkcmVzc2VzKG1zcnMpOworCW5taV9jcHVfc2F2ZV9yZWdpc3Rl > cnMobXNycyk7Cit9CisKK2ludCBubWlfcmVzZXJ2ZV9jb3VudGVycyh2b2lkKQoreworCWlmICgh > YWxsb2NhdGVfbXNycygpKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIFdlIHdhbGsgYSB0aGlu > IGxpbmUgYmV0d2VlbiBsYXcgYW5kIHJhcGUgaGVyZS4KKwkgKiBXZSBuZWVkIHRvIGJlIGNhcmVm > dWwgdG8gaW5zdGFsbCBvdXIgTk1JIGhhbmRsZXIKKwkgKiB3aXRob3V0IGFjdHVhbGx5IHRyaWdn > ZXJpbmcgYW55IE5NSXMgYXMgdGhpcyB3aWxsCisJICogYnJlYWsgdGhlIGNvcmUgY29kZSBob3Jy > aWZpY2FsbHkuCisJICovCisJLyogRG9uJ3Qgd2UgbmVlZCB0byBkbyB0aGlzIG9uIGFsbCBDUFVz > PyovCisJaWYgKHJlc2VydmVfbGFwaWNfbm1pKCkgPCAwKSB7CisJCWZyZWVfbXNycygpOworCQly > ZXR1cm4gLUVCVVNZOworCX0KKwkvKiBXZSBuZWVkIHRvIHNlcmlhbGl6ZSBzYXZlIGFuZCBzZXR1 > cCBmb3IgSFQgYmVjYXVzZSB0aGUgc3Vic2V0CisJICogb2YgbXNycyBhcmUgZGlzdGluY3QgZm9y > IHNhdmUgYW5kIHNldHVwIG9wZXJhdGlvbnMKKwkgKi8KKwlvbl9lYWNoX2NwdShubWlfc2F2ZV9y > ZWdpc3RlcnMsIE5VTEwsIDAsIDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBubWlf > Y3B1X3NldHVwKHZvaWQgKiBkdW1teSkKK3sKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgp > OworCXN0cnVjdCBvcF9tc3JzICogbXNycyA9ICZjcHVfbXNyc1tjcHVdOworCW1vZGVsLT5zZXR1 > cF9jdHJzKG1zcnMpOworfQorCitpbnQgbm1pX3NldHVwX2V2ZW50cyh2b2lkKQoreworCW9uX2Vh > Y2hfY3B1KG5taV9jcHVfc2V0dXAsIE5VTEwsIDAsIDEpOworCXJldHVybiAwOworfQorCitpbnQg > bm1pX2VuYWJsZV92aXJxKCkKK3sKKwlzZXRfbm1pX2NhbGxiYWNrKG5taV9jYWxsYmFjayk7CisJ > cmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIG5taV9jcHVfc3RhcnQodm9pZCAqIGR1bW15KQor > eworCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJc3RydWN0IG9wX21zcnMgY29uc3Qg > KiBtc3JzID0gJmNwdV9tc3JzW2NwdV07CisJc2F2ZWRfbHZ0cGNbY3B1XSA9IGFwaWNfcmVhZChB > UElDX0xWVFBDKTsKKwlhcGljX3dyaXRlKEFQSUNfTFZUUEMsIEFQSUNfRE1fTk1JKTsKKwltb2Rl > bC0+c3RhcnQobXNycyk7Cit9CisKK2ludCBubWlfc3RhcnQodm9pZCkKK3sKKwlvbl9lYWNoX2Nw > dShubWlfY3B1X3N0YXJ0LCBOVUxMLCAwLCAxKTsKKwlubWlfcHJvZmlsaW5nX3N0YXJ0ZWQgPSAx > OworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBubWlfY3B1X3N0b3Aodm9pZCAqIGR1bW15 > KQoreworCXVuc2lnbmVkIGludCB2OworCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJ > c3RydWN0IG9wX21zcnMgY29uc3QgKiBtc3JzID0gJmNwdV9tc3JzW2NwdV07CisJbW9kZWwtPnN0 > b3AobXNycyk7CisKKwkvKiByZXN0b3JpbmcgQVBJQ19MVlRQQyBjYW4gdHJpZ2dlciBhbiBhcGlj > IGVycm9yIGJlY2F1c2UgdGhlIGRlbGl2ZXJ5CisJICogbW9kZSBhbmQgdmVjdG9yIG5yIGNvbWJp > bmF0aW9uIGNhbiBiZSBpbGxlZ2FsLiBUaGF0J3MgYnkgZGVzaWduOiBvbgorCSAqIHBvd2VyIG9u > IGFwaWMgbHZ0IGNvbnRhaW4gYSB6ZXJvIHZlY3RvciBuciB3aGljaCBhcmUgbGVnYWwgb25seSBm > b3IKKwkgKiBOTUkgZGVsaXZlcnkgbW9kZS4gU28gaW5oaWJpdCBhcGljIGVyciBiZWZvcmUgcmVz > dG9yaW5nIGx2dHBjCisJICovCisJaWYgKCEoYXBpY19yZWFkKEFQSUNfTFZUUEMpICYgQVBJQ19E > TV9OTUkpCisJCXx8IChhcGljX3JlYWQoQVBJQ19MVlRQQykgJiBBUElDX0xWVF9NQVNLRUQpKSB7 > CisJCXByaW50aygibm1pX3N0b3A6IEFQSUMgbm90IGdvb2QgJXBcbiIsIGFwaWNfcmVhZChBUElD > X0xWVFBDKSk7CisJCW1kZWxheSg1MDAwKTsKKwl9CisJdiA9IGFwaWNfcmVhZChBUElDX0xWVEVS > Uik7CisJYXBpY193cml0ZShBUElDX0xWVEVSUiwgdiB8IEFQSUNfTFZUX01BU0tFRCk7CisJYXBp > Y193cml0ZShBUElDX0xWVFBDLCBzYXZlZF9sdnRwY1tjcHVdKTsKKwlhcGljX3dyaXRlKEFQSUNf > TFZURVJSLCB2KTsKK30KKyAKK3ZvaWQgbm1pX3N0b3Aodm9pZCkKK3sKKwlubWlfcHJvZmlsaW5n > X3N0YXJ0ZWQgPSAwOworCW9uX2VhY2hfY3B1KG5taV9jcHVfc3RvcCwgTlVMTCwgMCwgMSk7CisJ > YWN0aXZlX3ZpcnFfY291bnQgPSAwOworCXBhc3NpdmVfdmlycV9jb3VudCA9IDA7CisJb3RoZXJf > dmlycV9jb3VudCA9IDA7CisJeGVuX2NvdW50ID0gMDsKKwlkb21fY291bnQgPSAwOworfQorCitl > eHRlcm4gdW5zaWduZWQgaW50IHJlYWRfY3RyKHN0cnVjdCBvcF9tc3JzIGNvbnN0ICogY29uc3Qg > bXNycywgaW50IGN0cik7CisKK3ZvaWQgbm1pX3Nhbml0eV9jaGVjayhzdHJ1Y3QgeGVuX3JlZ3Mg > KnJlZ3MsIGludCBjcHUpCit7CisJaW50IGk7CisJaW50IG1hc2tlZCA9IDA7CisKKwkvKiBXZSBt > YXkgaGF2ZSBtaXNzZWQgc29tZSBOTUkgaW50ZXJydXB0cyBpZiB3ZSB3ZXJlIGFscmVhZHkgCisJ > CWluIGFuIE5NSSBjb250ZXh0IGF0IHRoYXQgdGltZS4gSWYgdGhpcyBoYXBwZW5zLCB0aGVuIAor > CQl0aGUgY291bnRlcnMgYXJlIG5vdCByZXNldCBhbmQgaW4gdGhlIGNhc2Ugb2YgUDQsIHRoZSAK > KwkJQVBJQyBMVlQgZGlzYWJsZSBtYXNrIGlzIHNldC4gSW4gYm90aCBjYXNlcyB3ZSBlbmQgdXAg > CisJCWxvc2luZyBzYW1wbGVzLiBPbiBQNCwgdGhpcyBjb25kaXRpb24gY2FuIGJlIGRldGVjdGVk > IAorCQlieSBjaGVja2luZyB0aGUgQVBJQyBMVlQgbWFzay4gQnV0IGluIFA2LCB3ZSBuZWVkIHRv > IAorCQlleGFtaW5lIHRoZSBjb3VudGVycyBmb3Igb3ZlcmZsb3cuIFNvLCBldmVyeSB0aW1lciAK > KwkJaW50ZXJydXB0LCB3ZSBjaGVjayB0aGF0IGV2ZXJ5dGhpbmcgaXMgT0sgKi8KKworCWlmIChh > cGljX3JlYWQoQVBJQ19MVlRQQykgJiBBUElDX0xWVF9NQVNLRUQpCisJCW1hc2tlZCA9IDE7CisK > KwlubWlfY2FsbGJhY2socmVncywgY3B1KTsKKworCWlmIChvdmYgJiYgbWFza2VkKSB7CisJCWlm > IChpc19hY3RpdmUoY3VycmVudCkpCisJCQljdXJyZW50LT5zaGFyZWRfaW5mby0+bm1pX3Jlc3Rh > cnRzKys7CisJCWVsc2UgaWYgKGlzX3Bhc3NpdmUoY3VycmVudCkpCisJCQlwcmltYXJ5X3Byb2Zp > bGVyLT5zaGFyZWRfaW5mby0+bm1pX3Jlc3RhcnRzKys7CisJfQorCisJLyppZiAoamlmZmllcyAl > MTAwMCA9PSAwKSB7CQorCQlwcmludGsoImNwdSAlZDogc2FtcGxlIGNvdW50ICVkICVkICVkIGF0 > ICV1XG4iLCBjcHUsIGFjdGl2ZV92aXJxX2NvdW50LCBwYXNzaXZlX3ZpcnFfY291bnQsIG90aGVy > X3ZpcnFfY291bnQsIGppZmZpZXMpOworCQlwcmludGsoIm90aGVyIHRhc2sgaWQgJWRcbiIsIG90 > aGVyX2lkKTsKKwkJcHJpbnRrKCIlZCBpbiB4ZW4sICVkIGluIGRvbWFpblxuIiwgeGVuX2NvdW50 > LCBkb21fY291bnQpOworCQlwcmludGsoImNvdW50ZXJzICVwICVwXG4iLCByZWFkX2N0cigmY3B1 > X21zcnNbY3B1XSwgMCksIHJlYWRfY3RyKCZjcHVfbXNyc1tjcHVdLCAxKSk7CisJfSovCisJCisK > Kwlmb3IgKGkgPSAwOyBpIDwgYWRvbWFpbnM7IGkrKykKKwkJaWYgKHRlc3RfYW5kX2NsZWFyX2Jp > dChpLCAmdmlycV9vdmZfcGVuZGluZ1swXSkpIHsKKwkJCXNlbmRfZ3Vlc3RfdmlycShhZG9tYWlu > X3B0cnNbaV0sIFZJUlFfUE1DX09WRik7CisJCX0KK30KKwordm9pZCBubWlfZGlzYWJsZV92aXJx > KHZvaWQpCit7CisJdW5zZXRfbm1pX2NhbGxiYWNrKCk7Cit9IAorCitzdGF0aWMgdm9pZCBubWlf > cmVzdG9yZV9yZWdpc3RlcnMoc3RydWN0IG9wX21zcnMgKiBtc3JzKQoreworCXVuc2lnbmVkIGlu > dCBjb25zdCBucl9jdHJzID0gbW9kZWwtPm51bV9jb3VudGVyczsKKwl1bnNpZ25lZCBpbnQgY29u > c3QgbnJfY3RybHMgPSBtb2RlbC0+bnVtX2NvbnRyb2xzOyAKKwlzdHJ1Y3Qgb3BfbXNyICogY291 > bnRlcnMgPSBtc3JzLT5jb3VudGVyczsKKwlzdHJ1Y3Qgb3BfbXNyICogY29udHJvbHMgPSBtc3Jz > LT5jb250cm9sczsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBucl9jdHJs > czsgKytpKSB7CisJCXdybXNyKGNvbnRyb2xzW2ldLmFkZHIsCisJCQljb250cm9sc1tpXS5zYXZl > ZC5sb3csCisJCQljb250cm9sc1tpXS5zYXZlZC5oaWdoKTsKKwl9CisgCisJZm9yIChpID0gMDsg > aSA8IG5yX2N0cnM7ICsraSkgeworCQl3cm1zcihjb3VudGVyc1tpXS5hZGRyLAorCQkJY291bnRl > cnNbaV0uc2F2ZWQubG93LAorCQkJY291bnRlcnNbaV0uc2F2ZWQuaGlnaCk7CisJfQorfQorIAor > c3RhdGljIHZvaWQgbm1pX2NwdV9zaHV0ZG93bih2b2lkICogZHVtbXkpCit7CisJaW50IGNwdSA9 > IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlzdHJ1Y3Qgb3BfbXNycyAqIG1zcnMgPSAmY3B1X21zcnNb > Y3B1XTsKKwlubWlfcmVzdG9yZV9yZWdpc3RlcnMobXNycyk7Cit9CisgCit2b2lkIG5taV9yZWxl > YXNlX2NvdW50ZXJzKHZvaWQpCit7CisJb25fZWFjaF9jcHUobm1pX2NwdV9zaHV0ZG93biwgTlVM > TCwgMCwgMSk7CisJcmVsZWFzZV9sYXBpY19ubWkoKTsKKwlmcmVlX21zcnMoKTsKK30KKworc3Ry > dWN0IG9wX2NvdW50ZXJfY29uZmlnIGNvdW50ZXJfY29uZmlnW09QX01BWF9DT1VOVEVSXTsKKwor > c3RhdGljIGludCBfX2luaXQgcDRfaW5pdCh2b2lkKQoreworCV9fdTggY3B1X21vZGVsID0gY3Vy > cmVudF9jcHVfZGF0YS54ODZfbW9kZWw7CisKKwlpZiAoY3B1X21vZGVsID4gMykKKwkJcmV0dXJu > IDA7CisKKyNpZm5kZWYgQ09ORklHX1NNUAorCW1vZGVsID0gJm9wX3A0X3NwZWM7CisJcmV0dXJu > IDE7CisjZWxzZQorCS8vc3dpdGNoIChzbXBfbnVtX3NpYmxpbmdzKSB7CisJaWYgKGNwdV9oYXNf > aHQpIAorCXsKKwkgIG1vZGVsID0gJm9wX3A0X2h0Ml9zcGVjOworCSAgcmV0dXJuIDE7CisJfQor > CWVsc2UKKwl7CisJICBtb2RlbCA9ICZvcF9wNF9zcGVjOworCSAgcmV0dXJuIDE7CisJfQorI2Vu > ZGlmCisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBfX2luaXQgcHByb19pbml0KHZvaWQp > Cit7CisJX191OCBjcHVfbW9kZWwgPSBjdXJyZW50X2NwdV9kYXRhLng4Nl9tb2RlbDsKKworCWlm > IChjcHVfbW9kZWwgPiAweGQpCisJCXJldHVybiAwOworCisJbW9kZWwgPSAmb3BfcHByb19zcGVj > OworCXJldHVybiAxOworfQorCitpbnQgbm1pX2luaXQoaW50ICpudW1fZXZlbnRzLCBpbnQgKmlz > X3ByaW1hcnkpCit7CisJX191OCB2ZW5kb3IgPSBjdXJyZW50X2NwdV9kYXRhLng4Nl92ZW5kb3I7 > CisJX191OCBmYW1pbHkgPSBjdXJyZW50X2NwdV9kYXRhLng4NjsKKwlpbnQgcHJpbSA9IDA7Cisg > CisJaWYgKCFjcHVfaGFzX2FwaWMpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKHByaW1hcnlf > cHJvZmlsZXIgPT0gTlVMTCkgeworCQlwcmltYXJ5X3Byb2ZpbGVyID0gY3VycmVudDsKKwkJcHJp > bSA9IDE7CisJfQorCisJaWYgKHByaW1hcnlfcHJvZmlsZXIgIT0gY3VycmVudCkKKwkJZ290byBv > dXQ7CisKKwlzd2l0Y2ggKHZlbmRvcikgeworCQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6CisJCQlz > d2l0Y2ggKGZhbWlseSkgeworCQkJCS8qIFBlbnRpdW0gSVYgKi8KKwkJCQljYXNlIDB4ZjoKKwkJ > CQkJaWYgKCFwNF9pbml0KCkpCisJCQkJCQlyZXR1cm4gLUVOT0RFVjsKKwkJCQkJYnJlYWs7CisJ > CQkJLyogQSBQNi1jbGFzcyBwcm9jZXNzb3IgKi8KKwkJCQljYXNlIDY6CisJCQkJCWlmICghcHBy > b19pbml0KCkpCisJCQkJCQlyZXR1cm4gLUVOT0RFVjsKKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVs > dDoKKwkJCQkJcmV0dXJuIC1FTk9ERVY7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJ > CXJldHVybiAtRU5PREVWOworCX0KK291dDoKKwlpZiAoY29weV90b191c2VyKCh2b2lkICopbnVt > X2V2ZW50cywgKHZvaWQgKikmbW9kZWwtPm51bV9jb3VudGVycywgc2l6ZW9mKGludCkpKQorCQly > ZXR1cm4gLUVGQVVMVDsKKwlpZiAoY29weV90b191c2VyKCh2b2lkICopaXNfcHJpbWFyeSwgKHZv > aWQgKikmcHJpbSwgc2l6ZW9mKGludCkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVybiAw > OworfQorCmRpZmYgLVBOYXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfY291 > bnRlci5oIHhlbi0yLjAuNS1wcm9mL3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9vcF9jb3VudGVyLmgK > LS0tIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfY291bnRlci5oCTE5NjktMTIt > MzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisrKyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJjaC94 > ODYvb3Byb2ZpbGUvb3BfY291bnRlci5oCTIwMDUtMDQtMDYgMDk6Mjc6MTMuMDAwMDAwMDAwIC0w > NzAwCkBAIC0wLDAgKzEsMzMgQEAKKy8qKgorICogQGZpbGUgb3BfY291bnRlci5oCisgKgorICog > QHJlbWFyayBDb3B5cmlnaHQgMjAwMiBPUHJvZmlsZSBhdXRob3JzCisgKiBAcmVtYXJrIFJlYWQg > dGhlIGZpbGUgQ09QWUlORworICoKKyAqIEBhdXRob3IgSm9obiBMZXZvbgorICoKKyAqIE1vZGlm > aWVkIGJ5IEFyYXZpbmQgTWVub24gZm9yIFhlbgorICogVGhlc2UgbW9kaWZpY2F0aW9ucyBhcmU6 > CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgSGV3bGV0dC1QYWNrYXJkIENvLgorICovCisgCisjaWZu > ZGVmIE9QX0NPVU5URVJfSAorI2RlZmluZSBPUF9DT1VOVEVSX0gKKyAKKyNkZWZpbmUgT1BfTUFY > X0NPVU5URVIgOAorIAorLyogUGVyLXBlcmZjdHIgY29uZmlndXJhdGlvbiBhcyBzZXQgdmlhCisg > KiBvcHJvZmlsZWZzLgorICovCitzdHJ1Y3Qgb3BfY291bnRlcl9jb25maWcgeworICAgICAgICB1 > bnNpZ25lZCBsb25nIGNvdW50OworICAgICAgICB1bnNpZ25lZCBsb25nIGVuYWJsZWQ7CisgICAg > ICAgIHVuc2lnbmVkIGxvbmcgZXZlbnQ7CisgICAgICAgIHVuc2lnbmVkIGxvbmcga2VybmVsOwor > ICAgICAgICB1bnNpZ25lZCBsb25nIHVzZXI7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgdW5pdF9t > YXNrOworfTsKKworZXh0ZXJuIHN0cnVjdCBvcF9jb3VudGVyX2NvbmZpZyBjb3VudGVyX2NvbmZp > Z1tdOworCisjZW5kaWYgLyogT1BfQ09VTlRFUl9IICovCmRpZmYgLVBOYXVyIHhlbi0yLjAuNS94 > ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfbW9kZWxfcDQuYyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJj > aC94ODYvb3Byb2ZpbGUvb3BfbW9kZWxfcDQuYwotLS0geGVuLTIuMC41L3hlbi9hcmNoL3g4Ni9v > cHJvZmlsZS9vcF9tb2RlbF9wNC5jCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAw > CisrKyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfbW9kZWxfcDQuYwky > MDA1LTA0LTA3IDA5OjA4OjIwLjAwMDAwMDAwMCAtMDcwMApAQCAtMCwwICsxLDc0NCBAQAorLyoq > CisgKiBAZmlsZSBvcF9tb2RlbF9wNC5jCisgKiBQNCBtb2RlbC1zcGVjaWZpYyBNU1Igb3BlcmF0 > aW9ucworICoKKyAqIEByZW1hcmsgQ29weXJpZ2h0IDIwMDIgT1Byb2ZpbGUgYXV0aG9ycworICog > QHJlbWFyayBSZWFkIHRoZSBmaWxlIENPUFlJTkcKKyAqCisgKiBAYXV0aG9yIEdyYXlkb24gSG9h > cmUKKyAqCisgKiBNb2RpZmllZCBieSBBcmF2aW5kIE1lbm9uIGZvciBYZW4KKyAqIFRoZXNlIG1v > ZGlmaWNhdGlvbnMgYXJlOgorICogQ29weXJpZ2h0IChDKSAyMDA1IEhld2xldHQtUGFja2FyZCBD > by4KKyAqLworCisjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21zci5oPgor > I2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNt > L3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgorCisjaW5jbHVkZSAib3BfeDg2 > X21vZGVsLmgiCisjaW5jbHVkZSAib3BfY291bnRlci5oIgorCisjZGVmaW5lIE5VTV9FVkVOVFMg > MzkKKworI2RlZmluZSBOVU1fQ09VTlRFUlNfTk9OX0hUIDgKKyNkZWZpbmUgTlVNX0VTQ1JTX05P > Tl9IVCA0NQorI2RlZmluZSBOVU1fQ0NDUlNfTk9OX0hUIDE4CisjZGVmaW5lIE5VTV9DT05UUk9M > U19OT05fSFQgKE5VTV9FU0NSU19OT05fSFQgKyBOVU1fQ0NDUlNfTk9OX0hUKQorCisjZGVmaW5l > IE5VTV9DT1VOVEVSU19IVDIgNAorI2RlZmluZSBOVU1fRVNDUlNfSFQyIDIzCisjZGVmaW5lIE5V > TV9DQ0NSU19IVDIgOQorI2RlZmluZSBOVU1fQ09OVFJPTFNfSFQyIChOVU1fRVNDUlNfSFQyICsg > TlVNX0NDQ1JTX0hUMikKKworc3RhdGljIHVuc2lnbmVkIGludCBudW1fY291bnRlcnMgPSBOVU1f > Q09VTlRFUlNfTk9OX0hUOworCisKKy8qIHRoaXMgaGFzIHRvIGJlIGNoZWNrZWQgZHluYW1pY2Fs > bHkgc2luY2UgdGhlCisgICBoeXBlci10aHJlYWRlZG5lc3Mgb2YgYSBjaGlwIGlzIGRpc2NvdmVy > ZWQgYXQKKyAgIGtlcm5lbCBib290LXRpbWUuICovCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBf > bnVtX2NvdW50ZXJzKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChjcHVfaGFzX2h0 > KQorCQludW1fY291bnRlcnMgPSBOVU1fQ09VTlRFUlNfSFQyOworI2VuZGlmCit9CisKK3N0YXRp > YyBpbnQgaW5saW5lIGFkZHJfaW5jcmVtZW50KHZvaWQpCit7CisjaWZkZWYgQ09ORklHX1NNUAor > CXJldHVybiBjcHVfaGFzX2h0ID8gMiA6IDE7CisjZWxzZQorCXJldHVybiAxOworI2VuZGlmCit9 > CisKKworLyogdGFibGVzIHRvIHNpbXVsYXRlIHNpbXBsaWZpZWQgaGFyZHdhcmUgdmlldyBvZiBw > NCByZWdpc3RlcnMgKi8KK3N0cnVjdCBwNF9jb3VudGVyX2JpbmRpbmcgeworCWludCB2aXJ0X2Nv > dW50ZXI7CisJaW50IGNvdW50ZXJfYWRkcmVzczsKKwlpbnQgY2Njcl9hZGRyZXNzOworfTsKKwor > c3RydWN0IHA0X2V2ZW50X2JpbmRpbmcgeworCWludCBlc2NyX3NlbGVjdDsgIC8qIHZhbHVlIHRv > IHB1dCBpbiBDQ0NSICovCisJaW50IGV2ZW50X3NlbGVjdDsgLyogdmFsdWUgdG8gcHV0IGluIEVT > Q1IgKi8KKwlzdHJ1Y3QgeworCQlpbnQgdmlydF9jb3VudGVyOyAvKiBmb3IgdGhpcyBjb3VudGVy > Li4uICovCisJCWludCBlc2NyX2FkZHJlc3M7IC8qIHVzZSB0aGlzIEVTQ1IgICAgICAgKi8KKwl9 > IGJpbmRpbmdzWzJdOworfTsKKworLyogbmI6IHRoZXNlIENUUl8qIGRlZmluZXMgYXJlIGEgZHVw > bGljYXRlIG9mIGRlZmluZXMgaW4KKyAgIGV2ZW50L2kzODYucDQqZXZlbnRzLiAqLworCisKKyNk > ZWZpbmUgQ1RSX0JQVV8wICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgQ1RSX01TXzAgICAgICAgKDEg > PDwgMSkKKyNkZWZpbmUgQ1RSX0ZMQU1FXzAgICAgKDEgPDwgMikKKyNkZWZpbmUgQ1RSX0lRXzQg > ICAgICAgKDEgPDwgMykKKyNkZWZpbmUgQ1RSX0JQVV8yICAgICAgKDEgPDwgNCkKKyNkZWZpbmUg > Q1RSX01TXzIgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgQ1RSX0ZMQU1FXzIgICAgKDEgPDwgNikK > KyNkZWZpbmUgQ1RSX0lRXzUgICAgICAgKDEgPDwgNykKKworc3RhdGljIHN0cnVjdCBwNF9jb3Vu > dGVyX2JpbmRpbmcgcDRfY291bnRlcnMgW05VTV9DT1VOVEVSU19OT05fSFRdID0geworCXsgQ1RS > X0JQVV8wLCAgIE1TUl9QNF9CUFVfUEVSRkNUUjAsICAgTVNSX1A0X0JQVV9DQ0NSMCB9LAorCXsg > Q1RSX01TXzAsICAgIE1TUl9QNF9NU19QRVJGQ1RSMCwgICAgTVNSX1A0X01TX0NDQ1IwIH0sCisJ > eyBDVFJfRkxBTUVfMCwgTVNSX1A0X0ZMQU1FX1BFUkZDVFIwLCBNU1JfUDRfRkxBTUVfQ0NDUjAg > fSwKKwl7IENUUl9JUV80LCAgICBNU1JfUDRfSVFfUEVSRkNUUjQsICAgIE1TUl9QNF9JUV9DQ0NS > NCB9LAorCXsgQ1RSX0JQVV8yLCAgIE1TUl9QNF9CUFVfUEVSRkNUUjIsICAgTVNSX1A0X0JQVV9D > Q0NSMiB9LAorCXsgQ1RSX01TXzIsICAgIE1TUl9QNF9NU19QRVJGQ1RSMiwgICAgTVNSX1A0X01T > X0NDQ1IyIH0sCisJeyBDVFJfRkxBTUVfMiwgTVNSX1A0X0ZMQU1FX1BFUkZDVFIyLCBNU1JfUDRf > RkxBTUVfQ0NDUjIgfSwKKwl7IENUUl9JUV81LCAgICBNU1JfUDRfSVFfUEVSRkNUUjUsICAgIE1T > Ul9QNF9JUV9DQ0NSNSB9Cit9OworCisjZGVmaW5lIE5VTV9VTlVTRURfQ0NDUlMJTlVNX0NDQ1JT > X05PTl9IVCAtIE5VTV9DT1VOVEVSU19OT05fSFQKKworLyogQWxsIGNjY3Igd2UgZG9uJ3QgdXNl > LiAqLworc3RhdGljIGludCBwNF91bnVzZWRfY2NjcltOVU1fVU5VU0VEX0NDQ1JTXSA9IHsKKwlN > U1JfUDRfQlBVX0NDQ1IxLAlNU1JfUDRfQlBVX0NDQ1IzLAorCU1TUl9QNF9NU19DQ0NSMSwJTVNS > X1A0X01TX0NDQ1IzLAorCU1TUl9QNF9GTEFNRV9DQ0NSMSwJTVNSX1A0X0ZMQU1FX0NDQ1IzLAor > CU1TUl9QNF9JUV9DQ0NSMCwJTVNSX1A0X0lRX0NDQ1IxLAorCU1TUl9QNF9JUV9DQ0NSMiwJTVNS > X1A0X0lRX0NDQ1IzCit9OworCisvKiBwNCBldmVudCBjb2RlcyBpbiBsaWJvcC9vcF9ldmVudC5o > IGFyZSBpbmRpY2VzIGludG8gdGhpcyB0YWJsZS4gKi8KKworc3RhdGljIHN0cnVjdCBwNF9ldmVu > dF9iaW5kaW5nIHA0X2V2ZW50c1tOVU1fRVZFTlRTXSA9IHsKKwkKKwl7IC8qIEJSQU5DSF9SRVRJ > UkVEICovCisJCTB4MDUsIDB4MDYsIAorCQl7IHtDVFJfSVFfNCwgTVNSX1A0X0NSVV9FU0NSMn0s > CisJCSAge0NUUl9JUV81LCBNU1JfUDRfQ1JVX0VTQ1IzfSB9CisJfSwKKwkKKwl7IC8qIE1JU1BS > RURfQlJBTkNIX1JFVElSRUQgKi8KKwkJMHgwNCwgMHgwMywgCisJCXsgeyBDVFJfSVFfNCwgTVNS > X1A0X0NSVV9FU0NSMH0sCisJCSAgeyBDVFJfSVFfNSwgTVNSX1A0X0NSVV9FU0NSMX0gfQorCX0s > CisJCisJeyAvKiBUQ19ERUxJVkVSX01PREUgKi8KKwkJMHgwMSwgMHgwMSwKKwkJeyB7IENUUl9N > U18wLCBNU1JfUDRfVENfRVNDUjB9LCAgCisJCSAgeyBDVFJfTVNfMiwgTVNSX1A0X1RDX0VTQ1Ix > fSB9CisJfSwKKwkKKwl7IC8qIEJQVV9GRVRDSF9SRVFVRVNUICovCisJCTB4MDAsIDB4MDMsIAor > CQl7IHsgQ1RSX0JQVV8wLCBNU1JfUDRfQlBVX0VTQ1IwfSwKKwkJICB7IENUUl9CUFVfMiwgTVNS > X1A0X0JQVV9FU0NSMX0gfQorCX0sCisKKwl7IC8qIElUTEJfUkVGRVJFTkNFICovCisJCTB4MDMs > IDB4MTgsCisJCXsgeyBDVFJfQlBVXzAsIE1TUl9QNF9JVExCX0VTQ1IwfSwKKwkJICB7IENUUl9C > UFVfMiwgTVNSX1A0X0lUTEJfRVNDUjF9IH0KKwl9LAorCisJeyAvKiBNRU1PUllfQ0FOQ0VMICov > CisJCTB4MDUsIDB4MDIsCisJCXsgeyBDVFJfRkxBTUVfMCwgTVNSX1A0X0RBQ19FU0NSMH0sCisJ > CSAgeyBDVFJfRkxBTUVfMiwgTVNSX1A0X0RBQ19FU0NSMX0gfQorCX0sCisKKwl7IC8qIE1FTU9S > WV9DT01QTEVURSAqLworCQkweDAyLCAweDA4LAorCQl7IHsgQ1RSX0ZMQU1FXzAsIE1TUl9QNF9T > QUFUX0VTQ1IwfSwKKwkJICB7IENUUl9GTEFNRV8yLCBNU1JfUDRfU0FBVF9FU0NSMX0gfQorCX0s > CisKKwl7IC8qIExPQURfUE9SVF9SRVBMQVkgKi8KKwkJMHgwMiwgMHgwNCwgCisJCXsgeyBDVFJf > RkxBTUVfMCwgTVNSX1A0X1NBQVRfRVNDUjB9LAorCQkgIHsgQ1RSX0ZMQU1FXzIsIE1TUl9QNF9T > QUFUX0VTQ1IxfSB9CisJfSwKKworCXsgLyogU1RPUkVfUE9SVF9SRVBMQVkgKi8KKwkJMHgwMiwg > MHgwNSwKKwkJeyB7IENUUl9GTEFNRV8wLCBNU1JfUDRfU0FBVF9FU0NSMH0sCisJCSAgeyBDVFJf > RkxBTUVfMiwgTVNSX1A0X1NBQVRfRVNDUjF9IH0KKwl9LAorCisJeyAvKiBNT0JfTE9BRF9SRVBM > QVkgKi8KKwkJMHgwMiwgMHgwMywKKwkJeyB7IENUUl9CUFVfMCwgTVNSX1A0X01PQl9FU0NSMH0s > CisJCSAgeyBDVFJfQlBVXzIsIE1TUl9QNF9NT0JfRVNDUjF9IH0KKwl9LAorCisJeyAvKiBQQUdF > X1dBTEtfVFlQRSAqLworCQkweDA0LCAweDAxLAorCQl7IHsgQ1RSX0JQVV8wLCBNU1JfUDRfUE1I > X0VTQ1IwfSwKKwkJICB7IENUUl9CUFVfMiwgTVNSX1A0X1BNSF9FU0NSMX0gfQorCX0sCisKKwl7 > IC8qIEJTUV9DQUNIRV9SRUZFUkVOQ0UgKi8KKwkJMHgwNywgMHgwYywgCisJCXsgeyBDVFJfQlBV > XzAsIE1TUl9QNF9CU1VfRVNDUjB9LAorCQkgIHsgQ1RSX0JQVV8yLCBNU1JfUDRfQlNVX0VTQ1Ix > fSB9CisJfSwKKworCXsgLyogSU9RX0FMTE9DQVRJT04gKi8KKwkJMHgwNiwgMHgwMywgCisJCXsg > eyBDVFJfQlBVXzAsIE1TUl9QNF9GU0JfRVNDUjB9LAorCQkgIHsgMCwgMCB9IH0KKwl9LAorCisJ > eyAvKiBJT1FfQUNUSVZFX0VOVFJJRVMgKi8KKwkJMHgwNiwgMHgxYSwgCisJCXsgeyBDVFJfQlBV > XzIsIE1TUl9QNF9GU0JfRVNDUjF9LAorCQkgIHsgMCwgMCB9IH0KKwl9LAorCisJeyAvKiBGU0Jf > REFUQV9BQ1RJVklUWSAqLworCQkweDA2LCAweDE3LCAKKwkJeyB7IENUUl9CUFVfMCwgTVNSX1A0 > X0ZTQl9FU0NSMH0sCisJCSAgeyBDVFJfQlBVXzIsIE1TUl9QNF9GU0JfRVNDUjF9IH0KKwl9LAor > CisJeyAvKiBCU1FfQUxMT0NBVElPTiAqLworCQkweDA3LCAweDA1LCAKKwkJeyB7IENUUl9CUFVf > MCwgTVNSX1A0X0JTVV9FU0NSMH0sCisJCSAgeyAwLCAwIH0gfQorCX0sCisKKwl7IC8qIEJTUV9B > Q1RJVkVfRU5UUklFUyAqLworCQkweDA3LCAweDA2LAorCQl7IHsgQ1RSX0JQVV8yLCBNU1JfUDRf > QlNVX0VTQ1IxIC8qIGd1ZXNzICovfSwgIAorCQkgIHsgMCwgMCB9IH0KKwl9LAorCisJeyAvKiBY > ODdfQVNTSVNUICovCisJCTB4MDUsIDB4MDMsIAorCQl7IHsgQ1RSX0lRXzQsIE1TUl9QNF9DUlVf > RVNDUjJ9LAorCQkgIHsgQ1RSX0lRXzUsIE1TUl9QNF9DUlVfRVNDUjN9IH0KKwl9LAorCisJeyAv > KiBTU0VfSU5QVVRfQVNTSVNUICovCisJCTB4MDEsIDB4MzQsCisJCXsgeyBDVFJfRkxBTUVfMCwg > TVNSX1A0X0ZJUk1fRVNDUjB9LAorCQkgIHsgQ1RSX0ZMQU1FXzIsIE1TUl9QNF9GSVJNX0VTQ1Ix > fSB9CisJfSwKKyAgCisJeyAvKiBQQUNLRURfU1BfVU9QICovCisJCTB4MDEsIDB4MDgsIAorCQl7 > IHsgQ1RSX0ZMQU1FXzAsIE1TUl9QNF9GSVJNX0VTQ1IwfSwKKwkJICB7IENUUl9GTEFNRV8yLCBN > U1JfUDRfRklSTV9FU0NSMX0gfQorCX0sCisgIAorCXsgLyogUEFDS0VEX0RQX1VPUCAqLworCQkw > eDAxLCAweDBjLCAKKwkJeyB7IENUUl9GTEFNRV8wLCBNU1JfUDRfRklSTV9FU0NSMH0sCisJCSAg > eyBDVFJfRkxBTUVfMiwgTVNSX1A0X0ZJUk1fRVNDUjF9IH0KKwl9LAorCisJeyAvKiBTQ0FMQVJf > U1BfVU9QICovCisJCTB4MDEsIDB4MGEsIAorCQl7IHsgQ1RSX0ZMQU1FXzAsIE1TUl9QNF9GSVJN > X0VTQ1IwfSwKKwkJICB7IENUUl9GTEFNRV8yLCBNU1JfUDRfRklSTV9FU0NSMX0gfQorCX0sCisK > Kwl7IC8qIFNDQUxBUl9EUF9VT1AgKi8KKwkJMHgwMSwgMHgwZSwKKwkJeyB7IENUUl9GTEFNRV8w > LCBNU1JfUDRfRklSTV9FU0NSMH0sCisJCSAgeyBDVFJfRkxBTUVfMiwgTVNSX1A0X0ZJUk1fRVND > UjF9IH0KKwl9LAorCisJeyAvKiA2NEJJVF9NTVhfVU9QICovCisJCTB4MDEsIDB4MDIsIAorCQl7 > IHsgQ1RSX0ZMQU1FXzAsIE1TUl9QNF9GSVJNX0VTQ1IwfSwKKwkJICB7IENUUl9GTEFNRV8yLCBN > U1JfUDRfRklSTV9FU0NSMX0gfQorCX0sCisgIAorCXsgLyogMTI4QklUX01NWF9VT1AgKi8KKwkJ > MHgwMSwgMHgxYSwgCisJCXsgeyBDVFJfRkxBTUVfMCwgTVNSX1A0X0ZJUk1fRVNDUjB9LAorCQkg > IHsgQ1RSX0ZMQU1FXzIsIE1TUl9QNF9GSVJNX0VTQ1IxfSB9CisJfSwKKworCXsgLyogWDg3X0ZQ > X1VPUCAqLworCQkweDAxLCAweDA0LCAKKwkJeyB7IENUUl9GTEFNRV8wLCBNU1JfUDRfRklSTV9F > U0NSMH0sCisJCSAgeyBDVFJfRkxBTUVfMiwgTVNSX1A0X0ZJUk1fRVNDUjF9IH0KKwl9LAorICAK > Kwl7IC8qIFg4N19TSU1EX01PVkVTX1VPUCAqLworCQkweDAxLCAweDJlLCAKKwkJeyB7IENUUl9G > TEFNRV8wLCBNU1JfUDRfRklSTV9FU0NSMH0sCisJCSAgeyBDVFJfRkxBTUVfMiwgTVNSX1A0X0ZJ > Uk1fRVNDUjF9IH0KKwl9LAorICAKKwl7IC8qIE1BQ0hJTkVfQ0xFQVIgKi8KKwkJMHgwNSwgMHgw > MiwgCisJCXsgeyBDVFJfSVFfNCwgTVNSX1A0X0NSVV9FU0NSMn0sCisJCSAgeyBDVFJfSVFfNSwg > TVNSX1A0X0NSVV9FU0NSM30gfQorCX0sCisKKwl7IC8qIEdMT0JBTF9QT1dFUl9FVkVOVFMgKi8K > KwkJMHgwNiwgMHgxMyAvKiBvbGRlciBtYW51YWwgc2F5cyAweDA1LCBuZXdlciAweDEzICovLAor > CQl7IHsgQ1RSX0JQVV8wLCBNU1JfUDRfRlNCX0VTQ1IwfSwKKwkJICB7IENUUl9CUFVfMiwgTVNS > X1A0X0ZTQl9FU0NSMX0gfQorCX0sCisgIAorCXsgLyogVENfTVNfWEZFUiAqLworCQkweDAwLCAw > eDA1LCAKKwkJeyB7IENUUl9NU18wLCBNU1JfUDRfTVNfRVNDUjB9LAorCQkgIHsgQ1RSX01TXzIs > IE1TUl9QNF9NU19FU0NSMX0gfQorCX0sCisKKwl7IC8qIFVPUF9RVUVVRV9XUklURVMgKi8KKwkJ > MHgwMCwgMHgwOSwKKwkJeyB7IENUUl9NU18wLCBNU1JfUDRfTVNfRVNDUjB9LAorCQkgIHsgQ1RS > X01TXzIsIE1TUl9QNF9NU19FU0NSMX0gfQorCX0sCisKKwl7IC8qIEZST05UX0VORF9FVkVOVCAq > LworCQkweDA1LCAweDA4LAorCQl7IHsgQ1RSX0lRXzQsIE1TUl9QNF9DUlVfRVNDUjJ9LAorCQkg > IHsgQ1RSX0lRXzUsIE1TUl9QNF9DUlVfRVNDUjN9IH0KKwl9LAorCisJeyAvKiBFWEVDVVRJT05f > RVZFTlQgKi8KKwkJMHgwNSwgMHgwYywKKwkJeyB7IENUUl9JUV80LCBNU1JfUDRfQ1JVX0VTQ1Iy > fSwKKwkJICB7IENUUl9JUV81LCBNU1JfUDRfQ1JVX0VTQ1IzfSB9CisJfSwKKworCXsgLyogUkVQ > TEFZX0VWRU5UICovCisJCTB4MDUsIDB4MDksCisJCXsgeyBDVFJfSVFfNCwgTVNSX1A0X0NSVV9F > U0NSMn0sCisJCSAgeyBDVFJfSVFfNSwgTVNSX1A0X0NSVV9FU0NSM30gfQorCX0sCisKKwl7IC8q > IElOU1RSX1JFVElSRUQgKi8KKwkJMHgwNCwgMHgwMiwgCisJCXsgeyBDVFJfSVFfNCwgTVNSX1A0 > X0NSVV9FU0NSMH0sCisJCSAgeyBDVFJfSVFfNSwgTVNSX1A0X0NSVV9FU0NSMX0gfQorCX0sCisK > Kwl7IC8qIFVPUFNfUkVUSVJFRCAqLworCQkweDA0LCAweDAxLAorCQl7IHsgQ1RSX0lRXzQsIE1T > Ul9QNF9DUlVfRVNDUjB9LAorCQkgIHsgQ1RSX0lRXzUsIE1TUl9QNF9DUlVfRVNDUjF9IH0KKwl9 > LAorCisJeyAvKiBVT1BfVFlQRSAqLyAgICAKKwkJMHgwMiwgMHgwMiwgCisJCXsgeyBDVFJfSVFf > NCwgTVNSX1A0X1JBVF9FU0NSMH0sCisJCSAgeyBDVFJfSVFfNSwgTVNSX1A0X1JBVF9FU0NSMX0g > fQorCX0sCisKKwl7IC8qIFJFVElSRURfTUlTUFJFRF9CUkFOQ0hfVFlQRSAqLworCQkweDAyLCAw > eDA1LCAKKwkJeyB7IENUUl9NU18wLCBNU1JfUDRfVEJQVV9FU0NSMH0sCisJCSAgeyBDVFJfTVNf > MiwgTVNSX1A0X1RCUFVfRVNDUjF9IH0KKwl9LAorCisJeyAvKiBSRVRJUkVEX0JSQU5DSF9UWVBF > ICovCisJCTB4MDIsIDB4MDQsCisJCXsgeyBDVFJfTVNfMCwgTVNSX1A0X1RCUFVfRVNDUjB9LAor > CQkgIHsgQ1RSX01TXzIsIE1TUl9QNF9UQlBVX0VTQ1IxfSB9CisJfQorfTsKKworCisjZGVmaW5l > IE1JU0NfUE1DX0VOQUJMRURfUCh4KSAoKHgpICYgMSA8PCA3KQorCisjZGVmaW5lIEVTQ1JfUkVT > RVJWRURfQklUUyAweDgwMDAwMDAzCisjZGVmaW5lIEVTQ1JfQ0xFQVIoZXNjcikgKChlc2NyKSAm > PSBFU0NSX1JFU0VSVkVEX0JJVFMpCisjZGVmaW5lIEVTQ1JfU0VUX1VTUl8wKGVzY3IsIHVzcikg > KChlc2NyKSB8PSAoKCh1c3IpICYgMSkgPDwgMikpCisjZGVmaW5lIEVTQ1JfU0VUX09TXzAoZXNj > ciwgb3MpICgoZXNjcikgfD0gKCgob3MpICYgMSkgPDwgMykpCisjZGVmaW5lIEVTQ1JfU0VUX1VT > Ul8xKGVzY3IsIHVzcikgKChlc2NyKSB8PSAoKCh1c3IpICYgMSkpKQorI2RlZmluZSBFU0NSX1NF > VF9PU18xKGVzY3IsIG9zKSAoKGVzY3IpIHw9ICgoKG9zKSAmIDEpIDw8IDEpKQorI2RlZmluZSBF > U0NSX1NFVF9FVkVOVF9TRUxFQ1QoZXNjciwgc2VsKSAoKGVzY3IpIHw9ICgoKHNlbCkgJiAweDNm > KSA8PCAyNSkpCisjZGVmaW5lIEVTQ1JfU0VUX0VWRU5UX01BU0soZXNjciwgbWFzaykgKChlc2Ny > KSB8PSAoKChtYXNrKSAmIDB4ZmZmZikgPDwgOSkpCisjZGVmaW5lIEVTQ1JfUkVBRChlc2NyLGhp > Z2gsZXYsaSkgZG8ge3JkbXNyKGV2LT5iaW5kaW5nc1soaSldLmVzY3JfYWRkcmVzcywgKGVzY3Ip > LCAoaGlnaCkpO30gd2hpbGUgKDApCisjZGVmaW5lIEVTQ1JfV1JJVEUoZXNjcixoaWdoLGV2LGkp > IGRvIHt3cm1zcihldi0+YmluZGluZ3NbKGkpXS5lc2NyX2FkZHJlc3MsIChlc2NyKSwgKGhpZ2gp > KTt9IHdoaWxlICgwKQorCisjZGVmaW5lIENDQ1JfUkVTRVJWRURfQklUUyAweDM4MDMwRkZGCisj > ZGVmaW5lIENDQ1JfQ0xFQVIoY2NjcikgKChjY2NyKSAmPSBDQ0NSX1JFU0VSVkVEX0JJVFMpCisj > ZGVmaW5lIENDQ1JfU0VUX1JFUVVJUkVEX0JJVFMoY2NjcikgKChjY2NyKSB8PSAweDAwMDMwMDAw > KQorI2RlZmluZSBDQ0NSX1NFVF9FU0NSX1NFTEVDVChjY2NyLCBzZWwpICgoY2NjcikgfD0gKCgo > c2VsKSAmIDB4MDcpIDw8IDEzKSkKKyNkZWZpbmUgQ0NDUl9TRVRfUE1JX09WRl8wKGNjY3IpICgo > Y2NjcikgfD0gKDE8PDI2KSkKKyNkZWZpbmUgQ0NDUl9TRVRfUE1JX09WRl8xKGNjY3IpICgoY2Nj > cikgfD0gKDE8PDI3KSkKKyNkZWZpbmUgQ0NDUl9TRVRfRU5BQkxFKGNjY3IpICgoY2NjcikgfD0g > KDE8PDEyKSkKKyNkZWZpbmUgQ0NDUl9TRVRfRElTQUJMRShjY2NyKSAoKGNjY3IpICY9IH4oMTw8 > MTIpKQorI2RlZmluZSBDQ0NSX1JFQUQobG93LCBoaWdoLCBpKSBkbyB7cmRtc3IocDRfY291bnRl > cnNbKGkpXS5jY2NyX2FkZHJlc3MsIChsb3cpLCAoaGlnaCkpO30gd2hpbGUgKDApCisjZGVmaW5l > IENDQ1JfV1JJVEUobG93LCBoaWdoLCBpKSBkbyB7d3Jtc3IocDRfY291bnRlcnNbKGkpXS5jY2Ny > X2FkZHJlc3MsIChsb3cpLCAoaGlnaCkpO30gd2hpbGUgKDApCisjZGVmaW5lIENDQ1JfT1ZGX1Ao > Y2NjcikgKChjY2NyKSAmICgxVTw8MzEpKQorI2RlZmluZSBDQ0NSX0NMRUFSX09WRihjY2NyKSAo > KGNjY3IpICY9ICh+KDFVPDwzMSkpKQorCisjZGVmaW5lIENUUl9SRUFEKGwsaCxpKSBkbyB7cmRt > c3IocDRfY291bnRlcnNbKGkpXS5jb3VudGVyX2FkZHJlc3MsIChsKSwgKGgpKTt9IHdoaWxlICgw > KQorI2RlZmluZSBDVFJfV1JJVEUobCxpKSBkbyB7d3Jtc3IocDRfY291bnRlcnNbKGkpXS5jb3Vu > dGVyX2FkZHJlc3MsIC0odTMyKShsKSwgLTEpO30gd2hpbGUgKDApCisjZGVmaW5lIENUUl9PVkVS > RkxPV19QKGN0cikgKCEoKGN0cikgJiAweDgwMDAwMDAwKSkKKworCisvKiB0aGlzIGFzc2lnbnMg > YSAic3RhZ2dlciIgdG8gdGhlIGN1cnJlbnQgQ1BVLCB3aGljaCBpcyB1c2VkIHRocm91Z2hvdXQK > KyAgIHRoZSBjb2RlIGluIHRoaXMgbW9kdWxlIGFzIGFuIGV4dHJhIGFycmF5IG9mZnNldCwgdG8g > c2VsZWN0IHRoZSAiZXZlbiIKKyAgIG9yICJvZGQiIHBhcnQgb2YgYWxsIHRoZSBkaXZpZGVkIHJl > c291cmNlcy4gKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X3N0YWdnZXIodm9pZCkKK3sKKyNp > ZmRlZiBDT05GSUdfU01QCisJLyppbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCXJldHVy > biAoY3B1ICE9IGZpcnN0X2NwdShjcHVfc2libGluZ19tYXBbY3B1XSkpOyovCisJLyogV2Ugd2Fu > dCB0aGUgdHdvIGxvZ2ljYWwgY3B1cyBvZiBhIHBoeXNpY2FsIGNwdSB0byB1c2UKKwlkaXNqb2lu > dCBzZXQgb2YgY291bnRlcnMuIFRoZSBmb2xsb3dpbmcgY29kZSBpcyB3cm9uZy4gKi8KKwlyZXR1 > cm4gMDsKKyNlbmRpZgkKKwlyZXR1cm4gMDsKK30KKworCisvKiBmaW5hbGx5LCBtZWRpYXRlIGFj > Y2VzcyB0byBhIHJlYWwgaGFyZHdhcmUgY291bnRlcgorICAgYnkgcGFzc2luZyBhICJ2aXJ0dWFs > IiBjb3VudGVyIG51bWVyIHRvIHRoaXMgbWFjcm8sCisgICBhbG9uZyB3aXRoIHlvdXIgc3RhZ2dl > ciBzZXR0aW5nLiAqLworI2RlZmluZSBWSVJUX0NUUihzdGFnZ2VyLCBpKSAoKGkpICsgKChudW1f > Y291bnRlcnMpICogKHN0YWdnZXIpKSkKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgcmVzZXRfdmFs > dWVbTlVNX0NPVU5URVJTX05PTl9IVF07CisKKworc3RhdGljIHZvaWQgcDRfZmlsbF9pbl9hZGRy > ZXNzZXMoc3RydWN0IG9wX21zcnMgKiBjb25zdCBtc3JzKQoreworCXVuc2lnbmVkIGludCBpOyAK > Kwl1bnNpZ25lZCBpbnQgYWRkciwgc3RhZzsKKworCXNldHVwX251bV9jb3VudGVycygpOworCXN0 > YWcgPSBnZXRfc3RhZ2dlcigpOworCisJLyogdGhlIGNvdW50ZXIgcmVnaXN0ZXJzIHdlIHBheSBh > dHRlbnRpb24gdG8gKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NvdW50ZXJzOyArK2kpIHsKKwkJ > bXNycy0+Y291bnRlcnNbaV0uYWRkciA9IAorCQkJcDRfY291bnRlcnNbVklSVF9DVFIoc3RhZywg > aSldLmNvdW50ZXJfYWRkcmVzczsKKwl9CisKKwkvKiBGSVhNRTogYmFkIGZlZWxpbmcsIHdlIGRv > bid0IHNhdmUgdGhlIDEwIGNvdW50ZXJzIHdlIGRvbid0IHVzZS4gKi8KKworCS8qIDE4IENDQ1Ig > cmVnaXN0ZXJzICovCisJZm9yIChpID0gMCwgYWRkciA9IE1TUl9QNF9CUFVfQ0NDUjAgKyBzdGFn > OworCSAgICAgYWRkciA8PSBNU1JfUDRfSVFfQ0NDUjU7ICsraSwgYWRkciArPSBhZGRyX2luY3Jl > bWVudCgpKSB7CisJCW1zcnMtPmNvbnRyb2xzW2ldLmFkZHIgPSBhZGRyOworCX0KKwkKKwkvKiA0 > MyBFU0NSIHJlZ2lzdGVycyBpbiB0aHJlZSBvciBmb3VyIGRpc2NvbnRpZ3VvdXMgZ3JvdXAgKi8K > Kwlmb3IgKGFkZHIgPSBNU1JfUDRfQlNVX0VTQ1IwICsgc3RhZzsKKwkgICAgIGFkZHIgPCBNU1Jf > UDRfSVFfRVNDUjA7ICsraSwgYWRkciArPSBhZGRyX2luY3JlbWVudCgpKSB7CisJCW1zcnMtPmNv > bnRyb2xzW2ldLmFkZHIgPSBhZGRyOworCX0KKworCS8qIG5vIElRX0VTQ1IwLzEgb24gc29tZSBt > b2RlbHMsIHdlIHNhdmUgYSBzZWNvbmRlIHRpbWUgQlNVX0VTQ1IwLzEKKwkgKiB0byBhdm9pZCBz > cGVjaWFsIGNhc2UgaW4gbm1pX3tzYXZlfHJlc3RvcmV9X3JlZ2lzdGVycygpICovCisJaWYgKGJv > b3RfY3B1X2RhdGEueDg2X21vZGVsID49IDB4MykgeworCQlmb3IgKGFkZHIgPSBNU1JfUDRfQlNV > X0VTQ1IwICsgc3RhZzsKKwkJICAgICBhZGRyIDw9IE1TUl9QNF9CU1VfRVNDUjE7ICsraSwgYWRk > ciArPSBhZGRyX2luY3JlbWVudCgpKSB7CisJCQltc3JzLT5jb250cm9sc1tpXS5hZGRyID0gYWRk > cjsKKwkJfQorCX0gZWxzZSB7CisJCWZvciAoYWRkciA9IE1TUl9QNF9JUV9FU0NSMCArIHN0YWc7 > CisJCSAgICAgYWRkciA8PSBNU1JfUDRfSVFfRVNDUjE7ICsraSwgYWRkciArPSBhZGRyX2luY3Jl > bWVudCgpKSB7CisJCQltc3JzLT5jb250cm9sc1tpXS5hZGRyID0gYWRkcjsKKwkJfQorCX0KKwor > CWZvciAoYWRkciA9IE1TUl9QNF9SQVRfRVNDUjAgKyBzdGFnOworCSAgICAgYWRkciA8PSBNU1Jf > UDRfU1NVX0VTQ1IwOyArK2ksIGFkZHIgKz0gYWRkcl9pbmNyZW1lbnQoKSkgeworCQltc3JzLT5j > b250cm9sc1tpXS5hZGRyID0gYWRkcjsKKwl9CisJCisJZm9yIChhZGRyID0gTVNSX1A0X01TX0VT > Q1IwICsgc3RhZzsKKwkgICAgIGFkZHIgPD0gTVNSX1A0X1RDX0VTQ1IxOyArK2ksIGFkZHIgKz0g > YWRkcl9pbmNyZW1lbnQoKSkgeyAKKwkJbXNycy0+Y29udHJvbHNbaV0uYWRkciA9IGFkZHI7CisJ > fQorCQorCWZvciAoYWRkciA9IE1TUl9QNF9JWF9FU0NSMCArIHN0YWc7CisJICAgICBhZGRyIDw9 > IE1TUl9QNF9DUlVfRVNDUjM7ICsraSwgYWRkciArPSBhZGRyX2luY3JlbWVudCgpKSB7IAorCQlt > c3JzLT5jb250cm9sc1tpXS5hZGRyID0gYWRkcjsKKwl9CisKKwkvKiB0aGVyZSBhcmUgMiByZW1h > aW5pbmcgbm9uLWNvbnRpZ3VvdXNseSBsb2NhdGVkIEVTQ1JzICovCisKKwlpZiAobnVtX2NvdW50 > ZXJzID09IE5VTV9DT1VOVEVSU19OT05fSFQpIHsJCQorCQkvKiBzdGFuZGFyZCBub24tSFQgQ1BV > cyBoYW5kbGUgYm90aCByZW1haW5pbmcgRVNDUnMqLworCQltc3JzLT5jb250cm9sc1tpKytdLmFk > ZHIgPSBNU1JfUDRfQ1JVX0VTQ1I1OworCQltc3JzLT5jb250cm9sc1tpKytdLmFkZHIgPSBNU1Jf > UDRfQ1JVX0VTQ1I0OworCisJfSBlbHNlIGlmIChzdGFnID09IDApIHsKKwkJLyogSFQgQ1BVcyBn > aXZlIHRoZSBmaXJzdCByZW1haW5kZXIgdG8gdGhlIGV2ZW4gdGhyZWFkLCBhcworCQkgICB0aGUg > MzJuZCBjb250cm9sIHJlZ2lzdGVyICovCisJCW1zcnMtPmNvbnRyb2xzW2krK10uYWRkciA9IE1T > Ul9QNF9DUlVfRVNDUjQ7CisKKwl9IGVsc2UgeworCQkvKiBhbmQgdHdvIGNvcGllcyBvZiB0aGUg > c2Vjb25kIHRvIHRoZSBvZGQgdGhyZWFkLAorCQkgICBmb3IgdGhlIDIyc3QgYW5kIDIzbmQgY29u > dHJvbCByZWdpc3RlcnMgKi8KKwkJbXNycy0+Y29udHJvbHNbaSsrXS5hZGRyID0gTVNSX1A0X0NS > VV9FU0NSNTsKKwkJbXNycy0+Y29udHJvbHNbaSsrXS5hZGRyID0gTVNSX1A0X0NSVV9FU0NSNTsK > Kwl9Cit9CisKKworc3RhdGljIHZvaWQgcG1jX3NldHVwX29uZV9wNF9jb3VudGVyKHVuc2lnbmVk > IGludCBjdHIpCit7CisJaW50IGk7CisJaW50IGNvbnN0IG1heGJpbmQgPSAyOworCXVuc2lnbmVk > IGludCBjY2NyID0gMDsKKwl1bnNpZ25lZCBpbnQgZXNjciA9IDA7CisJdW5zaWduZWQgaW50IGhp > Z2ggPSAwOworCXVuc2lnbmVkIGludCBjb3VudGVyX2JpdDsKKwlzdHJ1Y3QgcDRfZXZlbnRfYmlu > ZGluZyAqZXYgPSBOVUxMOworCXVuc2lnbmVkIGludCBzdGFnOworCisJc3RhZyA9IGdldF9zdGFn > Z2VyKCk7CisJCisJLyogY29udmVydCBmcm9tIGNvdW50ZXIgKm51bWJlciogdG8gY291bnRlciAq > Yml0KiAqLworCWNvdW50ZXJfYml0ID0gMSA8PCBWSVJUX0NUUihzdGFnLCBjdHIpOworCQorCS8q > IGZpbmQgb3VyIGV2ZW50IGJpbmRpbmcgc3RydWN0dXJlLiAqLworCWlmIChjb3VudGVyX2NvbmZp > Z1tjdHJdLmV2ZW50IDw9IDAgfHwgY291bnRlcl9jb25maWdbY3RyXS5ldmVudCA+IE5VTV9FVkVO > VFMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSIAorCQkgICAgICAgIm9wcm9maWxlOiBQNCBldmVudCBj > b2RlIDB4JWx4IG91dCBvZiByYW5nZVxuIiwgCisJCSAgICAgICBjb3VudGVyX2NvbmZpZ1tjdHJd > LmV2ZW50KTsKKwkJcmV0dXJuOworCX0KKwkKKwlldiA9ICYocDRfZXZlbnRzW2NvdW50ZXJfY29u > ZmlnW2N0cl0uZXZlbnQgLSAxXSk7CisJCisJZm9yIChpID0gMDsgaSA8IG1heGJpbmQ7IGkrKykg > eworCQlpZiAoZXYtPmJpbmRpbmdzW2ldLnZpcnRfY291bnRlciAmIGNvdW50ZXJfYml0KSB7CisK > KwkJCS8qIG1vZGlmeSBFU0NSICovCisJCQlFU0NSX1JFQUQoZXNjciwgaGlnaCwgZXYsIGkpOwor > CQkJRVNDUl9DTEVBUihlc2NyKTsKKwkJCWlmIChzdGFnID09IDApIHsKKwkJCQlFU0NSX1NFVF9V > U1JfMChlc2NyLCBjb3VudGVyX2NvbmZpZ1tjdHJdLnVzZXIpOworCQkJCUVTQ1JfU0VUX09TXzAo > ZXNjciwgY291bnRlcl9jb25maWdbY3RyXS5rZXJuZWwpOworCQkJfSBlbHNlIHsKKwkJCQlFU0NS > X1NFVF9VU1JfMShlc2NyLCBjb3VudGVyX2NvbmZpZ1tjdHJdLnVzZXIpOworCQkJCUVTQ1JfU0VU > X09TXzEoZXNjciwgY291bnRlcl9jb25maWdbY3RyXS5rZXJuZWwpOworCQkJfQorCQkJRVNDUl9T > RVRfRVZFTlRfU0VMRUNUKGVzY3IsIGV2LT5ldmVudF9zZWxlY3QpOworCQkJRVNDUl9TRVRfRVZF > TlRfTUFTSyhlc2NyLCBjb3VudGVyX2NvbmZpZ1tjdHJdLnVuaXRfbWFzayk7CQkJCisJCQlFU0NS > X1dSSVRFKGVzY3IsIGhpZ2gsIGV2LCBpKTsKKwkJICAgICAgIAorCQkJLyogbW9kaWZ5IENDQ1Ig > Ki8KKwkJCUNDQ1JfUkVBRChjY2NyLCBoaWdoLCBWSVJUX0NUUihzdGFnLCBjdHIpKTsKKwkJCUND > Q1JfQ0xFQVIoY2Njcik7CisJCQlDQ0NSX1NFVF9SRVFVSVJFRF9CSVRTKGNjY3IpOworCQkJQ0ND > Ul9TRVRfRVNDUl9TRUxFQ1QoY2NjciwgZXYtPmVzY3Jfc2VsZWN0KTsKKwkJCWlmIChzdGFnID09 > IDApIHsKKwkJCQlDQ0NSX1NFVF9QTUlfT1ZGXzAoY2Njcik7CisJCQl9IGVsc2UgeworCQkJCUND > Q1JfU0VUX1BNSV9PVkZfMShjY2NyKTsKKwkJCX0KKwkJCUNDQ1JfV1JJVEUoY2NjciwgaGlnaCwg > VklSVF9DVFIoc3RhZywgY3RyKSk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlwcmludGsoS0VS > Tl9FUlIgCisJICAgICAgICJvcHJvZmlsZTogUDQgZXZlbnQgY29kZSAweCVseCBubyBiaW5kaW5n > LCBzdGFnICVkIGN0ciAlZFxuIiwKKwkgICAgICAgY291bnRlcl9jb25maWdbY3RyXS5ldmVudCwg > c3RhZywgY3RyKTsKK30KKworCitzdGF0aWMgdm9pZCBwNF9zZXR1cF9jdHJzKHN0cnVjdCBvcF9t > c3JzIGNvbnN0ICogY29uc3QgbXNycykKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwl1bnNpZ25lZCBp > bnQgbG93LCBoaWdoOworCXVuc2lnbmVkIGludCBhZGRyOworCXVuc2lnbmVkIGludCBzdGFnOwor > CisJc3RhZyA9IGdldF9zdGFnZ2VyKCk7CisKKwlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwg > bG93LCBoaWdoKTsKKwlpZiAoISBNSVNDX1BNQ19FTkFCTEVEX1AobG93KSkgeworCQlwcmludGso > S0VSTl9FUlIgIm9wcm9maWxlOiBQNCBQTUMgbm90IGF2YWlsYWJsZVxuIik7CisJCXJldHVybjsK > Kwl9CisKKwkvKiBjbGVhciB0aGUgY2NjcnMgd2Ugd2lsbCB1c2UgKi8KKwlmb3IgKGkgPSAwIDsg > aSA8IG51bV9jb3VudGVycyA7IGkrKykgeworCQlyZG1zcihwNF9jb3VudGVyc1tWSVJUX0NUUihz > dGFnLCBpKV0uY2Njcl9hZGRyZXNzLCBsb3csIGhpZ2gpOworCQlDQ0NSX0NMRUFSKGxvdyk7CisJ > CUNDQ1JfU0VUX1JFUVVJUkVEX0JJVFMobG93KTsKKwkJd3Jtc3IocDRfY291bnRlcnNbVklSVF9D > VFIoc3RhZywgaSldLmNjY3JfYWRkcmVzcywgbG93LCBoaWdoKTsKKwl9CisKKwkvKiBjbGVhciBj > Y2NycyBvdXRzaWRlIG91ciBjb25jZXJuICovCisJZm9yIChpID0gc3RhZyA7IGkgPCBOVU1fVU5V > U0VEX0NDQ1JTIDsgaSArPSBhZGRyX2luY3JlbWVudCgpKSB7CisJCXJkbXNyKHA0X3VudXNlZF9j > Y2NyW2ldLCBsb3csIGhpZ2gpOworCQlDQ0NSX0NMRUFSKGxvdyk7CisJCUNDQ1JfU0VUX1JFUVVJ > UkVEX0JJVFMobG93KTsKKwkJd3Jtc3IocDRfdW51c2VkX2NjY3JbaV0sIGxvdywgaGlnaCk7CisJ > fQorCisJLyogY2xlYXIgYWxsIGVzY3JzIChpbmNsdWRpbmcgdGhvc2Ugb3V0c2lkZSBvdXIgY29u > Y2VybikgKi8KKwlmb3IgKGFkZHIgPSBNU1JfUDRfQlNVX0VTQ1IwICsgc3RhZzsKKwkgICAgIGFk > ZHIgPCAgTVNSX1A0X0lRX0VTQ1IwOyBhZGRyICs9IGFkZHJfaW5jcmVtZW50KCkpIHsKKwkJd3Jt > c3IoYWRkciwgMCwgMCk7CisJfQorCisJLyogT24gb2xkZXIgbW9kZWxzIGNsZWFyIGFsc28gTVNS > X1A0X0lRX0VTQ1IwLzEgKi8KKwlpZiAoYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPCAweDMpIHsK > KwkJd3Jtc3IoTVNSX1A0X0lRX0VTQ1IwLCAwLCAwKTsKKwkJd3Jtc3IoTVNSX1A0X0lRX0VTQ1Ix > LCAwLCAwKTsKKwl9CisKKwlmb3IgKGFkZHIgPSBNU1JfUDRfUkFUX0VTQ1IwICsgc3RhZzsKKwkg > ICAgIGFkZHIgPD0gTVNSX1A0X1NTVV9FU0NSMDsgKytpLCBhZGRyICs9IGFkZHJfaW5jcmVtZW50 > KCkpIHsKKwkJd3Jtc3IoYWRkciwgMCwgMCk7CisJfQorCQorCWZvciAoYWRkciA9IE1TUl9QNF9N > U19FU0NSMCArIHN0YWc7CisJICAgICBhZGRyIDw9IE1TUl9QNF9UQ19FU0NSMTsgYWRkciArPSBh > ZGRyX2luY3JlbWVudCgpKXsgCisJCXdybXNyKGFkZHIsIDAsIDApOworCX0KKwkKKwlmb3IgKGFk > ZHIgPSBNU1JfUDRfSVhfRVNDUjAgKyBzdGFnOworCSAgICAgYWRkciA8PSBNU1JfUDRfQ1JVX0VT > Q1IzOyBhZGRyICs9IGFkZHJfaW5jcmVtZW50KCkpeyAKKwkJd3Jtc3IoYWRkciwgMCwgMCk7CisJ > fQorCisJaWYgKG51bV9jb3VudGVycyA9PSBOVU1fQ09VTlRFUlNfTk9OX0hUKSB7CQkKKwkJd3Jt > c3IoTVNSX1A0X0NSVV9FU0NSNCwgMCwgMCk7CisJCXdybXNyKE1TUl9QNF9DUlVfRVNDUjUsIDAs > IDApOworCX0gZWxzZSBpZiAoc3RhZyA9PSAwKSB7CisJCXdybXNyKE1TUl9QNF9DUlVfRVNDUjQs > IDAsIDApOworCX0gZWxzZSB7CisJCXdybXNyKE1TUl9QNF9DUlVfRVNDUjUsIDAsIDApOworCX0J > CQorCQorCS8qIHNldHVwIGFsbCBjb3VudGVycyAqLworCWZvciAoaSA9IDAgOyBpIDwgbnVtX2Nv > dW50ZXJzIDsgKytpKSB7CisJCWlmIChjb3VudGVyX2NvbmZpZ1tpXS5lbmFibGVkKSB7CisJCQly > ZXNldF92YWx1ZVtpXSA9IGNvdW50ZXJfY29uZmlnW2ldLmNvdW50OworCQkJcG1jX3NldHVwX29u > ZV9wNF9jb3VudGVyKGkpOworCQkJQ1RSX1dSSVRFKGNvdW50ZXJfY29uZmlnW2ldLmNvdW50LCBW > SVJUX0NUUihzdGFnLCBpKSk7CisJCX0gZWxzZSB7CisJCQlyZXNldF92YWx1ZVtpXSA9IDA7CisJ > CX0KKwl9Cit9CisKKworZXh0ZXJuIHZvaWQgcG1jX2xvZ19ldmVudChzdHJ1Y3QgZG9tYWluICpk > LCB1bnNpZ25lZCBpbnQgZWlwLCBpbnQgbW9kZSwgaW50IGV2ZW50KTsKK2V4dGVybiBpbnQgaXNf > cHJvZmlsZWQoc3RydWN0IGRvbWFpbiAqIGQpOworZXh0ZXJuIHN0cnVjdCBkb21haW4gKiBwcmlt > YXJ5X3Byb2ZpbGVyOworCitzdGF0aWMgaW50IHA0X2NoZWNrX2N0cnModW5zaWduZWQgaW50IGNv > bnN0IGNwdSwgCisJCQkgIHN0cnVjdCBvcF9tc3JzIGNvbnN0ICogY29uc3QgbXNycywKKwkJCSAg > c3RydWN0IHhlbl9yZWdzICogY29uc3QgcmVncykKK3sKKwl1bnNpZ25lZCBsb25nIGN0ciwgbG93 > LCBoaWdoLCBzdGFnLCByZWFsOworCWludCBpLCBvdmYgPSAwOworCXVuc2lnbmVkIGxvbmcgZWlw > ID0gcmVncy0+ZWlwOworCWludCBtb2RlID0gMDsKKworCWlmIChSSU5HXzEocmVncykpCisJCW1v > ZGUgPSAxOworCWVsc2UgaWYgKFJJTkdfMChyZWdzKSkKKwkJbW9kZSA9IDI7CisKKwlzdGFnID0g > Z2V0X3N0YWdnZXIoKTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1fY291bnRlcnM7ICsraSkgewor > CQlpZiAoIXJlc2V0X3ZhbHVlW2ldKSAKKwkJCWNvbnRpbnVlOworCisJCS8qIAorCQkgKiB0aGVy > ZSBpcyBzb21lIGVjY2VudHJpY2l0eSBpbiB0aGUgaGFyZHdhcmUgd2hpY2gKKwkJICogcmVxdWly > ZXMgdGhhdCB3ZSBwZXJmb3JtIDIgZXh0cmEgY29ycmVjdGlvbnM6CisJCSAqCisJCSAqIC0gY2hl > Y2sgYm90aCB0aGUgQ0NDUjpPVkYgZmxhZyBmb3Igb3ZlcmZsb3cgYW5kIHRoZQorCQkgKiAgIGNv > dW50ZXIgaGlnaCBiaXQgZm9yIHVuLWZsYWdnZWQgb3ZlcmZsb3dzLgorCQkgKgorCQkgKiAtIHdy > aXRlIHRoZSBjb3VudGVyIGJhY2sgdHdpY2UgdG8gZW5zdXJlIGl0IGdldHMKKwkJICogICB1cGRh > dGVkIHByb3Blcmx5LgorCQkgKiAKKwkJICogdGhlIGZvcm1lciBzZWVtcyB0byBiZSByZWxhdGVk > IHRvIGV4dHJhIE5NSXMgaGFwcGVuaW5nCisJCSAqIGR1cmluZyB0aGUgY3VycmVudCBOTUk7IHRo > ZSBsYXR0ZXIgaXMgcmVwb3J0ZWQgYXMgZXJyYXRhCisJCSAqIE4xNSBpbiBpbnRlbCBkb2MgMjQ5 > MTk5LTAyOSwgcGVudGl1bSA0IHNwZWNpZmljYXRpb24KKwkJICogdXBkYXRlLCB0aG91Z2ggdGhl > aXIgc3VnZ2VzdGVkIHdvcmstYXJvdW5kIGRvZXMgbm90CisJCSAqIGFwcGVhciB0byBzb2x2ZSB0 > aGUgcHJvYmxlbS4KKwkJICovCisJCQorCQlyZWFsID0gVklSVF9DVFIoc3RhZywgaSk7CisKKwkJ > Q0NDUl9SRUFEKGxvdywgaGlnaCwgcmVhbCk7CisgCQlDVFJfUkVBRChjdHIsIGhpZ2gsIHJlYWwp > OworCQlpZiAoQ0NDUl9PVkZfUChsb3cpIHx8IENUUl9PVkVSRkxPV19QKGN0cikpIHsKKwkJCXBt > Y19sb2dfZXZlbnQoY3VycmVudCwgZWlwLCBtb2RlLCBpKTsKKyAJCQlDVFJfV1JJVEUocmVzZXRf > dmFsdWVbaV0sIHJlYWwpOworCQkJQ0NDUl9DTEVBUl9PVkYobG93KTsKKwkJCUNDQ1JfV1JJVEUo > bG93LCBoaWdoLCByZWFsKTsKKyAJCQlDVFJfV1JJVEUocmVzZXRfdmFsdWVbaV0sIHJlYWwpOwor > CQkJb3ZmID0gMTsKKwkJfQorCX0KKworCS8qIFA0IHF1aXJrOiB5b3UgaGF2ZSB0byByZS11bm1h > c2sgdGhlIGFwaWMgdmVjdG9yICovCisJYXBpY193cml0ZShBUElDX0xWVFBDLCBhcGljX3JlYWQo > QVBJQ19MVlRQQykgJiB+QVBJQ19MVlRfTUFTS0VEKTsKKworCS8qIFNlZSBvcF9tb2RlbF9wcHJv > LmMgKi8KKwlyZXR1cm4gb3ZmOworfQorCisKK3N0YXRpYyB2b2lkIHA0X3N0YXJ0KHN0cnVjdCBv > cF9tc3JzIGNvbnN0ICogY29uc3QgbXNycykKK3sKKwl1bnNpZ25lZCBpbnQgbG93LCBoaWdoLCBz > dGFnOworCWludCBpOworCisJc3RhZyA9IGdldF9zdGFnZ2VyKCk7CisKKwlmb3IgKGkgPSAwOyBp > IDwgbnVtX2NvdW50ZXJzOyArK2kpIHsKKwkJaWYgKCFyZXNldF92YWx1ZVtpXSkKKwkJCWNvbnRp > bnVlOworCQlDQ0NSX1JFQUQobG93LCBoaWdoLCBWSVJUX0NUUihzdGFnLCBpKSk7CisJCUNDQ1Jf > U0VUX0VOQUJMRShsb3cpOworCQlDQ0NSX1dSSVRFKGxvdywgaGlnaCwgVklSVF9DVFIoc3RhZywg > aSkpOworCX0KK30KKworCitzdGF0aWMgdm9pZCBwNF9zdG9wKHN0cnVjdCBvcF9tc3JzIGNvbnN0 > ICogY29uc3QgbXNycykKK3sKKwl1bnNpZ25lZCBpbnQgbG93LCBoaWdoLCBzdGFnOworCWludCBp > OworCisJc3RhZyA9IGdldF9zdGFnZ2VyKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NvdW50 > ZXJzOyArK2kpIHsKKwkJQ0NDUl9SRUFEKGxvdywgaGlnaCwgVklSVF9DVFIoc3RhZywgaSkpOwor > CQlDQ0NSX1NFVF9ESVNBQkxFKGxvdyk7CisJCUNDQ1JfV1JJVEUobG93LCBoaWdoLCBWSVJUX0NU > UihzdGFnLCBpKSk7CisJfQorfQorCisKKyNpZmRlZiBDT05GSUdfU01QCitzdHJ1Y3Qgb3BfeDg2 > X21vZGVsX3NwZWMgY29uc3Qgb3BfcDRfaHQyX3NwZWMgPSB7CisJLm51bV9jb3VudGVycyA9IE5V > TV9DT1VOVEVSU19IVDIsCisJLm51bV9jb250cm9scyA9IE5VTV9DT05UUk9MU19IVDIsCisJLmZp > bGxfaW5fYWRkcmVzc2VzID0gJnA0X2ZpbGxfaW5fYWRkcmVzc2VzLAorCS5zZXR1cF9jdHJzID0g > JnA0X3NldHVwX2N0cnMsCisJLmNoZWNrX2N0cnMgPSAmcDRfY2hlY2tfY3RycywKKwkuc3RhcnQg > PSAmcDRfc3RhcnQsCisJLnN0b3AgPSAmcDRfc3RvcAorfTsKKyNlbmRpZgorCitzdHJ1Y3Qgb3Bf > eDg2X21vZGVsX3NwZWMgY29uc3Qgb3BfcDRfc3BlYyA9IHsKKwkubnVtX2NvdW50ZXJzID0gTlVN > X0NPVU5URVJTX05PTl9IVCwKKwkubnVtX2NvbnRyb2xzID0gTlVNX0NPTlRST0xTX05PTl9IVCwK > KwkuZmlsbF9pbl9hZGRyZXNzZXMgPSAmcDRfZmlsbF9pbl9hZGRyZXNzZXMsCisJLnNldHVwX2N0 > cnMgPSAmcDRfc2V0dXBfY3RycywKKwkuY2hlY2tfY3RycyA9ICZwNF9jaGVja19jdHJzLAorCS5z > dGFydCA9ICZwNF9zdGFydCwKKwkuc3RvcCA9ICZwNF9zdG9wCit9OwpkaWZmIC1QTmF1ciB4ZW4t > Mi4wLjUveGVuL2FyY2gveDg2L29wcm9maWxlL29wX21vZGVsX3Bwcm8uYyB4ZW4tMi4wLjUtcHJv > Zi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfbW9kZWxfcHByby5jCi0tLSB4ZW4tMi4wLjUveGVu > L2FyY2gveDg2L29wcm9maWxlL29wX21vZGVsX3Bwcm8uYwkxOTY5LTEyLTMxIDE2OjAwOjAwLjAw > MDAwMDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2FyY2gveDg2L29wcm9maWxlL29w > X21vZGVsX3Bwcm8uYwkyMDA1LTA0LTA2IDA5OjI3OjEzLjAwMDAwMDAwMCAtMDcwMApAQCAtMCww > ICsxLDE2NiBAQAorLyoqCisgKiBAZmlsZSBvcF9tb2RlbF9wcHJvLmgKKyAqIHBlbnRpdW0gcHJv > IC8gUDYgbW9kZWwtc3BlY2lmaWMgTVNSIG9wZXJhdGlvbnMKKyAqCisgKiBAcmVtYXJrIENvcHly > aWdodCAyMDAyIE9Qcm9maWxlIGF1dGhvcnMKKyAqIEByZW1hcmsgUmVhZCB0aGUgZmlsZSBDT1BZ > SU5HCisgKgorICogQGF1dGhvciBKb2huIExldm9uCisgKiBAYXV0aG9yIFBoaWxpcHBlIEVsaWUK > KyAqIEBhdXRob3IgR3JheWRvbiBIb2FyZQorICoKKyAqIE1vZGlmaWVkIGJ5IEFyYXZpbmQgTWVu > b24gZm9yIFhlbgorICogVGhlc2UgbW9kaWZpY2F0aW9ucyBhcmU6CisgKiBDb3B5cmlnaHQgKEMp > IDIwMDUgSGV3bGV0dC1QYWNrYXJkIENvLgorICovCisKKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4K > KyNpbmNsdWRlIDxhc20vbXNyLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNt > L2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8eGVuL3NjaGVk > Lmg+CisgCisjaW5jbHVkZSAib3BfeDg2X21vZGVsLmgiCisjaW5jbHVkZSAib3BfY291bnRlci5o > IgorCisjZGVmaW5lIE5VTV9DT1VOVEVSUyAyCisjZGVmaW5lIE5VTV9DT05UUk9MUyAyCisKKyNk > ZWZpbmUgQ1RSX1JFQUQobCxoLG1zcnMsYykgZG8ge3JkbXNyKG1zcnMtPmNvdW50ZXJzWyhjKV0u > YWRkciwgKGwpLCAoaCkpO30gd2hpbGUgKDApCisjZGVmaW5lIENUUl9XUklURShsLG1zcnMsYykg > ZG8ge3dybXNyKG1zcnMtPmNvdW50ZXJzWyhjKV0uYWRkciwgLSh1MzIpKGwpLCAtMSk7fSB3aGls > ZSAoMCkKKyNkZWZpbmUgQ1RSX09WRVJGTE9XRUQobikgKCEoKG4pICYgKDFVPDwzMSkpKQorCisj > ZGVmaW5lIENUUkxfUkVBRChsLGgsbXNycyxjKSBkbyB7cmRtc3IoKG1zcnMtPmNvbnRyb2xzWyhj > KV0uYWRkciksIChsKSwgKGgpKTt9IHdoaWxlICgwKQorI2RlZmluZSBDVFJMX1dSSVRFKGwsaCxt > c3JzLGMpIGRvIHt3cm1zcigobXNycy0+Y29udHJvbHNbKGMpXS5hZGRyKSwgKGwpLCAoaCkpO30g > d2hpbGUgKDApCisjZGVmaW5lIENUUkxfU0VUX0FDVElWRShuKSAobiB8PSAoMTw8MjIpKQorI2Rl > ZmluZSBDVFJMX1NFVF9JTkFDVElWRShuKSAobiAmPSB+KDE8PDIyKSkKKyNkZWZpbmUgQ1RSTF9D > TEVBUih4KSAoeCAmPSAoMTw8MjEpKQorI2RlZmluZSBDVFJMX1NFVF9FTkFCTEUodmFsKSAodmFs > IHw9IDE8PDIwKQorI2RlZmluZSBDVFJMX1NFVF9VU1IodmFsLHUpICh2YWwgfD0gKCh1ICYgMSkg > PDwgMTYpKQorI2RlZmluZSBDVFJMX1NFVF9LRVJOKHZhbCxrKSAodmFsIHw9ICgoayAmIDEpIDw8 > IDE3KSkKKyNkZWZpbmUgQ1RSTF9TRVRfVU0odmFsLCBtKSAodmFsIHw9IChtIDw8IDgpKQorI2Rl > ZmluZSBDVFJMX1NFVF9FVkVOVCh2YWwsIGUpICh2YWwgfD0gZSkKKworc3RhdGljIHVuc2lnbmVk > IGxvbmcgcmVzZXRfdmFsdWVbTlVNX0NPVU5URVJTXTsKKyAKK3N0YXRpYyB2b2lkIHBwcm9fZmls > bF9pbl9hZGRyZXNzZXMoc3RydWN0IG9wX21zcnMgKiBjb25zdCBtc3JzKQoreworCW1zcnMtPmNv > dW50ZXJzWzBdLmFkZHIgPSBNU1JfUDZfUEVSRkNUUjA7CisJbXNycy0+Y291bnRlcnNbMV0uYWRk > ciA9IE1TUl9QNl9QRVJGQ1RSMTsKKwkKKwltc3JzLT5jb250cm9sc1swXS5hZGRyID0gTVNSX1A2 > X0VWTlRTRUwwOworCW1zcnMtPmNvbnRyb2xzWzFdLmFkZHIgPSBNU1JfUDZfRVZOVFNFTDE7Cit9 > CisKKworc3RhdGljIHZvaWQgcHByb19zZXR1cF9jdHJzKHN0cnVjdCBvcF9tc3JzIGNvbnN0ICog > Y29uc3QgbXNycykKK3sKKwl1bnNpZ25lZCBpbnQgbG93LCBoaWdoOworCWludCBpOworCisJLyog > Y2xlYXIgYWxsIGNvdW50ZXJzICovCisJZm9yIChpID0gMCA7IGkgPCBOVU1fQ09OVFJPTFM7ICsr > aSkgeworCQlDVFJMX1JFQUQobG93LCBoaWdoLCBtc3JzLCBpKTsKKwkJQ1RSTF9DTEVBUihsb3cp > OworCQlDVFJMX1dSSVRFKGxvdywgaGlnaCwgbXNycywgaSk7CisJfQorCQorCS8qIGF2b2lkIGEg > ZmFsc2UgZGV0ZWN0aW9uIG9mIGN0ciBvdmVyZmxvd3MgaW4gTk1JIGhhbmRsZXIgKi8KKwlmb3Ig > KGkgPSAwOyBpIDwgTlVNX0NPVU5URVJTOyArK2kpIHsKKwkJQ1RSX1dSSVRFKDEsIG1zcnMsIGkp > OworCX0KKworCS8qIGVuYWJsZSBhY3RpdmUgY291bnRlcnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwg > TlVNX0NPVU5URVJTOyArK2kpIHsKKwkJaWYgKGNvdW50ZXJfY29uZmlnW2ldLmVuYWJsZWQpIHsK > KwkJCXJlc2V0X3ZhbHVlW2ldID0gY291bnRlcl9jb25maWdbaV0uY291bnQ7CisKKwkJCUNUUl9X > UklURShjb3VudGVyX2NvbmZpZ1tpXS5jb3VudCwgbXNycywgaSk7CisKKwkJCUNUUkxfUkVBRChs > b3csIGhpZ2gsIG1zcnMsIGkpOworCQkJQ1RSTF9DTEVBUihsb3cpOworCQkJQ1RSTF9TRVRfRU5B > QkxFKGxvdyk7CisJCQlDVFJMX1NFVF9VU1IobG93LCBjb3VudGVyX2NvbmZpZ1tpXS51c2VyKTsK > KwkJCUNUUkxfU0VUX0tFUk4obG93LCBjb3VudGVyX2NvbmZpZ1tpXS5rZXJuZWwpOworCQkJQ1RS > TF9TRVRfVU0obG93LCBjb3VudGVyX2NvbmZpZ1tpXS51bml0X21hc2spOworCQkJQ1RSTF9TRVRf > RVZFTlQobG93LCBjb3VudGVyX2NvbmZpZ1tpXS5ldmVudCk7CisJCQlDVFJMX1dSSVRFKGxvdywg > aGlnaCwgbXNycywgaSk7CisJCX0KKwl9Cit9CisKK2V4dGVybiB2b2lkIHBtY19sb2dfZXZlbnQo > c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGVpcCwgaW50IG1vZGUsIGludCBldmVudCk7 > CitleHRlcm4gaW50IGlzX3Byb2ZpbGVkKHN0cnVjdCBkb21haW4gKiBkKTsKK2V4dGVybiBzdHJ1 > Y3QgZG9tYWluICogcHJpbWFyeV9wcm9maWxlcjsKKworc3RhdGljIGludCBwcHJvX2NoZWNrX2N0 > cnModW5zaWduZWQgaW50IGNvbnN0IGNwdSwgCisJCQkgICAgc3RydWN0IG9wX21zcnMgY29uc3Qg > KiBjb25zdCBtc3JzLAorCQkJICAgIHN0cnVjdCB4ZW5fcmVncyAqIGNvbnN0IHJlZ3MpCit7CisJ > dW5zaWduZWQgaW50IGxvdywgaGlnaDsKKwlpbnQgaSwgb3ZmID0gMDsKKwl1bnNpZ25lZCBsb25n > IGVpcCA9IHJlZ3MtPmVpcDsKKwlpbnQgbW9kZSA9IDA7CisKKwlpZiAoUklOR18xKHJlZ3MpKSAK > KwkJbW9kZSA9IDE7CisJZWxzZSBpZiAoUklOR18wKHJlZ3MpKQorCQltb2RlID0gMjsKKworCWZv > ciAoaSA9IDAgOyBpIDwgTlVNX0NPVU5URVJTOyArK2kpIHsKKwkJQ1RSX1JFQUQobG93LCBoaWdo > LCBtc3JzLCBpKTsKKwkJaWYgKENUUl9PVkVSRkxPV0VEKGxvdykpIHsKKwkJCXBtY19sb2dfZXZl > bnQoY3VycmVudCwgZWlwLCBtb2RlLCBpKTsKKwkJCUNUUl9XUklURShyZXNldF92YWx1ZVtpXSwg > bXNycywgaSk7CisJCQlvdmYgPSAxOworCQl9CisJfQorCisJLyogT25seSBQNiBiYXNlZCBQZW50 > aXVtIE0gbmVlZCB0byByZS11bm1hc2sgdGhlIGFwaWMgdmVjdG9yIGJ1dCBpdAorCSAqIGRvZXNu > J3QgaHVydCBvdGhlciBQNiB2YXJpYW50ICovCisJYXBpY193cml0ZShBUElDX0xWVFBDLCBhcGlj > X3JlYWQoQVBJQ19MVlRQQykgJiB+QVBJQ19MVlRfTUFTS0VEKTsKKworCS8qIFdlIGNhbid0IHdv > cmsgb3V0IGlmIHdlIHJlYWxseSBoYW5kbGVkIGFuIGludGVycnVwdC4gV2UKKwkgKiBtaWdodCBo > YXZlIGNhdWdodCBhICpzZWNvbmQqIGNvdW50ZXIganVzdCBhZnRlciBvdmVyZmxvd2luZworCSAq > IHRoZSBpbnRlcnJ1cHQgZm9yIHRoaXMgY291bnRlciB0aGVuIGFycml2ZXMKKwkgKiBhbmQgd2Ug > ZG9uJ3QgZmluZCBhIGNvdW50ZXIgdGhhdCdzIG92ZXJmbG93ZWQsIHNvIHdlCisJICogd291bGQg > cmV0dXJuIDAgYW5kIGdldCBkYXplZCArIGNvbmZ1c2VkLiBJbnN0ZWFkIHdlIGFsd2F5cworCSAq > IGFzc3VtZSB3ZSBmb3VuZCBhbiBvdmVyZmxvdy4gVGhpcyBzdWNrcy4KKwkgKi8KKwlyZXR1cm4g > b3ZmOworfQorCisgCitzdGF0aWMgdm9pZCBwcHJvX3N0YXJ0KHN0cnVjdCBvcF9tc3JzIGNvbnN0 > ICogY29uc3QgbXNycykKK3sKKwl1bnNpZ25lZCBpbnQgbG93LGhpZ2g7CisJQ1RSTF9SRUFEKGxv > dywgaGlnaCwgbXNycywgMCk7CisJQ1RSTF9TRVRfQUNUSVZFKGxvdyk7CisJQ1RSTF9XUklURShs > b3csIGhpZ2gsIG1zcnMsIDApOworfQorCitzdGF0aWMgdm9pZCBwcHJvX3N0b3Aoc3RydWN0IG9w > X21zcnMgY29uc3QgKiBjb25zdCBtc3JzKQoreworCXVuc2lnbmVkIGludCBsb3csaGlnaDsKKwlD > VFJMX1JFQUQobG93LCBoaWdoLCBtc3JzLCAwKTsKKwlDVFJMX1NFVF9JTkFDVElWRShsb3cpOwor > CUNUUkxfV1JJVEUobG93LCBoaWdoLCBtc3JzLCAwKTsKK30KKwordW5zaWduZWQgaW50IHJlYWRf > Y3RyKHN0cnVjdCBvcF9tc3JzIGNvbnN0ICogY29uc3QgbXNycywgaW50IGkpCit7CisJdW5zaWdu > ZWQgaW50IGxvdywgaGlnaDsKKwlDVFJfUkVBRChsb3csIGhpZ2gsIG1zcnMsIGkpOworCXJldHVy > biBsb3c7Cit9CisKK3N0cnVjdCBvcF94ODZfbW9kZWxfc3BlYyBjb25zdCBvcF9wcHJvX3NwZWMg > PSB7CisJLm51bV9jb3VudGVycyA9IE5VTV9DT1VOVEVSUywKKwkubnVtX2NvbnRyb2xzID0gTlVN > X0NPTlRST0xTLAorCS5maWxsX2luX2FkZHJlc3NlcyA9ICZwcHJvX2ZpbGxfaW5fYWRkcmVzc2Vz > LAorCS5zZXR1cF9jdHJzID0gJnBwcm9fc2V0dXBfY3RycywKKwkuY2hlY2tfY3RycyA9ICZwcHJv > X2NoZWNrX2N0cnMsCisJLnN0YXJ0ID0gJnBwcm9fc3RhcnQsCisJLnN0b3AgPSAmcHByb19zdG9w > Cit9OwpkaWZmIC1QTmF1ciB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L29wcm9maWxlL29wX3g4Nl9t > b2RlbC5oIHhlbi0yLjAuNS1wcm9mL3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9vcF94ODZfbW9kZWwu > aAotLS0geGVuLTIuMC41L3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9vcF94ODZfbW9kZWwuaAkxOTY5 > LTEyLTMxIDE2OjAwOjAwLjAwMDAwMDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2Fy > Y2gveDg2L29wcm9maWxlL29wX3g4Nl9tb2RlbC5oCTIwMDUtMDQtMDYgMDk6Mjc6MTMuMDAwMDAw > MDAwIC0wNzAwCkBAIC0wLDAgKzEsNTUgQEAKKy8qKgorICogQGZpbGUgb3BfeDg2X21vZGVsLmgK > KyAqIGludGVyZmFjZSB0byB4ODYgbW9kZWwtc3BlY2lmaWMgTVNSIG9wZXJhdGlvbnMKKyAqCisg > KiBAcmVtYXJrIENvcHlyaWdodCAyMDAyIE9Qcm9maWxlIGF1dGhvcnMKKyAqIEByZW1hcmsgUmVh > ZCB0aGUgZmlsZSBDT1BZSU5HCisgKgorICogQGF1dGhvciBHcmF5ZG9uIEhvYXJlCisgKgorICog > TW9kaWZpZWQgYnkgQXJhdmluZCBNZW5vbiBmb3IgWGVuCisgKiBUaGVzZSBtb2RpZmljYXRpb25z > IGFyZToKKyAqIENvcHlyaWdodCAoQykgMjAwNSBIZXdsZXR0LVBhY2thcmQgQ28uCisgKi8KKwor > I2lmbmRlZiBPUF9YODZfTU9ERUxfSAorI2RlZmluZSBPUF9YODZfTU9ERUxfSAorCitzdHJ1Y3Qg > b3Bfc2F2ZWRfbXNyIHsKKwl1bnNpZ25lZCBpbnQgaGlnaDsKKwl1bnNpZ25lZCBpbnQgbG93Owor > fTsKKworc3RydWN0IG9wX21zciB7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCXN0cnVjdCBvcF9z > YXZlZF9tc3Igc2F2ZWQ7Cit9OworCitzdHJ1Y3Qgb3BfbXNycyB7CisJc3RydWN0IG9wX21zciAq > IGNvdW50ZXJzOworCXN0cnVjdCBvcF9tc3IgKiBjb250cm9sczsKK307CisKK3N0cnVjdCBwdF9y > ZWdzOworCisvKiBUaGUgbW9kZWwgdnRhYmxlIGFic3RyYWN0cyB0aGUgZGlmZmVyZW5jZXMgYmV0 > d2VlbgorICogdmFyaW91cyB4ODYgQ1BVIG1vZGVsJ3MgcGVyZmN0ciBzdXBwb3J0LgorICovCitz > dHJ1Y3Qgb3BfeDg2X21vZGVsX3NwZWMgeworCXVuc2lnbmVkIGludCBjb25zdCBudW1fY291bnRl > cnM7CisJdW5zaWduZWQgaW50IGNvbnN0IG51bV9jb250cm9sczsKKwl2b2lkICgqZmlsbF9pbl9h > ZGRyZXNzZXMpKHN0cnVjdCBvcF9tc3JzICogY29uc3QgbXNycyk7CisJdm9pZCAoKnNldHVwX2N0 > cnMpKHN0cnVjdCBvcF9tc3JzIGNvbnN0ICogY29uc3QgbXNycyk7CisJaW50ICgqY2hlY2tfY3Ry > cykodW5zaWduZWQgaW50IGNvbnN0IGNwdSwgCisJCXN0cnVjdCBvcF9tc3JzIGNvbnN0ICogY29u > c3QgbXNycywKKwkJc3RydWN0IHhlbl9yZWdzICogY29uc3QgcmVncyk7CisJdm9pZCAoKnN0YXJ0 > KShzdHJ1Y3Qgb3BfbXNycyBjb25zdCAqIGNvbnN0IG1zcnMpOworCXZvaWQgKCpzdG9wKShzdHJ1 > Y3Qgb3BfbXNycyBjb25zdCAqIGNvbnN0IG1zcnMpOworfTsKKworZXh0ZXJuIHN0cnVjdCBvcF94 > ODZfbW9kZWxfc3BlYyBjb25zdCBvcF9wcHJvX3NwZWM7CitleHRlcm4gc3RydWN0IG9wX3g4Nl9t > b2RlbF9zcGVjIGNvbnN0IG9wX3A0X3NwZWM7CitleHRlcm4gc3RydWN0IG9wX3g4Nl9tb2RlbF9z > cGVjIGNvbnN0IG9wX3A0X2h0Ml9zcGVjOworZXh0ZXJuIHN0cnVjdCBvcF94ODZfbW9kZWxfc3Bl > YyBjb25zdCBvcF9hdGhsb25fc3BlYzsKKworI2VuZGlmIC8qIE9QX1g4Nl9NT0RFTF9IICovCmRp > ZmYgLVBOYXVyIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvcG1jLmMgeGVuLTIuMC41 > LXByb2YveGVuL2FyY2gveDg2L29wcm9maWxlL3BtYy5jCi0tLSB4ZW4tMi4wLjUveGVuL2FyY2gv > eDg2L29wcm9maWxlL3BtYy5jCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisr > KyB4ZW4tMi4wLjUtcHJvZi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvcG1jLmMJMjAwNS0wNC0wNiAw > OToyNzoxMy4wMDAwMDAwMDAgLTA3MDAKQEAgLTAsMCArMSwyODEgQEAKKy8qCisgKiBDb3B5cmln > aHQgKEMpIDIwMDUgSGV3bGV0dC1QYWNrYXJkIENvLgorICogd3JpdHRlbiBieSBBcmF2aW5kIE1l > bm9uLCBlbWFpbDogeGVub3Byb2ZAZ3JvdXBzLmhwLmNvbQorICovCisKKyNpbmNsdWRlIDx4ZW4v > c2NoZWQuaD4KKworI2luY2x1ZGUgIm9wX2NvdW50ZXIuaCIKKworaW50IGFjdGl2ZV9kb21haW5z > W01BWF9PUFJPRl9ET01BSU5TXTsKK2ludCBwYXNzaXZlX2RvbWFpbnNbTUFYX09QUk9GX0RPTUFJ > TlNdOwordW5zaWduZWQgaW50IGFkb21haW5zID0gMDsKK3Vuc2lnbmVkIGludCBwZG9tYWlucyA9 > IDA7Cit1bnNpZ25lZCBpbnQgYWN0aXZhdGVkID0gMDsKKworI2RlZmluZSBWSVJRX0JJVE1BU0tf > U0laRQkoTUFYX09QUk9GX0RPTUFJTlMvMzIgKyAxKQorCitzdHJ1Y3QgZG9tYWluICogcHJpbWFy > eV9wcm9maWxlciA9IE5VTEw7CitzdHJ1Y3QgZG9tYWluICogYWRvbWFpbl9wdHJzW01BWF9PUFJP > Rl9ET01BSU5TXTsKK3Vuc2lnbmVkIGludCB2aXJxX292Zl9wZW5kaW5nW1ZJUlFfQklUTUFTS19T > SVpFXTsKKworaW50IGlzX2FjdGl2ZShzdHJ1Y3QgZG9tYWluICpkKSAKK3sKKwlpbnQgaTsKKwlm > b3IgKGkgPSAwOyBpIDwgYWRvbWFpbnM7IGkrKykKKwkJaWYgKGQtPmlkID09IGFjdGl2ZV9kb21h > aW5zW2ldKQorCQkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKK2ludCBhY3RpdmVfaWQoc3Ry > dWN0IGRvbWFpbiAqZCkKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRvbWFpbnM7IGkr > KykKKwkJaWYgKGQgPT0gYWRvbWFpbl9wdHJzW2ldKQorCQkJcmV0dXJuIGk7CisJcmV0dXJuIC0x > OworfQorCit2b2lkIGZyZWVfYWRvbWFpbl9wdHJzKCkgCit7CisJaW50IGk7CisJaW50IG51bSA9 > IGFkb21haW5zOworCisJYWRvbWFpbnMgPSAwOworCWZvciAoaSA9IDA7IGkgPCBWSVJRX0JJVE1B > U0tfU0laRTsgaSsrKQorCQl2aXJxX292Zl9wZW5kaW5nW2ldID0gMDsKKworCWZvciAoaSA9IDA7 > IGkgPCBudW07IGkrKykgeworCQlwdXRfZG9tYWluKGFkb21haW5fcHRyc1tpXSk7CisJCWFkb21h > aW5fcHRyc1tpXSA9IE5VTEw7CisJfQorfQorCitpbnQgc2V0X2Fkb21haW5fcHRycyhpbnQgbnVt > KQoreworCWludCBpOworCXN0cnVjdCBkb21haW4gKmQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgVklS > UV9CSVRNQVNLX1NJWkU7IGkrKykKKwkJdmlycV9vdmZfcGVuZGluZ1tpXSA9IDA7CisKKwlmb3Ig > KGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJZCA9IGZpbmRfZG9tYWluX2J5X2lkKGFjdGl2ZV9k > b21haW5zW2ldKTsKKwkJaWYgKCFkKSB7CisJCQlmcmVlX2Fkb21haW5fcHRycygpOworCQkJcmV0 > dXJuIC1FRkFVTFQ7CisJCX0KKwkJYWRvbWFpbl9wdHJzW2ldID0gZDsKKwkJYWRvbWFpbnMrKzsK > Kwl9CisJcmV0dXJuIDA7Cit9CisKK2ludCBzZXRfYWN0aXZlKHN0cnVjdCBkb21haW4gKmQpCit7 > CisJaWYgKGlzX2FjdGl2ZShkKSkKKwkJcmV0dXJuIDA7CisJLyogaGFjayBpZiB3ZSBydW4gb3V0 > IG9mIHNwYWNlICovCisJaWYgKGFkb21haW5zID49IE1BWF9PUFJPRl9ET01BSU5TKSB7CisJCWFk > b21haW5zLS07CisJCXB1dF9kb21haW4oYWRvbWFpbl9wdHJzW2Fkb21haW5zXSk7CisJfQorCWFj > dGl2ZV9kb21haW5zW2Fkb21haW5zXSA9IGQtPmlkOworCWlmIChnZXRfZG9tYWluKGQpKQorCQlh > ZG9tYWluX3B0cnNbYWRvbWFpbnMrK10gPSBkOworCWVsc2UgeworCQlmcmVlX2Fkb21haW5fcHRy > cygpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludCBpc19wYXNz > aXZlKHN0cnVjdCBkb21haW4gKmQpCit7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IHBkb21h > aW5zOyBpKyspCisJCWlmIChkLT5pZCA9PSBwYXNzaXZlX2RvbWFpbnNbaV0pCisJCQlyZXR1cm4g > MTsKKwlyZXR1cm4gMDsKK30KKworaW50IGlzX3Byb2ZpbGVkKHN0cnVjdCBkb21haW4gKmQpCit7 > CisJaWYgKGlzX2FjdGl2ZShkKSB8fCBpc19wYXNzaXZlKGQpKQorCQlyZXR1cm4gMTsKKwlyZXR1 > cm4gMDsKK30KKwordm9pZCBwbWNfbG9nX2V2ZW50KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk > IGludCBlaXAsIGludCBtb2RlLCBpbnQgZXZlbnQpIAoreworCXNoYXJlZF9pbmZvX3QgKnMgPSBO > VUxMOworCXN0cnVjdCBkb21haW4gKmRlc3QgPSBkOworCWludCBoZWFkID0gMDsKKworCWlmICgh > aXNfcHJvZmlsZWQoZCkpCisJCXJldHVybjsKKworCWlmIChpc19wYXNzaXZlKGQpKSB7CisJCWRl > c3QgPSBwcmltYXJ5X3Byb2ZpbGVyOworCQlnb3RvIGxvZ19wYXNzaXZlOworCX0KKwkJCitsb2df > YWN0aXZlOgorCXMgPSBkZXN0LT5zaGFyZWRfaW5mbzsKKworCWhlYWQgPSBzLT5ldmVudF9oZWFk > OworCWlmIChoZWFkID49IE1BWF9PUFJPRl9FVkVOVFMpCisJCWhlYWQgPSAwOworCisJaWYgKHMt > Pmxvc2luZ19zYW1wbGVzKQorCQlzLT5zYW1wbGVzX2xvc3QrKzsKKwlpZiAoaGVhZCA9PSBzLT5l > dmVudF90YWlsIC0gMSB8fCAoaGVhZCA9PSBNQVhfT1BST0ZfRVZFTlRTIC0gMSAmJiBzLT5ldmVu > dF90YWlsID09IDApKQorCQlzLT5sb3Npbmdfc2FtcGxlcyA9IDE7CisKKwlzLT5ldmVudF9sb2db > aGVhZF0uZWlwID0gZWlwOworCXMtPmV2ZW50X2xvZ1toZWFkXS5tb2RlID0gbW9kZTsKKwlzLT5l > dmVudF9sb2dbaGVhZF0uZXZlbnQgPSBldmVudDsKKwloZWFkKys7CisJcy0+ZXZlbnRfaGVhZCA9 > IGhlYWQ7CisJcmV0dXJuOworCitsb2dfcGFzc2l2ZToKKwkvKiBXZSB1c2UgdGhlIGZvbGxvd2lu > ZyBpbmVmZmljaWVudCBmb3JtYXQgZm9yIGxvZ2dpbmcgZXZlbnRzIGZyb20gb3RoZXIKKwkJZG9t > YWlucy4gV2UgcHV0IGEgc3BlY2lhbCByZWNvcmQgaW5kaWNhdGluZyB0aGF0IHRoZSBuZXh0IHJl > Y29yZCBpcworCQlmb3IgYW5vdGhlciBkb21haW4uIFRoaXMgaXMgZG9uZSBmb3IgZWFjaCBzYW1w > bGUgZnJvbSBhbm90aGVyCisJCWRvbWFpbiAqLyAKKwlzID0gZGVzdC0+c2hhcmVkX2luZm87CisK > KwloZWFkID0gcy0+ZXZlbnRfaGVhZDsKKwlpZiAoaGVhZCA+PSBNQVhfT1BST0ZfRVZFTlRTKQor > CQloZWFkID0gMDsKKworCWlmIChzLT5sb3Npbmdfc2FtcGxlcykKKwkJcy0+c2FtcGxlc19sb3N0 > Kys7CisJaWYgKGhlYWQgPT0gcy0+ZXZlbnRfdGFpbCAtIDEgfHwgKGhlYWQgPT0gTUFYX09QUk9G > X0VWRU5UUyAtIDEgJiYgcy0+ZXZlbnRfdGFpbCA9PSAwKSkKKwkJcy0+bG9zaW5nX3NhbXBsZXMg > PSAxOworCisJcy0+ZXZlbnRfbG9nW2hlYWRdLmVpcCA9IH4xVUw7CisJcy0+ZXZlbnRfbG9nW2hl > YWRdLm1vZGUgPSB+MDsKKwlzLT5ldmVudF9sb2dbaGVhZF0uZXZlbnQgPSBkLT5pZDsKKwloZWFk > Kys7CisJcy0+ZXZlbnRfaGVhZCA9IGhlYWQ7CisJZ290byBsb2dfYWN0aXZlOworfQorCitzdGF0 > aWMgdm9pZCBwbWNfZXZlbnRfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQoreworCXNoYXJlZF9pbmZv > X3QgKnMgPSBkLT5zaGFyZWRfaW5mbzsKKwlzLT5ldmVudF9oZWFkID0gMDsKKwlzLT5ldmVudF90 > YWlsID0gMDsKKwlzLT5sb3Npbmdfc2FtcGxlcyA9IDA7CisJcy0+c2FtcGxlc19sb3N0ID0gMDsK > KwlzLT5ubWlfcmVzdGFydHMgPSAwOworCXMtPmFjdGl2ZV9zYW1wbGVzID0gMDsKKwlzLT5wYXNz > aXZlX3NhbXBsZXMgPSAwOworCXMtPm90aGVyX3NhbXBsZXMgPSAwOworfQorCitleHRlcm4gaW50 > IG5taV9pbml0KGludCAqbnVtX2V2ZW50cywgaW50ICppc19wcmltYXJ5KTsKK2V4dGVybiBpbnQg > bm1pX3Jlc2VydmVfY291bnRlcnModm9pZCk7CitleHRlcm4gaW50IG5taV9zZXR1cF9ldmVudHMo > dm9pZCk7CitleHRlcm4gaW50IG5taV9lbmFibGVfdmlycSh2b2lkKTsKK2V4dGVybiBpbnQgbm1p > X3N0YXJ0KHZvaWQpOworZXh0ZXJuIHZvaWQgbm1pX3N0b3Aodm9pZCk7CitleHRlcm4gdm9pZCBu > bWlfZGlzYWJsZV92aXJxKHZvaWQpOworZXh0ZXJuIHZvaWQgbm1pX3JlbGVhc2VfY291bnRlcnMo > dm9pZCk7CisKKyNkZWZpbmUgUFJJVl9PUChvcCkJKChvcCA9PSBQTUNfU0VUX0FDVElWRSkgfHwg > KG9wID09IFBNQ19TRVRfUEFTU0lWRSkgfHwgKG9wID09IFBNQ19SRVNFUlZFX0NPVU5URVJTKSBc > CisJCQl8fCAob3AgPT0gUE1DX1NFVFVQX0VWRU5UUykgfHwgKG9wID09IFBNQ19TVEFSVCkgfHwg > KG9wID09IFBNQ19TVE9QKSBcCisJCQl8fCAob3AgPT0gUE1DX1JFTEVBU0VfQ09VTlRFUlMpIHx8 > IChvcCA9PSBQTUNfU0hVVERPV04pKQorCitpbnQgZG9fcG1jX29wKGludCBvcCwgdW5zaWduZWQg > aW50IGFyZzEsIHVuc2lnbmVkIGludCBhcmcyKQoreworCWludCByZXQgPSAwOworCisJaWYgKFBS > SVZfT1Aob3ApICYmIGN1cnJlbnQgIT0gcHJpbWFyeV9wcm9maWxlcikKKwkJcmV0dXJuIC1FUEVS > TTsKKworCXN3aXRjaCAob3ApIHsKKwkJY2FzZSBQTUNfSU5JVDoKKwkJCXJldCA9IG5taV9pbml0 > KChpbnQgKilhcmcxLCAoaW50ICopYXJnMik7CisJCQlicmVhazsKKworCQljYXNlIFBNQ19TRVRf > QUNUSVZFOgorCQkJaWYgKGFkb21haW5zICE9IDApCisJCQkJcmV0dXJuIC1FUEVSTTsKKwkJCWlm > IChjb3B5X2Zyb21fdXNlcigodm9pZCAqKSZhY3RpdmVfZG9tYWlucywKKwkJCQkodm9pZCAqKWFy > ZzEsIGFyZzIqc2l6ZW9mKGludCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJaWYgKHNldF9h > ZG9tYWluX3B0cnMoYXJnMikpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQlpZiAoc2V0X2FjdGl2 > ZShjdXJyZW50KSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCWJyZWFrOworCisJCWNhc2UgUE1D > X1NFVF9QQVNTSVZFOgorCQkJaWYgKHBkb21haW5zICE9IDApCisJCQkJcmV0dXJuIC1FUEVSTTsK > KwkJCWlmIChjb3B5X2Zyb21fdXNlcigodm9pZCAqKSZwYXNzaXZlX2RvbWFpbnMsCisJCQkJKHZv > aWQgKilhcmcxLCBhcmcyKnNpemVvZihpbnQpKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCXBk > b21haW5zID0gYXJnMjsKKwkJCWJyZWFrOworCisJCWNhc2UgUE1DX1JFU0VSVkVfQ09VTlRFUlM6 > CisJCQlyZXQgPSBubWlfcmVzZXJ2ZV9jb3VudGVycygpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQ > TUNfU0VUVVBfRVZFTlRTOgorCQkJaWYgKGNvcHlfZnJvbV91c2VyKCh2b2lkICopJmNvdW50ZXJf > Y29uZmlnLCAKKwkJCQkodm9pZCAqKWFyZzEsIGFyZzIqc2l6ZW9mKHN0cnVjdCBvcF9jb3VudGVy > X2NvbmZpZykpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0ID0gbm1pX3NldHVwX2V2ZW50 > cygpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQTUNfRU5BQkxFX1ZJUlE6CisJCQlpZiAoIWlzX2Fj > dGl2ZShjdXJyZW50KSkgeworCQkJCWlmIChjdXJyZW50ICE9IHByaW1hcnlfcHJvZmlsZXIpCisJ > CQkJCXJldHVybiAtRVBFUk07CisJCQkJZWxzZQorCQkJCQlzZXRfYWN0aXZlKGN1cnJlbnQpOwor > CQkJfQorCQkJcmV0ID0gbm1pX2VuYWJsZV92aXJxKCk7CisJCQlwbWNfZXZlbnRfaW5pdChjdXJy > ZW50KTsKKwkJCWFjdGl2YXRlZCsrOworCQkJYnJlYWs7CisKKwkJY2FzZSBQTUNfU1RBUlQ6CisJ > CQlpZiAoYWN0aXZhdGVkIDwgYWRvbWFpbnMpCisJCQkJcmV0dXJuIC1FUEVSTTsKKwkJCXJldCA9 > IG5taV9zdGFydCgpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQTUNfU1RPUDoKKwkJCW5taV9zdG9w > KCk7CisJCQlicmVhazsKKworCQljYXNlIFBNQ19ESVNBQkxFX1ZJUlE6CisJCQlpZiAoIWlzX2Fj > dGl2ZShjdXJyZW50KSkKKwkJCQlyZXR1cm4gLUVQRVJNOworCQkJbm1pX2Rpc2FibGVfdmlycSgp > OworCQkJYWN0aXZhdGVkLS07CisJCQlicmVhazsKKworCQljYXNlIFBNQ19SRUxFQVNFX0NPVU5U > RVJTOgorCQkJbm1pX3JlbGVhc2VfY291bnRlcnMoKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUE1D > X1NIVVRET1dOOgorCQkJZnJlZV9hZG9tYWluX3B0cnMoKTsKKwkJCXBkb21haW5zID0gMDsKKwkJ > CWFjdGl2YXRlZCA9IDA7CisJCQlwcmltYXJ5X3Byb2ZpbGVyID0gTlVMTDsKKwkJCWJyZWFrOwor > CisJCWRlZmF1bHQ6CisJCQlyZXQgPSAtRUlOVkFMOworCX0KKwlyZXR1cm4gcmV0OworfQpkaWZm > IC1QTmF1ciB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L3RyYXBzLmMgeGVuLTIuMC41LXByb2YveGVu > L2FyY2gveDg2L3RyYXBzLmMKLS0tIHhlbi0yLjAuNS94ZW4vYXJjaC94ODYvdHJhcHMuYwkyMDA1 > LTAzLTEwIDExOjUyOjE1LjAwMDAwMDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2Fy > Y2gveDg2L3RyYXBzLmMJMjAwNS0wNC0wNiAxMDoyOTowNC4wMDAwMDAwMDAgLTA3MDAKQEAgLTIs > NiArMiwxMCBAQAogICogYXJjaC9pMzg2L3RyYXBzLmMKICAqIAogICogTW9kaWZpY2F0aW9ucyB0 > byBMaW51eCBvcmlnaW5hbCBhcmUgY29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEsgQSBGcmFzZXIK > KyAqCisgKiBNb2RpZmllZCBieSBBcmF2aW5kIE1lbm9uIGZvciBzdXBwb3J0aW5nIG9wcm9maWxl > CisgKiBUaGVzZSBtb2RpZmljYXRpb25zIGFyZToKKyAqIENvcHlyaWdodCAoQykgMjAwNSBIZXds > ZXR0LVBhY2thcmQgQ28uCiAgKiAKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 > b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVy > bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAt > NTEsNiArNTUsNyBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2kz > ODcuaD4KICNpbmNsdWRlIDxhc20vZGVidWdnZXIuaD4KKyNpbmNsdWRlIDxhc20vbm1pLmg+CiAK > IC8qCiAgKiBvcHRfbm1pOiBvbmUgb2YgJ2lnbm9yZScsICdkb20wJywgb3IgJ2ZhdGFsJy4KQEAg > LTU5OCw3ICs2MDMsNyBAQAogICAgIHByaW50aygiRG8geW91IGhhdmUgYSBzdHJhbmdlIHBvd2Vy > IHNhdmluZyBtb2RlIGVuYWJsZWQ/XG4iKTsKIH0KIAotYXNtbGlua2FnZSB2b2lkIGRvX25taShz > dHJ1Y3QgeGVuX3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgcmVhc29uKQorc3RhdGljIHZvaWQg > ZGVmYXVsdF9kb19ubWkoc3RydWN0IHhlbl9yZWdzICogcmVncywgdW5zaWduZWQgbG9uZyByZWFz > b24pCiB7CiAgICAgKytubWlfY291bnQoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIApAQCAtNjEwLDYg > KzYxNSwzNSBAQAogICAgICAgICB1bmtub3duX25taV9lcnJvcigodW5zaWduZWQgY2hhcikocmVh > c29uJjB4ZmYpKTsKIH0KIAorc3RhdGljIGludCBkdW1teV9ubWlfY2FsbGJhY2soc3RydWN0IHhl > bl9yZWdzICogcmVncywgaW50IGNwdSkKK3sKKyAgICAgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRp > YyBubWlfY2FsbGJhY2tfdCBubWlfY2FsbGJhY2sgPSBkdW1teV9ubWlfY2FsbGJhY2s7CisKK2Fz > bWxpbmthZ2Ugdm9pZCBkb19ubWkoc3RydWN0IHhlbl9yZWdzICogcmVncywgdW5zaWduZWQgbG9u > ZyByZWFzb24pCit7CisJaW50IGNwdTsKKyAgICAgICAgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgp > OworCisgICAgICAgIGlmICghbm1pX2NhbGxiYWNrKHJlZ3MsIGNwdSkpIAorICAgICAgICAgICAg > ICAgIGRlZmF1bHRfZG9fbm1pKHJlZ3MsIHJlYXNvbik7Cit9CisKK3ZvaWQgc2V0X25taV9jYWxs > YmFjayhubWlfY2FsbGJhY2tfdCBjYWxsYmFjaykKK3sKKyAgICAgICAgbm1pX2NhbGxiYWNrID0g > Y2FsbGJhY2s7Cit9CisKK3ZvaWQgdW5zZXRfbm1pX2NhbGxiYWNrKHZvaWQpCit7CisgICAgICAg > IG5taV9jYWxsYmFjayA9IGR1bW15X25taV9jYWxsYmFjazsKK30KKworRVhQT1JUX1NZTUJPTChz > ZXRfbm1pX2NhbGxiYWNrKTsKK0VYUE9SVF9TWU1CT0wodW5zZXRfbm1pX2NhbGxiYWNrKTsKKwog > dW5zaWduZWQgbG9uZyBubWlfc29mdGlycV9yZWFzb247CiBzdGF0aWMgdm9pZCBubWlfc29mdGly > cSh2b2lkKQogewpkaWZmIC1QTmF1ciB4ZW4tMi4wLjUveGVuL2FyY2gveDg2L3g4Nl8zMi9lbnRy > eS5TIHhlbi0yLjAuNS1wcm9mL3hlbi9hcmNoL3g4Ni94ODZfMzIvZW50cnkuUwotLS0geGVuLTIu > MC41L3hlbi9hcmNoL3g4Ni94ODZfMzIvZW50cnkuUwkyMDA1LTAzLTEwIDExOjUyOjE2LjAwMDAw > MDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2FyY2gveDg2L3g4Nl8zMi9lbnRyeS5T > CTIwMDUtMDQtMDYgMTA6MjM6NDYuMDAwMDAwMDAwIC0wNzAwCkBAIC0zLDYgKzMsMTAgQEAKICAq > CiAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNCwgSyBBIEZyYXNlcgogICogQ29weXJpZ2h0IChj > KSAxOTkxLCAxOTkyIExpbnVzIFRvcnZhbGRzCisgKgorICogTW9kaWZpZWQgYnkgQXJhdmluZCBN > ZW5vbiBmb3Igc3VwcG9ydGluZyBvcHJvZmlsZQorICogVGhlc2UgbW9kaWZpY2F0aW9ucyBhcmU6 > CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgSGV3bGV0dC1QYWNrYXJkIENvLgogICogCiAgKiBDYWxs > aW5nIGJhY2sgdG8gYSBndWVzdCBPUzoKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PQpA > QCAtNDk4LDEwICs1MDIsMTAgQEAKICAgICAgICAgam56ICAgZG9fd2F0Y2hkb2dfdGljawogICAg > ICAgICBtb3ZsICAlZHMsJWVheAogICAgICAgICBjbXB3ICAkKF9fSFlQRVJWSVNPUl9EUyksJWF4 > Ci0gICAgICAgIGpuZSAgIGRlZmVyX25taQorICAgICAgICBqbmUgICBmb3JjZV9ubWkKICAgICAg > ICAgbW92bCAgJWVzLCVlYXgKICAgICAgICAgY21wdyAgJChfX0hZUEVSVklTT1JfRFMpLCVheAot > ICAgICAgICBqbmUgICBkZWZlcl9ubWkKKyAgICAgICAgam5lICAgZm9yY2Vfbm1pCiAKIGRvX3dh > dGNoZG9nX3RpY2s6CiAgICAgICAgIG1vdmwgICQoX19IWVBFUlZJU09SX0RTKSwlZWR4CkBAIC01 > MTIsMTIgKzUxNiw0NCBAQAogCXB1c2hsICVlZHggICAjIHJlZ3MKICAgICAgICAgY2FsbCAgU1lN > Qk9MX05BTUUoZG9fbm1pKQogCWFkZGwgICQ4LCVlc3AKKworCS8qIHhlbm9wcm9mOiBXZSBuZWVk > IHRvIGNoZWNrIGlmIHZpcnR1YWwgaW50ZXJydXB0IG11c3QgYmUgZ2VuZXJhdGVkICovCisJam1w > IHJldF9mcm9tX2ludHIKKworCS8qCiAgICAgICAgIG1vdmwgIFhSRUdTX2VmbGFncyglZXNwKSwl > ZWF4CiAgICAgICAgIG1vdmIgIFhSRUdTX2NzKCVlc3ApLCVhbAogICAgICAgICB0ZXN0bCAkKDN8 > WDg2X0VGTEFHU19WTSksJWVheAogCWp6ICAgIHJlc3RvcmVfYWxsX3hlbgogICAgICAgICBHRVRf > Q1VSUkVOVCglZWJ4KQogICAgICAgICBqbXAgICByZXN0b3JlX2FsbF9ndWVzdAorCSovCisKK2Zv > cmNlX25taToKKwltb3ZsICVkcywtNCglZXNwKQorCW1vdmwgJWVzLC04KCVlc3ApCisJbW92bCAl > ZnMsLTEyKCVlc3ApCisJbW92bCAlZ3MsLTE2KCVlc3ApCisJc3VibCAkMTYsJWVzcAorCisJbW92 > bCAkKF9fSFlQRVJWSVNPUl9EUyksJWVkeAorCW1vdmwgJWVkeCwlZHMKKwltb3ZsICVlZHgsJWVz > CisJCisJbW92bCAlZXNwLCVlZHgKKwlhZGRsICQxNiwlZWR4CisJcHVzaGwgJWVieAorCXB1c2hs > ICVlZHgKKwljYWxsIFNZTUJPTF9OQU1FKGRvX25taSkKKwlhZGRsICQ4LCVlc3AKKworCWFkZGwg > JDE2LCVlc3AKKwltb3ZsIC00KCVlc3ApLCVkcworCW1vdmwgLTgoJWVzcCksJWVzCisJbW92bCAt > MTIoJWVzcCksJWZzCisJbW92bCAtMTYoJWVzcCksJWdzCisKKwlqbXAgcmVzdG9yZV9hbGxfeGVu > CiAKIGRlZmVyX25taToKICAgICAgICAgbW92bCAgJEZJWE1BUF9hcGljX2Jhc2UsJWVheApAQCAt > Njc0LDYgKzcxMCw3IEBACiAgICAgICAgIC5sb25nIFNZTUJPTF9OQU1FKGRvX3ZtX2Fzc2lzdCkK > ICAgICAgICAgLmxvbmcgU1lNQk9MX05BTUUoZG9fdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21h > aW4pCiAgICAgICAgIC5sb25nIFNZTUJPTF9OQU1FKGRvX3N3aXRjaF92bTg2KQorICAgICAgICAu > bG9uZyBTWU1CT0xfTkFNRShkb19wbWNfb3ApCiAgICAgICAgIC5yZXB0IE5SX2h5cGVyY2FsbHMt > KCguLWh5cGVyY2FsbF90YWJsZSkvNCkKICAgICAgICAgLmxvbmcgU1lNQk9MX05BTUUoZG9fbmlf > aHlwZXJjYWxsKQogICAgICAgICAuZW5kcgpkaWZmIC1QTmF1ciB4ZW4tMi4wLjUveGVuL2luY2x1 > ZGUvYXNtLXg4Ni9hcGljLmggeGVuLTIuMC41LXByb2YveGVuL2luY2x1ZGUvYXNtLXg4Ni9hcGlj > LmgKLS0tIHhlbi0yLjAuNS94ZW4vaW5jbHVkZS9hc20teDg2L2FwaWMuaAkyMDA1LTAzLTEwIDEx > OjUyOjEyLjAwMDAwMDAwMCAtMDgwMAorKysgeGVuLTIuMC41LXByb2YveGVuL2luY2x1ZGUvYXNt > LXg4Ni9hcGljLmgJMjAwNS0wNC0wNiAwOToyNzoxMy4wMDAwMDAwMDAgLTA3MDAKQEAgLTc3LDYg > Kzc3LDggQEAKIGV4dGVybiB2b2lkIHNtcF9sb2NhbF90aW1lcl9pbnRlcnJ1cHQgKHN0cnVjdCB4 > ZW5fcmVncyAqIHJlZ3MpOwogZXh0ZXJuIHZvaWQgc2V0dXBfQVBJQ19jbG9ja3MgKHZvaWQpOwog > ZXh0ZXJuIHZvaWQgc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2cgKHZvaWQpOworZXh0ZXJuIGludCBy > ZXNlcnZlX2xhcGljX25taSh2b2lkKTsKK2V4dGVybiB2b2lkIHJlbGVhc2VfbGFwaWNfbm1pKHZv > aWQpOwogZXh0ZXJuIHZvaWQgbm1pX3dhdGNoZG9nX3RpY2sgKHN0cnVjdCB4ZW5fcmVncyAqIHJl > Z3MpOwogZXh0ZXJuIHZvaWQgdG91Y2hfbm1pX3dhdGNoZG9nKHZvaWQpOwogZXh0ZXJuIGludCBB > UElDX2luaXRfdW5pcHJvY2Vzc29yICh2b2lkKTsKZGlmZiAtUE5hdXIgeGVuLTIuMC41L3hlbi9p > bmNsdWRlL2FzbS14ODYvbXNyLmggeGVuLTIuMC41LXByb2YveGVuL2luY2x1ZGUvYXNtLXg4Ni9t > c3IuaAotLS0geGVuLTIuMC41L3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmgJMjAwNS0wMy0xMCAx > MTo1MjoxNS4wMDAwMDAwMDAgLTA4MDAKKysrIHhlbi0yLjAuNS1wcm9mL3hlbi9pbmNsdWRlL2Fz > bS14ODYvbXNyLmgJMjAwNS0wNC0wNiAwOToyNzoxMy4wMDAwMDAwMDAgLTA3MDAKQEAgLTgsMzgg > KzgsMzggQEAKICAqLwogCiAjZGVmaW5lIHJkbXNyKG1zcix2YWwxLHZhbDIpIFwKLSAgICAgX19h > c21fXyBfX3ZvbGF0aWxlX18oInJkbXNyIiBcCisJX19hc21fXyBfX3ZvbGF0aWxlX18oInJkbXNy > IiBcCiAJCQkgIDogIj1hIiAodmFsMSksICI9ZCIgKHZhbDIpIFwKIAkJCSAgOiAiYyIgKG1zcikp > CiAKLSNkZWZpbmUgcmRtc3JsKG1zcix2YWwpIGRvIHsgdW5zaWduZWQgbG9uZyBhX18sYl9fOyBc > Ci0gICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJkbXNyIiBcCi0JCQkgICAgOiAiPWEiIChh > X18pLCAiPWQiIChiX18pIFwKLQkJCSAgICA6ICJjIiAobXNyKSk7IFwKLSAgICAgICB2YWwgPSBh > X18gfCAoYl9fPDwzMik7IFwKLX0gd2hpbGUoMCk7IAotCiAjZGVmaW5lIHdybXNyKG1zcix2YWwx > LHZhbDIpIFwKLSAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIndybXNyIiBcCisJX19hc21fXyBf > X3ZvbGF0aWxlX18oIndybXNyIiBcCiAJCQkgIDogLyogbm8gb3V0cHV0cyAqLyBcCiAJCQkgIDog > ImMiIChtc3IpLCAiYSIgKHZhbDEpLCAiZCIgKHZhbDIpKQogCisjZGVmaW5lIHJkbXNybChtc3Is > dmFsKSBkbyB7IFwKKwl1bnNpZ25lZCBsb25nIGxfXyxoX187IFwKKwlyZG1zciAobXNyLCBsX18s > IGhfXyk7ICBcCisJdmFsID0gbF9fOyAgXAorCXZhbCB8PSAoKHU2NCloX188PDMyKTsgIFwKK30g > d2hpbGUoMCkKKworc3RhdGljIGlubGluZSB2b2lkIHdybXNybCAodW5zaWduZWQgbG9uZyBtc3Is > IHVuc2lnbmVkIGxvbmcgbG9uZyB2YWwpCit7CisJdW5zaWduZWQgbG9uZyBsbywgaGk7CisJbG8g > PSAodW5zaWduZWQgbG9uZykgdmFsOworCWhpID0gdmFsID4+IDMyOworCXdybXNyIChtc3IsIGxv > LCBoaSk7Cit9CisKICNkZWZpbmUgcmR0c2MobG93LGhpZ2gpIFwKICAgICAgX19hc21fXyBfX3Zv > bGF0aWxlX18oInJkdHNjIiA6ICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpKQogCiAjZGVmaW5lIHJk > dHNjbChsb3cpIFwKICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJkdHNjIiA6ICI9YSIgKGxv > dykgOiA6ICJlZHgiKQogCi0jaWYgZGVmaW5lZChfX2kzODZfXykKICNkZWZpbmUgcmR0c2NsbCh2 > YWwpIFwKICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJkdHNjIiA6ICI9QSIgKHZhbCkpCi0j > ZWxpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0jZGVmaW5lIHJkdHNjbGwodmFsKSBkbyB7IFwKLSAg > ICAgdW5zaWduZWQgaW50IGEsZDsgXAotICAgICBhc20gdm9sYXRpbGUoInJkdHNjIiA6ICI9YSIg > KGEpLCAiPWQiIChkKSk7IFwKLSAgICAgKHZhbCkgPSAoKHVuc2lnbmVkIGxvbmcpYSkgfCAoKCh1 > bnNpZ25lZCBsb25nKWQpPDwzMik7IFwKLX0gd2hpbGUoMCkKLSNlbmRpZgogCiAjZGVmaW5lIHdy > aXRlX3RzYyh2YWwxLHZhbDIpIHdybXNyKDB4MTAsIHZhbDEsIHZhbDIpCiAKQEAgLTU1LDY2ICs1 > NSw2IEBACiAjZGVmaW5lIE1TUl9JQTMyX1BMQVRGT1JNX0lECQkweDE3CiAjZGVmaW5lIE1TUl9J > QTMyX0VCTF9DUl9QT1dFUk9OCQkweDJhCiAKLS8qIEFNRC9LOCBzcGVjaWZpYyBNU1JzICovIAot > I2RlZmluZSBNU1JfRUZFUiAweGMwMDAwMDgwCQkvKiBleHRlbmRlZCBmZWF0dXJlIHJlZ2lzdGVy > ICovCi0jZGVmaW5lIE1TUl9TVEFSIDB4YzAwMDAwODEJCS8qIGxlZ2FjeSBtb2RlIFNZU0NBTEwg > dGFyZ2V0ICovCi0jZGVmaW5lIE1TUl9MU1RBUiAweGMwMDAwMDgyIAkJLyogbG9uZyBtb2RlIFNZ > U0NBTEwgdGFyZ2V0ICovCi0jZGVmaW5lIE1TUl9DU1RBUiAweGMwMDAwMDgzCQkvKiBjb21wYXRp > YmlsaXR5IG1vZGUgU1lTQ0FMTCB0YXJnZXQgKi8KLSNkZWZpbmUgTVNSX1NZU0NBTExfTUFTSyAw > eGMwMDAwMDg0CS8qIEVGTEFHUyBtYXNrIGZvciBzeXNjYWxsICovCi0jZGVmaW5lIE1TUl9GU19C > QVNFIDB4YzAwMDAxMDAJCS8qIDY0Yml0IEdTIGJhc2UgKi8KLSNkZWZpbmUgTVNSX0dTX0JBU0Ug > MHhjMDAwMDEwMQkJLyogNjRiaXQgRlMgYmFzZSAqLwotI2RlZmluZSBNU1JfS0VSTkVMX0dTX0JB > U0UgIDB4YzAwMDAxMDIJLyogU3dhcEdTIEdTIHNoYWRvdyAob3IgVVNFUl9HUyBmcm9tIGtlcm5l > bCkgKi8gCi0vKiBFRkVSIGJpdHM6ICovIAotI2RlZmluZSBfRUZFUl9TQ0UgMCAgLyogU1lTQ0FM > TC9TWVNSRVQgKi8KLSNkZWZpbmUgX0VGRVJfTE1FIDggIC8qIExvbmcgbW9kZSBlbmFibGUgKi8K > LSNkZWZpbmUgX0VGRVJfTE1BIDEwIC8qIExvbmcgbW9kZSBhY3RpdmUgKHJlYWQtb25seSkgKi8K > LSNkZWZpbmUgX0VGRVJfTlggMTEgIC8qIE5vIGV4ZWN1dGUgZW5hYmxlICovCi0KLSNkZWZpbmUg > RUZFUl9TQ0UgKDE8PF9FRkVSX1NDRSkKLSNkZWZpbmUgRUZFUl9MTUUgKDE8PF9FRkVSX0xNRSkK > LSNkZWZpbmUgRUZFUl9MTUEgKDE8PF9FRkVSX0xNQSkKLSNkZWZpbmUgRUZFUl9OWCAoMTw8X0VG > RVJfTlgpCi0KLS8qIEludGVsIE1TUnMuIFNvbWUgYWxzbyBhdmFpbGFibGUgb24gb3RoZXIgQ1BV > cyAqLwotI2RlZmluZSBNU1JfSUEzMl9QTEFURk9STV9JRAkweDE3Ci0KLSNkZWZpbmUgTVNSX0lB > MzJfUEVSRkNUUjAgICAgICAweGMxCi0jZGVmaW5lIE1TUl9JQTMyX1BFUkZDVFIxICAgICAgMHhj > MgotCi0jZGVmaW5lIE1TUl9NVFJSY2FwCQkweDBmZQotI2RlZmluZSBNU1JfSUEzMl9CQkxfQ1Jf > Q1RMICAgICAgICAweDExOQotCi0jZGVmaW5lIE1TUl9JQTMyX01DR19DQVAgICAgICAgMHgxNzkK > LSNkZWZpbmUgTVNSX0lBMzJfTUNHX1NUQVRVUyAgICAgICAgMHgxN2EKLSNkZWZpbmUgTVNSX0lB > MzJfTUNHX0NUTCAgICAgICAweDE3YgotCi0jZGVmaW5lIE1TUl9JQTMyX0VWTlRTRUwwICAgICAg > MHgxODYKLSNkZWZpbmUgTVNSX0lBMzJfRVZOVFNFTDEgICAgICAweDE4NwotCi0jZGVmaW5lIE1T > Ul9JQTMyX0RFQlVHQ1RMTVNSICAgICAgIDB4MWQ5Ci0jZGVmaW5lIE1TUl9JQTMyX0xBU1RCUkFO > Q0hGUk9NSVAgIDB4MWRiCi0jZGVmaW5lIE1TUl9JQTMyX0xBU1RCUkFOQ0hUT0lQICAgICAgICAw > eDFkYwotI2RlZmluZSBNU1JfSUEzMl9MQVNUSU5URlJPTUlQICAgICAweDFkZAotI2RlZmluZSBN > U1JfSUEzMl9MQVNUSU5UVE9JUCAgICAgICAweDFkZQotCi0jZGVmaW5lIE1TUl9NVFJSZml4NjRL > XzAwMDAwCTB4MjUwCi0jZGVmaW5lIE1TUl9NVFJSZml4MTZLXzgwMDAwCTB4MjU4Ci0jZGVmaW5l > IE1TUl9NVFJSZml4MTZLX0EwMDAwCTB4MjU5Ci0jZGVmaW5lIE1TUl9NVFJSZml4NEtfQzAwMDAJ > MHgyNjgKLSNkZWZpbmUgTVNSX01UUlJmaXg0S19DODAwMAkweDI2OQotI2RlZmluZSBNU1JfTVRS > UmZpeDRLX0QwMDAwCTB4MjZhCi0jZGVmaW5lIE1TUl9NVFJSZml4NEtfRDgwMDAJMHgyNmIKLSNk > ZWZpbmUgTVNSX01UUlJmaXg0S19FMDAwMAkweDI2YwotI2RlZmluZSBNU1JfTVRSUmZpeDRLX0U4 > MDAwCTB4MjZkCi0jZGVmaW5lIE1TUl9NVFJSZml4NEtfRjAwMDAJMHgyNmUKLSNkZWZpbmUgTVNS > X01UUlJmaXg0S19GODAwMAkweDI2ZgotI2RlZmluZSBNU1JfTVRSUmRlZlR5cGUJCTB4MmZmCi0K > LSNkZWZpbmUgTVNSX0lBMzJfTUMwX0NUTCAgICAgICAweDQwMAotI2RlZmluZSBNU1JfSUEzMl9N > QzBfU1RBVFVTICAgICAgICAweDQwMQotI2RlZmluZSBNU1JfSUEzMl9NQzBfQUREUiAgICAgIDB4 > NDAyCi0jZGVmaW5lIE1TUl9JQTMyX01DMF9NSVNDICAgICAgMHg0MDMKLQogI2RlZmluZSBNU1Jf > SUEzMl9BUElDQkFTRQkJMHgxYgogI2RlZmluZSBNU1JfSUEzMl9BUElDQkFTRV9CU1AJCSgxPDw4 > KQogI2RlZmluZSBNU1JfSUEzMl9BUElDQkFTRV9FTkFCTEUJKDE8PDExKQpAQCAtMTIzLDEyICs2 > MywzOCBAQAogI2RlZmluZSBNU1JfSUEzMl9VQ09ERV9XUklURQkJMHg3OQogI2RlZmluZSBNU1Jf > SUEzMl9VQ09ERV9SRVYJCTB4OGIKIAorI2RlZmluZSBNU1JfUDZfUEVSRkNUUjAJCTB4YzEKKyNk > ZWZpbmUgTVNSX1A2X1BFUkZDVFIxCQkweGMyCisKICNkZWZpbmUgTVNSX0lBMzJfQkJMX0NSX0NU > TAkJMHgxMTkKIAorI2RlZmluZSBNU1JfSUEzMl9TWVNFTlRFUl9DUwkJMHgxNzQKKyNkZWZpbmUg > TVNSX0lBMzJfU1lTRU5URVJfRVNQCQkweDE3NQorI2RlZmluZSBNU1JfSUEzMl9TWVNFTlRFUl9F > SVAJCTB4MTc2CisKICNkZWZpbmUgTVNSX0lBMzJfTUNHX0NBUAkJMHgxNzkKICNkZWZpbmUgTVNS > X0lBMzJfTUNHX1NUQVRVUwkJMHgxN2EKICNkZWZpbmUgTVNSX0lBMzJfTUNHX0NUTAkJMHgxN2IK > IAorLyogUDQvWGVvbisgc3BlY2lmaWMgKi8KKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VBWAkJMHgx > ODAKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VCWAkJMHgxODEKKyNkZWZpbmUgTVNSX0lBMzJfTUNH > X0VDWAkJMHgxODIKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VEWAkJMHgxODMKKyNkZWZpbmUgTVNS > X0lBMzJfTUNHX0VTSQkJMHgxODQKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VESQkJMHgxODUKKyNk > ZWZpbmUgTVNSX0lBMzJfTUNHX0VCUAkJMHgxODYKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VTUAkJ > MHgxODcKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX0VGTEFHUwkJMHgxODgKKyNkZWZpbmUgTVNSX0lB > MzJfTUNHX0VJUAkJMHgxODkKKyNkZWZpbmUgTVNSX0lBMzJfTUNHX1JFU0VSVkVECQkweDE4QQor > CisjZGVmaW5lIE1TUl9QNl9FVk5UU0VMMAkJCTB4MTg2CisjZGVmaW5lIE1TUl9QNl9FVk5UU0VM > MQkJCTB4MTg3CisKKyNkZWZpbmUgTVNSX0lBMzJfUEVSRl9TVEFUVVMJCTB4MTk4CisjZGVmaW5l > IE1TUl9JQTMyX1BFUkZfQ1RMCQkweDE5OQorCiAjZGVmaW5lIE1TUl9JQTMyX1RIRVJNX0NPTlRS > T0wJCTB4MTlhCiAjZGVmaW5lIE1TUl9JQTMyX1RIRVJNX0lOVEVSUlVQVAkweDE5YgogI2RlZmlu > ZSBNU1JfSUEzMl9USEVSTV9TVEFUVVMJCTB4MTljCkBAIC0xNDUsMjkgKzExMSw5MSBAQAogI2Rl > ZmluZSBNU1JfSUEzMl9NQzBfQUREUgkJMHg0MDIKICNkZWZpbmUgTVNSX0lBMzJfTUMwX01JU0MJ > CTB4NDAzCiAKLSNkZWZpbmUgTVNSX1A2X1BFUkZDVFIwCQkJMHhjMQotI2RlZmluZSBNU1JfUDZf > UEVSRkNUUjEJCQkweGMyCi0jZGVmaW5lIE1TUl9QNl9FVk5UU0VMMAkJCTB4MTg2Ci0jZGVmaW5l > IE1TUl9QNl9FVk5UU0VMMQkJCTB4MTg3CisvKiBQZW50aXVtIElWIHBlcmZvcm1hbmNlIGNvdW50 > ZXIgTVNScyAqLworI2RlZmluZSBNU1JfUDRfQlBVX1BFUkZDVFIwIAkJMHgzMDAKKyNkZWZpbmUg > TVNSX1A0X0JQVV9QRVJGQ1RSMSAJCTB4MzAxCisjZGVmaW5lIE1TUl9QNF9CUFVfUEVSRkNUUjIg > CQkweDMwMgorI2RlZmluZSBNU1JfUDRfQlBVX1BFUkZDVFIzIAkJMHgzMDMKKyNkZWZpbmUgTVNS > X1A0X01TX1BFUkZDVFIwIAkJMHgzMDQKKyNkZWZpbmUgTVNSX1A0X01TX1BFUkZDVFIxIAkJMHgz > MDUKKyNkZWZpbmUgTVNSX1A0X01TX1BFUkZDVFIyIAkJMHgzMDYKKyNkZWZpbmUgTVNSX1A0X01T > X1BFUkZDVFIzIAkJMHgzMDcKKyNkZWZpbmUgTVNSX1A0X0ZMQU1FX1BFUkZDVFIwIAkJMHgzMDgK > KyNkZWZpbmUgTVNSX1A0X0ZMQU1FX1BFUkZDVFIxIAkJMHgzMDkKKyNkZWZpbmUgTVNSX1A0X0ZM > QU1FX1BFUkZDVFIyIAkJMHgzMGEKKyNkZWZpbmUgTVNSX1A0X0ZMQU1FX1BFUkZDVFIzIAkJMHgz > MGIKKyNkZWZpbmUgTVNSX1A0X0lRX1BFUkZDVFIwIAkJMHgzMGMKKyNkZWZpbmUgTVNSX1A0X0lR > X1BFUkZDVFIxIAkJMHgzMGQKKyNkZWZpbmUgTVNSX1A0X0lRX1BFUkZDVFIyIAkJMHgzMGUKKyNk > ZWZpbmUgTVNSX1A0X0lRX1BFUkZDVFIzIAkJMHgzMGYKKyNkZWZpbmUgTVNSX1A0X0lRX1BFUkZD > VFI0IAkJMHgzMTAKKyNkZWZpbmUgTVNSX1A0X0lRX1BFUkZDVFI1IAkJMHgzMTEKKyNkZWZpbmUg > TVNSX1A0X0JQVV9DQ0NSMCAJCTB4MzYwCisjZGVmaW5lIE1TUl9QNF9CUFVfQ0NDUjEgCQkweDM2 > MQorI2RlZmluZSBNU1JfUDRfQlBVX0NDQ1IyIAkJMHgzNjIKKyNkZWZpbmUgTVNSX1A0X0JQVV9D > Q0NSMyAJCTB4MzYzCisjZGVmaW5lIE1TUl9QNF9NU19DQ0NSMCAJCTB4MzY0CisjZGVmaW5lIE1T > Ul9QNF9NU19DQ0NSMSAJCTB4MzY1CisjZGVmaW5lIE1TUl9QNF9NU19DQ0NSMiAJCTB4MzY2Cisj > ZGVmaW5lIE1TUl9QNF9NU19DQ0NSMyAJCTB4MzY3CisjZGVmaW5lIE1TUl9QNF9GTEFNRV9DQ0NS > MCAJCTB4MzY4CisjZGVmaW5lIE1TUl9QNF9GTEFNRV9DQ0NSMSAJCTB4MzY5CisjZGVmaW5lIE1T > Ul9QNF9GTEFNRV9DQ0NSMiAJCTB4MzZhCisjZGVmaW5lIE1TUl9QNF9GTEFNRV9DQ0NSMyAJCTB4 > MzZiCisjZGVmaW5lIE1TUl9QNF9JUV9DQ0NSMCAJCTB4MzZjCisjZGVmaW5lIE1TUl9QNF9JUV9D > Q0NSMSAJCTB4MzZkCisjZGVmaW5lIE1TUl9QNF9JUV9DQ0NSMiAJCTB4MzZlCisjZGVmaW5lIE1T > Ul9QNF9JUV9DQ0NSMyAJCTB4MzZmCisjZGVmaW5lIE1TUl9QNF9JUV9DQ0NSNCAJCTB4MzcwCisj > ZGVmaW5lIE1TUl9QNF9JUV9DQ0NSNSAJCTB4MzcxCisjZGVmaW5lIE1TUl9QNF9BTEZfRVNDUjAg > CQkweDNjYQorI2RlZmluZSBNU1JfUDRfQUxGX0VTQ1IxIAkJMHgzY2IKKyNkZWZpbmUgTVNSX1A0 > X0JQVV9FU0NSMCAJCTB4M2IyCisjZGVmaW5lIE1TUl9QNF9CUFVfRVNDUjEgCQkweDNiMworI2Rl > ZmluZSBNU1JfUDRfQlNVX0VTQ1IwIAkJMHgzYTAKKyNkZWZpbmUgTVNSX1A0X0JTVV9FU0NSMSAJ > CTB4M2ExCisjZGVmaW5lIE1TUl9QNF9DUlVfRVNDUjAgCQkweDNiOAorI2RlZmluZSBNU1JfUDRf > Q1JVX0VTQ1IxIAkJMHgzYjkKKyNkZWZpbmUgTVNSX1A0X0NSVV9FU0NSMiAJCTB4M2NjCisjZGVm > aW5lIE1TUl9QNF9DUlVfRVNDUjMgCQkweDNjZAorI2RlZmluZSBNU1JfUDRfQ1JVX0VTQ1I0IAkJ > MHgzZTAKKyNkZWZpbmUgTVNSX1A0X0NSVV9FU0NSNSAJCTB4M2UxCisjZGVmaW5lIE1TUl9QNF9E > QUNfRVNDUjAgCQkweDNhOAorI2RlZmluZSBNU1JfUDRfREFDX0VTQ1IxIAkJMHgzYTkKKyNkZWZp > bmUgTVNSX1A0X0ZJUk1fRVNDUjAgCQkweDNhNAorI2RlZmluZSBNU1JfUDRfRklSTV9FU0NSMSAJ > CTB4M2E1CisjZGVmaW5lIE1TUl9QNF9GTEFNRV9FU0NSMCAJCTB4M2E2CisjZGVmaW5lIE1TUl9Q > NF9GTEFNRV9FU0NSMSAJCTB4M2E3CisjZGVmaW5lIE1TUl9QNF9GU0JfRVNDUjAgCQkweDNhMgor > I2RlZmluZSBNU1JfUDRfRlNCX0VTQ1IxIAkJMHgzYTMKKyNkZWZpbmUgTVNSX1A0X0lRX0VTQ1Iw > IAkJMHgzYmEKKyNkZWZpbmUgTVNSX1A0X0lRX0VTQ1IxIAkJMHgzYmIKKyNkZWZpbmUgTVNSX1A0 > X0lTX0VTQ1IwIAkJMHgzYjQKKyNkZWZpbmUgTVNSX1A0X0lTX0VTQ1IxIAkJMHgzYjUKKyNkZWZp > bmUgTVNSX1A0X0lUTEJfRVNDUjAgCQkweDNiNgorI2RlZmluZSBNU1JfUDRfSVRMQl9FU0NSMSAJ > CTB4M2I3CisjZGVmaW5lIE1TUl9QNF9JWF9FU0NSMCAJCTB4M2M4CisjZGVmaW5lIE1TUl9QNF9J > WF9FU0NSMSAJCTB4M2M5CisjZGVmaW5lIE1TUl9QNF9NT0JfRVNDUjAgCQkweDNhYQorI2RlZmlu > ZSBNU1JfUDRfTU9CX0VTQ1IxIAkJMHgzYWIKKyNkZWZpbmUgTVNSX1A0X01TX0VTQ1IwIAkJMHgz > YzAKKyNkZWZpbmUgTVNSX1A0X01TX0VTQ1IxIAkJMHgzYzEKKyNkZWZpbmUgTVNSX1A0X1BNSF9F > U0NSMCAJCTB4M2FjCisjZGVmaW5lIE1TUl9QNF9QTUhfRVNDUjEgCQkweDNhZAorI2RlZmluZSBN > U1JfUDRfUkFUX0VTQ1IwIAkJMHgzYmMKKyNkZWZpbmUgTVNSX1A0X1JBVF9FU0NSMSAJCTB4M2Jk > CisjZGVmaW5lIE1TUl9QNF9TQUFUX0VTQ1IwIAkJMHgzYWUKKyNkZWZpbmUgTVNSX1A0X1NBQVRf > RVNDUjEgCQkweDNhZgorI2RlZmluZSBNU1JfUDRfU1NVX0VTQ1IwIAkJMHgzYmUKKyNkZWZpbmUg > TVNSX1A0X1NTVV9FU0NSMSAJCTB4M2JmICAgIC8qIGd1ZXNzOiBub3QgZGVmaW5lZCBpbiBtYW51 > YWwgKi8KKyNkZWZpbmUgTVNSX1A0X1RCUFVfRVNDUjAgCQkweDNjMgorI2RlZmluZSBNU1JfUDRf > VEJQVV9FU0NSMSAJCTB4M2MzCisjZGVmaW5lIE1TUl9QNF9UQ19FU0NSMCAJCTB4M2M0CisjZGVm > aW5lIE1TUl9QNF9UQ19FU0NSMSAJCTB4M2M1CisjZGVmaW5lIE1TUl9QNF9VMkxfRVNDUjAgCQkw > eDNiMAorI2RlZmluZSBNU1JfUDRfVTJMX0VTQ1IxIAkJMHgzYjEKIAotLyogSzcvSzggTVNScy4g > Tm90IGNvbXBsZXRlLiBTZWUgdGhlIGFyY2hpdGVjdHVyZSBtYW51YWwgZm9yIGEgbW9yZSBjb21w > bGV0ZSBsaXN0LiAqLwotI2RlZmluZSBNU1JfSzdfRVZOVFNFTDAgICAgICAgICAgICAweEMwMDEw > MDAwCi0jZGVmaW5lIE1TUl9LN19QRVJGQ1RSMCAgICAgICAgICAgIDB4QzAwMTAwMDQKLSNkZWZp > bmUgTVNSX0s3X0VWTlRTRUwxICAgICAgICAgICAgMHhDMDAxMDAwMQotI2RlZmluZSBNU1JfSzdf > UEVSRkNUUjEgICAgICAgICAgICAweEMwMDEwMDA1Ci0jZGVmaW5lIE1TUl9LN19FVk5UU0VMMiAg > ICAgICAgICAgIDB4QzAwMTAwMDIKLSNkZWZpbmUgTVNSX0s3X1BFUkZDVFIyICAgICAgICAgICAg > MHhDMDAxMDAwNgotI2RlZmluZSBNU1JfSzdfRVZOVFNFTDMgICAgICAgICAgICAweEMwMDEwMDAz > Ci0jZGVmaW5lIE1TUl9LN19QRVJGQ1RSMyAgICAgICAgICAgIDB4QzAwMTAwMDcKLSNkZWZpbmUg > TVNSX0s4X1RPUF9NRU0xCQkgICAweEMwMDEwMDFBCi0jZGVmaW5lIE1TUl9LOF9UT1BfTUVNMgkJ > ICAgMHhDMDAxMDAxRAotI2RlZmluZSBNU1JfSzhfU1lTQ0ZHCQkgICAweEMwMDAwMDEwCQotI2Rl > ZmluZSBNU1JfSzdfSFdDUgkJCTB4QzAwMTAwMTUKLSNkZWZpbmUgTVNSX0s3X0NMS19DVEwJCQkw > eEMwMDEwMDFiCi0jZGVmaW5lIE1TUl9LN19GSURfVklEX0NUTAkJMHhDMDAxMDA0MQotI2RlZmlu > ZSBNU1JfSzdfVklEX1NUQVRVUwkJMHhDMDAxMDA0MgotCi0vKiBLNiBNU1JzICovCisvKiBBTUQg > RGVmaW5lZCBNU1JzICovCiAjZGVmaW5lIE1TUl9LNl9FRkVSCQkJMHhDMDAwMDA4MAogI2RlZmlu > ZSBNU1JfSzZfU1RBUgkJCTB4QzAwMDAwODEKICNkZWZpbmUgTVNSX0s2X1dIQ1IJCQkweEMwMDAw > MDgyCkBAIC0xNzYsNiArMjA0LDI4IEBACiAjZGVmaW5lIE1TUl9LNl9QU09SCQkJMHhDMDAwMDA4 > NwogI2RlZmluZSBNU1JfSzZfUEZJUgkJCTB4QzAwMDAwODgKIAorI2RlZmluZSBNU1JfSzdfRVZO > VFNFTDAJCQkweEMwMDEwMDAwCisjZGVmaW5lIE1TUl9LN19FVk5UU0VMMQkJCTB4QzAwMTAwMDEK > KyNkZWZpbmUgTVNSX0s3X0VWTlRTRUwyCQkJMHhDMDAxMDAwMgorI2RlZmluZSBNU1JfSzdfRVZO > VFNFTDMJCQkweEMwMDEwMDAzCisjZGVmaW5lIE1TUl9LN19QRVJGQ1RSMAkJCTB4QzAwMTAwMDQK > KyNkZWZpbmUgTVNSX0s3X1BFUkZDVFIxCQkJMHhDMDAxMDAwNQorI2RlZmluZSBNU1JfSzdfUEVS > RkNUUjIJCQkweEMwMDEwMDA2CisjZGVmaW5lIE1TUl9LN19QRVJGQ1RSMwkJCTB4QzAwMTAwMDcK > KyNkZWZpbmUgTVNSX0s3X0hXQ1IJCQkweEMwMDEwMDE1CisjZGVmaW5lIE1TUl9LN19DTEtfQ1RM > CQkJMHhDMDAxMDAxYgorI2RlZmluZSBNU1JfSzdfRklEX1ZJRF9DVEwJCTB4QzAwMTAwNDEKKyNk > ZWZpbmUgTVNSX0s3X0ZJRF9WSURfU1RBVFVTCQkweEMwMDEwMDQyCisKKy8qIGV4dGVuZGVkIGZl > YXR1cmUgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgTVNSX0VGRVIgCQkJMHhjMDAwMDA4MAorCisvKiBF > RkVSIGJpdHM6ICovCisKKy8qIEV4ZWN1dGUgRGlzYWJsZSBlbmFibGUgKi8KKyNkZWZpbmUgX0VG > RVJfTlgJCQkxMQorI2RlZmluZSBFRkVSX05YCQkJCSgxPDxfRUZFUl9OWCkKKwogLyogQ2VudGF1 > ci1IYXVscy9JRFQgZGVmaW5lZCBNU1JzLiAqLwogI2RlZmluZSBNU1JfSURUX0ZDUjEJCQkweDEw > NwogI2RlZmluZSBNU1JfSURUX0ZDUjIJCQkweDEwOApAQCAtMTk1LDYgKzI0NSw3IEBACiAvKiBW > SUEgQ3lyaXggZGVmaW5lZCBNU1JzKi8KICNkZWZpbmUgTVNSX1ZJQV9GQ1IJCQkweDExMDcKICNk > ZWZpbmUgTVNSX1ZJQV9MT05HSEFVTAkJMHgxMTBhCisjZGVmaW5lIE1TUl9WSUFfUk5HCQkJMHgx > MTBiCiAjZGVmaW5lIE1TUl9WSUFfQkNSMgkJCTB4MTE0NwogCiAvKiBUcmFuc21ldGEgZGVmaW5l > ZCBNU1JzICovCmRpZmYgLVBOYXVyIHhlbi0yLjAuNS94ZW4vaW5jbHVkZS9hc20teDg2L25taS5o > IHhlbi0yLjAuNS1wcm9mL3hlbi9pbmNsdWRlL2FzbS14ODYvbm1pLmgKLS0tIHhlbi0yLjAuNS94 > ZW4vaW5jbHVkZS9hc20teDg2L25taS5oCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0w > ODAwCisrKyB4ZW4tMi4wLjUtcHJvZi94ZW4vaW5jbHVkZS9hc20teDg2L25taS5oCTIwMDUtMDQt > MDYgMDk6Mjc6MTMuMDAwMDAwMDAwIC0wNzAwCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiAgbGlu > dXgvaW5jbHVkZS9hc20taTM4Ni9ubWkuaAorICovCisjaWZuZGVmIEFTTV9OTUlfSAorI2RlZmlu > ZSBBU01fTk1JX0gKKworc3RydWN0IHhlbl9yZWdzOworIAordHlwZWRlZiBpbnQgKCpubWlfY2Fs > bGJhY2tfdCkoc3RydWN0IHhlbl9yZWdzICogcmVncywgaW50IGNwdSk7CisgCisvKiogCisgKiBz > ZXRfbm1pX2NhbGxiYWNrCisgKgorICogU2V0IGEgaGFuZGxlciBmb3IgYW4gTk1JLiBPbmx5IG9u > ZSBoYW5kbGVyIG1heSBiZQorICogc2V0LiBSZXR1cm4gMSBpZiB0aGUgTk1JIHdhcyBoYW5kbGVk > LgorICovCit2b2lkIHNldF9ubWlfY2FsbGJhY2sobm1pX2NhbGxiYWNrX3QgY2FsbGJhY2spOwor > IAorLyoqIAorICogdW5zZXRfbm1pX2NhbGxiYWNrCisgKgorICogUmVtb3ZlIHRoZSBoYW5kbGVy > IHByZXZpb3VzbHkgc2V0LgorICovCit2b2lkIHVuc2V0X25taV9jYWxsYmFjayh2b2lkKTsKKyAK > KyNlbmRpZiAvKiBBU01fTk1JX0ggKi8KZGlmZiAtUE5hdXIgeGVuLTIuMC41L3hlbi9pbmNsdWRl > L3B1YmxpYy94ZW4uaCB4ZW4tMi4wLjUtcHJvZi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKLS0t > IHhlbi0yLjAuNS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgJMjAwNS0wMy0xMCAxMTo1MjoxMy4w > MDAwMDAwMDAgLTA4MDAKKysrIHhlbi0yLjAuNS1wcm9mL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4u > aAkyMDA1LTA0LTA2IDA5OjI3OjEzLjAwMDAwMDAwMCAtMDcwMApAQCAtNCw2ICs0LDEwIEBACiAg > KiBHdWVzdCBPUyBpbnRlcmZhY2UgdG8gWGVuLgogICogCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQs > IEsgQSBGcmFzZXIKKyAqCisgKiBNb2RpZmllZCBieSBBcmF2aW5kIE1lbm9uIGZvciBzdXBwb3J0 > aW5nIG9wcm9maWxlCisgKiBUaGVzZSBtb2RpZmljYXRpb25zIGFyZToKKyAqIENvcHlyaWdodCAo > QykgMjAwNSBIZXdsZXR0LVBhY2thcmQgQ28uCiAgKi8KIAogI2lmbmRlZiBfX1hFTl9QVUJMSUNf > WEVOX0hfXwpAQCAtNDgsNiArNTIsNyBAQAogI2RlZmluZSBfX0hZUEVSVklTT1Jfdm1fYXNzaXN0 > ICAgICAgICAgICAgMjEKICNkZWZpbmUgX19IWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nX290 > aGVyZG9tYWluIDIyCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9zd2l0Y2hfdm04NiAgICAgICAgICAy > MworI2RlZmluZSBfX0hZUEVSVklTT1JfcG1jX29wICAgICAgICAgICAgICAgMjQKIAogLyoKICAq > IE1VTFRJQ0FMTFMKQEAgLTcxLDcgKzc2LDggQEAKICNkZWZpbmUgVklSUV9ET01fRVhDICAgIDQg > IC8qIChET00wKSBFeGNlcHRpb25hbCBldmVudCBmb3Igc29tZSBkb21haW4uICAgKi8KICNkZWZp > bmUgVklSUV9QQVJJVFlfRVJSIDUgIC8qIChET00wKSBOTUkgcGFyaXR5IGVycm9yLiAgICAgICAg > ICAgICAgICAgICAgKi8KICNkZWZpbmUgVklSUV9JT19FUlIgICAgIDYgIC8qIChET00wKSBOTUkg > SS9PIGVycm9yLiAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgTlJfVklSUVMgICAg > ICAgIDcKKyNkZWZpbmUgVklSUV9QTUNfT1ZGCTcgIC8qIFBNQyBPdmVyZmxvdyAqLworI2RlZmlu > ZSBOUl9WSVJRUyAgICAgICAgOAogCiAvKgogICogTU1VLVVQREFURSBSRVFVRVNUUwpAQCAtMTk4 > LDYgKzIwNCwyMSBAQAogI2RlZmluZSBWTUFTU1RfVFlQRV93cml0YWJsZV9wYWdldGFibGVzICAy > CiAjZGVmaW5lIE1BWF9WTUFTU1RfVFlQRSAyCiAKKy8qCisgKiBDb21tYW5kcyB0byBIWVBFUlZJ > U09SX3BtY19vcCgpLgorICovCisjZGVmaW5lIFBNQ19JTklUCQkwCisjZGVmaW5lIFBNQ19TRVRf > QUNUSVZFCQkxCisjZGVmaW5lIFBNQ19TRVRfUEFTU0lWRQkJMgorI2RlZmluZSBQTUNfUkVTRVJW > RV9DT1VOVEVSUwkzCisjZGVmaW5lIFBNQ19TRVRVUF9FVkVOVFMJNAorI2RlZmluZSBQTUNfRU5B > QkxFX1ZJUlEJCTUKKyNkZWZpbmUgUE1DX1NUQVJUCQk2CisjZGVmaW5lIFBNQ19TVE9QCQk3Cisj > ZGVmaW5lIFBNQ19ESVNBQkxFX1ZJUlEJOAorI2RlZmluZSBQTUNfUkVMRUFTRV9DT1VOVEVSUwk5 > CisjZGVmaW5lIFBNQ19TSFVURE9XTgkJMTAKKwogI2lmbmRlZiBfX0FTU0VNQkxZX18KIAogdHlw > ZWRlZiB1MTYgZG9taWRfdDsKQEAgLTI1Myw2ICsyNzQsOCBAQAogLyogTm8gc3VwcG9ydCBmb3Ig > bXVsdGktcHJvY2Vzc29yIGd1ZXN0cy4gKi8KICNkZWZpbmUgTUFYX1ZJUlRfQ1BVUyAxCiAKKyNk > ZWZpbmUgTUFYX09QUk9GX0VWRU5UUwkzMgorI2RlZmluZSBNQVhfT1BST0ZfRE9NQUlOUwkyNQkK > IC8qCiAgKiBYZW4vZ3Vlc3RvcyBzaGFyZWQgZGF0YSAtLSBwb2ludGVyIHByb3ZpZGVkIGluIHN0 > YXJ0X2luZm8uCiAgKiBOQi4gV2UgZXhwZWN0IHRoYXQgdGhpcyBzdHJ1Y3QgaXMgc21hbGxlciB0 > aGFuIGEgcGFnZS4KQEAgLTM2MCw2ICszODMsMjAgQEAKIAogICAgIGFyY2hfc2hhcmVkX2luZm9f > dCBhcmNoOwogCisgICAgLyogT3Byb2ZpbGUgc3RydWN0dXJlcyAqLworICAgIHU4IGV2ZW50X2hl > YWQ7CisgICAgdTggZXZlbnRfdGFpbDsKKyAgICBzdHJ1Y3QgeworCXUzMiBlaXA7CisJdTggbW9k > ZTsKKwl1OCBldmVudDsKKyAgICB9IFBBQ0tFRCBldmVudF9sb2dbTUFYX09QUk9GX0VWRU5UU107 > CisgICAgdTggbG9zaW5nX3NhbXBsZXM7CisgICAgdTY0IHNhbXBsZXNfbG9zdDsKKyAgICB1MzIg > bm1pX3Jlc3RhcnRzOworICAgIHU2NCBhY3RpdmVfc2FtcGxlczsKKyAgICB1NjQgcGFzc2l2ZV9z > YW1wbGVzOworICAgIHU2NCBvdGhlcl9zYW1wbGVzOwogfSBQQUNLRUQgc2hhcmVkX2luZm9fdDsK > IAogLyoKZGlmZiAtUE5hdXIgeGVuLTIuMC41L3hlbi9pbmNsdWRlL3hlbi9zbXAuaCB4ZW4tMi4w > LjUtcHJvZi94ZW4vaW5jbHVkZS94ZW4vc21wLmgKLS0tIHhlbi0yLjAuNS94ZW4vaW5jbHVkZS94 > ZW4vc21wLmgJMjAwNS0wMy0xMCAxMTo1MjoxNi4wMDAwMDAwMDAgLTA4MDAKKysrIHhlbi0yLjAu > NS1wcm9mL3hlbi9pbmNsdWRlL3hlbi9zbXAuaAkyMDA1LTA0LTA2IDA5OjI3OjEzLjAwMDAwMDAw > MCAtMDcwMApAQCAtNDcsNiArNDcsMTggQEAKIAkJCSAgICAgIGludCByZXRyeSwgaW50IHdhaXQp > OwogCiAvKgorICogQ2FsbCBhIGZ1bmN0aW9uIG9uIGFsbCBwcm9jZXNzb3JzCisgKi8KK3N0YXRp > YyBpbmxpbmUgaW50IG9uX2VhY2hfY3B1KHZvaWQgKCpmdW5jKSAodm9pZCAqaW5mbyksIHZvaWQg > KmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0cnksIGludCB3YWl0 > KQoreworICAgICAgICBpbnQgcmV0ID0gMDsKKyAgICAgICAgcmV0ID0gc21wX2NhbGxfZnVuY3Rp > b24oZnVuYywgaW5mbywgcmV0cnksIHdhaXQpOworICAgICAgICBmdW5jKGluZm8pOworICAgICAg > ICByZXR1cm4gcmV0OworfQorCisvKgogICogVHJ1ZSBvbmNlIHRoZSBwZXIgcHJvY2VzcyBpZGxl > IGlzIGZvcmtlZAogICovCiBleHRlcm4gaW50IHNtcF90aHJlYWRzX3JlYWR5OwpAQCAtODUsNiAr > OTcsNyBAQAogI2RlZmluZSBjcHVfbG9naWNhbF9tYXAoY3B1KQkJCTAKICNkZWZpbmUgY3B1X251 > bWJlcl9tYXAoY3B1KQkJCTAKICNkZWZpbmUgc21wX2NhbGxfZnVuY3Rpb24oZnVuYyxpbmZvLHJl > dHJ5LHdhaXQpCSh7IDA7IH0pCisjZGVmaW5lIG9uX2VhY2hfY3B1KGZ1bmMsaW5mbyxyZXRyeSx3 > YWl0KSAgICAgICAoeyBmdW5jKGluZm8pOyAwOyB9KQogI2RlZmluZSBjcHVfb25saW5lX21hcAkJ > CQkxCiAKICNlbmRpZgo= > > ------_=_NextPart_001_01C53CB2.59CE8456 > Content-Type: text/plain; charset="us-ascii" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Content-Disposition: inline > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > > ------_=_NextPart_001_01C53CB2.59CE8456-- > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |