From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web12.11858.1623157625157255384 for ; Tue, 08 Jun 2021 06:07:05 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=c+e3QiV1; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623157624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0njm+i+X/AfUD38rEK6Psw2hip3fAOnjMe08EFCsAiM=; b=c+e3QiV1cCrd0rnt4tH6E8fSjUGZqGI8p0UuI0aVbQ8NuFIV30qGzvCewY6E2kmiOYbWy7 /p4IBnoYeyo38oO+sAlZM3jZwPi41oaL+Iq8C0RA9XU1z+r72jIrb0XUiP1pJ/E/1RxcgS KBdHEc30v/QbKBJvpxeGfK17kTNVo0A= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-599-4gsz6MUjPWOxmNekQYEqqg-1; Tue, 08 Jun 2021 09:07:01 -0400 X-MC-Unique: 4gsz6MUjPWOxmNekQYEqqg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 229BB801106; Tue, 8 Jun 2021 13:07:00 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-27.ams2.redhat.com [10.36.113.27]) by smtp.corp.redhat.com (Postfix) with ESMTP id B103960CCC; Tue, 8 Jun 2021 13:06:58 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Jiaxin Wu , Maciej Rabeda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Siyuan Fu Subject: [PATCH 3/6] NetworkPkg/IScsiDxe: distinguish "maximum" and "selected" CHAP digest sizes Date: Tue, 8 Jun 2021 15:06:49 +0200 Message-Id: <20210608130652.2434-4-lersek@redhat.com> In-Reply-To: <20210608130652.2434-1-lersek@redhat.com> References: <20210608130652.2434-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 SVNjc2lEeGUgdXNlcyB0aGUgSVNDU0lfQ0hBUF9SU1BfTEVOIG1hY3JvIGZvciBleHByZXNzaW5n IHRoZSBzaXplIG9mIHRoZQpkaWdlc3QgKDE2KSB0aGF0IGl0IHNvbGVseSBzdXBwb3J0cyBhdCB0 aGlzIHBvaW50IChNRDUpLgpJU0NTSV9DSEFQX1JTUF9MRU4gaXMgdXNlZCBmb3IgYm90aCAoYSkg KmFsbG9jYXRpbmcqIGRpZ2VzdC1yZWxhdGVkCmJ1ZmZlcnMgKGJpbmFyeSBidWZmZXJzIGFuZCBo ZXggZW5jb2RpbmdzIGFsaWtlKSwgYW5kIChiKSAqcHJvY2Vzc2luZyoKYmluYXJ5IGRpZ2VzdCBi dWZmZXJzIChjb21wYXJpbmcgdGhlbSwgZmlsbGluZyB0aGVtLCByZWFkaW5nIHRoZW0pLgoKSW4g cHJlcGFyYXRpb24gZm9yIGFkZGluZyBvdGhlciBoYXNoIGFsZ29yaXRobXMsIHNwbGl0IHB1cnBv c2UgKGEpIGZyb20KcHVycG9zZSAoYikuIEZvciBwdXJwb3NlIChhKSAtLSBidWZmZXIgYWxsb2Nh dGlvbiAtLSwgaW50cm9kdWNlCklTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpFLiBGb3IgcHVycG9z ZSAoYikgLS0gcHJvY2Vzc2luZyAtLSwgcmVseSBvbgpNRDVfRElHRVNUX1NJWkUgZnJvbSA8QmFz ZUNyeXB0TGliLmg+LgoKRGlzdGluZ3Vpc2hpbmcgdGhlc2UgcHVycG9zZXMgaXMganVzdGlmaWVk IGJlY2F1c2UgcHVycG9zZSAoYikgLS0KcHJvY2Vzc2luZyAtLSBtdXN0IGRlcGVuZCBvbiB0aGUg aGFzaGluZyBhbGdvcml0aG0gbmVnb3RpYXRlZCBiZXR3ZWVuCmluaXRpYXRvciBhbmQgdGFyZ2V0 LCB3aGlsZSBmb3IgcHVycG9zZSAoYSkgLS0gYWxsb2NhdGlvbiAtLSwgdXNpbmcgdGhlCm1heGlt dW0gc3VwcG9ydGVkIGRpZ2VzdCBzaXplIGlzIHN1aXRhYmxlLiBGb3Igbm93LCBiZWNhdXNlIG9u bHkgTUQ1IGlzCnN1cHBvcnRlZCwgaW50cm9kdWNlIElTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpF ICphcyogTUQ1X0RJR0VTVF9TSVpFLgoKTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBmb3IgdXNpbmcg dGhlIGRpZ2VzdCBzaXplIGFzIHRoZSBzaXplIG9mIHRoZQpvdXRnb2luZyBjaGFsbGVuZ2UgKGlu IGNhc2UgbXV0dWFsIGF1dGhlbnRpY2F0aW9uIGlzIGRlc2lyZWQgYnkgdGhlCmluaXRpYXRvcikg cmVtYWlucyBpbiBwbGFjZS4gQmVjYXVzZSBvZiB0aGlzLCB0aGUgYWJvdmUgdHdvIHB1cnBvc2Vz IGFyZQpkaXN0aW5ndWlzaGVkIGZvciB0aGUgIklTQ1NJX0NIQVBfQVVUSF9EQVRBLk91dENoYWxs ZW5nZSIgZmllbGQgYXMgd2VsbC4KClRoaXMgcGF0Y2ggaXMgZnVuY3Rpb25hbGx5IGEgbm8tb3As IGp1c3QgeWV0LgoKQ2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4KQ2M6IE1hY2ll aiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0 aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPgpDYzogU2l5dWFuIEZ1IDxzaXl1YW4uZnVA aW50ZWwuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MzM1NQpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PgotLS0KIE5ldHdvcmtQa2cvSVNjc2lEeGUvSVNjc2lDSEFQLmggfCAxNyArKysrKysrKystLS0t LS0KIE5ldHdvcmtQa2cvSVNjc2lEeGUvSVNjc2lDSEFQLmMgfCAyMiArKysrKysrKysrLS0tLS0t LS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL0lTY3NpRHhlL0lTY3NpQ0hBUC5oIGIvTmV0d29ya1Br Zy9JU2NzaUR4ZS9JU2NzaUNIQVAuaAppbmRleCBkNmE5MGZjMjdmYzMuLmI4ODExYjc1ODBmMCAx MDA2NDQKLS0tIGEvTmV0d29ya1BrZy9JU2NzaUR4ZS9JU2NzaUNIQVAuaAorKysgYi9OZXR3b3Jr UGtnL0lTY3NpRHhlL0lTY3NpQ0hBUC5oCkBAIC0xLDg2ICsxLDkxIEBACiAvKiogQGZpbGUNCiAg IFRoZSBoZWFkZXIgZmlsZSBvZiBDSEFQIGNvbmZpZ3VyYXRpb24uDQogDQogQ29weXJpZ2h0IChj KSAyMDA0IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogDQogKiov DQogDQogI2lmbmRlZiBfSVNDU0lfQ0hBUF9IXw0KICNkZWZpbmUgX0lTQ1NJX0NIQVBfSF8NCiAN CiAjZGVmaW5lIElTQ1NJX0FVVEhfTUVUSE9EX0NIQVAgICAgICAgICAgICAgICAgICAgICJDSEFQ Ig0KIA0KICNkZWZpbmUgSVNDU0lfS0VZX0NIQVBfQUxHT1JJVEhNICAgICAgICAgICAgICAgICAg IkNIQVBfQSINCiAjZGVmaW5lIElTQ1NJX0tFWV9DSEFQX0lERU5USUZJRVIgICAgICAgICAgICAg ICAgICJDSEFQX0kiDQogI2RlZmluZSBJU0NTSV9LRVlfQ0hBUF9DSEFMTEVOR0UgICAgICAgICAg ICAgICAgICAiQ0hBUF9DIg0KICNkZWZpbmUgSVNDU0lfS0VZX0NIQVBfTkFNRSAgICAgICAgICAg ICAgICAgICAgICAgIkNIQVBfTiINCiAjZGVmaW5lIElTQ1NJX0tFWV9DSEFQX1JFU1BPTlNFICAg ICAgICAgICAgICAgICAgICJDSEFQX1IiDQogDQorLy8NCisvLyBJZGVudGlmaWVycyBvZiBzdXBw b3J0ZWQgQ0hBUCBoYXNoIGFsZ29yaXRobXM6DQorLy8gaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNz aWdubWVudHMvcHBwLW51bWJlcnMvcHBwLW51bWJlcnMueGh0bWwjcHBwLW51bWJlcnMtOQ0KKy8v DQogI2RlZmluZSBJU0NTSV9DSEFQX0FMR09SSVRITV9NRDUgICAgICAgICAgICAgICAgICA1DQog DQotLy8vDQotLy8vIE1ENV9IQVNIU0laRQ0KLS8vLw0KLSNkZWZpbmUgSVNDU0lfQ0hBUF9SU1Bf TEVOICAgICAgICAgICAgICAgICAgICAgICAgMTYNCisvLw0KKy8vIEJ5dGUgY291bnQgb2YgdGhl IGxhcmdlc3QgZGlnZXN0IG92ZXIgdGhlIGFib3ZlLWxpc3RlZA0KKy8vIElTQ1NJX0NIQVBfQUxH T1JJVEhNXyogaGFzaCBhbGdvcml0aG1zLg0KKy8vDQorI2RlZmluZSBJU0NTSV9DSEFQX01BWF9E SUdFU1RfU0laRSAgICAgICAgICAgICAgICBNRDVfRElHRVNUX1NJWkUNCiANCiAjZGVmaW5lIElT Q1NJX0NIQVBfU1RFUF9PTkUgICAgICAgICAgICAgICAgICAgICAgIDENCiAjZGVmaW5lIElTQ1NJ X0NIQVBfU1RFUF9UV08gICAgICAgICAgICAgICAgICAgICAgIDINCiAjZGVmaW5lIElTQ1NJX0NI QVBfU1RFUF9USFJFRSAgICAgICAgICAgICAgICAgICAgIDMNCiAjZGVmaW5lIElTQ1NJX0NIQVBf U1RFUF9GT1VSICAgICAgICAgICAgICAgICAgICAgIDQNCiANCiANCiAjcHJhZ21hIHBhY2soMSkN CiANCiB0eXBlZGVmIHN0cnVjdCBfSVNDU0lfQ0hBUF9BVVRIX0NPTkZJR19OVkRBVEEgew0KICAg VUlOVDggQ0hBUFR5cGU7DQogICBDSEFSOCBDSEFQTmFtZVtJU0NTSV9DSEFQX05BTUVfU1RPUkFH RV07DQogICBDSEFSOCBDSEFQU2VjcmV0W0lTQ1NJX0NIQVBfU0VDUkVUX1NUT1JBR0VdOw0KICAg Q0hBUjggUmV2ZXJzZUNIQVBOYW1lW0lTQ1NJX0NIQVBfTkFNRV9TVE9SQUdFXTsNCiAgIENIQVI4 IFJldmVyc2VDSEFQU2VjcmV0W0lTQ1NJX0NIQVBfU0VDUkVUX1NUT1JBR0VdOw0KIH0gSVNDU0lf Q0hBUF9BVVRIX0NPTkZJR19OVkRBVEE7DQogDQogI3ByYWdtYSBwYWNrKCkNCiANCiAvLy8NCiAv Ly8gSVNDU0kgQ0hBUCBBdXRoZW50aWNhdGlvbiBEYXRhDQogLy8vDQogdHlwZWRlZiBzdHJ1Y3Qg X0lTQ1NJX0NIQVBfQVVUSF9EQVRBIHsNCiAgIElTQ1NJX0NIQVBfQVVUSF9DT05GSUdfTlZEQVRB ICpBdXRoQ29uZmlnOw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgSW5JZGVudGlm aWVyOw0KICAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgSW5DaGFsbGVuZ2VbMTAyNF07 DQogICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBJbkNoYWxsZW5nZUxlbmd0aDsNCiAg IC8vDQogICAvLyBDYWxjdWxhdGVkIENIQVAgUmVzcG9uc2UgKENIQVBfUikgdmFsdWUuDQogICAv Lw0KLSAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgQ0hBUFJlc3BvbnNlW0lTQ1NJX0NI QVBfUlNQX0xFTl07DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICBDSEFQUmVzcG9u c2VbSVNDU0lfQ0hBUF9NQVhfRElHRVNUX1NJWkVdOw0KIA0KICAgLy8NCiAgIC8vIEF1dGgtZGF0 YSB0byBiZSBzZW50IG91dCBmb3IgbXV0dWFsIGF1dGhlbnRpY2F0aW9uLg0KICAgLy8NCiAgIC8v IFdoaWxlIHRoZSBjaGFsbGVuZ2Ugc2l6ZSBpcyB0ZWNobmljYWxseSBpbmRlcGVuZGVudCBvZiB0 aGUgaGFzaGluZw0KICAgLy8gYWxnb3JpdGhtLCBpdCBpcyBnb29kIHByYWN0aWNlIHRvIGF2b2lk IGhhc2hpbmcgKmZld2VyIGJ5dGVzKiB0aGFuIHRoZQ0KICAgLy8gZGlnZXN0IHNpemUuIEluIG90 aGVyIHdvcmRzLCBpdCdzIGdvb2QgcHJhY3RpY2UgdG8gZmVlZCAqYXQgbGVhc3QgYXMgbWFueQ0K ICAgLy8gYnl0ZXMqIHRvIHRoZSBoYXNoaW5nIGFsZ29yaXRobSBhcyB0aGUgaGFzaGluZyBhbGdv cml0aG0gd2lsbCBvdXRwdXQuDQogICAvLw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAg ICAgT3V0SWRlbnRpZmllcjsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIE91dENo YWxsZW5nZVtJU0NTSV9DSEFQX1JTUF9MRU5dOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAg ICAgICAgT3V0Q2hhbGxlbmdlW0lTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpFXTsNCiB9IElTQ1NJ X0NIQVBfQVVUSF9EQVRBOw0KIA0KIC8qKg0KICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIHJl Y2VpdmVkIGlTQ1NJIExvZ2luIFJlc3BvbnNlIGR1cmluZyB0aGUgc2VjdXJpdHkNCiAgIG5lZ290 aWF0aW9uIHN0YWdlLg0KIA0KICAgQHBhcmFtW2luXSBDb25uICAgICAgICAgICAgIFRoZSBpU0NT SSBjb25uZWN0aW9uLg0KIA0KICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICBUaGUgTG9n aW4gUmVzcG9uc2UgcGFzc2VkIHRoZSBDSEFQIHZhbGlkYXRpb24uDQogICBAcmV0dmFsIEVGSV9P VVRfT0ZfUkVTT1VSQ0VTIEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkuDQogICBAcmV0dmFsIEVG SV9QUk9UT0NPTF9FUlJPUiAgIFNvbWUga2luZCBvZiBwcm90b2NvbCBlcnJvciBvY2N1cnJlZC4N CiAgIEByZXR2YWwgT3RoZXJzICAgICAgICAgICAgICAgT3RoZXIgZXJyb3JzIGFzIGluZGljYXRl ZC4NCiANCiAqKi8NCiBFRklfU1RBVFVTDQogSVNjc2lDSEFQT25Sc3BSZWNlaXZlZCAoDQogICBJ TiBJU0NTSV9DT05ORUNUSU9OICAqQ29ubg0KICAgKTsNCiAvKioNCmRpZmYgLS1naXQgYS9OZXR3 b3JrUGtnL0lTY3NpRHhlL0lTY3NpQ0hBUC5jIGIvTmV0d29ya1BrZy9JU2NzaUR4ZS9JU2NzaUNI QVAuYwppbmRleCBiYjg0ZjQzNTlkMzUuLjc0NDgyNGU2M2QyMyAxMDA2NDQKLS0tIGEvTmV0d29y a1BrZy9JU2NzaUR4ZS9JU2NzaUNIQVAuYworKysgYi9OZXR3b3JrUGtnL0lTY3NpRHhlL0lTY3Np Q0hBUC5jCkBAIC05Niw5MCArOTYsOTAgQEAgSVNjc2lDSEFQQ2FsY3VsYXRlUmVzcG9uc2UgKAog DQogICBAcGFyYW1baW5dICAgQXV0aERhdGEgICAgICAgICAgICAgaVNDU0kgQ0hBUCBhdXRoZW50 aWNhdGlvbiBkYXRhLg0KICAgQHBhcmFtW2luXSAgIFRhcmdldFJlc3BvbnNlICAgICAgIFRoZSBy ZXNwb25zZSBmcm9tIHRhcmdldC4NCiANCiAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAg ICAgICBUaGUgcmVzcG9uc2UgZnJvbSB0YXJnZXQgcGFzc2VkDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24uDQogICBAcmV0dmFsIEVGSV9TRUNVUklU WV9WSU9MQVRJT04gICAgVGhlIHJlc3BvbnNlIGZyb20gdGFyZ2V0IHdhcyBub3QgZXhwZWN0ZWQN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS4NCiAgIEByZXR2YWwg T3RoZXJzICAgICAgICAgICAgICAgICAgICBPdGhlciBlcnJvcnMgYXMgaW5kaWNhdGVkLg0KIA0K ICoqLw0KIEVGSV9TVEFUVVMNCiBJU2NzaUNIQVBBdXRoVGFyZ2V0ICgNCiAgIElOICBJU0NTSV9D SEFQX0FVVEhfREFUQSAgKkF1dGhEYXRhLA0KICAgSU4gIFVJTlQ4ICAgICAgICAgICAgICAgICAq VGFyZ2V0UmVzcG9uc2UNCiAgICkNCiB7DQogICBFRklfU1RBVFVTICBTdGF0dXM7DQogICBVSU5U MzIgICAgICBTZWNyZXRTaXplOw0KLSAgVUlOVDggICAgICAgVmVyaWZ5UnNwW0lTQ1NJX0NIQVBf UlNQX0xFTl07DQorICBVSU5UOCAgICAgICBWZXJpZnlSc3BbSVNDU0lfQ0hBUF9NQVhfRElHRVNU X1NJWkVdOw0KIA0KICAgU3RhdHVzICAgICAgPSBFRklfU1VDQ0VTUzsNCiANCiAgIFNlY3JldFNp emUgID0gKFVJTlQzMikgQXNjaWlTdHJMZW4gKEF1dGhEYXRhLT5BdXRoQ29uZmlnLT5SZXZlcnNl Q0hBUFNlY3JldCk7DQogICBTdGF0dXMgPSBJU2NzaUNIQVBDYWxjdWxhdGVSZXNwb25zZSAoDQog ICAgICAgICAgICAgIEF1dGhEYXRhLT5PdXRJZGVudGlmaWVyLA0KICAgICAgICAgICAgICBBdXRo RGF0YS0+QXV0aENvbmZpZy0+UmV2ZXJzZUNIQVBTZWNyZXQsDQogICAgICAgICAgICAgIFNlY3Jl dFNpemUsDQogICAgICAgICAgICAgIEF1dGhEYXRhLT5PdXRDaGFsbGVuZ2UsDQotICAgICAgICAg ICAgIElTQ1NJX0NIQVBfUlNQX0xFTiwgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbGxlbmdl TGVuZ3RoDQorICAgICAgICAgICAgIE1ENV9ESUdFU1RfU0laRSwgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQ2hhbGxlbmdlTGVuZ3RoDQogICAgICAgICAgICAgIFZlcmlmeVJzcA0KICAgICAg ICAgICAgICApOw0KIA0KLSAgaWYgKENvbXBhcmVNZW0gKFZlcmlmeVJzcCwgVGFyZ2V0UmVzcG9u c2UsIElTQ1NJX0NIQVBfUlNQX0xFTikgIT0gMCkgew0KKyAgaWYgKENvbXBhcmVNZW0gKFZlcmlm eVJzcCwgVGFyZ2V0UmVzcG9uc2UsIE1ENV9ESUdFU1RfU0laRSkgIT0gMCkgew0KICAgICBTdGF0 dXMgPSBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KICAgfQ0KIA0KICAgcmV0dXJuIFN0YXR1czsN CiB9DQogDQogDQogLyoqDQogICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGUgcmVjZWl2ZWQgaVND U0kgTG9naW4gUmVzcG9uc2UgZHVyaW5nIHRoZSBzZWN1cml0eQ0KICAgbmVnb3RpYXRpb24gc3Rh Z2UuDQogDQogICBAcGFyYW1baW5dIENvbm4gICAgICAgICAgICAgVGhlIGlTQ1NJIGNvbm5lY3Rp b24uDQogDQogICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgIFRoZSBMb2dpbiBSZXNwb25z ZSBwYXNzZWQgdGhlIENIQVAgdmFsaWRhdGlvbi4NCiAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNP VVJDRVMgRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeS4NCiAgIEByZXR2YWwgRUZJX1BST1RPQ09M X0VSUk9SICAgU29tZSBraW5kIG9mIHByb3RvY29sIGVycm9yIG9jY3VycmVkLg0KICAgQHJldHZh bCBPdGhlcnMgICAgICAgICAgICAgICBPdGhlciBlcnJvcnMgYXMgaW5kaWNhdGVkLg0KIA0KICoq Lw0KIEVGSV9TVEFUVVMNCiBJU2NzaUNIQVBPblJzcFJlY2VpdmVkICgNCiAgIElOIElTQ1NJX0NP Tk5FQ1RJT04gICpDb25uDQogICApDQogew0KICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAg IFN0YXR1czsNCiAgIElTQ1NJX1NFU1NJT04gICAgICAgICAgICAgICAqU2Vzc2lvbjsNCiAgIElT Q1NJX0NIQVBfQVVUSF9EQVRBICAgICAgICAqQXV0aERhdGE7DQogICBDSEFSOCAgICAgICAgICAg ICAgICAgICAgICAgKlZhbHVlOw0KICAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICpEYXRh Ow0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIExlbjsNCiAgIExJU1RfRU5UUlkgICAg ICAgICAgICAgICAgICAqS2V5VmFsdWVMaXN0Ow0KICAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgIEFsZ29yaXRobTsNCiAgIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAqSWRlbnRpZmll cjsNCiAgIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAqQ2hhbGxlbmdlOw0KICAgQ0hBUjgg ICAgICAgICAgICAgICAgICAgICAgICpOYW1lOw0KICAgQ0hBUjggICAgICAgICAgICAgICAgICAg ICAgICpSZXNwb25zZTsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRSc3Bb SVNDU0lfQ0hBUF9SU1BfTEVOXTsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBUYXJn ZXRSc3BbSVNDU0lfQ0hBUF9NQVhfRElHRVNUX1NJWkVdOw0KICAgVUlOVDMyICAgICAgICAgICAg ICAgICAgICAgIFJzcExlbjsNCiAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQ7 DQogDQogICBBU1NFUlQgKENvbm4tPkN1cnJlbnRTdGFnZSA9PSBJU0NTSV9TRUNVUklUWV9ORUdP VElBVElPTik7DQogICBBU1NFUlQgKENvbm4tPlJzcFF1ZS5CdWZOdW0gIT0gMCk7DQogDQogICBT ZXNzaW9uICAgICA9IENvbm4tPlNlc3Npb247DQogICBBdXRoRGF0YSAgICA9ICZTZXNzaW9uLT5B dXRoRGF0YS5DSEFQOw0KICAgTGVuICAgICAgICAgPSBDb25uLT5Sc3BRdWUuQnVmU2l6ZTsNCiAg IERhdGEgICAgICAgID0gQWxsb2NhdGVaZXJvUG9vbCAoTGVuKTsNCiAgIGlmIChEYXRhID09IE5V TEwpIHsNCiAgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KICAgfQ0KICAgLy8NCiAg IC8vIENvcHkgdGhlIGRhdGEgaW4gY2FzZSB0aGUgZGF0YSBzcGFucyBvdmVyIG11bHRpcGxlIFBE VXMuDQogICAvLw0KICAgTmV0YnVmUXVlQ29weSAoJkNvbm4tPlJzcFF1ZSwgMCwgTGVuLCBEYXRh KTsNCiANCiAgIC8vDQpAQCAtMzI0LDQxICszMjQsNDEgQEAgSVNjc2lDSEFQT25Sc3BSZWNlaXZl ZCAoCiANCiAgIGNhc2UgSVNDU0lfQ0hBUF9TVEVQX0ZPVVI6DQogICAgIEFTU0VSVCAoQXV0aERh dGEtPkF1dGhDb25maWctPkNIQVBUeXBlID09IElTQ1NJX0NIQVBfTVVUVUFMKTsNCiAgICAgLy8N CiAgICAgLy8gVGhlIGZvcnRoIHN0ZXAsIENIQVBfTj08Tj4gQ0hBUF9SPTxSPiBpcyByZWNlaXZl ZCBmcm9tIFRhcmdldC4NCiAgICAgLy8NCiAgICAgTmFtZSA9IElTY3NpR2V0VmFsdWVCeUtleUZy b21MaXN0IChLZXlWYWx1ZUxpc3QsIElTQ1NJX0tFWV9DSEFQX05BTUUpOw0KICAgICBpZiAoTmFt ZSA9PSBOVUxMKSB7DQogICAgICAgZ290byBPTl9FWElUOw0KICAgICB9DQogDQogICAgIFJlc3Bv bnNlID0gSVNjc2lHZXRWYWx1ZUJ5S2V5RnJvbUxpc3QgKA0KICAgICAgICAgICAgICAgICAgS2V5 VmFsdWVMaXN0LA0KICAgICAgICAgICAgICAgICAgSVNDU0lfS0VZX0NIQVBfUkVTUE9OU0UNCiAg ICAgICAgICAgICAgICAgICk7DQogICAgIGlmIChSZXNwb25zZSA9PSBOVUxMKSB7DQogICAgICAg Z290byBPTl9FWElUOw0KICAgICB9DQogDQotICAgIFJzcExlbiA9IElTQ1NJX0NIQVBfUlNQX0xF TjsNCisgICAgUnNwTGVuID0gTUQ1X0RJR0VTVF9TSVpFOw0KICAgICBTdGF0dXMgPSBJU2NzaUhl eFRvQmluIChUYXJnZXRSc3AsICZSc3BMZW4sIFJlc3BvbnNlKTsNCi0gICAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSB8fCBSc3BMZW4gIT0gSVNDU0lfQ0hBUF9SU1BfTEVOKSB7DQorICAgIGlmIChF RklfRVJST1IgKFN0YXR1cykgfHwgUnNwTGVuICE9IE1ENV9ESUdFU1RfU0laRSkgew0KICAgICAg IFN0YXR1cyA9IEVGSV9QUk9UT0NPTF9FUlJPUjsNCiAgICAgICBnb3RvIE9OX0VYSVQ7DQogICAg IH0NCiANCiAgICAgLy8NCiAgICAgLy8gQ2hlY2sgdGhlIENIQVAgTmFtZSBhbmQgUmVzcG9uc2Ug cmVwbGllZCBieSBUYXJnZXQuDQogICAgIC8vDQogICAgIFN0YXR1cyA9IElTY3NpQ0hBUEF1dGhU YXJnZXQgKEF1dGhEYXRhLCBUYXJnZXRSc3ApOw0KICAgICBicmVhazsNCiANCiAgIGRlZmF1bHQ6 DQogICAgIGJyZWFrOw0KICAgfQ0KIA0KIE9OX0VYSVQ6DQogDQogICBpZiAoS2V5VmFsdWVMaXN0 ICE9IE5VTEwpIHsNCiAgICAgSVNjc2lGcmVlS2V5VmFsdWVMaXN0IChLZXlWYWx1ZUxpc3QpOw0K ICAgfQ0KQEAgLTM5NSw0NSArMzk1LDQ1IEBAIElTY3NpQ0hBUFRvU2VuZFJlcSAoCiAgIElTQ1NJ X0NIQVBfQVVUSF9EQVRBICAgICAgICAqQXV0aERhdGE7DQogICBDSEFSOCAgICAgICAgICAgICAg ICAgICAgICAgKlZhbHVlOw0KICAgQ0hBUjggICAgICAgICAgICAgICAgICAgICAgIFZhbHVlU3Ry WzI1Nl07DQogICBDSEFSOCAgICAgICAgICAgICAgICAgICAgICAgKlJlc3BvbnNlOw0KICAgVUlO VDMyICAgICAgICAgICAgICAgICAgICAgIFJzcExlbjsNCiAgIENIQVI4ICAgICAgICAgICAgICAg ICAgICAgICAqQ2hhbGxlbmdlOw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIENoYWxs ZW5nZUxlbjsNCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICBCaW5Ub0hleFN0YXR1czsN CiANCiAgIEFTU0VSVCAoQ29ubi0+Q3VycmVudFN0YWdlID09IElTQ1NJX1NFQ1VSSVRZX05FR09U SUFUSU9OKTsNCiANCiAgIFNlc3Npb24gICAgID0gQ29ubi0+U2Vzc2lvbjsNCiAgIEF1dGhEYXRh ICAgID0gJlNlc3Npb24tPkF1dGhEYXRhLkNIQVA7DQogICBMb2dpblJlcSAgICA9IChJU0NTSV9M T0dJTl9SRVFVRVNUICopIE5ldGJ1ZkdldEJ5dGUgKFBkdSwgMCwgMCk7DQogICBpZiAoTG9naW5S ZXEgPT0gTlVMTCkgew0KICAgICByZXR1cm4gRUZJX1BST1RPQ09MX0VSUk9SOw0KICAgfQ0KICAg U3RhdHVzICAgICAgPSBFRklfU1VDQ0VTUzsNCiANCi0gIFJzcExlbiAgICAgID0gMiAqIElTQ1NJ X0NIQVBfUlNQX0xFTiArIDM7DQorICBSc3BMZW4gICAgICA9IDIgKiBJU0NTSV9DSEFQX01BWF9E SUdFU1RfU0laRSArIDM7DQogICBSZXNwb25zZSAgICA9IEFsbG9jYXRlWmVyb1Bvb2wgKFJzcExl bik7DQogICBpZiAoUmVzcG9uc2UgPT0gTlVMTCkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9S RVNPVVJDRVM7DQogICB9DQogDQotICBDaGFsbGVuZ2VMZW4gID0gMiAqIElTQ1NJX0NIQVBfUlNQ X0xFTiArIDM7DQorICBDaGFsbGVuZ2VMZW4gID0gMiAqIElTQ1NJX0NIQVBfTUFYX0RJR0VTVF9T SVpFICsgMzsNCiAgIENoYWxsZW5nZSAgICAgPSBBbGxvY2F0ZVplcm9Qb29sIChDaGFsbGVuZ2VM ZW4pOw0KICAgaWYgKENoYWxsZW5nZSA9PSBOVUxMKSB7DQogICAgIEZyZWVQb29sIChSZXNwb25z ZSk7DQogICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCiAgIH0NCiANCiAgIHN3aXRj aCAoQ29ubi0+QXV0aFN0ZXApIHsNCiAgIGNhc2UgSVNDU0lfQVVUSF9JTklUSUFMOg0KICAgICAv Lw0KICAgICAvLyBJdCdzIHRoZSBpbml0aWFsIExvZ2luIFJlcXVlc3QuIEZpbGwgaW4gdGhlIGtl eT12YWx1ZSBwYWlycyBtYW5kYXRvcnkNCiAgICAgLy8gZm9yIHRoZSBpbml0aWFsIExvZ2luIFJl cXVlc3QuDQogICAgIC8vDQogICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyICgNCiAgICAgICBQZHUs DQogICAgICAgSVNDU0lfS0VZX0lOSVRJQVRPUl9OQU1FLA0KICAgICAgIG1Qcml2YXRlLT5Jbml0 aWF0b3JOYW1lDQogICAgICAgKTsNCiAgICAgSVNjc2lBZGRLZXlWYWx1ZVBhaXIgKFBkdSwgSVND U0lfS0VZX1NFU1NJT05fVFlQRSwgIk5vcm1hbCIpOw0KICAgICBJU2NzaUFkZEtleVZhbHVlUGFp ciAoDQpAQCAtNDY2LDU5ICs0NjYsNTkgQEAgSVNjc2lDSEFQVG9TZW5kUmVxICgKIA0KICAgY2Fz ZSBJU0NTSV9DSEFQX1NURVBfVEhSRUU6DQogICAgIC8vDQogICAgIC8vIFRoaXJkIHN0ZXAsIHNl bmQgdGhlIExvZ2luIFJlcXVlc3Qgd2l0aCBDSEFQX049PE4+IENIQVBfUj08Uj4gb3INCiAgICAg Ly8gQ0hBUF9OPTxOPiBDSEFQX1I9PFI+IENIQVBfST08ST4gQ0hBUF9DPTxDPiBpZiB0YXJnZXQg YXV0aGVudGljYXRpb24gaXMNCiAgICAgLy8gcmVxdWlyZWQgdG9vLg0KICAgICAvLw0KICAgICAv LyBDSEFQX049PE4+DQogICAgIC8vDQogICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyICgNCiAgICAg ICBQZHUsDQogICAgICAgSVNDU0lfS0VZX0NIQVBfTkFNRSwNCiAgICAgICAoQ0hBUjggKikgJkF1 dGhEYXRhLT5BdXRoQ29uZmlnLT5DSEFQTmFtZQ0KICAgICAgICk7DQogICAgIC8vDQogICAgIC8v IENIQVBfUj08Uj4NCiAgICAgLy8NCiAgICAgQmluVG9IZXhTdGF0dXMgPSBJU2NzaUJpblRvSGV4 ICgNCiAgICAgICAgICAgICAgICAgICAgICAgIChVSU5UOCAqKSBBdXRoRGF0YS0+Q0hBUFJlc3Bv bnNlLA0KLSAgICAgICAgICAgICAgICAgICAgICAgSVNDU0lfQ0hBUF9SU1BfTEVOLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgTUQ1X0RJR0VTVF9TSVpFLA0KICAgICAgICAgICAgICAgICAgICAg ICAgUmVzcG9uc2UsDQogICAgICAgICAgICAgICAgICAgICAgICAmUnNwTGVuDQogICAgICAgICAg ICAgICAgICAgICAgICApOw0KICAgICBBU1NFUlRfRUZJX0VSUk9SIChCaW5Ub0hleFN0YXR1cyk7 DQogICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyIChQZHUsIElTQ1NJX0tFWV9DSEFQX1JFU1BPTlNF LCBSZXNwb25zZSk7DQogDQogICAgIGlmIChBdXRoRGF0YS0+QXV0aENvbmZpZy0+Q0hBUFR5cGUg PT0gSVNDU0lfQ0hBUF9NVVRVQUwpIHsNCiAgICAgICAvLw0KICAgICAgIC8vIENIQVBfST08ST4N CiAgICAgICAvLw0KICAgICAgIElTY3NpR2VuUmFuZG9tICgoVUlOVDggKikgJkF1dGhEYXRhLT5P dXRJZGVudGlmaWVyLCAxKTsNCiAgICAgICBBc2NpaVNQcmludCAoVmFsdWVTdHIsIHNpemVvZiAo VmFsdWVTdHIpLCAiJWQiLCBBdXRoRGF0YS0+T3V0SWRlbnRpZmllcik7DQogICAgICAgSVNjc2lB ZGRLZXlWYWx1ZVBhaXIgKFBkdSwgSVNDU0lfS0VZX0NIQVBfSURFTlRJRklFUiwgVmFsdWVTdHIp Ow0KICAgICAgIC8vDQogICAgICAgLy8gQ0hBUF9DPTxDPg0KICAgICAgIC8vDQotICAgICAgSVNj c2lHZW5SYW5kb20gKChVSU5UOCAqKSBBdXRoRGF0YS0+T3V0Q2hhbGxlbmdlLCBJU0NTSV9DSEFQ X1JTUF9MRU4pOw0KKyAgICAgIElTY3NpR2VuUmFuZG9tICgoVUlOVDggKikgQXV0aERhdGEtPk91 dENoYWxsZW5nZSwgTUQ1X0RJR0VTVF9TSVpFKTsNCiAgICAgICBCaW5Ub0hleFN0YXR1cyA9IElT Y3NpQmluVG9IZXggKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAoVUlOVDggKikgQXV0aERh dGEtPk91dENoYWxsZW5nZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgSVNDU0lfQ0hBUF9S U1BfTEVOLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICBNRDVfRElHRVNUX1NJWkUsDQogICAg ICAgICAgICAgICAgICAgICAgICAgIENoYWxsZW5nZSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgJkNoYWxsZW5nZUxlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgIEFT U0VSVF9FRklfRVJST1IgKEJpblRvSGV4U3RhdHVzKTsNCiAgICAgICBJU2NzaUFkZEtleVZhbHVl UGFpciAoUGR1LCBJU0NTSV9LRVlfQ0hBUF9DSEFMTEVOR0UsIENoYWxsZW5nZSk7DQogDQogICAg ICAgQ29ubi0+QXV0aFN0ZXAgPSBJU0NTSV9DSEFQX1NURVBfRk9VUjsNCiAgICAgfQ0KICAgICAv Lw0KICAgICAvLyBTZXQgdGhlIHN0YWdlIHRyYW5zaXRpb24gZmxhZy4NCiAgICAgLy8NCiAgICAg SVNDU0lfU0VUX0ZMQUcgKExvZ2luUmVxLCBJU0NTSV9MT0dJTl9SRVFfUERVX0ZMQUdfVFJBTlNJ VCk7DQogICAgIGJyZWFrOw0KIA0KICAgZGVmYXVsdDoNCiAgICAgU3RhdHVzID0gRUZJX1BST1RP Q09MX0VSUk9SOw0KICAgICBicmVhazsNCiAgIH0NCiANCi0tIAoyLjE5LjEuMy5nMzAyNDdhYTVk MjAxCgoK