From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?QXVyw6lsaWVu?= Subject: Re: Optics (SFP) monitoring on ixgbe and igbe Date: Sun, 2 Dec 2012 23:00:02 +0100 Message-ID: References: <1352318339.2725.34.camel@bwh-desktop.uk.solarflarecom.com> <1352473713.3159.4.camel@bwh-desktop.uk.solarflarecom.com> <50A570D7.3080409@gmail.com> <1353022205.4867.76.camel@deadeye.wl.decadent.org.uk> <1353094719.2743.21.camel@bwh-desktop.uk.solarflarecom.com> <1354335498.2640.23.camel@bwh-desktop.uk.solarflarecom.com> Reply-To: footplus@gmail.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001636eef15e6c8cf804cfe5c2eb Cc: netdev@vger.kernel.org To: Ben Hutchings Return-path: Received: from mail-qa0-f53.google.com ([209.85.216.53]:50152 "EHLO mail-qa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751789Ab2LBWAY (ORCPT ); Sun, 2 Dec 2012 17:00:24 -0500 Received: by mail-qa0-f53.google.com with SMTP id a19so823882qad.19 for ; Sun, 02 Dec 2012 14:00:23 -0800 (PST) In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: --001636eef15e6c8cf804cfe5c2eb Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sun, Dec 2, 2012 at 10:47 PM, Aur=C3=A9lien wrote: >> >> This version drops the -lm completely, so it doesn't link. Maybe you >> edited the generated Makefile or Makefile.in? > > No, I just stupidly forgot to make distclean & autogen after removing > all libm checks. Re-added AC_CHECK_LIB to link with it. > Just after re-reading this, I thought it was silly; I instead edited Makefile.am and reverted the configure.ac change. Here's a new full-patch with that fix along with the rest. Sorry for the noise. --=20 Aur=C3=A9lien Guillaume --001636eef15e6c8cf804cfe5c2eb Content-Type: application/octet-stream; name="0001-Implemented-basic-optics-diagnostics-for-SFF-8472.patch" Content-Disposition: attachment; filename="0001-Implemented-basic-optics-diagnostics-for-SFF-8472.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ha8ppa601 RnJvbSBjNmU1ODk4OGMwYzMwMTIzZjc4ZTBhZTgzNzMwNjk3YmIyYjE1OWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdXJlbGllbiBHdWlsbGF1bWUgPGF1cmVsaWVuQGl3aS5tZT4K RGF0ZTogU3VuLCAyIERlYyAyMDEyIDIxOjIxOjAxICswMTAwClN1YmplY3Q6IFtQQVRDSF0gSW1w bGVtZW50ZWQgYmFzaWMgb3B0aWNzIGRpYWdub3N0aWNzIGZvciBTRkYtODQ3MgoKClNpZ25lZC1v ZmYtYnk6IEF1cmVsaWVuIEd1aWxsYXVtZSA8YXVyZWxpZW5AaXdpLm1lPgotLS0KIE1ha2VmaWxl LmFtICAgIHwgICAgMyArLQogZXRodG9vbC44LmluICAgfCAgICA4ICstCiBldGh0b29sLmMgICAg ICB8ICAgMTcgKysrLQogaW50ZXJuYWwuaCAgICAgfCAgICAzICsKIHNmcGRpYWcuYyAgICAgIHwg IDM2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogc2ZwaWQuYyAgICAgICAgfCAgIDI4ICsrKy0tCiB0ZXN0LWNtZGxpbmUuYyB8ICAgIDIg KwogNyBmaWxlcyBjaGFuZ2VkLCA0MDQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc2ZwZGlhZy5jCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9N YWtlZmlsZS5hbQppbmRleCBlMzNmNzFmLi5iYTFmYWE2IDEwMDY0NAotLS0gYS9NYWtlZmlsZS5h bQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMSw0ICsxLDUgQEAKIEFNX0NGTEFHUyA9IC1XYWxsCitM REFERCA9IC1sbQogCiBtYW5fTUFOUyA9IGV0aHRvb2wuOAogRVhUUkFfRElTVCA9IExJQ0VOU0Ug ZXRodG9vbC44IGV0aHRvb2wuc3BlYy5pbiBhY2xvY2FsLm00IENoYW5nZUxvZyBhdXRvZ2VuLnNo CkBAIC05LDcgKzEwLDcgQEAgZXRodG9vbF9TT1VSQ0VTID0gZXRodG9vbC5jIGV0aHRvb2wtY29w eS5oIGludGVybmFsLmggbmV0X3RzdGFtcC1jb3B5LmggXAogCQkgIGZlY184eHguYyBpYm1fZW1h Yy5jIGl4Z2IuYyBpeGdiZS5jIG5hdHNlbWkuYwlcCiAJCSAgcGNuZXQzMi5jIHJlYWx0ZWsuYyB0 ZzMuYyBtYXJ2ZWxsLmMgdmlvYy5jCVwKIAkJICBzbXNjOTExeC5jIGF0NzZjNTB4LXVzYi5jIHNm Yy5jIHN0bW1hYy5jCVwKLQkJICByeGNsYXNzLmMgc2ZwaWQuYworCQkgIHJ4Y2xhc3MuYyBzZnBp ZC5jIHNmcGRpYWcuYwogCiBURVNUUyA9IHRlc3QtY21kbGluZSB0ZXN0LWZlYXR1cmVzCiBjaGVj a19QUk9HUkFNUyA9IHRlc3QtY21kbGluZSB0ZXN0LWZlYXR1cmVzCmRpZmYgLS1naXQgYS9ldGh0 b29sLjguaW4gYi9ldGh0b29sLjguaW4KaW5kZXggYTNjN2ZiYi4uZTcwMTkxOSAxMDA2NDQKLS0t IGEvZXRodG9vbC44LmluCisrKyBiL2V0aHRvb2wuOC5pbgpAQCAtMzEyLDcgKzMxMiw3IEBAIGV0 aHRvb2wgXC0gcXVlcnkgb3IgY29udHJvbCBuZXR3b3JrIGRyaXZlciBhbmQgaGFyZHdhcmUgc2V0 dGluZ3MKIC5CTiBvdGhlcgogLkJOIGNvbWJpbmVkCiAuSFAKLS5CIGV0aHRvb2wgXC1tfFwtXC1k dW1wXC1tb2R1bGVcLWVlcHJvbQorLkIgZXRodG9vbCBcLW18XC1cLWR1bXBcLW1vZHVsZVwtZWVw cm9tfFwtXC1tb2R1bGVcLWluZm8KIC5JIGRldm5hbWUKIC5CMiByYXcgb24gb2ZmCiAuQjIgaGV4 IG9uIG9mZgpAQCAtODE1LDggKzgxNSwxMCBAQCBDaGFuZ2VzIHRoZSBudW1iZXIgb2YgY2hhbm5l bHMgdXNlZCBvbmx5IGZvciBvdGhlciBwdXJwb3NlcyBlLmcuIGxpbmsgaW50ZXJydXB0cwogLkJJ IGNvbWJpbmVkIFwgTgogQ2hhbmdlcyB0aGUgbnVtYmVyIG9mIG11bHRpLXB1cnBvc2UgY2hhbm5l bHMuCiAuVFAKLS5CIFwtbSBcLVwtZHVtcFwtbW9kdWxlXC1lZXByb20KLVJldHJpZXZlcyBhbmQg aWYgcG9zc2libGUgZGVjb2RlcyB0aGUgRUVQUk9NIGZyb20gcGx1Z2luIG1vZHVsZXMsIGUuZyBT RlArLCBRU0ZQCisuQiBcLW0gXC1cLWR1bXBcLW1vZHVsZVwtZWVwcm9tIFwtXC1tb2R1bGVcLWlu Zm8KK1JldHJpZXZlcyBhbmQgaWYgcG9zc2libGUgZGVjb2RlcyB0aGUgRUVQUk9NIGZyb20gcGx1 Z2luIG1vZHVsZXMsIGUuZyBTRlArLCBRU0ZQLgorSWYgdGhlIGRyaXZlciBhbmQgbW9kdWxlIHN1 cHBvcnQgaXQsIHRoZSBvcHRpY2FsIGRpYWdub3N0aWMgaW5mb3JtYXRpb24gaXMgYWxzbworcmVh ZCBhbmQgZGVjb2RlZC4KIC5UUAogLkIgXC1cLXNob3dcLXByaXZcLWZsYWdzCiBRdWVyaWVzIHRo ZSBzcGVjaWZpZWQgbmV0d29yayBkZXZpY2UgZm9yIGl0cyBwcml2YXRlIGZsYWdzLiAgVGhlCmRp ZmYgLS1naXQgYS9ldGh0b29sLmMgYi9ldGh0b29sLmMKaW5kZXggM2RiN2ZlYy4uMzQ1YzIxYyAx MDA2NDQKLS0tIGEvZXRodG9vbC5jCisrKyBiL2V0aHRvb2wuYwpAQCAtMzYwNCw2ICszNjA0LDE2 IEBAIHN0YXRpYyBpbnQgZG9fZ2V0bW9kdWxlKHN0cnVjdCBjbWRfY29udGV4dCAqY3R4KQogCQly ZXR1cm4gMTsKIAl9CiAKKwkvKgorCSAqIFNGRi04MDc5IEVFUFJPTSBsYXlvdXQgY29udGFpbnMg dGhlIG1lbW9yeSBhdmFpbGFibGUgYXQgQTAgYWRkcmVzcyBvbgorCSAqIHRoZSBQSFkgRUVQUk9N LgorCSAqIFNGRi04NDcyIGRlZmluZXMgYSB2aXJ0dWFsIGV4dGVuc2lvbiBvZiB0aGUgRUVQUk9N LCB3aGVyZSB0aGUKKwkgKiBtaWNyb2NvbnRyb2xsZXIgb24gdGhlIFNGUC9TRlArIGdlbmVyYXRl cyBhIHBhZ2UgYXQgdGhlIEEyIGFkZHJlc3MsCisJICogd2hpY2ggY29udGFpbnMgZGF0YSByZWxh dGl2ZSB0byBvcHRpY2FsIGRpYWdub3N0aWNzLgorCSAqIFRoZSBjdXJyZW50IGtlcm5lbCBpbXBs ZW1lbnRhdGlvbiByZXR1cm5zIGEgYmxvYiwgd2hpY2ggY29udGFpbnM6CisJICogIC0gRVRIX01P RFVMRV9TRkZfODA3OSA9PiBUaGUgQTAgcGFnZSBvbmx5LgorCSAqICAtIEVUSF9NT0RVTEVfU0ZG Xzg0NzIgPT4gVGhlIEEwIGFuZCBBMiBwYWdlIGNvbmNhdGVuYXRlZC4KKwkgKi8KIAlpZiAoZ2Vl cHJvbV9kdW1wX3JhdykgewogCQlmd3JpdGUoZWVwcm9tLT5kYXRhLCAxLCBlZXByb20tPmxlbiwg c3Rkb3V0KTsKIAl9IGVsc2UgewpAQCAtMzYxMyw4ICszNjIzLDExIEBAIHN0YXRpYyBpbnQgZG9f Z2V0bW9kdWxlKHN0cnVjdCBjbWRfY29udGV4dCAqY3R4KQogCQl9IGVsc2UgaWYgKCFnZWVwcm9t X2R1bXBfaGV4KSB7CiAJCQlzd2l0Y2ggKG1vZGluZm8udHlwZSkgewogCQkJY2FzZSBFVEhfTU9E VUxFX1NGRl84MDc5OgorCQkJCXNmZjgwNzlfc2hvd19hbGwoZWVwcm9tLT5kYXRhKTsKKwkJCQli cmVhazsKIAkJCWNhc2UgRVRIX01PRFVMRV9TRkZfODQ3MjoKIAkJCQlzZmY4MDc5X3Nob3dfYWxs KGVlcHJvbS0+ZGF0YSk7CisJCQkJc2ZmODQ3Ml9zaG93X2FsbChlZXByb20tPmRhdGEpOwogCQkJ CWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQlnZWVwcm9tX2R1bXBfaGV4ID0gMTsKQEAgLTM4MzEs OCArMzg0NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIHsKIAl7ICItLXNob3ctcHJp di1mbGFncyIgLCAxLCBkb19ncHJpdmZsYWdzLCAiUXVlcnkgcHJpdmF0ZSBmbGFncyIgfSwKIAl7 ICItLXNldC1wcml2LWZsYWdzIiwgMSwgZG9fc3ByaXZmbGFncywgIlNldCBwcml2YXRlIGZsYWdz IiwKIAkgICIJCUZMQUcgb258b2ZmIC4uLlxuIiB9LAotCXsgIi1tfC0tZHVtcC1tb2R1bGUtZWVw cm9tIiwgMSwgZG9fZ2V0bW9kdWxlLAotCSAgIlFldWVyeS9EZWNvZGUgTW9kdWxlIEVFUFJPTSBp bmZvcm1hdGlvbiIsCisJeyAiLW18LS1kdW1wLW1vZHVsZS1lZXByb218LS1tb2R1bGUtaW5mbyIs IDEsIGRvX2dldG1vZHVsZSwKKwkgICJRdWVyeS9EZWNvZGUgTW9kdWxlIEVFUFJPTSBpbmZvcm1h dGlvbiBhbmQgb3B0aWNhbCBkaWFnbm9zdGljcyBpZiBhdmFpbGFibGUiLAogCSAgIgkJWyByYXcg b258b2ZmIF1cbiIKIAkgICIJCVsgaGV4IG9ufG9mZiBdXG4iCiAJICAiCQlbIG9mZnNldCBOIF1c biIKZGlmZiAtLWdpdCBhL2ludGVybmFsLmggYi9pbnRlcm5hbC5oCmluZGV4IDRmOTZmZDUuLmU5 NzdhODEgMTAwNjQ0Ci0tLSBhL2ludGVybmFsLmgKKysrIGIvaW50ZXJuYWwuaApAQCAtMjUzLDQg KzI1Myw3IEBAIGludCByeGNsYXNzX3J1bGVfZGVsKHN0cnVjdCBjbWRfY29udGV4dCAqY3R4LCBf X3UzMiBsb2MpOwogLyogTW9kdWxlIEVFUFJPTSBwYXJzaW5nIGNvZGUgKi8KIHZvaWQgc2ZmODA3 OV9zaG93X2FsbChjb25zdCBfX3U4ICppZCk7CiAKKy8qIE9wdGljcyBkaWFnbm9zdGljcyAqLwor dm9pZCBzZmY4NDcyX3Nob3dfYWxsKGNvbnN0IF9fdTggKmlkKTsKKwogI2VuZGlmIC8qIEVUSFRP T0xfSU5URVJOQUxfSF9fICovCmRpZmYgLS1naXQgYS9zZnBkaWFnLmMgYi9zZnBkaWFnLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3ZTQ5MQotLS0gL2Rldi9udWxsCisr KyBiL3NmcGRpYWcuYwpAQCAtMCwwICsxLDM2MiBAQAorLyoKKyAqIHNmcGRpYWcuYzogSW1wbGVt ZW50cyBTRkYtODQ3MiBvcHRpY3MgZGlhZ25vc3RpY3MuCisgKgorICogQXVyZWxpZW4gR3VpbGxh dW1lIDxhdXJlbGllbkBpd2kubWU+IChDKSAyMDEyCisgKiAgIFRoaXMgaW1wbGVtZW50YXRpb24g aXMgbG9vc2VseSBiYXNlZCBvbiBET00gcGF0Y2hlcworICogICBmcm9tIFJvYmVydCBPbHNzb24g PHJvYmVydEBoZXJqdWxmLnNlPiAoQykgMjAwOQorICogICBhbmQgU0ZGLTg0NzIgc3BlY3MgKGZ0 cDovL2Z0cC5zZWFnYXRlLmNvbS9wdWIvc2ZmL1NGRi04NDcyLlBERikKKyAqICAgYnkgU0ZGIENv bW1pdHRlZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxtYXRoLmg+Cisj aW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworLyogT2Zmc2V0 cyBpbiBkZWNpbWFsLCBmb3IgZGlyZWN0IGNvbXBhcmlzb24gd2l0aCB0aGUgU0ZGIHNwZWNzICov CisKKy8qIEEwLWJhc2VkIEVFUFJPTSBvZmZzZXRzIGZvciBET00gc3VwcG9ydCBjaGVja3MgKi8K KyNkZWZpbmUgU0ZGX0EwX0RPTSAgICAgICAgICAgICAgICAgICAgICAgIDkyCisjZGVmaW5lIFNG Rl9BMF9PUFRJT05TICAgICAgICAgICAgICAgICAgICA5MworI2RlZmluZSBTRkZfQTBfQ09NUCAg ICAgICAgICAgICAgICAgICAgICAgOTQKKworLyogRUVQUk9NIGJpdCB2YWx1ZXMgZm9yIHZhcmlv dXMgcmVnaXN0ZXJzICovCisjZGVmaW5lIFNGRl9BMF9ET01fRVhUQ0FMICAgICAgICAgICAgICAg ICAoMSA8PCA0KQorI2RlZmluZSBTRkZfQTBfRE9NX0lOVENBTCAgICAgICAgICAgICAgICAgKDEg PDwgNSkKKyNkZWZpbmUgU0ZGX0EwX0RPTV9JTVBMICAgICAgICAgICAgICAgICAgICgxIDw8IDYp CisjZGVmaW5lIFNGRl9BMF9ET01fUFdSVCAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQorCisj ZGVmaW5lIFNGRl9BMF9PUFRJT05TX0FXICAgICAgICAgICAgICAgICAoMSA8PCA3KQorCisvKgor ICogU2VlIGV0aHRvb2wuYyBjb21tZW50cyBhYm91dCBTRkYtODQ3MiwgdGhpcyBpcyB0aGUgb2Zm c2V0CisgKiBhdCB3aGljaCB0aGUgQTIgcGFnZSBpcyBpbiB0aGUgRUVQUk9NIGJsb2IgcmV0dXJu ZWQgYnkgdGhlCisgKiBrZXJuZWwuCisgKi8KKyNkZWZpbmUgU0ZGX0EyX0JBU0UgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAwCisKKy8qIEEyLWJhc2VkIG9mZnNldHMgZm9yIERPTSAqLworI2Rl ZmluZSBTRkZfQTJfVEVNUCAgICAgICAgICAgICAgICAgICAgICAgOTYKKyNkZWZpbmUgU0ZGX0Ey X1RFTVBfSEFMUk0gICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU0ZGX0EyX1RFTVBfTEFMUk0g ICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgU0ZGX0EyX1RFTVBfSFdBUk4gICAgICAgICAgICAg ICAgIDQKKyNkZWZpbmUgU0ZGX0EyX1RFTVBfTFdBUk4gICAgICAgICAgICAgICAgIDYKKworI2Rl ZmluZSBTRkZfQTJfVkNDICAgICAgICAgICAgICAgICAgICAgICAgOTgKKyNkZWZpbmUgU0ZGX0Ey X1ZDQ19IQUxSTSAgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgU0ZGX0EyX1ZDQ19MQUxSTSAg ICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIFNGRl9BMl9WQ0NfSFdBUk4gICAgICAgICAgICAg ICAgICAxMgorI2RlZmluZSBTRkZfQTJfVkNDX0xXQVJOICAgICAgICAgICAgICAgICAgMTQKKwor I2RlZmluZSBTRkZfQTJfQklBUyAgICAgICAgICAgICAgICAgICAgICAgOTYKKyNkZWZpbmUgU0ZG X0EyX0JJQVNfSEFMUk0gICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIFNGRl9BMl9CSUFTX0xB TFJNICAgICAgICAgICAgICAgICAxOAorI2RlZmluZSBTRkZfQTJfQklBU19IV0FSTiAgICAgICAg ICAgICAgICAgMjAKKyNkZWZpbmUgU0ZGX0EyX0JJQVNfTFdBUk4gICAgICAgICAgICAgICAgIDIy CisKKyNkZWZpbmUgU0ZGX0EyX1RYX1BXUiAgICAgICAgICAgICAgICAgICAgIDEwMgorI2RlZmlu ZSBTRkZfQTJfVFhfUFdSX0hBTFJNICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgU0ZGX0EyX1RY X1BXUl9MQUxSTSAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIFNGRl9BMl9UWF9QV1JfSFdBUk4g ICAgICAgICAgICAgICAyOAorI2RlZmluZSBTRkZfQTJfVFhfUFdSX0xXQVJOICAgICAgICAgICAg ICAgMzAKKworI2RlZmluZSBTRkZfQTJfUlhfUFdSICAgICAgICAgICAgICAgICAgICAgMTA0Cisj ZGVmaW5lIFNGRl9BMl9SWF9QV1JfSEFMUk0gICAgICAgICAgICAgICAzMgorI2RlZmluZSBTRkZf QTJfUlhfUFdSX0xBTFJNICAgICAgICAgICAgICAgMzQKKyNkZWZpbmUgU0ZGX0EyX1JYX1BXUl9I V0FSTiAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIFNGRl9BMl9SWF9QV1JfTFdBUk4gICAgICAg ICAgICAgICAzOAorCisjZGVmaW5lIFNGRl9BMl9BTFJNX0ZMRyAgICAgICAgICAgICAgICAgICAx MTIKKyNkZWZpbmUgU0ZGX0EyX1dBUk5fRkxHICAgICAgICAgICAgICAgICAgIDExNgorCisvKiAz Mi1iaXQgbGl0dGxlLWVuZGlhbiBjYWxpYnJhdGlvbiBjb25zdGFudHMgKi8KKyNkZWZpbmUgU0ZG X0EyX0NBTF9SWFBXUjQgICAgICAgICAgICAgICAgIDU2CisjZGVmaW5lIFNGRl9BMl9DQUxfUlhQ V1IzICAgICAgICAgICAgICAgICA2MAorI2RlZmluZSBTRkZfQTJfQ0FMX1JYUFdSMiAgICAgICAg ICAgICAgICAgNjQKKyNkZWZpbmUgU0ZGX0EyX0NBTF9SWFBXUjEgICAgICAgICAgICAgICAgIDY4 CisjZGVmaW5lIFNGRl9BMl9DQUxfUlhQV1IwICAgICAgICAgICAgICAgICA3MgorCisvKiAxNi1i aXQgbGl0dGxlIGVuZGlhbiBjYWxpYnJhdGlvbiBjb25zdGFudHMgKi8KKyNkZWZpbmUgU0ZGX0Ey X0NBTF9UWElfU0xQICAgICAgICAgICAgICAgIDc2CisjZGVmaW5lIFNGRl9BMl9DQUxfVFhJX09G RiAgICAgICAgICAgICAgICA3OAorI2RlZmluZSBTRkZfQTJfQ0FMX1RYUFdSX1NMUCAgICAgICAg ICAgICAgODAKKyNkZWZpbmUgU0ZGX0EyX0NBTF9UWFBXUl9PRkYgICAgICAgICAgICAgIDgyCisj ZGVmaW5lIFNGRl9BMl9DQUxfVF9TTFAgICAgICAgICAgICAgICAgICA4NAorI2RlZmluZSBTRkZf QTJfQ0FMX1RfT0ZGICAgICAgICAgICAgICAgICAgODYKKyNkZWZpbmUgU0ZGX0EyX0NBTF9WX1NM UCAgICAgICAgICAgICAgICAgIDg4CisjZGVmaW5lIFNGRl9BMl9DQUxfVl9PRkYgICAgICAgICAg ICAgICAgICA5MAorCisKK3N0cnVjdCBzZmY4NDcyX2RpYWdzIHsKKworI2RlZmluZSBNQ1VSUiAw CisjZGVmaW5lIExXQVJOIDEKKyNkZWZpbmUgSFdBUk4gMgorI2RlZmluZSBMQUxSTSAzCisjZGVm aW5lIEhBTFJNIDQKKworCS8qIFs1XSB0YWJsZXMgYXJlIGN1cnJlbnQsIGxvdy9oaWdoIHdhcm4s IGxvdy9oaWdoIGFsYXJtICovCisJX191OCBzdXBwb3J0c19kb207ICAgICAgLyogU3VwcG9ydHMg RE9NICovCisJX191OCBzdXBwb3J0c19hbGFybXM7ICAgLyogU3VwcG9ydHMgYWxhcm0vd2Fybmlu ZyB0aG9sZCAqLworCV9fdTggY2FsaWJyYXRlZF9leHQ7ICAgIC8qIElzIGV4dGVybmFsbHkgY2Fs aWJyYXRlZCAqLworCV9fdTE2IGJpYXNfY3VyWzVdOyAgICAgIC8qIE1lYXN1cmVkIGJpYXMgY3Vy cmVudCBpbiAydUEgdW5pdHMgKi8KKwlfX3UxNiB0eF9wb3dlcls1XTsgICAgICAvKiBNZWFzdXJl ZCBUWCBQb3dlciBpbiAwLjF1VyB1bml0cyAqLworCV9fdTE2IHJ4X3Bvd2VyWzVdOyAgICAgIC8q IE1lYXN1cmVkIFJYIFBvd2VyICovCisJX191OCAgcnhfcG93ZXJfdHlwZTsgICAgLyogMCA9IE9N QSwgMSA9IEF2ZXJhZ2UgcG93ZXIgKi8KKwlfX3MxNiBzZnBfdGVtcFs1XTsgICAgICAvKiBTRlAg VGVtcCBpbiAxNi1iaXQgc2lnbmVkIDEvMjU2IENlbGNpdXMgKi8KKwlfX3UxNiBzZnBfdm9sdGFn ZVs1XTsgICAvKiBTRlAgdm9sdGFnZSBpbiAwLjFtViB1bml0cyAqLworCit9OworCitzdGF0aWMg c3RydWN0IHNmZjg0NzJfYXdfZmxhZ3MgeworCWNvbnN0IGNoYXIgKnN0cjsgICAgICAgIC8qIEh1 bWFuLXJlYWRhYmxlIHN0cmluZywgbnVsbCBhdCB0aGUgZW5kICovCisJaW50IG9mZnNldDsgICAg ICAgICAgICAgLyogQTItcmVsYXRpdmUgYWRyZXNzIG9mZnNldCAqLworCV9fdTggdmFsdWU7ICAg ICAgICAgICAgIC8qIEFsYXJtIGlzIG9uIGlmIChvZmZzZXQgJiB2YWx1ZSkgIT0gMC4gKi8KK30g c2ZmODQ3Ml9hd19mbGFnc1tdID0geworCXsgIkxhc2VyIGJpYXMgY3VycmVudCBoaWdoIGFsYXJt IiwgICBTRkZfQTJfQUxSTV9GTEcsICgxIDw8IDMpIH0sCisJeyAiTGFzZXIgYmlhcyBjdXJyZW50 IGxvdyBhbGFybSIsICAgIFNGRl9BMl9BTFJNX0ZMRywgKDEgPDwgMikgfSwKKwl7ICJMYXNlciBi aWFzIGN1cnJlbnQgaGlnaCB3YXJuaW5nIiwgU0ZGX0EyX1dBUk5fRkxHLCAoMSA8PCAzKSB9LAor CXsgIkxhc2VyIGJpYXMgY3VycmVudCBsb3cgd2FybmluZyIsICBTRkZfQTJfV0FSTl9GTEcsICgx IDw8IDIpIH0sCisKKwl7ICJMYXNlciBvdXRwdXQgcG93ZXIgaGlnaCBhbGFybSIsICAgU0ZGX0Ey X0FMUk1fRkxHLCAoMSA8PCAxKSB9LAorCXsgIkxhc2VyIG91dHB1dCBwb3dlciBsb3cgYWxhcm0i LCAgICBTRkZfQTJfQUxSTV9GTEcsICgxIDw8IDApIH0sCisJeyAiTGFzZXIgb3V0cHV0IHBvd2Vy IGhpZ2ggd2FybmluZyIsIFNGRl9BMl9XQVJOX0ZMRywgKDEgPDwgMSkgfSwKKwl7ICJMYXNlciBv dXRwdXQgcG93ZXIgbG93IHdhcm5pbmciLCAgU0ZGX0EyX1dBUk5fRkxHLCAoMSA8PCAwKSB9LAor CisJeyAiTW9kdWxlIHRlbXBlcmF0dXJlIGhpZ2ggYWxhcm0iLCAgIFNGRl9BMl9BTFJNX0ZMRywg KDEgPDwgNykgfSwKKwl7ICJNb2R1bGUgdGVtcGVyYXR1cmUgbG93IGFsYXJtIiwgICAgU0ZGX0Ey X0FMUk1fRkxHLCAoMSA8PCA2KSB9LAorCXsgIk1vZHVsZSB0ZW1wZXJhdHVyZSBoaWdoIHdhcm5p bmciLCBTRkZfQTJfV0FSTl9GTEcsICgxIDw8IDcpIH0sCisJeyAiTW9kdWxlIHRlbXBlcmF0dXJl IGxvdyB3YXJuaW5nIiwgIFNGRl9BMl9XQVJOX0ZMRywgKDEgPDwgNikgfSwKKworCXsgIk1vZHVs ZSB2b2x0YWdlIGhpZ2ggYWxhcm0iLCAgIFNGRl9BMl9BTFJNX0ZMRywgKDEgPDwgNSkgfSwKKwl7 ICJNb2R1bGUgdm9sdGFnZSBsb3cgYWxhcm0iLCAgICBTRkZfQTJfQUxSTV9GTEcsICgxIDw8IDQp IH0sCisJeyAiTW9kdWxlIHZvbHRhZ2UgaGlnaCB3YXJuaW5nIiwgU0ZGX0EyX1dBUk5fRkxHLCAo MSA8PCA1KSB9LAorCXsgIk1vZHVsZSB2b2x0YWdlIGxvdyB3YXJuaW5nIiwgIFNGRl9BMl9XQVJO X0ZMRywgKDEgPDwgNCkgfSwKKworCXsgIkxhc2VyIHJ4IHBvd2VyIGhpZ2ggYWxhcm0iLCAgIFNG Rl9BMl9BTFJNX0ZMRyArIDEsICgxIDw8IDcpIH0sCisJeyAiTGFzZXIgcnggcG93ZXIgbG93IGFs YXJtIiwgICAgU0ZGX0EyX0FMUk1fRkxHICsgMSwgKDEgPDwgNikgfSwKKwl7ICJMYXNlciByeCBw b3dlciBoaWdoIHdhcm5pbmciLCBTRkZfQTJfV0FSTl9GTEcgKyAxLCAoMSA8PCA3KSB9LAorCXsg Ikxhc2VyIHJ4IHBvd2VyIGxvdyB3YXJuaW5nIiwgIFNGRl9BMl9XQVJOX0ZMRyArIDEsICgxIDw8 IDYpIH0sCisKKwl7IE5VTEwsIDAsIDAgfSwKK307CisKK3N0YXRpYyBkb3VibGUgY29udmVydF9t d190b19kYm0oZG91YmxlIG13KQoreworCXJldHVybiAoMTAuICogbG9nMTAobXcgLyAxMDAwLikp ICsgMzAuOworfQorCisKKy8qIE1vc3QgY29tbW9uIGNhc2U6IDE2LWJpdCB1bnNpZ25lZCBpbnRl Z2VyIGluIGEgY2VydGFpbiB1bml0ICovCisjZGVmaW5lIEEyX09GRlNFVF9UT19VMTYob2Zmc2V0 KSBcCisJKGlkW1NGRl9BMl9CQVNFICsgKG9mZnNldCldIDw8IDggfCBpZFtTRkZfQTJfQkFTRSAr IChvZmZzZXQpICsgMV0pCisKKy8qIENhbGlicmF0aW9uIHNsb3BlIGlzIGEgbnVtYmVyIGJldHdl ZW4gMC4wIGluY2x1ZGVkIGFuZCAyNTYuMCBleGNsdWRlZC4gKi8KKyNkZWZpbmUgQTJfT0ZGU0VU X1RPX1NMUChvZmZzZXQpIFwKKwkoaWRbU0ZGX0EyX0JBU0UgKyAob2Zmc2V0KV0gKyBpZFtTRkZf QTJfQkFTRSArIChvZmZzZXQpICsgMV0gLyAyNTYuKQorCisvKiBDYWxpYnJhdGlvbiBvZmZzZXQg aXMgYW4gaW50ZWdlciBmcm9tIC0zMjc2OCB0byAzMjc2NyAqLworI2RlZmluZSBBMl9PRkZTRVRf VE9fT0ZGKG9mZnNldCkgXAorCSgoX19zMTYpQTJfT0ZGU0VUX1RPX1UxNihvZmZzZXQpKQorCisv KiBSWFBXUih4KSBhcmUgSUVFRS03NTQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBpbiBiaWctZW5k aWFuIGZvcm1hdCAqLworI2RlZmluZSBBMl9PRkZTRVRfVE9fUlhQV1J4KG9mZnNldCkgXAorCShi ZWZsb2F0dG9oKChfX3UzMiAqKShpZCArIFNGRl9BMl9CQVNFICsgKG9mZnNldCkpKSkKKworLyoK KyAqIDItYnl0ZSBpbnRlcm5hbCB0ZW1wZXJhdHVyZSBjb252ZXJzaW9uczoKKyAqIEZpcnN0IGJ5 dGUgaXMgYSBzaWduZWQgOC1iaXQgaW50ZWdlciwgd2hpY2ggaXMgdGhlIHRlbXAgZGVjaW1hbCBw YXJ0CisgKiBTZWNvbmQgYnl0ZSBhcmUgMS8yNTZ0aCBvZiBkZWdyZWUsIHdoaWNoIGFyZSBhZGRl ZCB0byB0aGUgZGVjIHBhcnQuCisgKi8KKyNkZWZpbmUgQTJfT0ZGU0VUX1RPX1RFTVAob2Zmc2V0 KSAoKF9fczE2KUEyX09GRlNFVF9UT19VMTYob2Zmc2V0KSkKKworCitzdGF0aWMgdm9pZCBzZmY4 NDcyX2RvbV9wYXJzZShjb25zdCBfX3U4ICppZCwgc3RydWN0IHNmZjg0NzJfZGlhZ3MgKnNkKQor eworCisJc2QtPmJpYXNfY3VyW01DVVJSXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX0JJQVMp OworCXNkLT5iaWFzX2N1cltIQUxSTV0gPSBBMl9PRkZTRVRfVE9fVTE2KFNGRl9BMl9CSUFTX0hB TFJNKTsKKwlzZC0+Ymlhc19jdXJbTEFMUk1dID0gQTJfT0ZGU0VUX1RPX1UxNihTRkZfQTJfQklB U19MQUxSTSk7CisJc2QtPmJpYXNfY3VyW0hXQVJOXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0Ey X0JJQVNfSFdBUk4pOworCXNkLT5iaWFzX2N1cltMV0FSTl0gPSBBMl9PRkZTRVRfVE9fVTE2KFNG Rl9BMl9CSUFTX0xXQVJOKTsKKworCXNkLT5zZnBfdm9sdGFnZVtNQ1VSUl0gPSBBMl9PRkZTRVRf VE9fVTE2KFNGRl9BMl9WQ0MpOworCXNkLT5zZnBfdm9sdGFnZVtIQUxSTV0gPSBBMl9PRkZTRVRf VE9fVTE2KFNGRl9BMl9WQ0NfSEFMUk0pOworCXNkLT5zZnBfdm9sdGFnZVtMQUxSTV0gPSBBMl9P RkZTRVRfVE9fVTE2KFNGRl9BMl9WQ0NfTEFMUk0pOworCXNkLT5zZnBfdm9sdGFnZVtIV0FSTl0g PSBBMl9PRkZTRVRfVE9fVTE2KFNGRl9BMl9WQ0NfSFdBUk4pOworCXNkLT5zZnBfdm9sdGFnZVtM V0FSTl0gPSBBMl9PRkZTRVRfVE9fVTE2KFNGRl9BMl9WQ0NfTFdBUk4pOworCisJc2QtPnR4X3Bv d2VyW01DVVJSXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX1RYX1BXUik7CisJc2QtPnR4X3Bv d2VyW0hBTFJNXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX1RYX1BXUl9IQUxSTSk7CisJc2Qt PnR4X3Bvd2VyW0xBTFJNXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX1RYX1BXUl9MQUxSTSk7 CisJc2QtPnR4X3Bvd2VyW0hXQVJOXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX1RYX1BXUl9I V0FSTik7CisJc2QtPnR4X3Bvd2VyW0xXQVJOXSA9IEEyX09GRlNFVF9UT19VMTYoU0ZGX0EyX1RY X1BXUl9MV0FSTik7CisKKwlzZC0+cnhfcG93ZXJbTUNVUlJdID0gQTJfT0ZGU0VUX1RPX1UxNihT RkZfQTJfUlhfUFdSKTsKKwlzZC0+cnhfcG93ZXJbSEFMUk1dID0gQTJfT0ZGU0VUX1RPX1UxNihT RkZfQTJfUlhfUFdSX0hBTFJNKTsKKwlzZC0+cnhfcG93ZXJbTEFMUk1dID0gQTJfT0ZGU0VUX1RP X1UxNihTRkZfQTJfUlhfUFdSX0xBTFJNKTsKKwlzZC0+cnhfcG93ZXJbSFdBUk5dID0gQTJfT0ZG U0VUX1RPX1UxNihTRkZfQTJfUlhfUFdSX0hXQVJOKTsKKwlzZC0+cnhfcG93ZXJbTFdBUk5dID0g QTJfT0ZGU0VUX1RPX1UxNihTRkZfQTJfUlhfUFdSX0xXQVJOKTsKKworCXNkLT5zZnBfdGVtcFtN Q1VSUl0gPSBBMl9PRkZTRVRfVE9fVEVNUChTRkZfQTJfVEVNUCk7CisJc2QtPnNmcF90ZW1wW0hB TFJNXSA9IEEyX09GRlNFVF9UT19URU1QKFNGRl9BMl9URU1QX0hBTFJNKTsKKwlzZC0+c2ZwX3Rl bXBbTEFMUk1dID0gQTJfT0ZGU0VUX1RPX1RFTVAoU0ZGX0EyX1RFTVBfTEFMUk0pOworCXNkLT5z ZnBfdGVtcFtIV0FSTl0gPSBBMl9PRkZTRVRfVE9fVEVNUChTRkZfQTJfVEVNUF9IV0FSTik7CisJ c2QtPnNmcF90ZW1wW0xXQVJOXSA9IEEyX09GRlNFVF9UT19URU1QKFNGRl9BMl9URU1QX0xXQVJO KTsKKworfQorCisvKiBDb252ZXJ0cyB0byBhIGZsb2F0IGZyb20gYSBiaWctZW5kaWFuIDQtYnl0 ZSBzb3VyY2UgYnVmZmVyLiAqLworc3RhdGljIGZsb2F0IGJlZmxvYXR0b2goY29uc3QgX191MzIg KnNvdXJjZSkKK3sKKwl1bmlvbiB7CisJCV9fdTMyIHNyYzsKKwkJZmxvYXQgZHN0OworCX0gY29u dmVydGVyOworCisJY29udmVydGVyLnNyYyA9IG50b2hsKCpzb3VyY2UpOworCXJldHVybiBjb252 ZXJ0ZXIuZHN0OworfQorCitzdGF0aWMgdm9pZCBzZmY4NDcyX2NhbGlicmF0aW9uKGNvbnN0IF9f dTggKmlkLCBzdHJ1Y3Qgc2ZmODQ3Ml9kaWFncyAqc2QpCit7CisJaW50IGk7CisJX191MTYgcnhf cmVhZGluZzsKKworCS8qIENhbGlicmF0aW9uIHNob3VsZCBvY2N1ciBmb3IgYWxsIHZhbHVlcyAo dGhyZXNob2xkIGFuZCBjdXJyZW50KSAqLworCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2QtPmJp YXNfY3VyKTsgKytpKSB7CisJCS8qCisJCSAqIEFwcGx5IGNhbGlicmF0aW9uIGZvcm11bGEgMSAo VGVtcC4sIFZvbHRhZ2UsIEJpYXMsIFR4IFBvd2VyKQorCQkgKi8KKwkJc2QtPmJpYXNfY3VyW2ld ICAgICo9IEEyX09GRlNFVF9UT19TTFAoU0ZGX0EyX0NBTF9UWElfU0xQKTsKKwkJc2QtPnR4X3Bv d2VyW2ldICAgICo9IEEyX09GRlNFVF9UT19TTFAoU0ZGX0EyX0NBTF9UWFBXUl9TTFApOworCQlz ZC0+c2ZwX3ZvbHRhZ2VbaV0gKj0gQTJfT0ZGU0VUX1RPX1NMUChTRkZfQTJfQ0FMX1ZfU0xQKTsK KwkJc2QtPnNmcF90ZW1wW2ldICAgICo9IEEyX09GRlNFVF9UT19TTFAoU0ZGX0EyX0NBTF9UX1NM UCk7CisKKwkJc2QtPmJpYXNfY3VyW2ldICAgICs9IEEyX09GRlNFVF9UT19PRkYoU0ZGX0EyX0NB TF9UWElfT0ZGKTsKKwkJc2QtPnR4X3Bvd2VyW2ldICAgICs9IEEyX09GRlNFVF9UT19PRkYoU0ZG X0EyX0NBTF9UWFBXUl9PRkYpOworCQlzZC0+c2ZwX3ZvbHRhZ2VbaV0gKz0gQTJfT0ZGU0VUX1RP X09GRihTRkZfQTJfQ0FMX1ZfT0ZGKTsKKwkJc2QtPnNmcF90ZW1wW2ldICAgICs9IEEyX09GRlNF VF9UT19PRkYoU0ZGX0EyX0NBTF9UX09GRik7CisKKwkJLyoKKwkJICogQXBwbHkgY2FsaWJyYXRp b24gZm9ybXVsYSAyIChSeCBQb3dlciBvbmx5KQorCQkgKi8KKwkJcnhfcmVhZGluZyA9IHNkLT5y eF9wb3dlcltpXTsKKwkJc2QtPnJ4X3Bvd2VyW2ldICAgID0gQTJfT0ZGU0VUX1RPX1JYUFdSeChT RkZfQTJfQ0FMX1JYUFdSMCk7CisJCXNkLT5yeF9wb3dlcltpXSAgICArPSByeF9yZWFkaW5nICoK KwkJCUEyX09GRlNFVF9UT19SWFBXUngoU0ZGX0EyX0NBTF9SWFBXUjEpOworCQlzZC0+cnhfcG93 ZXJbaV0gICAgKz0gcnhfcmVhZGluZyAqCisJCQlBMl9PRkZTRVRfVE9fUlhQV1J4KFNGRl9BMl9D QUxfUlhQV1IyKTsKKwkJc2QtPnJ4X3Bvd2VyW2ldICAgICs9IHJ4X3JlYWRpbmcgKgorCQkJQTJf T0ZGU0VUX1RPX1JYUFdSeChTRkZfQTJfQ0FMX1JYUFdSMyk7CisJfQorfQorCitzdGF0aWMgdm9p ZCBzZmY4NDcyX3BhcnNlX2VlcHJvbShjb25zdCBfX3U4ICppZCwgc3RydWN0IHNmZjg0NzJfZGlh Z3MgKnNkKQoreworCXNkLT5zdXBwb3J0c19kb20gPSBpZFtTRkZfQTBfRE9NXSAmIFNGRl9BMF9E T01fSU1QTDsKKwlzZC0+c3VwcG9ydHNfYWxhcm1zID0gaWRbU0ZGX0EwX09QVElPTlNdICYgU0ZG X0EwX09QVElPTlNfQVc7CisJc2QtPmNhbGlicmF0ZWRfZXh0ID0gaWRbU0ZGX0EwX0RPTV0gJiBT RkZfQTBfRE9NX0VYVENBTDsKKwlzZC0+cnhfcG93ZXJfdHlwZSA9IGlkW1NGRl9BMF9ET01dICYg U0ZGX0EwX0RPTV9QV1JUOworCisJc2ZmODQ3Ml9kb21fcGFyc2UoaWQsIHNkKTsKKworCS8qCisJ ICogSWYgdGhlIFNGUCBpcyBleHRlcm5hbGx5IGNhbGlicmF0ZWQsIHdlIG5lZWQgdG8gcmVhZCBj YWxpYnJhdGlvbiBkYXRhCisJICogYW5kIGNvbXBlbnNhdGUgdGhlIGFscmVhZHkgc3RvcmVkIHJl YWRpbmdzLgorCSAqLworCWlmIChzZC0+Y2FsaWJyYXRlZF9leHQpCisJCXNmZjg0NzJfY2FsaWJy YXRpb24oaWQsIHNkKTsKK30KKwordm9pZCBzZmY4NDcyX3Nob3dfYWxsKGNvbnN0IF9fdTggKmlk KQoreworCXN0cnVjdCBzZmY4NDcyX2RpYWdzIHNkOworCWNoYXIgKnJ4X3Bvd2VyX3N0cmluZyA9 IE5VTEw7CisJaW50IGk7CisKKwlzZmY4NDcyX3BhcnNlX2VlcHJvbShpZCwgJnNkKTsKKworCWlm ICghc2Quc3VwcG9ydHNfZG9tKSB7CisJCXByaW50ZigiXHQlLTQxcyA6IE5vXG4iLCAiT3B0aWNh bCBkaWFnbm9zdGljcyBzdXBwb3J0Iik7CisJCXJldHVybiA7CisJfQorCXByaW50ZigiXHQlLTQx cyA6IFllc1xuIiwgIk9wdGljYWwgZGlhZ25vc3RpY3Mgc3VwcG9ydCIpOworCisjZGVmaW5lIFBS SU5UX0JJQVMoc3RyaW5nLCBpbmRleCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorCXByaW50ZigiXHQlLTQxcyA6ICUuM2YgbUFcbiIsIChzdHJpbmcpLCAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorCSAgICAgICAoZG91YmxlKShzZC5iaWFzX2N1clsoaW5kZXgp XSAvIDUwMC4pKQorCisjIGRlZmluZSBQUklOVF94WF9QV1Ioc3RyaW5nLCB2YXIsIGluZGV4KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXByaW50ZigiXHQlLTQxcyA6ICUuNGYg bVcgLyAlLjJmIGRCbVxuIiwgKHN0cmluZyksICAgICAgICAgICAgICAgXAorCSAgICAgICAoZG91 YmxlKSgodmFyKVsoaW5kZXgpXSAvIDEwMDAwLiksICAgICAgICAgICAgICAgICAgICAgICAgXAor CSAgICAgICBjb252ZXJ0X213X3RvX2RibSgoZG91YmxlKSgodmFyKVsoaW5kZXgpXSAvIDEwMDAw LikpKQorCisjZGVmaW5lIFBSSU5UX1RFTVAoc3RyaW5nLCBpbmRleCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorCXByaW50ZigiXHQlLTQxcyA6ICUuMmYgZGVncmVl cyBDIC8gJS4yZiBkZWdyZWVzIEZcbiIsIChzdHJpbmcpLCAgXAorCSAgICAgICAoZG91YmxlKShz ZC5zZnBfdGVtcFsoaW5kZXgpXSAvIDI1Ni4pLCAgICAgICAgICAgICAgICAgICAgXAorCSAgICAg ICAoZG91YmxlKShzZC5zZnBfdGVtcFsoaW5kZXgpXSAvIDI1Ni4gKiAxLjggKyAzMi4pKQorCisj ZGVmaW5lIFBSSU5UX1ZDQyhzdHJpbmcsIGluZGV4KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorCXByaW50ZigiXHQlLTQxcyA6ICUuNGYgVlxuIiwgKHN0cmluZyks ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSAgICAgICAoZG91YmxlKShzZC5zZnBfdm9s dGFnZVsoaW5kZXgpXSAvIDEwMDAwLikpCisKKwlQUklOVF9CSUFTKCJMYXNlciBiaWFzIGN1cnJl bnQiLCBNQ1VSUik7CisJUFJJTlRfeFhfUFdSKCJMYXNlciBvdXRwdXQgcG93ZXIiLCBzZC50eF9w b3dlciwgTUNVUlIpOworCisJaWYgKCFzZC5yeF9wb3dlcl90eXBlKQorCQlyeF9wb3dlcl9zdHJp bmcgPSAiUmVjZWl2ZXIgc2lnbmFsIE9NQSI7CisJZWxzZQorCQlyeF9wb3dlcl9zdHJpbmcgPSAi UmVjZWl2ZXIgc2lnbmFsIGF2ZXJhZ2Ugb3B0aWNhbCBwb3dlciI7CisKKwlQUklOVF94WF9QV1Io cnhfcG93ZXJfc3RyaW5nLCBzZC5yeF9wb3dlciwgTUNVUlIpOworCisJUFJJTlRfVEVNUCgiTW9k dWxlIHRlbXBlcmF0dXJlIiwgTUNVUlIpOworCVBSSU5UX1ZDQygiTW9kdWxlIHZvbHRhZ2UiLCBN Q1VSUik7CisKKwlwcmludGYoIlx0JS00MXMgOiAlc1xuIiwgIkFsYXJtL3dhcm5pbmcgZmxhZ3Mg aW1wbGVtZW50ZWQiLAorCSAgICAgICAoc2Quc3VwcG9ydHNfYWxhcm1zID8gIlllcyIgOiAiTm8i KSk7CisJaWYgKHNkLnN1cHBvcnRzX2FsYXJtcykgeworCisJCWZvciAoaSA9IDA7IHNmZjg0NzJf YXdfZmxhZ3NbaV0uc3RyOyArK2kpIHsKKwkJCXByaW50ZigiXHQlLTQxcyA6ICVzXG4iLCBzZmY4 NDcyX2F3X2ZsYWdzW2ldLnN0ciwKKwkJCSAgICAgICBpZFtTRkZfQTJfQkFTRSArIHNmZjg0NzJf YXdfZmxhZ3NbaV0ub2Zmc2V0XQorCQkJICAgICAgICYgc2ZmODQ3Ml9hd19mbGFnc1tpXS52YWx1 ZSA/ICJPbiIgOiAiT2ZmIik7CisJCX0KKworCQlQUklOVF9CSUFTKCJMYXNlciBiaWFzIGN1cnJl bnQgaGlnaCBhbGFybSB0aHJlc2hvbGQiLCAgIEhBTFJNKTsKKwkJUFJJTlRfQklBUygiTGFzZXIg YmlhcyBjdXJyZW50IGxvdyBhbGFybSB0aHJlc2hvbGQiLCAgICBMQUxSTSk7CisJCVBSSU5UX0JJ QVMoIkxhc2VyIGJpYXMgY3VycmVudCBoaWdoIHdhcm5pbmcgdGhyZXNob2xkIiwgSFdBUk4pOwor CQlQUklOVF9CSUFTKCJMYXNlciBiaWFzIGN1cnJlbnQgbG93IHdhcm5pbmcgdGhyZXNob2xkIiwg IExXQVJOKTsKKworCQlQUklOVF94WF9QV1IoIkxhc2VyIG91dHB1dCBwb3dlciBoaWdoIGFsYXJt IHRocmVzaG9sZCIsCisJCQkgICAgIHNkLnR4X3Bvd2VyLCBIQUxSTSk7CisJCVBSSU5UX3hYX1BX UigiTGFzZXIgb3V0cHV0IHBvd2VyIGxvdyBhbGFybSB0aHJlc2hvbGQiLAorCQkJICAgICBzZC50 eF9wb3dlciwgTEFMUk0pOworCQlQUklOVF94WF9QV1IoIkxhc2VyIG91dHB1dCBwb3dlciBoaWdo IHdhcm5pbmcgdGhyZXNob2xkIiwKKwkJCSAgICAgc2QudHhfcG93ZXIsIEhXQVJOKTsKKwkJUFJJ TlRfeFhfUFdSKCJMYXNlciBvdXRwdXQgcG93ZXIgbG93IHdhcm5pbmcgdGhyZXNob2xkIiwKKwkJ CSAgICAgc2QudHhfcG93ZXIsIExXQVJOKTsKKworCQlQUklOVF9URU1QKCJNb2R1bGUgdGVtcGVy YXR1cmUgaGlnaCBhbGFybSB0aHJlc2hvbGQiLCAgIEhBTFJNKTsKKwkJUFJJTlRfVEVNUCgiTW9k dWxlIHRlbXBlcmF0dXJlIGxvdyBhbGFybSB0aHJlc2hvbGQiLCAgICBMQUxSTSk7CisJCVBSSU5U X1RFTVAoIk1vZHVsZSB0ZW1wZXJhdHVyZSBoaWdoIHdhcm5pbmcgdGhyZXNob2xkIiwgSFdBUk4p OworCQlQUklOVF9URU1QKCJNb2R1bGUgdGVtcGVyYXR1cmUgbG93IHdhcm5pbmcgdGhyZXNob2xk IiwgIExXQVJOKTsKKworCQlQUklOVF9WQ0MoIk1vZHVsZSB2b2x0YWdlIGhpZ2ggYWxhcm0gdGhy ZXNob2xkIiwgICBIQUxSTSk7CisJCVBSSU5UX1ZDQygiTW9kdWxlIHZvbHRhZ2UgbG93IGFsYXJt IHRocmVzaG9sZCIsICAgIExBTFJNKTsKKwkJUFJJTlRfVkNDKCJNb2R1bGUgdm9sdGFnZSBoaWdo IHdhcm5pbmcgdGhyZXNob2xkIiwgSFdBUk4pOworCQlQUklOVF9WQ0MoIk1vZHVsZSB2b2x0YWdl IGxvdyB3YXJuaW5nIHRocmVzaG9sZCIsICBMV0FSTik7CisKKwkJUFJJTlRfeFhfUFdSKCJMYXNl ciByeCBwb3dlciBoaWdoIGFsYXJtIHRocmVzaG9sZCIsCisJCQkgICAgIHNkLnJ4X3Bvd2VyLCBI QUxSTSk7CisJCVBSSU5UX3hYX1BXUigiTGFzZXIgcnggcG93ZXIgbG93IGFsYXJtIHRocmVzaG9s ZCIsCisJCQkgICAgIHNkLnJ4X3Bvd2VyLCBMQUxSTSk7CisJCVBSSU5UX3hYX1BXUigiTGFzZXIg cnggcG93ZXIgaGlnaCB3YXJuaW5nIHRocmVzaG9sZCIsCisJCQkgICAgIHNkLnJ4X3Bvd2VyLCBI V0FSTik7CisJCVBSSU5UX3hYX1BXUigiTGFzZXIgcnggcG93ZXIgbG93IHdhcm5pbmcgdGhyZXNo b2xkIiwKKwkJCSAgICAgc2QucnhfcG93ZXIsIExXQVJOKTsKKwl9CisKK30KKwpkaWZmIC0tZ2l0 IGEvc2ZwaWQuYyBiL3NmcGlkLmMKaW5kZXggYTRhNjcxZC4uNGY4OGFhMiAxMDA2NDQKLS0tIGEv c2ZwaWQuYworKysgYi9zZnBpZC5jCkBAIC0xMiw3ICsxMiw3IEBACiAKIHN0YXRpYyB2b2lkIHNm ZjgwNzlfc2hvd19pZGVudGlmaWVyKGNvbnN0IF9fdTggKmlkKQogewotCXByaW50ZigiXHRJZGVu dGlmaWVyICAgICAgICAgIDogMHglMDJ4IiwgaWRbMF0pOworCXByaW50ZigiXHQlLTQxcyA6IDB4 JTAyeCIsICJJZGVudGlmaWVyIiwgaWRbMF0pOwogCXN3aXRjaCAoaWRbMF0pIHsKIAljYXNlIDB4 MDA6CiAJCXByaW50ZigiIChubyBtb2R1bGUgcHJlc2VudCwgdW5rbm93biwgb3IgdW5zcGVjaWZp ZWQpXG4iKTsKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIHZvaWQgc2ZmODA3OV9zaG93X2lkZW50 aWZpZXIoY29uc3QgX191OCAqaWQpCiAKIHN0YXRpYyB2b2lkIHNmZjgwNzlfc2hvd19leHRfaWRl bnRpZmllcihjb25zdCBfX3U4ICppZCkKIHsKLQlwcmludGYoIlx0RXh0ZW5kZWQgaWRlbnRpZmll ciA6IDB4JTAyeCIsIGlkWzFdKTsKKwlwcmludGYoIlx0JS00MXMgOiAweCUwMngiLCAiRXh0ZW5k ZWQgaWRlbnRpZmllciIsIGlkWzFdKTsKIAlpZiAoaWRbMV0gPT0gMHgwMCkKIAkJcHJpbnRmKCIg KEdCSUMgbm90IHNwZWNpZmllZCAvIG5vdCBNT0RfREVGIGNvbXBsaWFudClcbiIpOwogCWVsc2Ug aWYgKGlkWzFdID09IDB4MDQpCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyB2b2lkIHNmZjgwNzlf c2hvd19leHRfaWRlbnRpZmllcihjb25zdCBfX3U4ICppZCkKIAogc3RhdGljIHZvaWQgc2ZmODA3 OV9zaG93X2Nvbm5lY3Rvcihjb25zdCBfX3U4ICppZCkKIHsKLQlwcmludGYoIlx0Q29ubmVjdG9y ICAgICAgICAgICA6IDB4JTAyeCIsIGlkWzJdKTsKKwlwcmludGYoIlx0JS00MXMgOiAweCUwMngi LCAiQ29ubmVjdG9yIiwgaWRbMl0pOwogCXN3aXRjaCAoaWRbMl0pIHsKIAljYXNlIDB4MDA6CiAJ CXByaW50ZigiICh1bmtub3duIG9yIHVuc3BlY2lmaWVkKVxuIik7CkBAIC0xMDUsMTAgKzEwNSwx MiBAQCBzdGF0aWMgdm9pZCBzZmY4MDc5X3Nob3dfY29ubmVjdG9yKGNvbnN0IF9fdTggKmlkKQog CiBzdGF0aWMgdm9pZCBzZmY4MDc5X3Nob3dfdHJhbnNjZWl2ZXIoY29uc3QgX191OCAqaWQpCiB7 Ci0Jc3RhdGljIGNvbnN0IGNoYXIgKnBmeCA9ICJcdCAgICAgICAgICAgICAgICAgICAgOiAgPT4i OworCXN0YXRpYyBjb25zdCBjaGFyICpwZnggPQorCQkiXHRUcmFuc2NlaXZlciB0eXBlICAgICAg ICAgICAgICAgICAgICAgICAgICA6IjsKIAotCXByaW50ZigiXHRUcmFuc2NlaXZlciBjb2RlcyAg IDogMHglMDJ4IDB4JTAyeCAweCUwMngiIFwKKwlwcmludGYoIlx0JS00MXMgOiAweCUwMnggMHgl MDJ4IDB4JTAyeCAiIFwKIAkgICAgICAgIjB4JTAyeCAweCUwMnggMHglMDJ4IDB4JTAyeCAweCUw MnhcbiIsCisJCSAgICJUcmFuc2NlaXZlciBjb2RlcyIsCiAJICAgICAgIGlkWzNdLCBpZFs0XSwg aWRbNV0sIGlkWzZdLAogCSAgICAgICBpZFs3XSwgaWRbOF0sIGlkWzldLCBpZFsxMF0pOwogCS8q IDEwRyBFdGhlcm5ldCBDb21wbGlhbmNlIENvZGVzICovCkBAIC0yMzksNyArMjQxLDcgQEAgc3Rh dGljIHZvaWQgc2ZmODA3OV9zaG93X3RyYW5zY2VpdmVyKGNvbnN0IF9fdTggKmlkKQogCiBzdGF0 aWMgdm9pZCBzZmY4MDc5X3Nob3dfZW5jb2RpbmcoY29uc3QgX191OCAqaWQpCiB7Ci0JcHJpbnRm KCJcdEVuY29kaW5nICAgICAgICAgICAgOiAweCUwMngiLCBpZFsxMV0pOworCXByaW50ZigiXHQl LTQxcyA6IDB4JTAyeCIsICJFbmNvZGluZyIsIGlkWzExXSk7CiAJc3dpdGNoIChpZFsxMV0pIHsK IAljYXNlIDB4MDA6CiAJCXByaW50ZigiICh1bnNwZWNpZmllZClcbiIpOwpAQCAtMjcwLDcgKzI3 Miw3IEBAIHN0YXRpYyB2b2lkIHNmZjgwNzlfc2hvd19lbmNvZGluZyhjb25zdCBfX3U4ICppZCkK IAogc3RhdGljIHZvaWQgc2ZmODA3OV9zaG93X3JhdGVfaWRlbnRpZmllcihjb25zdCBfX3U4ICpp ZCkKIHsKLQlwcmludGYoIlx0UmF0ZSBpZGVudGlmaWVyICAgICA6IDB4JTAyeCIsIGlkWzEzXSk7 CisJcHJpbnRmKCJcdCUtNDFzIDogMHglMDJ4IiwgIlJhdGUgaWRlbnRpZmllciIsIGlkWzEzXSk7 CiAJc3dpdGNoIChpZFsxM10pIHsKIAljYXNlIDB4MDA6CiAJCXByaW50ZigiICh1bnNwZWNpZmll ZClcbiIpOwpAQCAtMjk1LDE0ICsyOTcsMTQgQEAgc3RhdGljIHZvaWQgc2ZmODA3OV9zaG93X3Jh dGVfaWRlbnRpZmllcihjb25zdCBfX3U4ICppZCkKIAogc3RhdGljIHZvaWQgc2ZmODA3OV9zaG93 X291aShjb25zdCBfX3U4ICppZCkKIHsKLQlwcmludGYoIlx0VmVuZG9yIE9VSSAgICAgICAgICA6 ICUwMng6JTAyeDolMDJ4XG4iLAorCXByaW50ZigiXHQlLTQxcyA6ICUwMng6JTAyeDolMDJ4XG4i LCAiVmVuZG9yIE9VSSIsCiAJICAgICAgIGlkWzM3XSwgaWRbMzhdLCBpZFszOV0pOwogfQogCiBz dGF0aWMgdm9pZCBzZmY4MDc5X3Nob3dfd2F2ZWxlbmd0aF9vcl9jb3BwZXJfY29tcGxpYW5jZShj b25zdCBfX3U4ICppZCkKIHsKIAlpZiAoaWRbOF0gJiAoMSA8PCAyKSkgewotCQlwcmludGYoIlx0 UGFzc2l2ZSBDdSBjbXBsbmNlLiA6IDB4JTAyeCIsIGlkWzYwXSk7CisJCXByaW50ZigiXHQlLTQx cyA6IDB4JTAyeCIsICJQYXNzaXZlIEN1IGNtcGxuY2UuIiwgaWRbNjBdKTsKIAkJc3dpdGNoIChp ZFs2MF0pIHsKIAkJY2FzZSAweDAwOgogCQkJcHJpbnRmKCIgKHVuc3BlY2lmaWVkKSIpOwpAQCAt MzE2LDcgKzMxOCw3IEBAIHN0YXRpYyB2b2lkIHNmZjgwNzlfc2hvd193YXZlbGVuZ3RoX29yX2Nv cHBlcl9jb21wbGlhbmNlKGNvbnN0IF9fdTggKmlkKQogCQl9CiAJCXByaW50ZigiIFtTRkYtODQ3 MiByZXYxMC40IG9ubHldXG4iKTsKIAl9IGVsc2UgaWYgKGlkWzhdICYgKDEgPDwgMykpIHsKLQkJ cHJpbnRmKCJcdEFjdGl2ZSBDdSBjbXBsbmNlLiAgOiAweCUwMngiLCBpZFs2MF0pOworCQlwcmlu dGYoIlx0JS00MXMgOiAweCUwMngiLCAiQWN0aXZlIEN1IGNtcGxuY2UuIiwgaWRbNjBdKTsKIAkJ c3dpdGNoIChpZFs2MF0pIHsKIAkJY2FzZSAweDAwOgogCQkJcHJpbnRmKCIgKHVuc3BlY2lmaWVk KSIpOwpAQCAtMzMzLDcgKzMzNSw3IEBAIHN0YXRpYyB2b2lkIHNmZjgwNzlfc2hvd193YXZlbGVu Z3RoX29yX2NvcHBlcl9jb21wbGlhbmNlKGNvbnN0IF9fdTggKmlkKQogCQl9CiAJCXByaW50Zigi IFtTRkYtODQ3MiByZXYxMC40IG9ubHldXG4iKTsKIAl9IGVsc2UgewotCQlwcmludGYoIlx0TGFz ZXIgd2F2ZWxlbmd0aCAgICA6ICV1bm1cbiIsCisJCXByaW50ZigiXHQlLTQxcyA6ICV1bm1cbiIs ICJMYXNlciB3YXZlbGVuZ3RoIiwKIAkJICAgICAgIChpZFs2MF0gPDwgOCkgfCBpZFs2MV0pOwog CX0KIH0KQEAgLTM0NCw3ICszNDYsNyBAQCBzdGF0aWMgdm9pZCBzZmY4MDc5X3Nob3dfdmFsdWVf d2l0aF91bml0KGNvbnN0IF9fdTggKmlkLCB1bnNpZ25lZCBpbnQgcmVnLAogewogCXVuc2lnbmVk IGludCB2YWwgPSBpZFtyZWddOwogCi0JcHJpbnRmKCJcdCUtMjBzOiAldSVzXG4iLCBuYW1lLCB2 YWwgKiBtdWx0LCB1bml0KTsKKwlwcmludGYoIlx0JS00MXMgOiAldSVzXG4iLCBuYW1lLCB2YWwg KiBtdWx0LCB1bml0KTsKIH0KIAogc3RhdGljIHZvaWQgc2ZmODA3OV9zaG93X2FzY2lpKGNvbnN0 IF9fdTggKmlkLCB1bnNpZ25lZCBpbnQgZmlyc3RfcmVnLApAQCAtMzUyLDcgKzM1NCw3IEBAIHN0 YXRpYyB2b2lkIHNmZjgwNzlfc2hvd19hc2NpaShjb25zdCBfX3U4ICppZCwgdW5zaWduZWQgaW50 IGZpcnN0X3JlZywKIHsKIAl1bnNpZ25lZCBpbnQgcmVnLCB2YWw7CiAKLQlwcmludGYoIlx0JS0y MHM6ICIsIG5hbWUpOworCXByaW50ZigiXHQlLTQxcyA6ICIsIG5hbWUpOwogCWZvciAocmVnID0g Zmlyc3RfcmVnOyByZWcgPD0gbGFzdF9yZWc7IHJlZysrKSB7CiAJCXZhbCA9IGlkW3JlZ107CiAJ CXB1dGNoYXIoKCh2YWwgPj0gMzIpICYmICh2YWwgPD0gMTI2KSkgPyB2YWwgOiAnXycpOwpkaWZm IC0tZ2l0IGEvdGVzdC1jbWRsaW5lLmMgYi90ZXN0LWNtZGxpbmUuYwppbmRleCA4NWI0Y2UwLi5m MWQ0NTU1IDEwMDY0NAotLS0gYS90ZXN0LWNtZGxpbmUuYworKysgYi90ZXN0LWNtZGxpbmUuYwpA QCAtMjEzLDYgKzIxMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgdGVzdF9jYXNlIHsKIAl7IDAsICItbSBk ZXZuYW1lIiB9LAogCXsgMSwgIi0tZHVtcC1tb2R1bGUtZWVwcm9tIiB9LAogCXsgMCwgIi0tZHVt cC1tb2R1bGUtZWVwcm9tIGRldm5hbWUiIH0sCisJeyAxLCAiLS1tb2R1bGUtaW5mbyIgfSwKKwl7 IDAsICItLW1vZHVsZS1pbmZvIGRldm5hbWUiIH0sCiAJeyAwLCAiLW0gZGV2bmFtZSByYXcgb24i IH0sCiAJeyAwLCAiLW0gZGV2bmFtZSByYXcgb2ZmIiB9LAogCXsgMCwgIi1tIGRldm5hbWUgaGV4 IG9uIiB9LAotLSAKMS43LjAuNAoK --001636eef15e6c8cf804cfe5c2eb--