From owner-freebsd-net@FreeBSD.ORG Thu Oct 7 19:13:53 2010 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2E03106564A; Thu, 7 Oct 2010 19:13:53 +0000 (UTC) (envelope-from bschmidt@techwires.net) Received: from mail-qy0-f175.google.com (mail-qy0-f175.google.com [209.85.216.175]) by mx1.freebsd.org (Postfix) with ESMTP id 451FE8FC17; Thu, 7 Oct 2010 19:13:48 +0000 (UTC) Received: by qyk30 with SMTP id 30so1245810qyk.13 for ; Thu, 07 Oct 2010 12:13:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.198.73 with SMTP id en9mr603070qab.18.1286477017389; Thu, 07 Oct 2010 11:43:37 -0700 (PDT) Received: by 10.229.32.15 with HTTP; Thu, 7 Oct 2010 11:43:37 -0700 (PDT) X-Originating-IP: [84.180.238.142] In-Reply-To: <20101006100335.GA26843@FreeBSD.org> References: <4763016D.7060100@janh.de> <20101006100335.GA26843@FreeBSD.org> Date: Thu, 7 Oct 2010 20:43:37 +0200 Message-ID: From: Bernhard Schmidt To: Alexey Dokuchaev Content-Type: multipart/mixed; boundary=20cf300fb16fa21c7d04920b4594 Cc: net@freebsd.org Subject: Re: Monitor mode not working for iwi(4) on 7.X X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Oct 2010 19:13:54 -0000 --20cf300fb16fa21c7d04920b4594 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 2010/10/6 Alexey Dokuchaev : > On Fri, Dec 14, 2007 at 11:19:25PM +0100, Jan Henrik Sylvester wrote: >> In contrast to 6.2-RELEASE, monitor mode does not work. Kismet does >> not receive anything, while it does with ath or ural (even at the same >> time). dmesg with debug.iwi=3D2 is below -- anything unusual? >> >> Moreover, "ifconfig iwi0 scan" sometimes just hangs, which never >> happened on 6.2-RELEASE. > > Just found this email sent to stable@ almost three years ago; sadly I > have to confirm iwi(4) still exhibits these problems on fairly recent > 7-STABLE (early Juneish). =A0Maybe I have better luck on net@ (I am > particularly interested in working monitor mode). =A0Thanks. =A0Any debug > information will be gladly provided. =A0Pointers where to look (revisions > to try, patches, etc.) are greatly appreciated. Try the attached patch, this is basically the code from stable/6 ported to head and stable/7. I did only some basic tests but monitor mode seems to work and it is still possible to use the card in STA mode. I'm not sure why that got lost, but there must be a reason I'm not seeing right now. If someone has more knowledge about that, please let me know, otherwise I intend to commit it this weekend. --=20 Bernhard --20cf300fb16fa21c7d04920b4594 Content-Type: application/octet-stream; name="iwi_monitor-head.diff" Content-Disposition: attachment; filename="iwi_monitor-head.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gezz9pt70 SW5kZXg6IHN5cy9kZXYvaXdpL2lmX2l3aXZhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9kZXYvaXdp L2lmX2l3aXZhci5oCShyZXZpc2lvbiAyMTM1MTcpCisrKyBzeXMvZGV2L2l3aS9pZl9pd2l2YXIu aAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDYgKzE5Myw3IEBAIHN0cnVjdCBpd2lfc29mdGMgewog CXN0cnVjdCB0YXNrCQlzY19yZXN0YXJ0dGFzazsJLyogcmVzdGFydCBhZGFwdGVyIHByb2Nlc3Np bmcgKi8KIAlzdHJ1Y3QgdGFzawkJc2NfZGlzYXNzb2N0YXNrOwogCXN0cnVjdCB0YXNrCQlzY193 bWV0YXNrOwkvKiBzZXQgd21lIHBhcmFtZXRlcnMgKi8KKwlzdHJ1Y3QgdGFzawkJc2NfbW9uaXRv cnRhc2s7CiAKIAl1bnNpZ25lZCBpbnQJCXNjX3NvZnRsZWQgOiAxLAkvKiBlbmFibGUgTEVEIGdw aW8gc3RhdHVzICovCiAJCQkJc2NfbGVkc3RhdGU6IDEsCS8qIExFRCBvbi9vZmYgc3RhdGUgKi8K SW5kZXg6IHN5cy9kZXYvaXdpL2lmX2l3aS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9kZXYvaXdpL2lm X2l3aS5jCShyZXZpc2lvbiAyMTM1MTcpCisrKyBzeXMvZGV2L2l3aS9pZl9pd2kuYwkod29ya2lu ZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw3IEBAIHN0YXRpYyB2b2lkCWl3aV9yZWxlYXNlX2Z3X2Rt YShzdHJ1Y3QgaXdpX3NvZnRjICpzCiBzdGF0aWMgaW50CWl3aV9jb25maWcoc3RydWN0IGl3aV9z b2Z0YyAqKTsKIHN0YXRpYyBpbnQJaXdpX2dldF9maXJtd2FyZShzdHJ1Y3QgaXdpX3NvZnRjICos IGVudW0gaWVlZTgwMjExX29wbW9kZSk7CiBzdGF0aWMgdm9pZAlpd2lfcHV0X2Zpcm13YXJlKHN0 cnVjdCBpd2lfc29mdGMgKik7CitzdGF0aWMgdm9pZAlpd2lfbW9uaXRvcl9zY2FuKHZvaWQgKiwg aW50KTsKIHN0YXRpYyBpbnQJaXdpX3NjYW5jaGFuKHN0cnVjdCBpd2lfc29mdGMgKiwgdW5zaWdu ZWQgbG9uZywgaW50KTsKIHN0YXRpYyB2b2lkCWl3aV9zY2FuX3N0YXJ0KHN0cnVjdCBpZWVlODAy MTFjb20gKik7CiBzdGF0aWMgdm9pZAlpd2lfc2Nhbl9lbmQoc3RydWN0IGllZWU4MDIxMWNvbSAq KTsKQEAgLTI5Miw2ICsyOTMsNyBAQCBpd2lfYXR0YWNoKGRldmljZV90IGRldikKIAlUQVNLX0lO SVQoJnNjLT5zY19yZXN0YXJ0dGFzaywgMCwgaXdpX3Jlc3RhcnQsIHNjKTsKIAlUQVNLX0lOSVQo JnNjLT5zY19kaXNhc3NvY3Rhc2ssIDAsIGl3aV9kaXNhc3NvYywgc2MpOwogCVRBU0tfSU5JVCgm c2MtPnNjX3dtZXRhc2ssIDAsIGl3aV91cGRhdGVfd21lLCBzYyk7CisJVEFTS19JTklUKCZzYy0+ c2NfbW9uaXRvcnRhc2ssIDAsIGl3aV9tb25pdG9yX3NjYW4sIHNjKTsKIAogCWNhbGxvdXRfaW5p dF9tdHgoJnNjLT5zY193ZHRpbWVyLCAmc2MtPnNjX210eCwgMCk7CiAJY2FsbG91dF9pbml0X210 eCgmc2MtPnNjX3JmdGltZXIsICZzYy0+c2NfbXR4LCAwKTsKQEAgLTQ2MCw2ICs0NjIsNyBAQCBp d2lfZGV0YWNoKGRldmljZV90IGRldikKIAlpZWVlODAyMTFfZHJhaW50YXNrKGljLCAmc2MtPnNj X3JhZGlvZmZ0YXNrKTsKIAlpZWVlODAyMTFfZHJhaW50YXNrKGljLCAmc2MtPnNjX3Jlc3RhcnR0 YXNrKTsKIAlpZWVlODAyMTFfZHJhaW50YXNrKGljLCAmc2MtPnNjX2Rpc2Fzc29jdGFzayk7CisJ aWVlZTgwMjExX2RyYWludGFzayhpYywgJnNjLT5zY19tb25pdG9ydGFzayk7CiAKIAlpd2lfc3Rv cChzYyk7CiAKQEAgLTk4OCw3ICs5OTEsOCBAQCBpd2lfbmV3c3RhdGUoc3RydWN0IGllZWU4MDIx MXZhcCAqdmFwLCBlbnVtIGllZWU4MAogCQkJICogVGhpcyBpcyBhbGwgdG90YWxseSBib2d1cyBh bmQgbmVlZHMgdG8gYmUgcmVkb25lLgogCQkJICovCiAJCQlpd2lfYXV0aF9hbmRfYXNzb2Moc2Ms IHZhcCk7Ci0JCX0KKwkJfSBlbHNlIGlmICh2YXAtPml2X29wbW9kZSA9PSBJRUVFODAyMTFfTV9N T05JVE9SKQorCQkJaWVlZTgwMjExX3J1bnRhc2soaWMsICZzYy0+c2NfbW9uaXRvcnRhc2spOwog CQlicmVhazsKIAljYXNlIElFRUU4MDIxMV9TX0FTU09DOgogCQkvKgpAQCAtMTQwNyw2ICsxNDEx LDE4IEBAIGl3aV9ub3RpZmljYXRpb25faW50cihzdHJ1Y3QgaXdpX3NvZnRjICpzYywgc3RydWN0 CiAKIAkJSVdJX1NUQVRFX0VORChzYywgSVdJX0ZXX1NDQU5OSU5HKTsKIAorCQkvKgorCQkgKiBN b25pdG9yIG1vZGUgd29ya3MgYnkgZG9pbmcgYSBwYXNzaXZlIHNjYW4gdG8gc2V0CisJCSAqIHRo ZSBjaGFubmVsIGFuZCBlbmFibGUgcnguICBCZWNhdXNlIHdlIGRvbid0IHdhbnQKKwkJICogdG8g YWJvcnQgYSBzY2FuIGxlc3QgdGhlIGZpcm13YXJlIGNyYXNoIHdlIHNjYW4KKwkJICogZm9yIGEg c2hvcnQgcGVyaW9kIG9mIHRpbWUgYW5kIGF1dG9tYXRpY2FsbHkgcmVzdGFydAorCQkgKiB0aGUg c2NhbiB3aGVuIG5vdGlmaWVkIHRoZSBzd2VlcCBoYXMgY29tcGxldGVkLgorCQkgKi8KKwkJaWYg KHZhcC0+aXZfb3Btb2RlID09IElFRUU4MDIxMV9NX01PTklUT1IpIHsKKwkJCWllZWU4MDIxMV9y dW50YXNrKGljLCAmc2MtPnNjX21vbml0b3J0YXNrKTsKKwkJCWJyZWFrOworCQl9CisKIAkJaWYg KHNjYW4tPnN0YXR1cyA9PSBJV0lfU0NBTl9DT01QTEVURUQpIHsKIAkJCS8qIE5COiBkb24ndCBu ZWVkIHRvIGRlZmVyLCBuZXQ4MDIxMSBkb2VzIGl0IGZvciB1cyAqLwogCQkJaWVlZTgwMjExX3Nj YW5fbmV4dCh2YXApOwpAQCAtMjU1Nyw2ICsyNTczLDExIEBAIGl3aV9jb25maWcoc3RydWN0IGl3 aV9zb2Z0YyAqc2MpCiAJY29uZmlnLmFuc3dlcl9wYnJlcSA9IChpYy0+aWNfb3Btb2RlID09IElF RUU4MDIxMV9NX0lCU1MpID8gMSA6IDA7CiAJY29uZmlnLmRpc2FibGVfdW5pY2FzdF9kZWNyeXB0 aW9uID0gMTsKIAljb25maWcuZGlzYWJsZV9tdWx0aWNhc3RfZGVjcnlwdGlvbiA9IDE7CisJaWYg KGljLT5pY19vcG1vZGUgPT0gSUVFRTgwMjExX01fTU9OSVRPUikgeworCQljb25maWcuYWxsb3df aW52YWxpZF9mcmFtZXMgPSAxOworCQljb25maWcuYWxsb3dfYmVhY29uX2FuZF9wcm9iZV9yZXNw ID0gMTsKKwkJY29uZmlnLmFsbG93X21ndCA9IDE7CisJfQogCURQUklOVEYoKCJDb25maWd1cmlu ZyBhZGFwdGVyXG4iKSk7CiAJZXJyb3IgPSBpd2lfY21kKHNjLCBJV0lfQ01EX1NFVF9DT05GSUcs ICZjb25maWcsIHNpemVvZiBjb25maWcpOwogCWlmIChlcnJvciAhPSAwKQpAQCAtMjY0Miw2ICsy NjYzLDE4IEBAIHNjYW5fYmFuZChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmMpCiAJ cmV0dXJuIElFRUU4MDIxMV9JU19DSEFOXzVHSFooYykgPyAgSVdJX0NIQU5fNUdIWiA6IElXSV9D SEFOXzJHSFo7CiB9CiAKK3N0YXRpYyB2b2lkCitpd2lfbW9uaXRvcl9zY2FuKHZvaWQgKmFyZywg aW50IG5wZW5kaW5nKQoreworCXN0cnVjdCBpZWVlODAyMTFjb20gKmljID0gYXJnOworCXN0cnVj dCBpd2lfc29mdGMgKnNjID0gaWMtPmljX2lmcC0+aWZfc29mdGM7CisJSVdJX0xPQ0tfREVDTDsK KworCUlXSV9MT0NLKHNjKTsKKwkodm9pZCkgaXdpX3NjYW5jaGFuKHNjLCAyMDAwLCAwKTsKKwlJ V0lfVU5MT0NLKHNjKTsKK30KKwogLyoKICAqIFN0YXJ0IGEgc2NhbiBvbiB0aGUgY3VycmVudCBj aGFubmVsIG9yIGFsbCBjaGFubmVscy4KICAqLwo= --20cf300fb16fa21c7d04920b4594 Content-Type: application/octet-stream; name="iwi_monitor-stable7.diff" Content-Disposition: attachment; filename="iwi_monitor-stable7.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gezza07q1 SW5kZXg6IHN5cy9kZXYvaXdpL2lmX2l3aXZhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9kZXYvaXdp L2lmX2l3aXZhci5oCShyZXZpc2lvbiAyMTM1MjIpCisrKyBzeXMvZGV2L2l3aS9pZl9pd2l2YXIu aAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDYgKzE5Myw3IEBAIHN0cnVjdCBpd2lfc29mdGMgewog CXN0cnVjdCB0YXNrCQlzY19zY2FuYWJvcnR0YXNrOwkvKiBjYW5jZWwgYWN0aXZlIHNjYW4gKi8K IAlzdHJ1Y3QgdGFzawkJc2NfcmVzdGFydHRhc2s7CS8qIHJlc3RhcnQgYWRhcHRlciBwcm9jZXNz aW5nICovCiAJc3RydWN0IHRhc2sJCXNjX29wc3Rhc2s7CS8qIHNjYW4gLyBhdXRoIHByb2Nlc3Np bmcgKi8KKwlzdHJ1Y3QgdGFzawkJc2NfbW9uaXRvcnRhc2s7CiAKIAl1bnNpZ25lZCBpbnQJCXNj X3NvZnRsZWQgOiAxLAkvKiBlbmFibGUgTEVEIGdwaW8gc3RhdHVzICovCiAJCQkJc2NfbGVkc3Rh dGU6IDEsCS8qIExFRCBvbi9vZmYgc3RhdGUgKi8KSW5kZXg6IHN5cy9kZXYvaXdpL2lmX2l3aS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHN5cy9kZXYvaXdpL2lmX2l3aS5jCShyZXZpc2lvbiAyMTM1MjIpCisr KyBzeXMvZGV2L2l3aS9pZl9pd2kuYwkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw3IEBA IHN0YXRpYyB2b2lkCWl3aV9yZWxlYXNlX2Z3X2RtYShzdHJ1Y3QgaXdpX3NvZnRjICpzCiBzdGF0 aWMgaW50CWl3aV9jb25maWcoc3RydWN0IGl3aV9zb2Z0YyAqKTsKIHN0YXRpYyBpbnQJaXdpX2dl dF9maXJtd2FyZShzdHJ1Y3QgaXdpX3NvZnRjICopOwogc3RhdGljIHZvaWQJaXdpX3B1dF9maXJt d2FyZShzdHJ1Y3QgaXdpX3NvZnRjICopOworc3RhdGljIHZvaWQJaXdpX21vbml0b3Jfc2Nhbih2 b2lkICosIGludCk7CiBzdGF0aWMgaW50CWl3aV9zY2FuY2hhbihzdHJ1Y3QgaXdpX3NvZnRjICos IHVuc2lnbmVkIGxvbmcsIGludCk7CiBzdGF0aWMgdm9pZAlpd2lfc2Nhbl9zdGFydChzdHJ1Y3Qg aWVlZTgwMjExY29tICopOwogc3RhdGljIHZvaWQJaXdpX3NjYW5fZW5kKHN0cnVjdCBpZWVlODAy MTFjb20gKik7CkBAIC0yOTEsNiArMjkyLDcgQEAgaXdpX2F0dGFjaChkZXZpY2VfdCBkZXYpCiAJ VEFTS19JTklUKCZzYy0+c2NfcmVzdGFydHRhc2ssIDAsIGl3aV9yZXN0YXJ0LCBzYyk7CiAJVEFT S19JTklUKCZzYy0+c2Nfb3BzdGFzaywgMCwgaXdpX29wcywgc2MpOwogCVRBU0tfSU5JVCgmc2Mt PnNjX3NjYW5hYm9ydHRhc2ssIDAsIGl3aV9zY2FuYWJvcnQsIHNjKTsKKwlUQVNLX0lOSVQoJnNj LT5zY19tb25pdG9ydGFzaywgMCwgaXdpX21vbml0b3Jfc2Nhbiwgc2MpOwogCWNhbGxvdXRfaW5p dF9tdHgoJnNjLT5zY193ZHRpbWVyLCAmc2MtPnNjX210eCwgMCk7CiAKIAlpZiAocGNpX2dldF9w b3dlcnN0YXRlKGRldikgIT0gUENJX1BPV0VSU1RBVEVfRDApIHsKQEAgLTk3OCw3ICs5ODAsOCBA QCBpd2lfbmV3c3RhdGUoc3RydWN0IGllZWU4MDIxMWNvbSAqaWMsIGVudW0gaWVlZTgwMgogCQkJ ICovCiAJCQlpZiAoaWMtPmljX3N0YXRlID09IElFRUU4MDIxMV9TX1NDQU4pCiAJCQkJaXdpX2Fz c29jKGljKTsKLQkJfSAKKwkJfSBlbHNlIGlmIChpYy0+aWNfb3Btb2RlID09IElFRUU4MDIxMV9N X01PTklUT1IpCisJCQl0YXNrcXVldWVfZW5xdWV1ZShzYy0+c2NfdHEsICZzYy0+c2NfbW9uaXRv cnRhc2spOwogCQlicmVhazsKIAljYXNlIElFRUU4MDIxMV9TX0lOSVQ6CiAJCS8qCkBAIC0xNDEx LDYgKzE0MTQsMTggQEAgaXdpX25vdGlmaWNhdGlvbl9pbnRyKHN0cnVjdCBpd2lfc29mdGMgKnNj LCBzdHJ1Y3QKIAogCQlJV0lfU1RBVEVfRU5EKHNjLCBJV0lfRldfU0NBTk5JTkcpOwogCisJCS8q CisJCSAqIE1vbml0b3IgbW9kZSB3b3JrcyBieSBkb2luZyBhIHBhc3NpdmUgc2NhbiB0byBzZXQK KwkJICogdGhlIGNoYW5uZWwgYW5kIGVuYWJsZSByeC4gIEJlY2F1c2Ugd2UgZG9uJ3Qgd2FudAor CQkgKiB0byBhYm9ydCBhIHNjYW4gbGVzdCB0aGUgZmlybXdhcmUgY3Jhc2ggd2Ugc2NhbgorCQkg KiBmb3IgYSBzaG9ydCBwZXJpb2Qgb2YgdGltZSBhbmQgYXV0b21hdGljYWxseSByZXN0YXJ0CisJ CSAqIHRoZSBzY2FuIHdoZW4gbm90aWZpZWQgdGhlIHN3ZWVwIGhhcyBjb21wbGV0ZWQuCisJCSAq LworCQlpZiAoaWMtPmljX29wbW9kZSA9PSBJRUVFODAyMTFfTV9NT05JVE9SKSB7CisJCQl0YXNr cXVldWVfZW5xdWV1ZShzYy0+c2NfdHEsICZzYy0+c2NfbW9uaXRvcnRhc2spOworCQkJYnJlYWs7 CisJCX0KKwogCQlpZiAoc2Nhbi0+c3RhdHVzID09IElXSV9TQ0FOX0NPTVBMRVRFRCkKIAkJCWll ZWU4MDIxMV9zY2FuX25leHQoaWMpOwogCkBAIC0yNTk1LDYgKzI2MTAsMTEgQEAgaXdpX2NvbmZp ZyhzdHJ1Y3QgaXdpX3NvZnRjICpzYykKIAljb25maWcuYW5zd2VyX3BicmVxID0gKGljLT5pY19v cG1vZGUgPT0gSUVFRTgwMjExX01fSUJTUykgPyAxIDogMDsKIAljb25maWcuZGlzYWJsZV91bmlj YXN0X2RlY3J5cHRpb24gPSAxOwogCWNvbmZpZy5kaXNhYmxlX211bHRpY2FzdF9kZWNyeXB0aW9u ID0gMTsKKwlpZiAoaWMtPmljX29wbW9kZSA9PSBJRUVFODAyMTFfTV9NT05JVE9SKSB7CisJCWNv bmZpZy5hbGxvd19pbnZhbGlkX2ZyYW1lcyA9IDE7CisJCWNvbmZpZy5hbGxvd19iZWFjb25fYW5k X3Byb2JlX3Jlc3AgPSAxOworCQljb25maWcuYWxsb3dfbWd0ID0gMTsKKwl9CiAJRFBSSU5URigo IkNvbmZpZ3VyaW5nIGFkYXB0ZXJcbiIpKTsKIAllcnJvciA9IGl3aV9jbWQoc2MsIElXSV9DTURf U0VUX0NPTkZJRywgJmNvbmZpZywgc2l6ZW9mIGNvbmZpZyk7CiAJaWYgKGVycm9yICE9IDApCkBA IC0yNzE3LDYgKzI3MzcsMTggQEAgc2Nhbl9iYW5kKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfY2hh bm5lbCAqYykKIAlyZXR1cm4gSUVFRTgwMjExX0lTX0NIQU5fNUdIWihjKSA/ICBJV0lfQ0hBTl81 R0haIDogSVdJX0NIQU5fMkdIWjsKIH0KIAorc3RhdGljIHZvaWQKK2l3aV9tb25pdG9yX3NjYW4o dm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCit7CisJc3RydWN0IGllZWU4MDIxMWNvbSAqaWMgPSBh cmc7CisJc3RydWN0IGl3aV9zb2Z0YyAqc2MgPSBpYy0+aWNfaWZwLT5pZl9zb2Z0YzsKKwlJV0lf TE9DS19ERUNMOworCisJSVdJX0xPQ0soc2MpOworCSh2b2lkKSBpd2lfc2NhbmNoYW4oc2MsIDIw MDAsIDApOworCUlXSV9VTkxPQ0soc2MpOworfQorCiAvKgogICogU3RhcnQgYSBzY2FuIG9uIHRo ZSBjdXJyZW50IGNoYW5uZWwgb3IgYWxsIGNoYW5uZWxzLgogICovCg== --20cf300fb16fa21c7d04920b4594--