From win-pv-devel-bounces@lists.xenproject.org Tue May 03 13:15:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 03 May 2016 13:15:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1axaAq-0004V8-LG; Tue, 03 May 2016 13:15:36 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1axaAp-0004Um-Ew
 for win-pv-devel@lists.xenproject.org; Tue, 03 May 2016 13:15:35 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 5C/B9-18833-674A8275; Tue, 03 May 2016 13:15:34 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNKsWRWlGSWpSXmKPExsUSd3yrvG7ZEo1
 wg0lrOCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrRvMm9YJO4Ypf204xNTDeFuxi5OIQEuhjlNiw
 u5Opi5GDQ0JASaKl2Q0iPpFRYnXrFfYuRk4OFoFGZomXHZ4gCQmBtYwSG3d8ZgRJCAmsZJR4/
 ywOVREnh4hAqkRH1yQmEJtNwFii9dxysHphgQiJ723PwWx+AVmJjysngi3mFVCTOHRCDWKMis
 T21kPsIGFRgXCJNdvdQcK8AoISJ2c+YQE5gVmgnVHiZ/9xsNskBIQljuzfyTKBUXAWkrpZyOp
 AEswC3hJ3T71knYXkpFlITp2FcMYsJJdCtOpItH1eyARha0ssW/iaGcK2lVi37j0LhK0n8fZ3
 L5RtKbF+xyf2BYw8qxjVi1OLylKLdA31kooy0zNKchMzc3QNDcz0clOLixPTU3MSk4r1kvNzN
 zECI5EBCHYw7nzudIhRkoNJSZS3f7FGuBBfUn5KZUZicUZ8UWlOavEhRhkODiUJXl2QnGBRan
 pqRVpmDjAlwKQlOHiURHj1QNK8xQWJucWZ6RCpU4yKUuK8BSAJAZBERmkeXBssDV1ilJUS5mU
 EOkSIpyC1KDezBFX+FaM4B6OSMK8fyBSezLwSuOmvgBYzAS3OXq8KsrgkESEl1cBYvWyP16t9
 rUf0H7Xu8N6xdLpBn3mgsPsO2ellbVqlfhHT5+xYPNHSde6j51bPT3/Rl3Iue1bC3Wijq//Wo
 njR2pWpG0tT3x/Tc1A0125OlEnfJx6Q7/3OkDu2tUbsNV/PqaK8ltBjtj1R2x3K2Bd91b0otE
 TgSOzE8B+beaVzbyXybrMJ7VViKc5INNRiLipOBADvlPLMPgMAAA==
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-6.tower-21.messagelabs.com!1462281333!12354786!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26186 invoked from network); 3 May 2016 13:15:34 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-6.tower-21.messagelabs.com with SMTP; 3 May 2016 13:15:34 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 5BE7B4041AB;
 Tue,  3 May 2016 15:15:32 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 87C444041AD;
 Tue,  3 May 2016 15:15:21 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1462281321; bh=w5PdDJ4Q9uIyaYThrb1fEk/BIsIxyOfu7ggaHJheUHQ=;
 h=To:From:Subject:Message-ID:Date:MIME-Version:Content-Type:From;
 b=P2Ul+HT0dWCsLIZfXkdf+mDgD8IRPRLa2WhI/HlOzdQav/iQt4Hu0eDVBMlbo4kuT
 xRmjjs8vxL0jd1YYvtRQebojf8rFo90hDRx47/20ojfuk/nVmB28qvKdt+ejEIy/JN
 VTtAPEFQhdkxTs3EB9JNbER/lzcfoWczV4OQ9Lvw=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 503554041AB;
 Tue,  3 May 2016 15:15:21 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1462281321; bh=w5PdDJ4Q9uIyaYThrb1fEk/BIsIxyOfu7ggaHJheUHQ=;
 h=To:From:Subject:Message-ID:Date:MIME-Version:Content-Type:From;
 b=P2Ul+HT0dWCsLIZfXkdf+mDgD8IRPRLa2WhI/HlOzdQav/iQt4Hu0eDVBMlbo4kuT
 xRmjjs8vxL0jd1YYvtRQebojf8rFo90hDRx47/20ojfuk/nVmB28qvKdt+ejEIy/JN
 VTtAPEFQhdkxTs3EB9JNbER/lzcfoWczV4OQ9Lvw=
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 xen-users@lists.xen.org
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <5728A468.2080708@etit.hu>
Date: Tue, 3 May 2016 15:15:20 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
X-EsetResult: clean
Subject: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still ongoing
 with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4596930577311632000=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4596930577311632000==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE
Content-Type: multipart/mixed; boundary="1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 xen-users@lists.xen.org
Message-ID: <5728A468.2080708@etit.hu>
Subject: SIGNED WINPV DRIVERS: Are Discussions still ongoing with the Linux
 Foundation?

--1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: quoted-printable

Dear All.

It's more then a month now that the above information had been
distributed by Paul.

Does anyone has any update on this? When seemes these discussions will
end up in a resolution?

Thx.

--=20


=C9li=E1s Tam=E1s
Thomas Elias

ETIT[nwpro] KFT, =DCgyvezet=F5-H=E1l=F3zatbiztons=E1gi specialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=E9rn=F6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu--

--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXKKRoAAoJENWYes1C3s/CSj4QAKYBSnU0ZsXRyRp86B6aTEVB
EzKP2Cwt+umwVPtH68sQDhM2RJ+pQFCk3+vPg/qtBPQ09YAyzB2T0yNvQXKPPSRa
GUbYH+Aclb3pInluk8DjCCLe/GcFcnJSj96d6UzUKlH9SAuAwPKxct0GEBT3KgEJ
LiREYBuFBDNQOxksw0z3Nt6UNKCxyFwlUAhauXaSeyHKpirj+WKTdjuCrRv9qmNo
nvXyV2A8xmpZ2b8spIqh5iRQFaJTaMyF+ojlog8CnLcmbDGmyk8KuShanEhZlwkR
iO4lHCfTeKK1gqDCklcJ8diYgg53fcOqAlmUbMcs9KvHcWBabJIGoaPofA93wymp
dFmWxbq8S9WnelQw4SvPf0xpbkwJ6vd6YJ2506d5riKJl6Wxg6H3wMUnlRTXA+iW
8xlR2iG/CF3AjgyZEesINq/Dscmqagt4wJ2v1nDMfUEsCVWv9Y4UYL6M0LVYPyl6
jlYIGWGnmfUiQztJf72rhb3U4jgP5LDAhvezjYaS2xDTPTYwJ8iHm5awQEG2a6J0
vqs4q3A3IL2bYF0c03z+DepyWdSsg58UKYY17d9D1wxE7Rs13ofamRAFEYWu8j7B
8+qnHzPqbq797X1weWsUOMIrhz9yghm9eYSlQYxVN1g99bgwVk2kFlNt3ELmke3z
mnQYRH/w1kk4ZpdHpnua
=X6Tt
-----END PGP SIGNATURE-----

--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE--


--===============4596930577311632000==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============4596930577311632000==--


From win-pv-devel-bounces@lists.xenproject.org Tue May 03 13:15:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 03 May 2016 13:15:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1axaAq-0004V8-LG; Tue, 03 May 2016 13:15:36 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1axaAp-0004Um-Ew
 for win-pv-devel@lists.xenproject.org; Tue, 03 May 2016 13:15:35 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 5C/B9-18833-674A8275; Tue, 03 May 2016 13:15:34 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNKsWRWlGSWpSXmKPExsUSd3yrvG7ZEo1
 wg0lrOCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrRvMm9YJO4Ypf204xNTDeFuxi5OIQEuhjlNiw
 u5Opi5GDQ0JASaKl2Q0iPpFRYnXrFfYuRk4OFoFGZomXHZ4gCQmBtYwSG3d8ZgRJCAmsZJR4/
 ywOVREnh4hAqkRH1yQmEJtNwFii9dxysHphgQiJ723PwWx+AVmJjysngi3mFVCTOHRCDWKMis
 T21kPsIGFRgXCJNdvdQcK8AoISJ2c+YQE5gVmgnVHiZ/9xsNskBIQljuzfyTKBUXAWkrpZyOp
 AEswC3hJ3T71knYXkpFlITp2FcMYsJJdCtOpItH1eyARha0ssW/iaGcK2lVi37j0LhK0n8fZ3
 L5RtKbF+xyf2BYw8qxjVi1OLylKLdA31kooy0zNKchMzc3QNDcz0clOLixPTU3MSk4r1kvNzN
 zECI5EBCHYw7nzudIhRkoNJSZS3f7FGuBBfUn5KZUZicUZ8UWlOavEhRhkODiUJXl2QnGBRan
 pqRVpmDjAlwKQlOHiURHj1QNK8xQWJucWZ6RCpU4yKUuK8BSAJAZBERmkeXBssDV1ilJUS5mU
 EOkSIpyC1KDezBFX+FaM4B6OSMK8fyBSezLwSuOmvgBYzAS3OXq8KsrgkESEl1cBYvWyP16t9
 rUf0H7Xu8N6xdLpBn3mgsPsO2ellbVqlfhHT5+xYPNHSde6j51bPT3/Rl3Iue1bC3Wijq//Wo
 njR2pWpG0tT3x/Tc1A0125OlEnfJx6Q7/3OkDu2tUbsNV/PqaK8ltBjtj1R2x3K2Bd91b0otE
 TgSOzE8B+beaVzbyXybrMJ7VViKc5INNRiLipOBADvlPLMPgMAAA==
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-6.tower-21.messagelabs.com!1462281333!12354786!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26186 invoked from network); 3 May 2016 13:15:34 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-6.tower-21.messagelabs.com with SMTP; 3 May 2016 13:15:34 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 5BE7B4041AB;
 Tue,  3 May 2016 15:15:32 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 87C444041AD;
 Tue,  3 May 2016 15:15:21 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1462281321; bh=w5PdDJ4Q9uIyaYThrb1fEk/BIsIxyOfu7ggaHJheUHQ=;
 h=To:From:Subject:Message-ID:Date:MIME-Version:Content-Type:From;
 b=P2Ul+HT0dWCsLIZfXkdf+mDgD8IRPRLa2WhI/HlOzdQav/iQt4Hu0eDVBMlbo4kuT
 xRmjjs8vxL0jd1YYvtRQebojf8rFo90hDRx47/20ojfuk/nVmB28qvKdt+ejEIy/JN
 VTtAPEFQhdkxTs3EB9JNbER/lzcfoWczV4OQ9Lvw=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 503554041AB;
 Tue,  3 May 2016 15:15:21 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1462281321; bh=w5PdDJ4Q9uIyaYThrb1fEk/BIsIxyOfu7ggaHJheUHQ=;
 h=To:From:Subject:Message-ID:Date:MIME-Version:Content-Type:From;
 b=P2Ul+HT0dWCsLIZfXkdf+mDgD8IRPRLa2WhI/HlOzdQav/iQt4Hu0eDVBMlbo4kuT
 xRmjjs8vxL0jd1YYvtRQebojf8rFo90hDRx47/20ojfuk/nVmB28qvKdt+ejEIy/JN
 VTtAPEFQhdkxTs3EB9JNbER/lzcfoWczV4OQ9Lvw=
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 xen-users@lists.xen.org
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <5728A468.2080708@etit.hu>
Date: Tue, 3 May 2016 15:15:20 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
X-EsetResult: clean
Subject: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still ongoing
 with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4596930577311632000=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4596930577311632000==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE
Content-Type: multipart/mixed; boundary="1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 xen-users@lists.xen.org
Message-ID: <5728A468.2080708@etit.hu>
Subject: SIGNED WINPV DRIVERS: Are Discussions still ongoing with the Linux
 Foundation?

--1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: quoted-printable

Dear All.

It's more then a month now that the above information had been
distributed by Paul.

Does anyone has any update on this? When seemes these discussions will
end up in a resolution?

Thx.

--=20


=C9li=E1s Tam=E1s
Thomas Elias

ETIT[nwpro] KFT, =DCgyvezet=F5-H=E1l=F3zatbiztons=E1gi specialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=E9rn=F6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--1cKguFRWDL0q0Hr0JdE6NqO4tbgb2qlSu--

--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXKKRoAAoJENWYes1C3s/CSj4QAKYBSnU0ZsXRyRp86B6aTEVB
EzKP2Cwt+umwVPtH68sQDhM2RJ+pQFCk3+vPg/qtBPQ09YAyzB2T0yNvQXKPPSRa
GUbYH+Aclb3pInluk8DjCCLe/GcFcnJSj96d6UzUKlH9SAuAwPKxct0GEBT3KgEJ
LiREYBuFBDNQOxksw0z3Nt6UNKCxyFwlUAhauXaSeyHKpirj+WKTdjuCrRv9qmNo
nvXyV2A8xmpZ2b8spIqh5iRQFaJTaMyF+ojlog8CnLcmbDGmyk8KuShanEhZlwkR
iO4lHCfTeKK1gqDCklcJ8diYgg53fcOqAlmUbMcs9KvHcWBabJIGoaPofA93wymp
dFmWxbq8S9WnelQw4SvPf0xpbkwJ6vd6YJ2506d5riKJl6Wxg6H3wMUnlRTXA+iW
8xlR2iG/CF3AjgyZEesINq/Dscmqagt4wJ2v1nDMfUEsCVWv9Y4UYL6M0LVYPyl6
jlYIGWGnmfUiQztJf72rhb3U4jgP5LDAhvezjYaS2xDTPTYwJ8iHm5awQEG2a6J0
vqs4q3A3IL2bYF0c03z+DepyWdSsg58UKYY17d9D1wxE7Rs13ofamRAFEYWu8j7B
8+qnHzPqbq797X1weWsUOMIrhz9yghm9eYSlQYxVN1g99bgwVk2kFlNt3ELmke3z
mnQYRH/w1kk4ZpdHpnua
=X6Tt
-----END PGP SIGNATURE-----

--FDWjoQRujkqAgMJfN6WcDJxoJeogbgOjE--


--===============4596930577311632000==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============4596930577311632000==--


From win-pv-devel-bounces@lists.xenproject.org Tue May 03 16:54:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 03 May 2016 16:54:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1axdaI-0002IN-6u; Tue, 03 May 2016 16:54:06 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=924257913=Paul.Durrant@citrix.com>)
 id 1axdaG-0002IC-Ol
 for win-pv-devel@lists.xenproject.org; Tue, 03 May 2016 16:54:04 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 48/1F-09532-CA7D8275; Tue, 03 May 2016 16:54:04 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQnf1dY1
 wg72vWSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpMG34LVXBXbDy1mbWD8w9HFyMkhIeAnsf3B
 czYQm01AR2Lp0flMXYxcHCICmxklLryfwNrFyMHBLOAhsea7L0iNsEC2xJx3k1hBbBGBHImeV
 f9YIGwjiasbljKB2CwCKhJbWq+A2bwC7hIXD3wEqxESUJOY/Pk9M4jNKaAu0XJ8O1gNo4CsxJ
 fG1WBxZgFxiVtP5jNB3CYgsWTPeWYIW1Ti5eN/rBC2gcTWpftYIOr1JJ6dmgVla0ssW/iaGWK
 voMTJmU+g9gLd8/gA1BxuiZWf/7BMYBSdhWTdLCSjZiEZNQvJqAWMLKsY1YtTi8pSi3SN9ZKK
 MtMzSnITM3N0DQ3M9HJTi4sT01NzEpOK9ZLzczcxAuOEAQh2MHb8czrEKMnBpCTKO/2yRrgQX
 1J+SmVGYnFGfFFpTmrxIUYZDg4lCV4eYNwJCRalpqdWpGXmACMWJi3BwaMkwltyDSjNW1yQmF
 ucmQ6ROsWoKCXOewokIQCSyCjNg2uDJYlLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEuYVBNn
 Ok5lXAjf9FdBiJqDF2etVQRaXJCKkpBoYV1pXlQjdbbvzvmuRvMGbTwdL1k6RWnTA+cF5QW7j
 G4wZ9hbXCqNfWAT39nsye+svflBfFC/fk72b+Qhr5kf7vb4T7m+/nXFiglVcVb+LeVXfzoNGh
 9e5bcma3taydlLLcRaN05EcTnfD1BduNdDediXNlW1V8uGFPb8Wzvn0Q6aLqYjnw9y5SizFGY
 mGWsxFxYkAqljZnQ0DAAA=
X-Env-Sender: prvs=924257913=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1462294442!12386683!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16716 invoked from network); 3 May 2016 16:54:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 3 May 2016 16:54:02 -0000
X-IronPort-AV: E=Sophos;i="5.24,573,1454976000"; d="scan'208";a="20724865"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?iso-8859-2?Q?=C9li=E1s_Tam=E1s?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "xen-users@lists.xen.org" <xen-users@lists.xen.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQ
Date: Tue, 3 May 2016 16:53:59 +0000
Message-ID: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
In-Reply-To: <5728A468.2080708@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Lars Kurth \(lars.kurth@xenproject.org\)" <lars.kurth@xenproject.org>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbgo+IEJlaGFsZiBP
ZiDDiWxpw6FzIFRhbcOhcwo+IFNlbnQ6IDAzIE1heSAyMDE2IDE0OjE1Cj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgeGVuLXVzZXJzQGxpc3RzLnhlbi5vcmcKPiBTdWJq
ZWN0OiBbd2luLXB2LWRldmVsXSBTSUdORUQgV0lOUFYgRFJJVkVSUzogQXJlIERpc2N1c3Npb25z
IHN0aWxsCj4gb25nb2luZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPwo+IAo+IERlYXIgQWxs
Lgo+IAo+IEl0J3MgbW9yZSB0aGVuIGEgbW9udGggbm93IHRoYXQgdGhlIGFib3ZlIGluZm9ybWF0
aW9uIGhhZCBiZWVuCj4gZGlzdHJpYnV0ZWQgYnkgUGF1bC4KPiAKPiBEb2VzIGFueW9uZSBoYXMg
YW55IHVwZGF0ZSBvbiB0aGlzPyBXaGVuIHNlZW1lcyB0aGVzZSBkaXNjdXNzaW9ucyB3aWxsCj4g
ZW5kIHVwIGluIGEgcmVzb2x1dGlvbj8KPiAKClVuZm9ydHVuYXRlbHkgSSBoYXZlIG5vIG1lYW5p
bmdmdWwgdXBkYXRlLiBEaXNjdXNzaW9ucyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uIHNlZW0g
dG8gaGF2ZSBjb21wbGV0ZWx5IHN0YWxsZWQuIEl0IGlzIG1vc3QgZnJ1c3RyYXRpbmcuCgogIFBh
dWwKCj4gVGh4Lgo+IAo+IC0tCj4gCj4gCj4gw4lsacOhcyBUYW3DoXMKPiBUaG9tYXMgRWxpYXMK
PiAKPiBFVElUW253cHJvXSBLRlQsIMOcZ3l2ZXpldMWRLUjDoWzDs3phdGJpenRvbnPDoWdpIHNw
ZWNpYWxpc3RhCj4gRVRJVFtud3Byb10gTHRkLCBHZW5lcmFsIE1hbmFnZXItTmV0d29yayBzZWN1
cml0eSBzcGVjaWFsaXN0Cj4gCj4gVGVsLiBIVTogKzM2LzMwLTQ5Ny0xNjI2Cj4gVGVsLiBERTog
KzQ5LzE2MC02NTEtODcyMwo+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQt
cHViLmFzYwo+IAo+IE9rbGV2ZWxlcyBtw6lybsO2ay1pbmZvcm1hdGlrdXMgKE1TQykKPiBNYXN0
ZXIgb2YgU2NpZW5jZSBpbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChNU0MpCj4gCj4gS2FwY3Nv
bGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0Cj4gSm9naSBueWlsYXRr
b3phdDogaHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQKPiBDb250YWN0OiBo
dHRwOi8vZXRpdC5odS9pbmRleC5waHAvZW4vY29udGFjdAo+IERpc2NsYWltZXI6IGh0dHA6Ly9l
dGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0CgoKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 03 16:54:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 03 May 2016 16:54:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1axdaI-0002IN-6u; Tue, 03 May 2016 16:54:06 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=924257913=Paul.Durrant@citrix.com>)
 id 1axdaG-0002IC-Ol
 for win-pv-devel@lists.xenproject.org; Tue, 03 May 2016 16:54:04 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 48/1F-09532-CA7D8275; Tue, 03 May 2016 16:54:04 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQnf1dY1
 wg72vWSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpMG34LVXBXbDy1mbWD8w9HFyMkhIeAnsf3B
 czYQm01AR2Lp0flMXYxcHCICmxklLryfwNrFyMHBLOAhsea7L0iNsEC2xJx3k1hBbBGBHImeV
 f9YIGwjiasbljKB2CwCKhJbWq+A2bwC7hIXD3wEqxESUJOY/Pk9M4jNKaAu0XJ8O1gNo4CsxJ
 fG1WBxZgFxiVtP5jNB3CYgsWTPeWYIW1Ti5eN/rBC2gcTWpftYIOr1JJ6dmgVla0ssW/iaGWK
 voMTJmU+g9gLd8/gA1BxuiZWf/7BMYBSdhWTdLCSjZiEZNQvJqAWMLKsY1YtTi8pSi3SN9ZKK
 MtMzSnITM3N0DQ3M9HJTi4sT01NzEpOK9ZLzczcxAuOEAQh2MHb8czrEKMnBpCTKO/2yRrgQX
 1J+SmVGYnFGfFFpTmrxIUYZDg4lCV4eYNwJCRalpqdWpGXmACMWJi3BwaMkwltyDSjNW1yQmF
 ucmQ6ROsWoKCXOewokIQCSyCjNg2uDJYlLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEuYVBNn
 Ok5lXAjf9FdBiJqDF2etVQRaXJCKkpBoYV1pXlQjdbbvzvmuRvMGbTwdL1k6RWnTA+cF5QW7j
 G4wZ9hbXCqNfWAT39nsye+svflBfFC/fk72b+Qhr5kf7vb4T7m+/nXFiglVcVb+LeVXfzoNGh
 9e5bcma3taydlLLcRaN05EcTnfD1BduNdDediXNlW1V8uGFPb8Wzvn0Q6aLqYjnw9y5SizFGY
 mGWsxFxYkAqljZnQ0DAAA=
X-Env-Sender: prvs=924257913=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1462294442!12386683!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16716 invoked from network); 3 May 2016 16:54:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 3 May 2016 16:54:02 -0000
X-IronPort-AV: E=Sophos;i="5.24,573,1454976000"; d="scan'208";a="20724865"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?iso-8859-2?Q?=C9li=E1s_Tam=E1s?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "xen-users@lists.xen.org" <xen-users@lists.xen.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQ
Date: Tue, 3 May 2016 16:53:59 +0000
Message-ID: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
In-Reply-To: <5728A468.2080708@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Lars Kurth \(lars.kurth@xenproject.org\)" <lars.kurth@xenproject.org>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbgo+IEJlaGFsZiBP
ZiDDiWxpw6FzIFRhbcOhcwo+IFNlbnQ6IDAzIE1heSAyMDE2IDE0OjE1Cj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgeGVuLXVzZXJzQGxpc3RzLnhlbi5vcmcKPiBTdWJq
ZWN0OiBbd2luLXB2LWRldmVsXSBTSUdORUQgV0lOUFYgRFJJVkVSUzogQXJlIERpc2N1c3Npb25z
IHN0aWxsCj4gb25nb2luZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPwo+IAo+IERlYXIgQWxs
Lgo+IAo+IEl0J3MgbW9yZSB0aGVuIGEgbW9udGggbm93IHRoYXQgdGhlIGFib3ZlIGluZm9ybWF0
aW9uIGhhZCBiZWVuCj4gZGlzdHJpYnV0ZWQgYnkgUGF1bC4KPiAKPiBEb2VzIGFueW9uZSBoYXMg
YW55IHVwZGF0ZSBvbiB0aGlzPyBXaGVuIHNlZW1lcyB0aGVzZSBkaXNjdXNzaW9ucyB3aWxsCj4g
ZW5kIHVwIGluIGEgcmVzb2x1dGlvbj8KPiAKClVuZm9ydHVuYXRlbHkgSSBoYXZlIG5vIG1lYW5p
bmdmdWwgdXBkYXRlLiBEaXNjdXNzaW9ucyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uIHNlZW0g
dG8gaGF2ZSBjb21wbGV0ZWx5IHN0YWxsZWQuIEl0IGlzIG1vc3QgZnJ1c3RyYXRpbmcuCgogIFBh
dWwKCj4gVGh4Lgo+IAo+IC0tCj4gCj4gCj4gw4lsacOhcyBUYW3DoXMKPiBUaG9tYXMgRWxpYXMK
PiAKPiBFVElUW253cHJvXSBLRlQsIMOcZ3l2ZXpldMWRLUjDoWzDs3phdGJpenRvbnPDoWdpIHNw
ZWNpYWxpc3RhCj4gRVRJVFtud3Byb10gTHRkLCBHZW5lcmFsIE1hbmFnZXItTmV0d29yayBzZWN1
cml0eSBzcGVjaWFsaXN0Cj4gCj4gVGVsLiBIVTogKzM2LzMwLTQ5Ny0xNjI2Cj4gVGVsLiBERTog
KzQ5LzE2MC02NTEtODcyMwo+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQt
cHViLmFzYwo+IAo+IE9rbGV2ZWxlcyBtw6lybsO2ay1pbmZvcm1hdGlrdXMgKE1TQykKPiBNYXN0
ZXIgb2YgU2NpZW5jZSBpbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChNU0MpCj4gCj4gS2FwY3Nv
bGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0Cj4gSm9naSBueWlsYXRr
b3phdDogaHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQKPiBDb250YWN0OiBo
dHRwOi8vZXRpdC5odS9pbmRleC5waHAvZW4vY29udGFjdAo+IERpc2NsYWltZXI6IGh0dHA6Ly9l
dGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0CgoKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu May 05 22:37:44 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 May 2016 22:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ayRtt-00086m-Hl; Thu, 05 May 2016 22:37:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1ayRts-00086g-5S
 for win-pv-devel@lists.xenproject.org; Thu, 05 May 2016 22:37:40 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 2F/4E-12567-33BCB275; Thu, 05 May 2016 22:37:39 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOIsWRWlGSWpSXmKPExsVyMfT+Rl2j09r
 hBs0/NSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxvpNqgXtAhXHW04xNjBe4Oti5OIQEpjDKHH5
 6SlGEIdF4A6LxOx9d5hAHAmBHywS7bNvsXQxcgI5ORL7l3xkB7F5BQQlTs58AhUvkFjw5zwzi
 C0k4CmxtvkTUJwDaJKKxKLDmiAmr0CAxKujPCAVwgJmEtfu97KB2GwC2hLbe1vAOkUEVCWuLT
 /GBlLOLOAl8XFu6QRG3llIds1CyECY6hLr5wmBVDALqEnc3naVHcLWlli28DXzAkbWVYwaxal
 FZalFuoYWeklFmekZJbmJmTm6hgamermpxcWJ6ak5iUnFesn5uZsYgcHHAAQ7GJu2ex5ilORg
 UhLl3a6kHS7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgjfgJFBOsCg1PbUiLTMHGAcwaQkOHiURX
 gGQNG9xQWJucWY6ROoUozHHlt/X1jJxbJt6by2TEEtefl6qlDjvVJBSAZDSjNI8uEGw+LzEKC
 slzMsIdJoQT0FqUW5mCar8K0ZxDkYlYd6ZIFN4MvNK4Pa9AjqFCeiU93M1QU4pSURISTUwri5
 aL17b+GNaSUH4p8i8/ae9Hygl+jFzWgh+y2+80bWTQ4HtRfLuYLv6khvPsg4q13dMX+p5TlXO
 svN/8tOXMfJGEgmX5S7PLl3/ponnbUTh6f9L/Mpcj6ycktNj+Ml+SoT+Ga/nMndV3z5/9Dm3N
 8yd8QFjxlGbmzk5yv2N7IzaQjFetrJKLMUZiYZazEXFiQDdpkfPygIAAA==
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1462487857!22148194!1
X-Originating-IP: [209.85.223.177]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3110 invoked from network); 5 May 2016 22:37:38 -0000
Received: from mail-io0-f177.google.com (HELO mail-io0-f177.google.com)
 (209.85.223.177)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 5 May 2016 22:37:38 -0000
Received: by mail-io0-f177.google.com with SMTP id 190so99114441iow.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 05 May 2016 15:37:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to;
 bh=aKzMuV3MoaoXQfGK1AOZD78vUS7saB4GVz4A3A4EpGg=;
 b=iAY0yTWUast/zRD97zNtzyZN85EBwU1o0QI11Dm16detP/fXon8wrFD7sL+vO5psso
 +bNvGg689GyoGREDdI1mYGSqHqaCaGrqc4yVgDf3j8lqe6MVl4K1z93AaokY2zi48u6s
 uqz3FjTwQb2+Vn1bdMlufJGLEzwnTBdU1rCrYhHOV2pFUuqnbm1faX2hB/Sm8BdBVVGR
 PTB3FMPU0jZERVeoo8NgRX3gZIUCUEfwVl6tHr+h2W4iZ/GDzRHIg1fybzdcoJ9SvNJ9
 K0AJPkb8g3XCfvtHniVL1G/1WqUiLTPxEahrZV0uL72LNeo9XEqljqFnpY6j2312Uyuk
 FhLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:date:message-id:subject:from:to;
 bh=aKzMuV3MoaoXQfGK1AOZD78vUS7saB4GVz4A3A4EpGg=;
 b=UyuSn51aWRKkpF1maMvcEvMqBu3ENG/XO713ng645i98ad87dqWvpTNL0DeX3LxPRu
 DqjG012MZmhUYU3Tb6jFmLMAgsrwNMZjTz5JRP5N6p4YJfAxjinCJmWgGMpFDOwx8zcs
 lVhHq8VfXcoQkGSLMbxqShy28P8cOhBMRTFDsOJk722XEGFZKXio/AyCmBTMGa2EIbUY
 47iHfgWr9hKHe8BiDmCmr1yuPvTliDE7Vopj0cEPO/fCURcs0j/OPVUtCegT6aLxzz+G
 eG5eG72xFK0CJ9YGwHXTpJT1ei9mENWoTQwDMJ73SXnqyU3t5p+GCWkXjzFxAdX6WAbf
 qsRA==
X-Gm-Message-State: AOPr4FXfa8L2MHAGB0uLGr/QY8kySLpmkOIoxe3Ta88/zJJreo+s0mO6Sxq0FjE+NXwqX9+rfTSBzFrwtBvVZg==
MIME-Version: 1.0
X-Received: by 10.107.9.167 with SMTP id 39mr7048261ioj.98.1462487857558; Thu,
 05 May 2016 15:37:37 -0700 (PDT)
Received: by 10.107.157.2 with HTTP; Thu, 5 May 2016 15:37:37 -0700 (PDT)
Date: Fri, 6 May 2016 01:37:37 +0300
Message-ID: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
From: Eytan Heidingsfeld <eytanh@gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2769423266845589241=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2769423266845589241==
Content-Type: multipart/alternative; boundary=001a113eafa83d010705321ffd8f

--001a113eafa83d010705321ffd8f
Content-Type: text/plain; charset=UTF-8

Hello,
I'm trying to use the most up-to-date xen drivers on AWS ec2.
If using enhanced-networking everything works as planned, but trying to use
xenvif/xennet causes a bugcheck

IRQL_NOT_LESS_OR_EQUAL

the stack is:
04 fffff801`99a28524 : 00000000`00000000 fffff802`e657b830
ffffe001`9a5551c8 ffffe001`9a553000 : xenbus!EvtchnUnmask+0x35
[c:\users\builder\documents\pvdrivers\xenbus\src\xenbus\evtchn.c @ 756]
05 (Inline Function) : --------`-------- --------`--------
--------`-------- --------`-------- : xenvif!__TransmitterRingUnmask+0x1f
06 fffff802`e4ccc130 : fffff802`e4f71f00 fffff802`e4dbd53e
fffff802`e657bb10 ffffe001`9a553080 : xenvif!TransmitterRingDpc+0x2e4
[c:\users\builder\documents\pvdrivers\xenvif\src\xenvif\transmitter.c @
3009]

Any idea why this is? Anyone else have this configuration working?

Thanks in advance,

--001a113eafa83d010705321ffd8f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello,<br>I&#39;m trying to use the most up-to-date xen dr=
ivers on AWS ec2.=C2=A0<br>If using enhanced-networking everything works as=
 planned, but trying to use xenvif/xennet causes a bugcheck<div><br></div><=
div>IRQL_NOT_LESS_OR_EQUAL</div><div><br></div><div>the stack is:<br><div>0=
4 fffff801`99a28524 : 00000000`00000000 fffff802`e657b830 ffffe001`9a5551c8=
 ffffe001`9a553000 : xenbus!EvtchnUnmask+0x35 [c:\users\builder\documents\p=
vdrivers\xenbus\src\xenbus\evtchn.c @ 756]</div><div>05 (Inline Function) :=
 --------`-------- --------`-------- --------`-------- --------`-------- : =
xenvif!__TransmitterRingUnmask+0x1f</div><div>06 fffff802`e4ccc130 : fffff8=
02`e4f71f00 fffff802`e4dbd53e fffff802`e657bb10 ffffe001`9a553080 : xenvif!=
TransmitterRingDpc+0x2e4 [c:\users\builder\documents\pvdrivers\xenvif\src\x=
envif\transmitter.c @ 3009]<br><br>Any idea why this is? Anyone else have t=
his configuration working?<br><br>Thanks in advance,</div></div></div>

--001a113eafa83d010705321ffd8f--


--===============2769423266845589241==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============2769423266845589241==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 05 22:37:44 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 05 May 2016 22:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ayRtt-00086m-Hl; Thu, 05 May 2016 22:37:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1ayRts-00086g-5S
 for win-pv-devel@lists.xenproject.org; Thu, 05 May 2016 22:37:40 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 2F/4E-12567-33BCB275; Thu, 05 May 2016 22:37:39 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOIsWRWlGSWpSXmKPExsVyMfT+Rl2j09r
 hBs0/NSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxvpNqgXtAhXHW04xNjBe4Oti5OIQEpjDKHH5
 6SlGEIdF4A6LxOx9d5hAHAmBHywS7bNvsXQxcgI5ORL7l3xkB7F5BQQlTs58AhUvkFjw5zwzi
 C0k4CmxtvkTUJwDaJKKxKLDmiAmr0CAxKujPCAVwgJmEtfu97KB2GwC2hLbe1vAOkUEVCWuLT
 /GBlLOLOAl8XFu6QRG3llIds1CyECY6hLr5wmBVDALqEnc3naVHcLWlli28DXzAkbWVYwaxal
 FZalFuoYWeklFmekZJbmJmTm6hgamermpxcWJ6ak5iUnFesn5uZsYgcHHAAQ7GJu2ex5ilORg
 UhLl3a6kHS7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgjfgJFBOsCg1PbUiLTMHGAcwaQkOHiURX
 gGQNG9xQWJucWY6ROoUozHHlt/X1jJxbJt6by2TEEtefl6qlDjvVJBSAZDSjNI8uEGw+LzEKC
 slzMsIdJoQT0FqUW5mCar8K0ZxDkYlYd6ZIFN4MvNK4Pa9AjqFCeiU93M1QU4pSURISTUwri5
 aL17b+GNaSUH4p8i8/ae9Hygl+jFzWgh+y2+80bWTQ4HtRfLuYLv6khvPsg4q13dMX+p5TlXO
 svN/8tOXMfJGEgmX5S7PLl3/ponnbUTh6f9L/Mpcj6ycktNj+Ml+SoT+Ga/nMndV3z5/9Dm3N
 8yd8QFjxlGbmzk5yv2N7IzaQjFetrJKLMUZiYZazEXFiQDdpkfPygIAAA==
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1462487857!22148194!1
X-Originating-IP: [209.85.223.177]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3110 invoked from network); 5 May 2016 22:37:38 -0000
Received: from mail-io0-f177.google.com (HELO mail-io0-f177.google.com)
 (209.85.223.177)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 5 May 2016 22:37:38 -0000
Received: by mail-io0-f177.google.com with SMTP id 190so99114441iow.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 05 May 2016 15:37:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to;
 bh=aKzMuV3MoaoXQfGK1AOZD78vUS7saB4GVz4A3A4EpGg=;
 b=iAY0yTWUast/zRD97zNtzyZN85EBwU1o0QI11Dm16detP/fXon8wrFD7sL+vO5psso
 +bNvGg689GyoGREDdI1mYGSqHqaCaGrqc4yVgDf3j8lqe6MVl4K1z93AaokY2zi48u6s
 uqz3FjTwQb2+Vn1bdMlufJGLEzwnTBdU1rCrYhHOV2pFUuqnbm1faX2hB/Sm8BdBVVGR
 PTB3FMPU0jZERVeoo8NgRX3gZIUCUEfwVl6tHr+h2W4iZ/GDzRHIg1fybzdcoJ9SvNJ9
 K0AJPkb8g3XCfvtHniVL1G/1WqUiLTPxEahrZV0uL72LNeo9XEqljqFnpY6j2312Uyuk
 FhLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:date:message-id:subject:from:to;
 bh=aKzMuV3MoaoXQfGK1AOZD78vUS7saB4GVz4A3A4EpGg=;
 b=UyuSn51aWRKkpF1maMvcEvMqBu3ENG/XO713ng645i98ad87dqWvpTNL0DeX3LxPRu
 DqjG012MZmhUYU3Tb6jFmLMAgsrwNMZjTz5JRP5N6p4YJfAxjinCJmWgGMpFDOwx8zcs
 lVhHq8VfXcoQkGSLMbxqShy28P8cOhBMRTFDsOJk722XEGFZKXio/AyCmBTMGa2EIbUY
 47iHfgWr9hKHe8BiDmCmr1yuPvTliDE7Vopj0cEPO/fCURcs0j/OPVUtCegT6aLxzz+G
 eG5eG72xFK0CJ9YGwHXTpJT1ei9mENWoTQwDMJ73SXnqyU3t5p+GCWkXjzFxAdX6WAbf
 qsRA==
X-Gm-Message-State: AOPr4FXfa8L2MHAGB0uLGr/QY8kySLpmkOIoxe3Ta88/zJJreo+s0mO6Sxq0FjE+NXwqX9+rfTSBzFrwtBvVZg==
MIME-Version: 1.0
X-Received: by 10.107.9.167 with SMTP id 39mr7048261ioj.98.1462487857558; Thu,
 05 May 2016 15:37:37 -0700 (PDT)
Received: by 10.107.157.2 with HTTP; Thu, 5 May 2016 15:37:37 -0700 (PDT)
Date: Fri, 6 May 2016 01:37:37 +0300
Message-ID: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
From: Eytan Heidingsfeld <eytanh@gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2769423266845589241=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2769423266845589241==
Content-Type: multipart/alternative; boundary=001a113eafa83d010705321ffd8f

--001a113eafa83d010705321ffd8f
Content-Type: text/plain; charset=UTF-8

Hello,
I'm trying to use the most up-to-date xen drivers on AWS ec2.
If using enhanced-networking everything works as planned, but trying to use
xenvif/xennet causes a bugcheck

IRQL_NOT_LESS_OR_EQUAL

the stack is:
04 fffff801`99a28524 : 00000000`00000000 fffff802`e657b830
ffffe001`9a5551c8 ffffe001`9a553000 : xenbus!EvtchnUnmask+0x35
[c:\users\builder\documents\pvdrivers\xenbus\src\xenbus\evtchn.c @ 756]
05 (Inline Function) : --------`-------- --------`--------
--------`-------- --------`-------- : xenvif!__TransmitterRingUnmask+0x1f
06 fffff802`e4ccc130 : fffff802`e4f71f00 fffff802`e4dbd53e
fffff802`e657bb10 ffffe001`9a553080 : xenvif!TransmitterRingDpc+0x2e4
[c:\users\builder\documents\pvdrivers\xenvif\src\xenvif\transmitter.c @
3009]

Any idea why this is? Anyone else have this configuration working?

Thanks in advance,

--001a113eafa83d010705321ffd8f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello,<br>I&#39;m trying to use the most up-to-date xen dr=
ivers on AWS ec2.=C2=A0<br>If using enhanced-networking everything works as=
 planned, but trying to use xenvif/xennet causes a bugcheck<div><br></div><=
div>IRQL_NOT_LESS_OR_EQUAL</div><div><br></div><div>the stack is:<br><div>0=
4 fffff801`99a28524 : 00000000`00000000 fffff802`e657b830 ffffe001`9a5551c8=
 ffffe001`9a553000 : xenbus!EvtchnUnmask+0x35 [c:\users\builder\documents\p=
vdrivers\xenbus\src\xenbus\evtchn.c @ 756]</div><div>05 (Inline Function) :=
 --------`-------- --------`-------- --------`-------- --------`-------- : =
xenvif!__TransmitterRingUnmask+0x1f</div><div>06 fffff802`e4ccc130 : fffff8=
02`e4f71f00 fffff802`e4dbd53e fffff802`e657bb10 ffffe001`9a553080 : xenvif!=
TransmitterRingDpc+0x2e4 [c:\users\builder\documents\pvdrivers\xenvif\src\x=
envif\transmitter.c @ 3009]<br><br>Any idea why this is? Anyone else have t=
his configuration working?<br><br>Thanks in advance,</div></div></div>

--001a113eafa83d010705321ffd8f--


--===============2769423266845589241==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============2769423266845589241==--


From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ayb0j-000250-CC; Fri, 06 May 2016 08:21:21 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=927b0d5b4=Paul.Durrant@citrix.com>)
 id 1ayb0i-00024u-4t
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:21:20 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 3A/A2-03281-FF35C275; Fri, 06 May 2016 08:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQvdfsE6
 4wev5nBZ/Fic6MHoc/nCFJYAxijUzLym/IoE140a3W8HZGcwVJ3Z+YGlgnDmZuYuRk0NCIEji
 38s1jCA2m4COxNKj85lAbBGBYomvfZdZQWxhAU+Jvgdf2SHiXhI9V04xQ9hWErN+fQOrYRFQk
 TjdsIEFxOYVcJe4cPUXWI2QQKDEjaYpYDWMArISXxpXg8WZBcQlbj2B2CUhICCxZM95qHtEJV
 4+/scKYRtIbF26jwWiPldi7Z4PrBDzBSVOznzCAjFfRWLL4wNQvdwSKz//YZnAKDQLyYpZSNp
 nIWmfxcgBFNeUWL9LH6JEUWJK90N2CFtDonXOXHZk8QWM7KsY1YtTi8pSi3Qt9ZKKMtMzSnIT
 M3N0DQ1N9HJTi4sT01NzEpOK9ZLzczcxAiOFAQh2MPZPcT7EKMnBpCTKu+qfdrgQX1J+SmVGY
 nFGfFFpTmrxIUYZDg4lCd6GIJ1wIcGi1PTUirTMHGDMwqQlOHiURHhDQdK8xQWJucWZ6RCpU4
 yKUuK8USAJAZBERmkeXBssTVxilJUS5mUEOkSIpyC1KDezBFX+FaM4B6OSMG82yBSezLwSuOm
 vgBYzAS1+P1cTZHFJIkJKqoHRsDxKdtk39xLpdJ1q2XUKRfkznmVUKdmFaebOPt2XvPU196Oz
 cQ7Z3oyCHhfUvryuvCH7YnXchzrDXZvWTfXRSui+LKK8btMBAfG0tAAO6dOHpbTT/vQ4KPc7q
 4Rw6CmtnrJXKeJNd6nvj+xJpocce9cs/cd89ofvo0mhq3zmyp134d42JUuJpTgj0VCLuag4EQ
 Bx/GMIDgMAAA==
X-Env-Sender: prvs=927b0d5b4=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1462522877!39924478!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22920 invoked from network); 6 May 2016 08:21:18 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 May 2016 08:21:18 -0000
X-IronPort-AV: E=Sophos;i="5.24,586,1454976000"; d="scan'208,217";a="20937168"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
Thread-Index: AQHRpx7Fo+U1hwFnHUKmi2LMrPmmE5+rkJWAgAAA1/A=
Date: Fri, 6 May 2016 08:21:16 +0000
Message-ID: <2e70a5d1261f44ffb5f4774601bbbd90@AMSPEX02CL03.citrite.net>
References: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com> 
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6453747353153005219=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============6453747353153005219==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_"

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

WWVwLCBpdCBhcHBlYXJzIHRvIGJlIGEgYnVnIGluIFhlbnZpZiB3aGljaCBoYXMgbm90IGJlZW4g
bm90aWNlZCBiZWZvcmU6DQoNCnN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQpfX1RyYW5zbWl0dGVy
UmluZ1VubWFzaygNCiAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcNCiAg
ICApDQp7DQogICAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAgICAgICAgICBUcmFuc21pdHRlcjsN
Cg0KICAgIGlmICghUmluZy0+Q29ubmVjdGVkKQ0KICAgICAgICByZXR1cm47DQoNCiAgICBUcmFu
c21pdHRlciA9IFJpbmctPlRyYW5zbWl0dGVyOw0KDQogICAgWEVOQlVTX0VWVENITihVbm1hc2ss
DQogICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSwNCiAgICAg
ICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwsDQogICAgICAgICAgICAgICAgICBGQUxTRSk7DQp9
DQoNCkluIHRoZSBhYm92ZSB0aGVyZSBzaG91bGQgYmUgYSBjaGVjayBmb3IgRnJvbnRlbmRJc1Nw
bGl0KCkgYmVpbmcgdHJ1ZSBiZWZvcmUgYXR0ZW1wdGluZyB0aGUgVW5tYXNrIG9wLg0KDQpUaGFu
a3MgZm9yIHJlcG9ydGluZyB0aGlzLiBJIHdpbGwgcG9zdCBhIGZpeCBzaG9ydGx5Lg0KDQogIFBh
dWwNCg0KDQpGcm9tOiBQYXVsIER1cnJhbnQNClNlbnQ6IDA2IE1heSAyMDE2IDA5OjE3DQpUbzog
J0V5dGFuIEhlaWRpbmdzZmVsZCc7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0K
U3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxdIFVzaW5nIGN1cnJlbnQgeGVuIHB2IGRyaXZlcnMg
KFdpbmRvd3MpIG9uIEFXUw0KDQpBdCBhIGd1ZXNzLCBJ4oCZZCBzYXkgdGhhdCB0aGUgYmFja2Vu
ZCBkb2VzbuKAmXQgc3VwcG9ydCBzcGxpdCBldmVudCBjaGFubmVscyBhbmQgdGhlIGZyb250ZW5k
IGlzIG5vdCBjaGVja2luZyB0aGlzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVubWFzayBhIHByZXN1
bWFibHkgbm9uLWV4aXN0ZW50IGV2dGNobj8NCkRpZCB5b3UgYnVpbGQgdGhlIGRyaXZlcnMgeW91
cnNlbGY/IElmIHNvLCBmcm9tIHdoYXQgYnJhbmNoIGFuZCB3aGVuPw0KDQogIFBhdWwNCg0KRnJv
bTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJv
amVjdC5vcmddIE9uIEJlaGFsZiBPZiBFeXRhbiBIZWlkaW5nc2ZlbGQNClNlbnQ6IDA1IE1heSAy
MDE2IDIzOjM4DQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBbd2luLXB2LWRldmVs
XSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJzIChXaW5kb3dzKSBvbiBBV1MNCg0KSGVsbG8s
DQpJJ20gdHJ5aW5nIHRvIHVzZSB0aGUgbW9zdCB1cC10by1kYXRlIHhlbiBkcml2ZXJzIG9uIEFX
UyBlYzIuDQpJZiB1c2luZyBlbmhhbmNlZC1uZXR3b3JraW5nIGV2ZXJ5dGhpbmcgd29ya3MgYXMg
cGxhbm5lZCwgYnV0IHRyeWluZyB0byB1c2UgeGVudmlmL3hlbm5ldCBjYXVzZXMgYSBidWdjaGVj
aw0KDQpJUlFMX05PVF9MRVNTX09SX0VRVUFMDQoNCnRoZSBzdGFjayBpczoNCjA0IGZmZmZmODAx
YDk5YTI4NTI0IDogMDAwMDAwMDBgMDAwMDAwMDAgZmZmZmY4MDJgZTY1N2I4MzAgZmZmZmUwMDFg
OWE1NTUxYzggZmZmZmUwMDFgOWE1NTMwMDAgOiB4ZW5idXMhRXZ0Y2huVW5tYXNrKzB4MzUgW2M6
XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3JjXHhlbmJ1c1xldnRj
aG4uYyBAIDc1Nl0NCjA1IChJbmxpbmUgRnVuY3Rpb24pIDogLS0tLS0tLS1gLS0tLS0tLS0gLS0t
LS0tLS1gLS0tLS0tLS0gLS0tLS0tLS1gLS0tLS0tLS0gLS0tLS0tLS1gLS0tLS0tLS0gOiB4ZW52
aWYhX19UcmFuc21pdHRlclJpbmdVbm1hc2srMHgxZg0KMDYgZmZmZmY4MDJgZTRjY2MxMzAgOiBm
ZmZmZjgwMmBlNGY3MWYwMCBmZmZmZjgwMmBlNGRiZDUzZSBmZmZmZjgwMmBlNjU3YmIxMCBmZmZm
ZTAwMWA5YTU1MzA4MCA6IHhlbnZpZiFUcmFuc21pdHRlclJpbmdEcGMrMHgyZTQgW2M6XHVzZXJz
XGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlx0cmFuc21pdHRl
ci5jIEAgMzAwOV0NCg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9uZSBlbHNlIGhhdmUgdGhp
cyBjb25maWd1cmF0aW9uIHdvcmtpbmc/DQoNClRoYW5rcyBpbiBhZHZhbmNlLA0K

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFBNzc4LkE2MTg0RUEwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjx3OkJyb3dzZXJMZXZlbD5NaWNyb3NvZnRJbnRlcm5ldEV4cGxv
cmVyNDwvdzpCcm93c2VyTGV2ZWw+DQo8bTptYXRoUHI+DQo8bTptYXRoRm9udCBtOnZhbD0iQ2Ft
YnJpYSBNYXRoIi8+DQo8bTpicmtCaW4gbTp2YWw9ImJlZm9yZSIvPg0KPG06YnJrQmluU3ViIG06
dmFsPSImIzQ1Oy0iLz4NCjxtOnNtYWxsRnJhYyBtOnZhbD0ib2ZmIi8+DQo8bTpkaXNwRGVmLz4N
CjxtOmxNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOnJNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOmRlZkpj
IG06dmFsPSJjZW50ZXJHcm91cCIvPg0KPG06d3JhcEluZGVudCBtOnZhbD0iMTQ0MCIvPg0KPG06
aW50TGltIG06dmFsPSJzdWJTdXAiLz4NCjxtOm5hcnlMaW0gbTp2YWw9InVuZE92ciIvPg0KPC9t
Om1hdGhQcj48L3c6V29yZERvY3VtZW50Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8dzpMYXRlbnRTdHlsZXMgRGVmTG9ja2VkU3RhdGU9ImZhbHNlIiBEZWZV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgRGVmU2VtaUhpZGRlbj0idHJ1ZSIgRGVmUUZvcm1hdD0iZmFs
c2UiIERlZlByaW9yaXR5PSI5OSIgTGF0ZW50U3R5bGVDb3VudD0iMjY3Ij4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTm9ybWFsIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJoZWFkaW5nIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRp
bmcgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9y
bWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA5
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJjYXB0aW9u
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJU
aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBOYW1l
PSJEZWZhdWx0IFBhcmFncmFwaCBGb250Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjExIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIyMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Ryb25nIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJFbXBoYXNpcyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iVGFibGUgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iUGxhY2Vob2xkZXIg
VGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1l
PSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdo
dCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBM
aXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IlJldmlzaW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjM0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJMaXN0IFBhcmFncmFwaCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIyOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iUXVvdGUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUXVvdGUiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlk
IDIgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDMgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRp
bmcgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVk
aXVtIExpc3QgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2Vu
dCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlk
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYw
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBT
aGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJM
aWdodCBMaXN0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJMaWdodCBHcmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAz
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3Jp
ZCAzIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJr
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIFNoYWRpbmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBM
aXN0IDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1l
ZGl1bSBMaXN0IDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGlu
ZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQg
TGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGln
aHQgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgNSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijcx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1
bCBTaGFkaW5nIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAx
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gR3JpZCAxIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDYiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTkiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1
YnRsZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIyMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0i
dHJ1ZSIgTmFtZT0iSW50ZW5zZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxlIFJlZmVyZW5jZSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBSZWZlcmVu
Y2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzMiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9
IkJvb2sgVGl0bGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzciIE5hbWU9IkJpYmxpb2dyYXBoeSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSIzOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iVE9DIEhlYWRpbmciLz4NCjwvdzpM
YXRlbnRTdHlsZXM+DQo8L3htbD48IVtlbmRpZl0tLT48c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZp
bml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0x
OjIgMTUgNSAyIDIgMiA0IDMgMiA0Ow0KCW1zby1mb250LWFsdDoiVGltZXMgTmV3IFJvbWFuIjsN
Cgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJ
bXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOi01MzY4NzAxNDUg
MTA3Mzc4NjExMSAxIDAgNDE1IDA7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7
DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0K
CW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxl
Ow0KCW1zby1mb250LXNpZ25hdHVyZTotNTIwMDgxNjY1IC0xMDczNzE3MTU3IDQxIDAgNjYwNDcg
MDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwg
ZGl2Lk1zb05vcm1hbA0KCXttc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1zdHlsZS1xZm9ybWF0
OnllczsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRv
bTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTIu
MHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7DQoJbXNvLWZhcmVh
c3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21z
by1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7DQoJdGV4dC11bmRlcmxpbmU6c2luZ2xlO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBl
cmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7DQoJdGV4
dC11bmRlcmxpbmU6c2luZ2xlO30NCnAuTXNvQWNldGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1z
b0FjZXRhdGUNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCglt
YXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZv
bnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7DQoJbXNv
LWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28t
c3R5bGUtdHlwZTpwZXJzb25hbDsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUt
dW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGktZm9udC1z
aXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1h
c2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGli
cmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1p
bHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUx
OA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IENoYXIi
Ow0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
c3R5bGUtdW5oaWRlOm5vOw0KCW1zby1zdHlsZS1sb2NrZWQ6eWVzOw0KCW1zby1zdHlsZS1saW5r
OiJCYWxsb29uIFRleHQiOw0KCW1zby1hbnNpLWZvbnQtc2l6ZTo4LjBwdDsNCgltc28tYmlkaS1m
b250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1z
by1hc2NpaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OlRhaG9t
YTsNCgltc28tYmlkaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tR0I7fQ0Kc3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnll
czt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28t
ZGVmYXVsdC1wcm9wczp5ZXM7DQoJZm9udC1zaXplOjEwLjBwdDsNCgltc28tYW5zaS1mb250LXNp
emU6MTAuMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCglt
c28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpD
YWxpYnJpOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9u
MQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQg
NzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9vdGVyLW1hcmdpbjoz
Ni4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpX
b3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBT
dHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5h
bWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0
eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1w
cmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20g
NS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2lu
LWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNp
emU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHlsZT48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi
IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K
PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i
RU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiIHN0eWxlPSJ0YWItaW50ZXJ2YWw6MzYu
MHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGkt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlll
cCwgaXQgYXBwZWFycyB0byBiZSBhIGJ1ZyBpbiBYZW52aWYgd2hpY2gNCiBoYXMgbm90IGJlZW4g
bm90aWNlZCBiZWZvcmU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJy
aTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJy
aTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2Qi
IGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBS
b21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5fXzxzcGFuIGNsYXNzPSJTcGVsbEUiPlRyYW5zbWl0
dGVyUmluZ1VubWFzazwvc3Bhbj4oPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6
Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOyZuYnNw
OyZuYnNwOw0KPC9zcGFuPklOPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOyA8
L3NwYW4+UFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5
ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPlJpbmc8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5
N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFz
dC1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnll
cyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPns8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZh
bWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+UFhFTlZJRl9UUkFOU01JVFRFUjxzcGFuIHN0eWxlPSJtc28t
c3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPlRyYW5zbWl0dGVyOzxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJt
c28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5pZiAoIVJpbmctJmd0
O0Nvbm5lY3RlZCk8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO21z
by1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0
OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+cmV0dXJuOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46
eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5UcmFuc21pdHRlciA9IFJpbmctJmd0O1Ry
YW5zbWl0dGVyOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj5YRU5CVVNfRVZUQ0hOKFVubWFzayw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZh
bWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+JmFtcDtUcmFu
c21pdHRlci0mZ3Q7PHNwYW4gY2xhc3M9IlNwZWxsRSI+RXZ0Y2huSW50ZXJmYWNlPC9zcGFuPiw8
bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQt
ZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBz
dHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bh
bj5SaW5nLSZndDtDaGFubmVsLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJy
aSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNh
bGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5GQUxTRSk7PG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+fTxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkluIHRoZSBhYm92ZSB0aGVyZSBz
aG91bGQgYmUgYSBjaGVjayBmb3INCjxzcGFuIGNsYXNzPSJTcGVsbEUiPkZyb250ZW5kSXNTcGxp
dDwvc3Bhbj4oKSBiZWluZyB0cnVlIGJlZm9yZSBhdHRlbXB0aW5nIHRoZSBVbm1hc2sgb3AuPG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZh
bWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZh
bWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhhbmtzIGZv
ciByZXBvcnRpbmcgdGhpcy4gSSB3aWxsIHBvc3QNCiBhIGZpeCBzaG9ydGx5LjxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBj
b2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBj
b2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28t
c3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bhbj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41
cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBj
bSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFo
b21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdl
OkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6
ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21z
by1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiBQYXVsIER1cnJhbnQgPGJyPg0KPGI+PHNwYW4gc3R5
bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6PC9zcGFuPjwvYj4gMDYgTWF5IDIwMTYgMDk6MTc8
YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4gJ0V5
dGFuIEhlaWRpbmdzZmVsZCc7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4N
CjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFJF
OiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJzIChXaW5kb3dzKSBv
biBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3
ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPkF0IGEgZ3Vlc3MsIEnigJlkIHNheSB0aGF0IHRoZSBiYWNrZW5kIGRvZXNu4oCZdCBzdXBw
b3J0IHNwbGl0IGV2ZW50IGNoYW5uZWxzIGFuZCB0aGUgZnJvbnRlbmQgaXMgbm90IGNoZWNraW5n
IHRoaXMNCiBiZWZvcmUgYXR0ZW1wdGluZyB0byB1bm1hc2sgYSBwcmVzdW1hYmx5IG5vbi1leGlz
dGVudCBldnRjaG4/PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+RGlkIHlvdSBidWlsZCB0aGUg
ZHJpdmVycyB5b3Vyc2VsZj8gSWYgc28sIGZyb20gd2hhdCBicmFuY2ggYW5kIHdoZW4/PG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNw
YW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIg
Y29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRp
diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5n
OjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk
ZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW91dGxpbmUtbGV2ZWw6MSI+PGI+PGZvbnQg
c2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6
ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7
O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwv
Zm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiB3aW4tcHYtZGV2ZWwg
WzxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9y
ZyI+bWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPl0N
CjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5PbiBCZWhhbGYgT2YgPC9zcGFuPjwv
Yj5FeXRhbiBIZWlkaW5nc2ZlbGQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9s
ZCI+U2VudDo8L3NwYW4+PC9iPiAwNSBNYXkgMjAxNiAyMzozODxicj4NCjxiPjxzcGFuIHN0eWxl
PSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiA8YSBocmVmPSJtYWlsdG86d2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIj4NCndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZzwvYT48YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3ViamVj
dDo8L3NwYW4+PC9iPiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJz
IChXaW5kb3dzKSBvbiBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+SGVsbG8sPGJyPg0KSSdtIHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4ZW4g
ZHJpdmVycyBvbiBBV1MgZWMyLiZuYnNwOzxicj4NCklmIHVzaW5nIGVuaGFuY2VkLW5ldHdvcmtp
bmcgZXZlcnl0aGluZyB3b3JrcyBhcyBwbGFubmVkLCBidXQgdHJ5aW5nIHRvIHVzZSB4ZW52aWYv
eGVubmV0IGNhdXNlcyBhIGJ1Z2NoZWNrPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcg
Um9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+SVJRTF9OT1RfTEVTU19PUl9FUVVBTDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dGhlIHN0YWNrIGlzOjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFj
ZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+MDQgZmZm
ZmY4MDFgOTlhMjg1MjQgOiAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmZjgwMmBlNjU3YjgzMCBmZmZm
ZTAwMWA5YTU1NTFjOCBmZmZmZTAwMWA5YTU1MzAwMCA6IHhlbmJ1cyFFdnRjaG5Vbm1hc2smIzQz
OzB4MzUgW2M6XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3JjXHhl
bmJ1c1xldnRjaG4uYw0KIEAgNzU2XTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4wNSAoSW5saW5lIEZ1
bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0t
LS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9fVHJhbnNtaXR0ZXJSaW5nVW5tYXNr
JiM0MzsweDFmPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjA2IGZmZmZmODAyYGU0Y2NjMTMwIDogZmZm
ZmY4MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZmZmUw
MDFgOWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjJiM0MzsweDJlNCBbYzpcdXNl
cnNcYnVpbGRlclxkb2N1bWVudHNccHZkcml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXHRyYW5zbWl0
dGVyLmMNCiBAIDMwMDldPGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9uZSBl
bHNlIGhhdmUgdGhpcyBjb25maWd1cmF0aW9uIHdvcmtpbmc/PGJyPg0KPGJyPg0KVGhhbmtzIGlu
IGFkdmFuY2UsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_--


--===============6453747353153005219==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============6453747353153005219==--


From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ayb0j-000250-CC; Fri, 06 May 2016 08:21:21 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=927b0d5b4=Paul.Durrant@citrix.com>)
 id 1ayb0i-00024u-4t
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:21:20 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 3A/A2-03281-FF35C275; Fri, 06 May 2016 08:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQvdfsE6
 4wev5nBZ/Fic6MHoc/nCFJYAxijUzLym/IoE140a3W8HZGcwVJ3Z+YGlgnDmZuYuRk0NCIEji
 38s1jCA2m4COxNKj85lAbBGBYomvfZdZQWxhAU+Jvgdf2SHiXhI9V04xQ9hWErN+fQOrYRFQk
 TjdsIEFxOYVcJe4cPUXWI2QQKDEjaYpYDWMArISXxpXg8WZBcQlbj2B2CUhICCxZM95qHtEJV
 4+/scKYRtIbF26jwWiPldi7Z4PrBDzBSVOznzCAjFfRWLL4wNQvdwSKz//YZnAKDQLyYpZSNp
 nIWmfxcgBFNeUWL9LH6JEUWJK90N2CFtDonXOXHZk8QWM7KsY1YtTi8pSi3Qt9ZKKMtMzSnIT
 M3N0DQ1N9HJTi4sT01NzEpOK9ZLzczcxAiOFAQh2MPZPcT7EKMnBpCTKu+qfdrgQX1J+SmVGY
 nFGfFFpTmrxIUYZDg4lCd6GIJ1wIcGi1PTUirTMHGDMwqQlOHiURHhDQdK8xQWJucWZ6RCpU4
 yKUuK8USAJAZBERmkeXBssTVxilJUS5mUEOkSIpyC1KDezBFX+FaM4B6OSMG82yBSezLwSuOm
 vgBYzAS1+P1cTZHFJIkJKqoHRsDxKdtk39xLpdJ1q2XUKRfkznmVUKdmFaebOPt2XvPU196Oz
 cQ7Z3oyCHhfUvryuvCH7YnXchzrDXZvWTfXRSui+LKK8btMBAfG0tAAO6dOHpbTT/vQ4KPc7q
 4Rw6CmtnrJXKeJNd6nvj+xJpocce9cs/cd89ofvo0mhq3zmyp134d42JUuJpTgj0VCLuag4EQ
 Bx/GMIDgMAAA==
X-Env-Sender: prvs=927b0d5b4=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1462522877!39924478!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22920 invoked from network); 6 May 2016 08:21:18 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 May 2016 08:21:18 -0000
X-IronPort-AV: E=Sophos;i="5.24,586,1454976000"; d="scan'208,217";a="20937168"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
Thread-Index: AQHRpx7Fo+U1hwFnHUKmi2LMrPmmE5+rkJWAgAAA1/A=
Date: Fri, 6 May 2016 08:21:16 +0000
Message-ID: <2e70a5d1261f44ffb5f4774601bbbd90@AMSPEX02CL03.citrite.net>
References: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com> 
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6453747353153005219=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============6453747353153005219==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_"

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

WWVwLCBpdCBhcHBlYXJzIHRvIGJlIGEgYnVnIGluIFhlbnZpZiB3aGljaCBoYXMgbm90IGJlZW4g
bm90aWNlZCBiZWZvcmU6DQoNCnN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQpfX1RyYW5zbWl0dGVy
UmluZ1VubWFzaygNCiAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcNCiAg
ICApDQp7DQogICAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAgICAgICAgICBUcmFuc21pdHRlcjsN
Cg0KICAgIGlmICghUmluZy0+Q29ubmVjdGVkKQ0KICAgICAgICByZXR1cm47DQoNCiAgICBUcmFu
c21pdHRlciA9IFJpbmctPlRyYW5zbWl0dGVyOw0KDQogICAgWEVOQlVTX0VWVENITihVbm1hc2ss
DQogICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSwNCiAgICAg
ICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwsDQogICAgICAgICAgICAgICAgICBGQUxTRSk7DQp9
DQoNCkluIHRoZSBhYm92ZSB0aGVyZSBzaG91bGQgYmUgYSBjaGVjayBmb3IgRnJvbnRlbmRJc1Nw
bGl0KCkgYmVpbmcgdHJ1ZSBiZWZvcmUgYXR0ZW1wdGluZyB0aGUgVW5tYXNrIG9wLg0KDQpUaGFu
a3MgZm9yIHJlcG9ydGluZyB0aGlzLiBJIHdpbGwgcG9zdCBhIGZpeCBzaG9ydGx5Lg0KDQogIFBh
dWwNCg0KDQpGcm9tOiBQYXVsIER1cnJhbnQNClNlbnQ6IDA2IE1heSAyMDE2IDA5OjE3DQpUbzog
J0V5dGFuIEhlaWRpbmdzZmVsZCc7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0K
U3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxdIFVzaW5nIGN1cnJlbnQgeGVuIHB2IGRyaXZlcnMg
KFdpbmRvd3MpIG9uIEFXUw0KDQpBdCBhIGd1ZXNzLCBJ4oCZZCBzYXkgdGhhdCB0aGUgYmFja2Vu
ZCBkb2VzbuKAmXQgc3VwcG9ydCBzcGxpdCBldmVudCBjaGFubmVscyBhbmQgdGhlIGZyb250ZW5k
IGlzIG5vdCBjaGVja2luZyB0aGlzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVubWFzayBhIHByZXN1
bWFibHkgbm9uLWV4aXN0ZW50IGV2dGNobj8NCkRpZCB5b3UgYnVpbGQgdGhlIGRyaXZlcnMgeW91
cnNlbGY/IElmIHNvLCBmcm9tIHdoYXQgYnJhbmNoIGFuZCB3aGVuPw0KDQogIFBhdWwNCg0KRnJv
bTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJv
amVjdC5vcmddIE9uIEJlaGFsZiBPZiBFeXRhbiBIZWlkaW5nc2ZlbGQNClNlbnQ6IDA1IE1heSAy
MDE2IDIzOjM4DQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBbd2luLXB2LWRldmVs
XSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJzIChXaW5kb3dzKSBvbiBBV1MNCg0KSGVsbG8s
DQpJJ20gdHJ5aW5nIHRvIHVzZSB0aGUgbW9zdCB1cC10by1kYXRlIHhlbiBkcml2ZXJzIG9uIEFX
UyBlYzIuDQpJZiB1c2luZyBlbmhhbmNlZC1uZXR3b3JraW5nIGV2ZXJ5dGhpbmcgd29ya3MgYXMg
cGxhbm5lZCwgYnV0IHRyeWluZyB0byB1c2UgeGVudmlmL3hlbm5ldCBjYXVzZXMgYSBidWdjaGVj
aw0KDQpJUlFMX05PVF9MRVNTX09SX0VRVUFMDQoNCnRoZSBzdGFjayBpczoNCjA0IGZmZmZmODAx
YDk5YTI4NTI0IDogMDAwMDAwMDBgMDAwMDAwMDAgZmZmZmY4MDJgZTY1N2I4MzAgZmZmZmUwMDFg
OWE1NTUxYzggZmZmZmUwMDFgOWE1NTMwMDAgOiB4ZW5idXMhRXZ0Y2huVW5tYXNrKzB4MzUgW2M6
XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3JjXHhlbmJ1c1xldnRj
aG4uYyBAIDc1Nl0NCjA1IChJbmxpbmUgRnVuY3Rpb24pIDogLS0tLS0tLS1gLS0tLS0tLS0gLS0t
LS0tLS1gLS0tLS0tLS0gLS0tLS0tLS1gLS0tLS0tLS0gLS0tLS0tLS1gLS0tLS0tLS0gOiB4ZW52
aWYhX19UcmFuc21pdHRlclJpbmdVbm1hc2srMHgxZg0KMDYgZmZmZmY4MDJgZTRjY2MxMzAgOiBm
ZmZmZjgwMmBlNGY3MWYwMCBmZmZmZjgwMmBlNGRiZDUzZSBmZmZmZjgwMmBlNjU3YmIxMCBmZmZm
ZTAwMWA5YTU1MzA4MCA6IHhlbnZpZiFUcmFuc21pdHRlclJpbmdEcGMrMHgyZTQgW2M6XHVzZXJz
XGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlx0cmFuc21pdHRl
ci5jIEAgMzAwOV0NCg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9uZSBlbHNlIGhhdmUgdGhp
cyBjb25maWd1cmF0aW9uIHdvcmtpbmc/DQoNClRoYW5rcyBpbiBhZHZhbmNlLA0K

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFBNzc4LkE2MTg0RUEwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjx3OkJyb3dzZXJMZXZlbD5NaWNyb3NvZnRJbnRlcm5ldEV4cGxv
cmVyNDwvdzpCcm93c2VyTGV2ZWw+DQo8bTptYXRoUHI+DQo8bTptYXRoRm9udCBtOnZhbD0iQ2Ft
YnJpYSBNYXRoIi8+DQo8bTpicmtCaW4gbTp2YWw9ImJlZm9yZSIvPg0KPG06YnJrQmluU3ViIG06
dmFsPSImIzQ1Oy0iLz4NCjxtOnNtYWxsRnJhYyBtOnZhbD0ib2ZmIi8+DQo8bTpkaXNwRGVmLz4N
CjxtOmxNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOnJNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOmRlZkpj
IG06dmFsPSJjZW50ZXJHcm91cCIvPg0KPG06d3JhcEluZGVudCBtOnZhbD0iMTQ0MCIvPg0KPG06
aW50TGltIG06dmFsPSJzdWJTdXAiLz4NCjxtOm5hcnlMaW0gbTp2YWw9InVuZE92ciIvPg0KPC9t
Om1hdGhQcj48L3c6V29yZERvY3VtZW50Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8dzpMYXRlbnRTdHlsZXMgRGVmTG9ja2VkU3RhdGU9ImZhbHNlIiBEZWZV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgRGVmU2VtaUhpZGRlbj0idHJ1ZSIgRGVmUUZvcm1hdD0iZmFs
c2UiIERlZlByaW9yaXR5PSI5OSIgTGF0ZW50U3R5bGVDb3VudD0iMjY3Ij4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTm9ybWFsIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJoZWFkaW5nIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRp
bmcgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9y
bWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA5
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJjYXB0aW9u
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJU
aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBOYW1l
PSJEZWZhdWx0IFBhcmFncmFwaCBGb250Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjExIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIyMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Ryb25nIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJFbXBoYXNpcyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iVGFibGUgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iUGxhY2Vob2xkZXIg
VGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1l
PSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdo
dCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBM
aXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IlJldmlzaW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjM0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJMaXN0IFBhcmFncmFwaCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIyOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iUXVvdGUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUXVvdGUiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlk
IDIgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDMgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRp
bmcgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVk
aXVtIExpc3QgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2Vu
dCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlk
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYw
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBT
aGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJM
aWdodCBMaXN0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJMaWdodCBHcmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAz
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3Jp
ZCAzIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJr
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIFNoYWRpbmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBM
aXN0IDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1l
ZGl1bSBMaXN0IDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGlu
ZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQg
TGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGln
aHQgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgNSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijcx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1
bCBTaGFkaW5nIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAx
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gR3JpZCAxIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDYiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTkiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1
YnRsZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIyMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0i
dHJ1ZSIgTmFtZT0iSW50ZW5zZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxlIFJlZmVyZW5jZSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBSZWZlcmVu
Y2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzMiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9
IkJvb2sgVGl0bGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzciIE5hbWU9IkJpYmxpb2dyYXBoeSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSIzOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iVE9DIEhlYWRpbmciLz4NCjwvdzpM
YXRlbnRTdHlsZXM+DQo8L3htbD48IVtlbmRpZl0tLT48c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZp
bml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0x
OjIgMTUgNSAyIDIgMiA0IDMgMiA0Ow0KCW1zby1mb250LWFsdDoiVGltZXMgTmV3IFJvbWFuIjsN
Cgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJ
bXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOi01MzY4NzAxNDUg
MTA3Mzc4NjExMSAxIDAgNDE1IDA7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7
DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0K
CW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxl
Ow0KCW1zby1mb250LXNpZ25hdHVyZTotNTIwMDgxNjY1IC0xMDczNzE3MTU3IDQxIDAgNjYwNDcg
MDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwg
ZGl2Lk1zb05vcm1hbA0KCXttc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1zdHlsZS1xZm9ybWF0
OnllczsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRv
bTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTIu
MHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7DQoJbXNvLWZhcmVh
c3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21z
by1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7DQoJdGV4dC11bmRlcmxpbmU6c2luZ2xlO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBl
cmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7DQoJdGV4
dC11bmRlcmxpbmU6c2luZ2xlO30NCnAuTXNvQWNldGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1z
b0FjZXRhdGUNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCglt
YXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZv
bnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7DQoJbXNv
LWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28t
c3R5bGUtdHlwZTpwZXJzb25hbDsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUt
dW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGktZm9udC1z
aXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1h
c2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGli
cmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1p
bHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUx
OA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IENoYXIi
Ow0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
c3R5bGUtdW5oaWRlOm5vOw0KCW1zby1zdHlsZS1sb2NrZWQ6eWVzOw0KCW1zby1zdHlsZS1saW5r
OiJCYWxsb29uIFRleHQiOw0KCW1zby1hbnNpLWZvbnQtc2l6ZTo4LjBwdDsNCgltc28tYmlkaS1m
b250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1z
by1hc2NpaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OlRhaG9t
YTsNCgltc28tYmlkaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tR0I7fQ0Kc3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnll
czt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28t
ZGVmYXVsdC1wcm9wczp5ZXM7DQoJZm9udC1zaXplOjEwLjBwdDsNCgltc28tYW5zaS1mb250LXNp
emU6MTAuMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCglt
c28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpD
YWxpYnJpOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9u
MQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQg
NzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9vdGVyLW1hcmdpbjoz
Ni4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpX
b3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBT
dHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5h
bWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0
eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1w
cmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20g
NS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2lu
LWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNp
emU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHlsZT48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi
IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K
PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i
RU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiIHN0eWxlPSJ0YWItaW50ZXJ2YWw6MzYu
MHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGkt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlll
cCwgaXQgYXBwZWFycyB0byBiZSBhIGJ1ZyBpbiBYZW52aWYgd2hpY2gNCiBoYXMgbm90IGJlZW4g
bm90aWNlZCBiZWZvcmU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJy
aTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJy
aTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2Qi
IGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBS
b21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5fXzxzcGFuIGNsYXNzPSJTcGVsbEUiPlRyYW5zbWl0
dGVyUmluZ1VubWFzazwvc3Bhbj4oPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6
Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOyZuYnNw
OyZuYnNwOw0KPC9zcGFuPklOPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOyA8
L3NwYW4+UFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5
ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPlJpbmc8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5
N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFz
dC1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnll
cyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPns8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZh
bWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+UFhFTlZJRl9UUkFOU01JVFRFUjxzcGFuIHN0eWxlPSJtc28t
c3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPlRyYW5zbWl0dGVyOzxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJt
c28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5pZiAoIVJpbmctJmd0
O0Nvbm5lY3RlZCk8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO21z
by1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0
OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+cmV0dXJuOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46
eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5UcmFuc21pdHRlciA9IFJpbmctJmd0O1Ry
YW5zbWl0dGVyOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj5YRU5CVVNfRVZUQ0hOKFVubWFzayw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZh
bWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+JmFtcDtUcmFu
c21pdHRlci0mZ3Q7PHNwYW4gY2xhc3M9IlNwZWxsRSI+RXZ0Y2huSW50ZXJmYWNlPC9zcGFuPiw8
bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQt
ZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBz
dHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bh
bj5SaW5nLSZndDtDaGFubmVsLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJy
aSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNh
bGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5GQUxTRSk7PG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+fTxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkluIHRoZSBhYm92ZSB0aGVyZSBz
aG91bGQgYmUgYSBjaGVjayBmb3INCjxzcGFuIGNsYXNzPSJTcGVsbEUiPkZyb250ZW5kSXNTcGxp
dDwvc3Bhbj4oKSBiZWluZyB0cnVlIGJlZm9yZSBhdHRlbXB0aW5nIHRoZSBVbm1hc2sgb3AuPG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZh
bWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZh
bWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhhbmtzIGZv
ciByZXBvcnRpbmcgdGhpcy4gSSB3aWxsIHBvc3QNCiBhIGZpeCBzaG9ydGx5LjxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBj
b2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBj
b2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28t
c3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bhbj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41
cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBj
bSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFo
b21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdl
OkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6
ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21z
by1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiBQYXVsIER1cnJhbnQgPGJyPg0KPGI+PHNwYW4gc3R5
bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6PC9zcGFuPjwvYj4gMDYgTWF5IDIwMTYgMDk6MTc8
YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4gJ0V5
dGFuIEhlaWRpbmdzZmVsZCc7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4N
CjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFJF
OiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJzIChXaW5kb3dzKSBv
biBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3
ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPkF0IGEgZ3Vlc3MsIEnigJlkIHNheSB0aGF0IHRoZSBiYWNrZW5kIGRvZXNu4oCZdCBzdXBw
b3J0IHNwbGl0IGV2ZW50IGNoYW5uZWxzIGFuZCB0aGUgZnJvbnRlbmQgaXMgbm90IGNoZWNraW5n
IHRoaXMNCiBiZWZvcmUgYXR0ZW1wdGluZyB0byB1bm1hc2sgYSBwcmVzdW1hYmx5IG5vbi1leGlz
dGVudCBldnRjaG4/PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+RGlkIHlvdSBidWlsZCB0aGUg
ZHJpdmVycyB5b3Vyc2VsZj8gSWYgc28sIGZyb20gd2hhdCBicmFuY2ggYW5kIHdoZW4/PG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNw
YW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIg
Y29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRp
diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5n
OjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk
ZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW91dGxpbmUtbGV2ZWw6MSI+PGI+PGZvbnQg
c2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6
ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7
O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwv
Zm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiB3aW4tcHYtZGV2ZWwg
WzxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9y
ZyI+bWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPl0N
CjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5PbiBCZWhhbGYgT2YgPC9zcGFuPjwv
Yj5FeXRhbiBIZWlkaW5nc2ZlbGQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9s
ZCI+U2VudDo8L3NwYW4+PC9iPiAwNSBNYXkgMjAxNiAyMzozODxicj4NCjxiPjxzcGFuIHN0eWxl
PSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiA8YSBocmVmPSJtYWlsdG86d2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIj4NCndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZzwvYT48YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3ViamVj
dDo8L3NwYW4+PC9iPiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2ZXJz
IChXaW5kb3dzKSBvbiBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+SGVsbG8sPGJyPg0KSSdtIHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4ZW4g
ZHJpdmVycyBvbiBBV1MgZWMyLiZuYnNwOzxicj4NCklmIHVzaW5nIGVuaGFuY2VkLW5ldHdvcmtp
bmcgZXZlcnl0aGluZyB3b3JrcyBhcyBwbGFubmVkLCBidXQgdHJ5aW5nIHRvIHVzZSB4ZW52aWYv
eGVubmV0IGNhdXNlcyBhIGJ1Z2NoZWNrPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcg
Um9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+SVJRTF9OT1RfTEVTU19PUl9FUVVBTDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dGhlIHN0YWNrIGlzOjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFj
ZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+MDQgZmZm
ZmY4MDFgOTlhMjg1MjQgOiAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmZjgwMmBlNjU3YjgzMCBmZmZm
ZTAwMWA5YTU1NTFjOCBmZmZmZTAwMWA5YTU1MzAwMCA6IHhlbmJ1cyFFdnRjaG5Vbm1hc2smIzQz
OzB4MzUgW2M6XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3JjXHhl
bmJ1c1xldnRjaG4uYw0KIEAgNzU2XTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4wNSAoSW5saW5lIEZ1
bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0t
LS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9fVHJhbnNtaXR0ZXJSaW5nVW5tYXNr
JiM0MzsweDFmPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjA2IGZmZmZmODAyYGU0Y2NjMTMwIDogZmZm
ZmY4MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZmZmUw
MDFgOWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjJiM0MzsweDJlNCBbYzpcdXNl
cnNcYnVpbGRlclxkb2N1bWVudHNccHZkcml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXHRyYW5zbWl0
dGVyLmMNCiBAIDMwMDldPGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9uZSBl
bHNlIGhhdmUgdGhpcyBjb25maWd1cmF0aW9uIHdvcmtpbmc/PGJyPg0KPGJyPg0KVGhhbmtzIGlu
IGFkdmFuY2UsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_2e70a5d1261f44ffb5f4774601bbbd90AMSPEX02CL03citritenet_--


--===============6453747353153005219==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============6453747353153005219==--


From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:31:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:31:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1aybA6-0002b3-3z; Fri, 06 May 2016 08:31:02 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=927b0d5b4=Paul.Durrant@citrix.com>)
 id 1aybA3-0002ax-OL
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:31:00 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 05/53-02833-3465C275; Fri, 06 May 2016 08:30:59 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkleJIrShJLcpLzFFi42LZKekooesUphN
 usLSLx+LP4kQHRo/DH66wBDBGsWbmJeVXJLBm3Hq3gL1g2nSmiicf7zM3MO6czNTFyMkhIRAk
 cXDdQWYQm01AR2Lp0flgcRGBYomvfZdZQWxhAU+Jvgdf2SHiXhI9V04xQ9hGEqsXPAezWQRUJ
 Ho2bwWr5xVwl7hxpZcRxBYSCJB4NH01mM0pECjRO2kxWD2jgKzEl8bVYDazgLjErSfzoe4RkF
 iy5zwzhC0q8fLxP1YI20Bi69J9LBD1uRITl6xigtglKHFy5hMWiF0qElseH4Dq5ZZY+fkPywR
 G4VlIVsxC0j4LSfssRg6guKbE+l36ECWKElO6H7JD2BoSrXPmsiOLL2BkX8WoUZxaVJZapGto
 rJdUlJmeUZKbmJmja2hoopebWlycmJ6ak5hUrJecn7uJERhF9QwMjDsYd233PMQoycGkJMq76
 p92uBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ3nshOuFCgkWp6akVaZk5wHiGSUtw8CiJ8CaFAq
 V5iwsSc4sz0yFSpxgVpcR5mUESAiCJjNI8uDZYCrnEKCslzMvIwMAgxFOQWpSbWYIq/4pRnIN
 RSZjXHGQKT2ZeCdz0V0CLmYAWv5+rCbK4JBEhJdXA2LaLZ538npbLTmLvQlS0voY+b//+R1xg
 txbLocW2h/9wCU1QO56nzcwysYFdQ/LkGbcPJ312nPBLrd3B1ip6XF5tsUDZntcSoZPE2e4vl
 7uS9Sy90vak+5XNGtde92rNjfHktnw/YU5U5lnrjruzZr6V4a13StGdun7jv7i5piVBb+zXP5
 zVpMRSnJFoqMVcVJwIAN3J4wUcAwAA
X-Env-Sender: prvs=927b0d5b4=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1462523457!37937036!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61901 invoked from network); 6 May 2016 08:30:58 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 May 2016 08:30:58 -0000
X-IronPort-AV: E=Sophos;i="5.24,586,1454976000"; d="scan'208,217";a="20937667"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
Thread-Index: AQHRpx7Fo+U1hwFnHUKmi2LMrPmmE5+rkJWA
Date: Fri, 6 May 2016 08:16:47 +0000
Message-ID: <436c6957f29d433da3540ac4ff79832c@AMSPEX02CL03.citrite.net>
References: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
In-Reply-To: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5640612230291395403=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5640612230291395403==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_"

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QXQgYSBndWVzcywgSeKAmWQgc2F5IHRoYXQgdGhlIGJhY2tlbmQgZG9lc27igJl0IHN1cHBvcnQg
c3BsaXQgZXZlbnQgY2hhbm5lbHMgYW5kIHRoZSBmcm9udGVuZCBpcyBub3QgY2hlY2tpbmcgdGhp
cyBiZWZvcmUgYXR0ZW1wdGluZyB0byB1bm1hc2sgYSBwcmVzdW1hYmx5IG5vbi1leGlzdGVudCBl
dnRjaG4/DQpEaWQgeW91IGJ1aWxkIHRoZSBkcml2ZXJzIHlvdXJzZWxmPyBJZiBzbywgZnJvbSB3
aGF0IGJyYW5jaCBhbmQgd2hlbj8NCg0KICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFp
bHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbiBCZWhhbGYg
T2YgRXl0YW4gSGVpZGluZ3NmZWxkDQpTZW50OiAwNSBNYXkgMjAxNiAyMzozOA0KVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gVXNp
bmcgY3VycmVudCB4ZW4gcHYgZHJpdmVycyAoV2luZG93cykgb24gQVdTDQoNCkhlbGxvLA0KSSdt
IHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4ZW4gZHJpdmVycyBvbiBBV1MgZWMy
Lg0KSWYgdXNpbmcgZW5oYW5jZWQtbmV0d29ya2luZyBldmVyeXRoaW5nIHdvcmtzIGFzIHBsYW5u
ZWQsIGJ1dCB0cnlpbmcgdG8gdXNlIHhlbnZpZi94ZW5uZXQgY2F1c2VzIGEgYnVnY2hlY2sNCg0K
SVJRTF9OT1RfTEVTU19PUl9FUVVBTA0KDQp0aGUgc3RhY2sgaXM6DQowNCBmZmZmZjgwMWA5OWEy
ODUyNCA6IDAwMDAwMDAwYDAwMDAwMDAwIGZmZmZmODAyYGU2NTdiODMwIGZmZmZlMDAxYDlhNTU1
MWM4IGZmZmZlMDAxYDlhNTUzMDAwIDogeGVuYnVzIUV2dGNoblVubWFzaysweDM1IFtjOlx1c2Vy
c1xidWlsZGVyXGRvY3VtZW50c1xwdmRyaXZlcnNceGVuYnVzXHNyY1x4ZW5idXNcZXZ0Y2huLmMg
QCA3NTZdDQowNSAoSW5saW5lIEZ1bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0t
YC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9f
VHJhbnNtaXR0ZXJSaW5nVW5tYXNrKzB4MWYNCjA2IGZmZmZmODAyYGU0Y2NjMTMwIDogZmZmZmY4
MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZmZmUwMDFg
OWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjKzB4MmU0IFtjOlx1c2Vyc1xidWls
ZGVyXGRvY3VtZW50c1xwdmRyaXZlcnNceGVudmlmXHNyY1x4ZW52aWZcdHJhbnNtaXR0ZXIuYyBA
IDMwMDldDQoNCkFueSBpZGVhIHdoeSB0aGlzIGlzPyBBbnlvbmUgZWxzZSBoYXZlIHRoaXMgY29u
ZmlndXJhdGlvbiB3b3JraW5nPw0KDQpUaGFua3MgaW4gYWR2YW5jZSwNCg==

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFBNzc4LjA1M0VBMjQwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUzNjg3MDE0NSAxMDcz
Nzg2MTExIDEgMCA0MTUgMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglw
YW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsNCgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNv
LWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJ
bXNvLWZvbnQtc2lnbmF0dXJlOi01MjAwODE2NjUgLTEwNzM3MTcxNTcgNDEgMCA2NjA0NyAwO30N
Ci8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYu
TXNvTm9ybWFsDQoJe21zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVz
Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w
MDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7
DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjsNCgltc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0
eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0KYTp2
aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1ub3Nob3c6eWVz
Ow0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0
aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0Kc3Bhbi5FbWFpbFN0eWxl
MTcNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJbXNvLXN0eWxlLW5vc2hvdzp5
ZXM7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tYW5zaS1mb250LXNpemU6MTEuMHB0Ow0K
CW1zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5z
LXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1z
by1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0K
c3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnllczt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1w
cm9wczp5ZXM7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5
OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdl
IFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcy
LjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9v
dGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlv
bjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBd
PjxzdHlsZT4vKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7
bXNvLXN0eWxlLW5hbWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6
MDsNCgltc28tdHN0eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0K
CW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRk
aW5nLWFsdDowY20gNS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNv
LXBhcmEtbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhh
bjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJp
ZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFt
aWx5OkNhbGlicmk7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHlsZT48IVtl
bmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9
ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0
PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0K
PC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiIHN0
eWxlPSJ0YWItaW50ZXJ2YWw6MzYuMHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5BdCBhIGd1ZXNzLCBJ
4oCZZCBzYXkgdGhhdCB0aGUgYmFja2VuZCBkb2VzbuKAmXQgc3VwcG9ydCBzcGxpdCBldmVudCBj
aGFubmVscw0KIGFuZCB0aGUgZnJvbnRlbmQgaXMgbm90IGNoZWNraW5nIHRoaXMgYmVmb3JlIGF0
dGVtcHRpbmcgdG8gdW5tYXNrIGEgcHJlc3VtYWJseSBub24tZXhpc3RlbnQNCjxzcGFuIGNsYXNz
PSJTcGVsbEUiPmV2dGNobjwvc3Bhbj4/PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkRpZCB5b3UgYnVpbGQg
dGhlIGRyaXZlcnMgeW91cnNlbGY/IElmIHNvLCBmcm9tIHdoYXQgYnJhbmNoIGFuZCB3aGVuPzxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1z
by1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5
N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1m
b250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+
DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERG
IDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206
PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5n
PSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21h
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiB3aW4t
cHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9y
Z10gPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk9uIEJlaGFsZiBPZg0KPC9zcGFu
PjwvYj5FeXRhbiBIZWlkaW5nc2ZlbGQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAwNSBNYXkgMjAxNiAyMzozODxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3Vi
amVjdDo8L3NwYW4+PC9iPiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2
ZXJzIChXaW5kb3dzKSBvbiBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVz
IE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+SGVsbG8sPGJyPg0KSSdtIHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4
ZW4gZHJpdmVycyBvbiBBV1MgZWMyLiZuYnNwOzxicj4NCklmIHVzaW5nIGVuaGFuY2VkLW5ldHdv
cmtpbmcgZXZlcnl0aGluZyB3b3JrcyBhcyBwbGFubmVkLCBidXQgdHJ5aW5nIHRvIHVzZSB4ZW52
aWYveGVubmV0IGNhdXNlcyBhIGJ1Z2NoZWNrPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+SVJRTF9OT1RfTEVTU19PUl9FUVVBTDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dGhlIHN0YWNrIGlzOjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+MDQg
ZmZmZmY4MDFgOTlhMjg1MjQgOiAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmZjgwMmBlNjU3YjgzMCBm
ZmZmZTAwMWA5YTU1NTFjOCBmZmZmZTAwMWA5YTU1MzAwMCA6IHhlbmJ1cyFFdnRjaG5Vbm1hc2sm
IzQzOzB4MzUgW2M6XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3Jj
XHhlbmJ1c1xldnRjaG4uYw0KIEAgNzU2XTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJU
aW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4wNSAoSW5saW5l
IEZ1bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0t
YC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9fVHJhbnNtaXR0ZXJSaW5nVW5t
YXNrJiM0MzsweDFmPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjA2IGZmZmZmODAyYGU0Y2NjMTMwIDog
ZmZmZmY4MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZm
ZmUwMDFgOWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjJiM0MzsweDJlNCBbYzpc
dXNlcnNcYnVpbGRlclxkb2N1bWVudHNccHZkcml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXHRyYW5z
bWl0dGVyLmMNCiBAIDMwMDldPGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9u
ZSBlbHNlIGhhdmUgdGhpcyBjb25maWd1cmF0aW9uIHdvcmtpbmc/PGJyPg0KPGJyPg0KVGhhbmtz
IGluIGFkdmFuY2UsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_--


--===============5640612230291395403==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============5640612230291395403==--


From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:31:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:31:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1aybA6-0002b3-3z; Fri, 06 May 2016 08:31:02 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=927b0d5b4=Paul.Durrant@citrix.com>)
 id 1aybA3-0002ax-OL
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:31:00 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 05/53-02833-3465C275; Fri, 06 May 2016 08:30:59 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkleJIrShJLcpLzFFi42LZKekooesUphN
 usLSLx+LP4kQHRo/DH66wBDBGsWbmJeVXJLBm3Hq3gL1g2nSmiicf7zM3MO6czNTFyMkhIRAk
 cXDdQWYQm01AR2Lp0flgcRGBYomvfZdZQWxhAU+Jvgdf2SHiXhI9V04xQ9hGEqsXPAezWQRUJ
 Ho2bwWr5xVwl7hxpZcRxBYSCJB4NH01mM0pECjRO2kxWD2jgKzEl8bVYDazgLjErSfzoe4RkF
 iy5zwzhC0q8fLxP1YI20Bi69J9LBD1uRITl6xigtglKHFy5hMWiF0qElseH4Dq5ZZY+fkPywR
 G4VlIVsxC0j4LSfssRg6guKbE+l36ECWKElO6H7JD2BoSrXPmsiOLL2BkX8WoUZxaVJZapGto
 rJdUlJmeUZKbmJmja2hoopebWlycmJ6ak5hUrJecn7uJERhF9QwMjDsYd233PMQoycGkJMq76
 p92uBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ3nshOuFCgkWp6akVaZk5wHiGSUtw8CiJ8CaFAq
 V5iwsSc4sz0yFSpxgVpcR5mUESAiCJjNI8uDZYCrnEKCslzMvIwMAgxFOQWpSbWYIq/4pRnIN
 RSZjXHGQKT2ZeCdz0V0CLmYAWv5+rCbK4JBEhJdXA2LaLZ538npbLTmLvQlS0voY+b//+R1xg
 txbLocW2h/9wCU1QO56nzcwysYFdQ/LkGbcPJ312nPBLrd3B1ip6XF5tsUDZntcSoZPE2e4vl
 7uS9Sy90vak+5XNGtde92rNjfHktnw/YU5U5lnrjruzZr6V4a13StGdun7jv7i5piVBb+zXP5
 zVpMRSnJFoqMVcVJwIAN3J4wUcAwAA
X-Env-Sender: prvs=927b0d5b4=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1462523457!37937036!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61901 invoked from network); 6 May 2016 08:30:58 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 May 2016 08:30:58 -0000
X-IronPort-AV: E=Sophos;i="5.24,586,1454976000"; d="scan'208,217";a="20937667"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
Thread-Index: AQHRpx7Fo+U1hwFnHUKmi2LMrPmmE5+rkJWA
Date: Fri, 6 May 2016 08:16:47 +0000
Message-ID: <436c6957f29d433da3540ac4ff79832c@AMSPEX02CL03.citrite.net>
References: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
In-Reply-To: <CAGjCcQPbyvhf9-c_1ki5mpONKDVGBPGcYQH8PrJMtBWGoUDqeQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Using current xen pv drivers (Windows) on AWS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5640612230291395403=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5640612230291395403==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_"

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QXQgYSBndWVzcywgSeKAmWQgc2F5IHRoYXQgdGhlIGJhY2tlbmQgZG9lc27igJl0IHN1cHBvcnQg
c3BsaXQgZXZlbnQgY2hhbm5lbHMgYW5kIHRoZSBmcm9udGVuZCBpcyBub3QgY2hlY2tpbmcgdGhp
cyBiZWZvcmUgYXR0ZW1wdGluZyB0byB1bm1hc2sgYSBwcmVzdW1hYmx5IG5vbi1leGlzdGVudCBl
dnRjaG4/DQpEaWQgeW91IGJ1aWxkIHRoZSBkcml2ZXJzIHlvdXJzZWxmPyBJZiBzbywgZnJvbSB3
aGF0IGJyYW5jaCBhbmQgd2hlbj8NCg0KICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFp
bHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbiBCZWhhbGYg
T2YgRXl0YW4gSGVpZGluZ3NmZWxkDQpTZW50OiAwNSBNYXkgMjAxNiAyMzozOA0KVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gVXNp
bmcgY3VycmVudCB4ZW4gcHYgZHJpdmVycyAoV2luZG93cykgb24gQVdTDQoNCkhlbGxvLA0KSSdt
IHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4ZW4gZHJpdmVycyBvbiBBV1MgZWMy
Lg0KSWYgdXNpbmcgZW5oYW5jZWQtbmV0d29ya2luZyBldmVyeXRoaW5nIHdvcmtzIGFzIHBsYW5u
ZWQsIGJ1dCB0cnlpbmcgdG8gdXNlIHhlbnZpZi94ZW5uZXQgY2F1c2VzIGEgYnVnY2hlY2sNCg0K
SVJRTF9OT1RfTEVTU19PUl9FUVVBTA0KDQp0aGUgc3RhY2sgaXM6DQowNCBmZmZmZjgwMWA5OWEy
ODUyNCA6IDAwMDAwMDAwYDAwMDAwMDAwIGZmZmZmODAyYGU2NTdiODMwIGZmZmZlMDAxYDlhNTU1
MWM4IGZmZmZlMDAxYDlhNTUzMDAwIDogeGVuYnVzIUV2dGNoblVubWFzaysweDM1IFtjOlx1c2Vy
c1xidWlsZGVyXGRvY3VtZW50c1xwdmRyaXZlcnNceGVuYnVzXHNyY1x4ZW5idXNcZXZ0Y2huLmMg
QCA3NTZdDQowNSAoSW5saW5lIEZ1bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0t
YC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9f
VHJhbnNtaXR0ZXJSaW5nVW5tYXNrKzB4MWYNCjA2IGZmZmZmODAyYGU0Y2NjMTMwIDogZmZmZmY4
MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZmZmUwMDFg
OWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjKzB4MmU0IFtjOlx1c2Vyc1xidWls
ZGVyXGRvY3VtZW50c1xwdmRyaXZlcnNceGVudmlmXHNyY1x4ZW52aWZcdHJhbnNtaXR0ZXIuYyBA
IDMwMDldDQoNCkFueSBpZGVhIHdoeSB0aGlzIGlzPyBBbnlvbmUgZWxzZSBoYXZlIHRoaXMgY29u
ZmlndXJhdGlvbiB3b3JraW5nPw0KDQpUaGFua3MgaW4gYWR2YW5jZSwNCg==

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFBNzc4LjA1M0VBMjQwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUzNjg3MDE0NSAxMDcz
Nzg2MTExIDEgMCA0MTUgMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglw
YW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsNCgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNv
LWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJ
bXNvLWZvbnQtc2lnbmF0dXJlOi01MjAwODE2NjUgLTEwNzM3MTcxNTcgNDEgMCA2NjA0NyAwO30N
Ci8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYu
TXNvTm9ybWFsDQoJe21zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVz
Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w
MDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7
DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjsNCgltc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0
eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0KYTp2
aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1ub3Nob3c6eWVz
Ow0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0
aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0Kc3Bhbi5FbWFpbFN0eWxl
MTcNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJbXNvLXN0eWxlLW5vc2hvdzp5
ZXM7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tYW5zaS1mb250LXNpemU6MTEuMHB0Ow0K
CW1zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5z
LXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1z
by1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0K
c3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnllczt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1w
cm9wczp5ZXM7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5
OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdl
IFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcy
LjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9v
dGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlv
bjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBd
PjxzdHlsZT4vKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7
bXNvLXN0eWxlLW5hbWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6
MDsNCgltc28tdHN0eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0K
CW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRk
aW5nLWFsdDowY20gNS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNv
LXBhcmEtbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhh
bjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJp
ZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFt
aWx5OkNhbGlicmk7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHlsZT48IVtl
bmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9
ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0
PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0K
PC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiIHN0
eWxlPSJ0YWItaW50ZXJ2YWw6MzYuMHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5BdCBhIGd1ZXNzLCBJ
4oCZZCBzYXkgdGhhdCB0aGUgYmFja2VuZCBkb2VzbuKAmXQgc3VwcG9ydCBzcGxpdCBldmVudCBj
aGFubmVscw0KIGFuZCB0aGUgZnJvbnRlbmQgaXMgbm90IGNoZWNraW5nIHRoaXMgYmVmb3JlIGF0
dGVtcHRpbmcgdG8gdW5tYXNrIGEgcHJlc3VtYWJseSBub24tZXhpc3RlbnQNCjxzcGFuIGNsYXNz
PSJTcGVsbEUiPmV2dGNobjwvc3Bhbj4/PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkRpZCB5b3UgYnVpbGQg
dGhlIGRyaXZlcnMgeW91cnNlbGY/IElmIHNvLCBmcm9tIHdoYXQgYnJhbmNoIGFuZCB3aGVuPzxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1z
by1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5
N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1m
b250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+
DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERG
IDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206
PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBsYW5n
PSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21h
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTIj4NCiB3aW4t
cHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9y
Z10gPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk9uIEJlaGFsZiBPZg0KPC9zcGFu
PjwvYj5FeXRhbiBIZWlkaW5nc2ZlbGQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAwNSBNYXkgMjAxNiAyMzozODxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3Vi
amVjdDo8L3NwYW4+PC9iPiBbd2luLXB2LWRldmVsXSBVc2luZyBjdXJyZW50IHhlbiBwdiBkcml2
ZXJzIChXaW5kb3dzKSBvbiBBV1M8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVz
IE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+SGVsbG8sPGJyPg0KSSdtIHRyeWluZyB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSB4
ZW4gZHJpdmVycyBvbiBBV1MgZWMyLiZuYnNwOzxicj4NCklmIHVzaW5nIGVuaGFuY2VkLW5ldHdv
cmtpbmcgZXZlcnl0aGluZyB3b3JrcyBhcyBwbGFubmVkLCBidXQgdHJ5aW5nIHRvIHVzZSB4ZW52
aWYveGVubmV0IGNhdXNlcyBhIGJ1Z2NoZWNrPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+SVJRTF9OT1RfTEVTU19PUl9FUVVBTDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dGhlIHN0YWNrIGlzOjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+MDQg
ZmZmZmY4MDFgOTlhMjg1MjQgOiAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmZjgwMmBlNjU3YjgzMCBm
ZmZmZTAwMWA5YTU1NTFjOCBmZmZmZTAwMWA5YTU1MzAwMCA6IHhlbmJ1cyFFdnRjaG5Vbm1hc2sm
IzQzOzB4MzUgW2M6XHVzZXJzXGJ1aWxkZXJcZG9jdW1lbnRzXHB2ZHJpdmVyc1x4ZW5idXNcc3Jj
XHhlbmJ1c1xldnRjaG4uYw0KIEAgNzU2XTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJU
aW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4wNSAoSW5saW5l
IEZ1bmN0aW9uKSA6IC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIC0tLS0tLS0t
YC0tLS0tLS0tIC0tLS0tLS0tYC0tLS0tLS0tIDogeGVudmlmIV9fVHJhbnNtaXR0ZXJSaW5nVW5t
YXNrJiM0MzsweDFmPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjA2IGZmZmZmODAyYGU0Y2NjMTMwIDog
ZmZmZmY4MDJgZTRmNzFmMDAgZmZmZmY4MDJgZTRkYmQ1M2UgZmZmZmY4MDJgZTY1N2JiMTAgZmZm
ZmUwMDFgOWE1NTMwODAgOiB4ZW52aWYhVHJhbnNtaXR0ZXJSaW5nRHBjJiM0MzsweDJlNCBbYzpc
dXNlcnNcYnVpbGRlclxkb2N1bWVudHNccHZkcml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXHRyYW5z
bWl0dGVyLmMNCiBAIDMwMDldPGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHRoaXMgaXM/IEFueW9u
ZSBlbHNlIGhhdmUgdGhpcyBjb25maWd1cmF0aW9uIHdvcmtpbmc/PGJyPg0KPGJyPg0KVGhhbmtz
IGluIGFkdmFuY2UsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_436c6957f29d433da3540ac4ff79832cAMSPEX02CL03citritenet_--


--===============5640612230291395403==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============5640612230291395403==--


From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:58:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1aybaN-0004LI-Pm; Fri, 06 May 2016 08:58:11 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1aybaN-0004LB-73
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:58:11 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 E2/29-26345-2AC5C275; Fri, 06 May 2016 08:58:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsVyMXThYd2FMTr
 hBq0HDCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqcOvYK1PBWtZzuZGxi/c3YxcnEICcxhlNjT
 d5sVxGERuMQisfr4B6YuRk4OCYF3LBI9F9m7GDmA7BiJrctrIMKVEqt2XWMEsYUEFCWar11gh
 xi0jEmi83oTWC+bgLrE7feL2SEa7CQ+zboJZosIqEpcW36MDcRmFtCSeLhhHtggYYFQiUW9d5
 hBbBagmhfbl7OA2LwCbhLLn29kg5gjJ7F38mqWCYz8CxgZVjFqFKcWlaUW6Rqa6iUVZaZnlOQ
 mZuboGhqa6OWmFhcnpqfmJCYV6yXn525iBAZPPQMD4w7Gv6c9DzFKcjApifKu+qcdLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mCNydaJ1xIsCg1PbUiLTMHGMYwaQkOHiURXjuQNG9xQWJucWY6R
 OoUozHHlt/X1jJxbJt6by2TEEtefl6qlDivMkipAEhpRmke3CBYfF1ilJUS5mVkYGAQ4ilILc
 rNLEGVf8UozsGoJMwbBjKFJzOvBG7fK6BTmIBOeT9XE+SUkkSElFQD48aK5TKxAlYPDh+5cFZ
 /yR7pplCzAKeZbNe8TF868C2fWn1LcPOF0ux/BesUudPC830n2R3iEXK3e+DeUKWZ5asZ/lva
 /vnuXYrbBAM/5CrYSHzWfBqSOfV57fS6xjdbv8vMPj8lYOHWS7IdPM+8LOb8uiE142nSgvtyn
 1uexawqMJXhX7ZthRJLcUaioRZzUXEiAKmM9UmqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1462525088!39974701!1
X-Originating-IP: [209.85.161.195]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49559 invoked from network); 6 May 2016 08:58:09 -0000
Received: from mail-yw0-f195.google.com (HELO mail-yw0-f195.google.com)
 (209.85.161.195)
 by server-6.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 6 May 2016 08:58:09 -0000
Received: by mail-yw0-f195.google.com with SMTP id u62so15680708ywe.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 06 May 2016 01:58:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=eG6H5HexXRndIFvwYbBfSERytyijCDElk8MW/9ghEBc=;
 b=VtoxHm878MLYDaueLF02Ry3Vl7UxFmeHSMozbrdZ48U9i5FX9zOmYJeDWV9SzW+HLA
 R9Q4U2vXPxaGOw31aDYaUlGNg8WiyjscTdmUD9zsLkIrm1NfWuVgYuA0Rf0/lnvFgUdr
 y+NocNLqwsvGVaUq8Hzfo8Q1ccFo19nS7XzNUdRuX9n3Ni8spVy5C2yyaSgwSXOCzcQj
 kluSsVRI3pbGejLg9roWtuSr3p0v8YmKVT6JgkU4WFepyorluX65AhqTZtnbACZHFeqb
 RnfymjKMXSt6vQMW5OOmLDJKQMA2kQ02Favk/cWO6kNYvX2/7d2hwDsmaziq0ptdvDbd
 IkTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=eG6H5HexXRndIFvwYbBfSERytyijCDElk8MW/9ghEBc=;
 b=ea8NoxryzCK5uihPpkbS7EB6bGo3QM5aetHM4CfQxzEG1GJlUnU58slLY3bUh11/fW
 h3HSMh2UsFu4NQI6mWKMa0BHgY/ws5oJFax0YW3MFka6gRPWKrUh55wxLNH56jaDQ52F
 5ditsaSif1SaDnd59W91VXRYzo6wOMqIjNpdHixz1Z8kmSI4gZyhtdu+pblxiWmv26mK
 Y9MzbkIb38lcDxcSfg93JcBXmQ8unCdLNcYSzE4DkjB/9vxDTov/zy61CTb9gaw8Blpv
 3KwCGsjTSmt4u2X8BfHpDNPfDGSH6InmFsK01sG3SoUfiDaAfwydqxorRjL86t1eQun4
 xqlw==
X-Gm-Message-State: AOPr4FU2TIUFYJCcbUFsEDC835zIsyacYJ4vy1iQUl0nV/Mv4ITXkXlddGL/2d69PLYTpg==
X-Received: by 10.159.33.70 with SMTP id 64mr11815458uab.149.1462525088335;
 Fri, 06 May 2016 01:58:08 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 35sm1220510uaa.14.2016.05.06.01.58.07
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 06 May 2016 01:58:07 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri,  6 May 2016 09:57:56 +0100
Message-Id: <1462525076-6684-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make sure transmitter DPC does not try to
	unmask non-existent evtchn
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGJhY2tlbmQgZG9lcyBub3Qgc3VwcG9ydCBzcGxpdCBldmVu
dCBjaGFubmVscyAob25lCmZvciBSWCBhbmQgb25lIGZvciBUWCkgdGhlbiB0aGUgdHJhbnNtaXR0
ZXIgY29kZSBpbiBYRU5WSUYgZG9lcyBub3Qgb3Blbgp0aGUgY29tYmluZWQgY2hhbm5lbDsgaXQg
aXMgaGFuZGxlZCBieSB0aGUgcmVjZWl2ZXIgY29kZS4gU28sIHRoZQp0cmFuc21pdHRlciBEUEMg
c2hvdWxkIG5vdCBtYWtlIGFueSBhdHRlbXB0IHRvIHVubWFzayB0aGUgZXZlbnQgY2hhbm5lbCBh
dAp0aGUgZW5kIG9mIHByb2Nlc3NpbmcuCgpUaGlzIHBhdGNoIGFkZHMgdGhlIG5lY2Vzc2FyeSBj
aGVjayBmb3IgRnJvbnRlbmRJc1NwbGl0IGJlZm9yZSBkb2luZyB0aGUKdW5tYXNrIGFuZCBhbHNv
IHJlbW92ZXMgYW4gdW5uZWNlc3NhcnkgY2hlY2sgZm9yIEZyb250ZW5kSXNTcGxpdCBpbiB0aGUK
dHJhbnNtaXR0ZXIgcmluZyBlbmFibGUgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1
cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXBvcnRlZC1ieTogRXl0YW4gSGVpZGlu
Z3NmZWxkIDxleXRhbmhAZ21haWwuY29tPgotLS0KIHNyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8
IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52
aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA1Mjg5YzZjLi45NDA2Y2FiIDEwMDY0NAotLS0gYS9zcmMv
eGVudmlmL3RyYW5zbWl0dGVyLmMKKysrIGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0y
OTIxLDExICsyOTIxLDEzIEBAIF9fVHJhbnNtaXR0ZXJSaW5nVW5tYXNrKAogICAgICkKIHsKICAg
ICBQWEVOVklGX1RSQU5TTUlUVEVSICAgICAgICAgICAgIFRyYW5zbWl0dGVyOwotCi0gICAgaWYg
KCFSaW5nLT5Db25uZWN0ZWQpCi0gICAgICAgIHJldHVybjsKKyAgICBQWEVOVklGX0ZST05URU5E
ICAgICAgICAgICAgICAgIEZyb250ZW5kOwogCiAgICAgVHJhbnNtaXR0ZXIgPSBSaW5nLT5UcmFu
c21pdHRlcjsKKyAgICBGcm9udGVuZCA9IFRyYW5zbWl0dGVyLT5Gcm9udGVuZDsKKworICAgIGlm
ICghUmluZy0+Q29ubmVjdGVkIHx8ICFGcm9udGVuZElzU3BsaXQoRnJvbnRlbmQpKQorICAgICAg
ICByZXR1cm47CiAKICAgICBYRU5CVVNfRVZUQ0hOKFVubWFzaywKICAgICAgICAgICAgICAgICAg
ICZUcmFuc21pdHRlci0+RXZ0Y2huSW50ZXJmYWNlLApAQCAtMzYwNyw4ICszNjA5LDcgQEAgX19U
cmFuc21pdHRlclJpbmdFbmFibGUoCiAgICAgQVNTRVJUKCFSaW5nLT5FbmFibGVkKTsKICAgICBS
aW5nLT5FbmFibGVkID0gVFJVRTsKIAotICAgIGlmIChGcm9udGVuZElzU3BsaXQoRnJvbnRlbmQp
KQotICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpOworICAg
IEtlSW5zZXJ0UXVldWVEcGMoJlJpbmctPkRwYywgTlVMTCwgTlVMTCk7CiAKICAgICBfX1RyYW5z
bWl0dGVyUmluZ1JlbGVhc2VMb2NrKFJpbmcpOwogCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri May 06 08:58:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 06 May 2016 08:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1aybaN-0004LI-Pm; Fri, 06 May 2016 08:58:11 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1aybaN-0004LB-73
 for win-pv-devel@lists.xenproject.org; Fri, 06 May 2016 08:58:11 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 E2/29-26345-2AC5C275; Fri, 06 May 2016 08:58:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsVyMXThYd2FMTr
 hBq0HDCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqcOvYK1PBWtZzuZGxi/c3YxcnEICcxhlNjT
 d5sVxGERuMQisfr4B6YuRk4OCYF3LBI9F9m7GDmA7BiJrctrIMKVEqt2XWMEsYUEFCWar11gh
 xi0jEmi83oTWC+bgLrE7feL2SEa7CQ+zboJZosIqEpcW36MDcRmFtCSeLhhHtggYYFQiUW9d5
 hBbBagmhfbl7OA2LwCbhLLn29kg5gjJ7F38mqWCYz8CxgZVjFqFKcWlaUW6Rqa6iUVZaZnlOQ
 mZuboGhqa6OWmFhcnpqfmJCYV6yXn525iBAZPPQMD4w7Gv6c9DzFKcjApifKu+qcdLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mCNydaJ1xIsCg1PbUiLTMHGMYwaQkOHiURXjuQNG9xQWJucWY6R
 OoUozHHlt/X1jJxbJt6by2TEEtefl6qlDivMkipAEhpRmke3CBYfF1ilJUS5mVkYGAQ4ilILc
 rNLEGVf8UozsGoJMwbBjKFJzOvBG7fK6BTmIBOeT9XE+SUkkSElFQD48aK5TKxAlYPDh+5cFZ
 /yR7pplCzAKeZbNe8TF868C2fWn1LcPOF0ux/BesUudPC830n2R3iEXK3e+DeUKWZ5asZ/lva
 /vnuXYrbBAM/5CrYSHzWfBqSOfV57fS6xjdbv8vMPj8lYOHWS7IdPM+8LOb8uiE142nSgvtyn
 1uexawqMJXhX7ZthRJLcUaioRZzUXEiAKmM9UmqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1462525088!39974701!1
X-Originating-IP: [209.85.161.195]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49559 invoked from network); 6 May 2016 08:58:09 -0000
Received: from mail-yw0-f195.google.com (HELO mail-yw0-f195.google.com)
 (209.85.161.195)
 by server-6.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 6 May 2016 08:58:09 -0000
Received: by mail-yw0-f195.google.com with SMTP id u62so15680708ywe.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 06 May 2016 01:58:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=eG6H5HexXRndIFvwYbBfSERytyijCDElk8MW/9ghEBc=;
 b=VtoxHm878MLYDaueLF02Ry3Vl7UxFmeHSMozbrdZ48U9i5FX9zOmYJeDWV9SzW+HLA
 R9Q4U2vXPxaGOw31aDYaUlGNg8WiyjscTdmUD9zsLkIrm1NfWuVgYuA0Rf0/lnvFgUdr
 y+NocNLqwsvGVaUq8Hzfo8Q1ccFo19nS7XzNUdRuX9n3Ni8spVy5C2yyaSgwSXOCzcQj
 kluSsVRI3pbGejLg9roWtuSr3p0v8YmKVT6JgkU4WFepyorluX65AhqTZtnbACZHFeqb
 RnfymjKMXSt6vQMW5OOmLDJKQMA2kQ02Favk/cWO6kNYvX2/7d2hwDsmaziq0ptdvDbd
 IkTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=eG6H5HexXRndIFvwYbBfSERytyijCDElk8MW/9ghEBc=;
 b=ea8NoxryzCK5uihPpkbS7EB6bGo3QM5aetHM4CfQxzEG1GJlUnU58slLY3bUh11/fW
 h3HSMh2UsFu4NQI6mWKMa0BHgY/ws5oJFax0YW3MFka6gRPWKrUh55wxLNH56jaDQ52F
 5ditsaSif1SaDnd59W91VXRYzo6wOMqIjNpdHixz1Z8kmSI4gZyhtdu+pblxiWmv26mK
 Y9MzbkIb38lcDxcSfg93JcBXmQ8unCdLNcYSzE4DkjB/9vxDTov/zy61CTb9gaw8Blpv
 3KwCGsjTSmt4u2X8BfHpDNPfDGSH6InmFsK01sG3SoUfiDaAfwydqxorRjL86t1eQun4
 xqlw==
X-Gm-Message-State: AOPr4FU2TIUFYJCcbUFsEDC835zIsyacYJ4vy1iQUl0nV/Mv4ITXkXlddGL/2d69PLYTpg==
X-Received: by 10.159.33.70 with SMTP id 64mr11815458uab.149.1462525088335;
 Fri, 06 May 2016 01:58:08 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 35sm1220510uaa.14.2016.05.06.01.58.07
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 06 May 2016 01:58:07 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri,  6 May 2016 09:57:56 +0100
Message-Id: <1462525076-6684-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make sure transmitter DPC does not try to
	unmask non-existent evtchn
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGJhY2tlbmQgZG9lcyBub3Qgc3VwcG9ydCBzcGxpdCBldmVu
dCBjaGFubmVscyAob25lCmZvciBSWCBhbmQgb25lIGZvciBUWCkgdGhlbiB0aGUgdHJhbnNtaXR0
ZXIgY29kZSBpbiBYRU5WSUYgZG9lcyBub3Qgb3Blbgp0aGUgY29tYmluZWQgY2hhbm5lbDsgaXQg
aXMgaGFuZGxlZCBieSB0aGUgcmVjZWl2ZXIgY29kZS4gU28sIHRoZQp0cmFuc21pdHRlciBEUEMg
c2hvdWxkIG5vdCBtYWtlIGFueSBhdHRlbXB0IHRvIHVubWFzayB0aGUgZXZlbnQgY2hhbm5lbCBh
dAp0aGUgZW5kIG9mIHByb2Nlc3NpbmcuCgpUaGlzIHBhdGNoIGFkZHMgdGhlIG5lY2Vzc2FyeSBj
aGVjayBmb3IgRnJvbnRlbmRJc1NwbGl0IGJlZm9yZSBkb2luZyB0aGUKdW5tYXNrIGFuZCBhbHNv
IHJlbW92ZXMgYW4gdW5uZWNlc3NhcnkgY2hlY2sgZm9yIEZyb250ZW5kSXNTcGxpdCBpbiB0aGUK
dHJhbnNtaXR0ZXIgcmluZyBlbmFibGUgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1
cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXBvcnRlZC1ieTogRXl0YW4gSGVpZGlu
Z3NmZWxkIDxleXRhbmhAZ21haWwuY29tPgotLS0KIHNyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8
IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52
aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA1Mjg5YzZjLi45NDA2Y2FiIDEwMDY0NAotLS0gYS9zcmMv
eGVudmlmL3RyYW5zbWl0dGVyLmMKKysrIGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0y
OTIxLDExICsyOTIxLDEzIEBAIF9fVHJhbnNtaXR0ZXJSaW5nVW5tYXNrKAogICAgICkKIHsKICAg
ICBQWEVOVklGX1RSQU5TTUlUVEVSICAgICAgICAgICAgIFRyYW5zbWl0dGVyOwotCi0gICAgaWYg
KCFSaW5nLT5Db25uZWN0ZWQpCi0gICAgICAgIHJldHVybjsKKyAgICBQWEVOVklGX0ZST05URU5E
ICAgICAgICAgICAgICAgIEZyb250ZW5kOwogCiAgICAgVHJhbnNtaXR0ZXIgPSBSaW5nLT5UcmFu
c21pdHRlcjsKKyAgICBGcm9udGVuZCA9IFRyYW5zbWl0dGVyLT5Gcm9udGVuZDsKKworICAgIGlm
ICghUmluZy0+Q29ubmVjdGVkIHx8ICFGcm9udGVuZElzU3BsaXQoRnJvbnRlbmQpKQorICAgICAg
ICByZXR1cm47CiAKICAgICBYRU5CVVNfRVZUQ0hOKFVubWFzaywKICAgICAgICAgICAgICAgICAg
ICZUcmFuc21pdHRlci0+RXZ0Y2huSW50ZXJmYWNlLApAQCAtMzYwNyw4ICszNjA5LDcgQEAgX19U
cmFuc21pdHRlclJpbmdFbmFibGUoCiAgICAgQVNTRVJUKCFSaW5nLT5FbmFibGVkKTsKICAgICBS
aW5nLT5FbmFibGVkID0gVFJVRTsKIAotICAgIGlmIChGcm9udGVuZElzU3BsaXQoRnJvbnRlbmQp
KQotICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpOworICAg
IEtlSW5zZXJ0UXVldWVEcGMoJlJpbmctPkRwYywgTlVMTCwgTlVMTCk7CiAKICAgICBfX1RyYW5z
bWl0dGVyUmluZ1JlbGVhc2VMb2NrKFJpbmcpOwogCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:34:31 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:34:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhaA-0002JF-I4; Mon, 09 May 2016 09:34:30 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azha9-0002Il-Aw
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:34:29 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 AE/E3-07120-4A950375; Mon, 09 May 2016 09:34:28 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoobsk0iD
 cYNpyFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8eltF1PBQY+KX0ufMDUwnnDvYuTkkBDwk5i2
 o5sZxGYT0JFYenQ+E4gtIlAg8f39PLA4s4CaxPX9XawgtrBAtMTKe4fYIWpiJE69f8MCYRtJ/
 L+0EqyGRUBF4s3WPrBeXgF3iSsfFrOB2EICdRLTjm8Di3MKuEr0f5oKNodRQFbiS+NqqF3iEr
 eeQNwgISAgsWTPeWYIW1Ti5eN/rBC2gcTWpfuA9nIA1WtKrN+lD9GqKDGl+yE7xFpBiZMzn7B
 ArFWR2PL4ANQYbomVn/+wTGAUnYVk2yyESbOQTJqFZNICRpZVjOrFqUVlqUW6RnpJRZnpGSW5
 iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIFRwgAEOxiX/XU6xCjJwaQkyuvKqBcuxJeUn1KZk
 VicEV9UmpNafIhRhoNDSYL3RIRBuJBgUWp6akVaZg4wXmHSEhw8SiK8d0HSvMUFibnFmekQqV
 OMuhyzlt9ZyyTEkpeflyolzssFjH4hAZCijNI8uBGw1HGJUVZKmJcR6CghnoLUotzMElT5V4z
 iHIxKwrxHQVbxZOaVwG16BXQEE9ARcmz6IEeUJCKkpBoYA+TPFWR+rVxy4ELxlt9muvrPPkr/
 /rPMbluun5NpDnfWw/DYyX901l2pZ56QZHDmuNrlu60yqxX7rfnmaD9xk38puPJv8kbDkEvxD
 zc/zloSk7J9YWWMOv+7a+G2G7/4M7Ppb53K1M1zfV37yrcFk41LGcUMDRJOxEqenHs43Hb1Z8
 3rlQYeSizFGYmGWsxFxYkAQFgezhgDAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1462786467!8817775!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49313 invoked from network); 9 May 2016 09:34:27 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:34:27 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21076556"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/9] Move __FdoNotifyInstaller to
 DriverNotifyInstaller
Thread-Index: AQHRnKIcpWLVBDDGkkKysBja5OfcTp+wcpEA
Date: Mon, 9 May 2016 09:34:26 +0000
Message-ID: <6f2c230e460a47f5895ac83a8ba84959@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/9] Move __FdoNotifyInstaller
	to	DriverNotifyInstaller
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAxLzldIE1vdmUgX19GZG9Ob3RpZnlJbnN0YWxsZXIgdG8N
Cj4gRHJpdmVyTm90aWZ5SW5zdGFsbGVyDQo+IA0KPiBfX0Zkb05vdGlmeUluc3RhbGxlciBkb2Vz
IG5vdCB1c2UgdGhlIEZkbywgc28gcmVmYWN0b3JpbmcgYWxsb3dzIHRoZSByZW1vdmFsDQo+IG9m
IGV4dGVybiBmcm9tIERyaXZlclN0YXR1c0tleQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBT
bWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxw
YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMg
fCA1NQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t
LS0tLQ0KPiAgc3JjL3hlbnZiZC9kcml2ZXIuaCB8ICA4ICsrKysrLS0tDQo+ICBzcmMveGVudmJk
L2Zkby5jICAgIHwgNTEgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlv
bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZi
ZC9kcml2ZXIuYw0KPiBpbmRleCAyZmNiMmQxLi5lYjE3NDc1IDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2RyaXZlci5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTMyMiw5
ICszMjIsNTIgQEAgZG9uZToNCj4gICAgICByZXR1cm4gU3RhdHVzOw0KPiAgfQ0KPiANCj4gLQ0K
PiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gR2xvYmFsIEZ1bmN0aW9ucw0KPiAt
I2RlZmluZSBGT1JNQVRfUE9PTF9UQUcgICAgICd0bUZYJw0KPiArVk9JRA0KPiArRHJpdmVyTm90
aWZ5SW5zdGFsbGVyKA0KPiArICAgIFZPSUQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgVU5JQ09E
RV9TVFJJTkcgICAgICAgICAgICAgICAgICBVbmljb2RlOw0KPiArICAgIFBLRVlfVkFMVUVfUEFS
VElBTF9JTkZPUk1BVElPTiAgUGFydGlhbDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1czsNCj4gKw0KPiArICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwo
KSwgPT0sIFBBU1NJVkVfTEVWRUwpOw0KPiArDQo+ICsgICAgUGFydGlhbCA9IF9fQWxsb2NhdGVO
b25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxEX09GRlNFVChLRVlfVkFMVUVfUEFSVElBTF9J
TkZPUk1BVElPTiwNCj4gRGF0YSkgKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YgKFVMT05HKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWEVOVkJEX1BPT0xfVEFHKTsNCj4gKyAgICBzdGF0dXMgPSBT
VEFUVVNfTk9fTUVNT1JZOw0KPiArICAgIGlmIChQYXJ0aWFsID09IE5VTEwpDQo+ICsgICAgICAg
IGdvdG8gZmFpbDE7DQo+ICsNCj4gKyAgICBQYXJ0aWFsLT5UaXRsZUluZGV4ID0gMDsNCj4gKyAg
ICBQYXJ0aWFsLT5UeXBlID0gUkVHX0RXT1JEOw0KPiArICAgIFBhcnRpYWwtPkRhdGFMZW5ndGgg
PSBzaXplb2YgKFVMT05HKTsNCj4gKyAgICAqKFBVTE9ORylQYXJ0aWFsLT5EYXRhID0gMTsNCj4g
Kw0KPiArICAgIFJ0bEluaXRVbmljb2RlU3RyaW5nKCZVbmljb2RlLCBMIk5lZWRSZWJvb3QiKTsN
Cj4gKw0KPiArICAgIHN0YXR1cyA9IFp3U2V0VmFsdWVLZXkoRHJpdmVyU3RhdHVzS2V5LA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJlVuaWNvZGUsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQYXJ0aWFsLT5UaXRsZUluZGV4LA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFydGlhbC0+VHlwZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnRp
YWwtPkRhdGEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aWFsLT5EYXRhTGVu
Z3RoKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBm
YWlsMjsNCj4gKw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKFBhcnRpYWwsIFhFTlZCRF9QT09M
X1RBRyk7DQo+ICsNCj4gKyAgICByZXR1cm47DQo+ICsNCj4gK2ZhaWwyOg0KPiArICAgIEVycm9y
KCJmYWlsMlxuIik7DQo+ICsNCj4gK2ZhaWwxOg0KPiArICAgIEVycm9yKCJmYWlsMSAoJTA4eClc
biIsIHN0YXR1cyk7DQo+ICt9DQo+IA0KPiAgX19jaGVja1JldHVybg0KPiAgX19kcnZfYWxsb2Nh
dGVzTWVtKG1lbSkNCj4gQEAgLTM0MCw3ICszODMsNyBAQCBfX0RyaXZlckZvcm1hdFYoDQo+ICAg
ICAgVUxPTkcgICAgICAgU2l6ZSA9IDMyOw0KPiANCj4gICAgICBmb3IgKDs7KSB7DQo+IC0gICAg
ICAgIFN0ciA9IChQQ0hBUilfX0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9O
X18sDQo+IF9fTElORV9fLCBTaXplLCBGT1JNQVRfUE9PTF9UQUcpOw0KPiArICAgICAgICBTdHIg
PSAoUENIQVIpX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLA0KPiBf
X0xJTkVfXywgU2l6ZSwgWEVOVkJEX1BPT0xfVEFHKTsNCj4gICAgICAgICAgaWYgKCFTdHIpIHsN
Cj4gICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiAgICAgICAgICB9DQo+IEBAIC0zNTIsNyAr
Mzk1LDcgQEAgX19Ecml2ZXJGb3JtYXRWKA0KPiAgICAgICAgICAgICAgcmV0dXJuIFN0cjsNCj4g
ICAgICAgICAgfQ0KPiANCj4gLSAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoU3RyLCBGT1JNQVRf
UE9PTF9UQUcpOw0KPiArICAgICAgICBfX0ZyZWVQb29sV2l0aFRhZyhTdHIsIFhFTlZCRF9QT09M
X1RBRyk7DQo+ICAgICAgICAgIGlmIChTdGF0dXMgPT0gU1RBVFVTX0JVRkZFUl9PVkVSRkxPVykg
ew0KPiAgICAgICAgICAgICAgU2l6ZSAqPSAyOw0KPiAgICAgICAgICB9IGVsc2Ugew0KPiBAQCAt
Mzg1LDcgKzQyOCw3IEBAIERyaXZlckZvcm1hdEZyZWUoDQo+ICAgICAgKQ0KPiAgew0KPiAgICAg
IGlmIChCdWZmZXIpDQo+IC0gICAgICAgIF9fRnJlZVBvb2xXaXRoVGFnKEJ1ZmZlciwgRk9STUFU
X1BPT0xfVEFHKTsNCj4gKyAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WQkRf
UE9PTF9UQUcpOw0KPiAgfQ0KPiANCj4gDQo+IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09PT09PT09DQo+
IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5oIGIvc3JjL3hlbnZiZC9kcml2ZXIuaA0K
PiBpbmRleCA1NjBkZDRlLi43OTI2MGNkIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZl
ci5oDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmgNCj4gQEAgLTU3LDggKzU3LDYgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsNCj4gDQo+ICBleHRlcm4gWEVOVkJEX1BB
UkFNRVRFUlMgICAgRHJpdmVyUGFyYW1ldGVyczsNCj4gDQo+IC1leHRlcm4gSEFORExFICAgICAg
ICAgICAgICAgRHJpdmVyU3RhdHVzS2V5Ow0KPiAtDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIERy
aXZlckRpc3BhdGNoUG5wKA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0
LA0KPiBAQCAtODIsNyArODAsMTEgQEAgRHJpdmVyVW5saW5rRmRvKA0KPiAgICAgIF9faW4gUFhF
TlZCRF9GRE8gICAgICAgICAgICAgRmRvDQo+ICAgICAgKTsNCj4gDQo+IC0vLyBHbG9iYWwgRnVu
Y3Rpb25zDQo+ICtleHRlcm4gVk9JRA0KPiArRHJpdmVyTm90aWZ5SW5zdGFsbGVyKA0KPiArICAg
IFZPSUQNCj4gKyAgICApOw0KPiArDQo+ICBfX2NoZWNrUmV0dXJuDQo+ICBfX2Rydl9hbGxvY2F0
ZXNNZW0obWVtKQ0KPiAgZXh0ZXJuIFBDSEFSDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zk
by5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCBjZjA1NDgzLi40MDZlNDljIDEwMDY0NA0K
PiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAg
LTU1NSw1NCArNTU1LDcgQEAgX19GZG9Jc1Bkb1VucGx1Z2dlZCgNCj4gICAgICAgICAgcmV0dXJu
IFRSVUU7DQo+ICAgICAgfQ0KPiAgfQ0KPiAtc3RhdGljIFZPSUQNCj4gLV9fRmRvTm90aWZ5SW5z
dGFsbGVyKA0KPiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgRmRvDQo+IC0g
ICAgKQ0KPiAtew0KPiAtICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAgICAgICAgICAgVW5pY29k
ZTsNCj4gLSAgICBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJT04gIFBhcnRpYWw7DQo+IC0g
ICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7DQo+IC0NCj4gLSAgICBV
TlJFRkVSRU5DRURfUEFSQU1FVEVSKEZkbyk7DQo+IC0NCj4gLSAgICBBU1NFUlQzVShLZUdldEN1
cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsNCj4gLQ0KPiAtICAgIFBhcnRpYWwgPSBf
X0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9fLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUVMRF9PRkZTRVQoS0VZX1ZBTFVF
X1BBUlRJQUxfSU5GT1JNQVRJT04sDQo+IERhdGEpICsNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChVTE9ORyksDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZET19TSUdOQVRVUkUpOw0KPiAtICAgIHN0
YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7DQo+IC0gICAgaWYgKFBhcnRpYWwgPT0gTlVMTCkNCj4g
LSAgICAgICAgZ290byBmYWlsMTsNCj4gLQ0KPiAtICAgIFBhcnRpYWwtPlRpdGxlSW5kZXggPSAw
Ow0KPiAtICAgIFBhcnRpYWwtPlR5cGUgPSBSRUdfRFdPUkQ7DQo+IC0gICAgUGFydGlhbC0+RGF0
YUxlbmd0aCA9IHNpemVvZiAoVUxPTkcpOw0KPiAtICAgICooUFVMT05HKVBhcnRpYWwtPkRhdGEg
PSAxOw0KPiAtDQo+IC0gICAgUnRsSW5pdFVuaWNvZGVTdHJpbmcoJlVuaWNvZGUsIEwiTmVlZFJl
Ym9vdCIpOw0KPiANCj4gLSAgICBzdGF0dXMgPSBad1NldFZhbHVlS2V5KERyaXZlclN0YXR1c0tl
eSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZVbmljb2RlLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFydGlhbC0+VGl0bGVJbmRleCwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBhcnRpYWwtPlR5cGUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBQYXJ0aWFsLT5EYXRhLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFydGlhbC0+
RGF0YUxlbmd0aCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAg
IGdvdG8gZmFpbDI7DQo+IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhQYXJ0aWFsLCBGRE9f
U0lHTkFUVVJFKTsNCj4gLQ0KPiAtICAgIHJldHVybjsNCj4gLQ0KPiAtZmFpbDI6DQo+IC0gICAg
RXJyb3IoImZhaWwyXG4iKTsNCj4gLQ0KPiAtZmFpbDE6DQo+IC0gICAgRXJyb3IoImZhaWwxICgl
MDh4KVxuIiwgc3RhdHVzKTsNCj4gLX0NCj4gIHN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICBf
X0Zkb0VudW1lcmF0ZSgNCj4gICAgICBfX2luICAgIFBYRU5WQkRfRkRPIEZkbywNCj4gQEAgLTc2
MSw3ICs3MTQsNyBAQCBGZG9TY2FuKA0KPiAgICAgICAgICB9DQo+IA0KPiAgICAgICAgICBpZiAo
TmVlZFJlYm9vdCkNCj4gLSAgICAgICAgICAgIF9fRmRvTm90aWZ5SW5zdGFsbGVyKEZkbyk7DQo+
ICsgICAgICAgICAgICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gICAgICB9DQo+IA0KPiAg
ICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gQEAgLTIwMTAsNyArMTk2Myw3IEBAIEZkb0Rp
c3BhdGNoUG5wKA0KPiAgICAgICAgICAgICAgICAgIEZkb0xvZ1RhcmdldHMoIlFVRVJZX1JFTEFU
SU9OUyIsIEZkbyk7DQo+IA0KPiAgICAgICAgICAgICAgaWYgKE5lZWRSZWJvb3QpDQo+IC0gICAg
ICAgICAgICAgICAgX19GZG9Ob3RpZnlJbnN0YWxsZXIoRmRvKTsNCj4gKyAgICAgICAgICAgICAg
ICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAgICBGZG9E
ZXJlZmVyZW5jZShGZG8pOw0KPiAgICAgICAgICBicmVhazsNCj4gLS0NCj4gMS45LjQubXN5c2dp
dC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:34:31 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:34:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhaA-0002JF-I4; Mon, 09 May 2016 09:34:30 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azha9-0002Il-Aw
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:34:29 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 AE/E3-07120-4A950375; Mon, 09 May 2016 09:34:28 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoobsk0iD
 cYNpyFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8eltF1PBQY+KX0ufMDUwnnDvYuTkkBDwk5i2
 o5sZxGYT0JFYenQ+E4gtIlAg8f39PLA4s4CaxPX9XawgtrBAtMTKe4fYIWpiJE69f8MCYRtJ/
 L+0EqyGRUBF4s3WPrBeXgF3iSsfFrOB2EICdRLTjm8Di3MKuEr0f5oKNodRQFbiS+NqqF3iEr
 eeQNwgISAgsWTPeWYIW1Ti5eN/rBC2gcTWpfuA9nIA1WtKrN+lD9GqKDGl+yE7xFpBiZMzn7B
 ArFWR2PL4ANQYbomVn/+wTGAUnYVk2yyESbOQTJqFZNICRpZVjOrFqUVlqUW6RnpJRZnpGSW5
 iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIFRwgAEOxiX/XU6xCjJwaQkyuvKqBcuxJeUn1KZk
 VicEV9UmpNafIhRhoNDSYL3RIRBuJBgUWp6akVaZg4wXmHSEhw8SiK8d0HSvMUFibnFmekQqV
 OMuhyzlt9ZyyTEkpeflyolzssFjH4hAZCijNI8uBGw1HGJUVZKmJcR6CghnoLUotzMElT5V4z
 iHIxKwrxHQVbxZOaVwG16BXQEE9ARcmz6IEeUJCKkpBoYA+TPFWR+rVxy4ELxlt9muvrPPkr/
 /rPMbluun5NpDnfWw/DYyX901l2pZ56QZHDmuNrlu60yqxX7rfnmaD9xk38puPJv8kbDkEvxD
 zc/zloSk7J9YWWMOv+7a+G2G7/4M7Ppb53K1M1zfV37yrcFk41LGcUMDRJOxEqenHs43Hb1Z8
 3rlQYeSizFGYmGWsxFxYkAQFgezhgDAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1462786467!8817775!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49313 invoked from network); 9 May 2016 09:34:27 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:34:27 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21076556"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/9] Move __FdoNotifyInstaller to
 DriverNotifyInstaller
Thread-Index: AQHRnKIcpWLVBDDGkkKysBja5OfcTp+wcpEA
Date: Mon, 9 May 2016 09:34:26 +0000
Message-ID: <6f2c230e460a47f5895ac83a8ba84959@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/9] Move __FdoNotifyInstaller
	to	DriverNotifyInstaller
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAxLzldIE1vdmUgX19GZG9Ob3RpZnlJbnN0YWxsZXIgdG8N
Cj4gRHJpdmVyTm90aWZ5SW5zdGFsbGVyDQo+IA0KPiBfX0Zkb05vdGlmeUluc3RhbGxlciBkb2Vz
IG5vdCB1c2UgdGhlIEZkbywgc28gcmVmYWN0b3JpbmcgYWxsb3dzIHRoZSByZW1vdmFsDQo+IG9m
IGV4dGVybiBmcm9tIERyaXZlclN0YXR1c0tleQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBT
bWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxw
YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMg
fCA1NQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t
LS0tLQ0KPiAgc3JjL3hlbnZiZC9kcml2ZXIuaCB8ICA4ICsrKysrLS0tDQo+ICBzcmMveGVudmJk
L2Zkby5jICAgIHwgNTEgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlv
bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZi
ZC9kcml2ZXIuYw0KPiBpbmRleCAyZmNiMmQxLi5lYjE3NDc1IDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2RyaXZlci5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTMyMiw5
ICszMjIsNTIgQEAgZG9uZToNCj4gICAgICByZXR1cm4gU3RhdHVzOw0KPiAgfQ0KPiANCj4gLQ0K
PiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gR2xvYmFsIEZ1bmN0aW9ucw0KPiAt
I2RlZmluZSBGT1JNQVRfUE9PTF9UQUcgICAgICd0bUZYJw0KPiArVk9JRA0KPiArRHJpdmVyTm90
aWZ5SW5zdGFsbGVyKA0KPiArICAgIFZPSUQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgVU5JQ09E
RV9TVFJJTkcgICAgICAgICAgICAgICAgICBVbmljb2RlOw0KPiArICAgIFBLRVlfVkFMVUVfUEFS
VElBTF9JTkZPUk1BVElPTiAgUGFydGlhbDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1czsNCj4gKw0KPiArICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwo
KSwgPT0sIFBBU1NJVkVfTEVWRUwpOw0KPiArDQo+ICsgICAgUGFydGlhbCA9IF9fQWxsb2NhdGVO
b25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZJRUxEX09GRlNFVChLRVlfVkFMVUVfUEFSVElBTF9J
TkZPUk1BVElPTiwNCj4gRGF0YSkgKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YgKFVMT05HKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWEVOVkJEX1BPT0xfVEFHKTsNCj4gKyAgICBzdGF0dXMgPSBT
VEFUVVNfTk9fTUVNT1JZOw0KPiArICAgIGlmIChQYXJ0aWFsID09IE5VTEwpDQo+ICsgICAgICAg
IGdvdG8gZmFpbDE7DQo+ICsNCj4gKyAgICBQYXJ0aWFsLT5UaXRsZUluZGV4ID0gMDsNCj4gKyAg
ICBQYXJ0aWFsLT5UeXBlID0gUkVHX0RXT1JEOw0KPiArICAgIFBhcnRpYWwtPkRhdGFMZW5ndGgg
PSBzaXplb2YgKFVMT05HKTsNCj4gKyAgICAqKFBVTE9ORylQYXJ0aWFsLT5EYXRhID0gMTsNCj4g
Kw0KPiArICAgIFJ0bEluaXRVbmljb2RlU3RyaW5nKCZVbmljb2RlLCBMIk5lZWRSZWJvb3QiKTsN
Cj4gKw0KPiArICAgIHN0YXR1cyA9IFp3U2V0VmFsdWVLZXkoRHJpdmVyU3RhdHVzS2V5LA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJlVuaWNvZGUsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQYXJ0aWFsLT5UaXRsZUluZGV4LA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFydGlhbC0+VHlwZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnRp
YWwtPkRhdGEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aWFsLT5EYXRhTGVu
Z3RoKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBm
YWlsMjsNCj4gKw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKFBhcnRpYWwsIFhFTlZCRF9QT09M
X1RBRyk7DQo+ICsNCj4gKyAgICByZXR1cm47DQo+ICsNCj4gK2ZhaWwyOg0KPiArICAgIEVycm9y
KCJmYWlsMlxuIik7DQo+ICsNCj4gK2ZhaWwxOg0KPiArICAgIEVycm9yKCJmYWlsMSAoJTA4eClc
biIsIHN0YXR1cyk7DQo+ICt9DQo+IA0KPiAgX19jaGVja1JldHVybg0KPiAgX19kcnZfYWxsb2Nh
dGVzTWVtKG1lbSkNCj4gQEAgLTM0MCw3ICszODMsNyBAQCBfX0RyaXZlckZvcm1hdFYoDQo+ICAg
ICAgVUxPTkcgICAgICAgU2l6ZSA9IDMyOw0KPiANCj4gICAgICBmb3IgKDs7KSB7DQo+IC0gICAg
ICAgIFN0ciA9IChQQ0hBUilfX0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9O
X18sDQo+IF9fTElORV9fLCBTaXplLCBGT1JNQVRfUE9PTF9UQUcpOw0KPiArICAgICAgICBTdHIg
PSAoUENIQVIpX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLA0KPiBf
X0xJTkVfXywgU2l6ZSwgWEVOVkJEX1BPT0xfVEFHKTsNCj4gICAgICAgICAgaWYgKCFTdHIpIHsN
Cj4gICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiAgICAgICAgICB9DQo+IEBAIC0zNTIsNyAr
Mzk1LDcgQEAgX19Ecml2ZXJGb3JtYXRWKA0KPiAgICAgICAgICAgICAgcmV0dXJuIFN0cjsNCj4g
ICAgICAgICAgfQ0KPiANCj4gLSAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoU3RyLCBGT1JNQVRf
UE9PTF9UQUcpOw0KPiArICAgICAgICBfX0ZyZWVQb29sV2l0aFRhZyhTdHIsIFhFTlZCRF9QT09M
X1RBRyk7DQo+ICAgICAgICAgIGlmIChTdGF0dXMgPT0gU1RBVFVTX0JVRkZFUl9PVkVSRkxPVykg
ew0KPiAgICAgICAgICAgICAgU2l6ZSAqPSAyOw0KPiAgICAgICAgICB9IGVsc2Ugew0KPiBAQCAt
Mzg1LDcgKzQyOCw3IEBAIERyaXZlckZvcm1hdEZyZWUoDQo+ICAgICAgKQ0KPiAgew0KPiAgICAg
IGlmIChCdWZmZXIpDQo+IC0gICAgICAgIF9fRnJlZVBvb2xXaXRoVGFnKEJ1ZmZlciwgRk9STUFU
X1BPT0xfVEFHKTsNCj4gKyAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WQkRf
UE9PTF9UQUcpOw0KPiAgfQ0KPiANCj4gDQo+IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09PT09PT09DQo+
IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5oIGIvc3JjL3hlbnZiZC9kcml2ZXIuaA0K
PiBpbmRleCA1NjBkZDRlLi43OTI2MGNkIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZl
ci5oDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmgNCj4gQEAgLTU3LDggKzU3LDYgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsNCj4gDQo+ICBleHRlcm4gWEVOVkJEX1BB
UkFNRVRFUlMgICAgRHJpdmVyUGFyYW1ldGVyczsNCj4gDQo+IC1leHRlcm4gSEFORExFICAgICAg
ICAgICAgICAgRHJpdmVyU3RhdHVzS2V5Ow0KPiAtDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIERy
aXZlckRpc3BhdGNoUG5wKA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0
LA0KPiBAQCAtODIsNyArODAsMTEgQEAgRHJpdmVyVW5saW5rRmRvKA0KPiAgICAgIF9faW4gUFhF
TlZCRF9GRE8gICAgICAgICAgICAgRmRvDQo+ICAgICAgKTsNCj4gDQo+IC0vLyBHbG9iYWwgRnVu
Y3Rpb25zDQo+ICtleHRlcm4gVk9JRA0KPiArRHJpdmVyTm90aWZ5SW5zdGFsbGVyKA0KPiArICAg
IFZPSUQNCj4gKyAgICApOw0KPiArDQo+ICBfX2NoZWNrUmV0dXJuDQo+ICBfX2Rydl9hbGxvY2F0
ZXNNZW0obWVtKQ0KPiAgZXh0ZXJuIFBDSEFSDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zk
by5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCBjZjA1NDgzLi40MDZlNDljIDEwMDY0NA0K
PiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAg
LTU1NSw1NCArNTU1LDcgQEAgX19GZG9Jc1Bkb1VucGx1Z2dlZCgNCj4gICAgICAgICAgcmV0dXJu
IFRSVUU7DQo+ICAgICAgfQ0KPiAgfQ0KPiAtc3RhdGljIFZPSUQNCj4gLV9fRmRvTm90aWZ5SW5z
dGFsbGVyKA0KPiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgRmRvDQo+IC0g
ICAgKQ0KPiAtew0KPiAtICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAgICAgICAgICAgVW5pY29k
ZTsNCj4gLSAgICBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJT04gIFBhcnRpYWw7DQo+IC0g
ICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7DQo+IC0NCj4gLSAgICBV
TlJFRkVSRU5DRURfUEFSQU1FVEVSKEZkbyk7DQo+IC0NCj4gLSAgICBBU1NFUlQzVShLZUdldEN1
cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsNCj4gLQ0KPiAtICAgIFBhcnRpYWwgPSBf
X0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9fLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUVMRF9PRkZTRVQoS0VZX1ZBTFVF
X1BBUlRJQUxfSU5GT1JNQVRJT04sDQo+IERhdGEpICsNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChVTE9ORyksDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZET19TSUdOQVRVUkUpOw0KPiAtICAgIHN0
YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7DQo+IC0gICAgaWYgKFBhcnRpYWwgPT0gTlVMTCkNCj4g
LSAgICAgICAgZ290byBmYWlsMTsNCj4gLQ0KPiAtICAgIFBhcnRpYWwtPlRpdGxlSW5kZXggPSAw
Ow0KPiAtICAgIFBhcnRpYWwtPlR5cGUgPSBSRUdfRFdPUkQ7DQo+IC0gICAgUGFydGlhbC0+RGF0
YUxlbmd0aCA9IHNpemVvZiAoVUxPTkcpOw0KPiAtICAgICooUFVMT05HKVBhcnRpYWwtPkRhdGEg
PSAxOw0KPiAtDQo+IC0gICAgUnRsSW5pdFVuaWNvZGVTdHJpbmcoJlVuaWNvZGUsIEwiTmVlZFJl
Ym9vdCIpOw0KPiANCj4gLSAgICBzdGF0dXMgPSBad1NldFZhbHVlS2V5KERyaXZlclN0YXR1c0tl
eSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZVbmljb2RlLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFydGlhbC0+VGl0bGVJbmRleCwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBhcnRpYWwtPlR5cGUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBQYXJ0aWFsLT5EYXRhLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFydGlhbC0+
RGF0YUxlbmd0aCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAg
IGdvdG8gZmFpbDI7DQo+IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhQYXJ0aWFsLCBGRE9f
U0lHTkFUVVJFKTsNCj4gLQ0KPiAtICAgIHJldHVybjsNCj4gLQ0KPiAtZmFpbDI6DQo+IC0gICAg
RXJyb3IoImZhaWwyXG4iKTsNCj4gLQ0KPiAtZmFpbDE6DQo+IC0gICAgRXJyb3IoImZhaWwxICgl
MDh4KVxuIiwgc3RhdHVzKTsNCj4gLX0NCj4gIHN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICBf
X0Zkb0VudW1lcmF0ZSgNCj4gICAgICBfX2luICAgIFBYRU5WQkRfRkRPIEZkbywNCj4gQEAgLTc2
MSw3ICs3MTQsNyBAQCBGZG9TY2FuKA0KPiAgICAgICAgICB9DQo+IA0KPiAgICAgICAgICBpZiAo
TmVlZFJlYm9vdCkNCj4gLSAgICAgICAgICAgIF9fRmRvTm90aWZ5SW5zdGFsbGVyKEZkbyk7DQo+
ICsgICAgICAgICAgICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gICAgICB9DQo+IA0KPiAg
ICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gQEAgLTIwMTAsNyArMTk2Myw3IEBAIEZkb0Rp
c3BhdGNoUG5wKA0KPiAgICAgICAgICAgICAgICAgIEZkb0xvZ1RhcmdldHMoIlFVRVJZX1JFTEFU
SU9OUyIsIEZkbyk7DQo+IA0KPiAgICAgICAgICAgICAgaWYgKE5lZWRSZWJvb3QpDQo+IC0gICAg
ICAgICAgICAgICAgX19GZG9Ob3RpZnlJbnN0YWxsZXIoRmRvKTsNCj4gKyAgICAgICAgICAgICAg
ICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAgICBGZG9E
ZXJlZmVyZW5jZShGZG8pOw0KPiAgICAgICAgICBicmVhazsNCj4gLS0NCj4gMS45LjQubXN5c2dp
dC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:41:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:41:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhh2-0003VE-5q; Mon, 09 May 2016 09:41:36 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhh0-0003V3-H1
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:41:34 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 E9/F0-21979-D4B50375; Mon, 09 May 2016 09:41:33 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQtc32iD
 cYPJFQYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasf/hN+aCuyEVE9ecYGpgvBDcxcjJISHgJ/F1
 xQJmEJtNQEdi6dH5TCC2iECBxPf388DizAJqEtf3d7GC2MICbhJ/Lq5m62LkAKpxl7jeoA1Rb
 iTR+eocO4jNIqAi0bbrMFgrL1DJ4ddfwEYKCdRJPH57jA3E5hRwlZhzvBNsJKOArMSXxtVQq8
 Qlbj2BOEFCQEBiyZ7zzBC2qMTLx/9YIWwDia1L97GAnMAsoCmxfpc+RKuixJTuh+wQawUlTs5
 8wgKxVkViy+MDUGO4JVZ+/sMygVF0FpJtsxAmzUIyaRaSSQsYWVYxahSnFpWlFukaWuglFWWm
 Z5TkJmbm6BoamOrlphYXJ6an5iQmFesl5+duYgRGCQMQ7GBs2u55iFGSg0lJlNeVUS9ciC8pP
 6UyI7E4I76oNCe1+BCjDAeHkgTv6iiDcCHBotT01Iq0zBxgvMKkJTh4lER4d4OkeYsLEnOLM9
 MhUqcYFaXEeQtBEgIgiYzSPLg2WIq4xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWFePZApPJl
 5JXDTXwEtZgJaLMemD7K4JBEhJdXAuPnzle9T/LOvS6Z73bx89UFQ/3ODg7YezBsZH0UoPd40
 +w7/lv4Kg8Dv8fuc94bKZ028o5Biu/+g6fP7eRfdpTbOTv8ZILc1yM7+z3bmqJ+VWso503vSr
 1ypk3Y9bXVozr9vX/oWcc/qX7Wr+9Miidm/1Pa37JQ4vPzv0z7r7Q+fXfkl1W3wu0CJpTgj0V
 CLuag4EQD+FnWJDAMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1462786893!26354447!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34438 invoked from network); 9 May 2016 09:41:33 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:41:33 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077051"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/9] Simplify StorPort entry points
Thread-Index: AQHRnKIfyTEgb6pZw0CRyMNxaJir+J+wdJEw
Date: Mon, 9 May 2016 09:41:32 +0000
Message-ID: <ff231cc277de498ba8a91c522513c1a9@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-3-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-3-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/9] Simplify StorPort entry points
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAyLzldIFNpbXBsaWZ5IFN0b3JQb3J0IGVudHJ5IHBvaW50
cw0KPiANCj4gUmVtb3ZlIGEgbG90IG9mIGRlYnVnIGxvZ2dpbmcgZnJvbSBzdG9ycG9ydCBlbnRy
eSBwb2ludHMgYW5kIHJlbW92ZQ0KPiBId0FkYXB0ZXJDb250cm9sIGZyb20gdGhlIEZkbyBjb2Rl
LiBId0FkYXB0ZXJDb250cm9sIGFjY2VwdHMgYWxsDQo+IG9wZXJhdGlvbnMNCj4gYW5kIGlnbm9y
ZXMgYWxsIGJ1dCBRdWVyeVN1cHBvcnRlZENvbnRyb2xUeXBlcw0KPiANCj4gU2lnbmVkLW9mZi1i
eTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBE
dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQv
ZHJpdmVyLmMgfCA5NyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgICAgfCAzOSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZmRvLmggICAgfCAgNyAtLS0tDQo+ICAzIGZpbGVzIGNo
YW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiBpbmRleCBl
YjE3NDc1Li5jZmY2MDM0IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5jDQo+ICsr
KyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTQzMSwzNSArNDMxLDYgQEAgRHJpdmVyRm9y
bWF0RnJlZSgNCj4gICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WQkRfUE9P
TF9UQUcpOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAt
Ly8gU3RvclBvcnQgcmVkaXJlY3Rpb25zDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgUENIQVINCj4g
LV9fU2NzaUFkYXB0ZXJDb250cm9sVHlwZU5hbWUoDQo+IC0gICAgX19pbiBTQ1NJX0FEQVBURVJf
Q09OVFJPTF9UWVBFICAgQ29udHJvbFR5cGUNCj4gLSAgICApDQo+IC17DQo+IC0gICAgc3dpdGNo
IChDb250cm9sVHlwZSkgew0KPiAtICAgIGNhc2UgU2NzaVF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5
cGVzOiAgICByZXR1cm4NCj4gIlF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5cGVzIjsNCj4gLSAgICBj
YXNlIFNjc2lTdG9wQWRhcHRlcjogICAgICAgICAgICAgICAgICAgcmV0dXJuICJTdG9wQWRhcHRl
ciI7DQo+IC0gICAgY2FzZSBTY3NpUmVzdGFydEFkYXB0ZXI6ICAgICAgICAgICAgICAgIHJldHVy
biAiUmVzdGFydEFkYXB0ZXIiOw0KPiAtICAgIGNhc2UgU2NzaVNldEJvb3RDb25maWc6ICAgICAg
ICAgICAgICAgICByZXR1cm4gIlNldEJvb3RDb25maWciOw0KPiAtICAgIGNhc2UgU2NzaVNldFJ1
bm5pbmdDb25maWc6ICAgICAgICAgICAgICByZXR1cm4gIlNldFJ1bm5pbmdDb25maWciOw0KPiAt
ICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlVOS05P
V04iOw0KPiAtICAgIH0NCj4gLX0NCj4gLQ0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSDQo+
IC1fX1Njc2lBZGFwdGVyQ29udHJvbFN0YXR1cygNCj4gLSAgICBfX2luIFNDU0lfQURBUFRFUl9D
T05UUk9MX1NUQVRVUyBTdGF0dXMNCj4gLSAgICApDQo+IC17DQo+IC0gICAgc3dpdGNoIChTdGF0
dXMpIHsNCj4gLSAgICBjYXNlIFNjc2lBZGFwdGVyQ29udHJvbFN1Y2Nlc3M6ICAgICAgICAgcmV0
dXJuICJTdWNjZXNzIjsNCj4gLSAgICBjYXNlIFNjc2lBZGFwdGVyQ29udHJvbFVuc3VjY2Vzc2Z1
bDogICAgcmV0dXJuICJVbnN1Y2Nlc3NmdWwiOw0KPiAtICAgIGRlZmF1bHQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlVOS05PV04iOw0KPiAtICAgIH0NCj4gLX0NCj4g
LQ0KPiAgSFdfSU5JVElBTElaRSAgICAgICBId0luaXRpYWxpemU7DQo+IA0KPiAgQk9PTEVBTg0K
PiBAQCAtNDY3LDcgKzQzOCw3IEBAIEh3SW5pdGlhbGl6ZSgNCj4gICAgICBfX2luIFBWT0lEICAg
SHdEZXZpY2VFeHRlbnNpb24NCj4gICAgICApDQo+ICB7DQo+IC0gICAgVHJhY2UoIigweCVwKSBA
JWQgPC0tLT4gVFJVRVxuIiwgSHdEZXZpY2VFeHRlbnNpb24sDQo+IEtlR2V0Q3VycmVudElycWwo
KSk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihId0RldmljZUV4dGVuc2lvbik7DQo+
ICAgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiBAQCAtNDgyLDIxICs0NTMsNiBAQCBId0lu
dGVycnVwdCgNCj4gICAgICByZXR1cm4gVFJVRTsNCj4gIH0NCj4gDQo+IC1IV19SRVNFVF9CVVMg
ICAgICAgIEh3UmVzZXRCdXM7DQo+IC0NCj4gLUJPT0xFQU4NCj4gLUh3UmVzZXRCdXMoDQo+IC0g
ICAgX19pbiBQVk9JRCAgIEh3RGV2aWNlRXh0ZW5zaW9uLA0KPiAtICAgIF9faW4gVUxPTkcgICBQ
YXRoSWQNCj4gLSAgICApDQo+IC17DQo+IC0gICAgQk9PTEVBTiBSZXRWYWw7DQo+IC0gICAgVHJh
Y2UoIigweCVwLCAlZCkgQCVkIC0tLT5cbiIsIEh3RGV2aWNlRXh0ZW5zaW9uLCBQYXRoSWQsDQo+
IEtlR2V0Q3VycmVudElycWwoKSk7DQo+IC0gICAgUmV0VmFsID0gRmRvUmVzZXRCdXMoKFBYRU5W
QkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9uKTsNCj4gLSAgICBUcmFjZSgiKDB4JXAsICVkKSBAJWQg
PC0tLSAlc1xuIiwgSHdEZXZpY2VFeHRlbnNpb24sIFBhdGhJZCwNCj4gS2VHZXRDdXJyZW50SXJx
bCgpLCBSZXRWYWwgPyAiVFJVRSIgOiAiRkFMU0UiKTsNCj4gLSAgICByZXR1cm4gUmV0VmFsOw0K
PiAtfQ0KPiAtDQo+ICBIV19BREFQVEVSX0NPTlRST0wgIEh3QWRhcHRlckNvbnRyb2w7DQo+IA0K
PiAgU0NTSV9BREFQVEVSX0NPTlRST0xfU1RBVFVTDQo+IEBAIC01MDYsMTEgKzQ2MiwzOSBAQCBI
d0FkYXB0ZXJDb250cm9sKA0KPiAgICAgIF9faW4gUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
IFBhcmFtZXRlcnMNCj4gICAgICApDQo+ICB7DQo+IC0gICAgU0NTSV9BREFQVEVSX0NPTlRST0xf
U1RBVFVTIFJldFZhbDsNCj4gLSAgICBUcmFjZSgiKDB4JXAsICVzLCAweCVwKSBAJWQgLS0tPlxu
IiwgSHdEZXZpY2VFeHRlbnNpb24sDQo+IF9fU2NzaUFkYXB0ZXJDb250cm9sVHlwZU5hbWUoQ29u
dHJvbFR5cGUpLCBQYXJhbWV0ZXJzLA0KPiBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAtICAgIFJl
dFZhbCA9IEZkb0FkYXB0ZXJDb250cm9sKChQWEVOVkJEX0ZETylId0RldmljZUV4dGVuc2lvbiwN
Cj4gQ29udHJvbFR5cGUsIFBhcmFtZXRlcnMpOw0KPiAtICAgIFRyYWNlKCIoMHglcCwgJXMsIDB4
JXApIEAlZCA8LS0tICVzXG4iLCBId0RldmljZUV4dGVuc2lvbiwNCj4gX19TY3NpQWRhcHRlckNv
bnRyb2xUeXBlTmFtZShDb250cm9sVHlwZSksIFBhcmFtZXRlcnMsDQo+IEtlR2V0Q3VycmVudEly
cWwoKSwgX19TY3NpQWRhcHRlckNvbnRyb2xTdGF0dXMoUmV0VmFsKSk7DQo+IC0gICAgcmV0dXJu
IFJldFZhbDsNCj4gKyAgICBQU0NTSV9TVVBQT1JURURfQ09OVFJPTF9UWVBFX0xJU1QgICBMaXN0
Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAr
DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihId0RldmljZUV4dGVuc2lvbik7DQo+ICsN
Cj4gKyAgICBzd2l0Y2ggKENvbnRyb2xUeXBlKSB7DQo+ICsgICAgY2FzZSBTY3NpUXVlcnlTdXBw
b3J0ZWRDb250cm9sVHlwZXM6DQo+ICsgICAgICAgIExpc3QgPSBQYXJhbWV0ZXJzOw0KPiArICAg
ICAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBMaXN0LT5NYXhDb250cm9sVHlwZTsgKytJbmRl
eCkNCj4gKyAgICAgICAgICAgIExpc3QtPlN1cHBvcnRlZFR5cGVMaXN0W0luZGV4XSA9IFRSVUU7
DQo+ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgY2FzZSBTY3NpU3RvcEFkYXB0ZXI6DQo+
ICsgICAgY2FzZSBTY3NpUmVzdGFydEFkYXB0ZXI6DQo+ICsgICAgY2FzZSBTY3NpU2V0Qm9vdENv
bmZpZzoNCj4gKyAgICBjYXNlIFNjc2lTZXRSdW5uaW5nQ29uZmlnOg0KPiArICAgIGRlZmF1bHQ6
DQo+ICsgICAgICAgIGJyZWFrOw0KPiArICAgIH0NCj4gKyAgICByZXR1cm4gU2NzaUFkYXB0ZXJD
b250cm9sU3VjY2VzczsNCj4gK30NCj4gKw0KPiArSFdfUkVTRVRfQlVTICAgICAgICBId1Jlc2V0
QnVzOw0KPiArDQo+ICtCT09MRUFODQo+ICtId1Jlc2V0QnVzKA0KPiArICAgIF9faW4gUFZPSUQg
ICBId0RldmljZUV4dGVuc2lvbiwNCj4gKyAgICBfX2luIFVMT05HICAgUGF0aElkDQo+ICsgICAg
KQ0KPiArew0KPiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoUGF0aElkKTsNCj4gKw0KPiAr
ICAgIHJldHVybiBGZG9SZXNldEJ1cygoUFhFTlZCRF9GRE8pSHdEZXZpY2VFeHRlbnNpb24pOw0K
PiAgfQ0KPiANCj4gIEhXX0ZJTkRfQURBUFRFUiAgICAgSHdGaW5kQWRhcHRlcjsNCj4gQEAgLTUy
NSwxMyArNTA5LDEyIEBAIEh3RmluZEFkYXB0ZXIoDQo+ICAgICAgT1VUIFBCT09MRUFOICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWdhaW4NCj4gICAgICApDQo+ICB7DQo+IC0gICAgVUxPTkcg
UmV0VmFsOw0KPiAtICAgIFRyYWNlKCIoMHglcCwgMHglcCwgMHglcCwgJXMsIDB4JXAsIDB4JXAp
IEAlZCAtLS0+XG4iLA0KPiBId0RldmljZUV4dGVuc2lvbiwNCj4gLSAgICAgICAgICAgICAgICBD
b250ZXh0LCBCdXNJbmZvcm1hdGlvbiwgQXJndW1lbnRTdHJpbmcsIENvbmZpZ0luZm8sIEFnYWlu
LA0KPiBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAtICAgIFJldFZhbCA9IEZkb0ZpbmRBZGFwdGVy
KChQWEVOVkJEX0ZETylId0RldmljZUV4dGVuc2lvbiwNCj4gQ29uZmlnSW5mbyk7DQo+IC0gICAg
VHJhY2UoIigweCVwLCAweCVwLCAweCVwLCAlcywgMHglcCwgMHglcCkgQCVkIDwtLS0gJWRcbiIs
DQo+IEh3RGV2aWNlRXh0ZW5zaW9uLA0KPiAtICAgICAgICAgICAgICAgIENvbnRleHQsIEJ1c0lu
Zm9ybWF0aW9uLCBBcmd1bWVudFN0cmluZywgQ29uZmlnSW5mbywgQWdhaW4sDQo+IEtlR2V0Q3Vy
cmVudElycWwoKSwgUmV0VmFsKTsNCj4gLSAgICByZXR1cm4gUmV0VmFsOw0KPiArICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoQ29udGV4dCk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRF
UihCdXNJbmZvcm1hdGlvbik7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVu
dFN0cmluZyk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBZ2Fpbik7DQo+ICsNCj4g
KyAgICByZXR1cm4gRmRvRmluZEFkYXB0ZXIoKFBYRU5WQkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9u
LCBDb25maWdJbmZvKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0K
PiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mZG8uYyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gaW5k
ZXggNDA2ZTQ5Yy4uMjQ3ZWY1MSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9mZG8uYw0KPiAr
KysgYi9zcmMveGVudmJkL2Zkby5jDQo+IEBAIC0xNzU5LDQ1ICsxNzU5LDYgQEAgRmRvUmVzZXRC
dXMoDQo+ICAgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiAtU0NTSV9BREFQVEVSX0NPTlRS
T0xfU1RBVFVTDQo+IC1GZG9BZGFwdGVyQ29udHJvbCgNCj4gLSAgICBfX2luIFBYRU5WQkRfRkRP
ICAgICAgICAgICAgICAgICBGZG8sDQo+IC0gICAgX19pbiBTQ1NJX0FEQVBURVJfQ09OVFJPTF9U
WVBFICAgQ29udHJvbFR5cGUsDQo+IC0gICAgX19pbiBQVk9JRCAgICAgICAgICAgICAgICAgICAg
ICAgUGFyYW1ldGVycw0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKEZkbyk7DQo+IC0NCj4gLSAgICBzd2l0Y2ggKENvbnRyb2xUeXBlKSB7DQo+IC0gICAgY2Fz
ZSBTY3NpUXVlcnlTdXBwb3J0ZWRDb250cm9sVHlwZXM6DQo+IC0gICAgICAgIHsNCj4gLSAgICAg
ICAgICAgIFBTQ1NJX1NVUFBPUlRFRF9DT05UUk9MX1RZUEVfTElTVCBMaXN0ID0gUGFyYW1ldGVy
czsNCj4gLQ0KPiAtI2RlZmluZSBTRVRfU1VQUE9SVEVEKF9sLCBfaSwgX3YpICAgICAgICAgICBc
DQo+IC0gICAgaWYgKF9sLT5NYXhDb250cm9sVHlwZSA+IF9pKSAgICBfbC0+U3VwcG9ydGVkVHlw
ZUxpc3RbX2ldID0gX3Y7DQo+IC0NCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlzdCwg
MCwgVFJVRSk7ICAgLy8gU2NzaVF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5cGVzDQo+IC0gICAgICAg
ICAgICBTRVRfU1VQUE9SVEVEKExpc3QsIDEsIEZBTFNFKTsgIC8vIFNjc2lTdG9wQWRhcHRlcg0K
PiAtICAgICAgICAgICAgU0VUX1NVUFBPUlRFRChMaXN0LCAyLCBGQUxTRSk7ICAvLyBTY3NpUmVz
dGFydEFkYXB0ZXINCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlzdCwgMywgRkFMU0Up
OyAgLy8gU2NzaVNldEJvb3RDb25maWcNCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlz
dCwgNCwgRkFMU0UpOyAgLy8gU2NzaVNldFJ1bm5pbmdDb25maWcNCj4gLQ0KPiAtI3VuZGVmIFNF
VF9TVVBQT1JURUQNCj4gLQ0KPiAtICAgICAgICB9IGJyZWFrOw0KPiAtICAgIGNhc2UgU2NzaVN0
b3BBZGFwdGVyOg0KPiAtICAgIGNhc2UgU2NzaVJlc3RhcnRBZGFwdGVyOg0KPiAtICAgIGNhc2Ug
U2NzaVNldEJvb3RDb25maWc6DQo+IC0gICAgY2FzZSBTY3NpU2V0UnVubmluZ0NvbmZpZzoNCj4g
LSAgICAgICAgew0KPiAtICAgICAgICAgICAgVHJhY2UoIjwtLS0tPiAlcyAoJWQpXG4iLA0KPiBT
Y3NpQWRhcHRlckNvbnRyb2xUeXBlTmFtZShDb250cm9sVHlwZSksIEtlR2V0Q3VycmVudElycWwo
KSk7DQo+IC0gICAgICAgIH0gYnJlYWs7DQo+IC0gICAgZGVmYXVsdDoNCj4gLSAgICAgICAgYnJl
YWs7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiBTY3NpQWRhcHRlckNvbnRyb2xTdWNjZXNzOw0K
PiAtfQ0KPiAtDQo+ICBzdGF0aWMgVk9JRA0KPiAgRmRvVW5wbHVnUmVxdWVzdCgNCj4gICAgICBJ
TiAgUFhFTlZCRF9GRE8gRmRvLA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mZG8uaCBiL3Ny
Yy94ZW52YmQvZmRvLmgNCj4gaW5kZXggYzE5NzRlYy4uYTllMzZjMiAxMDA2NDQNCj4gLS0tIGEv
c3JjL3hlbnZiZC9mZG8uaA0KPiArKysgYi9zcmMveGVudmJkL2Zkby5oDQo+IEBAIC0xMDksMTMg
KzEwOSw2IEBAIEZkb1Jlc2V0QnVzKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAg
ICAgICAgIEZkbw0KPiAgICAgICk7DQo+IA0KPiAtZXh0ZXJuIFNDU0lfQURBUFRFUl9DT05UUk9M
X1NUQVRVUw0KPiAtRmRvQWRhcHRlckNvbnRyb2woDQo+IC0gICAgX19pbiBQWEVOVkJEX0ZETyAg
ICAgICAgICAgICAgICAgRmRvLA0KPiAtICAgIF9faW4gU0NTSV9BREFQVEVSX0NPTlRST0xfVFlQ
RSAgIENvbnRyb2xUeXBlLA0KPiAtICAgIF9faW4gUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
IFBhcmFtZXRlcnMNCj4gLSAgICApOw0KPiAtDQo+ICBleHRlcm4gVUxPTkcNCj4gIEZkb0ZpbmRB
ZGFwdGVyKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4g
LS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:41:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:41:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhh2-0003VE-5q; Mon, 09 May 2016 09:41:36 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhh0-0003V3-H1
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:41:34 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 E9/F0-21979-D4B50375; Mon, 09 May 2016 09:41:33 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQtc32iD
 cYPJFQYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasf/hN+aCuyEVE9ecYGpgvBDcxcjJISHgJ/F1
 xQJmEJtNQEdi6dH5TCC2iECBxPf388DizAJqEtf3d7GC2MICbhJ/Lq5m62LkAKpxl7jeoA1Rb
 iTR+eocO4jNIqAi0bbrMFgrL1DJ4ddfwEYKCdRJPH57jA3E5hRwlZhzvBNsJKOArMSXxtVQq8
 Qlbj2BOEFCQEBiyZ7zzBC2qMTLx/9YIWwDia1L97GAnMAsoCmxfpc+RKuixJTuh+wQawUlTs5
 8wgKxVkViy+MDUGO4JVZ+/sMygVF0FpJtsxAmzUIyaRaSSQsYWVYxahSnFpWlFukaWuglFWWm
 Z5TkJmbm6BoamOrlphYXJ6an5iQmFesl5+duYgRGCQMQ7GBs2u55iFGSg0lJlNeVUS9ciC8pP
 6UyI7E4I76oNCe1+BCjDAeHkgTv6iiDcCHBotT01Iq0zBxgvMKkJTh4lER4d4OkeYsLEnOLM9
 MhUqcYFaXEeQtBEgIgiYzSPLg2WIq4xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWFePZApPJl
 5JXDTXwEtZgJaLMemD7K4JBEhJdXAuPnzle9T/LOvS6Z73bx89UFQ/3ODg7YezBsZH0UoPd40
 +w7/lv4Kg8Dv8fuc94bKZ028o5Biu/+g6fP7eRfdpTbOTv8ZILc1yM7+z3bmqJ+VWso503vSr
 1ypk3Y9bXVozr9vX/oWcc/qX7Wr+9Miidm/1Pa37JQ4vPzv0z7r7Q+fXfkl1W3wu0CJpTgj0V
 CLuag4EQD+FnWJDAMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1462786893!26354447!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34438 invoked from network); 9 May 2016 09:41:33 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:41:33 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077051"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/9] Simplify StorPort entry points
Thread-Index: AQHRnKIfyTEgb6pZw0CRyMNxaJir+J+wdJEw
Date: Mon, 9 May 2016 09:41:32 +0000
Message-ID: <ff231cc277de498ba8a91c522513c1a9@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-3-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-3-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/9] Simplify StorPort entry points
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAyLzldIFNpbXBsaWZ5IFN0b3JQb3J0IGVudHJ5IHBvaW50
cw0KPiANCj4gUmVtb3ZlIGEgbG90IG9mIGRlYnVnIGxvZ2dpbmcgZnJvbSBzdG9ycG9ydCBlbnRy
eSBwb2ludHMgYW5kIHJlbW92ZQ0KPiBId0FkYXB0ZXJDb250cm9sIGZyb20gdGhlIEZkbyBjb2Rl
LiBId0FkYXB0ZXJDb250cm9sIGFjY2VwdHMgYWxsDQo+IG9wZXJhdGlvbnMNCj4gYW5kIGlnbm9y
ZXMgYWxsIGJ1dCBRdWVyeVN1cHBvcnRlZENvbnRyb2xUeXBlcw0KPiANCj4gU2lnbmVkLW9mZi1i
eTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBE
dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQv
ZHJpdmVyLmMgfCA5NyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgICAgfCAzOSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZmRvLmggICAgfCAgNyAtLS0tDQo+ICAzIGZpbGVzIGNo
YW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiBpbmRleCBl
YjE3NDc1Li5jZmY2MDM0IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5jDQo+ICsr
KyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTQzMSwzNSArNDMxLDYgQEAgRHJpdmVyRm9y
bWF0RnJlZSgNCj4gICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WQkRfUE9P
TF9UQUcpOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAt
Ly8gU3RvclBvcnQgcmVkaXJlY3Rpb25zDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgUENIQVINCj4g
LV9fU2NzaUFkYXB0ZXJDb250cm9sVHlwZU5hbWUoDQo+IC0gICAgX19pbiBTQ1NJX0FEQVBURVJf
Q09OVFJPTF9UWVBFICAgQ29udHJvbFR5cGUNCj4gLSAgICApDQo+IC17DQo+IC0gICAgc3dpdGNo
IChDb250cm9sVHlwZSkgew0KPiAtICAgIGNhc2UgU2NzaVF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5
cGVzOiAgICByZXR1cm4NCj4gIlF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5cGVzIjsNCj4gLSAgICBj
YXNlIFNjc2lTdG9wQWRhcHRlcjogICAgICAgICAgICAgICAgICAgcmV0dXJuICJTdG9wQWRhcHRl
ciI7DQo+IC0gICAgY2FzZSBTY3NpUmVzdGFydEFkYXB0ZXI6ICAgICAgICAgICAgICAgIHJldHVy
biAiUmVzdGFydEFkYXB0ZXIiOw0KPiAtICAgIGNhc2UgU2NzaVNldEJvb3RDb25maWc6ICAgICAg
ICAgICAgICAgICByZXR1cm4gIlNldEJvb3RDb25maWciOw0KPiAtICAgIGNhc2UgU2NzaVNldFJ1
bm5pbmdDb25maWc6ICAgICAgICAgICAgICByZXR1cm4gIlNldFJ1bm5pbmdDb25maWciOw0KPiAt
ICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlVOS05P
V04iOw0KPiAtICAgIH0NCj4gLX0NCj4gLQ0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSDQo+
IC1fX1Njc2lBZGFwdGVyQ29udHJvbFN0YXR1cygNCj4gLSAgICBfX2luIFNDU0lfQURBUFRFUl9D
T05UUk9MX1NUQVRVUyBTdGF0dXMNCj4gLSAgICApDQo+IC17DQo+IC0gICAgc3dpdGNoIChTdGF0
dXMpIHsNCj4gLSAgICBjYXNlIFNjc2lBZGFwdGVyQ29udHJvbFN1Y2Nlc3M6ICAgICAgICAgcmV0
dXJuICJTdWNjZXNzIjsNCj4gLSAgICBjYXNlIFNjc2lBZGFwdGVyQ29udHJvbFVuc3VjY2Vzc2Z1
bDogICAgcmV0dXJuICJVbnN1Y2Nlc3NmdWwiOw0KPiAtICAgIGRlZmF1bHQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlVOS05PV04iOw0KPiAtICAgIH0NCj4gLX0NCj4g
LQ0KPiAgSFdfSU5JVElBTElaRSAgICAgICBId0luaXRpYWxpemU7DQo+IA0KPiAgQk9PTEVBTg0K
PiBAQCAtNDY3LDcgKzQzOCw3IEBAIEh3SW5pdGlhbGl6ZSgNCj4gICAgICBfX2luIFBWT0lEICAg
SHdEZXZpY2VFeHRlbnNpb24NCj4gICAgICApDQo+ICB7DQo+IC0gICAgVHJhY2UoIigweCVwKSBA
JWQgPC0tLT4gVFJVRVxuIiwgSHdEZXZpY2VFeHRlbnNpb24sDQo+IEtlR2V0Q3VycmVudElycWwo
KSk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihId0RldmljZUV4dGVuc2lvbik7DQo+
ICAgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiBAQCAtNDgyLDIxICs0NTMsNiBAQCBId0lu
dGVycnVwdCgNCj4gICAgICByZXR1cm4gVFJVRTsNCj4gIH0NCj4gDQo+IC1IV19SRVNFVF9CVVMg
ICAgICAgIEh3UmVzZXRCdXM7DQo+IC0NCj4gLUJPT0xFQU4NCj4gLUh3UmVzZXRCdXMoDQo+IC0g
ICAgX19pbiBQVk9JRCAgIEh3RGV2aWNlRXh0ZW5zaW9uLA0KPiAtICAgIF9faW4gVUxPTkcgICBQ
YXRoSWQNCj4gLSAgICApDQo+IC17DQo+IC0gICAgQk9PTEVBTiBSZXRWYWw7DQo+IC0gICAgVHJh
Y2UoIigweCVwLCAlZCkgQCVkIC0tLT5cbiIsIEh3RGV2aWNlRXh0ZW5zaW9uLCBQYXRoSWQsDQo+
IEtlR2V0Q3VycmVudElycWwoKSk7DQo+IC0gICAgUmV0VmFsID0gRmRvUmVzZXRCdXMoKFBYRU5W
QkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9uKTsNCj4gLSAgICBUcmFjZSgiKDB4JXAsICVkKSBAJWQg
PC0tLSAlc1xuIiwgSHdEZXZpY2VFeHRlbnNpb24sIFBhdGhJZCwNCj4gS2VHZXRDdXJyZW50SXJx
bCgpLCBSZXRWYWwgPyAiVFJVRSIgOiAiRkFMU0UiKTsNCj4gLSAgICByZXR1cm4gUmV0VmFsOw0K
PiAtfQ0KPiAtDQo+ICBIV19BREFQVEVSX0NPTlRST0wgIEh3QWRhcHRlckNvbnRyb2w7DQo+IA0K
PiAgU0NTSV9BREFQVEVSX0NPTlRST0xfU1RBVFVTDQo+IEBAIC01MDYsMTEgKzQ2MiwzOSBAQCBI
d0FkYXB0ZXJDb250cm9sKA0KPiAgICAgIF9faW4gUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
IFBhcmFtZXRlcnMNCj4gICAgICApDQo+ICB7DQo+IC0gICAgU0NTSV9BREFQVEVSX0NPTlRST0xf
U1RBVFVTIFJldFZhbDsNCj4gLSAgICBUcmFjZSgiKDB4JXAsICVzLCAweCVwKSBAJWQgLS0tPlxu
IiwgSHdEZXZpY2VFeHRlbnNpb24sDQo+IF9fU2NzaUFkYXB0ZXJDb250cm9sVHlwZU5hbWUoQ29u
dHJvbFR5cGUpLCBQYXJhbWV0ZXJzLA0KPiBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAtICAgIFJl
dFZhbCA9IEZkb0FkYXB0ZXJDb250cm9sKChQWEVOVkJEX0ZETylId0RldmljZUV4dGVuc2lvbiwN
Cj4gQ29udHJvbFR5cGUsIFBhcmFtZXRlcnMpOw0KPiAtICAgIFRyYWNlKCIoMHglcCwgJXMsIDB4
JXApIEAlZCA8LS0tICVzXG4iLCBId0RldmljZUV4dGVuc2lvbiwNCj4gX19TY3NpQWRhcHRlckNv
bnRyb2xUeXBlTmFtZShDb250cm9sVHlwZSksIFBhcmFtZXRlcnMsDQo+IEtlR2V0Q3VycmVudEly
cWwoKSwgX19TY3NpQWRhcHRlckNvbnRyb2xTdGF0dXMoUmV0VmFsKSk7DQo+IC0gICAgcmV0dXJu
IFJldFZhbDsNCj4gKyAgICBQU0NTSV9TVVBQT1JURURfQ09OVFJPTF9UWVBFX0xJU1QgICBMaXN0
Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAr
DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihId0RldmljZUV4dGVuc2lvbik7DQo+ICsN
Cj4gKyAgICBzd2l0Y2ggKENvbnRyb2xUeXBlKSB7DQo+ICsgICAgY2FzZSBTY3NpUXVlcnlTdXBw
b3J0ZWRDb250cm9sVHlwZXM6DQo+ICsgICAgICAgIExpc3QgPSBQYXJhbWV0ZXJzOw0KPiArICAg
ICAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBMaXN0LT5NYXhDb250cm9sVHlwZTsgKytJbmRl
eCkNCj4gKyAgICAgICAgICAgIExpc3QtPlN1cHBvcnRlZFR5cGVMaXN0W0luZGV4XSA9IFRSVUU7
DQo+ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgY2FzZSBTY3NpU3RvcEFkYXB0ZXI6DQo+
ICsgICAgY2FzZSBTY3NpUmVzdGFydEFkYXB0ZXI6DQo+ICsgICAgY2FzZSBTY3NpU2V0Qm9vdENv
bmZpZzoNCj4gKyAgICBjYXNlIFNjc2lTZXRSdW5uaW5nQ29uZmlnOg0KPiArICAgIGRlZmF1bHQ6
DQo+ICsgICAgICAgIGJyZWFrOw0KPiArICAgIH0NCj4gKyAgICByZXR1cm4gU2NzaUFkYXB0ZXJD
b250cm9sU3VjY2VzczsNCj4gK30NCj4gKw0KPiArSFdfUkVTRVRfQlVTICAgICAgICBId1Jlc2V0
QnVzOw0KPiArDQo+ICtCT09MRUFODQo+ICtId1Jlc2V0QnVzKA0KPiArICAgIF9faW4gUFZPSUQg
ICBId0RldmljZUV4dGVuc2lvbiwNCj4gKyAgICBfX2luIFVMT05HICAgUGF0aElkDQo+ICsgICAg
KQ0KPiArew0KPiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoUGF0aElkKTsNCj4gKw0KPiAr
ICAgIHJldHVybiBGZG9SZXNldEJ1cygoUFhFTlZCRF9GRE8pSHdEZXZpY2VFeHRlbnNpb24pOw0K
PiAgfQ0KPiANCj4gIEhXX0ZJTkRfQURBUFRFUiAgICAgSHdGaW5kQWRhcHRlcjsNCj4gQEAgLTUy
NSwxMyArNTA5LDEyIEBAIEh3RmluZEFkYXB0ZXIoDQo+ICAgICAgT1VUIFBCT09MRUFOICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWdhaW4NCj4gICAgICApDQo+ICB7DQo+IC0gICAgVUxPTkcg
UmV0VmFsOw0KPiAtICAgIFRyYWNlKCIoMHglcCwgMHglcCwgMHglcCwgJXMsIDB4JXAsIDB4JXAp
IEAlZCAtLS0+XG4iLA0KPiBId0RldmljZUV4dGVuc2lvbiwNCj4gLSAgICAgICAgICAgICAgICBD
b250ZXh0LCBCdXNJbmZvcm1hdGlvbiwgQXJndW1lbnRTdHJpbmcsIENvbmZpZ0luZm8sIEFnYWlu
LA0KPiBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAtICAgIFJldFZhbCA9IEZkb0ZpbmRBZGFwdGVy
KChQWEVOVkJEX0ZETylId0RldmljZUV4dGVuc2lvbiwNCj4gQ29uZmlnSW5mbyk7DQo+IC0gICAg
VHJhY2UoIigweCVwLCAweCVwLCAweCVwLCAlcywgMHglcCwgMHglcCkgQCVkIDwtLS0gJWRcbiIs
DQo+IEh3RGV2aWNlRXh0ZW5zaW9uLA0KPiAtICAgICAgICAgICAgICAgIENvbnRleHQsIEJ1c0lu
Zm9ybWF0aW9uLCBBcmd1bWVudFN0cmluZywgQ29uZmlnSW5mbywgQWdhaW4sDQo+IEtlR2V0Q3Vy
cmVudElycWwoKSwgUmV0VmFsKTsNCj4gLSAgICByZXR1cm4gUmV0VmFsOw0KPiArICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoQ29udGV4dCk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRF
UihCdXNJbmZvcm1hdGlvbik7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVu
dFN0cmluZyk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBZ2Fpbik7DQo+ICsNCj4g
KyAgICByZXR1cm4gRmRvRmluZEFkYXB0ZXIoKFBYRU5WQkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9u
LCBDb25maWdJbmZvKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0K
PiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mZG8uYyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gaW5k
ZXggNDA2ZTQ5Yy4uMjQ3ZWY1MSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9mZG8uYw0KPiAr
KysgYi9zcmMveGVudmJkL2Zkby5jDQo+IEBAIC0xNzU5LDQ1ICsxNzU5LDYgQEAgRmRvUmVzZXRC
dXMoDQo+ICAgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiAtU0NTSV9BREFQVEVSX0NPTlRS
T0xfU1RBVFVTDQo+IC1GZG9BZGFwdGVyQ29udHJvbCgNCj4gLSAgICBfX2luIFBYRU5WQkRfRkRP
ICAgICAgICAgICAgICAgICBGZG8sDQo+IC0gICAgX19pbiBTQ1NJX0FEQVBURVJfQ09OVFJPTF9U
WVBFICAgQ29udHJvbFR5cGUsDQo+IC0gICAgX19pbiBQVk9JRCAgICAgICAgICAgICAgICAgICAg
ICAgUGFyYW1ldGVycw0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKEZkbyk7DQo+IC0NCj4gLSAgICBzd2l0Y2ggKENvbnRyb2xUeXBlKSB7DQo+IC0gICAgY2Fz
ZSBTY3NpUXVlcnlTdXBwb3J0ZWRDb250cm9sVHlwZXM6DQo+IC0gICAgICAgIHsNCj4gLSAgICAg
ICAgICAgIFBTQ1NJX1NVUFBPUlRFRF9DT05UUk9MX1RZUEVfTElTVCBMaXN0ID0gUGFyYW1ldGVy
czsNCj4gLQ0KPiAtI2RlZmluZSBTRVRfU1VQUE9SVEVEKF9sLCBfaSwgX3YpICAgICAgICAgICBc
DQo+IC0gICAgaWYgKF9sLT5NYXhDb250cm9sVHlwZSA+IF9pKSAgICBfbC0+U3VwcG9ydGVkVHlw
ZUxpc3RbX2ldID0gX3Y7DQo+IC0NCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlzdCwg
MCwgVFJVRSk7ICAgLy8gU2NzaVF1ZXJ5U3VwcG9ydGVkQ29udHJvbFR5cGVzDQo+IC0gICAgICAg
ICAgICBTRVRfU1VQUE9SVEVEKExpc3QsIDEsIEZBTFNFKTsgIC8vIFNjc2lTdG9wQWRhcHRlcg0K
PiAtICAgICAgICAgICAgU0VUX1NVUFBPUlRFRChMaXN0LCAyLCBGQUxTRSk7ICAvLyBTY3NpUmVz
dGFydEFkYXB0ZXINCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlzdCwgMywgRkFMU0Up
OyAgLy8gU2NzaVNldEJvb3RDb25maWcNCj4gLSAgICAgICAgICAgIFNFVF9TVVBQT1JURUQoTGlz
dCwgNCwgRkFMU0UpOyAgLy8gU2NzaVNldFJ1bm5pbmdDb25maWcNCj4gLQ0KPiAtI3VuZGVmIFNF
VF9TVVBQT1JURUQNCj4gLQ0KPiAtICAgICAgICB9IGJyZWFrOw0KPiAtICAgIGNhc2UgU2NzaVN0
b3BBZGFwdGVyOg0KPiAtICAgIGNhc2UgU2NzaVJlc3RhcnRBZGFwdGVyOg0KPiAtICAgIGNhc2Ug
U2NzaVNldEJvb3RDb25maWc6DQo+IC0gICAgY2FzZSBTY3NpU2V0UnVubmluZ0NvbmZpZzoNCj4g
LSAgICAgICAgew0KPiAtICAgICAgICAgICAgVHJhY2UoIjwtLS0tPiAlcyAoJWQpXG4iLA0KPiBT
Y3NpQWRhcHRlckNvbnRyb2xUeXBlTmFtZShDb250cm9sVHlwZSksIEtlR2V0Q3VycmVudElycWwo
KSk7DQo+IC0gICAgICAgIH0gYnJlYWs7DQo+IC0gICAgZGVmYXVsdDoNCj4gLSAgICAgICAgYnJl
YWs7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiBTY3NpQWRhcHRlckNvbnRyb2xTdWNjZXNzOw0K
PiAtfQ0KPiAtDQo+ICBzdGF0aWMgVk9JRA0KPiAgRmRvVW5wbHVnUmVxdWVzdCgNCj4gICAgICBJ
TiAgUFhFTlZCRF9GRE8gRmRvLA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mZG8uaCBiL3Ny
Yy94ZW52YmQvZmRvLmgNCj4gaW5kZXggYzE5NzRlYy4uYTllMzZjMiAxMDA2NDQNCj4gLS0tIGEv
c3JjL3hlbnZiZC9mZG8uaA0KPiArKysgYi9zcmMveGVudmJkL2Zkby5oDQo+IEBAIC0xMDksMTMg
KzEwOSw2IEBAIEZkb1Jlc2V0QnVzKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAg
ICAgICAgIEZkbw0KPiAgICAgICk7DQo+IA0KPiAtZXh0ZXJuIFNDU0lfQURBUFRFUl9DT05UUk9M
X1NUQVRVUw0KPiAtRmRvQWRhcHRlckNvbnRyb2woDQo+IC0gICAgX19pbiBQWEVOVkJEX0ZETyAg
ICAgICAgICAgICAgICAgRmRvLA0KPiAtICAgIF9faW4gU0NTSV9BREFQVEVSX0NPTlRST0xfVFlQ
RSAgIENvbnRyb2xUeXBlLA0KPiAtICAgIF9faW4gUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
IFBhcmFtZXRlcnMNCj4gLSAgICApOw0KPiAtDQo+ICBleHRlcm4gVUxPTkcNCj4gIEZkb0ZpbmRB
ZGFwdGVyKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4g
LS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:45:52 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:45:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhlA-0003gn-Gg; Mon, 09 May 2016 09:45:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhl8-0003gh-RU
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:45:51 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 3B/B7-03651-D4C50375; Mon, 09 May 2016 09:45:49 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRWlGSWpSXmKPExsWyU9JRQtc3xiD
 cYMo2UYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacfXPNcaC7wcZK54eP8TWwLhlP2MXIyeHhICf
 xKvV11hAbDYBHYmlR+czgdgiAgUS39/PYwaxmQXUJK7v72IFsYUFnCV6X61jg6hxkfhx5AY7h
 G0kcfvoTDCbRUBF4s19iDivgLvEvcZ+sJlCAnUSM8+2gMU5BVwltt68AxZnFJCV+NK4GmqXuM
 StJxA3SAgISCzZc54ZwhaVePn4HyuEbSCxdek+oJs5gOo1Jdbv0odoVZSY0v0Qaq2gxMmZT1g
 g1qpIbHl8AGoMt8TKz39YJjCKzkKybRbCpFlIJs1CMmkBI8sqRo3i1KKy1CJdQwu9pKLM9IyS
 3MTMHF1DA2O93NTi4sT01JzEpGK95PzcTYzAWKlnYGDcwfj7tOchRkkOJiVRXldGvXAhvqT8l
 MqMxOKM+KLSnNTiQ4wyHBxKEryrowzChQSLUtNTK9Iyc4BRC5OW4OBREuHdDZLmLS5IzC3OTI
 dInWJUlBLnfQySEABJZJTmwbXBEsUlRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK8D0Gm8GT
 mlcBNfwW0mAlosRybPsjikkSElFQD4/y2Y6l3z7iXHj+wvUbW+M89vfhJvtrmEpE8wde5PqhM
 EnwZ1r8vd1Ja1W+uoyWWk7r5BbdKScTdW8TMsNT1wIRZZ++G7/lorSez4vU036tzL2zYd/lqW
 dAdMQbbSM4IxpCZzu7ZzNL2glNYlbaktnznvBgjN+nWZnv99TPsraMNPJPkTAQ2KbEUZyQaaj
 EXFScCABihz6APAwAA
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1462787149!39108855!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28500 invoked from network); 9 May 2016 09:45:49 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:45:49 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077263"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/9] Refactor Pnp/Power handlers
Thread-Index: AQHRnKIhXIs5s9/rHkW3u7WMve0QYZ+wdcUQ
Date: Mon, 9 May 2016 09:45:48 +0000
Message-ID: <01c8405104e948a3bd486a917605ab2f@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-4-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-4-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/9] Refactor Pnp/Power handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAzLzldIFJlZmFjdG9yIFBucC9Qb3dlciBoYW5kbGVycw0K
PiANCj4gTW92ZXMgdGhlIG1hcHBpbmcgb2YgRGV2aWNlT2JqZWN0IHRvIFBkbyBpbnRvIHRoZSBG
ZG8gY29kZQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgfCAxMjcgKysrKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQo+ICBzcmMveGVudmJkL2Zkby5jICAgIHwgMjQ4ICsrKysrKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tDQo+ICBzcmMveGVudmJk
L2Zkby5oICAgIHwgIDIwICsrLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z
KCspLCAyNTcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2
ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gaW5kZXggY2ZmNjAzNC4uYzUzNTJkMCAxMDA2
NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiArKysgYi9zcmMveGVudmJkL2RyaXZl
ci5jDQo+IEBAIC00MiwxMCArNDIsNiBAQA0KPiAgI2luY2x1ZGUgPHhlbmNyc2hfaW50ZXJmYWNl
Lmg+DQo+ICAjaW5jbHVkZSA8eGVudmJkLW50c3Ryc2FmZS5oPg0KPiANCj4gLSNkZWZpbmUgSVNf
TlVMTCAgICAgICAgICgoVUxPTkcpJ2xsdW4nKQ0KPiAtI2RlZmluZSBJU19GRE8gICAgICAgICAg
KChVTE9ORyknb2RmJykNCj4gLSNkZWZpbmUgSVNfUERPICAgICAgICAgICgoVUxPTkcpJ29kcCcp
DQo+IC0NCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gIFhFTlZCRF9QQVJBTUVURVJT
ICAgRHJpdmVyUGFyYW1ldGVyczsNCj4gIEhBTkRMRSAgICAgICAgICAgICAgRHJpdmVyU3RhdHVz
S2V5Ow0KPiANCj4gQEAgLTI2MSw2NSArMjU3LDI2IEBAIERyaXZlclVubGlua0ZkbygNCj4gICAg
ICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRMb2NrLCBJcnFsKTsNCj4gIH0NCj4gDQo+IC1f
X2NoZWNrUmV0dXJuDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVUxPTkcNCj4gLURyaXZlckdldEZk
b09yUGRvKA0KPiAtICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgRGV2aWNlT2JqZWN0
LA0KPiAtICAgIF9fb3V0IFBYRU5WQkRfRkRPKiAgICAgICAgICAgX0ZkbywNCj4gLSAgICBfX291
dCBQWEVOVkJEX1BETyogICAgICAgICAgIF9QZG8NCj4gLSAgICApDQo+IC17DQo+IC0gICAgS0lS
UUwgICAgICAgSXJxbDsNCj4gLSAgICBVTE9ORyAgICAgICBSZXN1bHQgPSBJU19OVUxMOw0KPiAt
DQo+IC0gICAgKl9GZG8gPSBOVUxMOw0KPiAtICAgICpfUGRvID0gTlVMTDsNCj4gLQ0KPiAtICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssICZJcnFsKTsNCj4gLSAgICBpZiAoX19Y
ZW52YmRGZG8pIHsNCj4gLSAgICAgICAgUFhFTlZCRF9GRE8gRmRvID0gX19YZW52YmRGZG87DQo+
IC0gICAgICAgIGlmIChGZG9SZWZlcmVuY2UoRmRvKSA+IDApIHsNCj4gLSAgICAgICAgICAgIGlm
IChGZG9HZXREZXZpY2VPYmplY3QoRmRvKSA9PSBEZXZpY2VPYmplY3QpIHsNCj4gLSAgICAgICAg
ICAgICAgICAqX0ZkbyA9IEZkbzsNCj4gLSAgICAgICAgICAgICAgICBSZXN1bHQgPSBJU19GRE87
DQo+IC0gICAgICAgICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIEtlUmVsZWFzZVNw
aW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0KPiAtDQo+IC0gICAgICAgICAgICAgICAgKl9Q
ZG8gPSBGZG9HZXRQZG9Gcm9tRGV2aWNlT2JqZWN0KEZkbywgRGV2aWNlT2JqZWN0KTsNCj4gLSAg
ICAgICAgICAgICAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiAtICAgICAgICAgICAgICAgIHJl
dHVybiBJU19QRE87DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+
IC0gICAgS2VSZWxlYXNlU3BpbkxvY2soJl9fWGVudmJkTG9jaywgSXJxbCk7DQo+IC0NCj4gLSAg
ICByZXR1cm4gUmVzdWx0Ow0KPiAtfQ0KPiAtX19jaGVja1JldHVybg0KPiAtc3RhdGljIEZPUkNF
SU5MSU5FIE5UU1RBVFVTDQo+IC1Ecml2ZXJNYXBQZG8oDQo+IC0gICAgX19pbiBQREVWSUNFX09C
SkVDVCAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+IC0gICAgX19pbiBQSVJQICAgICAgICAgICAg
ICAgICAgICBJcnANCj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICtfX0RyaXZlckdl
dEZkbygNCj4gKyAgICBJTiAgUERFVklDRV9PQkpFQ1QgICAgICBEZXZpY2VPYmplY3QsDQo+ICsg
ICAgT1VUIFBYRU5WQkRfRkRPICAgICAgICAgKkZkbw0KPiAgICAgICkNCj4gIHsNCj4gICAgICBL
SVJRTCAgICAgICBJcnFsOw0KPiAtICAgIE5UU1RBVFVTICAgIFN0YXR1czsNCj4gKyAgICBCT09M
RUFOICAgICBJc0ZkbyA9IEZBTFNFOw0KPiANCj4gICAgICBLZUFjcXVpcmVTcGluTG9jaygmX19Y
ZW52YmRMb2NrLCAmSXJxbCk7DQo+IC0gICAgaWYgKF9fWGVudmJkRmRvICYmIEZkb0dldERldmlj
ZU9iamVjdChfX1hlbnZiZEZkbykgIT0NCj4gRGV2aWNlT2JqZWN0KSB7DQo+IC0gICAgICAgIFBY
RU5WQkRfRkRPIEZkbyA9IF9fWGVudmJkRmRvOw0KPiAtICAgICAgICBpZiAoRmRvUmVmZXJlbmNl
KEZkbykgPiAwKSB7DQo+IC0gICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRM
b2NrLCBJcnFsKTsNCj4gLSAgICAgICAgICAgIFN0YXR1cyA9IEZkb01hcERldmljZU9iamVjdFRv
UGRvKEZkbywgRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAtICAgICAgICAgICAgRmRvRGVyZWZlcmVu
Y2UoRmRvKTsNCj4gLSAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gKyAgICAqRmRvID0gX19YZW52
YmRGZG87DQo+ICsgICAgaWYgKCpGZG8pIHsNCj4gKyAgICAgICAgRmRvUmVmZXJlbmNlKCpGZG8p
Ow0KPiArICAgICAgICBpZiAoRmRvR2V0RGV2aWNlT2JqZWN0KCpGZG8pID09IERldmljZU9iamVj
dCkgew0KPiArICAgICAgICAgICAgSXNGZG8gPSBUUlVFOw0KPiAgICAgICAgICB9DQo+ICAgICAg
fQ0KPiAgICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0KPiAtICAg
IFN0YXR1cyA9IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gDQo+IC1k
b25lOg0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAgcmV0dXJuIElzRmRvOw0KPiAgfQ0K
PiANCj4gIFZPSUQNCj4gQEAgLTU2Myw5ICs1MjAsNiBAQCBId1N0YXJ0SW8oDQo+ICAgICAgcmV0
dXJuIEZkb1N0YXJ0SW8oKFBYRU5WQkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9uLCBTcmIpOw0KPiAg
fQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gRHJpdmVyIFJl
ZGlyZWN0aW9ucw0KPiAtDQo+ICBfX2Rydl9kaXNwYXRjaFR5cGUoSVJQX01KX1BOUCkNCj4gIERS
SVZFUl9ESVNQQVRDSCAgICAgICAgICAgICBEaXNwYXRjaFBucDsNCj4gDQo+IEBAIC01NzUsMzQg
KzUyOSwxNSBAQCBEaXNwYXRjaFBucCgNCj4gICAgICBJTiBQSVJQICAgICAgICAgICAgIElycA0K
PiAgICAgICkNCj4gIHsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gLSAg
ICBVTE9ORyAgICAgICAgICAgICAgIElzRmRvOw0KPiAgICAgIFBYRU5WQkRfRkRPICAgICAgICAg
RmRvOw0KPiAtICAgIFBYRU5WQkRfUERPICAgICAgICAgUGRvOw0KPiAtDQo+IC0gICAgSXNGZG8g
PSBEcml2ZXJHZXRGZG9PclBkbyhEZXZpY2VPYmplY3QsICZGZG8sICZQZG8pOw0KPiANCj4gLSAg
ICBzd2l0Y2ggKElzRmRvKSB7DQo+IC0gICAgY2FzZSBJU19GRE86DQo+IC0gICAgICAgIFN0YXR1
cyA9IEZkb0Rpc3BhdGNoUG5wKEZkbywgRGV2aWNlT2JqZWN0LCBJcnApOyAvLyBkcm9wcyBGZG8N
Cj4gcmVmZXJlbmNlDQo+IC0gICAgICAgIGJyZWFrOw0KPiArICAgIGlmIChfX0RyaXZlckdldEZk
byhEZXZpY2VPYmplY3QsICZGZG8pKQ0KPiArICAgICAgICByZXR1cm4gRmRvRGlzcGF0Y2hQbnAo
RmRvLCBEZXZpY2VPYmplY3QsIElycCk7DQo+IA0KPiAtICAgIGNhc2UgSVNfUERPOg0KPiAtICAg
ICAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgICAgICBTdGF0dXMgPSBQZG9EaXNwYXRjaFBucChQ
ZG8sIERldmljZU9iamVjdCwgSXJwKTsgLy8gZHJvcHMgUGRvDQo+IHJlZmVyZW5jZQ0KPiAtICAg
ICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgU3RhdHVzID0gRHJpdmVyTWFwUGRvKERldmlj
ZU9iamVjdCwgSXJwKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBicmVhazsNCj4gKyAgICBp
ZiAoRmRvICE9IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiBGZG9Gb3J3YXJkUG5wKEZkbywgRGV2
aWNlT2JqZWN0LCBJcnApOw0KPiANCj4gLSAgICBjYXNlIElTX05VTEw6DQo+IC0gICAgZGVmYXVs
dDoNCj4gLSAgICAgICAgV2FybmluZygiRGV2aWNlT2JqZWN0IDB4JXAgaXMgbm90IEZETyAoMHgl
cCkgb3IgYSBQRE9cbiIsDQo+IERldmljZU9iamVjdCwgX19YZW52YmRGZG8pOw0KPiAtICAgICAg
ICBTdGF0dXMgPSBEcml2ZXJEaXNwYXRjaFBucChEZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAg
ICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAg
cmV0dXJuIERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gIH0NCj4gDQo+
ICBfX2Rydl9kaXNwYXRjaFR5cGUoSVJQX01KX1BPV0VSKQ0KPiBAQCAtNjE0LDM1ICs1NDksMTUg
QEAgRGlzcGF0Y2hQb3dlcigNCj4gICAgICBJTiBQSVJQICAgICAgICAgICAgIElycA0KPiAgICAg
ICkNCj4gIHsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gLSAgICBVTE9O
RyAgICAgICAgICAgICAgIElzRmRvOw0KPiAgICAgIFBYRU5WQkRfRkRPICAgICAgICAgRmRvOw0K
PiAtICAgIFBYRU5WQkRfUERPICAgICAgICAgUGRvOw0KPiAtDQo+IC0gICAgSXNGZG8gPSBEcml2
ZXJHZXRGZG9PclBkbyhEZXZpY2VPYmplY3QsICZGZG8sICZQZG8pOw0KPiANCj4gLSAgICBzd2l0
Y2ggKElzRmRvKSB7DQo+IC0gICAgY2FzZSBJU19GRE86DQo+IC0gICAgICAgIEFTU0VSVDNQKEZk
bywgIT0sIE5VTEwpOw0KPiAtICAgICAgICBBU1NFUlQzUChQZG8sID09LCBOVUxMKTsNCj4gLSAg
ICAgICAgU3RhdHVzID0gRmRvRGlzcGF0Y2hQb3dlcihGZG8sIERldmljZU9iamVjdCwgSXJwKTsg
Ly8gZHJvcHMgRmRvDQo+IHJlZmVyZW5jZQ0KPiAtICAgICAgICBicmVhazsNCj4gLQ0KPiAtICAg
IGNhc2UgSVNfUERPOg0KPiAtICAgICAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgICAgICBQZG9E
ZXJlZmVyZW5jZShQZG8pOyAvLyBkcm9wcyBQZG8gcmVmZXJlbmNlDQo+IC0gICAgICAgIH0NCj4g
LSAgICAgICAgU3RhdHVzID0gRHJpdmVyRGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7
DQo+IC0gICAgICAgIGJyZWFrOw0KPiArICAgIGlmIChfX0RyaXZlckdldEZkbyhEZXZpY2VPYmpl
Y3QsICZGZG8pKQ0KPiArICAgICAgICByZXR1cm4gRmRvRGlzcGF0Y2hQb3dlcihGZG8sIERldmlj
ZU9iamVjdCwgSXJwKTsNCj4gDQo+IC0gICAgY2FzZSBJU19OVUxMOg0KPiAtICAgIGRlZmF1bHQ6
DQo+IC0gICAgICAgIFdhcm5pbmcoIkRldmljZU9iamVjdCAweCVwIGlzIG5vdCBGRE8gKDB4JXAp
IG9yIGEgUERPXG4iLA0KPiBEZXZpY2VPYmplY3QsIF9fWGVudmJkRmRvKTsNCj4gLSAgICAgICAg
U3RhdHVzID0gRHJpdmVyRGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAg
ICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gKyAgICBpZiAoRmRvICE9IE5VTEwpDQo+ICsgICAgICAg
IEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IA0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAg
cmV0dXJuIERyaXZlckRpc3BhdGNoUG93ZXIoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiAN
Cj4gIERSSVZFUl9VTkxPQUQgICAgICAgICAgICAgICBEcml2ZXJVbmxvYWQ7DQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCAyNDdlZjUx
Li45MzlmYjQ3IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94
ZW52YmQvZmRvLmMNCj4gQEAgLTE4NzksNzAgKzE4NzksNyBAQCBGZG9TdGFydElvKA0KPiAgICAg
IHJldHVybiBUUlVFOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09
PQ0KPiAtLy8gUG5QIEhhbmRsZXINCj4gLV9fY2hlY2tSZXR1cm4NCj4gLU5UU1RBVFVTDQo+IC1G
ZG9EaXNwYXRjaFBucCgNCj4gLSAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgICAgICBG
ZG8sDQo+IC0gICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgRGV2aWNlT2JqZWN0
LA0KPiAtICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgICAgIElycA0KPiAtICAgICkN
Cj4gLXsNCj4gLSAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrID0gSW9HZXRDdXJyZW50SXJw
U3RhY2tMb2NhdGlvbihJcnApOw0KPiAtICAgIFVDSEFSICAgICAgICAgICAgICAgTWlub3IgPSBT
dGFjay0+TWlub3JGdW5jdGlvbjsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsN
Cj4gLQ0KPiAtICAgIHN3aXRjaCAoU3RhY2stPk1pbm9yRnVuY3Rpb24pIHsNCj4gLSAgICBjYXNl
IElSUF9NTl9SRU1PVkVfREVWSUNFOg0KPiAtICAgICAgICBWZXJib3NlKCJGRE86SVJQX01OX1JF
TU9WRV9ERVZJQ0VcbiIpOw0KPiAtICAgICAgICBGZG9EMFRvRDMoRmRvKTsNCj4gLSAgICAgICAg
RmRvVW5wbHVnUmVxdWVzdChGZG8sIEZBTFNFKTsNCj4gLSAgICAgICAgLy8gZHJvcCByZWYtY291
bnQgYWNxdWlyZWQgaW4gRHJpdmVyR2V0RmRvICpiZWZvcmUqIGRlc3Ryb3lpbmcgRmRvDQo+IC0g
ICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IC0gICAgICAgIF9fRmRvVGVybWluYXRlKEZk
byk7DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgY2FzZSBJUlBfTU5fUVVFUllfREVW
SUNFX1JFTEFUSU9OUzoNCj4gLSAgICAgICAgaWYgKFN0YWNrLT5QYXJhbWV0ZXJzLlF1ZXJ5RGV2
aWNlUmVsYXRpb25zLlR5cGUgPT0gQnVzUmVsYXRpb25zKSB7DQo+IC0gICAgICAgICAgICBLSVJR
TCAgIElycWw7DQo+IC0gICAgICAgICAgICBCT09MRUFOIE5lZWRJbnZhbGlkYXRlOw0KPiAtICAg
ICAgICAgICAgQk9PTEVBTiBOZWVkUmVib290Ow0KPiAtDQo+IC0gICAgICAgICAgICBLZUFjcXVp
cmVTcGluTG9jaygmRmRvLT5Mb2NrLCAmSXJxbCk7DQo+IC0NCj4gLSAgICAgICAgICAgIGlmIChG
ZG8tPkRldmljZVBvd2VyID09IFBvd2VyRGV2aWNlRDApIHsNCj4gLSAgICAgICAgICAgICAgICBG
ZG9TY2FuVGFyZ2V0cyhGZG8sICZOZWVkSW52YWxpZGF0ZSwgJk5lZWRSZWJvb3QpOw0KPiAtICAg
ICAgICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICBOZWVkSW52YWxpZGF0ZSA9IEZB
TFNFOw0KPiAtICAgICAgICAgICAgICAgIE5lZWRSZWJvb3QgPSBGQUxTRTsNCj4gLSAgICAgICAg
ICAgIH0NCj4gLQ0KPiAtICAgICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJkZkby0+TG9jaywg
SXJxbCk7DQo+IC0NCj4gLSAgICAgICAgICAgIGlmIChOZWVkSW52YWxpZGF0ZSkNCj4gLSAgICAg
ICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJRVUVSWV9SRUxBVElPTlMiLCBGZG8pOw0KPiAtDQo+
IC0gICAgICAgICAgICBpZiAoTmVlZFJlYm9vdCkNCj4gLSAgICAgICAgICAgICAgICBEcml2ZXJO
b3RpZnlJbnN0YWxsZXIoKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBGZG9EZXJlZmVyZW5j
ZShGZG8pOw0KPiAtICAgICAgICBicmVhazsNCj4gLQ0KPiAtICAgIGRlZmF1bHQ6DQo+IC0gICAg
ICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIFN0YXR1cyA9IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsN
Cj4gLSAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiAtICAgICAgICBWZXJib3NlKCIl
MDJ4OiVzIC0+ICUwOHhcbiIsIE1pbm9yLCBQbnBNaW5vckZ1bmN0aW9uTmFtZShNaW5vciksDQo+
IFN0YXR1cyk7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+IC19DQo+IC0NCj4g
LV9fY2hlY2tSZXR1cm4NCj4gLVBYRU5WQkRfUERPDQo+ICtzdGF0aWMgUFhFTlZCRF9QRE8NCj4g
IEZkb0dldFBkb0Zyb21EZXZpY2VPYmplY3QoDQo+ICAgICAgX19pbiBQWEVOVkJEX0ZETyAgICAg
ICAgICAgICAgICAgRmRvLA0KPiAgICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgICAg
IERldmljZU9iamVjdA0KPiBAQCAtMTk2NCwyNCArMTkwMSwyNyBAQCBGZG9HZXRQZG9Gcm9tRGV2
aWNlT2JqZWN0KA0KPiAgICAgIHJldHVybiBOVUxMOw0KPiAgfQ0KPiANCj4gLV9fY2hlY2tSZXR1
cm4NCj4gLXN0YXRpYyBGT1JDRUlOTElORSBOVFNUQVRVUw0KPiAtX19GZG9TZW5kUXVlcnlJZCgN
Cj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+
IC0gICAgX19vdXQgUFdDSEFSKiAgICAgICAgICAgICAgICAgICAgX1N0cmluZw0KPiArc3RhdGlj
IFBYRU5WQkRfUERPDQo+ICtGZG9NYXBEZXZpY2VPYmplY3RUb1BkbygNCj4gKyAgICBfX2luIFBY
RU5WQkRfRkRPICAgICAgICAgICAgICAgIEZkbywNCj4gKyAgICBfX2luIFBERVZJQ0VfT0JKRUNU
ICAgICAgICAgICAgIERldmljZU9iamVjdA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBLRVZFTlQg
ICAgICAgICAgICAgIENvbXBsZXRlOw0KPiAtICAgIFBJUlAgICAgICAgICAgICAgICAgSXJwOw0K
PiAtICAgIElPX1NUQVRVU19CTE9DSyAgICAgU3RhdHVzQmxvY2s7DQo+IC0gICAgUElPX1NUQUNL
X0xPQ0FUSU9OICBTdGFjazsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4g
KyAgICBQWEVOVkJEX1BETyAgICAgICAgICAgICAgICAgUGRvOw0KPiArICAgIEtFVkVOVCAgICAg
ICAgICAgICAgICAgICAgICBDb21wbGV0ZTsNCj4gKyAgICBQSVJQICAgICAgICAgICAgICAgICAg
ICAgICAgSXJwOw0KPiArICAgIElPX1NUQVRVU19CTE9DSyAgICAgICAgICAgICBTdGF0dXNCbG9j
azsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gICAgICAgICAgU3RhY2s7DQo+ICsgICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAgICBQV0NIQVIgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBU
YXJnZXRJZDsNCj4gKyAgICBERUNMQVJFX1VOSUNPREVfU1RSSU5HX1NJWkUoVW5pU3RyLCA0KTsN
Cj4gDQo+ICAgICAgS2VJbml0aWFsaXplRXZlbnQoJkNvbXBsZXRlLCBOb3RpZmljYXRpb25FdmVu
dCwgRkFMU0UpOw0KPiANCj4gICAgICBJcnAgPSBJb0J1aWxkU3luY2hyb25vdXNGc2RSZXF1ZXN0
KElSUF9NSl9QTlAsIERldmljZU9iamVjdCwgTlVMTCwgMCwNCj4gTlVMTCwgJkNvbXBsZXRlLCAm
U3RhdHVzQmxvY2spOw0KPiAtICAgIGlmICghSXJwKQ0KPiAtICAgICAgICByZXR1cm4gU1RBVFVT
X0lOU1VGRklDSUVOVF9SRVNPVVJDRVM7DQo+ICsgICAgaWYgKElycCA9PSBOVUxMKQ0KPiArICAg
ICAgICBnb3RvIGZhaWwxOw0KPiANCj4gICAgICBTdGFjayA9IElvR2V0TmV4dElycFN0YWNrTG9j
YXRpb24oSXJwKTsNCj4gICAgICBTdGFjay0+TWlub3JGdW5jdGlvbiA9IElSUF9NTl9RVUVSWV9J
RDsNCj4gQEAgLTE5OTQsMjEgKzE5MzQsMTAgQEAgX19GZG9TZW5kUXVlcnlJZCgNCj4gICAgICAg
ICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdCgmQ29tcGxldGUsIEV4ZWN1dGl2ZSwgS2Vy
bmVsTW9kZSwNCj4gRkFMU0UsIE5VTEwpOw0KPiAgICAgICAgICBTdGF0dXMgPSBTdGF0dXNCbG9j
ay5TdGF0dXM7DQo+ICAgICAgfQ0KPiAtICAgIGlmIChOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4g
LSAgICAgICAgKl9TdHJpbmcgPSAoUFdDSEFSKVN0YXR1c0Jsb2NrLkluZm9ybWF0aW9uOw0KPiAt
ICAgIH0NCj4gLSAgICByZXR1cm4gU3RhdHVzOw0KPiAtfQ0KPiAtDQo+IC1fX2NoZWNrUmV0dXJu
DQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgTlRTVEFUVVMNCj4gLV9fRmRvRXh0cmFjdFRhcmdldElk
KA0KPiAtICAgIF9faW4gUFdDSEFSICAgICAgICAgICAgICAgICAgICAgIFN0cmluZywNCj4gLSAg
ICBfX291dCBQVUxPTkcgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZA0KPiAtICAgICkNCj4g
LXsNCj4gLSAgICBERUNMQVJFX1VOSUNPREVfU1RSSU5HX1NJWkUoVW5pU3RyLCA0KTsNCj4gLQ0K
PiArICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwyOw0K
PiArDQo+ICsgICAgU3RyaW5nID0gKFBXQ0hBUilTdGF0dXNCbG9jay5JbmZvcm1hdGlvbjsNCj4g
ICAgICBzd2l0Y2ggKHdjc2xlbihTdHJpbmcpKSB7DQo+ICAgICAgY2FzZSAzOg0KPiAgICAgICAg
ICBVbmlTdHIuTGVuZ3RoID0gMSAqIHNpemVvZihXQ0hBUik7DQo+IEBAIC0yMDIyLDc1ICsxOTUx
LDEyMiBAQCBfX0Zkb0V4dHJhY3RUYXJnZXRJZCgNCj4gICAgICAgICAgVW5pU3RyX2J1ZmZlclsy
XSA9IFVOSUNPREVfTlVMTDsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgZGVmYXVsdDoNCj4g
LSAgICAgICAgcmV0dXJuIFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsNCj4gKyAgICAgICAgZ290
byBmYWlsMzsNCj4gICAgICB9DQo+IA0KPiAtICAgIHJldHVybiBSdGxVbmljb2RlU3RyaW5nVG9J
bnRlZ2VyKCZVbmlTdHIsIDE2LCBUYXJnZXRJZCk7DQo+ICsgICAgU3RhdHVzID0gUnRsVW5pY29k
ZVN0cmluZ1RvSW50ZWdlcigmVW5pU3RyLCAxNiwgJlRhcmdldElkKTsNCj4gKyAgICBpZiAoIU5U
X1NVQ0NFU1MoU3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBmYWlsNDsNCj4gKw0KPiArICAgIFBk
byA9IF9fRmRvR2V0UGRvKEZkbywgVGFyZ2V0SWQpOw0KPiArICAgIGlmIChQZG8gPT0gTlVMTCkN
Cj4gKyAgICAgICAgZ290byBmYWlsNTsNCj4gKw0KPiArICAgIFBkb1NldERldmljZU9iamVjdChQ
ZG8sIERldmljZU9iamVjdCk7DQo+ICsgICAgRXhGcmVlUG9vbChTdHJpbmcpOw0KPiArDQo+ICsg
ICAgcmV0dXJuIFBkbzsNCj4gKw0KPiArZmFpbDU6DQo+ICtmYWlsNDoNCj4gK2ZhaWwzOg0KPiAr
ICAgIEV4RnJlZVBvb2woU3RyaW5nKTsNCj4gK2ZhaWwyOg0KPiArZmFpbDE6DQo+ICsgICAgcmV0
dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gLV9fRmRv
U2V0RGV2aWNlT2JqZWN0KA0KPiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAg
IEZkbywNCj4gLSAgICBfX2luIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwN
Cj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QNCj4g
K19fY2hlY2tSZXR1cm4NCj4gK05UU1RBVFVTDQo+ICtGZG9Gb3J3YXJkUG5wKA0KPiArICAgIF9f
aW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgRmRvLA0KPiArICAgIF9faW4gUERFVklDRV9P
QkpFQ1QgICAgICAgICAgICAgRGV2aWNlT2JqZWN0LA0KPiArICAgIF9faW4gUElSUCAgICAgICAg
ICAgICAgICAgICAgICAgSXJwDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFBYRU5WQkRfUERPIFBk
bzsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrOw0KPiArICAgIFBYRU5WQkRfUERP
ICAgICAgICAgUGRvOw0KPiANCj4gLSAgICBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFRhcmdldElk
KTsNCj4gLSAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgIFBkb1NldERldmljZU9iamVjdChQZG8s
IERldmljZU9iamVjdCk7DQo+IC0gICAgICAgIFBkb0RlcmVmZXJlbmNlKFBkbyk7DQo+ICsgICAg
QVNTRVJUM1AoRGV2aWNlT2JqZWN0LCAhPSwgRmRvLT5EZXZpY2VPYmplY3QpOw0KPiArDQo+ICsg
ICAgUGRvID0gRmRvR2V0UGRvRnJvbURldmljZU9iamVjdChGZG8sIERldmljZU9iamVjdCk7DQo+
ICsgICAgaWYgKFBkbyAhPSBOVUxMKSB7DQo+ICsgICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7
DQo+ICsgICAgICAgIHJldHVybiBQZG9EaXNwYXRjaFBucChQZG8sIERldmljZU9iamVjdCwgSXJw
KTsNCj4gICAgICB9DQo+ICsNCj4gKyAgICBTdGFjayA9IElvR2V0Q3VycmVudElycFN0YWNrTG9j
YXRpb24oSXJwKTsNCj4gKyAgICBpZiAoU3RhY2stPk1pbm9yRnVuY3Rpb24gPT0gSVJQX01OX1FV
RVJZX0lEICYmDQo+ICsgICAgICAgIFN0YWNrLT5QYXJhbWV0ZXJzLlF1ZXJ5SWQuSWRUeXBlID09
IEJ1c1F1ZXJ5RGV2aWNlSUQpIHsNCj4gKyAgICAgICAgUGRvID0gRmRvTWFwRGV2aWNlT2JqZWN0
VG9QZG8oRmRvLCBEZXZpY2VPYmplY3QpOw0KPiArICAgICAgICBpZiAoUGRvICE9IE5VTEwpIHsN
Cj4gKyAgICAgICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+ICsgICAgICAgICAgICByZXR1
cm4gUGRvRGlzcGF0Y2hQbnAoUGRvLCBEZXZpY2VPYmplY3QsIElycCk7DQo+ICsgICAgICAgIH0N
Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiArICAgIHJldHVy
biBEcml2ZXJEaXNwYXRjaFBucChEZXZpY2VPYmplY3QsIElycCk7DQo+ICB9DQo+IA0KPiAgX19j
aGVja1JldHVybg0KPiAgTlRTVEFUVVMNCj4gLUZkb01hcERldmljZU9iamVjdFRvUGRvKA0KPiAr
RmRvRGlzcGF0Y2hQbnAoDQo+ICAgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICAg
RmRvLA0KPiAgICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgICAgIERldmljZU9iamVj
dCwNCj4gICAgICBfX2luIFBJUlAgICAgICAgICAgICAgICAgICAgICAgICBJcnANCj4gICAgICAp
DQo+ICB7DQo+IC0gICAgUFdDSEFSICAgICAgICAgICAgICBTdHJpbmc7DQo+IC0gICAgTlRTVEFU
VVMgICAgICAgICAgICBTdGF0dXM7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICBUYXJnZXRJ
ZDsNCj4gLSAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrTG9jYXRpb247DQo+IC0gICAgVUNI
QVIgICAgICAgICAgICAgICBNaW5vcjsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNr
Ow0KPiANCj4gLSAgICBTdGFja0xvY2F0aW9uID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlv
bihJcnApOw0KPiAtICAgIE1pbm9yID0gU3RhY2tMb2NhdGlvbi0+TWlub3JGdW5jdGlvbjsNCj4g
KyAgICBBU1NFUlQzUChEZXZpY2VPYmplY3QsID09LCBGZG8tPkRldmljZU9iamVjdCk7DQo+IA0K
PiAtICAgIGlmICghKFN0YWNrTG9jYXRpb24tPk1pbm9yRnVuY3Rpb24gPT0gSVJQX01OX1FVRVJZ
X0lEICYmDQo+IC0gICAgICAgICAgU3RhY2tMb2NhdGlvbi0+UGFyYW1ldGVycy5RdWVyeUlkLklk
VHlwZSA9PSBCdXNRdWVyeURldmljZUlEKSkgew0KPiAtICAgICAgICBnb3RvIGRvbmU7DQo+IC0g
ICAgfQ0KPiArICAgIFN0YWNrID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJcnApOw0K
PiANCj4gLSAgICBTdGF0dXMgPSBfX0Zkb1NlbmRRdWVyeUlkKERldmljZU9iamVjdCwgJlN0cmlu
Zyk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgZ290byBk
b25lOw0KPiAtICAgIH0NCj4gKyAgICBzd2l0Y2ggKFN0YWNrLT5NaW5vckZ1bmN0aW9uKSB7DQo+
ICsgICAgY2FzZSBJUlBfTU5fUkVNT1ZFX0RFVklDRToNCj4gKyAgICAgICAgVmVyYm9zZSgiRkRP
OklSUF9NTl9SRU1PVkVfREVWSUNFXG4iKTsNCj4gKyAgICAgICAgRmRvRDBUb0QzKEZkbyk7DQo+
ICsgICAgICAgIEZkb1VucGx1Z1JlcXVlc3QoRmRvLCBGQUxTRSk7DQo+ICsgICAgICAgIC8vIGRy
b3AgcmVmLWNvdW50IGFjcXVpcmVkIGluIERyaXZlckdldEZkbyAqYmVmb3JlKiBkZXN0cm95aW5n
IEZkbw0KPiArICAgICAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiArICAgICAgICBfX0Zkb1Rl
cm1pbmF0ZShGZG8pOw0KPiArICAgICAgICBicmVhazsNCj4gDQo+IC0gICAgU3RhdHVzID0gX19G
ZG9FeHRyYWN0VGFyZ2V0SWQoU3RyaW5nLCAmVGFyZ2V0SWQpOw0KPiAtICAgIGlmIChOVF9TVUND
RVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgX19GZG9TZXREZXZpY2VPYmplY3QoRmRvLCBUYXJn
ZXRJZCwgRGV2aWNlT2JqZWN0KTsNCj4gLSAgICAgICAgVmVyYm9zZSgiMHglcCAtLT4gVGFyZ2V0
ICVkICgld3MpXG4iLCBEZXZpY2VPYmplY3QsIFRhcmdldElkLCBTdHJpbmcpOw0KPiAtICAgIH0N
Cj4gKyAgICBjYXNlIElSUF9NTl9RVUVSWV9ERVZJQ0VfUkVMQVRJT05TOg0KPiArICAgICAgICBp
ZiAoU3RhY2stPlBhcmFtZXRlcnMuUXVlcnlEZXZpY2VSZWxhdGlvbnMuVHlwZSA9PSBCdXNSZWxh
dGlvbnMpIHsNCj4gKyAgICAgICAgICAgIEtJUlFMICAgSXJxbDsNCj4gKyAgICAgICAgICAgIEJP
T0xFQU4gTmVlZEludmFsaWRhdGU7DQo+ICsgICAgICAgICAgICBCT09MRUFOIE5lZWRSZWJvb3Q7
DQo+IA0KPiAtICAgIC8vIFN0cmluZyBpcyBQYWdlZFBvb2wsIGFsbG9jYXRlZCBieSBsb3dlciBk
cml2ZXINCj4gLSAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksIDw9LCBBUENfTEVWRUwp
Ow0KPiAtICAgIEV4RnJlZVBvb2woU3RyaW5nKTsNCj4gKyAgICAgICAgICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gDQo+IC1kb25lOg0KPiAtICAgIFN0YXR1cyA9
IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTs7DQo+IC0gICAgaWYgKCFOVF9T
VUNDRVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgVmVyYm9zZSgiJTAyeDolcyAtPiAlMDh4XG4i
LCBNaW5vciwgUG5wTWlub3JGdW5jdGlvbk5hbWUoTWlub3IpLA0KPiBTdGF0dXMpOw0KPiArICAg
ICAgICAgICAgaWYgKEZkby0+RGV2aWNlUG93ZXIgPT0gUG93ZXJEZXZpY2VEMCkgew0KPiArICAg
ICAgICAgICAgICAgIEZkb1NjYW5UYXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAmTmVlZFJl
Ym9vdCk7DQo+ICsgICAgICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgIE5lZWRJ
bnZhbGlkYXRlID0gRkFMU0U7DQo+ICsgICAgICAgICAgICAgICAgTmVlZFJlYm9vdCA9IEZBTFNF
Ow0KPiArICAgICAgICAgICAgfQ0KPiArDQo+ICsgICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9j
aygmRmRvLT5Mb2NrLCBJcnFsKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKE5lZWRJbnZhbGlk
YXRlKQ0KPiArICAgICAgICAgICAgICAgIEZkb0xvZ1RhcmdldHMoIlFVRVJZX1JFTEFUSU9OUyIs
IEZkbyk7DQo+ICsNCj4gKyAgICAgICAgICAgIGlmIChOZWVkUmVib290KQ0KPiArICAgICAgICAg
ICAgICAgIERyaXZlck5vdGlmeUluc3RhbGxlcigpOw0KPiArICAgICAgICB9DQo+ICsgICAgICAg
IEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgZGVm
YXVsdDoNCj4gKyAgICAgICAgRmRvRGVyZWZlcmVuY2UoRmRvKTsNCj4gKyAgICAgICAgYnJlYWs7
DQo+ICAgICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsNCj4gKyAgICByZXR1cm4gRHJp
dmVyRGlzcGF0Y2hQbnAoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
PiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gUG93ZXIgSGFuZGxlcg0KPiAgX19jaGVja1Jl
dHVybg0KPiAgTlRTVEFUVVMNCj4gIEZkb0Rpc3BhdGNoUG93ZXIoDQo+IEBAIC0yMTAzLDYgKzIw
NzksOCBAQCBGZG9EaXNwYXRjaFBvd2VyKA0KPiAgICAgIFBPV0VSX1NUQVRFX1RZUEUgICAgUG93
ZXJUeXBlOw0KPiAgICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiANCj4gKyAgICBB
U1NFUlQzUChEZXZpY2VPYmplY3QsID09LCBGZG8tPkRldmljZU9iamVjdCk7DQo+ICsNCj4gICAg
ICBTdGFjayA9IElvR2V0Q3VycmVudElycFN0YWNrTG9jYXRpb24oSXJwKTsNCj4gICAgICBQb3dl
clR5cGUgPSBTdGFjay0+UGFyYW1ldGVycy5Qb3dlci5UeXBlOw0KPiANCj4gQEAgLTIxMzYsOCAr
MjExNCw2IEBAIEZkb0Rpc3BhdGNoUG93ZXIoDQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0N
Cj4gDQo+IC0NCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gLS8vIEludGVyZmFjZXMN
Cj4gIFBYRU5CVVNfU1RPUkVfSU5URVJGQUNFDQo+ICBGZG9BY3F1aXJlU3RvcmUoDQo+ICAgICAg
X19pbiBQWEVOVkJEX0ZETyAgICBGZG8NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZmRvLmgg
Yi9zcmMveGVudmJkL2Zkby5oDQo+IGluZGV4IGE5ZTM2YzIuLjk2YzY2YTUgMTAwNjQ0DQo+IC0t
LSBhL3NyYy94ZW52YmQvZmRvLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9mZG8uaA0KPiBAQCAtMTI3
LDMxICsxMjcsMjIgQEAgRmRvU3RhcnRJbygNCj4gICAgICBfX2luIFBTQ1NJX1JFUVVFU1RfQkxP
Q0sgICAgICAgICBTcmINCj4gICAgICApOw0KPiANCj4gLS8vIFBuUCBIYW5kbGVyDQo+ICBfX2No
ZWNrUmV0dXJuDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gLUZkb0Rpc3BhdGNoUG5wKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4gLSAgICBfX2luIFBERVZJ
Q0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+IC0gICAgX19pbiBQSVJQICAg
ICAgICAgICAgICAgICAgICAgICAgSXJwDQo+IC0gICAgKTsNCj4gLQ0KPiAtX19jaGVja1JldHVy
bg0KPiAtZXh0ZXJuIFBYRU5WQkRfUERPDQo+IC1GZG9HZXRQZG9Gcm9tRGV2aWNlT2JqZWN0KA0K
PiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4gLSAgICBfX2lu
IFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QNCj4gK0Zkb0ZvcndhcmRQ
bnAoDQo+ICsgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICBGZG8sDQo+ICsgICAg
X19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+ICsgICAgX19p
biBQSVJQICAgICAgICAgICAgICAgICAgICAgICBJcnANCj4gICAgICApOw0KPiANCj4gIF9fY2hl
Y2tSZXR1cm4NCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAtRmRvTWFwRGV2aWNlT2JqZWN0VG9QZG8o
DQo+ICtGZG9EaXNwYXRjaFBucCgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAg
ICAgICBGZG8sDQo+ICAgICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgRGV2aWNl
T2JqZWN0LA0KPiAgICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgICAgIElycA0KPiAg
ICAgICk7DQo+IA0KPiAtLy8gUG93ZXIgSGFuZGxlcg0KPiAgX19jaGVja1JldHVybg0KPiAgZXh0
ZXJuIE5UU1RBVFVTDQo+ICBGZG9EaXNwYXRjaFBvd2VyKA0KPiBAQCAtMTYwLDcgKzE1MSw2IEBA
IEZkb0Rpc3BhdGNoUG93ZXIoDQo+ICAgICAgX19pbiBQSVJQICAgICAgICAgICAgICAgICAgICAg
ICAgSXJwDQo+ICAgICAgKTsNCj4gDQo+IC0vLyBJbnRlcmZhY2VzDQo+ICBleHRlcm4gUFhFTkJV
U19TVE9SRV9JTlRFUkZBQ0UNCj4gIEZkb0FjcXVpcmVTdG9yZSgNCj4gICAgICBfX2luIFBYRU5W
QkRfRkRPICAgICAgICAgICAgICAgICBGZG8NCj4gLS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0K
PiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:45:52 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:45:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhlA-0003gn-Gg; Mon, 09 May 2016 09:45:52 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhl8-0003gh-RU
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:45:51 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 3B/B7-03651-D4C50375; Mon, 09 May 2016 09:45:49 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRWlGSWpSXmKPExsWyU9JRQtc3xiD
 cYMo2UYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacfXPNcaC7wcZK54eP8TWwLhlP2MXIyeHhICf
 xKvV11hAbDYBHYmlR+czgdgiAgUS39/PYwaxmQXUJK7v72IFsYUFnCV6X61jg6hxkfhx5AY7h
 G0kcfvoTDCbRUBF4s19iDivgLvEvcZ+sJlCAnUSM8+2gMU5BVwltt68AxZnFJCV+NK4GmqXuM
 StJxA3SAgISCzZc54ZwhaVePn4HyuEbSCxdek+oJs5gOo1Jdbv0odoVZSY0v0Qaq2gxMmZT1g
 g1qpIbHl8AGoMt8TKz39YJjCKzkKybRbCpFlIJs1CMmkBI8sqRo3i1KKy1CJdQwu9pKLM9IyS
 3MTMHF1DA2O93NTi4sT01JzEpGK95PzcTYzAWKlnYGDcwfj7tOchRkkOJiVRXldGvXAhvqT8l
 MqMxOKM+KLSnNTiQ4wyHBxKEryrowzChQSLUtNTK9Iyc4BRC5OW4OBREuHdDZLmLS5IzC3OTI
 dInWJUlBLnfQySEABJZJTmwbXBEsUlRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK8D0Gm8GT
 mlcBNfwW0mAlosRybPsjikkSElFQD4/y2Y6l3z7iXHj+wvUbW+M89vfhJvtrmEpE8wde5PqhM
 EnwZ1r8vd1Ja1W+uoyWWk7r5BbdKScTdW8TMsNT1wIRZZ++G7/lorSez4vU036tzL2zYd/lqW
 dAdMQbbSM4IxpCZzu7ZzNL2glNYlbaktnznvBgjN+nWZnv99TPsraMNPJPkTAQ2KbEUZyQaaj
 EXFScCABihz6APAwAA
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1462787149!39108855!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28500 invoked from network); 9 May 2016 09:45:49 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:45:49 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077263"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/9] Refactor Pnp/Power handlers
Thread-Index: AQHRnKIhXIs5s9/rHkW3u7WMve0QYZ+wdcUQ
Date: Mon, 9 May 2016 09:45:48 +0000
Message-ID: <01c8405104e948a3bd486a917605ab2f@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-4-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-4-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/9] Refactor Pnp/Power handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAzLzldIFJlZmFjdG9yIFBucC9Qb3dlciBoYW5kbGVycw0K
PiANCj4gTW92ZXMgdGhlIG1hcHBpbmcgb2YgRGV2aWNlT2JqZWN0IHRvIFBkbyBpbnRvIHRoZSBG
ZG8gY29kZQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgfCAxMjcgKysrKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQo+ICBzcmMveGVudmJkL2Zkby5jICAgIHwgMjQ4ICsrKysrKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tDQo+ICBzcmMveGVudmJk
L2Zkby5oICAgIHwgIDIwICsrLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z
KCspLCAyNTcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2
ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gaW5kZXggY2ZmNjAzNC4uYzUzNTJkMCAxMDA2
NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiArKysgYi9zcmMveGVudmJkL2RyaXZl
ci5jDQo+IEBAIC00MiwxMCArNDIsNiBAQA0KPiAgI2luY2x1ZGUgPHhlbmNyc2hfaW50ZXJmYWNl
Lmg+DQo+ICAjaW5jbHVkZSA8eGVudmJkLW50c3Ryc2FmZS5oPg0KPiANCj4gLSNkZWZpbmUgSVNf
TlVMTCAgICAgICAgICgoVUxPTkcpJ2xsdW4nKQ0KPiAtI2RlZmluZSBJU19GRE8gICAgICAgICAg
KChVTE9ORyknb2RmJykNCj4gLSNkZWZpbmUgSVNfUERPICAgICAgICAgICgoVUxPTkcpJ29kcCcp
DQo+IC0NCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gIFhFTlZCRF9QQVJBTUVURVJT
ICAgRHJpdmVyUGFyYW1ldGVyczsNCj4gIEhBTkRMRSAgICAgICAgICAgICAgRHJpdmVyU3RhdHVz
S2V5Ow0KPiANCj4gQEAgLTI2MSw2NSArMjU3LDI2IEBAIERyaXZlclVubGlua0ZkbygNCj4gICAg
ICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRMb2NrLCBJcnFsKTsNCj4gIH0NCj4gDQo+IC1f
X2NoZWNrUmV0dXJuDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVUxPTkcNCj4gLURyaXZlckdldEZk
b09yUGRvKA0KPiAtICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgRGV2aWNlT2JqZWN0
LA0KPiAtICAgIF9fb3V0IFBYRU5WQkRfRkRPKiAgICAgICAgICAgX0ZkbywNCj4gLSAgICBfX291
dCBQWEVOVkJEX1BETyogICAgICAgICAgIF9QZG8NCj4gLSAgICApDQo+IC17DQo+IC0gICAgS0lS
UUwgICAgICAgSXJxbDsNCj4gLSAgICBVTE9ORyAgICAgICBSZXN1bHQgPSBJU19OVUxMOw0KPiAt
DQo+IC0gICAgKl9GZG8gPSBOVUxMOw0KPiAtICAgICpfUGRvID0gTlVMTDsNCj4gLQ0KPiAtICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssICZJcnFsKTsNCj4gLSAgICBpZiAoX19Y
ZW52YmRGZG8pIHsNCj4gLSAgICAgICAgUFhFTlZCRF9GRE8gRmRvID0gX19YZW52YmRGZG87DQo+
IC0gICAgICAgIGlmIChGZG9SZWZlcmVuY2UoRmRvKSA+IDApIHsNCj4gLSAgICAgICAgICAgIGlm
IChGZG9HZXREZXZpY2VPYmplY3QoRmRvKSA9PSBEZXZpY2VPYmplY3QpIHsNCj4gLSAgICAgICAg
ICAgICAgICAqX0ZkbyA9IEZkbzsNCj4gLSAgICAgICAgICAgICAgICBSZXN1bHQgPSBJU19GRE87
DQo+IC0gICAgICAgICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIEtlUmVsZWFzZVNw
aW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0KPiAtDQo+IC0gICAgICAgICAgICAgICAgKl9Q
ZG8gPSBGZG9HZXRQZG9Gcm9tRGV2aWNlT2JqZWN0KEZkbywgRGV2aWNlT2JqZWN0KTsNCj4gLSAg
ICAgICAgICAgICAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiAtICAgICAgICAgICAgICAgIHJl
dHVybiBJU19QRE87DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+
IC0gICAgS2VSZWxlYXNlU3BpbkxvY2soJl9fWGVudmJkTG9jaywgSXJxbCk7DQo+IC0NCj4gLSAg
ICByZXR1cm4gUmVzdWx0Ow0KPiAtfQ0KPiAtX19jaGVja1JldHVybg0KPiAtc3RhdGljIEZPUkNF
SU5MSU5FIE5UU1RBVFVTDQo+IC1Ecml2ZXJNYXBQZG8oDQo+IC0gICAgX19pbiBQREVWSUNFX09C
SkVDVCAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+IC0gICAgX19pbiBQSVJQICAgICAgICAgICAg
ICAgICAgICBJcnANCj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICtfX0RyaXZlckdl
dEZkbygNCj4gKyAgICBJTiAgUERFVklDRV9PQkpFQ1QgICAgICBEZXZpY2VPYmplY3QsDQo+ICsg
ICAgT1VUIFBYRU5WQkRfRkRPICAgICAgICAgKkZkbw0KPiAgICAgICkNCj4gIHsNCj4gICAgICBL
SVJRTCAgICAgICBJcnFsOw0KPiAtICAgIE5UU1RBVFVTICAgIFN0YXR1czsNCj4gKyAgICBCT09M
RUFOICAgICBJc0ZkbyA9IEZBTFNFOw0KPiANCj4gICAgICBLZUFjcXVpcmVTcGluTG9jaygmX19Y
ZW52YmRMb2NrLCAmSXJxbCk7DQo+IC0gICAgaWYgKF9fWGVudmJkRmRvICYmIEZkb0dldERldmlj
ZU9iamVjdChfX1hlbnZiZEZkbykgIT0NCj4gRGV2aWNlT2JqZWN0KSB7DQo+IC0gICAgICAgIFBY
RU5WQkRfRkRPIEZkbyA9IF9fWGVudmJkRmRvOw0KPiAtICAgICAgICBpZiAoRmRvUmVmZXJlbmNl
KEZkbykgPiAwKSB7DQo+IC0gICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRM
b2NrLCBJcnFsKTsNCj4gLSAgICAgICAgICAgIFN0YXR1cyA9IEZkb01hcERldmljZU9iamVjdFRv
UGRvKEZkbywgRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAtICAgICAgICAgICAgRmRvRGVyZWZlcmVu
Y2UoRmRvKTsNCj4gLSAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gKyAgICAqRmRvID0gX19YZW52
YmRGZG87DQo+ICsgICAgaWYgKCpGZG8pIHsNCj4gKyAgICAgICAgRmRvUmVmZXJlbmNlKCpGZG8p
Ow0KPiArICAgICAgICBpZiAoRmRvR2V0RGV2aWNlT2JqZWN0KCpGZG8pID09IERldmljZU9iamVj
dCkgew0KPiArICAgICAgICAgICAgSXNGZG8gPSBUUlVFOw0KPiAgICAgICAgICB9DQo+ICAgICAg
fQ0KPiAgICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0KPiAtICAg
IFN0YXR1cyA9IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gDQo+IC1k
b25lOg0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAgcmV0dXJuIElzRmRvOw0KPiAgfQ0K
PiANCj4gIFZPSUQNCj4gQEAgLTU2Myw5ICs1MjAsNiBAQCBId1N0YXJ0SW8oDQo+ICAgICAgcmV0
dXJuIEZkb1N0YXJ0SW8oKFBYRU5WQkRfRkRPKUh3RGV2aWNlRXh0ZW5zaW9uLCBTcmIpOw0KPiAg
fQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gRHJpdmVyIFJl
ZGlyZWN0aW9ucw0KPiAtDQo+ICBfX2Rydl9kaXNwYXRjaFR5cGUoSVJQX01KX1BOUCkNCj4gIERS
SVZFUl9ESVNQQVRDSCAgICAgICAgICAgICBEaXNwYXRjaFBucDsNCj4gDQo+IEBAIC01NzUsMzQg
KzUyOSwxNSBAQCBEaXNwYXRjaFBucCgNCj4gICAgICBJTiBQSVJQICAgICAgICAgICAgIElycA0K
PiAgICAgICkNCj4gIHsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gLSAg
ICBVTE9ORyAgICAgICAgICAgICAgIElzRmRvOw0KPiAgICAgIFBYRU5WQkRfRkRPICAgICAgICAg
RmRvOw0KPiAtICAgIFBYRU5WQkRfUERPICAgICAgICAgUGRvOw0KPiAtDQo+IC0gICAgSXNGZG8g
PSBEcml2ZXJHZXRGZG9PclBkbyhEZXZpY2VPYmplY3QsICZGZG8sICZQZG8pOw0KPiANCj4gLSAg
ICBzd2l0Y2ggKElzRmRvKSB7DQo+IC0gICAgY2FzZSBJU19GRE86DQo+IC0gICAgICAgIFN0YXR1
cyA9IEZkb0Rpc3BhdGNoUG5wKEZkbywgRGV2aWNlT2JqZWN0LCBJcnApOyAvLyBkcm9wcyBGZG8N
Cj4gcmVmZXJlbmNlDQo+IC0gICAgICAgIGJyZWFrOw0KPiArICAgIGlmIChfX0RyaXZlckdldEZk
byhEZXZpY2VPYmplY3QsICZGZG8pKQ0KPiArICAgICAgICByZXR1cm4gRmRvRGlzcGF0Y2hQbnAo
RmRvLCBEZXZpY2VPYmplY3QsIElycCk7DQo+IA0KPiAtICAgIGNhc2UgSVNfUERPOg0KPiAtICAg
ICAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgICAgICBTdGF0dXMgPSBQZG9EaXNwYXRjaFBucChQ
ZG8sIERldmljZU9iamVjdCwgSXJwKTsgLy8gZHJvcHMgUGRvDQo+IHJlZmVyZW5jZQ0KPiAtICAg
ICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgU3RhdHVzID0gRHJpdmVyTWFwUGRvKERldmlj
ZU9iamVjdCwgSXJwKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBicmVhazsNCj4gKyAgICBp
ZiAoRmRvICE9IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiBGZG9Gb3J3YXJkUG5wKEZkbywgRGV2
aWNlT2JqZWN0LCBJcnApOw0KPiANCj4gLSAgICBjYXNlIElTX05VTEw6DQo+IC0gICAgZGVmYXVs
dDoNCj4gLSAgICAgICAgV2FybmluZygiRGV2aWNlT2JqZWN0IDB4JXAgaXMgbm90IEZETyAoMHgl
cCkgb3IgYSBQRE9cbiIsDQo+IERldmljZU9iamVjdCwgX19YZW52YmRGZG8pOw0KPiAtICAgICAg
ICBTdGF0dXMgPSBEcml2ZXJEaXNwYXRjaFBucChEZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAg
ICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAg
cmV0dXJuIERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gIH0NCj4gDQo+
ICBfX2Rydl9kaXNwYXRjaFR5cGUoSVJQX01KX1BPV0VSKQ0KPiBAQCAtNjE0LDM1ICs1NDksMTUg
QEAgRGlzcGF0Y2hQb3dlcigNCj4gICAgICBJTiBQSVJQICAgICAgICAgICAgIElycA0KPiAgICAg
ICkNCj4gIHsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gLSAgICBVTE9O
RyAgICAgICAgICAgICAgIElzRmRvOw0KPiAgICAgIFBYRU5WQkRfRkRPICAgICAgICAgRmRvOw0K
PiAtICAgIFBYRU5WQkRfUERPICAgICAgICAgUGRvOw0KPiAtDQo+IC0gICAgSXNGZG8gPSBEcml2
ZXJHZXRGZG9PclBkbyhEZXZpY2VPYmplY3QsICZGZG8sICZQZG8pOw0KPiANCj4gLSAgICBzd2l0
Y2ggKElzRmRvKSB7DQo+IC0gICAgY2FzZSBJU19GRE86DQo+IC0gICAgICAgIEFTU0VSVDNQKEZk
bywgIT0sIE5VTEwpOw0KPiAtICAgICAgICBBU1NFUlQzUChQZG8sID09LCBOVUxMKTsNCj4gLSAg
ICAgICAgU3RhdHVzID0gRmRvRGlzcGF0Y2hQb3dlcihGZG8sIERldmljZU9iamVjdCwgSXJwKTsg
Ly8gZHJvcHMgRmRvDQo+IHJlZmVyZW5jZQ0KPiAtICAgICAgICBicmVhazsNCj4gLQ0KPiAtICAg
IGNhc2UgSVNfUERPOg0KPiAtICAgICAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgICAgICBQZG9E
ZXJlZmVyZW5jZShQZG8pOyAvLyBkcm9wcyBQZG8gcmVmZXJlbmNlDQo+IC0gICAgICAgIH0NCj4g
LSAgICAgICAgU3RhdHVzID0gRHJpdmVyRGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7
DQo+IC0gICAgICAgIGJyZWFrOw0KPiArICAgIGlmIChfX0RyaXZlckdldEZkbyhEZXZpY2VPYmpl
Y3QsICZGZG8pKQ0KPiArICAgICAgICByZXR1cm4gRmRvRGlzcGF0Y2hQb3dlcihGZG8sIERldmlj
ZU9iamVjdCwgSXJwKTsNCj4gDQo+IC0gICAgY2FzZSBJU19OVUxMOg0KPiAtICAgIGRlZmF1bHQ6
DQo+IC0gICAgICAgIFdhcm5pbmcoIkRldmljZU9iamVjdCAweCVwIGlzIG5vdCBGRE8gKDB4JXAp
IG9yIGEgUERPXG4iLA0KPiBEZXZpY2VPYmplY3QsIF9fWGVudmJkRmRvKTsNCj4gLSAgICAgICAg
U3RhdHVzID0gRHJpdmVyRGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAg
ICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gKyAgICBpZiAoRmRvICE9IE5VTEwpDQo+ICsgICAgICAg
IEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IA0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAg
cmV0dXJuIERyaXZlckRpc3BhdGNoUG93ZXIoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiAN
Cj4gIERSSVZFUl9VTkxPQUQgICAgICAgICAgICAgICBEcml2ZXJVbmxvYWQ7DQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCAyNDdlZjUx
Li45MzlmYjQ3IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94
ZW52YmQvZmRvLmMNCj4gQEAgLTE4NzksNzAgKzE4NzksNyBAQCBGZG9TdGFydElvKA0KPiAgICAg
IHJldHVybiBUUlVFOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09
PQ0KPiAtLy8gUG5QIEhhbmRsZXINCj4gLV9fY2hlY2tSZXR1cm4NCj4gLU5UU1RBVFVTDQo+IC1G
ZG9EaXNwYXRjaFBucCgNCj4gLSAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgICAgICBG
ZG8sDQo+IC0gICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgRGV2aWNlT2JqZWN0
LA0KPiAtICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgICAgIElycA0KPiAtICAgICkN
Cj4gLXsNCj4gLSAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrID0gSW9HZXRDdXJyZW50SXJw
U3RhY2tMb2NhdGlvbihJcnApOw0KPiAtICAgIFVDSEFSICAgICAgICAgICAgICAgTWlub3IgPSBT
dGFjay0+TWlub3JGdW5jdGlvbjsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsN
Cj4gLQ0KPiAtICAgIHN3aXRjaCAoU3RhY2stPk1pbm9yRnVuY3Rpb24pIHsNCj4gLSAgICBjYXNl
IElSUF9NTl9SRU1PVkVfREVWSUNFOg0KPiAtICAgICAgICBWZXJib3NlKCJGRE86SVJQX01OX1JF
TU9WRV9ERVZJQ0VcbiIpOw0KPiAtICAgICAgICBGZG9EMFRvRDMoRmRvKTsNCj4gLSAgICAgICAg
RmRvVW5wbHVnUmVxdWVzdChGZG8sIEZBTFNFKTsNCj4gLSAgICAgICAgLy8gZHJvcCByZWYtY291
bnQgYWNxdWlyZWQgaW4gRHJpdmVyR2V0RmRvICpiZWZvcmUqIGRlc3Ryb3lpbmcgRmRvDQo+IC0g
ICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IC0gICAgICAgIF9fRmRvVGVybWluYXRlKEZk
byk7DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgY2FzZSBJUlBfTU5fUVVFUllfREVW
SUNFX1JFTEFUSU9OUzoNCj4gLSAgICAgICAgaWYgKFN0YWNrLT5QYXJhbWV0ZXJzLlF1ZXJ5RGV2
aWNlUmVsYXRpb25zLlR5cGUgPT0gQnVzUmVsYXRpb25zKSB7DQo+IC0gICAgICAgICAgICBLSVJR
TCAgIElycWw7DQo+IC0gICAgICAgICAgICBCT09MRUFOIE5lZWRJbnZhbGlkYXRlOw0KPiAtICAg
ICAgICAgICAgQk9PTEVBTiBOZWVkUmVib290Ow0KPiAtDQo+IC0gICAgICAgICAgICBLZUFjcXVp
cmVTcGluTG9jaygmRmRvLT5Mb2NrLCAmSXJxbCk7DQo+IC0NCj4gLSAgICAgICAgICAgIGlmIChG
ZG8tPkRldmljZVBvd2VyID09IFBvd2VyRGV2aWNlRDApIHsNCj4gLSAgICAgICAgICAgICAgICBG
ZG9TY2FuVGFyZ2V0cyhGZG8sICZOZWVkSW52YWxpZGF0ZSwgJk5lZWRSZWJvb3QpOw0KPiAtICAg
ICAgICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICBOZWVkSW52YWxpZGF0ZSA9IEZB
TFNFOw0KPiAtICAgICAgICAgICAgICAgIE5lZWRSZWJvb3QgPSBGQUxTRTsNCj4gLSAgICAgICAg
ICAgIH0NCj4gLQ0KPiAtICAgICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJkZkby0+TG9jaywg
SXJxbCk7DQo+IC0NCj4gLSAgICAgICAgICAgIGlmIChOZWVkSW52YWxpZGF0ZSkNCj4gLSAgICAg
ICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJRVUVSWV9SRUxBVElPTlMiLCBGZG8pOw0KPiAtDQo+
IC0gICAgICAgICAgICBpZiAoTmVlZFJlYm9vdCkNCj4gLSAgICAgICAgICAgICAgICBEcml2ZXJO
b3RpZnlJbnN0YWxsZXIoKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBGZG9EZXJlZmVyZW5j
ZShGZG8pOw0KPiAtICAgICAgICBicmVhazsNCj4gLQ0KPiAtICAgIGRlZmF1bHQ6DQo+IC0gICAg
ICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIFN0YXR1cyA9IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsN
Cj4gLSAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiAtICAgICAgICBWZXJib3NlKCIl
MDJ4OiVzIC0+ICUwOHhcbiIsIE1pbm9yLCBQbnBNaW5vckZ1bmN0aW9uTmFtZShNaW5vciksDQo+
IFN0YXR1cyk7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+IC19DQo+IC0NCj4g
LV9fY2hlY2tSZXR1cm4NCj4gLVBYRU5WQkRfUERPDQo+ICtzdGF0aWMgUFhFTlZCRF9QRE8NCj4g
IEZkb0dldFBkb0Zyb21EZXZpY2VPYmplY3QoDQo+ICAgICAgX19pbiBQWEVOVkJEX0ZETyAgICAg
ICAgICAgICAgICAgRmRvLA0KPiAgICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgICAg
IERldmljZU9iamVjdA0KPiBAQCAtMTk2NCwyNCArMTkwMSwyNyBAQCBGZG9HZXRQZG9Gcm9tRGV2
aWNlT2JqZWN0KA0KPiAgICAgIHJldHVybiBOVUxMOw0KPiAgfQ0KPiANCj4gLV9fY2hlY2tSZXR1
cm4NCj4gLXN0YXRpYyBGT1JDRUlOTElORSBOVFNUQVRVUw0KPiAtX19GZG9TZW5kUXVlcnlJZCgN
Cj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+
IC0gICAgX19vdXQgUFdDSEFSKiAgICAgICAgICAgICAgICAgICAgX1N0cmluZw0KPiArc3RhdGlj
IFBYRU5WQkRfUERPDQo+ICtGZG9NYXBEZXZpY2VPYmplY3RUb1BkbygNCj4gKyAgICBfX2luIFBY
RU5WQkRfRkRPICAgICAgICAgICAgICAgIEZkbywNCj4gKyAgICBfX2luIFBERVZJQ0VfT0JKRUNU
ICAgICAgICAgICAgIERldmljZU9iamVjdA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBLRVZFTlQg
ICAgICAgICAgICAgIENvbXBsZXRlOw0KPiAtICAgIFBJUlAgICAgICAgICAgICAgICAgSXJwOw0K
PiAtICAgIElPX1NUQVRVU19CTE9DSyAgICAgU3RhdHVzQmxvY2s7DQo+IC0gICAgUElPX1NUQUNL
X0xPQ0FUSU9OICBTdGFjazsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4g
KyAgICBQWEVOVkJEX1BETyAgICAgICAgICAgICAgICAgUGRvOw0KPiArICAgIEtFVkVOVCAgICAg
ICAgICAgICAgICAgICAgICBDb21wbGV0ZTsNCj4gKyAgICBQSVJQICAgICAgICAgICAgICAgICAg
ICAgICAgSXJwOw0KPiArICAgIElPX1NUQVRVU19CTE9DSyAgICAgICAgICAgICBTdGF0dXNCbG9j
azsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gICAgICAgICAgU3RhY2s7DQo+ICsgICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAgICBQV0NIQVIgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBU
YXJnZXRJZDsNCj4gKyAgICBERUNMQVJFX1VOSUNPREVfU1RSSU5HX1NJWkUoVW5pU3RyLCA0KTsN
Cj4gDQo+ICAgICAgS2VJbml0aWFsaXplRXZlbnQoJkNvbXBsZXRlLCBOb3RpZmljYXRpb25FdmVu
dCwgRkFMU0UpOw0KPiANCj4gICAgICBJcnAgPSBJb0J1aWxkU3luY2hyb25vdXNGc2RSZXF1ZXN0
KElSUF9NSl9QTlAsIERldmljZU9iamVjdCwgTlVMTCwgMCwNCj4gTlVMTCwgJkNvbXBsZXRlLCAm
U3RhdHVzQmxvY2spOw0KPiAtICAgIGlmICghSXJwKQ0KPiAtICAgICAgICByZXR1cm4gU1RBVFVT
X0lOU1VGRklDSUVOVF9SRVNPVVJDRVM7DQo+ICsgICAgaWYgKElycCA9PSBOVUxMKQ0KPiArICAg
ICAgICBnb3RvIGZhaWwxOw0KPiANCj4gICAgICBTdGFjayA9IElvR2V0TmV4dElycFN0YWNrTG9j
YXRpb24oSXJwKTsNCj4gICAgICBTdGFjay0+TWlub3JGdW5jdGlvbiA9IElSUF9NTl9RVUVSWV9J
RDsNCj4gQEAgLTE5OTQsMjEgKzE5MzQsMTAgQEAgX19GZG9TZW5kUXVlcnlJZCgNCj4gICAgICAg
ICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdCgmQ29tcGxldGUsIEV4ZWN1dGl2ZSwgS2Vy
bmVsTW9kZSwNCj4gRkFMU0UsIE5VTEwpOw0KPiAgICAgICAgICBTdGF0dXMgPSBTdGF0dXNCbG9j
ay5TdGF0dXM7DQo+ICAgICAgfQ0KPiAtICAgIGlmIChOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4g
LSAgICAgICAgKl9TdHJpbmcgPSAoUFdDSEFSKVN0YXR1c0Jsb2NrLkluZm9ybWF0aW9uOw0KPiAt
ICAgIH0NCj4gLSAgICByZXR1cm4gU3RhdHVzOw0KPiAtfQ0KPiAtDQo+IC1fX2NoZWNrUmV0dXJu
DQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgTlRTVEFUVVMNCj4gLV9fRmRvRXh0cmFjdFRhcmdldElk
KA0KPiAtICAgIF9faW4gUFdDSEFSICAgICAgICAgICAgICAgICAgICAgIFN0cmluZywNCj4gLSAg
ICBfX291dCBQVUxPTkcgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZA0KPiAtICAgICkNCj4g
LXsNCj4gLSAgICBERUNMQVJFX1VOSUNPREVfU1RSSU5HX1NJWkUoVW5pU3RyLCA0KTsNCj4gLQ0K
PiArICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwyOw0K
PiArDQo+ICsgICAgU3RyaW5nID0gKFBXQ0hBUilTdGF0dXNCbG9jay5JbmZvcm1hdGlvbjsNCj4g
ICAgICBzd2l0Y2ggKHdjc2xlbihTdHJpbmcpKSB7DQo+ICAgICAgY2FzZSAzOg0KPiAgICAgICAg
ICBVbmlTdHIuTGVuZ3RoID0gMSAqIHNpemVvZihXQ0hBUik7DQo+IEBAIC0yMDIyLDc1ICsxOTUx
LDEyMiBAQCBfX0Zkb0V4dHJhY3RUYXJnZXRJZCgNCj4gICAgICAgICAgVW5pU3RyX2J1ZmZlclsy
XSA9IFVOSUNPREVfTlVMTDsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgZGVmYXVsdDoNCj4g
LSAgICAgICAgcmV0dXJuIFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsNCj4gKyAgICAgICAgZ290
byBmYWlsMzsNCj4gICAgICB9DQo+IA0KPiAtICAgIHJldHVybiBSdGxVbmljb2RlU3RyaW5nVG9J
bnRlZ2VyKCZVbmlTdHIsIDE2LCBUYXJnZXRJZCk7DQo+ICsgICAgU3RhdHVzID0gUnRsVW5pY29k
ZVN0cmluZ1RvSW50ZWdlcigmVW5pU3RyLCAxNiwgJlRhcmdldElkKTsNCj4gKyAgICBpZiAoIU5U
X1NVQ0NFU1MoU3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBmYWlsNDsNCj4gKw0KPiArICAgIFBk
byA9IF9fRmRvR2V0UGRvKEZkbywgVGFyZ2V0SWQpOw0KPiArICAgIGlmIChQZG8gPT0gTlVMTCkN
Cj4gKyAgICAgICAgZ290byBmYWlsNTsNCj4gKw0KPiArICAgIFBkb1NldERldmljZU9iamVjdChQ
ZG8sIERldmljZU9iamVjdCk7DQo+ICsgICAgRXhGcmVlUG9vbChTdHJpbmcpOw0KPiArDQo+ICsg
ICAgcmV0dXJuIFBkbzsNCj4gKw0KPiArZmFpbDU6DQo+ICtmYWlsNDoNCj4gK2ZhaWwzOg0KPiAr
ICAgIEV4RnJlZVBvb2woU3RyaW5nKTsNCj4gK2ZhaWwyOg0KPiArZmFpbDE6DQo+ICsgICAgcmV0
dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gLV9fRmRv
U2V0RGV2aWNlT2JqZWN0KA0KPiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAg
IEZkbywNCj4gLSAgICBfX2luIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwN
Cj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QNCj4g
K19fY2hlY2tSZXR1cm4NCj4gK05UU1RBVFVTDQo+ICtGZG9Gb3J3YXJkUG5wKA0KPiArICAgIF9f
aW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgRmRvLA0KPiArICAgIF9faW4gUERFVklDRV9P
QkpFQ1QgICAgICAgICAgICAgRGV2aWNlT2JqZWN0LA0KPiArICAgIF9faW4gUElSUCAgICAgICAg
ICAgICAgICAgICAgICAgSXJwDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFBYRU5WQkRfUERPIFBk
bzsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrOw0KPiArICAgIFBYRU5WQkRfUERP
ICAgICAgICAgUGRvOw0KPiANCj4gLSAgICBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFRhcmdldElk
KTsNCj4gLSAgICBpZiAoUGRvKSB7DQo+IC0gICAgICAgIFBkb1NldERldmljZU9iamVjdChQZG8s
IERldmljZU9iamVjdCk7DQo+IC0gICAgICAgIFBkb0RlcmVmZXJlbmNlKFBkbyk7DQo+ICsgICAg
QVNTRVJUM1AoRGV2aWNlT2JqZWN0LCAhPSwgRmRvLT5EZXZpY2VPYmplY3QpOw0KPiArDQo+ICsg
ICAgUGRvID0gRmRvR2V0UGRvRnJvbURldmljZU9iamVjdChGZG8sIERldmljZU9iamVjdCk7DQo+
ICsgICAgaWYgKFBkbyAhPSBOVUxMKSB7DQo+ICsgICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7
DQo+ICsgICAgICAgIHJldHVybiBQZG9EaXNwYXRjaFBucChQZG8sIERldmljZU9iamVjdCwgSXJw
KTsNCj4gICAgICB9DQo+ICsNCj4gKyAgICBTdGFjayA9IElvR2V0Q3VycmVudElycFN0YWNrTG9j
YXRpb24oSXJwKTsNCj4gKyAgICBpZiAoU3RhY2stPk1pbm9yRnVuY3Rpb24gPT0gSVJQX01OX1FV
RVJZX0lEICYmDQo+ICsgICAgICAgIFN0YWNrLT5QYXJhbWV0ZXJzLlF1ZXJ5SWQuSWRUeXBlID09
IEJ1c1F1ZXJ5RGV2aWNlSUQpIHsNCj4gKyAgICAgICAgUGRvID0gRmRvTWFwRGV2aWNlT2JqZWN0
VG9QZG8oRmRvLCBEZXZpY2VPYmplY3QpOw0KPiArICAgICAgICBpZiAoUGRvICE9IE5VTEwpIHsN
Cj4gKyAgICAgICAgICAgIEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+ICsgICAgICAgICAgICByZXR1
cm4gUGRvRGlzcGF0Y2hQbnAoUGRvLCBEZXZpY2VPYmplY3QsIElycCk7DQo+ICsgICAgICAgIH0N
Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiArICAgIHJldHVy
biBEcml2ZXJEaXNwYXRjaFBucChEZXZpY2VPYmplY3QsIElycCk7DQo+ICB9DQo+IA0KPiAgX19j
aGVja1JldHVybg0KPiAgTlRTVEFUVVMNCj4gLUZkb01hcERldmljZU9iamVjdFRvUGRvKA0KPiAr
RmRvRGlzcGF0Y2hQbnAoDQo+ICAgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICAg
RmRvLA0KPiAgICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgICAgIERldmljZU9iamVj
dCwNCj4gICAgICBfX2luIFBJUlAgICAgICAgICAgICAgICAgICAgICAgICBJcnANCj4gICAgICAp
DQo+ICB7DQo+IC0gICAgUFdDSEFSICAgICAgICAgICAgICBTdHJpbmc7DQo+IC0gICAgTlRTVEFU
VVMgICAgICAgICAgICBTdGF0dXM7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICBUYXJnZXRJ
ZDsNCj4gLSAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrTG9jYXRpb247DQo+IC0gICAgVUNI
QVIgICAgICAgICAgICAgICBNaW5vcjsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNr
Ow0KPiANCj4gLSAgICBTdGFja0xvY2F0aW9uID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlv
bihJcnApOw0KPiAtICAgIE1pbm9yID0gU3RhY2tMb2NhdGlvbi0+TWlub3JGdW5jdGlvbjsNCj4g
KyAgICBBU1NFUlQzUChEZXZpY2VPYmplY3QsID09LCBGZG8tPkRldmljZU9iamVjdCk7DQo+IA0K
PiAtICAgIGlmICghKFN0YWNrTG9jYXRpb24tPk1pbm9yRnVuY3Rpb24gPT0gSVJQX01OX1FVRVJZ
X0lEICYmDQo+IC0gICAgICAgICAgU3RhY2tMb2NhdGlvbi0+UGFyYW1ldGVycy5RdWVyeUlkLklk
VHlwZSA9PSBCdXNRdWVyeURldmljZUlEKSkgew0KPiAtICAgICAgICBnb3RvIGRvbmU7DQo+IC0g
ICAgfQ0KPiArICAgIFN0YWNrID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJcnApOw0K
PiANCj4gLSAgICBTdGF0dXMgPSBfX0Zkb1NlbmRRdWVyeUlkKERldmljZU9iamVjdCwgJlN0cmlu
Zyk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgZ290byBk
b25lOw0KPiAtICAgIH0NCj4gKyAgICBzd2l0Y2ggKFN0YWNrLT5NaW5vckZ1bmN0aW9uKSB7DQo+
ICsgICAgY2FzZSBJUlBfTU5fUkVNT1ZFX0RFVklDRToNCj4gKyAgICAgICAgVmVyYm9zZSgiRkRP
OklSUF9NTl9SRU1PVkVfREVWSUNFXG4iKTsNCj4gKyAgICAgICAgRmRvRDBUb0QzKEZkbyk7DQo+
ICsgICAgICAgIEZkb1VucGx1Z1JlcXVlc3QoRmRvLCBGQUxTRSk7DQo+ICsgICAgICAgIC8vIGRy
b3AgcmVmLWNvdW50IGFjcXVpcmVkIGluIERyaXZlckdldEZkbyAqYmVmb3JlKiBkZXN0cm95aW5n
IEZkbw0KPiArICAgICAgICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiArICAgICAgICBfX0Zkb1Rl
cm1pbmF0ZShGZG8pOw0KPiArICAgICAgICBicmVhazsNCj4gDQo+IC0gICAgU3RhdHVzID0gX19G
ZG9FeHRyYWN0VGFyZ2V0SWQoU3RyaW5nLCAmVGFyZ2V0SWQpOw0KPiAtICAgIGlmIChOVF9TVUND
RVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgX19GZG9TZXREZXZpY2VPYmplY3QoRmRvLCBUYXJn
ZXRJZCwgRGV2aWNlT2JqZWN0KTsNCj4gLSAgICAgICAgVmVyYm9zZSgiMHglcCAtLT4gVGFyZ2V0
ICVkICgld3MpXG4iLCBEZXZpY2VPYmplY3QsIFRhcmdldElkLCBTdHJpbmcpOw0KPiAtICAgIH0N
Cj4gKyAgICBjYXNlIElSUF9NTl9RVUVSWV9ERVZJQ0VfUkVMQVRJT05TOg0KPiArICAgICAgICBp
ZiAoU3RhY2stPlBhcmFtZXRlcnMuUXVlcnlEZXZpY2VSZWxhdGlvbnMuVHlwZSA9PSBCdXNSZWxh
dGlvbnMpIHsNCj4gKyAgICAgICAgICAgIEtJUlFMICAgSXJxbDsNCj4gKyAgICAgICAgICAgIEJP
T0xFQU4gTmVlZEludmFsaWRhdGU7DQo+ICsgICAgICAgICAgICBCT09MRUFOIE5lZWRSZWJvb3Q7
DQo+IA0KPiAtICAgIC8vIFN0cmluZyBpcyBQYWdlZFBvb2wsIGFsbG9jYXRlZCBieSBsb3dlciBk
cml2ZXINCj4gLSAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksIDw9LCBBUENfTEVWRUwp
Ow0KPiAtICAgIEV4RnJlZVBvb2woU3RyaW5nKTsNCj4gKyAgICAgICAgICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gDQo+IC1kb25lOg0KPiAtICAgIFN0YXR1cyA9
IERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTs7DQo+IC0gICAgaWYgKCFOVF9T
VUNDRVNTKFN0YXR1cykpIHsNCj4gLSAgICAgICAgVmVyYm9zZSgiJTAyeDolcyAtPiAlMDh4XG4i
LCBNaW5vciwgUG5wTWlub3JGdW5jdGlvbk5hbWUoTWlub3IpLA0KPiBTdGF0dXMpOw0KPiArICAg
ICAgICAgICAgaWYgKEZkby0+RGV2aWNlUG93ZXIgPT0gUG93ZXJEZXZpY2VEMCkgew0KPiArICAg
ICAgICAgICAgICAgIEZkb1NjYW5UYXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAmTmVlZFJl
Ym9vdCk7DQo+ICsgICAgICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgIE5lZWRJ
bnZhbGlkYXRlID0gRkFMU0U7DQo+ICsgICAgICAgICAgICAgICAgTmVlZFJlYm9vdCA9IEZBTFNF
Ow0KPiArICAgICAgICAgICAgfQ0KPiArDQo+ICsgICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9j
aygmRmRvLT5Mb2NrLCBJcnFsKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKE5lZWRJbnZhbGlk
YXRlKQ0KPiArICAgICAgICAgICAgICAgIEZkb0xvZ1RhcmdldHMoIlFVRVJZX1JFTEFUSU9OUyIs
IEZkbyk7DQo+ICsNCj4gKyAgICAgICAgICAgIGlmIChOZWVkUmVib290KQ0KPiArICAgICAgICAg
ICAgICAgIERyaXZlck5vdGlmeUluc3RhbGxlcigpOw0KPiArICAgICAgICB9DQo+ICsgICAgICAg
IEZkb0RlcmVmZXJlbmNlKEZkbyk7DQo+ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgZGVm
YXVsdDoNCj4gKyAgICAgICAgRmRvRGVyZWZlcmVuY2UoRmRvKTsNCj4gKyAgICAgICAgYnJlYWs7
DQo+ICAgICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsNCj4gKyAgICByZXR1cm4gRHJp
dmVyRGlzcGF0Y2hQbnAoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
PiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gUG93ZXIgSGFuZGxlcg0KPiAgX19jaGVja1Jl
dHVybg0KPiAgTlRTVEFUVVMNCj4gIEZkb0Rpc3BhdGNoUG93ZXIoDQo+IEBAIC0yMTAzLDYgKzIw
NzksOCBAQCBGZG9EaXNwYXRjaFBvd2VyKA0KPiAgICAgIFBPV0VSX1NUQVRFX1RZUEUgICAgUG93
ZXJUeXBlOw0KPiAgICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiANCj4gKyAgICBB
U1NFUlQzUChEZXZpY2VPYmplY3QsID09LCBGZG8tPkRldmljZU9iamVjdCk7DQo+ICsNCj4gICAg
ICBTdGFjayA9IElvR2V0Q3VycmVudElycFN0YWNrTG9jYXRpb24oSXJwKTsNCj4gICAgICBQb3dl
clR5cGUgPSBTdGFjay0+UGFyYW1ldGVycy5Qb3dlci5UeXBlOw0KPiANCj4gQEAgLTIxMzYsOCAr
MjExNCw2IEBAIEZkb0Rpc3BhdGNoUG93ZXIoDQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0N
Cj4gDQo+IC0NCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gLS8vIEludGVyZmFjZXMN
Cj4gIFBYRU5CVVNfU1RPUkVfSU5URVJGQUNFDQo+ICBGZG9BY3F1aXJlU3RvcmUoDQo+ICAgICAg
X19pbiBQWEVOVkJEX0ZETyAgICBGZG8NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZmRvLmgg
Yi9zcmMveGVudmJkL2Zkby5oDQo+IGluZGV4IGE5ZTM2YzIuLjk2YzY2YTUgMTAwNjQ0DQo+IC0t
LSBhL3NyYy94ZW52YmQvZmRvLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9mZG8uaA0KPiBAQCAtMTI3
LDMxICsxMjcsMjIgQEAgRmRvU3RhcnRJbygNCj4gICAgICBfX2luIFBTQ1NJX1JFUVVFU1RfQkxP
Q0sgICAgICAgICBTcmINCj4gICAgICApOw0KPiANCj4gLS8vIFBuUCBIYW5kbGVyDQo+ICBfX2No
ZWNrUmV0dXJuDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gLUZkb0Rpc3BhdGNoUG5wKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4gLSAgICBfX2luIFBERVZJ
Q0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+IC0gICAgX19pbiBQSVJQICAg
ICAgICAgICAgICAgICAgICAgICAgSXJwDQo+IC0gICAgKTsNCj4gLQ0KPiAtX19jaGVja1JldHVy
bg0KPiAtZXh0ZXJuIFBYRU5WQkRfUERPDQo+IC1GZG9HZXRQZG9Gcm9tRGV2aWNlT2JqZWN0KA0K
PiAtICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAgICAgICAgIEZkbywNCj4gLSAgICBfX2lu
IFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICBEZXZpY2VPYmplY3QNCj4gK0Zkb0ZvcndhcmRQ
bnAoDQo+ICsgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICBGZG8sDQo+ICsgICAg
X19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+ICsgICAgX19p
biBQSVJQICAgICAgICAgICAgICAgICAgICAgICBJcnANCj4gICAgICApOw0KPiANCj4gIF9fY2hl
Y2tSZXR1cm4NCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAtRmRvTWFwRGV2aWNlT2JqZWN0VG9QZG8o
DQo+ICtGZG9EaXNwYXRjaFBucCgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAg
ICAgICBGZG8sDQo+ICAgICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgRGV2aWNl
T2JqZWN0LA0KPiAgICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgICAgIElycA0KPiAg
ICAgICk7DQo+IA0KPiAtLy8gUG93ZXIgSGFuZGxlcg0KPiAgX19jaGVja1JldHVybg0KPiAgZXh0
ZXJuIE5UU1RBVFVTDQo+ICBGZG9EaXNwYXRjaFBvd2VyKA0KPiBAQCAtMTYwLDcgKzE1MSw2IEBA
IEZkb0Rpc3BhdGNoUG93ZXIoDQo+ICAgICAgX19pbiBQSVJQICAgICAgICAgICAgICAgICAgICAg
ICAgSXJwDQo+ICAgICAgKTsNCj4gDQo+IC0vLyBJbnRlcmZhY2VzDQo+ICBleHRlcm4gUFhFTkJV
U19TVE9SRV9JTlRFUkZBQ0UNCj4gIEZkb0FjcXVpcmVTdG9yZSgNCj4gICAgICBfX2luIFBYRU5W
QkRfRkRPICAgICAgICAgICAgICAgICBGZG8NCj4gLS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0K
PiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:49:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:49:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhoZ-0003ra-1f; Mon, 09 May 2016 09:49:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhoY-0003qb-3j
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:49:22 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 C4/93-02833-D1D50375; Mon, 09 May 2016 09:49:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQlcm1iD
 cYPtyRYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMWPhJqaCBekVz9d1MDcwfkntYuTkkBDwk3i/
 7CobiM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sILawQKTEpBk/WSFqoiT+XnvLBmEbS
 XzoOwZmswioSByYvRSshlfAXeL62S0sILaQQJ3Enid9YPM5BVwltsyYBmYzCshKfGlcDbVLXO
 LWE4gbJAQEJJbsOc8MYYtKvHz8jxXCNpDYunQf0EwOoHpNifW79CFaFSWmdD9kh1grKHFy5hO
 otSoSWx4fgBrDLbHy8x+WCYyis5Bsm4UwaRaSSbOQTFrAyLKKUaM4tagstUjX0FwvqSgzPaMk
 NzEzR9fQ0EQvN7W4ODE9NScxqVgvOT93EyMwTuoZGBh3MP487XmIUZKDSUmU15VRL1yILyk/p
 TIjsTgjvqg0J7X4EKMMB4eSBO/saINwIcGi1PTUirTMHGDEwqQlOHiURHjXg6R5iwsSc4sz0y
 FSpxgVpcR5w0ASAiCJjNI8uDZYkrjEKCslzMvIwMAgxFOQWpSbWYIq/4pRnINRSZh3CsgUnsy
 8Erjpr4AWMwEtlmPTB1lckoiQkmpg1P0qq1D0X/p0MufSVN4bBZu1rn536Y4uZ4zdM2HXEWVz
 jcleXLN/RrG8rQ+87ec7P+hpF4v7IkfvtQ11pkd9ao3NqrwvXn6dlG6xed1dRqE/zz5elizey
 Byx3lqE09p+X1ma0pY2tunTNjXbKpc/9rxRYpYybWv47+CGVR2lrSpX94taSt9UYinOSDTUYi
 4qTgQAxejD4g0DAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1462787356!38359826!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10381 invoked from network); 9 May 2016 09:49:16 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:49:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077426"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/9] Rework enumeration code to work at
 PASSIVE_LEVEL
Thread-Index: AQHRnKIbirymuhEjSkig0msc3DS+2J+wdrhA
Date: Mon, 9 May 2016 09:49:13 +0000
Message-ID: <6c228a180d5b420584e5fa391fec04ec@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-5-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-5-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/9] Rework enumeration code to work
	at	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA0LzldIFJld29yayBlbnVtZXJhdGlvbiBjb2RlIHRvIHdv
cmsgYXQNCj4gUEFTU0lWRV9MRVZFTA0KPiANCj4gVGhlcmUgc2hvdWxkIGJlIG5vIG5lZWQgdG8g
aG9sZCBhIGxvY2sgd2hpbHN0IGVudW1lcmF0aW5nIGRldmljZXMsIGFzIHRoZQ0KPiBpbnNlcnRp
b24gYW5kIHJlbW92YWwgb2YgUGRvcyBpcyBhbHJlYWR5IGxvY2tlZC4gVGhpcyBhbGxvd3MgbW9y
ZQ0KPiBvcGVyYXRpb25zIHRvIGJlIGNhbGxlZCBkdXJpbmcgY3JlYXRpb24vZGVsZXRpb24gb2Yg
UGRvcw0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXgu
Y29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4N
Cg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAxNTEgKysrKysrKysrKysrKysrKysrKysr
KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2Vk
LCA2NyBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9z
cmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCA5MzlmYjQ3Li5kYWRm
Mzk1IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQv
ZmRvLmMNCj4gQEAgLTkwLDggKzkwLDkgQEAgc3RydWN0IF9YRU5WQkRfRkRPIHsNCj4gICAgICBQ
WEVOVkJEX1BETyAgICAgICAgICAgICAgICAgVGFyZ2V0c1tYRU5WQkRfTUFYX1RBUkdFVFNdOw0K
PiANCj4gICAgICAvLyBUYXJnZXQgRW51bWVyYXRpb24NCj4gLSAgICBQWEVOVkJEX1RIUkVBRCAg
ICAgICAgICAgICAgUmVzY2FuVGhyZWFkOw0KPiAtICAgIFBYRU5CVVNfU1RPUkVfV0FUQ0ggICAg
ICAgICBSZXNjYW5XYXRjaDsNCj4gKyAgICBQWEVOVkJEX1RIUkVBRCAgICAgICAgICAgICAgU2Nh
blRocmVhZDsNCj4gKyAgICBLRVZFTlQgICAgICAgICAgICAgICAgICAgICAgU2NhbkV2ZW50Ow0K
PiArICAgIFBYRU5CVVNfU1RPUkVfV0FUQ0ggICAgICAgICBTY2FuV2F0Y2g7DQo+ICAgICAgUFhF
TlZCRF9USFJFQUQgICAgICAgICAgICAgIEZyb250ZW5kVGhyZWFkOw0KPiANCj4gICAgICAvLyBT
dGF0aXN0aWNzDQo+IEBAIC0xMjMsNiArMTI0LDIxIEBAIF9fRmRvU2V0RGV2aWNlUG93ZXJTdGF0
ZSgNCj4gICAgICByZXR1cm4gQ2hhbmdlZDsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgRk9SQ0VJTkxJ
TkUgREVWSUNFX1BPV0VSX1NUQVRFDQo+ICtfX0Zkb0dldERldmljZVBvd2VyU3RhdGUoDQo+ICsg
ICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICBGZG8NCj4gKyAgICApDQo+ICt7DQo+
ICsgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOw0KPiArICAgIERFVklDRV9QT1dFUl9TVEFU
RSAgU3RhdGU7DQo+ICsNCj4gKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRmRvLT5Mb2NrLCAmSXJx
bCk7DQo+ICsgICAgU3RhdGUgPSBGZG8tPkRldmljZVBvd2VyOw0KPiArICAgIEtlUmVsZWFzZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssIElycWwpOw0KPiArDQo+ICsgICAgcmV0dXJuIFN0YXRlOw0KPiAr
fQ0KPiArDQo+ICBfX2NoZWNrUmV0dXJuDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgUFhFTlZCRF9Q
RE8NCj4gIF9fRmRvR2V0UGRvQWx3YXlzKA0KPiBAQCAtNjM3LDQ4ICs2NTMsMjkgQEAgX19GZG9F
bnVtZXJhdGUoDQo+ICAgICAgICAgICpOZWVkSW52YWxpZGF0ZSB8PSAoTlRfU1VDQ0VTUyhTdGF0
dXMpKSA/IFRSVUUgOiBGQUxTRTsNCj4gICAgICB9DQo+ICB9DQo+IC1fX2Rydl9yZXF1aXJlc0lS
UUwoRElTUEFUQ0hfTEVWRUwpDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAg
RmRvU2NhblRhcmdldHMoDQo+IC0gICAgX19pbiAgICBQWEVOVkJEX0ZETyBGZG8sDQo+IC0gICAg
X19vdXQgICBQQk9PTEVBTiAgICBOZWVkSW52YWxpZGF0ZSwNCj4gLSAgICBfX291dCAgIFBCT09M
RUFOICAgIE5lZWRSZWJvb3QNCj4gKyAgICBfX2luICAgIFBYRU5WQkRfRkRPIEZkbw0KPiAgICAg
ICkNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICAgICAgU3RhdHVzOw0KPiAgICAgIFBDSEFSICAg
ICAgICAgICBCdWZmZXI7DQo+ICsgICAgQk9PTEVBTiAgICAgICAgIE5lZWRJbnZhbGlkYXRlOw0K
PiArICAgIEJPT0xFQU4gICAgICAgICBOZWVkUmVib290Ow0KPiANCj4gLSAgICBUcmFjZSgiPT09
PT5cbiIpOw0KPiAgICAgIFN0YXR1cyA9IFhFTkJVU19TVE9SRShEaXJlY3RvcnksICZGZG8tPlN0
b3JlLCBOVUxMLCAiZGV2aWNlIiwNCj4gRmRvRW51bShGZG8pLCAmQnVmZmVyKTsNCj4gLSAgICBp
ZiAoTlRfU1VDQ0VTUyhTdGF0dXMpKSB7DQo+IC0gICAgICAgIF9fRmRvRW51bWVyYXRlKEZkbywg
QnVmZmVyLCBOZWVkSW52YWxpZGF0ZSwgTmVlZFJlYm9vdCk7DQo+IC0gICAgICAgIFhFTkJVU19T
VE9SRShGcmVlLCAmRmRvLT5TdG9yZSwgQnVmZmVyKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAg
ICAgICAqTmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4gLSAgICAgICAgKk5lZWRSZWJvb3QgPSBG
QUxTRTsNCj4gLSAgICB9DQo+IC0gICAgVHJhY2UoIjw9PT09XG4iKTsNCj4gLX0NCj4gKyAgICBp
ZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiANCj4gLXN0YXRp
YyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+IC1GZG9Mb2dUYXJnZXRzKA0KPiAtICAgIF9faW4g
UENIQVIgICAgICAgICAgICAgICAgICAgICAgIENhbGxlciwNCj4gLSAgICBfX2luIFBYRU5WQkRf
RkRPICAgICAgICAgICAgICAgICBGZG8NCj4gLSAgICApDQo+IC17DQo+IC0gICAgVUxPTkcgICBU
YXJnZXRJZDsNCj4gKyAgICBfX0Zkb0VudW1lcmF0ZShGZG8sIEJ1ZmZlciwgJk5lZWRJbnZhbGlk
YXRlLCAmTmVlZFJlYm9vdCk7DQo+ICsgICAgWEVOQlVTX1NUT1JFKEZyZWUsICZGZG8tPlN0b3Jl
LCBCdWZmZXIpOw0KPiANCj4gLSAgICBWZXJib3NlKCIlcyA9PT0+XG4iLCBDYWxsZXIpOw0KPiAt
ICAgIGZvciAoVGFyZ2V0SWQgPSAwOyBUYXJnZXRJZCA8IFhFTlZCRF9NQVhfVEFSR0VUUzsgKytU
YXJnZXRJZCkgew0KPiAtICAgICAgICBQWEVOVkJEX1BETyBQZG8gPSBfX0Zkb0dldFBkb0Fsd2F5
cyhGZG8sIFRhcmdldElkLA0KPiBfX0ZVTkNUSU9OX18pOw0KPiAtICAgICAgICBpZiAoUGRvKSB7
DQo+IC0gICAgICAgICAgICBjb25zdCBDSEFSKiBSZWFzb24gPSBQZG9NaXNzaW5nUmVhc29uKFBk
byk7DQo+IC0gICAgICAgICAgICBWZXJib3NlKCIlcyA6IFRhcmdldFslZF0gPSAweCVwICVzXG4i
LCBDYWxsZXIsIFRhcmdldElkLCBQZG8sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAoUmVh
c29uICE9IE5VTEwpID8gUmVhc29uIDogIihwcmVzZW50KSIpOw0KPiAtICAgICAgICAgICAgUGRv
RGVyZWZlcmVuY2UoUGRvKTsNCj4gLSAgICAgICAgfQ0KPiArICAgIGlmIChOZWVkSW52YWxpZGF0
ZSkgew0KPiArICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3RlZCwg
RmRvLCAwKTsNCj4gKyAgICB9DQo+ICsgICAgaWYgKE5lZWRSZWJvb3QpIHsNCj4gKyAgICAgICAg
RHJpdmVyTm90aWZ5SW5zdGFsbGVyKCk7DQo+ICAgICAgfQ0KPiAtICAgIFZlcmJvc2UoIiVzIDw9
PT1cbiIsIENhbGxlcik7DQo+ICB9DQo+IA0KPiAgX19jaGVja1JldHVybg0KPiBAQCAtNjg5LDMz
ICs2ODYsMjcgQEAgRmRvU2NhbigNCj4gICAgICApDQo+ICB7DQo+ICAgICAgUFhFTlZCRF9GRE8g
ICAgIEZkbyA9IENvbnRleHQ7DQo+ICsgICAgUEtFVkVOVCAgICAgICAgIEV2ZW50ID0gVGhyZWFk
R2V0RXZlbnQoVGhyZWFkKTsNCj4gDQo+ICAgICAgZm9yICg7Oykgew0KPiAtICAgICAgICBLSVJR
TCAgIElycWw7DQo+IC0gICAgICAgIEJPT0xFQU4gTmVlZEludmFsaWRhdGU7DQo+IC0gICAgICAg
IEJPT0xFQU4gTmVlZFJlYm9vdDsNCj4gLQ0KPiAtICAgICAgICBpZiAoIVRocmVhZFdhaXQoVGhy
ZWFkKSkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLSAgICAgICAgaWYgKEZkby0+RGV2aWNlUG93
ZXIgIT0gUG93ZXJEZXZpY2VEMCkgew0KPiAtICAgICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2so
JkZkby0+TG9jaywgSXJxbCk7DQo+IC0gICAgICAgICAgICBjb250aW51ZTsNCj4gLSAgICAgICAg
fQ0KPiAtDQo+IC0gICAgICAgIEZkb1NjYW5UYXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAm
TmVlZFJlYm9vdCk7DQo+ICsgICAgICAgIFRyYWNlKCJ3YWl0aW5nLi4uXG4iKTsNCj4gDQo+IC0g
ICAgICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGZG8tPkxvY2ssIElycWwpOw0KPiArICAgICAgICAo
Vk9JRCkgS2VXYWl0Rm9yU2luZ2xlT2JqZWN0KEV2ZW50LA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEV4ZWN1dGl2ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBLZXJuZWxNb2RlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwpOw0KPiArICAgICAgICBLZUNsZWFyRXZlbnQoRXZlbnQpOw0KPiANCj4gLSAgICAgICAg
aWYgKE5lZWRJbnZhbGlkYXRlKSB7DQo+IC0gICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJTY2Fu
VGhyZWFkIiwgRmRvKTsNCj4gLSAgICAgICAgICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0No
YW5nZURldGVjdGVkLCBGZG8sIDApOw0KPiAtICAgICAgICB9DQo+ICsgICAgICAgIGlmIChUaHJl
YWRJc0FsZXJ0ZWQoVGhyZWFkKSkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAg
ICAgIGlmIChfX0Zkb0dldERldmljZVBvd2VyU3RhdGUoRmRvKSA9PSBQb3dlckRldmljZUQwKQ0K
PiArICAgICAgICAgICAgRmRvU2NhblRhcmdldHMoRmRvKTsNCj4gDQo+IC0gICAgICAgIGlmIChO
ZWVkUmVib290KQ0KPiAtICAgICAgICAgICAgRHJpdmVyTm90aWZ5SW5zdGFsbGVyKCk7DQo+ICsg
ICAgICAgIEtlU2V0RXZlbnQoJkZkby0+U2NhbkV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZBTFNF
KTsNCj4gICAgICB9DQo+ICsgICAgS2VTZXRFdmVudCgmRmRvLT5TY2FuRXZlbnQsIElPX05PX0lO
Q1JFTUVOVCwgRkFMU0UpOw0KPiANCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+ICB9
DQo+IEBAIC0xMjU4LDEzICsxMjQ5LDEzIEBAIF9fRmRvRDNUb0QwKA0KPiANCj4gICAgICAoVk9J
RCkgRmRvU2V0RGlzdHJpYnV0aW9uKEZkbyk7DQo+IA0KPiAtICAgIEFTU0VSVDNQKEZkby0+UmVz
Y2FuV2F0Y2gsID09LCBOVUxMKTsNCj4gKyAgICBBU1NFUlQzUChGZG8tPlNjYW5XYXRjaCwgPT0s
IE5VTEwpOw0KPiAgICAgIFN0YXR1cyA9IFhFTkJVU19TVE9SRShXYXRjaEFkZCwNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZkby0+U3RvcmUsDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXZpY2UiLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZG9FbnVtKEZk
byksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEdldEV2ZW50KEZkby0+UmVz
Y2FuVGhyZWFkKSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJkZkby0+UmVzY2FuV2F0
Y2gpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRHZXRFdmVudChGZG8tPlNj
YW5UaHJlYWQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmRmRvLT5TY2FuV2F0Y2gp
Ow0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3RvIGZhaWwx
Ow0KPiANCj4gQEAgLTEzMDAsOCArMTI5MSw4IEBAIF9fRmRvRDBUb0QzKA0KPiANCj4gICAgICAo
Vk9JRCkgWEVOQlVTX1NUT1JFKFdhdGNoUmVtb3ZlLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkZkby0+U3RvcmUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBGZG8tPlJlc2Nhbldh
dGNoKTsNCj4gLSAgICBGZG8tPlJlc2NhbldhdGNoID0gTlVMTDsNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgIEZkby0+U2NhbldhdGNoKTsNCj4gKyAgICBGZG8tPlNjYW5XYXRjaCA9IE5VTEw7
DQo+IA0KPiAgICAgIEZkb0NsZWFyRGlzdHJpYnV0aW9uKEZkbyk7DQo+IA0KPiBAQCAtMTUzOSw2
ICsxNTMwLDcgQEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2Nr
KCZGZG8tPlRhcmdldExvY2spOw0KPiAgICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZGZG8tPkxv
Y2spOw0KPiAgICAgIEtlSW5pdGlhbGl6ZUV2ZW50KCZGZG8tPlJlbW92ZUV2ZW50LCBTeW5jaHJv
bml6YXRpb25FdmVudCwgRkFMU0UpOw0KPiArICAgIEtlSW5pdGlhbGl6ZUV2ZW50KCZGZG8tPlNj
YW5FdmVudCwgU3luY2hyb25pemF0aW9uRXZlbnQsIEZBTFNFKTsNCj4gDQo+ICAgICAgRmRvLT5S
ZWZlcmVuY2VDb3VudCA9IDE7DQo+ICAgICAgRmRvLT5TaWduYXR1cmUgPSBGRE9fU0lHTkFUVVJF
Ow0KPiBAQCAtMTU1OSw3ICsxNTUxLDcgQEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgICAgICBn
b3RvIGZhaWwyOw0KPiANCj4gICAgICAvLyBzdGFydCBlbnVtIHRocmVhZA0KPiAtICAgIFN0YXR1
cyA9IFRocmVhZENyZWF0ZShGZG9TY2FuLCBGZG8sICZGZG8tPlJlc2NhblRocmVhZCk7DQo+ICsg
ICAgU3RhdHVzID0gVGhyZWFkQ3JlYXRlKEZkb1NjYW4sIEZkbywgJkZkby0+U2NhblRocmVhZCk7
DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDM7
DQo+IA0KPiBAQCAtMTU4OCw5ICsxNTgwLDkgQEAgZmFpbDU6DQo+ICAgICAgRmRvLT5Gcm9udGVu
ZFRocmVhZCA9IE5VTEw7DQo+ICBmYWlsNDoNCj4gICAgICBFcnJvcigiZmFpbDRcbiIpOw0KPiAt
ICAgIFRocmVhZEFsZXJ0KEZkby0+UmVzY2FuVGhyZWFkKTsNCj4gLSAgICBUaHJlYWRKb2luKEZk
by0+UmVzY2FuVGhyZWFkKTsNCj4gLSAgICBGZG8tPlJlc2NhblRocmVhZCA9IE5VTEw7DQo+ICsg
ICAgVGhyZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gKyAgICBUaHJlYWRKb2luKEZkby0+
U2NhblRocmVhZCk7DQo+ICsgICAgRmRvLT5TY2FuVGhyZWFkID0gTlVMTDsNCj4gIGZhaWwzOg0K
PiAgICAgIEVycm9yKCJmYWlsM1xuIik7DQo+ICAgICAgX19GZG9aZXJvSW50ZXJmYWNlcyhGZG8p
Ow0KPiBAQCAtMTYzNCw5ICsxNjI2LDkgQEAgX19GZG9UZXJtaW5hdGUoDQo+ICAgICAgRmRvLT5G
cm9udGVuZFRocmVhZCA9IE5VTEw7DQo+IA0KPiAgICAgIC8vIHN0b3AgZW51bSB0aHJlYWQNCj4g
LSAgICBUaHJlYWRBbGVydChGZG8tPlJlc2NhblRocmVhZCk7DQo+IC0gICAgVGhyZWFkSm9pbihG
ZG8tPlJlc2NhblRocmVhZCk7DQo+IC0gICAgRmRvLT5SZXNjYW5UaHJlYWQgPSBOVUxMOw0KPiAr
ICAgIFRocmVhZEFsZXJ0KEZkby0+U2NhblRocmVhZCk7DQo+ICsgICAgVGhyZWFkSm9pbihGZG8t
PlNjYW5UaHJlYWQpOw0KPiArICAgIEZkby0+U2NhblRocmVhZCA9IE5VTEw7DQo+IA0KPiAgICAg
IC8vIGNsZWFyIGRldmljZSBvYmplY3RzDQo+ICAgICAgRmRvLT5EZXZpY2VPYmplY3QgPSBOVUxM
Ow0KPiBAQCAtMTY2OSw2ICsxNjYxLDcgQEAgX19GZG9UZXJtaW5hdGUoDQo+ICAgICAgUnRsWmVy
b01lbW9yeSgmRmRvLT5FbnVtZXJhdG9yLCBzaXplb2YoQU5TSV9TVFJJTkcpKTsNCj4gICAgICBS
dGxaZXJvTWVtb3J5KCZGZG8tPlRhcmdldExvY2ssIHNpemVvZihLU1BJTl9MT0NLKSk7DQo+ICAg
ICAgUnRsWmVyb01lbW9yeSgmRmRvLT5Mb2NrLCBzaXplb2YoS1NQSU5fTE9DSykpOw0KPiArICAg
IFJ0bFplcm9NZW1vcnkoJkZkby0+U2NhbkV2ZW50LCBzaXplb2YoS0VWRU5UKSk7DQo+ICAgICAg
UnRsWmVyb01lbW9yeSgmRmRvLT5SZW1vdmVFdmVudCwgc2l6ZW9mKEtFVkVOVCkpOw0KPiAgICAg
IF9fRmRvWmVyb0ludGVyZmFjZXMoRmRvKTsNCj4gDQo+IEBAIC0yMDM1LDI2ICsyMDI4LDE2IEBA
IEZkb0Rpc3BhdGNoUG5wKA0KPiANCj4gICAgICBjYXNlIElSUF9NTl9RVUVSWV9ERVZJQ0VfUkVM
QVRJT05TOg0KPiAgICAgICAgICBpZiAoU3RhY2stPlBhcmFtZXRlcnMuUXVlcnlEZXZpY2VSZWxh
dGlvbnMuVHlwZSA9PSBCdXNSZWxhdGlvbnMpIHsNCj4gLSAgICAgICAgICAgIEtJUlFMICAgSXJx
bDsNCj4gLSAgICAgICAgICAgIEJPT0xFQU4gTmVlZEludmFsaWRhdGU7DQo+IC0gICAgICAgICAg
ICBCT09MRUFOIE5lZWRSZWJvb3Q7DQo+IC0NCj4gLSAgICAgICAgICAgIEtlQWNxdWlyZVNwaW5M
b2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLQ0KPiAtICAgICAgICAgICAgaWYgKEZkby0+RGV2
aWNlUG93ZXIgPT0gUG93ZXJEZXZpY2VEMCkgew0KPiAtICAgICAgICAgICAgICAgIEZkb1NjYW5U
YXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAmTmVlZFJlYm9vdCk7DQo+IC0gICAgICAgICAg
ICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gRkFMU0U7DQo+
IC0gICAgICAgICAgICAgICAgTmVlZFJlYm9vdCA9IEZBTFNFOw0KPiAtICAgICAgICAgICAgfQ0K
PiAtDQo+IC0gICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9jaygmRmRvLT5Mb2NrLCBJcnFsKTsN
Cj4gKyAgICAgICAgICAgIEtlQ2xlYXJFdmVudCgmRmRvLT5TY2FuRXZlbnQpOw0KPiArICAgICAg
ICAgICAgVGhyZWFkV2FrZShGZG8tPlNjYW5UaHJlYWQpOw0KPiANCj4gLSAgICAgICAgICAgIGlm
IChOZWVkSW52YWxpZGF0ZSkNCj4gLSAgICAgICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJRVUVS
WV9SRUxBVElPTlMiLCBGZG8pOw0KPiArICAgICAgICAgICAgVHJhY2UoIndhaXRpbmcgZm9yIHNj
YW4gdGhyZWFkXG4iKTsNCj4gDQo+IC0gICAgICAgICAgICBpZiAoTmVlZFJlYm9vdCkNCj4gLSAg
ICAgICAgICAgICAgICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gKyAgICAgICAgICAgIChW
T0lEKSBLZVdhaXRGb3JTaW5nbGVPYmplY3QoJkZkby0+U2NhbkV2ZW50LA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtlcm5lbE1vZGUsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAg
ICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiAgICAgICAgICBicmVhazsNCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:49:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:49:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhoZ-0003ra-1f; Mon, 09 May 2016 09:49:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhoY-0003qb-3j
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:49:22 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 C4/93-02833-D1D50375; Mon, 09 May 2016 09:49:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQlcm1iD
 cYPtyRYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMWPhJqaCBekVz9d1MDcwfkntYuTkkBDwk3i/
 7CobiM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sILawQKTEpBk/WSFqoiT+XnvLBmEbS
 XzoOwZmswioSByYvRSshlfAXeL62S0sILaQQJ3Enid9YPM5BVwltsyYBmYzCshKfGlcDbVLXO
 LWE4gbJAQEJJbsOc8MYYtKvHz8jxXCNpDYunQf0EwOoHpNifW79CFaFSWmdD9kh1grKHFy5hO
 otSoSWx4fgBrDLbHy8x+WCYyis5Bsm4UwaRaSSbOQTFrAyLKKUaM4tagstUjX0FwvqSgzPaMk
 NzEzR9fQ0EQvN7W4ODE9NScxqVgvOT93EyMwTuoZGBh3MP487XmIUZKDSUmU15VRL1yILyk/p
 TIjsTgjvqg0J7X4EKMMB4eSBO/saINwIcGi1PTUirTMHGDEwqQlOHiURHjXg6R5iwsSc4sz0y
 FSpxgVpcR5w0ASAiCJjNI8uDZYkrjEKCslzMvIwMAgxFOQWpSbWYIq/4pRnINRSZh3CsgUnsy
 8Erjpr4AWMwEtlmPTB1lckoiQkmpg1P0qq1D0X/p0MufSVN4bBZu1rn536Y4uZ4zdM2HXEWVz
 jcleXLN/RrG8rQ+87ec7P+hpF4v7IkfvtQ11pkd9ao3NqrwvXn6dlG6xed1dRqE/zz5elizey
 Byx3lqE09p+X1ma0pY2tunTNjXbKpc/9rxRYpYybWv47+CGVR2lrSpX94taSt9UYinOSDTUYi
 4qTgQAxejD4g0DAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1462787356!38359826!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10381 invoked from network); 9 May 2016 09:49:16 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:49:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077426"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/9] Rework enumeration code to work at
 PASSIVE_LEVEL
Thread-Index: AQHRnKIbirymuhEjSkig0msc3DS+2J+wdrhA
Date: Mon, 9 May 2016 09:49:13 +0000
Message-ID: <6c228a180d5b420584e5fa391fec04ec@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-5-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-5-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/9] Rework enumeration code to work
	at	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA0LzldIFJld29yayBlbnVtZXJhdGlvbiBjb2RlIHRvIHdv
cmsgYXQNCj4gUEFTU0lWRV9MRVZFTA0KPiANCj4gVGhlcmUgc2hvdWxkIGJlIG5vIG5lZWQgdG8g
aG9sZCBhIGxvY2sgd2hpbHN0IGVudW1lcmF0aW5nIGRldmljZXMsIGFzIHRoZQ0KPiBpbnNlcnRp
b24gYW5kIHJlbW92YWwgb2YgUGRvcyBpcyBhbHJlYWR5IGxvY2tlZC4gVGhpcyBhbGxvd3MgbW9y
ZQ0KPiBvcGVyYXRpb25zIHRvIGJlIGNhbGxlZCBkdXJpbmcgY3JlYXRpb24vZGVsZXRpb24gb2Yg
UGRvcw0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXgu
Y29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4N
Cg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAxNTEgKysrKysrKysrKysrKysrKysrKysr
KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2Vk
LCA2NyBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9z
cmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCA5MzlmYjQ3Li5kYWRm
Mzk1IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQv
ZmRvLmMNCj4gQEAgLTkwLDggKzkwLDkgQEAgc3RydWN0IF9YRU5WQkRfRkRPIHsNCj4gICAgICBQ
WEVOVkJEX1BETyAgICAgICAgICAgICAgICAgVGFyZ2V0c1tYRU5WQkRfTUFYX1RBUkdFVFNdOw0K
PiANCj4gICAgICAvLyBUYXJnZXQgRW51bWVyYXRpb24NCj4gLSAgICBQWEVOVkJEX1RIUkVBRCAg
ICAgICAgICAgICAgUmVzY2FuVGhyZWFkOw0KPiAtICAgIFBYRU5CVVNfU1RPUkVfV0FUQ0ggICAg
ICAgICBSZXNjYW5XYXRjaDsNCj4gKyAgICBQWEVOVkJEX1RIUkVBRCAgICAgICAgICAgICAgU2Nh
blRocmVhZDsNCj4gKyAgICBLRVZFTlQgICAgICAgICAgICAgICAgICAgICAgU2NhbkV2ZW50Ow0K
PiArICAgIFBYRU5CVVNfU1RPUkVfV0FUQ0ggICAgICAgICBTY2FuV2F0Y2g7DQo+ICAgICAgUFhF
TlZCRF9USFJFQUQgICAgICAgICAgICAgIEZyb250ZW5kVGhyZWFkOw0KPiANCj4gICAgICAvLyBT
dGF0aXN0aWNzDQo+IEBAIC0xMjMsNiArMTI0LDIxIEBAIF9fRmRvU2V0RGV2aWNlUG93ZXJTdGF0
ZSgNCj4gICAgICByZXR1cm4gQ2hhbmdlZDsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgRk9SQ0VJTkxJ
TkUgREVWSUNFX1BPV0VSX1NUQVRFDQo+ICtfX0Zkb0dldERldmljZVBvd2VyU3RhdGUoDQo+ICsg
ICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICBGZG8NCj4gKyAgICApDQo+ICt7DQo+
ICsgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOw0KPiArICAgIERFVklDRV9QT1dFUl9TVEFU
RSAgU3RhdGU7DQo+ICsNCj4gKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRmRvLT5Mb2NrLCAmSXJx
bCk7DQo+ICsgICAgU3RhdGUgPSBGZG8tPkRldmljZVBvd2VyOw0KPiArICAgIEtlUmVsZWFzZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssIElycWwpOw0KPiArDQo+ICsgICAgcmV0dXJuIFN0YXRlOw0KPiAr
fQ0KPiArDQo+ICBfX2NoZWNrUmV0dXJuDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgUFhFTlZCRF9Q
RE8NCj4gIF9fRmRvR2V0UGRvQWx3YXlzKA0KPiBAQCAtNjM3LDQ4ICs2NTMsMjkgQEAgX19GZG9F
bnVtZXJhdGUoDQo+ICAgICAgICAgICpOZWVkSW52YWxpZGF0ZSB8PSAoTlRfU1VDQ0VTUyhTdGF0
dXMpKSA/IFRSVUUgOiBGQUxTRTsNCj4gICAgICB9DQo+ICB9DQo+IC1fX2Rydl9yZXF1aXJlc0lS
UUwoRElTUEFUQ0hfTEVWRUwpDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAg
RmRvU2NhblRhcmdldHMoDQo+IC0gICAgX19pbiAgICBQWEVOVkJEX0ZETyBGZG8sDQo+IC0gICAg
X19vdXQgICBQQk9PTEVBTiAgICBOZWVkSW52YWxpZGF0ZSwNCj4gLSAgICBfX291dCAgIFBCT09M
RUFOICAgIE5lZWRSZWJvb3QNCj4gKyAgICBfX2luICAgIFBYRU5WQkRfRkRPIEZkbw0KPiAgICAg
ICkNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICAgICAgU3RhdHVzOw0KPiAgICAgIFBDSEFSICAg
ICAgICAgICBCdWZmZXI7DQo+ICsgICAgQk9PTEVBTiAgICAgICAgIE5lZWRJbnZhbGlkYXRlOw0K
PiArICAgIEJPT0xFQU4gICAgICAgICBOZWVkUmVib290Ow0KPiANCj4gLSAgICBUcmFjZSgiPT09
PT5cbiIpOw0KPiAgICAgIFN0YXR1cyA9IFhFTkJVU19TVE9SRShEaXJlY3RvcnksICZGZG8tPlN0
b3JlLCBOVUxMLCAiZGV2aWNlIiwNCj4gRmRvRW51bShGZG8pLCAmQnVmZmVyKTsNCj4gLSAgICBp
ZiAoTlRfU1VDQ0VTUyhTdGF0dXMpKSB7DQo+IC0gICAgICAgIF9fRmRvRW51bWVyYXRlKEZkbywg
QnVmZmVyLCBOZWVkSW52YWxpZGF0ZSwgTmVlZFJlYm9vdCk7DQo+IC0gICAgICAgIFhFTkJVU19T
VE9SRShGcmVlLCAmRmRvLT5TdG9yZSwgQnVmZmVyKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAg
ICAgICAqTmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4gLSAgICAgICAgKk5lZWRSZWJvb3QgPSBG
QUxTRTsNCj4gLSAgICB9DQo+IC0gICAgVHJhY2UoIjw9PT09XG4iKTsNCj4gLX0NCj4gKyAgICBp
ZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiANCj4gLXN0YXRp
YyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+IC1GZG9Mb2dUYXJnZXRzKA0KPiAtICAgIF9faW4g
UENIQVIgICAgICAgICAgICAgICAgICAgICAgIENhbGxlciwNCj4gLSAgICBfX2luIFBYRU5WQkRf
RkRPICAgICAgICAgICAgICAgICBGZG8NCj4gLSAgICApDQo+IC17DQo+IC0gICAgVUxPTkcgICBU
YXJnZXRJZDsNCj4gKyAgICBfX0Zkb0VudW1lcmF0ZShGZG8sIEJ1ZmZlciwgJk5lZWRJbnZhbGlk
YXRlLCAmTmVlZFJlYm9vdCk7DQo+ICsgICAgWEVOQlVTX1NUT1JFKEZyZWUsICZGZG8tPlN0b3Jl
LCBCdWZmZXIpOw0KPiANCj4gLSAgICBWZXJib3NlKCIlcyA9PT0+XG4iLCBDYWxsZXIpOw0KPiAt
ICAgIGZvciAoVGFyZ2V0SWQgPSAwOyBUYXJnZXRJZCA8IFhFTlZCRF9NQVhfVEFSR0VUUzsgKytU
YXJnZXRJZCkgew0KPiAtICAgICAgICBQWEVOVkJEX1BETyBQZG8gPSBfX0Zkb0dldFBkb0Fsd2F5
cyhGZG8sIFRhcmdldElkLA0KPiBfX0ZVTkNUSU9OX18pOw0KPiAtICAgICAgICBpZiAoUGRvKSB7
DQo+IC0gICAgICAgICAgICBjb25zdCBDSEFSKiBSZWFzb24gPSBQZG9NaXNzaW5nUmVhc29uKFBk
byk7DQo+IC0gICAgICAgICAgICBWZXJib3NlKCIlcyA6IFRhcmdldFslZF0gPSAweCVwICVzXG4i
LCBDYWxsZXIsIFRhcmdldElkLCBQZG8sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAoUmVh
c29uICE9IE5VTEwpID8gUmVhc29uIDogIihwcmVzZW50KSIpOw0KPiAtICAgICAgICAgICAgUGRv
RGVyZWZlcmVuY2UoUGRvKTsNCj4gLSAgICAgICAgfQ0KPiArICAgIGlmIChOZWVkSW52YWxpZGF0
ZSkgew0KPiArICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3RlZCwg
RmRvLCAwKTsNCj4gKyAgICB9DQo+ICsgICAgaWYgKE5lZWRSZWJvb3QpIHsNCj4gKyAgICAgICAg
RHJpdmVyTm90aWZ5SW5zdGFsbGVyKCk7DQo+ICAgICAgfQ0KPiAtICAgIFZlcmJvc2UoIiVzIDw9
PT1cbiIsIENhbGxlcik7DQo+ICB9DQo+IA0KPiAgX19jaGVja1JldHVybg0KPiBAQCAtNjg5LDMz
ICs2ODYsMjcgQEAgRmRvU2NhbigNCj4gICAgICApDQo+ICB7DQo+ICAgICAgUFhFTlZCRF9GRE8g
ICAgIEZkbyA9IENvbnRleHQ7DQo+ICsgICAgUEtFVkVOVCAgICAgICAgIEV2ZW50ID0gVGhyZWFk
R2V0RXZlbnQoVGhyZWFkKTsNCj4gDQo+ICAgICAgZm9yICg7Oykgew0KPiAtICAgICAgICBLSVJR
TCAgIElycWw7DQo+IC0gICAgICAgIEJPT0xFQU4gTmVlZEludmFsaWRhdGU7DQo+IC0gICAgICAg
IEJPT0xFQU4gTmVlZFJlYm9vdDsNCj4gLQ0KPiAtICAgICAgICBpZiAoIVRocmVhZFdhaXQoVGhy
ZWFkKSkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLSAgICAgICAgaWYgKEZkby0+RGV2aWNlUG93
ZXIgIT0gUG93ZXJEZXZpY2VEMCkgew0KPiAtICAgICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2so
JkZkby0+TG9jaywgSXJxbCk7DQo+IC0gICAgICAgICAgICBjb250aW51ZTsNCj4gLSAgICAgICAg
fQ0KPiAtDQo+IC0gICAgICAgIEZkb1NjYW5UYXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAm
TmVlZFJlYm9vdCk7DQo+ICsgICAgICAgIFRyYWNlKCJ3YWl0aW5nLi4uXG4iKTsNCj4gDQo+IC0g
ICAgICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGZG8tPkxvY2ssIElycWwpOw0KPiArICAgICAgICAo
Vk9JRCkgS2VXYWl0Rm9yU2luZ2xlT2JqZWN0KEV2ZW50LA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEV4ZWN1dGl2ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBLZXJuZWxNb2RlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwpOw0KPiArICAgICAgICBLZUNsZWFyRXZlbnQoRXZlbnQpOw0KPiANCj4gLSAgICAgICAg
aWYgKE5lZWRJbnZhbGlkYXRlKSB7DQo+IC0gICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJTY2Fu
VGhyZWFkIiwgRmRvKTsNCj4gLSAgICAgICAgICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0No
YW5nZURldGVjdGVkLCBGZG8sIDApOw0KPiAtICAgICAgICB9DQo+ICsgICAgICAgIGlmIChUaHJl
YWRJc0FsZXJ0ZWQoVGhyZWFkKSkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAg
ICAgIGlmIChfX0Zkb0dldERldmljZVBvd2VyU3RhdGUoRmRvKSA9PSBQb3dlckRldmljZUQwKQ0K
PiArICAgICAgICAgICAgRmRvU2NhblRhcmdldHMoRmRvKTsNCj4gDQo+IC0gICAgICAgIGlmIChO
ZWVkUmVib290KQ0KPiAtICAgICAgICAgICAgRHJpdmVyTm90aWZ5SW5zdGFsbGVyKCk7DQo+ICsg
ICAgICAgIEtlU2V0RXZlbnQoJkZkby0+U2NhbkV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZBTFNF
KTsNCj4gICAgICB9DQo+ICsgICAgS2VTZXRFdmVudCgmRmRvLT5TY2FuRXZlbnQsIElPX05PX0lO
Q1JFTUVOVCwgRkFMU0UpOw0KPiANCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+ICB9
DQo+IEBAIC0xMjU4LDEzICsxMjQ5LDEzIEBAIF9fRmRvRDNUb0QwKA0KPiANCj4gICAgICAoVk9J
RCkgRmRvU2V0RGlzdHJpYnV0aW9uKEZkbyk7DQo+IA0KPiAtICAgIEFTU0VSVDNQKEZkby0+UmVz
Y2FuV2F0Y2gsID09LCBOVUxMKTsNCj4gKyAgICBBU1NFUlQzUChGZG8tPlNjYW5XYXRjaCwgPT0s
IE5VTEwpOw0KPiAgICAgIFN0YXR1cyA9IFhFTkJVU19TVE9SRShXYXRjaEFkZCwNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZkby0+U3RvcmUsDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXZpY2UiLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZG9FbnVtKEZk
byksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEdldEV2ZW50KEZkby0+UmVz
Y2FuVGhyZWFkKSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJkZkby0+UmVzY2FuV2F0
Y2gpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRHZXRFdmVudChGZG8tPlNj
YW5UaHJlYWQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmRmRvLT5TY2FuV2F0Y2gp
Ow0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3RvIGZhaWwx
Ow0KPiANCj4gQEAgLTEzMDAsOCArMTI5MSw4IEBAIF9fRmRvRDBUb0QzKA0KPiANCj4gICAgICAo
Vk9JRCkgWEVOQlVTX1NUT1JFKFdhdGNoUmVtb3ZlLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkZkby0+U3RvcmUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBGZG8tPlJlc2Nhbldh
dGNoKTsNCj4gLSAgICBGZG8tPlJlc2NhbldhdGNoID0gTlVMTDsNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgIEZkby0+U2NhbldhdGNoKTsNCj4gKyAgICBGZG8tPlNjYW5XYXRjaCA9IE5VTEw7
DQo+IA0KPiAgICAgIEZkb0NsZWFyRGlzdHJpYnV0aW9uKEZkbyk7DQo+IA0KPiBAQCAtMTUzOSw2
ICsxNTMwLDcgQEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2Nr
KCZGZG8tPlRhcmdldExvY2spOw0KPiAgICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZGZG8tPkxv
Y2spOw0KPiAgICAgIEtlSW5pdGlhbGl6ZUV2ZW50KCZGZG8tPlJlbW92ZUV2ZW50LCBTeW5jaHJv
bml6YXRpb25FdmVudCwgRkFMU0UpOw0KPiArICAgIEtlSW5pdGlhbGl6ZUV2ZW50KCZGZG8tPlNj
YW5FdmVudCwgU3luY2hyb25pemF0aW9uRXZlbnQsIEZBTFNFKTsNCj4gDQo+ICAgICAgRmRvLT5S
ZWZlcmVuY2VDb3VudCA9IDE7DQo+ICAgICAgRmRvLT5TaWduYXR1cmUgPSBGRE9fU0lHTkFUVVJF
Ow0KPiBAQCAtMTU1OSw3ICsxNTUxLDcgQEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgICAgICBn
b3RvIGZhaWwyOw0KPiANCj4gICAgICAvLyBzdGFydCBlbnVtIHRocmVhZA0KPiAtICAgIFN0YXR1
cyA9IFRocmVhZENyZWF0ZShGZG9TY2FuLCBGZG8sICZGZG8tPlJlc2NhblRocmVhZCk7DQo+ICsg
ICAgU3RhdHVzID0gVGhyZWFkQ3JlYXRlKEZkb1NjYW4sIEZkbywgJkZkby0+U2NhblRocmVhZCk7
DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDM7
DQo+IA0KPiBAQCAtMTU4OCw5ICsxNTgwLDkgQEAgZmFpbDU6DQo+ICAgICAgRmRvLT5Gcm9udGVu
ZFRocmVhZCA9IE5VTEw7DQo+ICBmYWlsNDoNCj4gICAgICBFcnJvcigiZmFpbDRcbiIpOw0KPiAt
ICAgIFRocmVhZEFsZXJ0KEZkby0+UmVzY2FuVGhyZWFkKTsNCj4gLSAgICBUaHJlYWRKb2luKEZk
by0+UmVzY2FuVGhyZWFkKTsNCj4gLSAgICBGZG8tPlJlc2NhblRocmVhZCA9IE5VTEw7DQo+ICsg
ICAgVGhyZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gKyAgICBUaHJlYWRKb2luKEZkby0+
U2NhblRocmVhZCk7DQo+ICsgICAgRmRvLT5TY2FuVGhyZWFkID0gTlVMTDsNCj4gIGZhaWwzOg0K
PiAgICAgIEVycm9yKCJmYWlsM1xuIik7DQo+ICAgICAgX19GZG9aZXJvSW50ZXJmYWNlcyhGZG8p
Ow0KPiBAQCAtMTYzNCw5ICsxNjI2LDkgQEAgX19GZG9UZXJtaW5hdGUoDQo+ICAgICAgRmRvLT5G
cm9udGVuZFRocmVhZCA9IE5VTEw7DQo+IA0KPiAgICAgIC8vIHN0b3AgZW51bSB0aHJlYWQNCj4g
LSAgICBUaHJlYWRBbGVydChGZG8tPlJlc2NhblRocmVhZCk7DQo+IC0gICAgVGhyZWFkSm9pbihG
ZG8tPlJlc2NhblRocmVhZCk7DQo+IC0gICAgRmRvLT5SZXNjYW5UaHJlYWQgPSBOVUxMOw0KPiAr
ICAgIFRocmVhZEFsZXJ0KEZkby0+U2NhblRocmVhZCk7DQo+ICsgICAgVGhyZWFkSm9pbihGZG8t
PlNjYW5UaHJlYWQpOw0KPiArICAgIEZkby0+U2NhblRocmVhZCA9IE5VTEw7DQo+IA0KPiAgICAg
IC8vIGNsZWFyIGRldmljZSBvYmplY3RzDQo+ICAgICAgRmRvLT5EZXZpY2VPYmplY3QgPSBOVUxM
Ow0KPiBAQCAtMTY2OSw2ICsxNjYxLDcgQEAgX19GZG9UZXJtaW5hdGUoDQo+ICAgICAgUnRsWmVy
b01lbW9yeSgmRmRvLT5FbnVtZXJhdG9yLCBzaXplb2YoQU5TSV9TVFJJTkcpKTsNCj4gICAgICBS
dGxaZXJvTWVtb3J5KCZGZG8tPlRhcmdldExvY2ssIHNpemVvZihLU1BJTl9MT0NLKSk7DQo+ICAg
ICAgUnRsWmVyb01lbW9yeSgmRmRvLT5Mb2NrLCBzaXplb2YoS1NQSU5fTE9DSykpOw0KPiArICAg
IFJ0bFplcm9NZW1vcnkoJkZkby0+U2NhbkV2ZW50LCBzaXplb2YoS0VWRU5UKSk7DQo+ICAgICAg
UnRsWmVyb01lbW9yeSgmRmRvLT5SZW1vdmVFdmVudCwgc2l6ZW9mKEtFVkVOVCkpOw0KPiAgICAg
IF9fRmRvWmVyb0ludGVyZmFjZXMoRmRvKTsNCj4gDQo+IEBAIC0yMDM1LDI2ICsyMDI4LDE2IEBA
IEZkb0Rpc3BhdGNoUG5wKA0KPiANCj4gICAgICBjYXNlIElSUF9NTl9RVUVSWV9ERVZJQ0VfUkVM
QVRJT05TOg0KPiAgICAgICAgICBpZiAoU3RhY2stPlBhcmFtZXRlcnMuUXVlcnlEZXZpY2VSZWxh
dGlvbnMuVHlwZSA9PSBCdXNSZWxhdGlvbnMpIHsNCj4gLSAgICAgICAgICAgIEtJUlFMICAgSXJx
bDsNCj4gLSAgICAgICAgICAgIEJPT0xFQU4gTmVlZEludmFsaWRhdGU7DQo+IC0gICAgICAgICAg
ICBCT09MRUFOIE5lZWRSZWJvb3Q7DQo+IC0NCj4gLSAgICAgICAgICAgIEtlQWNxdWlyZVNwaW5M
b2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLQ0KPiAtICAgICAgICAgICAgaWYgKEZkby0+RGV2
aWNlUG93ZXIgPT0gUG93ZXJEZXZpY2VEMCkgew0KPiAtICAgICAgICAgICAgICAgIEZkb1NjYW5U
YXJnZXRzKEZkbywgJk5lZWRJbnZhbGlkYXRlLCAmTmVlZFJlYm9vdCk7DQo+IC0gICAgICAgICAg
ICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gRkFMU0U7DQo+
IC0gICAgICAgICAgICAgICAgTmVlZFJlYm9vdCA9IEZBTFNFOw0KPiAtICAgICAgICAgICAgfQ0K
PiAtDQo+IC0gICAgICAgICAgICBLZVJlbGVhc2VTcGluTG9jaygmRmRvLT5Mb2NrLCBJcnFsKTsN
Cj4gKyAgICAgICAgICAgIEtlQ2xlYXJFdmVudCgmRmRvLT5TY2FuRXZlbnQpOw0KPiArICAgICAg
ICAgICAgVGhyZWFkV2FrZShGZG8tPlNjYW5UaHJlYWQpOw0KPiANCj4gLSAgICAgICAgICAgIGlm
IChOZWVkSW52YWxpZGF0ZSkNCj4gLSAgICAgICAgICAgICAgICBGZG9Mb2dUYXJnZXRzKCJRVUVS
WV9SRUxBVElPTlMiLCBGZG8pOw0KPiArICAgICAgICAgICAgVHJhY2UoIndhaXRpbmcgZm9yIHNj
YW4gdGhyZWFkXG4iKTsNCj4gDQo+IC0gICAgICAgICAgICBpZiAoTmVlZFJlYm9vdCkNCj4gLSAg
ICAgICAgICAgICAgICBEcml2ZXJOb3RpZnlJbnN0YWxsZXIoKTsNCj4gKyAgICAgICAgICAgIChW
T0lEKSBLZVdhaXRGb3JTaW5nbGVPYmplY3QoJkZkby0+U2NhbkV2ZW50LA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtlcm5lbE1vZGUsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAg
ICBGZG9EZXJlZmVyZW5jZShGZG8pOw0KPiAgICAgICAgICBicmVhazsNCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:51:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:51:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhq7-0004Ov-SK; Mon, 09 May 2016 09:50:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhq6-0004Oc-5R
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:50:58 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
 D2/5D-03753-18D50375; Mon, 09 May 2016 09:50:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQrch1iD
 coGGxjsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNaPy/hr1geUTF01tvmRoYp4R3MXJwSAj4Sbz+
 advFyMnBJqAjsfTofCYQW0SgQOL7+3nMIDazgJrE9f1drCC2sICPxMPbOxkhanwl9vX3MUPYR
 hK9cxaD2SwCKhJrrtxnB7F5BdwlZr06C9YrJFAncep2C5jNKeAqce3QdLA5jAKyEl8aV0PtEp
 e49QTiBgkBAYkle84zQ9iiEi8f/2OFsA0kti7dxwJyPrOApsT6XfoQrYoSU7ofQq0VlDg58wk
 LxFoViS2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahenFpUllqka6KXVJSZnlGS
 m5iZo2toaKKXm1pcnJiempOYVKyXnJ+7iREYIwxAsINxxULnQ4ySHExKoryujHrhQnxJ+SmVG
 YnFGfFFpTmpxYcYZTg4lCR4uWMMwoUEi1LTUyvSMnOA0QqTluDgURLhVQVJ8xYXJOYWZ6ZDpE
 4xKkqJ856LBkoIgCQySvPg2mAJ4hKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeb1AxvNk5pX
 ATX8FtJgJaLEcmz7I4pJEhJRUA2N0cejMDv/JJteOTE7T2LQoLvmHxYFFT3LLBB/v15BcLMCq
 yLrwG8fFsghxV8npCxZIfnrbueH9s+060Vvl7ypoHA26xavDWTThzl6plw/O7XL5yXE8hlWpu
 k55T3b+32cTBLdLxPVPUGLIUlv1LV97RcOdXdkcin2Fs5+k1/FWvS7ZemJ34TolluKMREMt5q
 LiRADiF6vECwMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1462787456!40349218!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1856 invoked from network); 9 May 2016 09:50:56 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:50:56 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077505"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 5/9] Dont create Pdo for emulated devices
Thread-Index: AQHRnKIfQ6vwvMnj/0eNTkeCYlPNB5+wdzOA
Date: Mon, 9 May 2016 09:50:55 +0000
Message-ID: <c13639f5bd56495b83ed5a27003ff5a5@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-6-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-6-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 5/9] Dont create Pdo for emulated devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA1LzldIERvbnQgY3JlYXRlIFBkbyBmb3IgZW11bGF0ZWQg
ZGV2aWNlcw0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAyOSArKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9wZG8uYyB8IDU0ICsrKysrKysrKysrKysrKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9wZG8uaCB8
ICAzICstLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlv
bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9m
ZG8uYw0KPiBpbmRleCBkYWRmMzk1Li5kYWI3YWUxIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJk
L2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTU4Myw3ICs1ODMsNiBAQCBf
X0Zkb0VudW1lcmF0ZSgNCj4gICAgICBVTE9ORyAgICAgICAgICAgICAgIFRhcmdldElkOw0KPiAg
ICAgIFBDSEFSICAgICAgICAgICAgICAgRGV2aWNlOw0KPiAgICAgIFBYRU5WQkRfUERPICAgICAg
ICAgUGRvOw0KPiAtICAgIE5UU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPiANCj4gICAgICAq
TmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4gICAgICAqTmVlZFJlYm9vdCA9IEZBTFNFOw0KPiBA
QCAtNjIxLDcgKzYyMCw2IEBAIF9fRmRvRW51bWVyYXRlKA0KPiANCj4gICAgICAvLyBhZGQgbmV3
IHRhcmdldHMNCj4gICAgICBmb3IgKERldmljZSA9IERldmljZXM7ICpEZXZpY2U7IERldmljZSA9
IF9fTmV4dFN6KERldmljZSkpIHsNCj4gLSAgICAgICAgQk9PTEVBTiAgICAgRW11bGF0ZWRVbnBs
dWdnZWQ7DQo+ICAgICAgICAgIFhFTlZCRF9ERVZJQ0VfVFlQRSAgRGV2aWNlVHlwZTsNCj4gDQo+
ICAgICAgICAgIFRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UpOw0KPiBAQCAtNjM5LDE4ICs2
MzcsMjEgQEAgX19GZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gICAg
ICAgICAgfQ0KPiANCj4gLSAgICAgICAgRW11bGF0ZWRVbnBsdWdnZWQgPSBfX0Zkb0lzUGRvVW5w
bHVnZ2VkKEZkbywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZkb0VudW0oRmRvKSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERldmljZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRhcmdldElkKTsNCj4gLSAgICAgICAgKk5lZWRSZWJvb3QgfD0g
IUVtdWxhdGVkVW5wbHVnZ2VkOw0KPiAtDQo+IC0gICAgICAgIFN0YXR1cyA9IFBkb0NyZWF0ZShG
ZG8sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UsDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVtdWxhdGVkVW5wbHVnZ2VkLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFk
R2V0RXZlbnQoRmRvLT5Gcm9udGVuZFRocmVhZCksIERldmljZVR5cGUpOw0KPiAtICAgICAgICAq
TmVlZEludmFsaWRhdGUgfD0gKE5UX1NVQ0NFU1MoU3RhdHVzKSkgPyBUUlVFIDogRkFMU0U7DQo+
ICsgICAgICAgIGlmICghX19GZG9Jc1Bkb1VucGx1Z2dlZChGZG8sDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZkb0VudW0oRmRvKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRGV2aWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
YXJnZXRJZCkpIHsNCj4gKyAgICAgICAgICAgICpOZWVkUmVib290ID0gVFJVRTsNCj4gKyAgICAg
ICAgICAgIGNvbnRpbnVlOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgaWYgKFBkb0Ny
ZWF0ZShGZG8sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgIFRhcmdldElkLA0KPiArICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEdl
dEV2ZW50KEZkby0+RnJvbnRlbmRUaHJlYWQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgIERl
dmljZVR5cGUpKSB7DQo+ICsgICAgICAgICAgICAqTmVlZEludmFsaWRhdGUgPSBUUlVFOw0KPiAr
ICAgICAgICB9DQo+ICAgICAgfQ0KPiAgfQ0KPiAgc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZP
SUQNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcGRvLmMgYi9zcmMveGVudmJkL3Bkby5jDQo+
IGluZGV4IDY3ODAwZTQuLmM3ZDhiMmIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvcGRvLmMN
Cj4gKysrIGIvc3JjL3hlbnZiZC9wZG8uYw0KPiBAQCAtODcsNyArODcsNiBAQCBzdHJ1Y3QgX1hF
TlZCRF9QRE8gew0KPiAgICAgIFhFTlZCRF9ERVZJQ0VfVFlQRSAgICAgICAgICBEZXZpY2VUeXBl
Ow0KPiANCj4gICAgICAvLyBTdGF0ZQ0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICBFbXVsYXRlZFVucGx1Z2dlZDsNCj4gICAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAg
UGF1c2VkOw0KPiANCj4gICAgICAvLyBFamVjdA0KPiBAQCAtMjg1LDggKzI4NCw3IEBAIFBkb0Rl
YnVnQ2FsbGJhY2soDQo+ICAgICAgICAgICAgICAgICAgICJQRE86IERldmljZVBvd2VyU3RhdGUg
JXNcbiIsDQo+ICAgICAgICAgICAgICAgICAgIFBvd2VyRGV2aWNlU3RhdGVOYW1lKFBkby0+RGV2
aWNlUG93ZXJTdGF0ZSkpOw0KPiAgICAgIFhFTkJVU19ERUJVRyhQcmludGYsIERlYnVnSW50ZXJm
YWNlLA0KPiAtICAgICAgICAgICAgICAgICAiUERPOiAlcyAlc1xuIiwNCj4gLSAgICAgICAgICAg
ICAgICAgUGRvLT5FbXVsYXRlZFVucGx1Z2dlZCA/ICJQViIgOiAiRU1VTEFURUQiLA0KPiArICAg
ICAgICAgICAgICAgICAiUERPOiAlc1xuIiwNCj4gICAgICAgICAgICAgICAgICAgUGRvLT5NaXNz
aW5nID8gUGRvLT5SZWFzb24gOiAiTm90IE1pc3NpbmciKTsNCj4gDQo+ICAgICAgWEVOQlVTX0RF
QlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsDQo+IEBAIC00MDAsMTUgKzM5OCw2IEBAIFBkb01p
c3NpbmdSZWFzb24oDQo+ICAgICAgcmV0dXJuIFJlYXNvbjsNCj4gIH0NCj4gDQo+IC1fX2NoZWNr
UmV0dXJuDQo+IC1GT1JDRUlOTElORSBCT09MRUFODQo+IC1QZG9Jc0VtdWxhdGVkVW5wbHVnZ2Vk
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKQ0KPiAt
ew0KPiAtICAgIHJldHVybiBQZG8tPkVtdWxhdGVkVW5wbHVnZ2VkOw0KPiAtfQ0KPiAtDQo+ICBG
T1JDRUlOTElORSBWT0lEDQo+ICBQZG9TZXREZXZpY2VQbnBTdGF0ZSgNCj4gICAgICBfX2luIFBY
RU5WQkRfUERPICAgICAgICAgICAgIFBkbywNCj4gQEAgLTIxNjEsMTMgKzIxNTAsNiBAQCBfX1Zh
bGlkYXRlU3JiRm9yUGRvKA0KPiAgICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICAgICAgfQ0KPiAN
Cj4gLSAgICBpZiAoIVBkby0+RW11bGF0ZWRVbnBsdWdnZWQpIHsNCj4gLSAgICAgICAgRXJyb3Io
IlRhcmdldFslZF0gOiBEaXNrIGlzIEVtdWxhdGVkICglMDJ4OiVzKVxuIiwNCj4gLSAgICAgICAg
ICAgICAgICBQZG9HZXRUYXJnZXRJZChQZG8pLCBPcGVyYXRpb24sDQo+IENkYl9PcGVyYXRpb25O
YW1lKE9wZXJhdGlvbikpOw0KPiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNf
Tk9fREVWSUNFOw0KPiAtICAgICAgICByZXR1cm4gRkFMU0U7DQo+IC0gICAgfQ0KPiAtDQo+ICAg
ICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiBAQCAtMjQ5OCw3ICsyNDgwLDcgQEAgUGRvRDNU
b0QwKA0KPiAgICAgICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAgICAgIFRyYWNl
KCJUYXJnZXRbJWRdIEAgKCVkKSA9PT09PT5cbiIsIFRhcmdldElkLCBLZUdldEN1cnJlbnRJcnFs
KCkpOw0KPiAtICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMy0+RDAgKCVzKVxuIiwgVGFyZ2V0
SWQsIFBkby0NCj4gPkVtdWxhdGVkVW5wbHVnZ2VkID8gIlBWIiA6ICJFbXVsYXRlZCIpOw0KPiAr
ICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMy0+RDBcbiIsIFRhcmdldElkKTsNCj4gDQo+ICAg
ICAgLy8gcG93ZXIgdXAgZnJvbnRlbmQNCj4gICAgICBTdGF0dXMgPSBGcm9udGVuZEQzVG9EMChQ
ZG8tPkZyb250ZW5kKTsNCj4gQEAgLTI1MDYsMTIgKzI0ODgsMTAgQEAgUGRvRDNUb0QwKA0KPiAg
ICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gICAgICAvLyBjb25uZWN0IGZyb250ZW5kDQo+IC0g
ICAgaWYgKFBkby0+RW11bGF0ZWRVbnBsdWdnZWQpIHsNCj4gLSAgICAgICAgU3RhdHVzID0gRnJv
bnRlbmRTZXRTdGF0ZShQZG8tPkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7DQo+IC0gICAgICAg
IGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsMjsNCj4g
LSAgICAgICAgX19QZG9VbnBhdXNlRGF0YVBhdGgoUGRvKTsNCj4gLSAgICB9DQo+ICsgICAgU3Rh
dHVzID0gRnJvbnRlbmRTZXRTdGF0ZShQZG8tPkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7DQo+
ICsgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+ICsgICAgICAgIGdvdG8gZmFpbDI7DQo+
ICsgICAgX19QZG9VbnBhdXNlRGF0YVBhdGgoUGRvKTsNCj4gDQo+ICAgICAgVHJhY2UoIlRhcmdl
dFslZF0gQCAoJWQpIDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+
ICAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiBAQCAtMjUzOSwxNCArMjUxOSwxMiBAQCBQ
ZG9EMFRvRDMoDQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+ICAgICAgVHJhY2UoIlRhcmdldFsl
ZF0gQCAoJWQpID09PT09PlxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+IC0g
ICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEQwLT5EMyAoJXMpXG4iLCBUYXJnZXRJZCwgUGRvLQ0K
PiA+RW11bGF0ZWRVbnBsdWdnZWQgPyAiUFYiIDogIkVtdWxhdGVkIik7DQo+ICsgICAgVmVyYm9z
ZSgiVGFyZ2V0WyVkXSA6IEQwLT5EM1xuIiwgVGFyZ2V0SWQpOw0KPiANCj4gICAgICAvLyBjbG9z
ZSBmcm9udGVuZA0KPiAtICAgIGlmIChQZG8tPkVtdWxhdGVkVW5wbHVnZ2VkKSB7DQo+IC0gICAg
ICAgIF9fUGRvUGF1c2VEYXRhUGF0aChQZG8sIEZBTFNFKTsNCj4gLSAgICAgICAgKFZPSUQpIEZy
b250ZW5kU2V0U3RhdGUoUGRvLT5Gcm9udGVuZCwgWEVOVkJEX0NMT1NFRCk7DQo+IC0gICAgICAg
IEFTU0VSVDNVKFF1ZXVlQ291bnQoJlBkby0+U3VibWl0dGVkUmVxcyksID09LCAwKTsNCj4gLSAg
ICB9DQo+ICsgICAgX19QZG9QYXVzZURhdGFQYXRoKFBkbywgRkFMU0UpOw0KPiArICAgIChWT0lE
KSBGcm9udGVuZFNldFN0YXRlKFBkby0+RnJvbnRlbmQsIFhFTlZCRF9DTE9TRUQpOw0KPiArICAg
IEFTU0VSVDNVKFF1ZXVlQ291bnQoJlBkby0+U3VibWl0dGVkUmVxcyksID09LCAwKTsNCj4gDQo+
ICAgICAgLy8gcG93ZXIgZG93biBmcm9udGVuZA0KPiAgICAgIEZyb250ZW5kRDBUb0QzKFBkby0+
RnJvbnRlbmQpOw0KPiBAQCAtMjU1NSwxMiArMjUzMywxMSBAQCBQZG9EMFRvRDMoDQo+ICB9DQo+
IA0KPiAgX19jaGVja1JldHVybg0KPiAtTlRTVEFUVVMNCj4gK0JPT0xFQU4NCj4gIFBkb0NyZWF0
ZSgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgIEZkbywNCj4gICAgICBfX2lu
IF9fbnVsbHRlcm1pbmF0ZWQgUENIQVIgIERldmljZUlkLA0KPiAgICAgIF9faW4gVUxPTkcgICAg
ICAgICAgICAgICAgICAgVGFyZ2V0SWQsDQo+IC0gICAgX19pbiBCT09MRUFOICAgICAgICAgICAg
ICAgICBFbXVsYXRlZFVucGx1Z2dlZCwNCj4gICAgICBfX2luIFBLRVZFTlQgICAgICAgICAgICAg
ICAgIEZyb250ZW5kRXZlbnQsDQo+ICAgICAgX19pbiBYRU5WQkRfREVWSUNFX1RZUEUgICAgICBE
ZXZpY2VUeXBlDQo+ICAgICAgKQ0KPiBAQCAtMjU3Niw3ICsyNTUzLDcgQEAgUGRvQ3JlYXRlKA0K
PiAgICAgIGlmICghUGRvKQ0KPiAgICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gLSAgICBWZXJi
b3NlKCJUYXJnZXRbJWRdIDogQ3JlYXRpbmcgKCVzKVxuIiwgVGFyZ2V0SWQsIEVtdWxhdGVkVW5w
bHVnZ2VkID8NCj4gIlBWIiA6ICJFbXVsYXRlZCIpOw0KPiArICAgIFZlcmJvc2UoIlRhcmdldFsl
ZF0gOiBDcmVhdGluZ1xuIiwgVGFyZ2V0SWQpOw0KPiAgICAgIFBkby0+U2lnbmF0dXJlICAgICAg
PSBQRE9fU0lHTkFUVVJFOw0KPiAgICAgIFBkby0+RmRvICAgICAgICAgICAgPSBGZG87DQo+ICAg
ICAgUGRvLT5EZXZpY2VPYmplY3QgICA9IE5VTEw7IC8vIGZpbGxlZCBpbiBsYXRlcg0KPiBAQCAt
MjU4NSw3ICsyNTYyLDYgQEAgUGRvQ3JlYXRlKA0KPiAgICAgIFBkby0+UGF1c2VkICAgICAgICAg
PSAxOyAvLyBQYXVzZWQgdW50aWwgRDMtPkQwIHRyYW5zaXRpb24NCj4gICAgICBQZG8tPkRldmlj
ZVBucFN0YXRlID0gUHJlc2VudDsNCj4gICAgICBQZG8tPkRldmljZVBvd2VyU3RhdGUgPSBQb3dl
ckRldmljZUQzOw0KPiAtICAgIFBkby0+RW11bGF0ZWRVbnBsdWdnZWQgPSBFbXVsYXRlZFVucGx1
Z2dlZDsNCj4gICAgICBQZG8tPkRldmljZVR5cGUgICAgID0gRGV2aWNlVHlwZTsNCj4gDQo+ICAg
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJlBkby0+TG9jayk7DQo+IEBAIC0yNjA5LDkgKzI1ODUs
OSBAQCBQZG9DcmVhdGUoDQo+ICAgICAgaWYgKCFGZG9MaW5rUGRvKEZkbywgUGRvKSkNCj4gICAg
ICAgICAgZ290byBmYWlsNDsNCj4gDQo+IC0gICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IENyZWF0
ZWQgKCVzKVxuIiwgVGFyZ2V0SWQsIEVtdWxhdGVkVW5wbHVnZ2VkID8NCj4gIlBWIiA6ICJFbXVs
YXRlZCIpOw0KPiArICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBDcmVhdGVkICglcylcbiIsIFRh
cmdldElkKTsNCj4gICAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkgPD09PT09XG4iLCBUYXJn
ZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gLSAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7
DQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgZmFpbDQ6DQo+ICAgICAgRXJyb3IoIkZhaWw0
XG4iKTsNCj4gQEAgLTI2MzEsNyArMjYwNyw3IEBAIGZhaWwyOg0KPiANCj4gIGZhaWwxOg0KPiAg
ICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIFN0YXR1cyk7DQo+IC0gICAgcmV0dXJuIFN0YXR1
czsNCj4gKyAgICByZXR1cm4gRkFMU0U7DQo+ICB9DQo+IA0KPiAgVk9JRA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZiZC9wZG8uaCBiL3NyYy94ZW52YmQvcGRvLmgNCj4gaW5kZXggMTIxMTE3NC4u
M2JmZjc0MyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uaA0KPiArKysgYi9zcmMveGVu
dmJkL3Bkby5oDQo+IEBAIC01MCwxMiArNTAsMTEgQEAgUGRvRGVidWdDYWxsYmFjaygNCj4gDQo+
ICAvLyBDcmVhdGlvbi9EZWxldGlvbg0KPiAgX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIE5UU1RB
VFVTDQo+ICtleHRlcm4gQk9PTEVBTg0KPiAgUGRvQ3JlYXRlKA0KPiAgICAgIF9faW4gUFhFTlZC
RF9GRE8gICAgICAgICAgICAgRmRvLA0KPiAgICAgIF9faW4gX19udWxsdGVybWluYXRlZCBQQ0hB
UiAgRGV2aWNlSWQsDQo+ICAgICAgX19pbiBVTE9ORyAgICAgICAgICAgICAgICAgICBUYXJnZXRJ
ZCwNCj4gLSAgICBfX2luIEJPT0xFQU4gICAgICAgICAgICAgICAgIEVtdWxhdGVkTWFza2VkLA0K
PiAgICAgIF9faW4gUEtFVkVOVCAgICAgICAgICAgICAgICAgRnJvbnRlbmRFdmVudCwNCj4gICAg
ICBfX2luIFhFTlZCRF9ERVZJQ0VfVFlQRSAgICAgIERldmljZVR5cGUNCj4gICAgICApOw0KPiAt
LQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:51:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:51:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhq7-0004Ov-SK; Mon, 09 May 2016 09:50:59 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhq6-0004Oc-5R
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:50:58 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
 D2/5D-03753-18D50375; Mon, 09 May 2016 09:50:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQrch1iD
 coGGxjsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNaPy/hr1geUTF01tvmRoYp4R3MXJwSAj4Sbz+
 advFyMnBJqAjsfTofCYQW0SgQOL7+3nMIDazgJrE9f1drCC2sICPxMPbOxkhanwl9vX3MUPYR
 hK9cxaD2SwCKhJrrtxnB7F5BdwlZr06C9YrJFAncep2C5jNKeAqce3QdLA5jAKyEl8aV0PtEp
 e49QTiBgkBAYkle84zQ9iiEi8f/2OFsA0kti7dxwJyPrOApsT6XfoQrYoSU7ofQq0VlDg58wk
 LxFoViS2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahenFpUllqka6KXVJSZnlGS
 m5iZo2toaKKXm1pcnJiempOYVKyXnJ+7iREYIwxAsINxxULnQ4ySHExKoryujHrhQnxJ+SmVG
 YnFGfFFpTmpxYcYZTg4lCR4uWMMwoUEi1LTUyvSMnOA0QqTluDgURLhVQVJ8xYXJOYWZ6ZDpE
 4xKkqJ856LBkoIgCQySvPg2mAJ4hKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeb1AxvNk5pX
 ATX8FtJgJaLEcmz7I4pJEhJRUA2N0cejMDv/JJteOTE7T2LQoLvmHxYFFT3LLBB/v15BcLMCq
 yLrwG8fFsghxV8npCxZIfnrbueH9s+060Vvl7ypoHA26xavDWTThzl6plw/O7XL5yXE8hlWpu
 k55T3b+32cTBLdLxPVPUGLIUlv1LV97RcOdXdkcin2Fs5+k1/FWvS7ZemJ34TolluKMREMt5q
 LiRADiF6vECwMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1462787456!40349218!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1856 invoked from network); 9 May 2016 09:50:56 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:50:56 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077505"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 5/9] Dont create Pdo for emulated devices
Thread-Index: AQHRnKIfQ6vwvMnj/0eNTkeCYlPNB5+wdzOA
Date: Mon, 9 May 2016 09:50:55 +0000
Message-ID: <c13639f5bd56495b83ed5a27003ff5a5@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-6-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-6-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 5/9] Dont create Pdo for emulated devices
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA1LzldIERvbnQgY3JlYXRlIFBkbyBmb3IgZW11bGF0ZWQg
ZGV2aWNlcw0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAyOSArKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9wZG8uYyB8IDU0ICsrKysrKysrKysrKysrKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9wZG8uaCB8
ICAzICstLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlv
bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9m
ZG8uYw0KPiBpbmRleCBkYWRmMzk1Li5kYWI3YWUxIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJk
L2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTU4Myw3ICs1ODMsNiBAQCBf
X0Zkb0VudW1lcmF0ZSgNCj4gICAgICBVTE9ORyAgICAgICAgICAgICAgIFRhcmdldElkOw0KPiAg
ICAgIFBDSEFSICAgICAgICAgICAgICAgRGV2aWNlOw0KPiAgICAgIFBYRU5WQkRfUERPICAgICAg
ICAgUGRvOw0KPiAtICAgIE5UU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPiANCj4gICAgICAq
TmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4gICAgICAqTmVlZFJlYm9vdCA9IEZBTFNFOw0KPiBA
QCAtNjIxLDcgKzYyMCw2IEBAIF9fRmRvRW51bWVyYXRlKA0KPiANCj4gICAgICAvLyBhZGQgbmV3
IHRhcmdldHMNCj4gICAgICBmb3IgKERldmljZSA9IERldmljZXM7ICpEZXZpY2U7IERldmljZSA9
IF9fTmV4dFN6KERldmljZSkpIHsNCj4gLSAgICAgICAgQk9PTEVBTiAgICAgRW11bGF0ZWRVbnBs
dWdnZWQ7DQo+ICAgICAgICAgIFhFTlZCRF9ERVZJQ0VfVFlQRSAgRGV2aWNlVHlwZTsNCj4gDQo+
ICAgICAgICAgIFRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UpOw0KPiBAQCAtNjM5LDE4ICs2
MzcsMjEgQEAgX19GZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gICAg
ICAgICAgfQ0KPiANCj4gLSAgICAgICAgRW11bGF0ZWRVbnBsdWdnZWQgPSBfX0Zkb0lzUGRvVW5w
bHVnZ2VkKEZkbywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZkb0VudW0oRmRvKSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERldmljZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRhcmdldElkKTsNCj4gLSAgICAgICAgKk5lZWRSZWJvb3QgfD0g
IUVtdWxhdGVkVW5wbHVnZ2VkOw0KPiAtDQo+IC0gICAgICAgIFN0YXR1cyA9IFBkb0NyZWF0ZShG
ZG8sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UsDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVtdWxhdGVkVW5wbHVnZ2VkLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFk
R2V0RXZlbnQoRmRvLT5Gcm9udGVuZFRocmVhZCksIERldmljZVR5cGUpOw0KPiAtICAgICAgICAq
TmVlZEludmFsaWRhdGUgfD0gKE5UX1NVQ0NFU1MoU3RhdHVzKSkgPyBUUlVFIDogRkFMU0U7DQo+
ICsgICAgICAgIGlmICghX19GZG9Jc1Bkb1VucGx1Z2dlZChGZG8sDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZkb0VudW0oRmRvKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRGV2aWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
YXJnZXRJZCkpIHsNCj4gKyAgICAgICAgICAgICpOZWVkUmVib290ID0gVFJVRTsNCj4gKyAgICAg
ICAgICAgIGNvbnRpbnVlOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgaWYgKFBkb0Ny
ZWF0ZShGZG8sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgIFRhcmdldElkLA0KPiArICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEdl
dEV2ZW50KEZkby0+RnJvbnRlbmRUaHJlYWQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgIERl
dmljZVR5cGUpKSB7DQo+ICsgICAgICAgICAgICAqTmVlZEludmFsaWRhdGUgPSBUUlVFOw0KPiAr
ICAgICAgICB9DQo+ICAgICAgfQ0KPiAgfQ0KPiAgc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZP
SUQNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcGRvLmMgYi9zcmMveGVudmJkL3Bkby5jDQo+
IGluZGV4IDY3ODAwZTQuLmM3ZDhiMmIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvcGRvLmMN
Cj4gKysrIGIvc3JjL3hlbnZiZC9wZG8uYw0KPiBAQCAtODcsNyArODcsNiBAQCBzdHJ1Y3QgX1hF
TlZCRF9QRE8gew0KPiAgICAgIFhFTlZCRF9ERVZJQ0VfVFlQRSAgICAgICAgICBEZXZpY2VUeXBl
Ow0KPiANCj4gICAgICAvLyBTdGF0ZQ0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICBFbXVsYXRlZFVucGx1Z2dlZDsNCj4gICAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAg
UGF1c2VkOw0KPiANCj4gICAgICAvLyBFamVjdA0KPiBAQCAtMjg1LDggKzI4NCw3IEBAIFBkb0Rl
YnVnQ2FsbGJhY2soDQo+ICAgICAgICAgICAgICAgICAgICJQRE86IERldmljZVBvd2VyU3RhdGUg
JXNcbiIsDQo+ICAgICAgICAgICAgICAgICAgIFBvd2VyRGV2aWNlU3RhdGVOYW1lKFBkby0+RGV2
aWNlUG93ZXJTdGF0ZSkpOw0KPiAgICAgIFhFTkJVU19ERUJVRyhQcmludGYsIERlYnVnSW50ZXJm
YWNlLA0KPiAtICAgICAgICAgICAgICAgICAiUERPOiAlcyAlc1xuIiwNCj4gLSAgICAgICAgICAg
ICAgICAgUGRvLT5FbXVsYXRlZFVucGx1Z2dlZCA/ICJQViIgOiAiRU1VTEFURUQiLA0KPiArICAg
ICAgICAgICAgICAgICAiUERPOiAlc1xuIiwNCj4gICAgICAgICAgICAgICAgICAgUGRvLT5NaXNz
aW5nID8gUGRvLT5SZWFzb24gOiAiTm90IE1pc3NpbmciKTsNCj4gDQo+ICAgICAgWEVOQlVTX0RF
QlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsDQo+IEBAIC00MDAsMTUgKzM5OCw2IEBAIFBkb01p
c3NpbmdSZWFzb24oDQo+ICAgICAgcmV0dXJuIFJlYXNvbjsNCj4gIH0NCj4gDQo+IC1fX2NoZWNr
UmV0dXJuDQo+IC1GT1JDRUlOTElORSBCT09MRUFODQo+IC1QZG9Jc0VtdWxhdGVkVW5wbHVnZ2Vk
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKQ0KPiAt
ew0KPiAtICAgIHJldHVybiBQZG8tPkVtdWxhdGVkVW5wbHVnZ2VkOw0KPiAtfQ0KPiAtDQo+ICBG
T1JDRUlOTElORSBWT0lEDQo+ICBQZG9TZXREZXZpY2VQbnBTdGF0ZSgNCj4gICAgICBfX2luIFBY
RU5WQkRfUERPICAgICAgICAgICAgIFBkbywNCj4gQEAgLTIxNjEsMTMgKzIxNTAsNiBAQCBfX1Zh
bGlkYXRlU3JiRm9yUGRvKA0KPiAgICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICAgICAgfQ0KPiAN
Cj4gLSAgICBpZiAoIVBkby0+RW11bGF0ZWRVbnBsdWdnZWQpIHsNCj4gLSAgICAgICAgRXJyb3Io
IlRhcmdldFslZF0gOiBEaXNrIGlzIEVtdWxhdGVkICglMDJ4OiVzKVxuIiwNCj4gLSAgICAgICAg
ICAgICAgICBQZG9HZXRUYXJnZXRJZChQZG8pLCBPcGVyYXRpb24sDQo+IENkYl9PcGVyYXRpb25O
YW1lKE9wZXJhdGlvbikpOw0KPiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNf
Tk9fREVWSUNFOw0KPiAtICAgICAgICByZXR1cm4gRkFMU0U7DQo+IC0gICAgfQ0KPiAtDQo+ICAg
ICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiBAQCAtMjQ5OCw3ICsyNDgwLDcgQEAgUGRvRDNU
b0QwKA0KPiAgICAgICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAgICAgIFRyYWNl
KCJUYXJnZXRbJWRdIEAgKCVkKSA9PT09PT5cbiIsIFRhcmdldElkLCBLZUdldEN1cnJlbnRJcnFs
KCkpOw0KPiAtICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMy0+RDAgKCVzKVxuIiwgVGFyZ2V0
SWQsIFBkby0NCj4gPkVtdWxhdGVkVW5wbHVnZ2VkID8gIlBWIiA6ICJFbXVsYXRlZCIpOw0KPiAr
ICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMy0+RDBcbiIsIFRhcmdldElkKTsNCj4gDQo+ICAg
ICAgLy8gcG93ZXIgdXAgZnJvbnRlbmQNCj4gICAgICBTdGF0dXMgPSBGcm9udGVuZEQzVG9EMChQ
ZG8tPkZyb250ZW5kKTsNCj4gQEAgLTI1MDYsMTIgKzI0ODgsMTAgQEAgUGRvRDNUb0QwKA0KPiAg
ICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gICAgICAvLyBjb25uZWN0IGZyb250ZW5kDQo+IC0g
ICAgaWYgKFBkby0+RW11bGF0ZWRVbnBsdWdnZWQpIHsNCj4gLSAgICAgICAgU3RhdHVzID0gRnJv
bnRlbmRTZXRTdGF0ZShQZG8tPkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7DQo+IC0gICAgICAg
IGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsMjsNCj4g
LSAgICAgICAgX19QZG9VbnBhdXNlRGF0YVBhdGgoUGRvKTsNCj4gLSAgICB9DQo+ICsgICAgU3Rh
dHVzID0gRnJvbnRlbmRTZXRTdGF0ZShQZG8tPkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7DQo+
ICsgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+ICsgICAgICAgIGdvdG8gZmFpbDI7DQo+
ICsgICAgX19QZG9VbnBhdXNlRGF0YVBhdGgoUGRvKTsNCj4gDQo+ICAgICAgVHJhY2UoIlRhcmdl
dFslZF0gQCAoJWQpIDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+
ICAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiBAQCAtMjUzOSwxNCArMjUxOSwxMiBAQCBQ
ZG9EMFRvRDMoDQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+ICAgICAgVHJhY2UoIlRhcmdldFsl
ZF0gQCAoJWQpID09PT09PlxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+IC0g
ICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEQwLT5EMyAoJXMpXG4iLCBUYXJnZXRJZCwgUGRvLQ0K
PiA+RW11bGF0ZWRVbnBsdWdnZWQgPyAiUFYiIDogIkVtdWxhdGVkIik7DQo+ICsgICAgVmVyYm9z
ZSgiVGFyZ2V0WyVkXSA6IEQwLT5EM1xuIiwgVGFyZ2V0SWQpOw0KPiANCj4gICAgICAvLyBjbG9z
ZSBmcm9udGVuZA0KPiAtICAgIGlmIChQZG8tPkVtdWxhdGVkVW5wbHVnZ2VkKSB7DQo+IC0gICAg
ICAgIF9fUGRvUGF1c2VEYXRhUGF0aChQZG8sIEZBTFNFKTsNCj4gLSAgICAgICAgKFZPSUQpIEZy
b250ZW5kU2V0U3RhdGUoUGRvLT5Gcm9udGVuZCwgWEVOVkJEX0NMT1NFRCk7DQo+IC0gICAgICAg
IEFTU0VSVDNVKFF1ZXVlQ291bnQoJlBkby0+U3VibWl0dGVkUmVxcyksID09LCAwKTsNCj4gLSAg
ICB9DQo+ICsgICAgX19QZG9QYXVzZURhdGFQYXRoKFBkbywgRkFMU0UpOw0KPiArICAgIChWT0lE
KSBGcm9udGVuZFNldFN0YXRlKFBkby0+RnJvbnRlbmQsIFhFTlZCRF9DTE9TRUQpOw0KPiArICAg
IEFTU0VSVDNVKFF1ZXVlQ291bnQoJlBkby0+U3VibWl0dGVkUmVxcyksID09LCAwKTsNCj4gDQo+
ICAgICAgLy8gcG93ZXIgZG93biBmcm9udGVuZA0KPiAgICAgIEZyb250ZW5kRDBUb0QzKFBkby0+
RnJvbnRlbmQpOw0KPiBAQCAtMjU1NSwxMiArMjUzMywxMSBAQCBQZG9EMFRvRDMoDQo+ICB9DQo+
IA0KPiAgX19jaGVja1JldHVybg0KPiAtTlRTVEFUVVMNCj4gK0JPT0xFQU4NCj4gIFBkb0NyZWF0
ZSgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgIEZkbywNCj4gICAgICBfX2lu
IF9fbnVsbHRlcm1pbmF0ZWQgUENIQVIgIERldmljZUlkLA0KPiAgICAgIF9faW4gVUxPTkcgICAg
ICAgICAgICAgICAgICAgVGFyZ2V0SWQsDQo+IC0gICAgX19pbiBCT09MRUFOICAgICAgICAgICAg
ICAgICBFbXVsYXRlZFVucGx1Z2dlZCwNCj4gICAgICBfX2luIFBLRVZFTlQgICAgICAgICAgICAg
ICAgIEZyb250ZW5kRXZlbnQsDQo+ICAgICAgX19pbiBYRU5WQkRfREVWSUNFX1RZUEUgICAgICBE
ZXZpY2VUeXBlDQo+ICAgICAgKQ0KPiBAQCAtMjU3Niw3ICsyNTUzLDcgQEAgUGRvQ3JlYXRlKA0K
PiAgICAgIGlmICghUGRvKQ0KPiAgICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gLSAgICBWZXJi
b3NlKCJUYXJnZXRbJWRdIDogQ3JlYXRpbmcgKCVzKVxuIiwgVGFyZ2V0SWQsIEVtdWxhdGVkVW5w
bHVnZ2VkID8NCj4gIlBWIiA6ICJFbXVsYXRlZCIpOw0KPiArICAgIFZlcmJvc2UoIlRhcmdldFsl
ZF0gOiBDcmVhdGluZ1xuIiwgVGFyZ2V0SWQpOw0KPiAgICAgIFBkby0+U2lnbmF0dXJlICAgICAg
PSBQRE9fU0lHTkFUVVJFOw0KPiAgICAgIFBkby0+RmRvICAgICAgICAgICAgPSBGZG87DQo+ICAg
ICAgUGRvLT5EZXZpY2VPYmplY3QgICA9IE5VTEw7IC8vIGZpbGxlZCBpbiBsYXRlcg0KPiBAQCAt
MjU4NSw3ICsyNTYyLDYgQEAgUGRvQ3JlYXRlKA0KPiAgICAgIFBkby0+UGF1c2VkICAgICAgICAg
PSAxOyAvLyBQYXVzZWQgdW50aWwgRDMtPkQwIHRyYW5zaXRpb24NCj4gICAgICBQZG8tPkRldmlj
ZVBucFN0YXRlID0gUHJlc2VudDsNCj4gICAgICBQZG8tPkRldmljZVBvd2VyU3RhdGUgPSBQb3dl
ckRldmljZUQzOw0KPiAtICAgIFBkby0+RW11bGF0ZWRVbnBsdWdnZWQgPSBFbXVsYXRlZFVucGx1
Z2dlZDsNCj4gICAgICBQZG8tPkRldmljZVR5cGUgICAgID0gRGV2aWNlVHlwZTsNCj4gDQo+ICAg
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJlBkby0+TG9jayk7DQo+IEBAIC0yNjA5LDkgKzI1ODUs
OSBAQCBQZG9DcmVhdGUoDQo+ICAgICAgaWYgKCFGZG9MaW5rUGRvKEZkbywgUGRvKSkNCj4gICAg
ICAgICAgZ290byBmYWlsNDsNCj4gDQo+IC0gICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IENyZWF0
ZWQgKCVzKVxuIiwgVGFyZ2V0SWQsIEVtdWxhdGVkVW5wbHVnZ2VkID8NCj4gIlBWIiA6ICJFbXVs
YXRlZCIpOw0KPiArICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBDcmVhdGVkICglcylcbiIsIFRh
cmdldElkKTsNCj4gICAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkgPD09PT09XG4iLCBUYXJn
ZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gLSAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7
DQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgZmFpbDQ6DQo+ICAgICAgRXJyb3IoIkZhaWw0
XG4iKTsNCj4gQEAgLTI2MzEsNyArMjYwNyw3IEBAIGZhaWwyOg0KPiANCj4gIGZhaWwxOg0KPiAg
ICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIFN0YXR1cyk7DQo+IC0gICAgcmV0dXJuIFN0YXR1
czsNCj4gKyAgICByZXR1cm4gRkFMU0U7DQo+ICB9DQo+IA0KPiAgVk9JRA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZiZC9wZG8uaCBiL3NyYy94ZW52YmQvcGRvLmgNCj4gaW5kZXggMTIxMTE3NC4u
M2JmZjc0MyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uaA0KPiArKysgYi9zcmMveGVu
dmJkL3Bkby5oDQo+IEBAIC01MCwxMiArNTAsMTEgQEAgUGRvRGVidWdDYWxsYmFjaygNCj4gDQo+
ICAvLyBDcmVhdGlvbi9EZWxldGlvbg0KPiAgX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIE5UU1RB
VFVTDQo+ICtleHRlcm4gQk9PTEVBTg0KPiAgUGRvQ3JlYXRlKA0KPiAgICAgIF9faW4gUFhFTlZC
RF9GRE8gICAgICAgICAgICAgRmRvLA0KPiAgICAgIF9faW4gX19udWxsdGVybWluYXRlZCBQQ0hB
UiAgRGV2aWNlSWQsDQo+ICAgICAgX19pbiBVTE9ORyAgICAgICAgICAgICAgICAgICBUYXJnZXRJ
ZCwNCj4gLSAgICBfX2luIEJPT0xFQU4gICAgICAgICAgICAgICAgIEVtdWxhdGVkTWFza2VkLA0K
PiAgICAgIF9faW4gUEtFVkVOVCAgICAgICAgICAgICAgICAgRnJvbnRlbmRFdmVudCwNCj4gICAg
ICBfX2luIFhFTlZCRF9ERVZJQ0VfVFlQRSAgICAgIERldmljZVR5cGUNCj4gICAgICApOw0KPiAt
LQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:54:20 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:54:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhtM-0004fk-Ct; Mon, 09 May 2016 09:54:20 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhtL-0004f4-3X
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:54:19 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 A1/79-02219-A4E50375; Mon, 09 May 2016 09:54:18 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQtczziD
 c4OoJMYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXzibPaCpy2MFV+aLrA0MHY0M3YxcnJICPhJ
 7OuczwRiswnoSCw9CmGLCBRIfH8/jxnEZhZQk7i+v4sVxBYWSJQ427ObDaImSeLUxZcsELaRx
 PX+E2BxFgEVie9dM8FsXgF3iS+db8FmCgnUSWx8MR0szingKjFl3zWwOKOArMSXxtVQu8Qlbj
 2BuEFCQEBiyZ7zzBC2qMTLx/9YIWwDia1L9wHt5QCq15RYv0sfolVRYkr3Q3aItYISJ2c+YYF
 YqyKx5fEBqDHcEis//2GZwCg6C8m2WQiTZiGZNAvJpAWMLKsY1YtTi8pSi3RN9ZKKMtMzSnIT
 M3N0DQ1M9XJTi4sT01NzEpOK9ZLzczcxAiOFAQh2MH7pdz7EKMnBpCTK68qoFy7El5SfUpmRW
 JwRX1Sak1p8iFGGg0NJgrczxiBcSLAoNT21Ii0zBxizMGkJDh4lEV5VkDRvcUFibnFmOkTqFK
 OilDjvMZCEAEgiozQPrg2WJi4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmPcIyBSezLwSuOm
 vgBYzAS2WY9MHWVySiJCSamBsZ5Yo9V40S74l4dcFd8s857v5mp/1anlid+moaLCqLoizdth3
 uZrn3FJPya+xMe/n35wcHvo1+YHlpzvr3f1MufmWN+x+rtlxm1Ouuaylvb1z42UmUR2mGRN9Z
 IOOOfBtY2Oac8j3r632rsd/ea+V3stYKyJ97dQUW708wV8Lv/f6T8roNFJiKc5INNRiLipOBA
 CTpVyoDgMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1462787656!38395929!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57438 invoked from network); 9 May 2016 09:54:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:54:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077699"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 6/9] Create a thread per VBD to handle
 backend change watches
Thread-Index: AQHRnKIaoORloEjJ506Zzqfg0ZtAxZ+weA7Q
Date: Mon, 9 May 2016 09:53:57 +0000
Message-ID: <a426384a914645aeb4893d5a1d9e6a26@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-7-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-7-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 6/9] Create a thread per VBD to
	handle	backend change watches
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA2LzldIENyZWF0ZSBhIHRocmVhZCBwZXIgVkJEIHRvIGhh
bmRsZQ0KPiBiYWNrZW5kIGNoYW5nZSB3YXRjaGVzDQo+IA0KPiBVc2luZyBhIHNpbmdsZSB0aHJl
YWQgZm9yIGFsbCBiYWNrZW5kIHdhdGNoIGV2ZW50cyBwdXN0IHVubmVjY2VzYXJ5DQo+IHN0cmFp
biBvbiB4ZW5zdG9yZSB3aGVuIG11bHRpcGxlIHZiZHMgYXJlIGluIHVzZSwgYXMgZWFjaCBjaGFu
Z2UNCj4gY2F1c2VzIFhlblZiZCB0byBjaGVjayBzZXZlcmFsIHZhbHVlcyBpbiBhbGwgYmFja2Vu
ZCBhcmVhcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Zkby5jICAgICAgfCA1NSArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZnJv
bnRlbmQuYyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+IC0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9mcm9udGVuZC5oIHwgIDcgLS0tLS0tLQ0KPiAgc3Jj
L3hlbnZiZC9wZG8uYyAgICAgIHwgMzEgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g
IHNyYy94ZW52YmQvcGRvLmggICAgICB8ICA3IC0tLS0tLS0NCj4gIDUgZmlsZXMgY2hhbmdlZCwg
NDkgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52YmQvZmRvLmMgYi9zcmMveGVudmJkL2Zkby5jDQo+IGluZGV4IGRhYjdhZTEuLjI5ZWM5
NjYgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZmRvLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9m
ZG8uYw0KPiBAQCAtOTMsNyArOTMsNiBAQCBzdHJ1Y3QgX1hFTlZCRF9GRE8gew0KPiAgICAgIFBY
RU5WQkRfVEhSRUFEICAgICAgICAgICAgICBTY2FuVGhyZWFkOw0KPiAgICAgIEtFVkVOVCAgICAg
ICAgICAgICAgICAgICAgICBTY2FuRXZlbnQ7DQo+ICAgICAgUFhFTkJVU19TVE9SRV9XQVRDSCAg
ICAgICAgIFNjYW5XYXRjaDsNCj4gLSAgICBQWEVOVkJEX1RIUkVBRCAgICAgICAgICAgICAgRnJv
bnRlbmRUaHJlYWQ7DQo+IA0KPiAgICAgIC8vIFN0YXRpc3RpY3MNCj4gICAgICBMT05HICAgICAg
ICAgICAgICAgICAgICAgICAgQ3VycmVudFNyYnM7DQo+IEBAIC02NDgsNyArNjQ3LDYgQEAgX19G
ZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgIGlmIChQZG9DcmVhdGUoRmRvLA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgIERldmljZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRHZXRFdmVudChGZG8tPkZyb250ZW5kVGhy
ZWFkKSwNCj4gICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VUeXBlKSkgew0KPiAgICAgICAg
ICAgICAgKk5lZWRJbnZhbGlkYXRlID0gVFJVRTsNCj4gICAgICAgICAgfQ0KPiBAQCAtNzEyLDQz
ICs3MTAsNiBAQCBGZG9TY2FuKA0KPiAgICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gIH0N
Cj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+IC1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgTlRTVEFU
VVMNCj4gLUZkb0Zyb250ZW5kKA0KPiAtICAgIF9faW4gUFhFTlZCRF9USFJFQUQgICAgICAgICAg
ICAgIFRocmVhZCwNCj4gLSAgICBfX2luIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICBDb250
ZXh0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIFBYRU5WQkRfRkRPICAgICBGZG8gPSBDb250ZXh0
Ow0KPiAtDQo+IC0gICAgZm9yICg7Oykgew0KPiAtICAgICAgICBVTE9ORyAgICAgICBUYXJnZXRJ
ZDsNCj4gLSAgICAgICAgS0lSUUwgICAgICAgSXJxbDsNCj4gLQ0KPiAtICAgICAgICBpZiAoIVRo
cmVhZFdhaXQoVGhyZWFkKSkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLQ0KPiAtICAgICAgICBp
ZiAoRmRvLT5EZXZpY2VQb3dlciAhPSBQb3dlckRldmljZUQwKSB7DQo+IC0gICAgICAgICAgICBL
ZVJlbGVhc2VTcGluTG9jaygmRmRvLT5Mb2NrLCBJcnFsKTsNCj4gLSAgICAgICAgICAgIGNvbnRp
bnVlOw0KPiAtICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgZm9yIChUYXJnZXRJZCA9IDA7IFRh
cmdldElkIDwgWEVOVkJEX01BWF9UQVJHRVRTOyArK1RhcmdldElkKSB7DQo+IC0gICAgICAgICAg
ICBQWEVOVkJEX1BETyBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFRhcmdldElkKTsNCj4gLSAgICAg
ICAgICAgIGlmIChQZG8pIHsNCj4gLSAgICAgICAgICAgICAgICBQZG9CYWNrZW5kUGF0aENoYW5n
ZWQoUGRvKTsNCj4gLSAgICAgICAgICAgICAgICBQZG9EZXJlZmVyZW5jZShQZG8pOw0KPiAtICAg
ICAgICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgS2VSZWxlYXNlU3Bpbkxv
Y2soJkZkby0+TG9jaywgSXJxbCk7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIFNUQVRV
U19TVUNDRVNTOw0KPiAtfQ0KPiAtDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0K
PiAgLy8gSW5pdGlhbGl6ZSwgU3RhcnQsIFN0b3ANCj4gDQo+IEBAIC0xNTU2LDEzICsxNTE3LDkg
QEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAg
ICAgICAgICBnb3RvIGZhaWwzOw0KPiANCj4gLSAgICBTdGF0dXMgPSBUaHJlYWRDcmVhdGUoRmRv
RnJvbnRlbmQsIEZkbywgJkZkby0+RnJvbnRlbmRUaHJlYWQpOw0KPiAtICAgIGlmICghTlRfU1VD
Q0VTUyhTdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw0Ow0KPiAtDQo+ICAgICAgU3RhdHVz
ID0gVGhyZWFkQ3JlYXRlKEZkb0RldmljZVBvd2VyLCBGZG8sICZGZG8tDQo+ID5EZXZpY2VQb3dl
clRocmVhZCk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+IC0gICAgICAgIGdv
dG8gZmFpbDU7DQo+ICsgICAgICAgIGdvdG8gZmFpbDQ7DQo+IA0KPiAgICAgIC8vIHF1ZXJ5IGVu
dW1lcmF0b3INCj4gICAgICAvLyBmaXggdGhpcyB1cCB0byBxdWVyeSBmcm9tIGRldmljZSBsb2Nh
dGlvbig/KQ0KPiBAQCAtMTU3NCwxMSArMTUzMSw2IEBAIF9fRmRvSW5pdGlhbGl6ZSgNCj4gICAg
ICBUcmFjZSgiPD09PT09ICglZClcbiIsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+ICAgICAgcmV0
dXJuIFNUQVRVU19TVUNDRVNTOw0KPiANCj4gLWZhaWw1Og0KPiAtICAgIEVycm9yKCJmYWlsNVxu
Iik7DQo+IC0gICAgVGhyZWFkQWxlcnQoRmRvLT5Gcm9udGVuZFRocmVhZCk7DQo+IC0gICAgVGhy
ZWFkSm9pbihGZG8tPkZyb250ZW5kVGhyZWFkKTsNCj4gLSAgICBGZG8tPkZyb250ZW5kVGhyZWFk
ID0gTlVMTDsNCj4gIGZhaWw0Og0KPiAgICAgIEVycm9yKCJmYWlsNFxuIik7DQo+ICAgICAgVGhy
ZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gQEAgLTE2MjEsMTEgKzE1NzMsNiBAQCBfX0Zk
b1Rlcm1pbmF0ZSgNCj4gICAgICBUaHJlYWRKb2luKEZkby0+RGV2aWNlUG93ZXJUaHJlYWQpOw0K
PiAgICAgIEZkby0+RGV2aWNlUG93ZXJUaHJlYWQgPSBOVUxMOw0KPiANCj4gLSAgICAvLyBzdG9w
IGZyb250ZW5kIHRocmVhZA0KPiAtICAgIFRocmVhZEFsZXJ0KEZkby0+RnJvbnRlbmRUaHJlYWQp
Ow0KPiAtICAgIFRocmVhZEpvaW4oRmRvLT5Gcm9udGVuZFRocmVhZCk7DQo+IC0gICAgRmRvLT5G
cm9udGVuZFRocmVhZCA9IE5VTEw7DQo+IC0NCj4gICAgICAvLyBzdG9wIGVudW0gdGhyZWFkDQo+
ICAgICAgVGhyZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gICAgICBUaHJlYWRKb2luKEZk
by0+U2NhblRocmVhZCk7DQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9z
cmMveGVudmJkL2Zyb250ZW5kLmMNCj4gaW5kZXggNGE4ZmJlMy4uMTQzNjAwMSAxMDA2NDQNCj4g
LS0tIGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQu
Yw0KPiBAQCAtNDEsNiArNDEsNyBAQA0KPiAgI2luY2x1ZGUgIm5vdGlmaWVyLmgiDQo+ICAjaW5j
bHVkZSAiYmxvY2tyaW5nLmgiDQo+ICAjaW5jbHVkZSAiZ3JhbnRlci5oIg0KPiArI2luY2x1ZGUg
InRocmVhZC5oIg0KPiAgI2luY2x1ZGUgPHN0b3JlX2ludGVyZmFjZS5oPg0KPiAgI2luY2x1ZGUg
PHN1c3BlbmRfaW50ZXJmYWNlLmg+DQo+IA0KPiBAQCAtNzYsNyArNzcsNyBAQCBzdHJ1Y3QgX1hF
TlZCRF9GUk9OVEVORCB7DQo+IA0KPiAgICAgIC8vIEJhY2tlbmQgU3RhdGUgV2F0Y2gNCj4gICAg
ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgQWN0aXZlOw0KPiAtICAgIFBLRVZFTlQgICAg
ICAgICAgICAgICAgICAgICBCYWNrZW5kRXZlbnQ7DQo+ICsgICAgUFhFTlZCRF9USFJFQUQgICAg
ICAgICAgICAgIEJhY2tlbmRUaHJlYWQ7DQo+ICAgICAgUFhFTkJVU19TVE9SRV9XQVRDSCAgICAg
ICAgIEJhY2tlbmRXYXRjaDsNCj4gIH07DQo+IA0KPiBAQCAtOTI1LDcgKzkyNiw3IEBAIEZyb250
ZW5kUHJlcGFyZSgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3Jl
LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBhdGgsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgIEZyb250ZW5kLT5CYWNrZW5kRXZlbnQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRocmVhZEdldEV2ZW50KEZyb250ZW5kLT5CYWNrZW5kVGhyZWFkKSwNCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5CYWNrZW5kV2F0Y2gpOw0KPiAgICAgIGlmICgh
TlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3RvIGZhaWwyOw0KPiBAQCAtMTUwMiwy
MSArMTUwMywzMiBAQCBGcm9udGVuZFNldFN0YXRlKA0KPiAgICAgIHJldHVybiBTdGF0dXM7DQo+
ICB9DQo+IA0KPiAtX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQ0KPiAtVk9JRA0K
PiAtRnJvbnRlbmRCYWNrZW5kUGF0aENoYW5nZWQoDQo+IC0gICAgX19pbiAgUFhFTlZCRF9GUk9O
VEVORCAgICAgICAgRnJvbnRlbmQNCj4gK19fY2hlY2tSZXR1cm4NCj4gK3N0YXRpYyBERUNMU1BF
Q19OT0lOTElORSBOVFNUQVRVUw0KPiArRnJvbnRlbmRCYWNrZW5kKA0KPiArICAgIF9faW4gUFhF
TlZCRF9USFJFQUQgICAgICAgICAgICAgIFRocmVhZCwNCj4gKyAgICBfX2luIFBWT0lEICAgICAg
ICAgICAgICAgICAgICAgICBDb250ZXh0DQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIEtJUlFMICAg
ICAgIElycWw7DQo+IC0gICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5TdGF0ZUxvY2ss
ICZJcnFsKTsNCj4gLSAgICAvLyBPbmx5IGF0dGVtcHQgdGhpcyBpZiBBY3RpdmUsIEFjdGl2ZSBp
cyBzZXQvY2xlYXJlZCBvbiBEMy0+RDAvRDAtPkQzDQo+IC0gICAgaWYgKEZyb250ZW5kLT5BY3Rp
dmUpIHsNCj4gLSAgICAgICAgLy8gTm90ZTogTm90aGluZyBtYXkgaGF2ZSBjaGFuZ2VkIHdpdGgg
dGhpcyB0YXJnZXQsIHRoaXMgY291bGQgYmUNCj4gY2F1c2VkIGJ5IGFub3RoZXIgdGFyZ2V0IGNo
YW5naW5nDQo+IC0gICAgICAgIF9fUmVhZERpc2tJbmZvKEZyb250ZW5kKTsNCj4gLSAgICAgICAg
X19DaGVja0JhY2tlbmRGb3JFamVjdChGcm9udGVuZCk7DQo+ICsgICAgUFhFTlZCRF9GUk9OVEVO
RCAgICAgICAgICAgICAgICBGcm9udGVuZCA9IENvbnRleHQ7DQo+ICsNCj4gKyAgICBmb3IgKDs7
KSB7DQo+ICsgICAgICAgIEtJUlFMICAgICAgIElycWw7DQo+ICsNCj4gKyAgICAgICAgaWYgKFRo
cmVhZFdhaXQoVGhyZWFkKSkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCAmSXJxbCk7DQo+ICsgICAg
ICAgIC8vIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIEFjdGl2ZSwgQWN0aXZlIGlzIHNldC9jbGVhcmVk
IG9uIEQzLT5EMC9EMC0+RDMNCj4gKyAgICAgICAgaWYgKEZyb250ZW5kLT5BY3RpdmUpIHsNCj4g
KyAgICAgICAgICAgIF9fUmVhZERpc2tJbmZvKEZyb250ZW5kKTsNCj4gKyAgICAgICAgICAgIF9f
Q2hlY2tCYWNrZW5kRm9yRWplY3QoRnJvbnRlbmQpOw0KPiArICAgICAgICB9DQo+ICsgICAgICAg
IEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCBJcnFsKTsNCj4gICAgICB9
DQo+IC0gICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5TdGF0ZUxvY2ssIElycWwpOw0K
PiArDQo+ICsgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiArDQo+ICB9DQo+IA0KPiAgX19j
aGVja1JldHVybg0KPiBAQCAtMTUyNSw3ICsxNTM3LDYgQEAgRnJvbnRlbmRDcmVhdGUoDQo+ICAg
ICAgX19pbiAgUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvLA0KPiAgICAgIF9faW4gIFBDSEFS
ICAgICAgICAgICAgICAgICAgIERldmljZUlkLA0KPiAgICAgIF9faW4gIFVMT05HICAgICAgICAg
ICAgICAgICAgIFRhcmdldElkLA0KPiAtICAgIF9faW4gIFBLRVZFTlQgICAgICAgICAgICAgICAg
IEV2ZW50LA0KPiAgICAgIF9fb3V0IFBYRU5WQkRfRlJPTlRFTkQqICAgICAgIF9Gcm9udGVuZA0K
PiAgICAgICkNCj4gIHsNCj4gQEAgLTE1NDcsNyArMTU1OCw2IEBAIEZyb250ZW5kQ3JlYXRlKA0K
PiAgICAgIEZyb250ZW5kLT5TdGF0ZSA9IFhFTlZCRF9JTklUSUFMSVpFRDsNCj4gICAgICBGcm9u
dGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSA9IDUxMjsgLy8gZGVmYXVsdCBzZWN0b3Igc2l6ZQ0K
PiAgICAgIEZyb250ZW5kLT5CYWNrZW5kSWQgPSBET01JRF9JTlZBTElEOw0KPiAtICAgIEZyb250
ZW5kLT5CYWNrZW5kRXZlbnQgPSBFdmVudDsNCj4gDQo+ICAgICAgU3RhdHVzID0gU1RBVFVTX0lO
U1VGRklDSUVOVF9SRVNPVVJDRVM7DQo+ICAgICAgRnJvbnRlbmQtPkZyb250ZW5kUGF0aCA9IERy
aXZlckZvcm1hdCgiZGV2aWNlLyVzLyVzIiwNCj4gRmRvRW51bShQZG9HZXRGZG8oUGRvKSksIERl
dmljZUlkKTsNCj4gQEAgLTE1NzAsNiArMTU4MCwxMCBAQCBGcm9udGVuZENyZWF0ZSgNCj4gICAg
ICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkNCj4gICAgICAgICAgZ290byBmYWlsNjsNCj4gDQo+
ICsgICAgU3RhdHVzID0gVGhyZWFkQ3JlYXRlKEZyb250ZW5kQmFja2VuZCwgRnJvbnRlbmQsICZG
cm9udGVuZC0NCj4gPkJhY2tlbmRUaHJlYWQpOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0
dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWw3Ow0KPiArDQo+ICAgICAgLy8ga2VybmVsIG9iamVj
dHMNCj4gICAgICBLZUluaXRpYWxpemVTcGluTG9jaygmRnJvbnRlbmQtPlN0YXRlTG9jayk7DQo+
IA0KPiBAQCAtMTU3Nyw2ICsxNTkxLDEwIEBAIEZyb250ZW5kQ3JlYXRlKA0KPiAgICAgICpfRnJv
bnRlbmQgPSBGcm9udGVuZDsNCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAr
ZmFpbDc6DQo+ICsgICAgRXJyb3IoImZhaWw3XG4iKTsNCj4gKyAgICBHcmFudGVyRGVzdHJveShG
cm9udGVuZC0+R3JhbnRlcik7DQo+ICsgICAgRnJvbnRlbmQtPkdyYW50ZXIgPSBOVUxMOw0KPiAg
ZmFpbDY6DQo+ICAgICAgRXJyb3IoImZhaWw2XG4iKTsNCj4gICAgICBCbG9ja1JpbmdEZXN0cm95
KEZyb250ZW5kLT5CbG9ja1JpbmcpOw0KPiBAQCAtMTYxNCw2ICsxNjMyLDEwIEBAIEZyb250ZW5k
RGVzdHJveSgNCj4gICAgICBQZG9GcmVlSW5xdWlyeURhdGEoRnJvbnRlbmQtPklucXVpcnkpOw0K
PiAgICAgIEZyb250ZW5kLT5JbnF1aXJ5ID0gTlVMTDsNCj4gDQo+ICsgICAgVGhyZWFkQWxlcnQo
RnJvbnRlbmQtPkJhY2tlbmRUaHJlYWQpOw0KPiArICAgIFRocmVhZEpvaW4oRnJvbnRlbmQtPkJh
Y2tlbmRUaHJlYWQpOw0KPiArICAgIEZyb250ZW5kLT5CYWNrZW5kVGhyZWFkID0gTlVMTDsNCj4g
Kw0KPiAgICAgIEdyYW50ZXJEZXN0cm95KEZyb250ZW5kLT5HcmFudGVyKTsNCj4gICAgICBGcm9u
dGVuZC0+R3JhbnRlciA9IE5VTEw7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9u
dGVuZC5oIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5oDQo+IGluZGV4IDdkOTM0ZjkuLjdlNDBiY2Ug
MTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuaA0KPiArKysgYi9zcmMveGVudmJk
L2Zyb250ZW5kLmgNCj4gQEAgLTE3MSwxOSArMTcxLDEyIEBAIEZyb250ZW5kU2V0U3RhdGUoDQo+
ICAgICAgX19pbiAgWEVOVkJEX1NUQVRFICAgICAgICAgICAgU3RhdGUNCj4gICAgICApOw0KPiAN
Cj4gLV9fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkNCj4gLWV4dGVybiBWT0lEDQo+
IC1Gcm9udGVuZEJhY2tlbmRQYXRoQ2hhbmdlZCgNCj4gLSAgICBfX2luICBQWEVOVkJEX0ZST05U
RU5EICAgICAgICBGcm9udGVuZA0KPiAtICAgICk7DQo+IC0NCj4gIF9fY2hlY2tSZXR1cm4NCj4g
IGV4dGVybiBOVFNUQVRVUw0KPiAgRnJvbnRlbmRDcmVhdGUoDQo+ICAgICAgX19pbiAgUFhFTlZC
RF9QRE8gICAgICAgICAgICAgUGRvLA0KPiAgICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgICAg
ICAgIERldmljZUlkLA0KPiAgICAgIF9faW4gIFVMT05HICAgICAgICAgICAgICAgICAgIFRhcmdl
dElkLA0KPiAtICAgIF9faW4gIFBLRVZFTlQgICAgICAgICAgICAgICAgIEV2ZW50LA0KPiAgICAg
IF9fb3V0IFBYRU5WQkRfRlJPTlRFTkQqICAgICAgIF9Gcm9udGVuZA0KPiAgICAgICk7DQo+IA0K
PiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBiL3NyYy94ZW52YmQvcGRvLmMNCj4gaW5k
ZXggYzdkOGIyYi4uOTE4YjgyNCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uYw0KPiAr
KysgYi9zcmMveGVudmJkL3Bkby5jDQo+IEBAIC0yNDU4LDE1ICsyNDU4LDYgQEAgUGRvSXNzdWVE
ZXZpY2VFamVjdCgNCj4gICAgICB9DQo+ICB9DQo+IA0KPiAtX19kcnZfcmVxdWlyZXNJUlFMKERJ
U1BBVENIX0xFVkVMKQ0KPiAtVk9JRA0KPiAtUGRvQmFja2VuZFBhdGhDaGFuZ2VkKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKQ0KPiAtew0KPiAtICAg
IEZyb250ZW5kQmFja2VuZFBhdGhDaGFuZ2VkKFBkby0+RnJvbnRlbmQpOw0KPiAtfQ0KPiAtDQo+
ICBfX2NoZWNrUmV0dXJuDQo+ICBOVFNUQVRVUw0KPiAgUGRvRDNUb0QwKA0KPiBAQCAtMjUzOCw3
ICsyNTI5LDYgQEAgUGRvQ3JlYXRlKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAg
ICAgRmRvLA0KPiAgICAgIF9faW4gX19udWxsdGVybWluYXRlZCBQQ0hBUiAgRGV2aWNlSWQsDQo+
ICAgICAgX19pbiBVTE9ORyAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gLSAgICBfX2lu
IFBLRVZFTlQgICAgICAgICAgICAgICAgIEZyb250ZW5kRXZlbnQsDQo+ICAgICAgX19pbiBYRU5W
QkRfREVWSUNFX1RZUEUgICAgICBEZXZpY2VUeXBlDQo+ICAgICAgKQ0KPiAgew0KPiBAQCAtMjU2
OSwxNSArMjU1OSwxNCBAQCBQZG9DcmVhdGUoDQo+ICAgICAgUXVldWVJbml0KCZQZG8tPlByZXBh
cmVkUmVxcyk7DQo+ICAgICAgUXVldWVJbml0KCZQZG8tPlN1Ym1pdHRlZFJlcXMpOw0KPiAgICAg
IFF1ZXVlSW5pdCgmUGRvLT5TaHV0ZG93blNyYnMpOw0KPiAtDQo+IC0gICAgU3RhdHVzID0gRnJv
bnRlbmRDcmVhdGUoUGRvLCBEZXZpY2VJZCwgVGFyZ2V0SWQsIEZyb250ZW5kRXZlbnQsICZQZG8t
DQo+ID5Gcm9udGVuZCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+IC0gICAg
ICAgIGdvdG8gZmFpbDI7DQo+IC0NCj4gICAgICBfX0xvb2thc2lkZUluaXQoJlBkby0+UmVxdWVz
dExpc3QsIHNpemVvZihYRU5WQkRfUkVRVUVTVCksDQo+IFJFUVVFU1RfUE9PTF9UQUcpOw0KPiAg
ICAgIF9fTG9va2FzaWRlSW5pdCgmUGRvLT5TZWdtZW50TGlzdCwgc2l6ZW9mKFhFTlZCRF9TRUdN
RU5UKSwNCj4gU0VHTUVOVF9QT09MX1RBRyk7DQo+ICAgICAgX19Mb29rYXNpZGVJbml0KCZQZG8t
PkluZGlyZWN0TGlzdCwgc2l6ZW9mKFhFTlZCRF9JTkRJUkVDVCksDQo+IElORElSRUNUX1BPT0xf
VEFHKTsNCj4gDQo+ICsgICAgU3RhdHVzID0gRnJvbnRlbmRDcmVhdGUoUGRvLCBEZXZpY2VJZCwg
VGFyZ2V0SWQsICZQZG8tPkZyb250ZW5kKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVz
KSkNCj4gKyAgICAgICAgZ290byBmYWlsMjsNCj4gKw0KPiAgICAgIFN0YXR1cyA9IFBkb0QzVG9E
MChQZG8pOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3Rv
IGZhaWwzOw0KPiBAQCAtMjU5NSwxNCArMjU4NCwxNCBAQCBmYWlsNDoNCj4gDQo+ICBmYWlsMzoN
Cj4gICAgICBFcnJvcigiRmFpbDNcbiIpOw0KPiAtICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5J
bmRpcmVjdExpc3QpOw0KPiAtICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5TZWdtZW50TGlzdCk7
DQo+IC0gICAgX19Mb29rYXNpZGVUZXJtKCZQZG8tPlJlcXVlc3RMaXN0KTsNCj4gICAgICBGcm9u
dGVuZERlc3Ryb3koUGRvLT5Gcm9udGVuZCk7DQo+ICAgICAgUGRvLT5Gcm9udGVuZCA9IE5VTEw7
DQo+IA0KPiAgZmFpbDI6DQo+ICAgICAgRXJyb3IoIkZhaWwyXG4iKTsNCj4gKyAgICBfX0xvb2th
c2lkZVRlcm0oJlBkby0+SW5kaXJlY3RMaXN0KTsNCj4gKyAgICBfX0xvb2thc2lkZVRlcm0oJlBk
by0+U2VnbWVudExpc3QpOw0KPiArICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5SZXF1ZXN0TGlz
dCk7DQo+ICAgICAgX19QZG9GcmVlKFBkbyk7DQo+IA0KPiAgZmFpbDE6DQo+IEBAIC0yNjY1LDEz
ICsyNjU0LDEzIEBAIFBkb0Rlc3Ryb3koDQo+ICAgICAgQVNTRVJUM1MoUGRvLT5SZWZlcmVuY2VD
b3VudCwgPT0sIDApOw0KPiAgICAgIEFTU0VSVDNVKFBkb0dldERldmljZVBucFN0YXRlKFBkbyks
ID09LCBEZWxldGVkKTsNCj4gDQo+ICsgICAgRnJvbnRlbmREZXN0cm95KFBkby0+RnJvbnRlbmQp
Ow0KPiArICAgIFBkby0+RnJvbnRlbmQgPSBOVUxMOw0KPiArDQo+ICAgICAgX19Mb29rYXNpZGVU
ZXJtKCZQZG8tPkluZGlyZWN0TGlzdCk7DQo+ICAgICAgX19Mb29rYXNpZGVUZXJtKCZQZG8tPlNl
Z21lbnRMaXN0KTsNCj4gICAgICBfX0xvb2thc2lkZVRlcm0oJlBkby0+UmVxdWVzdExpc3QpOw0K
PiANCj4gLSAgICBGcm9udGVuZERlc3Ryb3koUGRvLT5Gcm9udGVuZCk7DQo+IC0gICAgUGRvLT5G
cm9udGVuZCA9IE5VTEw7DQo+IC0NCj4gICAgICBBU1NFUlQzVShQZG8tPlNpZ25hdHVyZSwgPT0s
IFBET19TSUdOQVRVUkUpOw0KPiAgICAgIFJ0bFplcm9NZW1vcnkoUGRvLCBzaXplb2YoWEVOVkJE
X1BETykpOw0KPiAgICAgIF9fUGRvRnJlZShQZG8pOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZi
ZC9wZG8uaCBiL3NyYy94ZW52YmQvcGRvLmgNCj4gaW5kZXggM2JmZjc0My4uOTQ2YzM0ZiAxMDA2
NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uaA0KPiArKysgYi9zcmMveGVudmJkL3Bkby5oDQo+
IEBAIC01NSw3ICs1NSw2IEBAIFBkb0NyZWF0ZSgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAg
ICAgICAgICAgIEZkbywNCj4gICAgICBfX2luIF9fbnVsbHRlcm1pbmF0ZWQgUENIQVIgIERldmlj
ZUlkLA0KPiAgICAgIF9faW4gVUxPTkcgICAgICAgICAgICAgICAgICAgVGFyZ2V0SWQsDQo+IC0g
ICAgX19pbiBQS0VWRU5UICAgICAgICAgICAgICAgICBGcm9udGVuZEV2ZW50LA0KPiAgICAgIF9f
aW4gWEVOVkJEX0RFVklDRV9UWVBFICAgICAgRGV2aWNlVHlwZQ0KPiAgICAgICk7DQo+IA0KPiBA
QCAtNzUsMTIgKzc0LDYgQEAgUGRvRDBUb0QzKA0KPiAgICAgIF9faW4gUFhFTlZCRF9QRE8gICAg
ICAgICAgICAgUGRvDQo+ICAgICAgKTsNCj4gDQo+IC1fX2Rydl9yZXF1aXJlc0lSUUwoRElTUEFU
Q0hfTEVWRUwpDQo+IC1leHRlcm4gVk9JRA0KPiAtUGRvQmFja2VuZFBhdGhDaGFuZ2VkKA0KPiAt
ICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKTsNCj4gLQ0KPiAg
Ly8gUG5QIFN0YXRlcw0KPiAgZXh0ZXJuIFZPSUQNCj4gIFBkb1NldE1pc3NpbmcoDQo+IC0tDQo+
IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:54:20 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:54:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhtM-0004fk-Ct; Mon, 09 May 2016 09:54:20 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhtL-0004f4-3X
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:54:19 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 A1/79-02219-A4E50375; Mon, 09 May 2016 09:54:18 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQtczziD
 c4OoJMYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXzibPaCpy2MFV+aLrA0MHY0M3YxcnJICPhJ
 7OuczwRiswnoSCw9CmGLCBRIfH8/jxnEZhZQk7i+v4sVxBYWSJQ427ObDaImSeLUxZcsELaRx
 PX+E2BxFgEVie9dM8FsXgF3iS+db8FmCgnUSWx8MR0szingKjFl3zWwOKOArMSXxtVQu8Qlbj
 2BuEFCQEBiyZ7zzBC2qMTLx/9YIWwDia1L9wHt5QCq15RYv0sfolVRYkr3Q3aItYISJ2c+YYF
 YqyKx5fEBqDHcEis//2GZwCg6C8m2WQiTZiGZNAvJpAWMLKsY1YtTi8pSi3RN9ZKKMtMzSnIT
 M3N0DQ1M9XJTi4sT01NzEpOK9ZLzczcxAiOFAQh2MH7pdz7EKMnBpCTK68qoFy7El5SfUpmRW
 JwRX1Sak1p8iFGGg0NJgrczxiBcSLAoNT21Ii0zBxizMGkJDh4lEV5VkDRvcUFibnFmOkTqFK
 OilDjvMZCEAEgiozQPrg2WJi4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmPcIyBSezLwSuOm
 vgBYzAS2WY9MHWVySiJCSamBsZ5Yo9V40S74l4dcFd8s857v5mp/1anlid+moaLCqLoizdth3
 uZrn3FJPya+xMe/n35wcHvo1+YHlpzvr3f1MufmWN+x+rtlxm1Ouuaylvb1z42UmUR2mGRN9Z
 IOOOfBtY2Oac8j3r632rsd/ea+V3stYKyJ97dQUW708wV8Lv/f6T8roNFJiKc5INNRiLipOBA
 CTpVyoDgMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1462787656!38395929!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57438 invoked from network); 9 May 2016 09:54:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:54:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077699"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 6/9] Create a thread per VBD to handle
 backend change watches
Thread-Index: AQHRnKIaoORloEjJ506Zzqfg0ZtAxZ+weA7Q
Date: Mon, 9 May 2016 09:53:57 +0000
Message-ID: <a426384a914645aeb4893d5a1d9e6a26@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-7-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-7-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 6/9] Create a thread per VBD to
	handle	backend change watches
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA2LzldIENyZWF0ZSBhIHRocmVhZCBwZXIgVkJEIHRvIGhh
bmRsZQ0KPiBiYWNrZW5kIGNoYW5nZSB3YXRjaGVzDQo+IA0KPiBVc2luZyBhIHNpbmdsZSB0aHJl
YWQgZm9yIGFsbCBiYWNrZW5kIHdhdGNoIGV2ZW50cyBwdXN0IHVubmVjY2VzYXJ5DQo+IHN0cmFp
biBvbiB4ZW5zdG9yZSB3aGVuIG11bHRpcGxlIHZiZHMgYXJlIGluIHVzZSwgYXMgZWFjaCBjaGFu
Z2UNCj4gY2F1c2VzIFhlblZiZCB0byBjaGVjayBzZXZlcmFsIHZhbHVlcyBpbiBhbGwgYmFja2Vu
ZCBhcmVhcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Zkby5jICAgICAgfCA1NSArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZnJv
bnRlbmQuYyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+IC0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9mcm9udGVuZC5oIHwgIDcgLS0tLS0tLQ0KPiAgc3Jj
L3hlbnZiZC9wZG8uYyAgICAgIHwgMzEgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g
IHNyYy94ZW52YmQvcGRvLmggICAgICB8ICA3IC0tLS0tLS0NCj4gIDUgZmlsZXMgY2hhbmdlZCwg
NDkgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52YmQvZmRvLmMgYi9zcmMveGVudmJkL2Zkby5jDQo+IGluZGV4IGRhYjdhZTEuLjI5ZWM5
NjYgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZmRvLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9m
ZG8uYw0KPiBAQCAtOTMsNyArOTMsNiBAQCBzdHJ1Y3QgX1hFTlZCRF9GRE8gew0KPiAgICAgIFBY
RU5WQkRfVEhSRUFEICAgICAgICAgICAgICBTY2FuVGhyZWFkOw0KPiAgICAgIEtFVkVOVCAgICAg
ICAgICAgICAgICAgICAgICBTY2FuRXZlbnQ7DQo+ICAgICAgUFhFTkJVU19TVE9SRV9XQVRDSCAg
ICAgICAgIFNjYW5XYXRjaDsNCj4gLSAgICBQWEVOVkJEX1RIUkVBRCAgICAgICAgICAgICAgRnJv
bnRlbmRUaHJlYWQ7DQo+IA0KPiAgICAgIC8vIFN0YXRpc3RpY3MNCj4gICAgICBMT05HICAgICAg
ICAgICAgICAgICAgICAgICAgQ3VycmVudFNyYnM7DQo+IEBAIC02NDgsNyArNjQ3LDYgQEAgX19G
ZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgIGlmIChQZG9DcmVhdGUoRmRvLA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgIERldmljZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRHZXRFdmVudChGZG8tPkZyb250ZW5kVGhy
ZWFkKSwNCj4gICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VUeXBlKSkgew0KPiAgICAgICAg
ICAgICAgKk5lZWRJbnZhbGlkYXRlID0gVFJVRTsNCj4gICAgICAgICAgfQ0KPiBAQCAtNzEyLDQz
ICs3MTAsNiBAQCBGZG9TY2FuKA0KPiAgICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gIH0N
Cj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+IC1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgTlRTVEFU
VVMNCj4gLUZkb0Zyb250ZW5kKA0KPiAtICAgIF9faW4gUFhFTlZCRF9USFJFQUQgICAgICAgICAg
ICAgIFRocmVhZCwNCj4gLSAgICBfX2luIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICBDb250
ZXh0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIFBYRU5WQkRfRkRPICAgICBGZG8gPSBDb250ZXh0
Ow0KPiAtDQo+IC0gICAgZm9yICg7Oykgew0KPiAtICAgICAgICBVTE9ORyAgICAgICBUYXJnZXRJ
ZDsNCj4gLSAgICAgICAgS0lSUUwgICAgICAgSXJxbDsNCj4gLQ0KPiAtICAgICAgICBpZiAoIVRo
cmVhZFdhaXQoVGhyZWFkKSkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZGZG8tPkxvY2ssICZJcnFsKTsNCj4gLQ0KPiAtICAgICAgICBp
ZiAoRmRvLT5EZXZpY2VQb3dlciAhPSBQb3dlckRldmljZUQwKSB7DQo+IC0gICAgICAgICAgICBL
ZVJlbGVhc2VTcGluTG9jaygmRmRvLT5Mb2NrLCBJcnFsKTsNCj4gLSAgICAgICAgICAgIGNvbnRp
bnVlOw0KPiAtICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgZm9yIChUYXJnZXRJZCA9IDA7IFRh
cmdldElkIDwgWEVOVkJEX01BWF9UQVJHRVRTOyArK1RhcmdldElkKSB7DQo+IC0gICAgICAgICAg
ICBQWEVOVkJEX1BETyBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFRhcmdldElkKTsNCj4gLSAgICAg
ICAgICAgIGlmIChQZG8pIHsNCj4gLSAgICAgICAgICAgICAgICBQZG9CYWNrZW5kUGF0aENoYW5n
ZWQoUGRvKTsNCj4gLSAgICAgICAgICAgICAgICBQZG9EZXJlZmVyZW5jZShQZG8pOw0KPiAtICAg
ICAgICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgS2VSZWxlYXNlU3Bpbkxv
Y2soJkZkby0+TG9jaywgSXJxbCk7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIFNUQVRV
U19TVUNDRVNTOw0KPiAtfQ0KPiAtDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0K
PiAgLy8gSW5pdGlhbGl6ZSwgU3RhcnQsIFN0b3ANCj4gDQo+IEBAIC0xNTU2LDEzICsxNTE3LDkg
QEAgX19GZG9Jbml0aWFsaXplKA0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAg
ICAgICAgICBnb3RvIGZhaWwzOw0KPiANCj4gLSAgICBTdGF0dXMgPSBUaHJlYWRDcmVhdGUoRmRv
RnJvbnRlbmQsIEZkbywgJkZkby0+RnJvbnRlbmRUaHJlYWQpOw0KPiAtICAgIGlmICghTlRfU1VD
Q0VTUyhTdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw0Ow0KPiAtDQo+ICAgICAgU3RhdHVz
ID0gVGhyZWFkQ3JlYXRlKEZkb0RldmljZVBvd2VyLCBGZG8sICZGZG8tDQo+ID5EZXZpY2VQb3dl
clRocmVhZCk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+IC0gICAgICAgIGdv
dG8gZmFpbDU7DQo+ICsgICAgICAgIGdvdG8gZmFpbDQ7DQo+IA0KPiAgICAgIC8vIHF1ZXJ5IGVu
dW1lcmF0b3INCj4gICAgICAvLyBmaXggdGhpcyB1cCB0byBxdWVyeSBmcm9tIGRldmljZSBsb2Nh
dGlvbig/KQ0KPiBAQCAtMTU3NCwxMSArMTUzMSw2IEBAIF9fRmRvSW5pdGlhbGl6ZSgNCj4gICAg
ICBUcmFjZSgiPD09PT09ICglZClcbiIsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+ICAgICAgcmV0
dXJuIFNUQVRVU19TVUNDRVNTOw0KPiANCj4gLWZhaWw1Og0KPiAtICAgIEVycm9yKCJmYWlsNVxu
Iik7DQo+IC0gICAgVGhyZWFkQWxlcnQoRmRvLT5Gcm9udGVuZFRocmVhZCk7DQo+IC0gICAgVGhy
ZWFkSm9pbihGZG8tPkZyb250ZW5kVGhyZWFkKTsNCj4gLSAgICBGZG8tPkZyb250ZW5kVGhyZWFk
ID0gTlVMTDsNCj4gIGZhaWw0Og0KPiAgICAgIEVycm9yKCJmYWlsNFxuIik7DQo+ICAgICAgVGhy
ZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gQEAgLTE2MjEsMTEgKzE1NzMsNiBAQCBfX0Zk
b1Rlcm1pbmF0ZSgNCj4gICAgICBUaHJlYWRKb2luKEZkby0+RGV2aWNlUG93ZXJUaHJlYWQpOw0K
PiAgICAgIEZkby0+RGV2aWNlUG93ZXJUaHJlYWQgPSBOVUxMOw0KPiANCj4gLSAgICAvLyBzdG9w
IGZyb250ZW5kIHRocmVhZA0KPiAtICAgIFRocmVhZEFsZXJ0KEZkby0+RnJvbnRlbmRUaHJlYWQp
Ow0KPiAtICAgIFRocmVhZEpvaW4oRmRvLT5Gcm9udGVuZFRocmVhZCk7DQo+IC0gICAgRmRvLT5G
cm9udGVuZFRocmVhZCA9IE5VTEw7DQo+IC0NCj4gICAgICAvLyBzdG9wIGVudW0gdGhyZWFkDQo+
ICAgICAgVGhyZWFkQWxlcnQoRmRvLT5TY2FuVGhyZWFkKTsNCj4gICAgICBUaHJlYWRKb2luKEZk
by0+U2NhblRocmVhZCk7DQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9z
cmMveGVudmJkL2Zyb250ZW5kLmMNCj4gaW5kZXggNGE4ZmJlMy4uMTQzNjAwMSAxMDA2NDQNCj4g
LS0tIGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQu
Yw0KPiBAQCAtNDEsNiArNDEsNyBAQA0KPiAgI2luY2x1ZGUgIm5vdGlmaWVyLmgiDQo+ICAjaW5j
bHVkZSAiYmxvY2tyaW5nLmgiDQo+ICAjaW5jbHVkZSAiZ3JhbnRlci5oIg0KPiArI2luY2x1ZGUg
InRocmVhZC5oIg0KPiAgI2luY2x1ZGUgPHN0b3JlX2ludGVyZmFjZS5oPg0KPiAgI2luY2x1ZGUg
PHN1c3BlbmRfaW50ZXJmYWNlLmg+DQo+IA0KPiBAQCAtNzYsNyArNzcsNyBAQCBzdHJ1Y3QgX1hF
TlZCRF9GUk9OVEVORCB7DQo+IA0KPiAgICAgIC8vIEJhY2tlbmQgU3RhdGUgV2F0Y2gNCj4gICAg
ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgQWN0aXZlOw0KPiAtICAgIFBLRVZFTlQgICAg
ICAgICAgICAgICAgICAgICBCYWNrZW5kRXZlbnQ7DQo+ICsgICAgUFhFTlZCRF9USFJFQUQgICAg
ICAgICAgICAgIEJhY2tlbmRUaHJlYWQ7DQo+ICAgICAgUFhFTkJVU19TVE9SRV9XQVRDSCAgICAg
ICAgIEJhY2tlbmRXYXRjaDsNCj4gIH07DQo+IA0KPiBAQCAtOTI1LDcgKzkyNiw3IEBAIEZyb250
ZW5kUHJlcGFyZSgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3Jl
LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBhdGgsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgIEZyb250ZW5kLT5CYWNrZW5kRXZlbnQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRocmVhZEdldEV2ZW50KEZyb250ZW5kLT5CYWNrZW5kVGhyZWFkKSwNCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5CYWNrZW5kV2F0Y2gpOw0KPiAgICAgIGlmICgh
TlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3RvIGZhaWwyOw0KPiBAQCAtMTUwMiwy
MSArMTUwMywzMiBAQCBGcm9udGVuZFNldFN0YXRlKA0KPiAgICAgIHJldHVybiBTdGF0dXM7DQo+
ICB9DQo+IA0KPiAtX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQ0KPiAtVk9JRA0K
PiAtRnJvbnRlbmRCYWNrZW5kUGF0aENoYW5nZWQoDQo+IC0gICAgX19pbiAgUFhFTlZCRF9GUk9O
VEVORCAgICAgICAgRnJvbnRlbmQNCj4gK19fY2hlY2tSZXR1cm4NCj4gK3N0YXRpYyBERUNMU1BF
Q19OT0lOTElORSBOVFNUQVRVUw0KPiArRnJvbnRlbmRCYWNrZW5kKA0KPiArICAgIF9faW4gUFhF
TlZCRF9USFJFQUQgICAgICAgICAgICAgIFRocmVhZCwNCj4gKyAgICBfX2luIFBWT0lEICAgICAg
ICAgICAgICAgICAgICAgICBDb250ZXh0DQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIEtJUlFMICAg
ICAgIElycWw7DQo+IC0gICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5TdGF0ZUxvY2ss
ICZJcnFsKTsNCj4gLSAgICAvLyBPbmx5IGF0dGVtcHQgdGhpcyBpZiBBY3RpdmUsIEFjdGl2ZSBp
cyBzZXQvY2xlYXJlZCBvbiBEMy0+RDAvRDAtPkQzDQo+IC0gICAgaWYgKEZyb250ZW5kLT5BY3Rp
dmUpIHsNCj4gLSAgICAgICAgLy8gTm90ZTogTm90aGluZyBtYXkgaGF2ZSBjaGFuZ2VkIHdpdGgg
dGhpcyB0YXJnZXQsIHRoaXMgY291bGQgYmUNCj4gY2F1c2VkIGJ5IGFub3RoZXIgdGFyZ2V0IGNo
YW5naW5nDQo+IC0gICAgICAgIF9fUmVhZERpc2tJbmZvKEZyb250ZW5kKTsNCj4gLSAgICAgICAg
X19DaGVja0JhY2tlbmRGb3JFamVjdChGcm9udGVuZCk7DQo+ICsgICAgUFhFTlZCRF9GUk9OVEVO
RCAgICAgICAgICAgICAgICBGcm9udGVuZCA9IENvbnRleHQ7DQo+ICsNCj4gKyAgICBmb3IgKDs7
KSB7DQo+ICsgICAgICAgIEtJUlFMICAgICAgIElycWw7DQo+ICsNCj4gKyAgICAgICAgaWYgKFRo
cmVhZFdhaXQoVGhyZWFkKSkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgICAg
IEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCAmSXJxbCk7DQo+ICsgICAg
ICAgIC8vIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIEFjdGl2ZSwgQWN0aXZlIGlzIHNldC9jbGVhcmVk
IG9uIEQzLT5EMC9EMC0+RDMNCj4gKyAgICAgICAgaWYgKEZyb250ZW5kLT5BY3RpdmUpIHsNCj4g
KyAgICAgICAgICAgIF9fUmVhZERpc2tJbmZvKEZyb250ZW5kKTsNCj4gKyAgICAgICAgICAgIF9f
Q2hlY2tCYWNrZW5kRm9yRWplY3QoRnJvbnRlbmQpOw0KPiArICAgICAgICB9DQo+ICsgICAgICAg
IEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCBJcnFsKTsNCj4gICAgICB9
DQo+IC0gICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5TdGF0ZUxvY2ssIElycWwpOw0K
PiArDQo+ICsgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiArDQo+ICB9DQo+IA0KPiAgX19j
aGVja1JldHVybg0KPiBAQCAtMTUyNSw3ICsxNTM3LDYgQEAgRnJvbnRlbmRDcmVhdGUoDQo+ICAg
ICAgX19pbiAgUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvLA0KPiAgICAgIF9faW4gIFBDSEFS
ICAgICAgICAgICAgICAgICAgIERldmljZUlkLA0KPiAgICAgIF9faW4gIFVMT05HICAgICAgICAg
ICAgICAgICAgIFRhcmdldElkLA0KPiAtICAgIF9faW4gIFBLRVZFTlQgICAgICAgICAgICAgICAg
IEV2ZW50LA0KPiAgICAgIF9fb3V0IFBYRU5WQkRfRlJPTlRFTkQqICAgICAgIF9Gcm9udGVuZA0K
PiAgICAgICkNCj4gIHsNCj4gQEAgLTE1NDcsNyArMTU1OCw2IEBAIEZyb250ZW5kQ3JlYXRlKA0K
PiAgICAgIEZyb250ZW5kLT5TdGF0ZSA9IFhFTlZCRF9JTklUSUFMSVpFRDsNCj4gICAgICBGcm9u
dGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSA9IDUxMjsgLy8gZGVmYXVsdCBzZWN0b3Igc2l6ZQ0K
PiAgICAgIEZyb250ZW5kLT5CYWNrZW5kSWQgPSBET01JRF9JTlZBTElEOw0KPiAtICAgIEZyb250
ZW5kLT5CYWNrZW5kRXZlbnQgPSBFdmVudDsNCj4gDQo+ICAgICAgU3RhdHVzID0gU1RBVFVTX0lO
U1VGRklDSUVOVF9SRVNPVVJDRVM7DQo+ICAgICAgRnJvbnRlbmQtPkZyb250ZW5kUGF0aCA9IERy
aXZlckZvcm1hdCgiZGV2aWNlLyVzLyVzIiwNCj4gRmRvRW51bShQZG9HZXRGZG8oUGRvKSksIERl
dmljZUlkKTsNCj4gQEAgLTE1NzAsNiArMTU4MCwxMCBAQCBGcm9udGVuZENyZWF0ZSgNCj4gICAg
ICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkNCj4gICAgICAgICAgZ290byBmYWlsNjsNCj4gDQo+
ICsgICAgU3RhdHVzID0gVGhyZWFkQ3JlYXRlKEZyb250ZW5kQmFja2VuZCwgRnJvbnRlbmQsICZG
cm9udGVuZC0NCj4gPkJhY2tlbmRUaHJlYWQpOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0
dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWw3Ow0KPiArDQo+ICAgICAgLy8ga2VybmVsIG9iamVj
dHMNCj4gICAgICBLZUluaXRpYWxpemVTcGluTG9jaygmRnJvbnRlbmQtPlN0YXRlTG9jayk7DQo+
IA0KPiBAQCAtMTU3Nyw2ICsxNTkxLDEwIEBAIEZyb250ZW5kQ3JlYXRlKA0KPiAgICAgICpfRnJv
bnRlbmQgPSBGcm9udGVuZDsNCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAr
ZmFpbDc6DQo+ICsgICAgRXJyb3IoImZhaWw3XG4iKTsNCj4gKyAgICBHcmFudGVyRGVzdHJveShG
cm9udGVuZC0+R3JhbnRlcik7DQo+ICsgICAgRnJvbnRlbmQtPkdyYW50ZXIgPSBOVUxMOw0KPiAg
ZmFpbDY6DQo+ICAgICAgRXJyb3IoImZhaWw2XG4iKTsNCj4gICAgICBCbG9ja1JpbmdEZXN0cm95
KEZyb250ZW5kLT5CbG9ja1JpbmcpOw0KPiBAQCAtMTYxNCw2ICsxNjMyLDEwIEBAIEZyb250ZW5k
RGVzdHJveSgNCj4gICAgICBQZG9GcmVlSW5xdWlyeURhdGEoRnJvbnRlbmQtPklucXVpcnkpOw0K
PiAgICAgIEZyb250ZW5kLT5JbnF1aXJ5ID0gTlVMTDsNCj4gDQo+ICsgICAgVGhyZWFkQWxlcnQo
RnJvbnRlbmQtPkJhY2tlbmRUaHJlYWQpOw0KPiArICAgIFRocmVhZEpvaW4oRnJvbnRlbmQtPkJh
Y2tlbmRUaHJlYWQpOw0KPiArICAgIEZyb250ZW5kLT5CYWNrZW5kVGhyZWFkID0gTlVMTDsNCj4g
Kw0KPiAgICAgIEdyYW50ZXJEZXN0cm95KEZyb250ZW5kLT5HcmFudGVyKTsNCj4gICAgICBGcm9u
dGVuZC0+R3JhbnRlciA9IE5VTEw7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9u
dGVuZC5oIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5oDQo+IGluZGV4IDdkOTM0ZjkuLjdlNDBiY2Ug
MTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuaA0KPiArKysgYi9zcmMveGVudmJk
L2Zyb250ZW5kLmgNCj4gQEAgLTE3MSwxOSArMTcxLDEyIEBAIEZyb250ZW5kU2V0U3RhdGUoDQo+
ICAgICAgX19pbiAgWEVOVkJEX1NUQVRFICAgICAgICAgICAgU3RhdGUNCj4gICAgICApOw0KPiAN
Cj4gLV9fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkNCj4gLWV4dGVybiBWT0lEDQo+
IC1Gcm9udGVuZEJhY2tlbmRQYXRoQ2hhbmdlZCgNCj4gLSAgICBfX2luICBQWEVOVkJEX0ZST05U
RU5EICAgICAgICBGcm9udGVuZA0KPiAtICAgICk7DQo+IC0NCj4gIF9fY2hlY2tSZXR1cm4NCj4g
IGV4dGVybiBOVFNUQVRVUw0KPiAgRnJvbnRlbmRDcmVhdGUoDQo+ICAgICAgX19pbiAgUFhFTlZC
RF9QRE8gICAgICAgICAgICAgUGRvLA0KPiAgICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgICAg
ICAgIERldmljZUlkLA0KPiAgICAgIF9faW4gIFVMT05HICAgICAgICAgICAgICAgICAgIFRhcmdl
dElkLA0KPiAtICAgIF9faW4gIFBLRVZFTlQgICAgICAgICAgICAgICAgIEV2ZW50LA0KPiAgICAg
IF9fb3V0IFBYRU5WQkRfRlJPTlRFTkQqICAgICAgIF9Gcm9udGVuZA0KPiAgICAgICk7DQo+IA0K
PiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBiL3NyYy94ZW52YmQvcGRvLmMNCj4gaW5k
ZXggYzdkOGIyYi4uOTE4YjgyNCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uYw0KPiAr
KysgYi9zcmMveGVudmJkL3Bkby5jDQo+IEBAIC0yNDU4LDE1ICsyNDU4LDYgQEAgUGRvSXNzdWVE
ZXZpY2VFamVjdCgNCj4gICAgICB9DQo+ICB9DQo+IA0KPiAtX19kcnZfcmVxdWlyZXNJUlFMKERJ
U1BBVENIX0xFVkVMKQ0KPiAtVk9JRA0KPiAtUGRvQmFja2VuZFBhdGhDaGFuZ2VkKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKQ0KPiAtew0KPiAtICAg
IEZyb250ZW5kQmFja2VuZFBhdGhDaGFuZ2VkKFBkby0+RnJvbnRlbmQpOw0KPiAtfQ0KPiAtDQo+
ICBfX2NoZWNrUmV0dXJuDQo+ICBOVFNUQVRVUw0KPiAgUGRvRDNUb0QwKA0KPiBAQCAtMjUzOCw3
ICsyNTI5LDYgQEAgUGRvQ3JlYXRlKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAgICAgICAg
ICAgRmRvLA0KPiAgICAgIF9faW4gX19udWxsdGVybWluYXRlZCBQQ0hBUiAgRGV2aWNlSWQsDQo+
ICAgICAgX19pbiBVTE9ORyAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gLSAgICBfX2lu
IFBLRVZFTlQgICAgICAgICAgICAgICAgIEZyb250ZW5kRXZlbnQsDQo+ICAgICAgX19pbiBYRU5W
QkRfREVWSUNFX1RZUEUgICAgICBEZXZpY2VUeXBlDQo+ICAgICAgKQ0KPiAgew0KPiBAQCAtMjU2
OSwxNSArMjU1OSwxNCBAQCBQZG9DcmVhdGUoDQo+ICAgICAgUXVldWVJbml0KCZQZG8tPlByZXBh
cmVkUmVxcyk7DQo+ICAgICAgUXVldWVJbml0KCZQZG8tPlN1Ym1pdHRlZFJlcXMpOw0KPiAgICAg
IFF1ZXVlSW5pdCgmUGRvLT5TaHV0ZG93blNyYnMpOw0KPiAtDQo+IC0gICAgU3RhdHVzID0gRnJv
bnRlbmRDcmVhdGUoUGRvLCBEZXZpY2VJZCwgVGFyZ2V0SWQsIEZyb250ZW5kRXZlbnQsICZQZG8t
DQo+ID5Gcm9udGVuZCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+IC0gICAg
ICAgIGdvdG8gZmFpbDI7DQo+IC0NCj4gICAgICBfX0xvb2thc2lkZUluaXQoJlBkby0+UmVxdWVz
dExpc3QsIHNpemVvZihYRU5WQkRfUkVRVUVTVCksDQo+IFJFUVVFU1RfUE9PTF9UQUcpOw0KPiAg
ICAgIF9fTG9va2FzaWRlSW5pdCgmUGRvLT5TZWdtZW50TGlzdCwgc2l6ZW9mKFhFTlZCRF9TRUdN
RU5UKSwNCj4gU0VHTUVOVF9QT09MX1RBRyk7DQo+ICAgICAgX19Mb29rYXNpZGVJbml0KCZQZG8t
PkluZGlyZWN0TGlzdCwgc2l6ZW9mKFhFTlZCRF9JTkRJUkVDVCksDQo+IElORElSRUNUX1BPT0xf
VEFHKTsNCj4gDQo+ICsgICAgU3RhdHVzID0gRnJvbnRlbmRDcmVhdGUoUGRvLCBEZXZpY2VJZCwg
VGFyZ2V0SWQsICZQZG8tPkZyb250ZW5kKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVz
KSkNCj4gKyAgICAgICAgZ290byBmYWlsMjsNCj4gKw0KPiAgICAgIFN0YXR1cyA9IFBkb0QzVG9E
MChQZG8pOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0KPiAgICAgICAgICBnb3Rv
IGZhaWwzOw0KPiBAQCAtMjU5NSwxNCArMjU4NCwxNCBAQCBmYWlsNDoNCj4gDQo+ICBmYWlsMzoN
Cj4gICAgICBFcnJvcigiRmFpbDNcbiIpOw0KPiAtICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5J
bmRpcmVjdExpc3QpOw0KPiAtICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5TZWdtZW50TGlzdCk7
DQo+IC0gICAgX19Mb29rYXNpZGVUZXJtKCZQZG8tPlJlcXVlc3RMaXN0KTsNCj4gICAgICBGcm9u
dGVuZERlc3Ryb3koUGRvLT5Gcm9udGVuZCk7DQo+ICAgICAgUGRvLT5Gcm9udGVuZCA9IE5VTEw7
DQo+IA0KPiAgZmFpbDI6DQo+ICAgICAgRXJyb3IoIkZhaWwyXG4iKTsNCj4gKyAgICBfX0xvb2th
c2lkZVRlcm0oJlBkby0+SW5kaXJlY3RMaXN0KTsNCj4gKyAgICBfX0xvb2thc2lkZVRlcm0oJlBk
by0+U2VnbWVudExpc3QpOw0KPiArICAgIF9fTG9va2FzaWRlVGVybSgmUGRvLT5SZXF1ZXN0TGlz
dCk7DQo+ICAgICAgX19QZG9GcmVlKFBkbyk7DQo+IA0KPiAgZmFpbDE6DQo+IEBAIC0yNjY1LDEz
ICsyNjU0LDEzIEBAIFBkb0Rlc3Ryb3koDQo+ICAgICAgQVNTRVJUM1MoUGRvLT5SZWZlcmVuY2VD
b3VudCwgPT0sIDApOw0KPiAgICAgIEFTU0VSVDNVKFBkb0dldERldmljZVBucFN0YXRlKFBkbyks
ID09LCBEZWxldGVkKTsNCj4gDQo+ICsgICAgRnJvbnRlbmREZXN0cm95KFBkby0+RnJvbnRlbmQp
Ow0KPiArICAgIFBkby0+RnJvbnRlbmQgPSBOVUxMOw0KPiArDQo+ICAgICAgX19Mb29rYXNpZGVU
ZXJtKCZQZG8tPkluZGlyZWN0TGlzdCk7DQo+ICAgICAgX19Mb29rYXNpZGVUZXJtKCZQZG8tPlNl
Z21lbnRMaXN0KTsNCj4gICAgICBfX0xvb2thc2lkZVRlcm0oJlBkby0+UmVxdWVzdExpc3QpOw0K
PiANCj4gLSAgICBGcm9udGVuZERlc3Ryb3koUGRvLT5Gcm9udGVuZCk7DQo+IC0gICAgUGRvLT5G
cm9udGVuZCA9IE5VTEw7DQo+IC0NCj4gICAgICBBU1NFUlQzVShQZG8tPlNpZ25hdHVyZSwgPT0s
IFBET19TSUdOQVRVUkUpOw0KPiAgICAgIFJ0bFplcm9NZW1vcnkoUGRvLCBzaXplb2YoWEVOVkJE
X1BETykpOw0KPiAgICAgIF9fUGRvRnJlZShQZG8pOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZi
ZC9wZG8uaCBiL3NyYy94ZW52YmQvcGRvLmgNCj4gaW5kZXggM2JmZjc0My4uOTQ2YzM0ZiAxMDA2
NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uaA0KPiArKysgYi9zcmMveGVudmJkL3Bkby5oDQo+
IEBAIC01NSw3ICs1NSw2IEBAIFBkb0NyZWF0ZSgNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAg
ICAgICAgICAgIEZkbywNCj4gICAgICBfX2luIF9fbnVsbHRlcm1pbmF0ZWQgUENIQVIgIERldmlj
ZUlkLA0KPiAgICAgIF9faW4gVUxPTkcgICAgICAgICAgICAgICAgICAgVGFyZ2V0SWQsDQo+IC0g
ICAgX19pbiBQS0VWRU5UICAgICAgICAgICAgICAgICBGcm9udGVuZEV2ZW50LA0KPiAgICAgIF9f
aW4gWEVOVkJEX0RFVklDRV9UWVBFICAgICAgRGV2aWNlVHlwZQ0KPiAgICAgICk7DQo+IA0KPiBA
QCAtNzUsMTIgKzc0LDYgQEAgUGRvRDBUb0QzKA0KPiAgICAgIF9faW4gUFhFTlZCRF9QRE8gICAg
ICAgICAgICAgUGRvDQo+ICAgICAgKTsNCj4gDQo+IC1fX2Rydl9yZXF1aXJlc0lSUUwoRElTUEFU
Q0hfTEVWRUwpDQo+IC1leHRlcm4gVk9JRA0KPiAtUGRvQmFja2VuZFBhdGhDaGFuZ2VkKA0KPiAt
ICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvDQo+IC0gICAgKTsNCj4gLQ0KPiAg
Ly8gUG5QIFN0YXRlcw0KPiAgZXh0ZXJuIFZPSUQNCj4gIFBkb1NldE1pc3NpbmcoDQo+IC0tDQo+
IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:55:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:55:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhur-0004l7-HK; Mon, 09 May 2016 09:55:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhuq-0004kp-6P
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:55:52 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 21/C3-03814-6AE50375; Mon, 09 May 2016 09:55:50 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQndpnEG
 4wfdvehZ/Fic6MHoc/nCFJYAxijUzLym/IoE142BvI1vBLceKHSvnMTUwvnHoYuTkkBDwk1h4
 6SkziM0moCOx9Oh8JhBbRKBA4vv7eWBxZgE1iev7u1hBbGEBX4kJ00+zQ9T4Scy4+I8NwjaSW
 PnmJVAvBweLgIrEsY1KIGFeAXeJe+8egJUICdRJ3N72EayEU8BV4u5NO5Awo4CsxJfG1VCbxC
 VuPYG4QEJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sYCMYRbQlFi/Sx+iVVFiSvdDdoitghInZz5
 hgdiqIrHl8QGoMdwSKz//YZnAKDoLybZZCJNmIZk0C8mkBYwsqxg1ilOLylKLdA3N9JKKMtMz
 SnITM3N0DQ2M9XJTi4sT01NzEpOK9ZLzczcxAmOEAQh2MK7a7nmIUZKDSUmU15VRL1yILyk/p
 TIjsTgjvqg0J7X4EKMMB4eSBO/aWINwIcGi1PTUirTMHGC0wqQlOHiURHgDQdK8xQWJucWZ6R
 CpU4yKUuK8a0ASAiCJjNI8uDZYgrjEKCslzMsIdIgQT0FqUW5mCar8K0ZxDkYlYd4akCk8mXk
 lcNNfAS1mAlosx6YPsrgkESEl1cBo3Pt2WqDg+lath0V23Z2BrkbTA1ubcqd9U7/SkRHb9zk8
 YKX+vswbP6+08n2ae/7TI+8wGYuHH1KmT4j5sLdajfvn0z9WL+qsy9QsdHtNEtd+ktOYXzBXi
 nfT62XbDyWIl9jKujkH3Y6efebREaXUEwtbdtvfEAp5Jy9xRdfDZN42oxsbzVqUWIozEg21mI
 uKEwHzOFa6CwMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1462787749!39115432!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21229 invoked from network); 9 May 2016 09:55:49 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:55:49 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077880"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 7/9] Wrap all driver.c globals in a struct
Thread-Index: AQHRnKIeOSZxxB17oUGuLiEX/KGhXp+weFuw
Date: Mon, 9 May 2016 09:55:04 +0000
Message-ID: <d024587d52bf4247a39760b82bd87298@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-8-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-8-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 7/9] Wrap all driver.c globals in a struct
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA3LzldIFdyYXAgYWxsIGRyaXZlci5jIGdsb2JhbHMgaW4g
YSBzdHJ1Y3QNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2RyaXZlci5jIHwgNjQgKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tDQo+ICAxIGZpbGUgY2hh
bmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZiZC9kcml2ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gaW5kZXggYzUz
NTJkMC4uOGYwYWViOCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiArKysg
Yi9zcmMveGVudmJkL2RyaXZlci5jDQo+IEBAIC00Miw4ICs0MiwxOCBAQA0KPiAgI2luY2x1ZGUg
PHhlbmNyc2hfaW50ZXJmYWNlLmg+DQo+ICAjaW5jbHVkZSA8eGVudmJkLW50c3Ryc2FmZS5oPg0K
PiANCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5WQkRfRFJJVkVSIHsNCj4gKyAgICBIQU5ETEUgICAg
ICAgICAgICAgIFN0YXR1c0tleTsNCj4gKyAgICBQRFJJVkVSX0RJU1BBVENIICAgIFN0b3JQb3J0
RGlzcGF0Y2hQbnA7DQo+ICsgICAgUERSSVZFUl9ESVNQQVRDSCAgICBTdG9yUG9ydERpc3BhdGNo
UG93ZXI7DQo+ICsgICAgUERSSVZFUl9VTkxPQUQgICAgICBTdG9yUG9ydERyaXZlclVubG9hZDsN
Cj4gKyAgICBQWEVOVkJEX0ZETyAgICAgICAgIEZkbzsNCj4gKyAgICBLU1BJTl9MT0NLICAgICAg
ICAgIExvY2s7DQo+ICt9IFhFTlZCRF9EUklWRVI7DQo+ICsNCj4gK3N0YXRpYyBYRU5WQkRfRFJJ
VkVSIERyaXZlcjsNCj4gKw0KPiAgWEVOVkJEX1BBUkFNRVRFUlMgICBEcml2ZXJQYXJhbWV0ZXJz
Ow0KPiAtSEFORExFICAgICAgICAgICAgICBEcml2ZXJTdGF0dXNLZXk7DQo+IA0KPiAgI2RlZmlu
ZSBYRU5WQkRfUE9PTF9UQUcgICAgICdkYnZYJw0KPiANCj4gQEAgLTIwMywxOCArMjEzLDEzIEBA
IF9fRHJpdmVyUGFyc2VQYXJhbWV0ZXJLZXkoDQo+ICAgICAgICAgICAgICBEcml2ZXJQYXJhbWV0
ZXJzLlBWQ0RSb20gPyAiUFZfQ0RST00gIiA6ICIiKTsNCj4gIH0NCj4gDQo+IC0NCj4gLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4g
PT09PT09PT09PT09PT09PT09PT0NCj4gLXN0YXRpYyBQRFJJVkVSX0RJU1BBVENIICAgICBTdG9y
UG9ydERpc3BhdGNoUG5wOw0KPiAtc3RhdGljIFBEUklWRVJfRElTUEFUQ0ggICAgIFN0b3JQb3J0
RGlzcGF0Y2hQb3dlcjsNCj4gLXN0YXRpYyBQRFJJVkVSX1VOTE9BRCAgICAgICBTdG9yUG9ydERy
aXZlclVubG9hZDsNCj4gLQ0KPiAgTlRTVEFUVVMNCj4gIERyaXZlckRpc3BhdGNoUG5wKA0KPiAg
ICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0LA0KPiAgICAgIElOICBQSVJQICAg
ICAgICAgICAgSXJwDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIHJldHVybiBTdG9yUG9ydERpc3Bh
dGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gKyAgICByZXR1cm4gRHJpdmVyLlN0b3JQb3J0
RGlzcGF0Y2hQbnAoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gIE5UU1RBVFVTDQo+
IEBAIC0yMjMsMTQgKzIyOCw5IEBAIERyaXZlckRpc3BhdGNoUG93ZXIoDQo+ICAgICAgSU4gIFBJ
UlAgICAgICAgICAgICBJcnANCj4gICAgICApDQo+ICB7DQo+IC0gICAgcmV0dXJuIFN0b3JQb3J0
RGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7DQo+ICsgICAgcmV0dXJuIERyaXZlci5T
dG9yUG9ydERpc3BhdGNoUG93ZXIoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gLQ0K
PiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gRmRvIERldmljZSBFeHRlbnNpb24g
bWFuYWdlbWVudA0KPiAtc3RhdGljIFBYRU5WQkRfRkRPICAgICAgICAgICAgICBfX1hlbnZiZEZk
bzsNCj4gLXN0YXRpYyBLU1BJTl9MT0NLICAgICAgICAgICAgICAgX19YZW52YmRMb2NrOw0KPiAt
DQo+ICBWT0lEDQo+ICBEcml2ZXJMaW5rRmRvKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAg
ICAgICAgICAgRmRvDQo+IEBAIC0yMzgsOSArMjM4LDkgQEAgRHJpdmVyTGlua0ZkbygNCj4gIHsN
Cj4gICAgICBLSVJRTCAgICAgICBJcnFsOw0KPiANCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygm
X19YZW52YmRMb2NrLCAmSXJxbCk7DQo+IC0gICAgX19YZW52YmRGZG8gPSBGZG87DQo+IC0gICAg
S2VSZWxlYXNlU3BpbkxvY2soJl9fWGVudmJkTG9jaywgSXJxbCk7DQo+ICsgICAgS2VBY3F1aXJl
U3BpbkxvY2soJkRyaXZlci5Mb2NrLCAmSXJxbCk7DQo+ICsgICAgRHJpdmVyLkZkbyA9IEZkbzsN
Cj4gKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRHJpdmVyLkxvY2ssIElycWwpOw0KPiAgfQ0KPiAN
Cj4gIFZPSUQNCj4gQEAgLTI1Miw5ICsyNTIsOSBAQCBEcml2ZXJVbmxpbmtGZG8oDQo+IA0KPiAg
ICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRmRvKTsNCj4gDQo+IC0gICAgS2VBY3F1aXJlU3Bp
bkxvY2soJl9fWGVudmJkTG9jaywgJklycWwpOw0KPiAtICAgIF9fWGVudmJkRmRvID0gTlVMTDsN
Cj4gLSAgICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRMb2NrLCBJcnFsKTsNCj4gKyAgICBL
ZUFjcXVpcmVTcGluTG9jaygmRHJpdmVyLkxvY2ssICZJcnFsKTsNCj4gKyAgICBEcml2ZXIuRmRv
ID0gTlVMTDsNCj4gKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRHJpdmVyLkxvY2ssIElycWwpOw0K
PiAgfQ0KPiANCj4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+IEBAIC0yNjYsMTUgKzI2
NiwxNSBAQCBfX0RyaXZlckdldEZkbygNCj4gICAgICBLSVJRTCAgICAgICBJcnFsOw0KPiAgICAg
IEJPT0xFQU4gICAgIElzRmRvID0gRkFMU0U7DQo+IA0KPiAtICAgIEtlQWNxdWlyZVNwaW5Mb2Nr
KCZfX1hlbnZiZExvY2ssICZJcnFsKTsNCj4gLSAgICAqRmRvID0gX19YZW52YmRGZG87DQo+ICsg
ICAgS2VBY3F1aXJlU3BpbkxvY2soJkRyaXZlci5Mb2NrLCAmSXJxbCk7DQo+ICsgICAgKkZkbyA9
IERyaXZlci5GZG87DQo+ICAgICAgaWYgKCpGZG8pIHsNCj4gICAgICAgICAgRmRvUmVmZXJlbmNl
KCpGZG8pOw0KPiAgICAgICAgICBpZiAoRmRvR2V0RGV2aWNlT2JqZWN0KCpGZG8pID09IERldmlj
ZU9iamVjdCkgew0KPiAgICAgICAgICAgICAgSXNGZG8gPSBUUlVFOw0KPiAgICAgICAgICB9DQo+
ICAgICAgfQ0KPiAtICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0K
PiArICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZEcml2ZXIuTG9jaywgSXJxbCk7DQo+IA0KPiAgICAg
IHJldHVybiBJc0ZkbzsNCj4gIH0NCj4gQEAgLTMwNiw3ICszMDYsNyBAQCBEcml2ZXJOb3RpZnlJ
bnN0YWxsZXIoDQo+IA0KPiAgICAgIFJ0bEluaXRVbmljb2RlU3RyaW5nKCZVbmljb2RlLCBMIk5l
ZWRSZWJvb3QiKTsNCj4gDQo+IC0gICAgc3RhdHVzID0gWndTZXRWYWx1ZUtleShEcml2ZXJTdGF0
dXNLZXksDQo+ICsgICAgc3RhdHVzID0gWndTZXRWYWx1ZUtleShEcml2ZXIuU3RhdHVzS2V5LA0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlVuaWNvZGUsDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQYXJ0aWFsLT5UaXRsZUluZGV4LA0KPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUGFydGlhbC0+VHlwZSwNCj4gQEAgLTU3MSw5ICs1NzEsMTEgQEAgRHJpdmVyVW5s
b2FkKA0KPiAgICAgIFZlcmJvc2UoIiVzICglcylcbiIsDQo+ICAgICAgICAgICBNQUpPUl9WRVJT
SU9OX1NUUiAiLiIgTUlOT1JfVkVSU0lPTl9TVFIgIi4iDQo+IE1JQ1JPX1ZFUlNJT05fU1RSICIu
IiBCVUlMRF9OVU1CRVJfU1RSLA0KPiAgICAgICAgICAgREFZX1NUUiAiLyIgTU9OVEhfU1RSICIv
IiBZRUFSX1NUUik7DQo+IC0gICAgU3RvclBvcnREcml2ZXJVbmxvYWQoX0RyaXZlck9iamVjdCk7
DQo+ICsNCj4gKyAgICBEcml2ZXIuU3RvclBvcnREcml2ZXJVbmxvYWQoX0RyaXZlck9iamVjdCk7
DQo+ICAgICAgQnVmZmVyVGVybWluYXRlKCk7DQo+IC0gICAgWndDbG9zZShEcml2ZXJTdGF0dXNL
ZXkpOw0KPiArICAgIFp3Q2xvc2UoRHJpdmVyLlN0YXR1c0tleSk7DQo+ICsNCj4gICAgICBUcmFj
ZSgiPD09PSAoSXJxbD0lZClcbiIsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+ICB9DQo+IA0KPiBA
QCAtNjIzLDcgKzYyNSw3IEBAIERyaXZlckVudHJ5KA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlcnZpY2VLZXksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCk7DQo+IA0KPiAtICAgIFN0YXR1cyA9IFp3Q3JlYXRlS2V5KCZEcml2ZXJTdGF0dXNLZXks
DQo+ICsgICAgU3RhdHVzID0gWndDcmVhdGVLZXkoJkRyaXZlci5TdGF0dXNLZXksDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsDQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkF0dHJpYnV0ZXMsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4g
QEAgLTYzNyw4ICs2MzksOCBAQCBEcml2ZXJFbnRyeSgNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Mo
U3RhdHVzKSkNCj4gICAgICAgICAgZ290byBkb25lOw0KPiANCj4gLSAgICBLZUluaXRpYWxpemVT
cGluTG9jaygmX19YZW52YmRMb2NrKTsNCj4gLSAgICBfX1hlbnZiZEZkbyA9IE5VTEw7DQo+ICsg
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJkRyaXZlci5Mb2NrKTsNCj4gKyAgICBEcml2ZXIuRmRv
ID0gTlVMTDsNCj4gICAgICBCdWZmZXJJbml0aWFsaXplKCk7DQo+ICAgICAgX19Ecml2ZXJQYXJz
ZVBhcmFtZXRlcktleSgpOw0KPiANCj4gQEAgLTY2OCw5ICs2NzAsOSBAQCBEcml2ZXJFbnRyeSgN
Cj4gDQo+ICAgICAgU3RhdHVzID0gU3RvclBvcnRJbml0aWFsaXplKF9Ecml2ZXJPYmplY3QsIFJl
Z2lzdHJ5UGF0aCwgJkluaXREYXRhLCBOVUxMKTsNCj4gICAgICBpZiAoTlRfU1VDQ0VTUyhTdGF0
dXMpKSB7DQo+IC0gICAgICAgIFN0b3JQb3J0RGlzcGF0Y2hQbnAgICAgID0gX0RyaXZlck9iamVj
dC0+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE5QXTsNCj4gLSAgICAgICAgU3RvclBvcnREaXNwYXRj
aFBvd2VyICAgPSBfRHJpdmVyT2JqZWN0LQ0KPiA+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE9XRVJd
Ow0KPiAtICAgICAgICBTdG9yUG9ydERyaXZlclVubG9hZCAgICA9IF9Ecml2ZXJPYmplY3QtPkRy
aXZlclVubG9hZDsNCj4gKyAgICAgICAgRHJpdmVyLlN0b3JQb3J0RGlzcGF0Y2hQbnAgICAgID0g
X0RyaXZlck9iamVjdC0NCj4gPk1ham9yRnVuY3Rpb25bSVJQX01KX1BOUF07DQo+ICsgICAgICAg
IERyaXZlci5TdG9yUG9ydERpc3BhdGNoUG93ZXIgICA9IF9Ecml2ZXJPYmplY3QtDQo+ID5NYWpv
ckZ1bmN0aW9uW0lSUF9NSl9QT1dFUl07DQo+ICsgICAgICAgIERyaXZlci5TdG9yUG9ydERyaXZl
clVubG9hZCAgICA9IF9Ecml2ZXJPYmplY3QtPkRyaXZlclVubG9hZDsNCj4gDQo+ICAgICAgICAg
IF9Ecml2ZXJPYmplY3QtPk1ham9yRnVuY3Rpb25bSVJQX01KX1BOUF0gICAgPSBEaXNwYXRjaFBu
cDsNCj4gICAgICAgICAgX0RyaXZlck9iamVjdC0+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE9XRVJd
ICA9IERpc3BhdGNoUG93ZXI7DQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:55:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:55:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhur-0004l7-HK; Mon, 09 May 2016 09:55:53 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhuq-0004kp-6P
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:55:52 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 21/C3-03814-6AE50375; Mon, 09 May 2016 09:55:50 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQndpnEG
 4wfdvehZ/Fic6MHoc/nCFJYAxijUzLym/IoE142BvI1vBLceKHSvnMTUwvnHoYuTkkBDwk1h4
 6SkziM0moCOx9Oh8JhBbRKBA4vv7eWBxZgE1iev7u1hBbGEBX4kJ00+zQ9T4Scy4+I8NwjaSW
 PnmJVAvBweLgIrEsY1KIGFeAXeJe+8egJUICdRJ3N72EayEU8BV4u5NO5Awo4CsxJfG1VCbxC
 VuPYG4QEJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sYCMYRbQlFi/Sx+iVVFiSvdDdoitghInZz5
 hgdiqIrHl8QGoMdwSKz//YZnAKDoLybZZCJNmIZk0C8mkBYwsqxg1ilOLylKLdA3N9JKKMtMz
 SnITM3N0DQ2M9XJTi4sT01NzEpOK9ZLzczcxAmOEAQh2MK7a7nmIUZKDSUmU15VRL1yILyk/p
 TIjsTgjvqg0J7X4EKMMB4eSBO/aWINwIcGi1PTUirTMHGC0wqQlOHiURHgDQdK8xQWJucWZ6R
 CpU4yKUuK8a0ASAiCJjNI8uDZYgrjEKCslzMsIdIgQT0FqUW5mCar8K0ZxDkYlYd4akCk8mXk
 lcNNfAS1mAlosx6YPsrgkESEl1cBo3Pt2WqDg+lath0V23Z2BrkbTA1ubcqd9U7/SkRHb9zk8
 YKX+vswbP6+08n2ae/7TI+8wGYuHH1KmT4j5sLdajfvn0z9WL+qsy9QsdHtNEtd+ktOYXzBXi
 nfT62XbDyWIl9jKujkH3Y6efebREaXUEwtbdtvfEAp5Jy9xRdfDZN42oxsbzVqUWIozEg21mI
 uKEwHzOFa6CwMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1462787749!39115432!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21229 invoked from network); 9 May 2016 09:55:49 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:55:49 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077880"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 7/9] Wrap all driver.c globals in a struct
Thread-Index: AQHRnKIeOSZxxB17oUGuLiEX/KGhXp+weFuw
Date: Mon, 9 May 2016 09:55:04 +0000
Message-ID: <d024587d52bf4247a39760b82bd87298@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-8-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-8-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 7/9] Wrap all driver.c globals in a struct
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA3LzldIFdyYXAgYWxsIGRyaXZlci5jIGdsb2JhbHMgaW4g
YSBzdHJ1Y3QNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2RyaXZlci5jIHwgNjQgKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tDQo+ICAxIGZpbGUgY2hh
bmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZiZC9kcml2ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gaW5kZXggYzUz
NTJkMC4uOGYwYWViOCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiArKysg
Yi9zcmMveGVudmJkL2RyaXZlci5jDQo+IEBAIC00Miw4ICs0MiwxOCBAQA0KPiAgI2luY2x1ZGUg
PHhlbmNyc2hfaW50ZXJmYWNlLmg+DQo+ICAjaW5jbHVkZSA8eGVudmJkLW50c3Ryc2FmZS5oPg0K
PiANCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5WQkRfRFJJVkVSIHsNCj4gKyAgICBIQU5ETEUgICAg
ICAgICAgICAgIFN0YXR1c0tleTsNCj4gKyAgICBQRFJJVkVSX0RJU1BBVENIICAgIFN0b3JQb3J0
RGlzcGF0Y2hQbnA7DQo+ICsgICAgUERSSVZFUl9ESVNQQVRDSCAgICBTdG9yUG9ydERpc3BhdGNo
UG93ZXI7DQo+ICsgICAgUERSSVZFUl9VTkxPQUQgICAgICBTdG9yUG9ydERyaXZlclVubG9hZDsN
Cj4gKyAgICBQWEVOVkJEX0ZETyAgICAgICAgIEZkbzsNCj4gKyAgICBLU1BJTl9MT0NLICAgICAg
ICAgIExvY2s7DQo+ICt9IFhFTlZCRF9EUklWRVI7DQo+ICsNCj4gK3N0YXRpYyBYRU5WQkRfRFJJ
VkVSIERyaXZlcjsNCj4gKw0KPiAgWEVOVkJEX1BBUkFNRVRFUlMgICBEcml2ZXJQYXJhbWV0ZXJz
Ow0KPiAtSEFORExFICAgICAgICAgICAgICBEcml2ZXJTdGF0dXNLZXk7DQo+IA0KPiAgI2RlZmlu
ZSBYRU5WQkRfUE9PTF9UQUcgICAgICdkYnZYJw0KPiANCj4gQEAgLTIwMywxOCArMjEzLDEzIEBA
IF9fRHJpdmVyUGFyc2VQYXJhbWV0ZXJLZXkoDQo+ICAgICAgICAgICAgICBEcml2ZXJQYXJhbWV0
ZXJzLlBWQ0RSb20gPyAiUFZfQ0RST00gIiA6ICIiKTsNCj4gIH0NCj4gDQo+IC0NCj4gLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4g
PT09PT09PT09PT09PT09PT09PT0NCj4gLXN0YXRpYyBQRFJJVkVSX0RJU1BBVENIICAgICBTdG9y
UG9ydERpc3BhdGNoUG5wOw0KPiAtc3RhdGljIFBEUklWRVJfRElTUEFUQ0ggICAgIFN0b3JQb3J0
RGlzcGF0Y2hQb3dlcjsNCj4gLXN0YXRpYyBQRFJJVkVSX1VOTE9BRCAgICAgICBTdG9yUG9ydERy
aXZlclVubG9hZDsNCj4gLQ0KPiAgTlRTVEFUVVMNCj4gIERyaXZlckRpc3BhdGNoUG5wKA0KPiAg
ICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0LA0KPiAgICAgIElOICBQSVJQICAg
ICAgICAgICAgSXJwDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIHJldHVybiBTdG9yUG9ydERpc3Bh
dGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gKyAgICByZXR1cm4gRHJpdmVyLlN0b3JQb3J0
RGlzcGF0Y2hQbnAoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gIE5UU1RBVFVTDQo+
IEBAIC0yMjMsMTQgKzIyOCw5IEBAIERyaXZlckRpc3BhdGNoUG93ZXIoDQo+ICAgICAgSU4gIFBJ
UlAgICAgICAgICAgICBJcnANCj4gICAgICApDQo+ICB7DQo+IC0gICAgcmV0dXJuIFN0b3JQb3J0
RGlzcGF0Y2hQb3dlcihEZXZpY2VPYmplY3QsIElycCk7DQo+ICsgICAgcmV0dXJuIERyaXZlci5T
dG9yUG9ydERpc3BhdGNoUG93ZXIoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gLQ0K
PiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gRmRvIERldmljZSBFeHRlbnNpb24g
bWFuYWdlbWVudA0KPiAtc3RhdGljIFBYRU5WQkRfRkRPICAgICAgICAgICAgICBfX1hlbnZiZEZk
bzsNCj4gLXN0YXRpYyBLU1BJTl9MT0NLICAgICAgICAgICAgICAgX19YZW52YmRMb2NrOw0KPiAt
DQo+ICBWT0lEDQo+ICBEcml2ZXJMaW5rRmRvKA0KPiAgICAgIF9faW4gUFhFTlZCRF9GRE8gICAg
ICAgICAgICAgRmRvDQo+IEBAIC0yMzgsOSArMjM4LDkgQEAgRHJpdmVyTGlua0ZkbygNCj4gIHsN
Cj4gICAgICBLSVJRTCAgICAgICBJcnFsOw0KPiANCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygm
X19YZW52YmRMb2NrLCAmSXJxbCk7DQo+IC0gICAgX19YZW52YmRGZG8gPSBGZG87DQo+IC0gICAg
S2VSZWxlYXNlU3BpbkxvY2soJl9fWGVudmJkTG9jaywgSXJxbCk7DQo+ICsgICAgS2VBY3F1aXJl
U3BpbkxvY2soJkRyaXZlci5Mb2NrLCAmSXJxbCk7DQo+ICsgICAgRHJpdmVyLkZkbyA9IEZkbzsN
Cj4gKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRHJpdmVyLkxvY2ssIElycWwpOw0KPiAgfQ0KPiAN
Cj4gIFZPSUQNCj4gQEAgLTI1Miw5ICsyNTIsOSBAQCBEcml2ZXJVbmxpbmtGZG8oDQo+IA0KPiAg
ICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRmRvKTsNCj4gDQo+IC0gICAgS2VBY3F1aXJlU3Bp
bkxvY2soJl9fWGVudmJkTG9jaywgJklycWwpOw0KPiAtICAgIF9fWGVudmJkRmRvID0gTlVMTDsN
Cj4gLSAgICBLZVJlbGVhc2VTcGluTG9jaygmX19YZW52YmRMb2NrLCBJcnFsKTsNCj4gKyAgICBL
ZUFjcXVpcmVTcGluTG9jaygmRHJpdmVyLkxvY2ssICZJcnFsKTsNCj4gKyAgICBEcml2ZXIuRmRv
ID0gTlVMTDsNCj4gKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRHJpdmVyLkxvY2ssIElycWwpOw0K
PiAgfQ0KPiANCj4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+IEBAIC0yNjYsMTUgKzI2
NiwxNSBAQCBfX0RyaXZlckdldEZkbygNCj4gICAgICBLSVJRTCAgICAgICBJcnFsOw0KPiAgICAg
IEJPT0xFQU4gICAgIElzRmRvID0gRkFMU0U7DQo+IA0KPiAtICAgIEtlQWNxdWlyZVNwaW5Mb2Nr
KCZfX1hlbnZiZExvY2ssICZJcnFsKTsNCj4gLSAgICAqRmRvID0gX19YZW52YmRGZG87DQo+ICsg
ICAgS2VBY3F1aXJlU3BpbkxvY2soJkRyaXZlci5Mb2NrLCAmSXJxbCk7DQo+ICsgICAgKkZkbyA9
IERyaXZlci5GZG87DQo+ICAgICAgaWYgKCpGZG8pIHsNCj4gICAgICAgICAgRmRvUmVmZXJlbmNl
KCpGZG8pOw0KPiAgICAgICAgICBpZiAoRmRvR2V0RGV2aWNlT2JqZWN0KCpGZG8pID09IERldmlj
ZU9iamVjdCkgew0KPiAgICAgICAgICAgICAgSXNGZG8gPSBUUlVFOw0KPiAgICAgICAgICB9DQo+
ICAgICAgfQ0KPiAtICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZfX1hlbnZiZExvY2ssIElycWwpOw0K
PiArICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZEcml2ZXIuTG9jaywgSXJxbCk7DQo+IA0KPiAgICAg
IHJldHVybiBJc0ZkbzsNCj4gIH0NCj4gQEAgLTMwNiw3ICszMDYsNyBAQCBEcml2ZXJOb3RpZnlJ
bnN0YWxsZXIoDQo+IA0KPiAgICAgIFJ0bEluaXRVbmljb2RlU3RyaW5nKCZVbmljb2RlLCBMIk5l
ZWRSZWJvb3QiKTsNCj4gDQo+IC0gICAgc3RhdHVzID0gWndTZXRWYWx1ZUtleShEcml2ZXJTdGF0
dXNLZXksDQo+ICsgICAgc3RhdHVzID0gWndTZXRWYWx1ZUtleShEcml2ZXIuU3RhdHVzS2V5LA0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlVuaWNvZGUsDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQYXJ0aWFsLT5UaXRsZUluZGV4LA0KPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUGFydGlhbC0+VHlwZSwNCj4gQEAgLTU3MSw5ICs1NzEsMTEgQEAgRHJpdmVyVW5s
b2FkKA0KPiAgICAgIFZlcmJvc2UoIiVzICglcylcbiIsDQo+ICAgICAgICAgICBNQUpPUl9WRVJT
SU9OX1NUUiAiLiIgTUlOT1JfVkVSU0lPTl9TVFIgIi4iDQo+IE1JQ1JPX1ZFUlNJT05fU1RSICIu
IiBCVUlMRF9OVU1CRVJfU1RSLA0KPiAgICAgICAgICAgREFZX1NUUiAiLyIgTU9OVEhfU1RSICIv
IiBZRUFSX1NUUik7DQo+IC0gICAgU3RvclBvcnREcml2ZXJVbmxvYWQoX0RyaXZlck9iamVjdCk7
DQo+ICsNCj4gKyAgICBEcml2ZXIuU3RvclBvcnREcml2ZXJVbmxvYWQoX0RyaXZlck9iamVjdCk7
DQo+ICAgICAgQnVmZmVyVGVybWluYXRlKCk7DQo+IC0gICAgWndDbG9zZShEcml2ZXJTdGF0dXNL
ZXkpOw0KPiArICAgIFp3Q2xvc2UoRHJpdmVyLlN0YXR1c0tleSk7DQo+ICsNCj4gICAgICBUcmFj
ZSgiPD09PSAoSXJxbD0lZClcbiIsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+ICB9DQo+IA0KPiBA
QCAtNjIzLDcgKzYyNSw3IEBAIERyaXZlckVudHJ5KA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlcnZpY2VLZXksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCk7DQo+IA0KPiAtICAgIFN0YXR1cyA9IFp3Q3JlYXRlS2V5KCZEcml2ZXJTdGF0dXNLZXks
DQo+ICsgICAgU3RhdHVzID0gWndDcmVhdGVLZXkoJkRyaXZlci5TdGF0dXNLZXksDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsDQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkF0dHJpYnV0ZXMsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4g
QEAgLTYzNyw4ICs2MzksOCBAQCBEcml2ZXJFbnRyeSgNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Mo
U3RhdHVzKSkNCj4gICAgICAgICAgZ290byBkb25lOw0KPiANCj4gLSAgICBLZUluaXRpYWxpemVT
cGluTG9jaygmX19YZW52YmRMb2NrKTsNCj4gLSAgICBfX1hlbnZiZEZkbyA9IE5VTEw7DQo+ICsg
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJkRyaXZlci5Mb2NrKTsNCj4gKyAgICBEcml2ZXIuRmRv
ID0gTlVMTDsNCj4gICAgICBCdWZmZXJJbml0aWFsaXplKCk7DQo+ICAgICAgX19Ecml2ZXJQYXJz
ZVBhcmFtZXRlcktleSgpOw0KPiANCj4gQEAgLTY2OCw5ICs2NzAsOSBAQCBEcml2ZXJFbnRyeSgN
Cj4gDQo+ICAgICAgU3RhdHVzID0gU3RvclBvcnRJbml0aWFsaXplKF9Ecml2ZXJPYmplY3QsIFJl
Z2lzdHJ5UGF0aCwgJkluaXREYXRhLCBOVUxMKTsNCj4gICAgICBpZiAoTlRfU1VDQ0VTUyhTdGF0
dXMpKSB7DQo+IC0gICAgICAgIFN0b3JQb3J0RGlzcGF0Y2hQbnAgICAgID0gX0RyaXZlck9iamVj
dC0+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE5QXTsNCj4gLSAgICAgICAgU3RvclBvcnREaXNwYXRj
aFBvd2VyICAgPSBfRHJpdmVyT2JqZWN0LQ0KPiA+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE9XRVJd
Ow0KPiAtICAgICAgICBTdG9yUG9ydERyaXZlclVubG9hZCAgICA9IF9Ecml2ZXJPYmplY3QtPkRy
aXZlclVubG9hZDsNCj4gKyAgICAgICAgRHJpdmVyLlN0b3JQb3J0RGlzcGF0Y2hQbnAgICAgID0g
X0RyaXZlck9iamVjdC0NCj4gPk1ham9yRnVuY3Rpb25bSVJQX01KX1BOUF07DQo+ICsgICAgICAg
IERyaXZlci5TdG9yUG9ydERpc3BhdGNoUG93ZXIgICA9IF9Ecml2ZXJPYmplY3QtDQo+ID5NYWpv
ckZ1bmN0aW9uW0lSUF9NSl9QT1dFUl07DQo+ICsgICAgICAgIERyaXZlci5TdG9yUG9ydERyaXZl
clVubG9hZCAgICA9IF9Ecml2ZXJPYmplY3QtPkRyaXZlclVubG9hZDsNCj4gDQo+ICAgICAgICAg
IF9Ecml2ZXJPYmplY3QtPk1ham9yRnVuY3Rpb25bSVJQX01KX1BOUF0gICAgPSBEaXNwYXRjaFBu
cDsNCj4gICAgICAgICAgX0RyaXZlck9iamVjdC0+TWFqb3JGdW5jdGlvbltJUlBfTUpfUE9XRVJd
ICA9IERpc3BhdGNoUG93ZXI7DQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+
IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:57:19 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhwE-0004rc-Tf; Mon, 09 May 2016 09:57:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhwE-0004rT-2L
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:57:18 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 A3/02-26485-DFE50375; Mon, 09 May 2016 09:57:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRWlGSWpSXmKPExsWyU9JRQvdPnEG
 4wdbJyhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9XNBvaCs7UV32acYWtg/FPdxcjJISHgJ3H9
 cw8biM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sXYxcHMICcxklXpyazQLiiAjMY5S4u
 aydBaLDSGLH0XlgNouAikTf12awSbwC7hKL1+9mB7GFBOokrt5fBDaVU8BV4tSRz2A1jAKyEl
 8aV0NtE5e49QTiCgkBAYkle84zQ9iiEi8f/2OFsA0kti7dB7SLA6heU2L9Ln2IVkWJKd0P2SH
 WCkqcnPmEBWKtisSWxwegxnBLrPz8h2UCo+gsJNtmIUyahWTSLCSTFjCyrGLUKE4tKkst0jU0
 0UsqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIwVBiDYwXj2tOchRkkOJiVRXldGv
 XAhvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErxrYw3ChQSLUtNTK9Iyc4BRC5OW4OBREuHtB0nzFh
 ck5hZnpkOkTjEqSonzrgFJCIAkMkrz4NpgieISo6yUMC8j0CFCPAWpRbmZJajyrxjFORiVhHm
 3gEzhycwrgZv+CmgxE9BiOTZ9kMUliQgpqQZGp3ksB4uCvGaIz5pyJDjeYE+Tt1DnxxV/L3I0
 PVtVnumm7GNyvf5mnIpumvuf0iUaS1xPhsnzWs681nNmsstnhhKxukzN+oQlkpOOnZ3ysG3at
 qU3u3cW37vx7eZOLbHafV6HO+s7g3h8dz76sVeqhfuvwdm64H8njFfYCP8287jRFZ220l9Fia
 U4I9FQi7moOBEAQ+8/aw8DAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1462787836!22552787!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23868 invoked from network); 9 May 2016 09:57:16 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:57:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077958"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 8/9] Change enumeration function to take
 PANSI_STRING array to simplify parsing of the data returned	by
 STORE(Directory)
Thread-Index: AQHRnKJSgrvknroXckyfAdZF0kCmuZ+wePjw
Date: Mon, 9 May 2016 09:57:15 +0000
Message-ID: <6b29f2b1b9d0490f850f0362af7e30bc@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-9-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-9-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 8/9] Change enumeration function to
	take	PANSI_STRING array to simplify parsing of the data
	returned	by STORE(Directory)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA4LzldIENoYW5nZSBlbnVtZXJhdGlvbiBmdW5jdGlvbiB0
byB0YWtlDQo+IFBBTlNJX1NUUklORyBhcnJheSB0byBzaW1wbGlmeSBwYXJzaW5nIG9mIHRoZSBk
YXRhIHJldHVybmVkIGJ5DQo+IFNUT1JFKERpcmVjdG9yeSkNCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Zk
by5jIHwgMjg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+
IC0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDEwNyBk
ZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hl
bnZiZC9mZG8uYw0KPiBpbmRleCAyOWVjOTY2Li45ZTA0YmIxIDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTQyOCwxNiArNDI4
LDYgQEAgRmRvRGVidWdDYWxsYmFjaygNCj4gDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09
PT09PQ0KPiAgLy8gRW51bWVyYXRpb24NCj4gLV9fY2hlY2tSZXR1cm4NCj4gLXN0YXRpYyBGT1JD
RUlOTElORSBQQ0hBUg0KPiAtX19OZXh0U3ooDQo+IC0gICAgX19pbiBQQ0hBUiAgICAgICAgICAg
ICAgICAgICAgICAgU3RyDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIGZvciAoOyAqU3RyOyArK1N0
cikgOw0KPiAtICAgICsrU3RyOw0KPiAtICAgIHJldHVybiBTdHI7DQo+IC19DQo+ICBzdGF0aWMg
Rk9SQ0VJTkxJTkUgVUxPTkcNCj4gIF9fUGFyc2VWYmQoDQo+ICAgICAgX19pbiBQQ0hBUiAgICAg
ICAgICAgICAgICAgICAgICAgRGV2aWNlSWRTdHINCj4gQEAgLTU3MywxNCArNTYzLDE1IEBAIF9f
RmRvSXNQZG9VbnBsdWdnZWQoDQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIF9f
RmRvRW51bWVyYXRlKA0KPiAtICAgIF9faW4gICAgUFhFTlZCRF9GRE8gRmRvLA0KPiAtICAgIF9f
aW4gICAgUENIQVIgICAgICAgRGV2aWNlcywNCj4gLSAgICBfX291dCAgIFBCT09MRUFOICAgIE5l
ZWRJbnZhbGlkYXRlLA0KPiAtICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgTmVlZFJlYm9vdA0KPiAr
ICAgIF9faW4gICAgUFhFTlZCRF9GRE8gICAgIEZkbywNCj4gKyAgICBfX2luICAgIFBBTlNJX1NU
UklORyAgICBEZXZpY2VzLA0KPiArICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgICAgIE5lZWRJbnZh
bGlkYXRlLA0KPiArICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgICAgIE5lZWRSZWJvb3QNCj4gICAg
ICApDQo+ICB7DQo+ICAgICAgVUxPTkcgICAgICAgICAgICAgICBUYXJnZXRJZDsNCj4gLSAgICBQ
Q0hBUiAgICAgICAgICAgICAgIERldmljZTsNCj4gKyAgICBQQU5TSV9TVFJJTkcgICAgICAgIERl
dmljZTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiAgICAgIFBYRU5WQkRf
UERPICAgICAgICAgUGRvOw0KPiANCj4gICAgICAqTmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4g
QEAgLTU5Myw4ICs1ODQsMTAgQEAgX19GZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgIGlmIChQZG8g
PT0gTlVMTCkNCj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gLSAgICAgICAgZm9yIChE
ZXZpY2UgPSBEZXZpY2VzOyAqRGV2aWNlOyBEZXZpY2UgPSBfX05leHRTeihEZXZpY2UpKSB7DQo+
IC0gICAgICAgICAgICBVTE9ORyBEZXZpY2VUYXJnZXRJZCA9IF9fUGFyc2VWYmQoRGV2aWNlKTsN
Cj4gKyAgICAgICAgZm9yIChJbmRleCA9IDA7IERldmljZXNbSW5kZXhdLkJ1ZmZlciAhPSBOVUxM
OyArK0luZGV4KSB7DQo+ICsgICAgICAgICAgICBVTE9ORyBEZXZpY2VUYXJnZXRJZDsNCj4gKyAg
ICAgICAgICAgIERldmljZSA9ICZEZXZpY2VzW0luZGV4XTsNCj4gKyAgICAgICAgICAgIERldmlj
ZVRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UtPkJ1ZmZlcik7DQo+ICAgICAgICAgICAgICBp
ZiAoVGFyZ2V0SWQgPT0gRGV2aWNlVGFyZ2V0SWQpIHsNCj4gICAgICAgICAgICAgICAgICBNaXNz
aW5nID0gRkFMU0U7DQo+ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+IEBAIC02MTgsMTAgKzYx
MSwxMiBAQCBfX0Zkb0VudW1lcmF0ZSgNCj4gICAgICB9DQo+IA0KPiAgICAgIC8vIGFkZCBuZXcg
dGFyZ2V0cw0KPiAtICAgIGZvciAoRGV2aWNlID0gRGV2aWNlczsgKkRldmljZTsgRGV2aWNlID0g
X19OZXh0U3ooRGV2aWNlKSkgew0KPiArICAgIGZvciAoSW5kZXggPSAwOyBEZXZpY2VzW0luZGV4
XS5CdWZmZXIgIT0gTlVMTDsgKytJbmRleCkgew0KPiAgICAgICAgICBYRU5WQkRfREVWSUNFX1RZ
UEUgIERldmljZVR5cGU7DQo+IA0KPiAtICAgICAgICBUYXJnZXRJZCA9IF9fUGFyc2VWYmQoRGV2
aWNlKTsNCj4gKyAgICAgICAgRGV2aWNlID0gJkRldmljZXNbSW5kZXhdOw0KPiArDQo+ICsgICAg
ICAgIFRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UtPkJ1ZmZlcik7DQo+ICAgICAgICAgIGlm
IChUYXJnZXRJZCA9PSAweEZGRkZGRkZGKSB7DQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4g
ICAgICAgICAgfQ0KPiBAQCAtNjMyLDI2ICs2MjcsMTgxIEBAIF9fRmRvRW51bWVyYXRlKA0KPiAg
ICAgICAgICAgICAgY29udGludWU7DQo+ICAgICAgICAgIH0NCj4gDQo+IC0gICAgICAgIGlmIChf
X0Zkb0hpZGRlblRhcmdldChGZG8sIERldmljZSwgJkRldmljZVR5cGUpKSB7DQo+ICsgICAgICAg
IGlmIChfX0Zkb0hpZGRlblRhcmdldChGZG8sIERldmljZS0+QnVmZmVyLCAmRGV2aWNlVHlwZSkp
IHsNCj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICB9DQo+IA0KPiAgICAgICAg
ICBpZiAoIV9fRmRvSXNQZG9VbnBsdWdnZWQoRmRvLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGZG9FbnVtKEZkbyksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERldmljZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlLT5C
dWZmZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldElkKSkgew0K
PiAgICAgICAgICAgICAgKk5lZWRSZWJvb3QgPSBUUlVFOw0KPiAgICAgICAgICAgICAgY29udGlu
dWU7DQo+ICAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgIGlmIChQZG9DcmVhdGUoRmRvLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgIERldmljZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBE
ZXZpY2UtPkJ1ZmZlciwNCj4gICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gICAg
ICAgICAgICAgICAgICAgICAgICBEZXZpY2VUeXBlKSkgew0KPiAgICAgICAgICAgICAgKk5lZWRJ
bnZhbGlkYXRlID0gVFJVRTsNCj4gICAgICAgICAgfQ0KPiAgICAgIH0NCj4gIH0NCj4gKw0KPiAr
c3RhdGljIEZPUkNFSU5MSU5FIFBBTlNJX1NUUklORw0KPiArX19GZG9NdWx0aVN6VG9BbnNpKA0K
PiArICAgIElOICBQQ0hBUiAgICAgICBCdWZmZXINCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUEFO
U0lfU1RSSU5HICAgIEFuc2k7DQo+ICsgICAgTE9ORyAgICAgICAgICAgIEluZGV4Ow0KPiArICAg
IExPTkcgICAgICAgICAgICBDb3VudDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0K
PiArDQo+ICsgICAgSW5kZXggPSAwOw0KPiArICAgIENvdW50ID0gMDsNCj4gKyAgICBmb3IgKDs7
KSB7DQo+ICsgICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09ICdcMCcpIHsNCj4gKyAgICAgICAg
ICAgIENvdW50Kys7DQo+ICsgICAgICAgICAgICBJbmRleCsrOw0KPiArDQo+ICsgICAgICAgICAg
ICAvLyBDaGVjayBmb3IgZG91YmxlIE5VTA0KPiArICAgICAgICAgICAgaWYgKEJ1ZmZlcltJbmRl
eF0gPT0gJ1wwJykNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfSBlbHNl
IHsNCj4gKyAgICAgICAgICAgIEluZGV4Kys7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsN
Cj4gKyAgICBBbnNpID0gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9f
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVfXywN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChBTlNJ
X1NUUklORykgKiAoQ291bnQgKyAxKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRkRPX1NJR05BVFVSRSk7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBTVEFUVVNf
Tk9fTUVNT1JZOw0KPiArICAgIGlmIChBbnNpID09IE5VTEwpDQo+ICsgICAgICAgIGdvdG8gZmFp
bDE7DQo+ICsNCj4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBDb3VudDsgSW5kZXgrKykg
ew0KPiArICAgICAgICBVTE9ORyAgIExlbmd0aDsNCj4gKw0KPiArICAgICAgICBMZW5ndGggPSAo
VUxPTkcpc3RybGVuKEJ1ZmZlcik7DQo+ICsgICAgICAgIEFuc2lbSW5kZXhdLk1heGltdW1MZW5n
dGggPSAoVVNIT1JUKShMZW5ndGggKyAxKTsNCj4gKyAgICAgICAgQW5zaVtJbmRleF0uQnVmZmVy
ID0NCj4gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
X0xJTkVfXywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQW5zaVtJbmRleF0uTWF4aW11bUxlbmd0aCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRPX1NJR05B
VFVSRSk7DQo+ICsNCj4gKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4gKyAg
ICAgICAgaWYgKEFuc2lbSW5kZXhdLkJ1ZmZlciA9PSBOVUxMKQ0KPiArICAgICAgICAgICAgZ290
byBmYWlsMjsNCj4gKw0KPiArICAgICAgICBSdGxDb3B5TWVtb3J5KEFuc2lbSW5kZXhdLkJ1ZmZl
ciwgQnVmZmVyLCBMZW5ndGgpOw0KPiArICAgICAgICBBbnNpW0luZGV4XS5MZW5ndGggPSAoVVNI
T1JUKUxlbmd0aDsNCj4gKw0KPiArICAgICAgICBCdWZmZXIgKz0gTGVuZ3RoICsgMTsNCj4gKyAg
ICB9DQo+ICsNCj4gKyAgICByZXR1cm4gQW5zaTsNCj4gKw0KPiArZmFpbDI6DQo+ICsgICAgRXJy
b3IoImZhaWwyXG4iKTsNCj4gKw0KPiArICAgIHdoaWxlICgtLUluZGV4ID49IDApDQo+ICsgICAg
ICAgICAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpW0luZGV4XS5CdWZmZXIsIEZET19TSUdOQVRV
UkUpOw0KPiArDQo+ICsgICAgX19GcmVlUG9vbFdpdGhUYWcoQW5zaSwgRkRPX1NJR05BVFVSRSk7
DQo+ICsNCj4gK2ZhaWwxOg0KPiArICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
DQo+ICsNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gK30NCj4gKw0KPiArc3RhdGljIEZPUkNFSU5M
SU5FIFBBTlNJX1NUUklORw0KPiArX19GZG9NdWx0aVN6VG9VcGNhc2VBbnNpKA0KPiArICAgIElO
ICBQQ0hBUiAgICAgICBCdWZmZXINCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUEFOU0lfU1RSSU5H
ICAgIEFuc2k7DQo+ICsgICAgTE9ORyAgICAgICAgICAgIEluZGV4Ow0KPiArICAgIExPTkcgICAg
ICAgICAgICBDb3VudDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0KPiArDQo+ICsg
ICAgSW5kZXggPSAwOw0KPiArICAgIENvdW50ID0gMDsNCj4gKyAgICBmb3IgKDs7KSB7DQo+ICsg
ICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09ICdcMCcpIHsNCj4gKyAgICAgICAgICAgIENvdW50
Kys7DQo+ICsgICAgICAgICAgICBJbmRleCsrOw0KPiArDQo+ICsgICAgICAgICAgICAvLyBDaGVj
ayBmb3IgZG91YmxlIE5VTA0KPiArICAgICAgICAgICAgaWYgKEJ1ZmZlcltJbmRleF0gPT0gJ1ww
JykNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfSBlbHNlIHsNCj4gKyAg
ICAgICAgICAgIEJ1ZmZlcltJbmRleF0gPSBfX3RvdXBwZXIoQnVmZmVyW0luZGV4XSk7DQo+ICsg
ICAgICAgICAgICBJbmRleCsrOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg
QW5zaSA9IF9fQWxsb2NhdGVOb25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQU5TSV9TVFJJTkcp
ICogKENvdW50ICsgMSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZET19TSUdOQVRVUkUpOw0KPiArDQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9S
WTsNCj4gKyAgICBpZiAoQW5zaSA9PSBOVUxMKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiAr
DQo+ICsgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4KyspIHsNCj4gKyAg
ICAgICAgVUxPTkcgICBMZW5ndGg7DQo+ICsNCj4gKyAgICAgICAgTGVuZ3RoID0gKFVMT05HKXN0
cmxlbihCdWZmZXIpOw0KPiArICAgICAgICBBbnNpW0luZGV4XS5NYXhpbXVtTGVuZ3RoID0gKFVT
SE9SVCkoTGVuZ3RoICsgMSk7DQo+ICsgICAgICAgIEFuc2lbSW5kZXhdLkJ1ZmZlciA9DQo+IF9f
QWxsb2NhdGVOb25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18s
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFuc2lbSW5kZXhdLk1heGltdW1MZW5ndGgsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZET19TSUdOQVRVUkUpOw0K
PiArDQo+ICsgICAgICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7DQo+ICsgICAgICAgIGlm
IChBbnNpW0luZGV4XS5CdWZmZXIgPT0gTlVMTCkNCj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDI7
DQo+ICsNCj4gKyAgICAgICAgUnRsQ29weU1lbW9yeShBbnNpW0luZGV4XS5CdWZmZXIsIEJ1ZmZl
ciwgTGVuZ3RoKTsNCj4gKyAgICAgICAgQW5zaVtJbmRleF0uTGVuZ3RoID0gKFVTSE9SVClMZW5n
dGg7DQo+ICsNCj4gKyAgICAgICAgQnVmZmVyICs9IExlbmd0aCArIDE7DQo+ICsgICAgfQ0KPiAr
DQo+ICsgICAgcmV0dXJuIEFuc2k7DQo+ICsNCj4gK2ZhaWwyOg0KPiArICAgIEVycm9yKCJmYWls
MlxuIik7DQo+ICsNCj4gKyAgICB3aGlsZSAoLS1JbmRleCA+PSAwKQ0KPiArICAgICAgICAgICAg
X19GcmVlUG9vbFdpdGhUYWcoQW5zaVtJbmRleF0uQnVmZmVyLCBGRE9fU0lHTkFUVVJFKTsNCj4g
Kw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2ksIEZET19TSUdOQVRVUkUpOw0KPiArDQo+
ICtmYWlsMToNCj4gKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOw0KPiArDQo+
ICsgICAgcmV0dXJuIE5VTEw7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lE
DQo+ICtfX0Zkb0ZyZWVBbnNpKA0KPiArICAgIElOICBQQU5TSV9TVFJJTkcgICAgQW5zaQ0KPiAr
ICAgICkNCj4gK3sNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiArDQo+ICsg
ICAgZm9yIChJbmRleCA9IDA7IEFuc2lbSW5kZXhdLkJ1ZmZlciAhPSBOVUxMOyBJbmRleCsrKQ0K
PiArICAgICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQW5zaVtJbmRleF0uQnVmZmVyLCBGRE9f
U0lHTkFUVVJFKTsNCj4gKw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2ksIEZET19TSUdO
QVRVUkUpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAg
RmRvU2NhblRhcmdldHMoDQo+ICAgICAgX19pbiAgICBQWEVOVkJEX0ZETyBGZG8NCj4gQEAgLTY1
OSw2ICs4MDksNyBAQCBGZG9TY2FuVGFyZ2V0cygNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICAg
ICAgU3RhdHVzOw0KPiAgICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7DQo+ICsgICAgUEFOU0lf
U1RSSU5HICAgIERldmljZXM7DQo+ICAgICAgQk9PTEVBTiAgICAgICAgIE5lZWRJbnZhbGlkYXRl
Ow0KPiAgICAgIEJPT0xFQU4gICAgICAgICBOZWVkUmVib290Ow0KPiANCj4gQEAgLTY2Niw5ICs4
MTcsMTUgQEAgRmRvU2NhblRhcmdldHMoDQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykp
DQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+IC0gICAgX19GZG9FbnVtZXJhdGUoRmRvLCBCdWZm
ZXIsICZOZWVkSW52YWxpZGF0ZSwgJk5lZWRSZWJvb3QpOw0KPiArICAgIERldmljZXMgPSBfX0Zk
b011bHRpU3pUb0Fuc2koQnVmZmVyKTsNCj4gICAgICBYRU5CVVNfU1RPUkUoRnJlZSwgJkZkby0+
U3RvcmUsIEJ1ZmZlcik7DQo+IA0KPiArICAgIGlmIChEZXZpY2VzID09IE5VTEwpDQo+ICsgICAg
ICAgIHJldHVybjsNCj4gKw0KPiArICAgIF9fRmRvRW51bWVyYXRlKEZkbywgRGV2aWNlcywgJk5l
ZWRJbnZhbGlkYXRlLCAmTmVlZFJlYm9vdCk7DQo+ICsgICAgX19GZG9GcmVlQW5zaShEZXZpY2Vz
KTsNCj4gKw0KPiAgICAgIGlmIChOZWVkSW52YWxpZGF0ZSkgew0KPiAgICAgICAgICBTdG9yUG9y
dE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3RlZCwgRmRvLCAwKTsNCj4gICAgICB9DQo+IEBA
IC05MDAsOTAgKzEwNTcsNiBAQCBfX0Zkb1JlbGVhc2UoDQo+ICAgICAgICAgIFhFTkZJTFRfRU1V
TEFURUQoUmVsZWFzZSwgJkZkby0+RW11bGF0ZWQpOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBGT1JD
RUlOTElORSBQQU5TSV9TVFJJTkcNCj4gLV9fRmRvTXVsdGlTelRvVXBjYXNlQW5zaSgNCj4gLSAg
ICBJTiAgUENIQVIgICAgICAgQnVmZmVyDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIFBBTlNJX1NU
UklORyAgICBBbnNpOw0KPiAtICAgIExPTkcgICAgICAgICAgICBJbmRleDsNCj4gLSAgICBMT05H
ICAgICAgICAgICAgQ291bnQ7DQo+IC0gICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsNCj4gLQ0K
PiAtICAgIEluZGV4ID0gMDsNCj4gLSAgICBDb3VudCA9IDA7DQo+IC0gICAgZm9yICg7Oykgew0K
PiAtICAgICAgICBpZiAoQnVmZmVyW0luZGV4XSA9PSAnXDAnKSB7DQo+IC0gICAgICAgICAgICBD
b3VudCsrOw0KPiAtICAgICAgICAgICAgSW5kZXgrKzsNCj4gLQ0KPiAtICAgICAgICAgICAgLy8g
Q2hlY2sgZm9yIGRvdWJsZSBOVUwNCj4gLSAgICAgICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09
ICdcMCcpDQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIH0gZWxzZSB7DQo+
IC0gICAgICAgICAgICBCdWZmZXJbSW5kZXhdID0gX190b3VwcGVyKEJ1ZmZlcltJbmRleF0pOw0K
PiAtICAgICAgICAgICAgSW5kZXgrKzsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIEFuc2kgPSBfX0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9fLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKEFOU0lfU1RS
SU5HKSAqIChDb3VudCArIDEpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGRE9fU0lHTkFUVVJFKTsNCj4gLQ0KPiAtICAgIHN0YXR1cyA9IFNUQVRVU19OT19N
RU1PUlk7DQo+IC0gICAgaWYgKEFuc2kgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBmYWlsMTsN
Cj4gLQ0KPiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENvdW50OyBJbmRleCsrKSB7DQo+
IC0gICAgICAgIFVMT05HICAgTGVuZ3RoOw0KPiAtDQo+IC0gICAgICAgIExlbmd0aCA9IChVTE9O
RylzdHJsZW4oQnVmZmVyKTsNCj4gLSAgICAgICAgQW5zaVtJbmRleF0uTWF4aW11bUxlbmd0aCA9
IChVU0hPUlQpKExlbmd0aCArIDEpOw0KPiAtICAgICAgICBBbnNpW0luZGV4XS5CdWZmZXIgPSBf
X0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9f
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBbnNpW0luZGV4XS5NYXhpbXVtTGVuZ3RoLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRE9fU0lHTkFUVVJFKTsN
Cj4gLQ0KPiAtICAgICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOw0KPiAtICAgICAgICBp
ZiAoQW5zaVtJbmRleF0uQnVmZmVyID09IE5VTEwpDQo+IC0gICAgICAgICAgICBnb3RvIGZhaWwy
Ow0KPiAtDQo+IC0gICAgICAgIFJ0bENvcHlNZW1vcnkoQW5zaVtJbmRleF0uQnVmZmVyLCBCdWZm
ZXIsIExlbmd0aCk7DQo+IC0gICAgICAgIEFuc2lbSW5kZXhdLkxlbmd0aCA9IChVU0hPUlQpTGVu
Z3RoOw0KPiAtDQo+IC0gICAgICAgIEJ1ZmZlciArPSBMZW5ndGggKyAxOw0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIHJldHVybiBBbnNpOw0KPiAtDQo+IC1mYWlsMjoNCj4gLSAgICBFcnJvcigiZmFp
bDJcbiIpOw0KPiAtDQo+IC0gICAgd2hpbGUgKC0tSW5kZXggPj0gMCkNCj4gLSAgICAgICAgICAg
IF9fRnJlZVBvb2xXaXRoVGFnKEFuc2lbSW5kZXhdLkJ1ZmZlciwgRkRPX1NJR05BVFVSRSk7DQo+
IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpLCBGRE9fU0lHTkFUVVJFKTsNCj4gLQ0K
PiAtZmFpbDE6DQo+IC0gICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsNCj4gLQ0K
PiAtICAgIHJldHVybiBOVUxMOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9J
RA0KPiAtX19GZG9GcmVlQW5zaSgNCj4gLSAgICBJTiAgUEFOU0lfU1RSSU5HICAgIEFuc2kNCj4g
LSAgICApDQo+IC17DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICBJbmRleDsNCj4gLQ0KPiAt
ICAgIGZvciAoSW5kZXggPSAwOyBBbnNpW0luZGV4XS5CdWZmZXIgIT0gTlVMTDsgSW5kZXgrKykN
Cj4gLSAgICAgICAgICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2lbSW5kZXhdLkJ1ZmZlciwgRkRP
X1NJR05BVFVSRSk7DQo+IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpLCBGRE9fU0lH
TkFUVVJFKTsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gIF9f
RmRvTWF0Y2hEaXN0cmlidXRpb24oDQo+ICAgICAgSU4gIFBYRU5WQkRfRkRPIEZkbywNCj4gLS0N
Cj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:57:19 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhwE-0004rc-Tf; Mon, 09 May 2016 09:57:18 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhwE-0004rT-2L
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:57:18 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 A3/02-26485-DFE50375; Mon, 09 May 2016 09:57:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRWlGSWpSXmKPExsWyU9JRQvdPnEG
 4wdbJyhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9XNBvaCs7UV32acYWtg/FPdxcjJISHgJ3H9
 cw8biM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sXYxcHMICcxklXpyazQLiiAjMY5S4u
 aydBaLDSGLH0XlgNouAikTf12awSbwC7hKL1+9mB7GFBOokrt5fBDaVU8BV4tSRz2A1jAKyEl
 8aV0NtE5e49QTiCgkBAYkle84zQ9iiEi8f/2OFsA0kti7dB7SLA6heU2L9Ln2IVkWJKd0P2SH
 WCkqcnPmEBWKtisSWxwegxnBLrPz8h2UCo+gsJNtmIUyahWTSLCSTFjCyrGLUKE4tKkst0jU0
 0UsqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIwVBiDYwXj2tOchRkkOJiVRXldGv
 XAhvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErxrYw3ChQSLUtNTK9Iyc4BRC5OW4OBREuHtB0nzFh
 ck5hZnpkOkTjEqSonzrgFJCIAkMkrz4NpgieISo6yUMC8j0CFCPAWpRbmZJajyrxjFORiVhHm
 3gEzhycwrgZv+CmgxE9BiOTZ9kMUliQgpqQZGp3ksB4uCvGaIz5pyJDjeYE+Tt1DnxxV/L3I0
 PVtVnumm7GNyvf5mnIpumvuf0iUaS1xPhsnzWs681nNmsstnhhKxukzN+oQlkpOOnZ3ysG3at
 qU3u3cW37vx7eZOLbHafV6HO+s7g3h8dz76sVeqhfuvwdm64H8njFfYCP8287jRFZ220l9Fia
 U4I9FQi7moOBEAQ+8/aw8DAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1462787836!22552787!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23868 invoked from network); 9 May 2016 09:57:16 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:57:16 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21077958"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 8/9] Change enumeration function to take
 PANSI_STRING array to simplify parsing of the data returned	by
 STORE(Directory)
Thread-Index: AQHRnKJSgrvknroXckyfAdZF0kCmuZ+wePjw
Date: Mon, 9 May 2016 09:57:15 +0000
Message-ID: <6b29f2b1b9d0490f850f0362af7e30bc@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-9-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-9-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 8/9] Change enumeration function to
	take	PANSI_STRING array to simplify parsing of the data
	returned	by STORE(Directory)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA4LzldIENoYW5nZSBlbnVtZXJhdGlvbiBmdW5jdGlvbiB0
byB0YWtlDQo+IFBBTlNJX1NUUklORyBhcnJheSB0byBzaW1wbGlmeSBwYXJzaW5nIG9mIHRoZSBk
YXRhIHJldHVybmVkIGJ5DQo+IFNUT1JFKERpcmVjdG9yeSkNCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Zk
by5jIHwgMjg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+
IC0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDEwNyBk
ZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hl
bnZiZC9mZG8uYw0KPiBpbmRleCAyOWVjOTY2Li45ZTA0YmIxIDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTQyOCwxNiArNDI4
LDYgQEAgRmRvRGVidWdDYWxsYmFjaygNCj4gDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09
PT09PQ0KPiAgLy8gRW51bWVyYXRpb24NCj4gLV9fY2hlY2tSZXR1cm4NCj4gLXN0YXRpYyBGT1JD
RUlOTElORSBQQ0hBUg0KPiAtX19OZXh0U3ooDQo+IC0gICAgX19pbiBQQ0hBUiAgICAgICAgICAg
ICAgICAgICAgICAgU3RyDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIGZvciAoOyAqU3RyOyArK1N0
cikgOw0KPiAtICAgICsrU3RyOw0KPiAtICAgIHJldHVybiBTdHI7DQo+IC19DQo+ICBzdGF0aWMg
Rk9SQ0VJTkxJTkUgVUxPTkcNCj4gIF9fUGFyc2VWYmQoDQo+ICAgICAgX19pbiBQQ0hBUiAgICAg
ICAgICAgICAgICAgICAgICAgRGV2aWNlSWRTdHINCj4gQEAgLTU3MywxNCArNTYzLDE1IEBAIF9f
RmRvSXNQZG9VbnBsdWdnZWQoDQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIF9f
RmRvRW51bWVyYXRlKA0KPiAtICAgIF9faW4gICAgUFhFTlZCRF9GRE8gRmRvLA0KPiAtICAgIF9f
aW4gICAgUENIQVIgICAgICAgRGV2aWNlcywNCj4gLSAgICBfX291dCAgIFBCT09MRUFOICAgIE5l
ZWRJbnZhbGlkYXRlLA0KPiAtICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgTmVlZFJlYm9vdA0KPiAr
ICAgIF9faW4gICAgUFhFTlZCRF9GRE8gICAgIEZkbywNCj4gKyAgICBfX2luICAgIFBBTlNJX1NU
UklORyAgICBEZXZpY2VzLA0KPiArICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgICAgIE5lZWRJbnZh
bGlkYXRlLA0KPiArICAgIF9fb3V0ICAgUEJPT0xFQU4gICAgICAgIE5lZWRSZWJvb3QNCj4gICAg
ICApDQo+ICB7DQo+ICAgICAgVUxPTkcgICAgICAgICAgICAgICBUYXJnZXRJZDsNCj4gLSAgICBQ
Q0hBUiAgICAgICAgICAgICAgIERldmljZTsNCj4gKyAgICBQQU5TSV9TVFJJTkcgICAgICAgIERl
dmljZTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiAgICAgIFBYRU5WQkRf
UERPICAgICAgICAgUGRvOw0KPiANCj4gICAgICAqTmVlZEludmFsaWRhdGUgPSBGQUxTRTsNCj4g
QEAgLTU5Myw4ICs1ODQsMTAgQEAgX19GZG9FbnVtZXJhdGUoDQo+ICAgICAgICAgIGlmIChQZG8g
PT0gTlVMTCkNCj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gLSAgICAgICAgZm9yIChE
ZXZpY2UgPSBEZXZpY2VzOyAqRGV2aWNlOyBEZXZpY2UgPSBfX05leHRTeihEZXZpY2UpKSB7DQo+
IC0gICAgICAgICAgICBVTE9ORyBEZXZpY2VUYXJnZXRJZCA9IF9fUGFyc2VWYmQoRGV2aWNlKTsN
Cj4gKyAgICAgICAgZm9yIChJbmRleCA9IDA7IERldmljZXNbSW5kZXhdLkJ1ZmZlciAhPSBOVUxM
OyArK0luZGV4KSB7DQo+ICsgICAgICAgICAgICBVTE9ORyBEZXZpY2VUYXJnZXRJZDsNCj4gKyAg
ICAgICAgICAgIERldmljZSA9ICZEZXZpY2VzW0luZGV4XTsNCj4gKyAgICAgICAgICAgIERldmlj
ZVRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UtPkJ1ZmZlcik7DQo+ICAgICAgICAgICAgICBp
ZiAoVGFyZ2V0SWQgPT0gRGV2aWNlVGFyZ2V0SWQpIHsNCj4gICAgICAgICAgICAgICAgICBNaXNz
aW5nID0gRkFMU0U7DQo+ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+IEBAIC02MTgsMTAgKzYx
MSwxMiBAQCBfX0Zkb0VudW1lcmF0ZSgNCj4gICAgICB9DQo+IA0KPiAgICAgIC8vIGFkZCBuZXcg
dGFyZ2V0cw0KPiAtICAgIGZvciAoRGV2aWNlID0gRGV2aWNlczsgKkRldmljZTsgRGV2aWNlID0g
X19OZXh0U3ooRGV2aWNlKSkgew0KPiArICAgIGZvciAoSW5kZXggPSAwOyBEZXZpY2VzW0luZGV4
XS5CdWZmZXIgIT0gTlVMTDsgKytJbmRleCkgew0KPiAgICAgICAgICBYRU5WQkRfREVWSUNFX1RZ
UEUgIERldmljZVR5cGU7DQo+IA0KPiAtICAgICAgICBUYXJnZXRJZCA9IF9fUGFyc2VWYmQoRGV2
aWNlKTsNCj4gKyAgICAgICAgRGV2aWNlID0gJkRldmljZXNbSW5kZXhdOw0KPiArDQo+ICsgICAg
ICAgIFRhcmdldElkID0gX19QYXJzZVZiZChEZXZpY2UtPkJ1ZmZlcik7DQo+ICAgICAgICAgIGlm
IChUYXJnZXRJZCA9PSAweEZGRkZGRkZGKSB7DQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4g
ICAgICAgICAgfQ0KPiBAQCAtNjMyLDI2ICs2MjcsMTgxIEBAIF9fRmRvRW51bWVyYXRlKA0KPiAg
ICAgICAgICAgICAgY29udGludWU7DQo+ICAgICAgICAgIH0NCj4gDQo+IC0gICAgICAgIGlmIChf
X0Zkb0hpZGRlblRhcmdldChGZG8sIERldmljZSwgJkRldmljZVR5cGUpKSB7DQo+ICsgICAgICAg
IGlmIChfX0Zkb0hpZGRlblRhcmdldChGZG8sIERldmljZS0+QnVmZmVyLCAmRGV2aWNlVHlwZSkp
IHsNCj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICB9DQo+IA0KPiAgICAgICAg
ICBpZiAoIV9fRmRvSXNQZG9VbnBsdWdnZWQoRmRvLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGZG9FbnVtKEZkbyksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERldmljZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlLT5C
dWZmZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldElkKSkgew0K
PiAgICAgICAgICAgICAgKk5lZWRSZWJvb3QgPSBUUlVFOw0KPiAgICAgICAgICAgICAgY29udGlu
dWU7DQo+ICAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgIGlmIChQZG9DcmVhdGUoRmRvLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgIERldmljZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBE
ZXZpY2UtPkJ1ZmZlciwNCj4gICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJZCwNCj4gICAg
ICAgICAgICAgICAgICAgICAgICBEZXZpY2VUeXBlKSkgew0KPiAgICAgICAgICAgICAgKk5lZWRJ
bnZhbGlkYXRlID0gVFJVRTsNCj4gICAgICAgICAgfQ0KPiAgICAgIH0NCj4gIH0NCj4gKw0KPiAr
c3RhdGljIEZPUkNFSU5MSU5FIFBBTlNJX1NUUklORw0KPiArX19GZG9NdWx0aVN6VG9BbnNpKA0K
PiArICAgIElOICBQQ0hBUiAgICAgICBCdWZmZXINCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUEFO
U0lfU1RSSU5HICAgIEFuc2k7DQo+ICsgICAgTE9ORyAgICAgICAgICAgIEluZGV4Ow0KPiArICAg
IExPTkcgICAgICAgICAgICBDb3VudDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0K
PiArDQo+ICsgICAgSW5kZXggPSAwOw0KPiArICAgIENvdW50ID0gMDsNCj4gKyAgICBmb3IgKDs7
KSB7DQo+ICsgICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09ICdcMCcpIHsNCj4gKyAgICAgICAg
ICAgIENvdW50Kys7DQo+ICsgICAgICAgICAgICBJbmRleCsrOw0KPiArDQo+ICsgICAgICAgICAg
ICAvLyBDaGVjayBmb3IgZG91YmxlIE5VTA0KPiArICAgICAgICAgICAgaWYgKEJ1ZmZlcltJbmRl
eF0gPT0gJ1wwJykNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfSBlbHNl
IHsNCj4gKyAgICAgICAgICAgIEluZGV4Kys7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsN
Cj4gKyAgICBBbnNpID0gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9f
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVfXywN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChBTlNJ
X1NUUklORykgKiAoQ291bnQgKyAxKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRkRPX1NJR05BVFVSRSk7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBTVEFUVVNf
Tk9fTUVNT1JZOw0KPiArICAgIGlmIChBbnNpID09IE5VTEwpDQo+ICsgICAgICAgIGdvdG8gZmFp
bDE7DQo+ICsNCj4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBDb3VudDsgSW5kZXgrKykg
ew0KPiArICAgICAgICBVTE9ORyAgIExlbmd0aDsNCj4gKw0KPiArICAgICAgICBMZW5ndGggPSAo
VUxPTkcpc3RybGVuKEJ1ZmZlcik7DQo+ICsgICAgICAgIEFuc2lbSW5kZXhdLk1heGltdW1MZW5n
dGggPSAoVVNIT1JUKShMZW5ndGggKyAxKTsNCj4gKyAgICAgICAgQW5zaVtJbmRleF0uQnVmZmVy
ID0NCj4gX19BbGxvY2F0ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
X0xJTkVfXywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQW5zaVtJbmRleF0uTWF4aW11bUxlbmd0aCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRPX1NJR05B
VFVSRSk7DQo+ICsNCj4gKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4gKyAg
ICAgICAgaWYgKEFuc2lbSW5kZXhdLkJ1ZmZlciA9PSBOVUxMKQ0KPiArICAgICAgICAgICAgZ290
byBmYWlsMjsNCj4gKw0KPiArICAgICAgICBSdGxDb3B5TWVtb3J5KEFuc2lbSW5kZXhdLkJ1ZmZl
ciwgQnVmZmVyLCBMZW5ndGgpOw0KPiArICAgICAgICBBbnNpW0luZGV4XS5MZW5ndGggPSAoVVNI
T1JUKUxlbmd0aDsNCj4gKw0KPiArICAgICAgICBCdWZmZXIgKz0gTGVuZ3RoICsgMTsNCj4gKyAg
ICB9DQo+ICsNCj4gKyAgICByZXR1cm4gQW5zaTsNCj4gKw0KPiArZmFpbDI6DQo+ICsgICAgRXJy
b3IoImZhaWwyXG4iKTsNCj4gKw0KPiArICAgIHdoaWxlICgtLUluZGV4ID49IDApDQo+ICsgICAg
ICAgICAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpW0luZGV4XS5CdWZmZXIsIEZET19TSUdOQVRV
UkUpOw0KPiArDQo+ICsgICAgX19GcmVlUG9vbFdpdGhUYWcoQW5zaSwgRkRPX1NJR05BVFVSRSk7
DQo+ICsNCj4gK2ZhaWwxOg0KPiArICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
DQo+ICsNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gK30NCj4gKw0KPiArc3RhdGljIEZPUkNFSU5M
SU5FIFBBTlNJX1NUUklORw0KPiArX19GZG9NdWx0aVN6VG9VcGNhc2VBbnNpKA0KPiArICAgIElO
ICBQQ0hBUiAgICAgICBCdWZmZXINCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUEFOU0lfU1RSSU5H
ICAgIEFuc2k7DQo+ICsgICAgTE9ORyAgICAgICAgICAgIEluZGV4Ow0KPiArICAgIExPTkcgICAg
ICAgICAgICBDb3VudDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0KPiArDQo+ICsg
ICAgSW5kZXggPSAwOw0KPiArICAgIENvdW50ID0gMDsNCj4gKyAgICBmb3IgKDs7KSB7DQo+ICsg
ICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09ICdcMCcpIHsNCj4gKyAgICAgICAgICAgIENvdW50
Kys7DQo+ICsgICAgICAgICAgICBJbmRleCsrOw0KPiArDQo+ICsgICAgICAgICAgICAvLyBDaGVj
ayBmb3IgZG91YmxlIE5VTA0KPiArICAgICAgICAgICAgaWYgKEJ1ZmZlcltJbmRleF0gPT0gJ1ww
JykNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfSBlbHNlIHsNCj4gKyAg
ICAgICAgICAgIEJ1ZmZlcltJbmRleF0gPSBfX3RvdXBwZXIoQnVmZmVyW0luZGV4XSk7DQo+ICsg
ICAgICAgICAgICBJbmRleCsrOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg
QW5zaSA9IF9fQWxsb2NhdGVOb25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoQU5TSV9TVFJJTkcp
ICogKENvdW50ICsgMSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZET19TSUdOQVRVUkUpOw0KPiArDQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9S
WTsNCj4gKyAgICBpZiAoQW5zaSA9PSBOVUxMKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiAr
DQo+ICsgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4KyspIHsNCj4gKyAg
ICAgICAgVUxPTkcgICBMZW5ndGg7DQo+ICsNCj4gKyAgICAgICAgTGVuZ3RoID0gKFVMT05HKXN0
cmxlbihCdWZmZXIpOw0KPiArICAgICAgICBBbnNpW0luZGV4XS5NYXhpbXVtTGVuZ3RoID0gKFVT
SE9SVCkoTGVuZ3RoICsgMSk7DQo+ICsgICAgICAgIEFuc2lbSW5kZXhdLkJ1ZmZlciA9DQo+IF9f
QWxsb2NhdGVOb25QYWdlZFBvb2xXaXRoVGFnKF9fRlVOQ1RJT05fXywNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18s
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFuc2lbSW5kZXhdLk1heGltdW1MZW5ndGgsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZET19TSUdOQVRVUkUpOw0K
PiArDQo+ICsgICAgICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7DQo+ICsgICAgICAgIGlm
IChBbnNpW0luZGV4XS5CdWZmZXIgPT0gTlVMTCkNCj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDI7
DQo+ICsNCj4gKyAgICAgICAgUnRsQ29weU1lbW9yeShBbnNpW0luZGV4XS5CdWZmZXIsIEJ1ZmZl
ciwgTGVuZ3RoKTsNCj4gKyAgICAgICAgQW5zaVtJbmRleF0uTGVuZ3RoID0gKFVTSE9SVClMZW5n
dGg7DQo+ICsNCj4gKyAgICAgICAgQnVmZmVyICs9IExlbmd0aCArIDE7DQo+ICsgICAgfQ0KPiAr
DQo+ICsgICAgcmV0dXJuIEFuc2k7DQo+ICsNCj4gK2ZhaWwyOg0KPiArICAgIEVycm9yKCJmYWls
MlxuIik7DQo+ICsNCj4gKyAgICB3aGlsZSAoLS1JbmRleCA+PSAwKQ0KPiArICAgICAgICAgICAg
X19GcmVlUG9vbFdpdGhUYWcoQW5zaVtJbmRleF0uQnVmZmVyLCBGRE9fU0lHTkFUVVJFKTsNCj4g
Kw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2ksIEZET19TSUdOQVRVUkUpOw0KPiArDQo+
ICtmYWlsMToNCj4gKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOw0KPiArDQo+
ICsgICAgcmV0dXJuIE5VTEw7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lE
DQo+ICtfX0Zkb0ZyZWVBbnNpKA0KPiArICAgIElOICBQQU5TSV9TVFJJTkcgICAgQW5zaQ0KPiAr
ICAgICkNCj4gK3sNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiArDQo+ICsg
ICAgZm9yIChJbmRleCA9IDA7IEFuc2lbSW5kZXhdLkJ1ZmZlciAhPSBOVUxMOyBJbmRleCsrKQ0K
PiArICAgICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQW5zaVtJbmRleF0uQnVmZmVyLCBGRE9f
U0lHTkFUVVJFKTsNCj4gKw0KPiArICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2ksIEZET19TSUdO
QVRVUkUpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAg
RmRvU2NhblRhcmdldHMoDQo+ICAgICAgX19pbiAgICBQWEVOVkJEX0ZETyBGZG8NCj4gQEAgLTY1
OSw2ICs4MDksNyBAQCBGZG9TY2FuVGFyZ2V0cygNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICAg
ICAgU3RhdHVzOw0KPiAgICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7DQo+ICsgICAgUEFOU0lf
U1RSSU5HICAgIERldmljZXM7DQo+ICAgICAgQk9PTEVBTiAgICAgICAgIE5lZWRJbnZhbGlkYXRl
Ow0KPiAgICAgIEJPT0xFQU4gICAgICAgICBOZWVkUmVib290Ow0KPiANCj4gQEAgLTY2Niw5ICs4
MTcsMTUgQEAgRmRvU2NhblRhcmdldHMoDQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykp
DQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+IC0gICAgX19GZG9FbnVtZXJhdGUoRmRvLCBCdWZm
ZXIsICZOZWVkSW52YWxpZGF0ZSwgJk5lZWRSZWJvb3QpOw0KPiArICAgIERldmljZXMgPSBfX0Zk
b011bHRpU3pUb0Fuc2koQnVmZmVyKTsNCj4gICAgICBYRU5CVVNfU1RPUkUoRnJlZSwgJkZkby0+
U3RvcmUsIEJ1ZmZlcik7DQo+IA0KPiArICAgIGlmIChEZXZpY2VzID09IE5VTEwpDQo+ICsgICAg
ICAgIHJldHVybjsNCj4gKw0KPiArICAgIF9fRmRvRW51bWVyYXRlKEZkbywgRGV2aWNlcywgJk5l
ZWRJbnZhbGlkYXRlLCAmTmVlZFJlYm9vdCk7DQo+ICsgICAgX19GZG9GcmVlQW5zaShEZXZpY2Vz
KTsNCj4gKw0KPiAgICAgIGlmIChOZWVkSW52YWxpZGF0ZSkgew0KPiAgICAgICAgICBTdG9yUG9y
dE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3RlZCwgRmRvLCAwKTsNCj4gICAgICB9DQo+IEBA
IC05MDAsOTAgKzEwNTcsNiBAQCBfX0Zkb1JlbGVhc2UoDQo+ICAgICAgICAgIFhFTkZJTFRfRU1V
TEFURUQoUmVsZWFzZSwgJkZkby0+RW11bGF0ZWQpOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBGT1JD
RUlOTElORSBQQU5TSV9TVFJJTkcNCj4gLV9fRmRvTXVsdGlTelRvVXBjYXNlQW5zaSgNCj4gLSAg
ICBJTiAgUENIQVIgICAgICAgQnVmZmVyDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIFBBTlNJX1NU
UklORyAgICBBbnNpOw0KPiAtICAgIExPTkcgICAgICAgICAgICBJbmRleDsNCj4gLSAgICBMT05H
ICAgICAgICAgICAgQ291bnQ7DQo+IC0gICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsNCj4gLQ0K
PiAtICAgIEluZGV4ID0gMDsNCj4gLSAgICBDb3VudCA9IDA7DQo+IC0gICAgZm9yICg7Oykgew0K
PiAtICAgICAgICBpZiAoQnVmZmVyW0luZGV4XSA9PSAnXDAnKSB7DQo+IC0gICAgICAgICAgICBD
b3VudCsrOw0KPiAtICAgICAgICAgICAgSW5kZXgrKzsNCj4gLQ0KPiAtICAgICAgICAgICAgLy8g
Q2hlY2sgZm9yIGRvdWJsZSBOVUwNCj4gLSAgICAgICAgICAgIGlmIChCdWZmZXJbSW5kZXhdID09
ICdcMCcpDQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIH0gZWxzZSB7DQo+
IC0gICAgICAgICAgICBCdWZmZXJbSW5kZXhdID0gX190b3VwcGVyKEJ1ZmZlcltJbmRleF0pOw0K
PiAtICAgICAgICAgICAgSW5kZXgrKzsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIEFuc2kgPSBfX0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9fLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKEFOU0lfU1RS
SU5HKSAqIChDb3VudCArIDEpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGRE9fU0lHTkFUVVJFKTsNCj4gLQ0KPiAtICAgIHN0YXR1cyA9IFNUQVRVU19OT19N
RU1PUlk7DQo+IC0gICAgaWYgKEFuc2kgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBmYWlsMTsN
Cj4gLQ0KPiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENvdW50OyBJbmRleCsrKSB7DQo+
IC0gICAgICAgIFVMT05HICAgTGVuZ3RoOw0KPiAtDQo+IC0gICAgICAgIExlbmd0aCA9IChVTE9O
RylzdHJsZW4oQnVmZmVyKTsNCj4gLSAgICAgICAgQW5zaVtJbmRleF0uTWF4aW11bUxlbmd0aCA9
IChVU0hPUlQpKExlbmd0aCArIDEpOw0KPiAtICAgICAgICBBbnNpW0luZGV4XS5CdWZmZXIgPSBf
X0FsbG9jYXRlTm9uUGFnZWRQb29sV2l0aFRhZyhfX0ZVTkNUSU9OX18sDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9f
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBbnNpW0luZGV4XS5NYXhpbXVtTGVuZ3RoLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRE9fU0lHTkFUVVJFKTsN
Cj4gLQ0KPiAtICAgICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOw0KPiAtICAgICAgICBp
ZiAoQW5zaVtJbmRleF0uQnVmZmVyID09IE5VTEwpDQo+IC0gICAgICAgICAgICBnb3RvIGZhaWwy
Ow0KPiAtDQo+IC0gICAgICAgIFJ0bENvcHlNZW1vcnkoQW5zaVtJbmRleF0uQnVmZmVyLCBCdWZm
ZXIsIExlbmd0aCk7DQo+IC0gICAgICAgIEFuc2lbSW5kZXhdLkxlbmd0aCA9IChVU0hPUlQpTGVu
Z3RoOw0KPiAtDQo+IC0gICAgICAgIEJ1ZmZlciArPSBMZW5ndGggKyAxOw0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIHJldHVybiBBbnNpOw0KPiAtDQo+IC1mYWlsMjoNCj4gLSAgICBFcnJvcigiZmFp
bDJcbiIpOw0KPiAtDQo+IC0gICAgd2hpbGUgKC0tSW5kZXggPj0gMCkNCj4gLSAgICAgICAgICAg
IF9fRnJlZVBvb2xXaXRoVGFnKEFuc2lbSW5kZXhdLkJ1ZmZlciwgRkRPX1NJR05BVFVSRSk7DQo+
IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpLCBGRE9fU0lHTkFUVVJFKTsNCj4gLQ0K
PiAtZmFpbDE6DQo+IC0gICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsNCj4gLQ0K
PiAtICAgIHJldHVybiBOVUxMOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9J
RA0KPiAtX19GZG9GcmVlQW5zaSgNCj4gLSAgICBJTiAgUEFOU0lfU1RSSU5HICAgIEFuc2kNCj4g
LSAgICApDQo+IC17DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICBJbmRleDsNCj4gLQ0KPiAt
ICAgIGZvciAoSW5kZXggPSAwOyBBbnNpW0luZGV4XS5CdWZmZXIgIT0gTlVMTDsgSW5kZXgrKykN
Cj4gLSAgICAgICAgICAgIF9fRnJlZVBvb2xXaXRoVGFnKEFuc2lbSW5kZXhdLkJ1ZmZlciwgRkRP
X1NJR05BVFVSRSk7DQo+IC0NCj4gLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhBbnNpLCBGRE9fU0lH
TkFUVVJFKTsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gIF9f
RmRvTWF0Y2hEaXN0cmlidXRpb24oDQo+ICAgICAgSU4gIFBYRU5WQkRfRkRPIEZkbywNCj4gLS0N
Cj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:58:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhxA-00050F-82; Mon, 09 May 2016 09:58:16 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhx9-0004zu-1Q
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:58:15 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 AA/04-09532-63F50375; Mon, 09 May 2016 09:58:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQtc03iD
 cYPFPHYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WLVa/aCpcIV19umMjUwtgh3MXJySAj4SVzo
 nsoOYrMJ6EgsPTqfCcQWESiQ+P5+HjOIzSygJnF9fxcriC0sECDRMnM2VE2gRMf8XWwQtpHEv
 bZJYPUsAioSq5aeBZvJK+Au8aH3LguILSRQL3HrRT+YzSngJtF/7D/YHEYBWYkvjauhdolL3H
 oCcYOEgIDEkj3nmSFsUYmXj/+xQtgGEluX7gOawwFUrymxfpc+RKuixJTuh1BrBSVOznwCtVZ
 FYsvjA1BjuCVWfv7DMoFRdBaSbbMQJs1CMmkWkkkLGFlWMaoXpxaVpRbpGuslFWWmZ5TkJmbm
 6BoamOnlphYXJ6an5iQmFesl5+duYgRGCQMQ7GDs+Od0iFGSg0lJlNeVUS9ciC8pP6UyI7E4I
 76oNCe1+BCjDAeHkgTv2liDcCHBotT01Iq0zBxgvMKkJTh4lER4WeOA0rzFBYm5xZnpEKlTjI
 pS4rxrQPoEQBIZpXlwbbAUcYlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvO9BpvBk5pXATX8
 FtJgJaLEcmz7I4pJEhJRUA2OM5lePZwmdL6I2hH3nkT6md/Lg9AccrefK791vizg2j3nyqSv2
 29xTT3SsfFx6p8Hgyo2U6Zsfs8+Rn9+sdHIJRyv7dqet4dFry3IEqtbvLz8s9uD9q/XhS353T
 2HmStiheDc9okVoeyLPK6aNTdeEPwuxF3uW1OrWH7ffZpVhKLpDbBPnmR4lluKMREMt5qLiRA
 DmJVDEDAMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1462787893!13135494!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40522 invoked from network); 9 May 2016 09:58:13 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:58:13 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21078009"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 9/9] Remove logging from failed Pdo Pnp
 IRPs
Thread-Index: AQHRnKIhZuyxn9WECkuCWKQYSJoXZp+weTbQ
Date: Mon, 9 May 2016 09:58:12 +0000
Message-ID: <e004b5f08077481d810584cd886f72cb@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-10-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-10-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 9/9] Remove logging from failed Pdo Pnp
 IRPs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA5LzldIFJlbW92ZSBsb2dnaW5nIGZyb20gZmFpbGVkIFBk
byBQbnANCj4gSVJQcw0KPiANCj4gTG9nZ2luZyBmYWlsIGNvZGVzIGZvciB1bmhhbmRsZWQgUG5w
IElSUHMgaXMgdW5uZWNjZXNhcnkgYW5kIGFkZHMNCj4gc2lnbmlmaWNhbnQgbm9pc2Ugd2l0aCBt
dWx0aXBsZSBWQkRzLiBJdHMgdW5saWtlbHkgdGhlIHJldHVybiB2YWx1ZQ0KPiBmcm9tIHN0b3Jw
b3J0IGlzIGdvaW5nIHRvIGFkZCBzaWduaWZpY2FudCBpbnNpZ2h0IHRvIGRpYWdub3NlDQo+IHBy
b2JsZW1zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvcGRvLmMgfCA3ICstLS0tLS0NCj4gIDEgZmlsZSBj
aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQg
YS9zcmMveGVudmJkL3Bkby5jIGIvc3JjL3hlbnZiZC9wZG8uYw0KPiBpbmRleCA5MThiODI0Li44
YTJjYmU0IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3Bkby5jDQo+ICsrKyBiL3NyYy94ZW52
YmQvcGRvLmMNCj4gQEAgLTIzNjYsNyArMjM2Niw2IEBAIFBkb0Rpc3BhdGNoUG5wKA0KPiAgICAg
IFBJT19TVEFDS19MT0NBVElPTiAgU3RhY2sgPSBJb0dldEN1cnJlbnRJcnBTdGFja0xvY2F0aW9u
KElycCk7DQo+ICAgICAgVUNIQVIgICAgICAgICAgICAgICBNaW5vciA9IFN0YWNrLT5NaW5vckZ1
bmN0aW9uOw0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgVGFyZ2V0SWQgPSBQZG9HZXRUYXJn
ZXRJZChQZG8pOw0KPiAtICAgIE5UU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPiANCj4gICAg
ICBfX1Bkb0NoZWNrRWplY3RQZW5kaW5nKFBkbyk7DQo+IA0KPiBAQCAtMjQxOCwxMSArMjQxNyw3
IEBAIFBkb0Rpc3BhdGNoUG5wKA0KPiAgICAgICAgICBicmVhazsNCj4gICAgICB9DQo+ICAgICAg
UGRvRGVyZWZlcmVuY2UoUGRvKTsNCj4gLSAgICBTdGF0dXMgPSBEcml2ZXJEaXNwYXRjaFBucChE
ZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4g
LSAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICUwMng6JXMgLT4gJTA4eFxuIiwgVGFyZ2V0
SWQsIE1pbm9yLA0KPiBQbnBNaW5vckZ1bmN0aW9uTmFtZShNaW5vciksIFN0YXR1cyk7DQo+IC0g
ICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAgcmV0dXJuIERyaXZlckRpc3BhdGNo
UG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gIH0NCj4gDQo+ICBfX2Rydl9tYXhJUlFMKERJU1BB
VENIX0xFVkVMKQ0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 09:58:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 09:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azhxA-00050F-82; Mon, 09 May 2016 09:58:16 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azhx9-0004zu-1Q
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 09:58:15 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 AA/04-09532-63F50375; Mon, 09 May 2016 09:58:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQtc03iD
 cYPFPHYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WLVa/aCpcIV19umMjUwtgh3MXJySAj4SVzo
 nsoOYrMJ6EgsPTqfCcQWESiQ+P5+HjOIzSygJnF9fxcriC0sECDRMnM2VE2gRMf8XWwQtpHEv
 bZJYPUsAioSq5aeBZvJK+Au8aH3LguILSRQL3HrRT+YzSngJtF/7D/YHEYBWYkvjauhdolL3H
 oCcYOEgIDEkj3nmSFsUYmXj/+xQtgGEluX7gOawwFUrymxfpc+RKuixJTuh1BrBSVOznwCtVZ
 FYsvjA1BjuCVWfv7DMoFRdBaSbbMQJs1CMmkWkkkLGFlWMaoXpxaVpRbpGuslFWWmZ5TkJmbm
 6BoamOnlphYXJ6an5iQmFesl5+duYgRGCQMQ7GDs+Od0iFGSg0lJlNeVUS9ciC8pP6UyI7E4I
 76oNCe1+BCjDAeHkgTv2liDcCHBotT01Iq0zBxgvMKkJTh4lER4WeOA0rzFBYm5xZnpEKlTjI
 pS4rxrQPoEQBIZpXlwbbAUcYlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvO9BpvBk5pXATX8
 FtJgJaLEcmz7I4pJEhJRUA2OM5lePZwmdL6I2hH3nkT6md/Lg9AccrefK791vizg2j3nyqSv2
 29xTT3SsfFx6p8Hgyo2U6Zsfs8+Rn9+sdHIJRyv7dqet4dFry3IEqtbvLz8s9uD9q/XhS353T
 2HmStiheDc9okVoeyLPK6aNTdeEPwuxF3uW1OrWH7ffZpVhKLpDbBPnmR4lluKMREMt5qLiRA
 DmJVDEDAMAAA==
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1462787893!13135494!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40522 invoked from network); 9 May 2016 09:58:13 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 09:58:13 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21078009"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 9/9] Remove logging from failed Pdo Pnp
 IRPs
Thread-Index: AQHRnKIhZuyxn9WECkuCWKQYSJoXZp+weTbQ
Date: Mon, 9 May 2016 09:58:12 +0000
Message-ID: <e004b5f08077481d810584cd886f72cb@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
 <1461334536-6316-10-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-10-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 9/9] Remove logging from failed Pdo Pnp
 IRPs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNg0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCA5LzldIFJlbW92ZSBsb2dnaW5nIGZyb20gZmFpbGVkIFBk
byBQbnANCj4gSVJQcw0KPiANCj4gTG9nZ2luZyBmYWlsIGNvZGVzIGZvciB1bmhhbmRsZWQgUG5w
IElSUHMgaXMgdW5uZWNjZXNhcnkgYW5kIGFkZHMNCj4gc2lnbmlmaWNhbnQgbm9pc2Ugd2l0aCBt
dWx0aXBsZSBWQkRzLiBJdHMgdW5saWtlbHkgdGhlIHJldHVybiB2YWx1ZQ0KPiBmcm9tIHN0b3Jw
b3J0IGlzIGdvaW5nIHRvIGFkZCBzaWduaWZpY2FudCBpbnNpZ2h0IHRvIGRpYWdub3NlDQo+IHBy
b2JsZW1zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvcGRvLmMgfCA3ICstLS0tLS0NCj4gIDEgZmlsZSBj
aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQg
YS9zcmMveGVudmJkL3Bkby5jIGIvc3JjL3hlbnZiZC9wZG8uYw0KPiBpbmRleCA5MThiODI0Li44
YTJjYmU0IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3Bkby5jDQo+ICsrKyBiL3NyYy94ZW52
YmQvcGRvLmMNCj4gQEAgLTIzNjYsNyArMjM2Niw2IEBAIFBkb0Rpc3BhdGNoUG5wKA0KPiAgICAg
IFBJT19TVEFDS19MT0NBVElPTiAgU3RhY2sgPSBJb0dldEN1cnJlbnRJcnBTdGFja0xvY2F0aW9u
KElycCk7DQo+ICAgICAgVUNIQVIgICAgICAgICAgICAgICBNaW5vciA9IFN0YWNrLT5NaW5vckZ1
bmN0aW9uOw0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgVGFyZ2V0SWQgPSBQZG9HZXRUYXJn
ZXRJZChQZG8pOw0KPiAtICAgIE5UU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPiANCj4gICAg
ICBfX1Bkb0NoZWNrRWplY3RQZW5kaW5nKFBkbyk7DQo+IA0KPiBAQCAtMjQxOCwxMSArMjQxNyw3
IEBAIFBkb0Rpc3BhdGNoUG5wKA0KPiAgICAgICAgICBicmVhazsNCj4gICAgICB9DQo+ICAgICAg
UGRvRGVyZWZlcmVuY2UoUGRvKTsNCj4gLSAgICBTdGF0dXMgPSBEcml2ZXJEaXNwYXRjaFBucChE
ZXZpY2VPYmplY3QsIElycCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsNCj4g
LSAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICUwMng6JXMgLT4gJTA4eFxuIiwgVGFyZ2V0
SWQsIE1pbm9yLA0KPiBQbnBNaW5vckZ1bmN0aW9uTmFtZShNaW5vciksIFN0YXR1cyk7DQo+IC0g
ICAgfQ0KPiAtICAgIHJldHVybiBTdGF0dXM7DQo+ICsgICAgcmV0dXJuIERyaXZlckRpc3BhdGNo
UG5wKERldmljZU9iamVjdCwgSXJwKTsNCj4gIH0NCj4gDQo+ICBfX2Rydl9tYXhJUlFMKERJU1BB
VENIX0xFVkVMKQ0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 12:43:25 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 12:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azkWx-0002kY-Vp; Mon, 09 May 2016 12:43:23 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azkWw-0002jd-2k
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 12:43:22 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
 16/7F-03606-9E580375; Mon, 09 May 2016 12:43:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvdFq0G
 4we3dyhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+Pl70wFr0Uqrk2fzt7AeEKki5GTQ0LAT+Lg
 9t0sIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgtjCAoES/YfaWCFqgiQOX+sDsjmAb
 COJ/28VQcIsAioSN1s+go3hFXCXWPDoHth4IQEXia/r/4PZnAKuEl9nvgarYRSQlfjSuBpqlb
 jErScQJ0gICEgs2XOeGcIWlXj5+B8rhG0gsXXpPhaQtcwCmhLrd+lDtCpKTOl+yA6xVlDi5Mw
 nUGtVJLY8PgA1hlti5ec/LBMYRWch2TYLYdIsJJNmIZm0gJFlFaN6cWpRWWqRrrleUlFmekZJ
 bmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZgjDAAwQ7Gxu9OhxglOZiURHldGfXChfiS8lMqM
 xKLM+KLSnNSiw8xynBwKEnw8gFjTkiwKDU9tSItMwcYrTBpCQ4eJRFeLZA0b3FBYm5xZjpE6h
 SjopQ4rwdIQgAkkVGaB9cGSxCXGGWlhHkZgQ4R4ilILcrNLEGVf8UozsGoJMz7oAVoCk9mXgn
 c9FdAi5mAFsux6YMsLklESEk1MM47u+vpLya79qVb85kzOWIuvGPZH9h8n82hbLF8QNYRvUnT
 exm4ch6WbG9Z3HiD1eT3uVmG5Rnl3p06Red6gkuM0oWv7uXQd321h6XPgqW0cU07d/TKiSeND
 Y06ogzvOUQ8/vHpCqvc1kVfO/a4rr5Qv1zM9DGPa2F0tIGqZF5ER+JEHeEJSizFGYmGWsxFxY
 kApk3E8QsDAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1462797800!12919183!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27688 invoked from network); 9 May 2016 12:43:20 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 12:43:20 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21090931"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/9] Reduce xenstore noise on backend
 changes
Thread-Index: AQHRnKIYFL6pAeIP/EWbXGbSYN1yJ5+wp1SQ
Date: Mon, 9 May 2016 12:43:19 +0000
Message-ID: <641e7721130f4ca4856a83db3911f69f@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/9] Reduce xenstore noise on backend
 changes
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAwLzldIFJlZHVjZSB4ZW5zdG9yZSBub2lzZSBvbiBiYWNr
ZW5kDQo+IGNoYW5nZXMNCj4gDQo+IEN1cnJlbnRseSwgZWFjaCBQZG8gY3JlYXRlcyBhIHNpbmds
ZSB3YXRjaCBmb3IgaXRzIGJhY2tlbmQgcGF0aCwNCj4gYnV0IHVzZXMgYSBzaW5nbGUgY29tbW9u
IHRocmVhZCBldmVudC4gVGhpcyBtZWFucyB0aGF0IGZvciBhbnkNCj4gYmFja2VuZCBwYXRoIGNo
YW5nZSwgZXZlcnkgYmFja2VuZCBhcmVhLCBmb3IgYWxsIFZCRHMsIGlzIHNjYW5uZWQNCj4gZm9y
IGNoYW5nZXMuIFRoaXMgaW5jbHVkZXMgd2hlbiB0aGUgYmFja2VuZCBzdGF0ZSB2YXJpYWJsZSBp
cyBjaGFuZ2VkDQo+IHdoaWNoIGdlbmVyYXRlcyBhIGxvdCBvZiB1bm5lY2Nlc2FyeSB4ZW5zdG9y
ZSB0cmFmZmljIChtb3N0bHkgcmVhZHMpDQo+IGR1cmluZyBWQkQgZW51bWVyYXRpb24gYW5kIGNv
bm5lY3Rpb24uDQo+IA0KPiBPd2VuIFNtaXRoICg5KToNCj4gICBNb3ZlIF9fRmRvTm90aWZ5SW5z
dGFsbGVyIHRvIERyaXZlck5vdGlmeUluc3RhbGxlcg0KPiAgIFNpbXBsaWZ5IFN0b3JQb3J0IGVu
dHJ5IHBvaW50cw0KPiAgIFJlZmFjdG9yIFBucC9Qb3dlciBoYW5kbGVycw0KPiAgIFJld29yayBl
bnVtZXJhdGlvbiBjb2RlIHRvIHdvcmsgYXQgUEFTU0lWRV9MRVZFTCBpbiB0aGUgc2NhbiB0aHJl
YWQNCj4gICBEb250IGNyZWF0ZSBQZG8gZm9yIGVtdWxhdGVkIGRldmljZXMNCj4gICBDcmVhdGUg
YSBzZXBlcmF0ZSB0aHJlYWQgcGVyIFZCRCB0byBoYW5kbGUgYmFja2VuZCBjaGFuZ2Ugd2F0Y2hl
cw0KPiAgIFdyYXAgYWxsIGRyaXZlci5jIGdsb2JhbHMgaW4gYSBzdHJ1Y3QNCj4gICBDaGFuZ2Ug
ZW51bWVyYXRpb24gZnVuY3Rpb24gdG8gdGFrZSBQQU5TSV9TVFJJTkcgYXJyYXkgdG8gc2ltcGxp
ZnkNCj4gICAgIHBhcnNpbmcgb2YgdGhlIGRhdGEgcmV0dXJuZWQgYnkgU1RPUkUoRGlyZWN0b3J5
KQ0KPiAgIFJlbW92ZSBsb2dnaW5nIGZyb20gZmFpbGVkIFBkbyBQbnAgSVJQcw0KPiANCg0KQXBw
bGllZCAod2l0aCBvbmUgcG9zdC1wYXRjaCB0byBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncyku
DQoNClRoYW5rcywNCg0KICBQYXVsDQoNCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgICB8IDMzMyAr
KysrKysrKystLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmggICB8ICAgOCArLQ0K
PiAgc3JjL3hlbnZiZC9mZG8uYyAgICAgIHwgNzk0ICsrKysrKysrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLQ0KPiAgc3JjL3hlbnZiZC9mZG8uaCAgICAgIHwg
IDI3ICstDQo+ICBzcmMveGVudmJkL2Zyb250ZW5kLmMgfCAgNTQgKysrLQ0KPiAgc3JjL3hlbnZi
ZC9mcm9udGVuZC5oIHwgICA3IC0NCj4gIHNyYy94ZW52YmQvcGRvLmMgICAgICB8ICA5MiArKy0t
LS0NCj4gIHNyYy94ZW52YmQvcGRvLmggICAgICB8ICAxMCArLQ0KPiAgOCBmaWxlcyBjaGFuZ2Vk
LCA1NTcgaW5zZXJ0aW9ucygrKSwgNzY4IGRlbGV0aW9ucygtKQ0KPiANCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon May 09 12:43:25 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 09 May 2016 12:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1azkWx-0002kY-Vp; Mon, 09 May 2016 12:43:23 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=930fe50b8=Paul.Durrant@citrix.com>)
 id 1azkWw-0002jd-2k
 for win-pv-devel@lists.xenproject.org; Mon, 09 May 2016 12:43:22 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
 16/7F-03606-9E580375; Mon, 09 May 2016 12:43:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvdFq0G
 4we3dyhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+Pl70wFr0Uqrk2fzt7AeEKki5GTQ0LAT+Lg
 9t0sIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgtjCAoES/YfaWCFqgiQOX+sDsjmAb
 COJ/28VQcIsAioSN1s+go3hFXCXWPDoHth4IQEXia/r/4PZnAKuEl9nvgarYRSQlfjSuBpqlb
 jErScQJ0gICEgs2XOeGcIWlXj5+B8rhG0gsXXpPhaQtcwCmhLrd+lDtCpKTOl+yA6xVlDi5Mw
 nUGtVJLY8PgA1hlti5ec/LBMYRWch2TYLYdIsJJNmIZm0gJFlFaN6cWpRWWqRrrleUlFmekZJ
 bmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZgjDAAwQ7Gxu9OhxglOZiURHldGfXChfiS8lMqM
 xKLM+KLSnNSiw8xynBwKEnw8gFjTkiwKDU9tSItMwcYrTBpCQ4eJRFeLZA0b3FBYm5xZjpE6h
 SjopQ4rwdIQgAkkVGaB9cGSxCXGGWlhHkZgQ4R4ilILcrNLEGVf8UozsGoJMz7oAVoCk9mXgn
 c9FdAi5mAFsux6YMsLklESEk1MM47u+vpLya79qVb85kzOWIuvGPZH9h8n82hbLF8QNYRvUnT
 exm4ch6WbG9Z3HiD1eT3uVmG5Rnl3p06Red6gkuM0oWv7uXQd321h6XPgqW0cU07d/TKiSeND
 Y06ogzvOUQ8/vHpCqvc1kVfO/a4rr5Qv1zM9DGPa2F0tIGqZF5ER+JEHeEJSizFGYmGWsxFxY
 kApk3E8QsDAAA=
X-Env-Sender: prvs=930fe50b8=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1462797800!12919183!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27688 invoked from network); 9 May 2016 12:43:20 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 9 May 2016 12:43:20 -0000
X-IronPort-AV: E=Sophos;i="5.24,600,1454976000"; d="scan'208";a="21090931"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/9] Reduce xenstore noise on backend
 changes
Thread-Index: AQHRnKIYFL6pAeIP/EWbXGbSYN1yJ5+wp1SQ
Date: Mon, 9 May 2016 12:43:19 +0000
Message-ID: <641e7721130f4ca4856a83db3911f69f@AMSPEX02CL03.citrite.net>
References: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1461334536-6316-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/9] Reduce xenstore noise on backend
 changes
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjIgQXByaWwgMjAxNiAxNToxNQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoDQo+IFN1YmplY3Q6
IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAwLzldIFJlZHVjZSB4ZW5zdG9yZSBub2lzZSBvbiBiYWNr
ZW5kDQo+IGNoYW5nZXMNCj4gDQo+IEN1cnJlbnRseSwgZWFjaCBQZG8gY3JlYXRlcyBhIHNpbmds
ZSB3YXRjaCBmb3IgaXRzIGJhY2tlbmQgcGF0aCwNCj4gYnV0IHVzZXMgYSBzaW5nbGUgY29tbW9u
IHRocmVhZCBldmVudC4gVGhpcyBtZWFucyB0aGF0IGZvciBhbnkNCj4gYmFja2VuZCBwYXRoIGNo
YW5nZSwgZXZlcnkgYmFja2VuZCBhcmVhLCBmb3IgYWxsIFZCRHMsIGlzIHNjYW5uZWQNCj4gZm9y
IGNoYW5nZXMuIFRoaXMgaW5jbHVkZXMgd2hlbiB0aGUgYmFja2VuZCBzdGF0ZSB2YXJpYWJsZSBp
cyBjaGFuZ2VkDQo+IHdoaWNoIGdlbmVyYXRlcyBhIGxvdCBvZiB1bm5lY2Nlc2FyeSB4ZW5zdG9y
ZSB0cmFmZmljIChtb3N0bHkgcmVhZHMpDQo+IGR1cmluZyBWQkQgZW51bWVyYXRpb24gYW5kIGNv
bm5lY3Rpb24uDQo+IA0KPiBPd2VuIFNtaXRoICg5KToNCj4gICBNb3ZlIF9fRmRvTm90aWZ5SW5z
dGFsbGVyIHRvIERyaXZlck5vdGlmeUluc3RhbGxlcg0KPiAgIFNpbXBsaWZ5IFN0b3JQb3J0IGVu
dHJ5IHBvaW50cw0KPiAgIFJlZmFjdG9yIFBucC9Qb3dlciBoYW5kbGVycw0KPiAgIFJld29yayBl
bnVtZXJhdGlvbiBjb2RlIHRvIHdvcmsgYXQgUEFTU0lWRV9MRVZFTCBpbiB0aGUgc2NhbiB0aHJl
YWQNCj4gICBEb250IGNyZWF0ZSBQZG8gZm9yIGVtdWxhdGVkIGRldmljZXMNCj4gICBDcmVhdGUg
YSBzZXBlcmF0ZSB0aHJlYWQgcGVyIFZCRCB0byBoYW5kbGUgYmFja2VuZCBjaGFuZ2Ugd2F0Y2hl
cw0KPiAgIFdyYXAgYWxsIGRyaXZlci5jIGdsb2JhbHMgaW4gYSBzdHJ1Y3QNCj4gICBDaGFuZ2Ug
ZW51bWVyYXRpb24gZnVuY3Rpb24gdG8gdGFrZSBQQU5TSV9TVFJJTkcgYXJyYXkgdG8gc2ltcGxp
ZnkNCj4gICAgIHBhcnNpbmcgb2YgdGhlIGRhdGEgcmV0dXJuZWQgYnkgU1RPUkUoRGlyZWN0b3J5
KQ0KPiAgIFJlbW92ZSBsb2dnaW5nIGZyb20gZmFpbGVkIFBkbyBQbnAgSVJQcw0KPiANCg0KQXBw
bGllZCAod2l0aCBvbmUgcG9zdC1wYXRjaCB0byBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncyku
DQoNClRoYW5rcywNCg0KICBQYXVsDQoNCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgICB8IDMzMyAr
KysrKysrKystLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmggICB8ICAgOCArLQ0K
PiAgc3JjL3hlbnZiZC9mZG8uYyAgICAgIHwgNzk0ICsrKysrKysrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLQ0KPiAgc3JjL3hlbnZiZC9mZG8uaCAgICAgIHwg
IDI3ICstDQo+ICBzcmMveGVudmJkL2Zyb250ZW5kLmMgfCAgNTQgKysrLQ0KPiAgc3JjL3hlbnZi
ZC9mcm9udGVuZC5oIHwgICA3IC0NCj4gIHNyYy94ZW52YmQvcGRvLmMgICAgICB8ICA5MiArKy0t
LS0NCj4gIHNyYy94ZW52YmQvcGRvLmggICAgICB8ICAxMCArLQ0KPiAgOCBmaWxlcyBjaGFuZ2Vk
LCA1NTcgaW5zZXJ0aW9ucygrKSwgNzY4IGRlbGV0aW9ucygtKQ0KPiANCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 10 08:49:49 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 10 May 2016 08:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b03MS-0007mU-5d; Tue, 10 May 2016 08:49:48 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=931483abb=Paul.Durrant@citrix.com>)
 id 1b03MQ-0007m1-Gc
 for win-pv-devel@lists.xenproject.org; Tue, 10 May 2016 08:49:46 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
 40/B4-03753-9A0A1375; Tue, 10 May 2016 08:49:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQnf5AsN
 wgzlvuCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrRv/zw+wFbZIVCw7lNDDekehi5OSQEPCT+DTx
 MxuIzSagI7H06HwmEFtEQF/i1OzzLCA2s4C3xNWTBxlBbGEBdYmH834xQtRoSLR132GBsI0kt
 j46ygpiswioSlx/dw1sJq+Au8Se5i9g9UICLhLzvzxmBrE5BVwlTs/6A2YzCshKfGlczQyxS1
 zi1hOIGyQEBCSW7DnPDGGLSrx8/I8VwjaQ2Lp0H9BeDqB6TYn1u/QhWhUlpnQ/ZIdYKyhxcuY
 TFoi1KhJbHh+AGsMtsfLzH5YJjKKzkGybhTBpFpJJs5BMWsDIsopRvTi1qCy1SNdUL6koMz2j
 JDcxM0fX0NBELze1uDgxPTUnMalYLzk/dxMjMEYYgGAH47rFzocYJTmYlER5BacYhgvxJeWnV
 GYkFmfEF5XmpBYfYpTh4FCS4N0zHygnWJSanlqRlpkDjFaYtAQHj5IIrwxImre4IDG3ODMdIn
 WKUVFKnHcfSEIAJJFRmgfXBksQlxhlpYR5GYEOEeIpSC3KzSxBlX/FKM7BqCTMex9kCk9mXgn
 c9FdAi5mAFsux6YMsLklESEk1MApNydl2kvdmgsC/szKPf4sJqm49nneuQ9OmJjVvRv+TtIui
 s21tbziIWzh7uZWvufX5rBifVejcCaXq4TU5BmEMzAejWo69tHdZ9TC14HTE96lzdZ3dTnx4y
 H07PPBWtvKCQ/dTTz0+9jSM8+WdiYFCrdc0Q5LkJZjqps5ON+1z/a7y0SLFQImlOCPRUIu5qD
 gRAEDB8qgLAwAA
X-Env-Sender: prvs=931483abb=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1462870182!40516642!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16698 invoked from network); 10 May 2016 08:49:43 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 10 May 2016 08:49:43 -0000
X-IronPort-AV: E=Sophos;i="5.24,604,1454976000"; d="scan'208";a="21181783"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2Lgg
Date: Tue, 10 May 2016 08:46:52 +0000
Message-ID: <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
In-Reply-To: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZyBhbmQgY2MtaW5nIHdpbi1wdi1kZXZlbCBhbmQgZHJvcHBpbmcgeGVuLWRldmVs
IHRvIGJjYy4uLg0KDQotLS0NCkZyb206IFhlbi1kZXZlbCBbbWFpbHRvOnhlbi1kZXZlbC1ib3Vu
Y2VzQGxpc3RzLnhlbi5vcmddIE9uIEJlaGFsZiBPZiBEb21pbmljIFJ1c3NlbGwNClNlbnQ6IDEw
IE1heSAyMDE2IDA2OjI1DQpUbzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNClN1YmplY3Q6IFtY
ZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mDQoNCkhlbGxvLA0KDQpJbiB0aGUgbGF0ZXN0IGJ1aWxk
IG9mIFhlbk5ldCBmb3IgV2luZG93cyAoQXByaWwgMXN0IDIwMTYpLCBpdCBkb2VzIG5vdCBjb25u
ZWN0IGF1dG9tYXRpY2FsbHkgdG8gdGhlIG5ldHdvcmsgY2FyZC7CoCBJIGZvdW5kIHRoYXQgdGhl
IGRldmlkZSBJRHMgYXJlIG5vdCByaWdodCBpbiB0aGUgaW5mIGZpbGUsIHRoZXkgYXJlIDoNClhF
TlZJRlxWRU5fWFAwMDAxJkRFVl9ORVQmUkVWXzA4MDAwMDA5DQpYRU5WSUZcVkVOX1hQMDAwMiZE
RVZfTkVUJlJFVl8wODAwMDAwOQ0KdGhleSBzaG91bGQgYmUgOg0KWEVOQlVTXFZFTl9YUDAwMDEm
REVWX1ZJRiZSRVZfMDgwMDAwMDkNClhFTkJVU1xWRU5fWFAwMDAyJkRFVl9WSUYmUkVWXzA4MDAw
MDA5DQotLS0NCg0KSGkgRG9taW5pYywNCg0KTm8gdGhleSBzaG91bGQgbm90LiBYRU5ORVQgZG9l
cyBub3QgYmluZCBkaXJlY3RseSB0aGUgdG8gdGhlIFBET3MgY3JlYXRlZCBieSBYRU5CVVM7IHRo
ZXJlIGlzIGEgY2xhc3MgZHJpdmVyIGNhbGxlZCBYRU5WSUYgd2hpY2ggZml0cyBpbiBiZXR3ZWVu
LiBTZWUgc2xpZGUgMTMgb2YgdGhlIHByZXNlbnRhdGlvbiBhdCBodHRwOi8vd3d3LnhlbnByb2pl
Y3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwgZm9yIGEgZGlh
Z3JhbSBvZiBob3cgdGhlIFhlbiBQcm9qZWN0IFdpbmRvd3MgUFYgZHJpdmVycyBmaXQgdG9nZXRo
ZXIuDQoNCi0tLQ0KQWxzbywgdGhpcyBkcml2ZXIsIGFuZCB0aGUgb25lIGJlZm9yZSB0aGF0IG9u
ZSwgYm90aCBkbyBub3Qgc3RhcnQgYW5kIGdpdmVzIGFuIGVycm9yIDEwLsKgIE5vdGhpbmcgaW4g
dGhlIGxvZ3Mgb2YgV2luZG93cywgc28gSSBkbyBub3Qga25vdyB3aGF0IGVsc2UgdG8gZG8uwqAg
VGhpcyB2aXJ0dWFsIGNvbXB1dGVyIGhhZCBHUExQViBwcmV2aW91c2x5Lg0KLS0tDQoNCkRpZCB5
b3UgY29tcGxldGVseSBjbGVhbiB0aGUgR1BMUFYgZHJpdmVycyBmcm9tIHRoZSBWTSBiZWZvcmUg
YXR0ZW1wdGluZyB0byB1c2UgWGVuIFByb2plY3QgZHJpdmVycz8gSWYgbm90IHRoZW4geW91IGxp
a2VseSBoYXZlIGEgd2hvbGUgbG9hZCBvZiBjb25mbGljdHMgd2hpY2ggYXJlIGdvaW5nIHRvIGJl
IGhhcmQgdG8gcGljayBhcGFydC4gSSBzdWdnZXN0IHlvdSB0cnkgdG8gZ2V0IHlvdXIgVk0gaW50
byBhIGNvbXBsZXRlbHkgY2xlYW4gc3RhdGUgZmlyc3QuLi4gaS5lLiByZW1vdmUgYW55IG9lbVgu
aW5mIHBhY2thZ2VzIHlvdSBmaW5kIGZyb20gZHJpdmVyIHN0b3JlLCByZW1vdmUgYW55IFBWIGRy
aXZlciAuc3lzIGZpbGVzIGZyb20gc3lzdGVtMzIgYW5kIGJsb3cgYXdheSBhbnkgc2VydmljZSBr
ZXlzIGZvciB0aG9zZSBkcml2ZXJzIGZyb20gdGhlIHJlZ2lzdHJ5LiBPbmNlIHlvdSBoYXZlIGRv
bmUgdGhhdCByZWJvb3RlZCB5b3UgY2FuIHRoZW4gc3RhcnQgaW5zdGFsbGluZyBYZW4gUHJvamVj
dCBQViBkcml2ZXJzIG9uZSBhdCBhIHRpbWUuDQpJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCBYRU5C
VVMgYW5kIHRoZW4gcmVib290aW5nIHRvIG1ha2Ugc3VyZSBpdCBiZWNvbWVzIGFjdGl2ZTsgdGhh
dCBtZWFucyBtYWtpbmcgc3VyZSBpdCBjcmVhdGVzIFBET3MgYW5kIHN0YXJ0cyBsb2dnaW5nIChp
dCBsb2dzIHZpYSB0aGUgWGVuIGZpeGVkIEkvTyBwb3J0IDB4MTIsIHdoaWNoIGlzIGVjaG9lZCB0
byBzdGRlcnIgYnkgYSBzdWl0YWJseSBjb25maWd1cmVkIFFFTVUpLiBPbmNlIHlvdSBoYXZlIGdv
dCB0byB0aGF0IHN0YWdlIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvIGluc3RhbGwgdGhlIHJl
c3Qgb2YgdGhlIGRyaXZlcnM6IFhFTlZJRiAobmV0d29yayBjbGFzcyksIFhFTk5FVCAobmV0d29y
ayBkZXZpY2UpLCBYRU5WQkQgKHN0b3JhZ2UgY2xhc3MpIGFuZCBYRU5JRkFDRSAodXNlciBpbnRl
cmZhY2UpLg0KDQotLS0NCkknbSBydW5uaW5nIHhlbiA0LjUuMy4NCi0tLQ0KDQpUaGF0IHNob3Vs
ZCBiZSBmaW5lLiBJIGJlbGlldmUgdGhlIGRyaXZlcnMgd2lsbCBmdW5jdGlvbiB3aXRoIGFueSBY
ZW4gZnJvbSAzLjQgb253YXJkcy4NCg0KICBQYXVsDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KRG9t
aW5pYyBSdXNzZWxsDQpNU0kgQnVyZWF1dGlxdWUgaW5jLg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 10 08:49:49 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 10 May 2016 08:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b03MS-0007mU-5d; Tue, 10 May 2016 08:49:48 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=931483abb=Paul.Durrant@citrix.com>)
 id 1b03MQ-0007m1-Gc
 for win-pv-devel@lists.xenproject.org; Tue, 10 May 2016 08:49:46 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
 40/B4-03753-9A0A1375; Tue, 10 May 2016 08:49:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQnf5AsN
 wgzlvuCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrRv/zw+wFbZIVCw7lNDDekehi5OSQEPCT+DTx
 MxuIzSagI7H06HwmEFtEQF/i1OzzLCA2s4C3xNWTBxlBbGEBdYmH834xQtRoSLR132GBsI0kt
 j46ygpiswioSlx/dw1sJq+Au8Se5i9g9UICLhLzvzxmBrE5BVwlTs/6A2YzCshKfGlczQyxS1
 zi1hOIGyQEBCSW7DnPDGGLSrx8/I8VwjaQ2Lp0H9BeDqB6TYn1u/QhWhUlpnQ/ZIdYKyhxcuY
 TFoi1KhJbHh+AGsMtsfLzH5YJjKKzkGybhTBpFpJJs5BMWsDIsopRvTi1qCy1SNdUL6koMz2j
 JDcxM0fX0NBELze1uDgxPTUnMalYLzk/dxMjMEYYgGAH47rFzocYJTmYlER5BacYhgvxJeWnV
 GYkFmfEF5XmpBYfYpTh4FCS4N0zHygnWJSanlqRlpkDjFaYtAQHj5IIrwxImre4IDG3ODMdIn
 WKUVFKnHcfSEIAJJFRmgfXBksQlxhlpYR5GYEOEeIpSC3KzSxBlX/FKM7BqCTMex9kCk9mXgn
 c9FdAi5mAFsux6YMsLklESEk1MApNydl2kvdmgsC/szKPf4sJqm49nneuQ9OmJjVvRv+TtIui
 s21tbziIWzh7uZWvufX5rBifVejcCaXq4TU5BmEMzAejWo69tHdZ9TC14HTE96lzdZ3dTnx4y
 H07PPBWtvKCQ/dTTz0+9jSM8+WdiYFCrdc0Q5LkJZjqps5ON+1z/a7y0SLFQImlOCPRUIu5qD
 gRAEDB8qgLAwAA
X-Env-Sender: prvs=931483abb=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1462870182!40516642!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16698 invoked from network); 10 May 2016 08:49:43 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 10 May 2016 08:49:43 -0000
X-IronPort-AV: E=Sophos;i="5.24,604,1454976000"; d="scan'208";a="21181783"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2Lgg
Date: Tue, 10 May 2016 08:46:52 +0000
Message-ID: <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
In-Reply-To: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZyBhbmQgY2MtaW5nIHdpbi1wdi1kZXZlbCBhbmQgZHJvcHBpbmcgeGVuLWRldmVs
IHRvIGJjYy4uLg0KDQotLS0NCkZyb206IFhlbi1kZXZlbCBbbWFpbHRvOnhlbi1kZXZlbC1ib3Vu
Y2VzQGxpc3RzLnhlbi5vcmddIE9uIEJlaGFsZiBPZiBEb21pbmljIFJ1c3NlbGwNClNlbnQ6IDEw
IE1heSAyMDE2IDA2OjI1DQpUbzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNClN1YmplY3Q6IFtY
ZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mDQoNCkhlbGxvLA0KDQpJbiB0aGUgbGF0ZXN0IGJ1aWxk
IG9mIFhlbk5ldCBmb3IgV2luZG93cyAoQXByaWwgMXN0IDIwMTYpLCBpdCBkb2VzIG5vdCBjb25u
ZWN0IGF1dG9tYXRpY2FsbHkgdG8gdGhlIG5ldHdvcmsgY2FyZC7CoCBJIGZvdW5kIHRoYXQgdGhl
IGRldmlkZSBJRHMgYXJlIG5vdCByaWdodCBpbiB0aGUgaW5mIGZpbGUsIHRoZXkgYXJlIDoNClhF
TlZJRlxWRU5fWFAwMDAxJkRFVl9ORVQmUkVWXzA4MDAwMDA5DQpYRU5WSUZcVkVOX1hQMDAwMiZE
RVZfTkVUJlJFVl8wODAwMDAwOQ0KdGhleSBzaG91bGQgYmUgOg0KWEVOQlVTXFZFTl9YUDAwMDEm
REVWX1ZJRiZSRVZfMDgwMDAwMDkNClhFTkJVU1xWRU5fWFAwMDAyJkRFVl9WSUYmUkVWXzA4MDAw
MDA5DQotLS0NCg0KSGkgRG9taW5pYywNCg0KTm8gdGhleSBzaG91bGQgbm90LiBYRU5ORVQgZG9l
cyBub3QgYmluZCBkaXJlY3RseSB0aGUgdG8gdGhlIFBET3MgY3JlYXRlZCBieSBYRU5CVVM7IHRo
ZXJlIGlzIGEgY2xhc3MgZHJpdmVyIGNhbGxlZCBYRU5WSUYgd2hpY2ggZml0cyBpbiBiZXR3ZWVu
LiBTZWUgc2xpZGUgMTMgb2YgdGhlIHByZXNlbnRhdGlvbiBhdCBodHRwOi8vd3d3LnhlbnByb2pl
Y3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwgZm9yIGEgZGlh
Z3JhbSBvZiBob3cgdGhlIFhlbiBQcm9qZWN0IFdpbmRvd3MgUFYgZHJpdmVycyBmaXQgdG9nZXRo
ZXIuDQoNCi0tLQ0KQWxzbywgdGhpcyBkcml2ZXIsIGFuZCB0aGUgb25lIGJlZm9yZSB0aGF0IG9u
ZSwgYm90aCBkbyBub3Qgc3RhcnQgYW5kIGdpdmVzIGFuIGVycm9yIDEwLsKgIE5vdGhpbmcgaW4g
dGhlIGxvZ3Mgb2YgV2luZG93cywgc28gSSBkbyBub3Qga25vdyB3aGF0IGVsc2UgdG8gZG8uwqAg
VGhpcyB2aXJ0dWFsIGNvbXB1dGVyIGhhZCBHUExQViBwcmV2aW91c2x5Lg0KLS0tDQoNCkRpZCB5
b3UgY29tcGxldGVseSBjbGVhbiB0aGUgR1BMUFYgZHJpdmVycyBmcm9tIHRoZSBWTSBiZWZvcmUg
YXR0ZW1wdGluZyB0byB1c2UgWGVuIFByb2plY3QgZHJpdmVycz8gSWYgbm90IHRoZW4geW91IGxp
a2VseSBoYXZlIGEgd2hvbGUgbG9hZCBvZiBjb25mbGljdHMgd2hpY2ggYXJlIGdvaW5nIHRvIGJl
IGhhcmQgdG8gcGljayBhcGFydC4gSSBzdWdnZXN0IHlvdSB0cnkgdG8gZ2V0IHlvdXIgVk0gaW50
byBhIGNvbXBsZXRlbHkgY2xlYW4gc3RhdGUgZmlyc3QuLi4gaS5lLiByZW1vdmUgYW55IG9lbVgu
aW5mIHBhY2thZ2VzIHlvdSBmaW5kIGZyb20gZHJpdmVyIHN0b3JlLCByZW1vdmUgYW55IFBWIGRy
aXZlciAuc3lzIGZpbGVzIGZyb20gc3lzdGVtMzIgYW5kIGJsb3cgYXdheSBhbnkgc2VydmljZSBr
ZXlzIGZvciB0aG9zZSBkcml2ZXJzIGZyb20gdGhlIHJlZ2lzdHJ5LiBPbmNlIHlvdSBoYXZlIGRv
bmUgdGhhdCByZWJvb3RlZCB5b3UgY2FuIHRoZW4gc3RhcnQgaW5zdGFsbGluZyBYZW4gUHJvamVj
dCBQViBkcml2ZXJzIG9uZSBhdCBhIHRpbWUuDQpJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCBYRU5C
VVMgYW5kIHRoZW4gcmVib290aW5nIHRvIG1ha2Ugc3VyZSBpdCBiZWNvbWVzIGFjdGl2ZTsgdGhh
dCBtZWFucyBtYWtpbmcgc3VyZSBpdCBjcmVhdGVzIFBET3MgYW5kIHN0YXJ0cyBsb2dnaW5nIChp
dCBsb2dzIHZpYSB0aGUgWGVuIGZpeGVkIEkvTyBwb3J0IDB4MTIsIHdoaWNoIGlzIGVjaG9lZCB0
byBzdGRlcnIgYnkgYSBzdWl0YWJseSBjb25maWd1cmVkIFFFTVUpLiBPbmNlIHlvdSBoYXZlIGdv
dCB0byB0aGF0IHN0YWdlIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvIGluc3RhbGwgdGhlIHJl
c3Qgb2YgdGhlIGRyaXZlcnM6IFhFTlZJRiAobmV0d29yayBjbGFzcyksIFhFTk5FVCAobmV0d29y
ayBkZXZpY2UpLCBYRU5WQkQgKHN0b3JhZ2UgY2xhc3MpIGFuZCBYRU5JRkFDRSAodXNlciBpbnRl
cmZhY2UpLg0KDQotLS0NCkknbSBydW5uaW5nIHhlbiA0LjUuMy4NCi0tLQ0KDQpUaGF0IHNob3Vs
ZCBiZSBmaW5lLiBJIGJlbGlldmUgdGhlIGRyaXZlcnMgd2lsbCBmdW5jdGlvbiB3aXRoIGFueSBY
ZW4gZnJvbSAzLjQgb253YXJkcy4NCg0KICBQYXVsDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KRG9t
aW5pYyBSdXNzZWxsDQpNU0kgQnVyZWF1dGlxdWUgaW5jLg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 10 19:35:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 10 May 2016 19:35:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0DRM-0001Wn-Nh; Tue, 10 May 2016 19:35:32 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0DRM-0001Wh-BA
 for win-pv-devel@lists.xenproject.org; Tue, 10 May 2016 19:35:32 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 F4/BD-18833-30832375; Tue, 10 May 2016 19:35:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIIsWRWlGSWpSXmKPExsUioVq3SpfJwij
 cYO9FTYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasWnlLLaCC/YV7X/VGhjXm3QxcnIICexnlFjZ
 WQ9iCwuYSWz68pYRxBYR0JKYsGUrUxcjF1BNI6PEpEs72EASzALeEufmTGLuYuTgYBMwlJhwT
 w8kzC+gJPHm00WwEl4BF4mNdzrA5rAIqEosu3OcCcQWFYiS2L5gCStEjaDEyZlPWEBsTgEPiU
 snWqDGh0p0vDjHOoGRdxaSsllIUhC2mcS8zQ+ZIWx5ieats4FsDiBbTWJZqxKy8AJGtlWM6sW
 pRWWpRbqGeklFmekZJbmJmTm6hgZmermpxcWJ6ak5iUnFesn5uZsYgUHJAAQ7GHc+dzrEKMnB
 pCTK+83AKFyILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO9TM6CcYFFqempFWmYOMD5g0hIcPEoiv
 NrmQGne4oLE3OLMdIjUKUZFKXHe3yB9AiCJjNI8uDZYTF5ilJUS5mUEOkSIpyC1KDezBFX+Fa
 M4B6OSMK8SyHiezLwSuOmvgBYzAS2WY9MHWVySiJCSamCM5nlRurPtif/UPud2lg+K3N/TP+x
 dkDD9nNP5lhmBT9b6f0sM4BF59OCHaINrzMnc8vQm22jJdx7sOpE1v2ZJ/r/U4n9pxs1b88PP
 rZ5dKWHjqP/3zqG+rheNlVyS/uz6Mar6zXHJ25gvfnczWfipQobfcXLt3Im8c8MNBd61nWrz/
 q580U2JpTgj0VCLuag4EQB+hV9PxAIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-16.tower-21.messagelabs.com!1462908930!9133134!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_20_30,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13229 invoked from network); 10 May 2016 19:35:30 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-16.tower-21.messagelabs.com with SMTP; 10 May 2016 19:35:30 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id 68FC880569;
 Tue, 10 May 2016 15:35:25 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
Date: Tue, 10 May 2016 15:35:28 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8860063282220473902=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--===============8860063282220473902==
Content-Type: multipart/alternative;
 boundary="------------A3E1D3E012CDBCEA171C08F2"

This is a multi-part message in MIME format.
--------------A3E1D3E012CDBCEA171C08F2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello,

For the device IDs, it is only by modifying the IDs in the inf file that 
Windows was assigning the xennet drivers to the network card 
automatically, otherwise they have to be assigned manually.

I did clean the GPLPV drivers, but the xenpci is hard to remove, because 
Windows treats it as a critical, boot needed, driver, so not all the 
keys are accessible to be deleted in the registry.

The new xenbus driver is active, and xenpci does not appear in the files 
list of the loaded files in the driver of the peripherals (at first, I 
was not cleaning properly xenpci, and it was appearing as a loaded file 
for the xenbus and xennet drivers).  To be sure, I deleted the 
xenpci.sys and rebooted, it rebooted properly, otherwise it would give a 
blue screen with error 7B.

On the virtual computer, every new drivers are loaded, not reporting 
errors except for xennet, that returns an error 10.  I discovered in 
Windows logs a generic error (but not tagged as an error) which mentions 
PnpDeviceProblemCode, which by googling did not reveal much.

Best regards,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-10 à 04:46, Paul Durrant a écrit :
> De-htmling and cc-ing win-pv-devel and dropping xen-devel to bcc...
>
> ---
> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of Dominic Russell
> Sent: 10 May 2016 06:25
> To: xen-devel@lists.xen.org
> Subject: [Xen-devel] PVL XenNet inf
>
> Hello,
>
> In the latest build of XenNet for Windows (April 1st 2016), it does not connect automatically to the network card.  I found that the devide IDs are not right in the inf file, they are :
> XENVIF\VEN_XP0001&DEV_NET&REV_08000009
> XENVIF\VEN_XP0002&DEV_NET&REV_08000009
> they should be :
> XENBUS\VEN_XP0001&DEV_VIF&REV_08000009
> XENBUS\VEN_XP0002&DEV_VIF&REV_08000009
> ---
>
> Hi Dominic,
>
> No they should not. XENNET does not bind directly the to the PDOs created by XENBUS; there is a class driver called XENVIF which fits in between. See slide 13 of the presentation at http://www.xenproject.org/developers/teams/windows-pv-drivers.html for a diagram of how the Xen Project Windows PV drivers fit together.
>
> ---
> Also, this driver, and the one before that one, both do not start and gives an error 10.  Nothing in the logs of Windows, so I do not know what else to do.  This virtual computer had GPLPV previously.
> ---
>
> Did you completely clean the GPLPV drivers from the VM before attempting to use Xen Project drivers? If not then you likely have a whole load of conflicts which are going to be hard to pick apart. I suggest you try to get your VM into a completely clean state first... i.e. remove any oemX.inf packages you find from driver store, remove any PV driver .sys files from system32 and blow away any service keys for those drivers from the registry. Once you have done that rebooted you can then start installing Xen Project PV drivers one at a time.
> I suggest starting with XENBUS and then rebooting to make sure it becomes active; that means making sure it creates PDOs and starts logging (it logs via the Xen fixed I/O port 0x12, which is echoed to stderr by a suitably configured QEMU). Once you have got to that stage then you should be able to install the rest of the drivers: XENVIF (network class), XENNET (network device), XENVBD (storage class) and XENIFACE (user interface).
>
> ---
> I'm running xen 4.5.3.
> ---
>
> That should be fine. I believe the drivers will function with any Xen from 3.4 onwards.
>
>    Paul
>


--------------A3E1D3E012CDBCEA171C08F2
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hello,</p>
    <p>For the device IDs, it is only by modifying the IDs in the inf
      file that Windows was assigning the xennet drivers to the network
      card automatically, otherwise they have to be assigned manually.<br>
    </p>
    <p>I did clean the GPLPV drivers, but the xenpci is hard to remove,
      because Windows treats it as a critical, boot needed, driver, so
      not all the keys are accessible to be deleted in the registry.</p>
    <p>The new xenbus driver is active, and xenpci does not appear in
      the files list of the loaded files in the driver of the
      peripherals (at first, I was not cleaning properly xenpci, and it
      was appearing as a loaded file for the xenbus and xennet
      drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
      rebooted properly, otherwise it would give a blue screen with
      error 7B.<br>
    </p>
    <p>On the virtual computer, every new drivers are loaded, not
      reporting errors except for xennet, that returns an error 10.  I
      discovered in Windows logs a generic error (but not tagged as an
      error) which mentions PnpDeviceProblemCode, which by googling did
      not reveal much.<br>
    </p>
    <pre class="moz-signature" cols="72">Best regards,
Dominic Russell
MSI Bureautique inc.
</pre>
    <div class="moz-cite-prefix">Le 2016-05-10 à 04:46, Paul Durrant a
      écrit :<br>
    </div>
    <blockquote
      cite="mid:7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net"
      type="cite">
      <pre wrap="">De-htmling and cc-ing win-pv-devel and dropping xen-devel to bcc...

---
From: Xen-devel [<a class="moz-txt-link-freetext" href="mailto:xen-devel-bounces@lists.xen.org">mailto:xen-devel-bounces@lists.xen.org</a>] On Behalf Of Dominic Russell
Sent: 10 May 2016 06:25
To: <a class="moz-txt-link-abbreviated" href="mailto:xen-devel@lists.xen.org">xen-devel@lists.xen.org</a>
Subject: [Xen-devel] PVL XenNet inf

Hello,

In the latest build of XenNet for Windows (April 1st 2016), it does not connect automatically to the network card.  I found that the devide IDs are not right in the inf file, they are :
XENVIF\VEN_XP0001&amp;DEV_NET&amp;REV_08000009
XENVIF\VEN_XP0002&amp;DEV_NET&amp;REV_08000009
they should be :
XENBUS\VEN_XP0001&amp;DEV_VIF&amp;REV_08000009
XENBUS\VEN_XP0002&amp;DEV_VIF&amp;REV_08000009
---

Hi Dominic,

No they should not. XENNET does not bind directly the to the PDOs created by XENBUS; there is a class driver called XENVIF which fits in between. See slide 13 of the presentation at <a class="moz-txt-link-freetext" href="http://www.xenproject.org/developers/teams/windows-pv-drivers.html">http://www.xenproject.org/developers/teams/windows-pv-drivers.html</a> for a diagram of how the Xen Project Windows PV drivers fit together.

---
Also, this driver, and the one before that one, both do not start and gives an error 10.  Nothing in the logs of Windows, so I do not know what else to do.  This virtual computer had GPLPV previously.
---

Did you completely clean the GPLPV drivers from the VM before attempting to use Xen Project drivers? If not then you likely have a whole load of conflicts which are going to be hard to pick apart. I suggest you try to get your VM into a completely clean state first... i.e. remove any oemX.inf packages you find from driver store, remove any PV driver .sys files from system32 and blow away any service keys for those drivers from the registry. Once you have done that rebooted you can then start installing Xen Project PV drivers one at a time.
I suggest starting with XENBUS and then rebooting to make sure it becomes active; that means making sure it creates PDOs and starts logging (it logs via the Xen fixed I/O port 0x12, which is echoed to stderr by a suitably configured QEMU). Once you have got to that stage then you should be able to install the rest of the drivers: XENVIF (network class), XENNET (network device), XENVBD (storage class) and XENIFACE (user interface).

---
I'm running xen 4.5.3.
---

That should be fine. I believe the drivers will function with any Xen from 3.4 onwards.

  Paul

</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------A3E1D3E012CDBCEA171C08F2--


--===============8860063282220473902==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============8860063282220473902==--


From win-pv-devel-bounces@lists.xenproject.org Tue May 10 19:35:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 10 May 2016 19:35:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0DRM-0001Wn-Nh; Tue, 10 May 2016 19:35:32 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0DRM-0001Wh-BA
 for win-pv-devel@lists.xenproject.org; Tue, 10 May 2016 19:35:32 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 F4/BD-18833-30832375; Tue, 10 May 2016 19:35:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIIsWRWlGSWpSXmKPExsUioVq3SpfJwij
 cYO9FTYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasWnlLLaCC/YV7X/VGhjXm3QxcnIICexnlFjZ
 WQ9iCwuYSWz68pYRxBYR0JKYsGUrUxcjF1BNI6PEpEs72EASzALeEufmTGLuYuTgYBMwlJhwT
 w8kzC+gJPHm00WwEl4BF4mNdzrA5rAIqEosu3OcCcQWFYiS2L5gCStEjaDEyZlPWEBsTgEPiU
 snWqDGh0p0vDjHOoGRdxaSsllIUhC2mcS8zQ+ZIWx5ieats4FsDiBbTWJZqxKy8AJGtlWM6sW
 pRWWpRbqGeklFmekZJbmJmTm6hgZmermpxcWJ6ak5iUnFesn5uZsYgUHJAAQ7GHc+dzrEKMnB
 pCTK+83AKFyILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO9TM6CcYFFqempFWmYOMD5g0hIcPEoiv
 NrmQGne4oLE3OLMdIjUKUZFKXHe3yB9AiCJjNI8uDZYTF5ilJUS5mUEOkSIpyC1KDezBFX+Fa
 M4B6OSMK8SyHiezLwSuOmvgBYzAS2WY9MHWVySiJCSamCM5nlRurPtif/UPud2lg+K3N/TP+x
 dkDD9nNP5lhmBT9b6f0sM4BF59OCHaINrzMnc8vQm22jJdx7sOpE1v2ZJ/r/U4n9pxs1b88PP
 rZ5dKWHjqP/3zqG+rheNlVyS/uz6Mar6zXHJ25gvfnczWfipQobfcXLt3Im8c8MNBd61nWrz/
 q580U2JpTgj0VCLuag4EQB+hV9PxAIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-16.tower-21.messagelabs.com!1462908930!9133134!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=1.4 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_20_30,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13229 invoked from network); 10 May 2016 19:35:30 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-16.tower-21.messagelabs.com with SMTP; 10 May 2016 19:35:30 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id 68FC880569;
 Tue, 10 May 2016 15:35:25 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
Date: Tue, 10 May 2016 15:35:28 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8860063282220473902=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--===============8860063282220473902==
Content-Type: multipart/alternative;
 boundary="------------A3E1D3E012CDBCEA171C08F2"

This is a multi-part message in MIME format.
--------------A3E1D3E012CDBCEA171C08F2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello,

For the device IDs, it is only by modifying the IDs in the inf file that 
Windows was assigning the xennet drivers to the network card 
automatically, otherwise they have to be assigned manually.

I did clean the GPLPV drivers, but the xenpci is hard to remove, because 
Windows treats it as a critical, boot needed, driver, so not all the 
keys are accessible to be deleted in the registry.

The new xenbus driver is active, and xenpci does not appear in the files 
list of the loaded files in the driver of the peripherals (at first, I 
was not cleaning properly xenpci, and it was appearing as a loaded file 
for the xenbus and xennet drivers).  To be sure, I deleted the 
xenpci.sys and rebooted, it rebooted properly, otherwise it would give a 
blue screen with error 7B.

On the virtual computer, every new drivers are loaded, not reporting 
errors except for xennet, that returns an error 10.  I discovered in 
Windows logs a generic error (but not tagged as an error) which mentions 
PnpDeviceProblemCode, which by googling did not reveal much.

Best regards,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-10 à 04:46, Paul Durrant a écrit :
> De-htmling and cc-ing win-pv-devel and dropping xen-devel to bcc...
>
> ---
> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of Dominic Russell
> Sent: 10 May 2016 06:25
> To: xen-devel@lists.xen.org
> Subject: [Xen-devel] PVL XenNet inf
>
> Hello,
>
> In the latest build of XenNet for Windows (April 1st 2016), it does not connect automatically to the network card.  I found that the devide IDs are not right in the inf file, they are :
> XENVIF\VEN_XP0001&DEV_NET&REV_08000009
> XENVIF\VEN_XP0002&DEV_NET&REV_08000009
> they should be :
> XENBUS\VEN_XP0001&DEV_VIF&REV_08000009
> XENBUS\VEN_XP0002&DEV_VIF&REV_08000009
> ---
>
> Hi Dominic,
>
> No they should not. XENNET does not bind directly the to the PDOs created by XENBUS; there is a class driver called XENVIF which fits in between. See slide 13 of the presentation at http://www.xenproject.org/developers/teams/windows-pv-drivers.html for a diagram of how the Xen Project Windows PV drivers fit together.
>
> ---
> Also, this driver, and the one before that one, both do not start and gives an error 10.  Nothing in the logs of Windows, so I do not know what else to do.  This virtual computer had GPLPV previously.
> ---
>
> Did you completely clean the GPLPV drivers from the VM before attempting to use Xen Project drivers? If not then you likely have a whole load of conflicts which are going to be hard to pick apart. I suggest you try to get your VM into a completely clean state first... i.e. remove any oemX.inf packages you find from driver store, remove any PV driver .sys files from system32 and blow away any service keys for those drivers from the registry. Once you have done that rebooted you can then start installing Xen Project PV drivers one at a time.
> I suggest starting with XENBUS and then rebooting to make sure it becomes active; that means making sure it creates PDOs and starts logging (it logs via the Xen fixed I/O port 0x12, which is echoed to stderr by a suitably configured QEMU). Once you have got to that stage then you should be able to install the rest of the drivers: XENVIF (network class), XENNET (network device), XENVBD (storage class) and XENIFACE (user interface).
>
> ---
> I'm running xen 4.5.3.
> ---
>
> That should be fine. I believe the drivers will function with any Xen from 3.4 onwards.
>
>    Paul
>


--------------A3E1D3E012CDBCEA171C08F2
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hello,</p>
    <p>For the device IDs, it is only by modifying the IDs in the inf
      file that Windows was assigning the xennet drivers to the network
      card automatically, otherwise they have to be assigned manually.<br>
    </p>
    <p>I did clean the GPLPV drivers, but the xenpci is hard to remove,
      because Windows treats it as a critical, boot needed, driver, so
      not all the keys are accessible to be deleted in the registry.</p>
    <p>The new xenbus driver is active, and xenpci does not appear in
      the files list of the loaded files in the driver of the
      peripherals (at first, I was not cleaning properly xenpci, and it
      was appearing as a loaded file for the xenbus and xennet
      drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
      rebooted properly, otherwise it would give a blue screen with
      error 7B.<br>
    </p>
    <p>On the virtual computer, every new drivers are loaded, not
      reporting errors except for xennet, that returns an error 10.  I
      discovered in Windows logs a generic error (but not tagged as an
      error) which mentions PnpDeviceProblemCode, which by googling did
      not reveal much.<br>
    </p>
    <pre class="moz-signature" cols="72">Best regards,
Dominic Russell
MSI Bureautique inc.
</pre>
    <div class="moz-cite-prefix">Le 2016-05-10 à 04:46, Paul Durrant a
      écrit :<br>
    </div>
    <blockquote
      cite="mid:7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net"
      type="cite">
      <pre wrap="">De-htmling and cc-ing win-pv-devel and dropping xen-devel to bcc...

---
From: Xen-devel [<a class="moz-txt-link-freetext" href="mailto:xen-devel-bounces@lists.xen.org">mailto:xen-devel-bounces@lists.xen.org</a>] On Behalf Of Dominic Russell
Sent: 10 May 2016 06:25
To: <a class="moz-txt-link-abbreviated" href="mailto:xen-devel@lists.xen.org">xen-devel@lists.xen.org</a>
Subject: [Xen-devel] PVL XenNet inf

Hello,

In the latest build of XenNet for Windows (April 1st 2016), it does not connect automatically to the network card.  I found that the devide IDs are not right in the inf file, they are :
XENVIF\VEN_XP0001&amp;DEV_NET&amp;REV_08000009
XENVIF\VEN_XP0002&amp;DEV_NET&amp;REV_08000009
they should be :
XENBUS\VEN_XP0001&amp;DEV_VIF&amp;REV_08000009
XENBUS\VEN_XP0002&amp;DEV_VIF&amp;REV_08000009
---

Hi Dominic,

No they should not. XENNET does not bind directly the to the PDOs created by XENBUS; there is a class driver called XENVIF which fits in between. See slide 13 of the presentation at <a class="moz-txt-link-freetext" href="http://www.xenproject.org/developers/teams/windows-pv-drivers.html">http://www.xenproject.org/developers/teams/windows-pv-drivers.html</a> for a diagram of how the Xen Project Windows PV drivers fit together.

---
Also, this driver, and the one before that one, both do not start and gives an error 10.  Nothing in the logs of Windows, so I do not know what else to do.  This virtual computer had GPLPV previously.
---

Did you completely clean the GPLPV drivers from the VM before attempting to use Xen Project drivers? If not then you likely have a whole load of conflicts which are going to be hard to pick apart. I suggest you try to get your VM into a completely clean state first... i.e. remove any oemX.inf packages you find from driver store, remove any PV driver .sys files from system32 and blow away any service keys for those drivers from the registry. Once you have done that rebooted you can then start installing Xen Project PV drivers one at a time.
I suggest starting with XENBUS and then rebooting to make sure it becomes active; that means making sure it creates PDOs and starts logging (it logs via the Xen fixed I/O port 0x12, which is echoed to stderr by a suitably configured QEMU). Once you have got to that stage then you should be able to install the rest of the drivers: XENVIF (network class), XENNET (network device), XENVBD (storage class) and XENIFACE (user interface).

---
I'm running xen 4.5.3.
---

That should be fine. I believe the drivers will function with any Xen from 3.4 onwards.

  Paul

</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------A3E1D3E012CDBCEA171C08F2--


--===============8860063282220473902==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============8860063282220473902==--


From win-pv-devel-bounces@lists.xenproject.org Wed May 11 10:01:03 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 10:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0Qww-0006YU-9b; Wed, 11 May 2016 10:01:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93251a52a=Paul.Durrant@citrix.com>)
 id 1b0Qwv-0006YL-PJ
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 10:01:01 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
 AD/73-03002-CD203375; Wed, 11 May 2016 10:01:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvcOk3G
 4waL3rBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148rKU6wFe4UrLjxdz9TAOEe4i5GTQ0LAT2LG
 8lWsIDabgI7E0qPzmUBsEQF9iVOzz7OA2MwC3hJXTx5kBLGFBcwkps24xAxRYy6x6NV/qHoni
 Uetq8HiLAKqEjsvzAWKc3DwCrhLvDsS1cXIxSEksJtR4sSMdnaQGk4BV4mpD5aD2YwCshJfGi
 F6mQXEJW49gbhBQkBAYsme88wQtqjEy8f/WCFsA4mtS/exgMxnFtCUWL9LH6JVUWJK90Owkbw
 CghInZz4BO19IQEViy+MDUGO4JVZ+/sMygVF0FpJtsxAmzUIyaRaSSQsYWVYxqhenFpWlFula
 6CUVZaZnlOQmZuboGhoY6+WmFhcnpqfmJCYV6yXn525iBEYJAxDsYLzQ7nyIUZKDSUmUt/+lU
 bgQX1J+SmVGYnFGfFFpTmrxIUYZDg4lCd6pjMbhQoJFqempFWmZOcB4hUlLcPAoifDuBEnzFh
 ck5hZnpkOkTjEqSonz7gZJCIAkMkrz4NpgKeISo6yUMC8j0CFCPAWpRbmZJajyrxjFORiVhHn
 vgkzhycwrgZv+CmgxE9Di6utGIItLEhFSUg2Mvm0rp3Yv7Jql3yR/duXq2WKXV4q9W6f44LTx
 MuUFGXv3Jk0Wy7bskNl2+OVdDquvJrsNciXuzjVvE3Vh7ctR/7Tfr7M9RnYdu0+phpim6dVtl
 i1BVwssC12svDs9j7duev/ocaJrQONSr6MT9OawpxqWnf9kXxB/t1z8oH/PGruqo2plJduUWI
 ozEg21mIuKEwFZr/GJDAMAAA==
X-Env-Sender: prvs=93251a52a=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1462960859!32021498!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7835 invoked from network); 11 May 2016 10:00:59 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 11 May 2016 10:00:59 -0000
X-IronPort-AV: E=Sophos;i="5.24,608,1454976000"; d="scan'208";a="21350039"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [win-pv-devel] [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2LgggACW7QCAAQx2cA==
Date: Wed, 11 May 2016 09:41:12 +0000
Message-ID: <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
In-Reply-To: <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZy4uLiBQbGVhc2Ugc2VuZCBlbWFpbHMgaW4gcGxhaW4gdGV4dC4NCg0KLS0tDQpG
cm9tOiBEb21pbmljIFJ1c3NlbGwgW21haWx0bzpkb21pbmljQG1zaWJ1cmVhdXRpcXVlLmNhXSAN
ClNlbnQ6IDEwIE1heSAyMDE2IDIwOjM1DQpUbzogUGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hl
bi1kZXZlbF0gUFZMIFhlbk5ldCBpbmYNCg0KSGVsbG8sDQpGb3IgdGhlIGRldmljZSBJRHMsIGl0
IGlzIG9ubHkgYnkgbW9kaWZ5aW5nIHRoZSBJRHMgaW4gdGhlIGluZiBmaWxlIHRoYXQgV2luZG93
cyB3YXMgYXNzaWduaW5nIHRoZSB4ZW5uZXQgZHJpdmVycyB0byB0aGUgbmV0d29yayBjYXJkIGF1
dG9tYXRpY2FsbHksIG90aGVyd2lzZSB0aGV5IGhhdmUgdG8gYmUgYXNzaWduZWQgbWFudWFsbHku
DQotLS0NCg0KQXMgSSB0cmllZCB0byBleHBsYWluLiBUaGUgUERPIHRvIHdoaWNoIHlvdSBhcmUg
dHJ5aW5nIHRvIGF0dGFjaCBYRU5ORVQgaXMgdGhlIHdyb25nIG9uZS4gQnkgbW9kaWZ5aW5nIHRo
ZSBJRHMgaW4gdGhlIElORiBmaWxlIHlvdSBtYXkgYmUgYWJsZSB0byBnZXQgdGhlIGRyaXZlciB0
byBiaW5kLCBidXQgdGhlcmUncyBubyB3YXkgaXQncyBnb2luZyB0byBmdW5jdGlvbi4gVGhlIFBE
TyB5b3UgYXJlIGxvb2tpbmcgYXQgKFhFTkJVU1xWRU5fWFAwMDAxJkRFVl9WSUYmUkVWXzA4MDAw
MDA5KSBpcyB0aGUgb25lIHRoYXQgdGhlIFhFTlZJRiBkcml2ZXIgc2hvdWxkIGJpbmQgdG8uIEl0
IHdpbGwgdGhlbiBjcmVhdGUgUERPcyBvZiB0aGUgZm9ybSBYRU5WSUZcVkVOX1hQMDAwMSZERVZf
TkVUJlJFVl8wODAwMDAwOSB3aGljbiBYRU5ORVQgd2lsbCB0aGVuIGJpbmQgdG8uDQoNCi0tLS0N
CkkgZGlkIGNsZWFuIHRoZSBHUExQViBkcml2ZXJzLCBidXQgdGhlIHhlbnBjaSBpcyBoYXJkIHRv
IHJlbW92ZSwgYmVjYXVzZSBXaW5kb3dzIHRyZWF0cyBpdCBhcyBhIGNyaXRpY2FsLCBib290IG5l
ZWRlZCwgZHJpdmVyLCBzbyBub3QgYWxsIHRoZSBrZXlzIGFyZSBhY2Nlc3NpYmxlIHRvIGJlIGRl
bGV0ZWQgaW4gdGhlIHJlZ2lzdHJ5Lg0KVGhlIG5ldyB4ZW5idXMgZHJpdmVyIGlzIGFjdGl2ZSwg
YW5kIHhlbnBjaSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGZpbGVzIGxpc3Qgb2YgdGhlIGxvYWRl
ZCBmaWxlcyBpbiB0aGUgZHJpdmVyIG9mIHRoZSBwZXJpcGhlcmFscyAoYXQgZmlyc3QsIEkgd2Fz
IG5vdCBjbGVhbmluZyBwcm9wZXJseSB4ZW5wY2ksIGFuZCBpdCB3YXMgYXBwZWFyaW5nIGFzIGEg
bG9hZGVkIGZpbGUgZm9yIHRoZSB4ZW5idXMgYW5kIHhlbm5ldCBkcml2ZXJzKS7CoCBUbyBiZSBz
dXJlLCBJIGRlbGV0ZWQgdGhlIHhlbnBjaS5zeXMgYW5kIHJlYm9vdGVkLCBpdCByZWJvb3RlZCBw
cm9wZXJseSwgb3RoZXJ3aXNlIGl0IHdvdWxkIGdpdmUgYSBibHVlIHNjcmVlbiB3aXRoIGVycm9y
IDdCLg0KT24gdGhlIHZpcnR1YWwgY29tcHV0ZXIsIGV2ZXJ5IG5ldyBkcml2ZXJzIGFyZSBsb2Fk
ZWQsIG5vdCByZXBvcnRpbmcgZXJyb3JzIGV4Y2VwdCBmb3IgeGVubmV0LCB0aGF0IHJldHVybnMg
YW4gZXJyb3IgMTAuwqAgSSBkaXNjb3ZlcmVkIGluIFdpbmRvd3MgbG9ncyBhIGdlbmVyaWMgZXJy
b3IgKGJ1dCBub3QgdGFnZ2VkIGFzIGFuIGVycm9yKSB3aGljaCBtZW50aW9ucyBQbnBEZXZpY2VQ
cm9ibGVtQ29kZSwgd2hpY2ggYnkgZ29vZ2xpbmcgZGlkIG5vdCByZXZlYWwgbXVjaC4NCi0tLS0N
Cg0KSXMgWEVOVklGIGxvYWRlZCBhbmQgZnVuY3Rpb25pbmc/IERvIHlvdSBoYXZlIGEgbG9nIGZy
b20gUUVNVT8NCg0KICBQYXVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 10:01:03 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 10:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0Qww-0006YU-9b; Wed, 11 May 2016 10:01:02 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93251a52a=Paul.Durrant@citrix.com>)
 id 1b0Qwv-0006YL-PJ
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 10:01:01 +0000
Received: from [85.158.137.68] by server-10.bemta-3.messagelabs.com id
 AD/73-03002-CD203375; Wed, 11 May 2016 10:01:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvcOk3G
 4waL3rBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148rKU6wFe4UrLjxdz9TAOEe4i5GTQ0LAT2LG
 8lWsIDabgI7E0qPzmUBsEQF9iVOzz7OA2MwC3hJXTx5kBLGFBcwkps24xAxRYy6x6NV/qHoni
 Uetq8HiLAKqEjsvzAWKc3DwCrhLvDsS1cXIxSEksJtR4sSMdnaQGk4BV4mpD5aD2YwCshJfGi
 F6mQXEJW49gbhBQkBAYsme88wQtqjEy8f/WCFsA4mtS/exgMxnFtCUWL9LH6JVUWJK90Owkbw
 CghInZz4BO19IQEViy+MDUGO4JVZ+/sMygVF0FpJtsxAmzUIyaRaSSQsYWVYxqhenFpWlFula
 6CUVZaZnlOQmZuboGhoY6+WmFhcnpqfmJCYV6yXn525iBEYJAxDsYLzQ7nyIUZKDSUmUt/+lU
 bgQX1J+SmVGYnFGfFFpTmrxIUYZDg4lCd6pjMbhQoJFqempFWmZOcB4hUlLcPAoifDuBEnzFh
 ck5hZnpkOkTjEqSonz7gZJCIAkMkrz4NpgKeISo6yUMC8j0CFCPAWpRbmZJajyrxjFORiVhHn
 vgkzhycwrgZv+CmgxE9Di6utGIItLEhFSUg2Mvm0rp3Yv7Jql3yR/duXq2WKXV4q9W6f44LTx
 MuUFGXv3Jk0Wy7bskNl2+OVdDquvJrsNciXuzjVvE3Vh7ctR/7Tfr7M9RnYdu0+phpim6dVtl
 i1BVwssC12svDs9j7duev/ocaJrQONSr6MT9OawpxqWnf9kXxB/t1z8oH/PGruqo2plJduUWI
 ozEg21mIuKEwFZr/GJDAMAAA==
X-Env-Sender: prvs=93251a52a=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1462960859!32021498!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7835 invoked from network); 11 May 2016 10:00:59 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 11 May 2016 10:00:59 -0000
X-IronPort-AV: E=Sophos;i="5.24,608,1454976000"; d="scan'208";a="21350039"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [win-pv-devel] [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2LgggACW7QCAAQx2cA==
Date: Wed, 11 May 2016 09:41:12 +0000
Message-ID: <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
In-Reply-To: <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZy4uLiBQbGVhc2Ugc2VuZCBlbWFpbHMgaW4gcGxhaW4gdGV4dC4NCg0KLS0tDQpG
cm9tOiBEb21pbmljIFJ1c3NlbGwgW21haWx0bzpkb21pbmljQG1zaWJ1cmVhdXRpcXVlLmNhXSAN
ClNlbnQ6IDEwIE1heSAyMDE2IDIwOjM1DQpUbzogUGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hl
bi1kZXZlbF0gUFZMIFhlbk5ldCBpbmYNCg0KSGVsbG8sDQpGb3IgdGhlIGRldmljZSBJRHMsIGl0
IGlzIG9ubHkgYnkgbW9kaWZ5aW5nIHRoZSBJRHMgaW4gdGhlIGluZiBmaWxlIHRoYXQgV2luZG93
cyB3YXMgYXNzaWduaW5nIHRoZSB4ZW5uZXQgZHJpdmVycyB0byB0aGUgbmV0d29yayBjYXJkIGF1
dG9tYXRpY2FsbHksIG90aGVyd2lzZSB0aGV5IGhhdmUgdG8gYmUgYXNzaWduZWQgbWFudWFsbHku
DQotLS0NCg0KQXMgSSB0cmllZCB0byBleHBsYWluLiBUaGUgUERPIHRvIHdoaWNoIHlvdSBhcmUg
dHJ5aW5nIHRvIGF0dGFjaCBYRU5ORVQgaXMgdGhlIHdyb25nIG9uZS4gQnkgbW9kaWZ5aW5nIHRo
ZSBJRHMgaW4gdGhlIElORiBmaWxlIHlvdSBtYXkgYmUgYWJsZSB0byBnZXQgdGhlIGRyaXZlciB0
byBiaW5kLCBidXQgdGhlcmUncyBubyB3YXkgaXQncyBnb2luZyB0byBmdW5jdGlvbi4gVGhlIFBE
TyB5b3UgYXJlIGxvb2tpbmcgYXQgKFhFTkJVU1xWRU5fWFAwMDAxJkRFVl9WSUYmUkVWXzA4MDAw
MDA5KSBpcyB0aGUgb25lIHRoYXQgdGhlIFhFTlZJRiBkcml2ZXIgc2hvdWxkIGJpbmQgdG8uIEl0
IHdpbGwgdGhlbiBjcmVhdGUgUERPcyBvZiB0aGUgZm9ybSBYRU5WSUZcVkVOX1hQMDAwMSZERVZf
TkVUJlJFVl8wODAwMDAwOSB3aGljbiBYRU5ORVQgd2lsbCB0aGVuIGJpbmQgdG8uDQoNCi0tLS0N
CkkgZGlkIGNsZWFuIHRoZSBHUExQViBkcml2ZXJzLCBidXQgdGhlIHhlbnBjaSBpcyBoYXJkIHRv
IHJlbW92ZSwgYmVjYXVzZSBXaW5kb3dzIHRyZWF0cyBpdCBhcyBhIGNyaXRpY2FsLCBib290IG5l
ZWRlZCwgZHJpdmVyLCBzbyBub3QgYWxsIHRoZSBrZXlzIGFyZSBhY2Nlc3NpYmxlIHRvIGJlIGRl
bGV0ZWQgaW4gdGhlIHJlZ2lzdHJ5Lg0KVGhlIG5ldyB4ZW5idXMgZHJpdmVyIGlzIGFjdGl2ZSwg
YW5kIHhlbnBjaSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGZpbGVzIGxpc3Qgb2YgdGhlIGxvYWRl
ZCBmaWxlcyBpbiB0aGUgZHJpdmVyIG9mIHRoZSBwZXJpcGhlcmFscyAoYXQgZmlyc3QsIEkgd2Fz
IG5vdCBjbGVhbmluZyBwcm9wZXJseSB4ZW5wY2ksIGFuZCBpdCB3YXMgYXBwZWFyaW5nIGFzIGEg
bG9hZGVkIGZpbGUgZm9yIHRoZSB4ZW5idXMgYW5kIHhlbm5ldCBkcml2ZXJzKS7CoCBUbyBiZSBz
dXJlLCBJIGRlbGV0ZWQgdGhlIHhlbnBjaS5zeXMgYW5kIHJlYm9vdGVkLCBpdCByZWJvb3RlZCBw
cm9wZXJseSwgb3RoZXJ3aXNlIGl0IHdvdWxkIGdpdmUgYSBibHVlIHNjcmVlbiB3aXRoIGVycm9y
IDdCLg0KT24gdGhlIHZpcnR1YWwgY29tcHV0ZXIsIGV2ZXJ5IG5ldyBkcml2ZXJzIGFyZSBsb2Fk
ZWQsIG5vdCByZXBvcnRpbmcgZXJyb3JzIGV4Y2VwdCBmb3IgeGVubmV0LCB0aGF0IHJldHVybnMg
YW4gZXJyb3IgMTAuwqAgSSBkaXNjb3ZlcmVkIGluIFdpbmRvd3MgbG9ncyBhIGdlbmVyaWMgZXJy
b3IgKGJ1dCBub3QgdGFnZ2VkIGFzIGFuIGVycm9yKSB3aGljaCBtZW50aW9ucyBQbnBEZXZpY2VQ
cm9ibGVtQ29kZSwgd2hpY2ggYnkgZ29vZ2xpbmcgZGlkIG5vdCByZXZlYWwgbXVjaC4NCi0tLS0N
Cg0KSXMgWEVOVklGIGxvYWRlZCBhbmQgZnVuY3Rpb25pbmc/IERvIHlvdSBoYXZlIGEgbG9nIGZy
b20gUUVNVT8NCg0KICBQYXVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 13:52:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 13:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0UZ0-0008WC-VN; Wed, 11 May 2016 13:52:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0UYz-0008Vv-Cx
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 13:52:33 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 AE/E4-29997-02933375; Wed, 11 May 2016 13:52:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRWlGSWpSXmKPExsUioVq3SlfB0jj
 cYN5bFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCase7qRLaCqYIVUye0sjUwNvN1MXJyCAnsZ5S4
 cNMBxBYWMJPY9OUtI4gtIqAlMWHLVqYuRi6gmh+MErtPzWECSTALeEucmzOJuYuRg4NNwFBiw
 j09kDC/gJLEm08X2UBsXgEXiZkHToDNYRFQlfg/ZSULiC0qECWxfcESVogaQYmTM5+AxTkFPC
 T+7JzFCjHeTGLe5ofMELa8RPPW2cwTGPlmIWmZhaRsFpKyBYzMqxg1ilOLylKLdA3N9ZKKMtM
 zSnITM3N0DQ1M9XJTi4sT01NzEpOK9ZLzczcxAkONAQh2MF487XmIUZKDSUmU9420cbgQX1J+
 SmVGYnFGfFFpTmrxIUYZDg4lCd4/5kA5waLU9NSKtMwcYNDDpCU4eJREeO+ApHmLCxJzizPTI
 VKnGBWlxHm/gCQEQBIZpXlwbbBIu8QoKyXMywh0iBBPQWpRbmYJqvwrRnEORiVhXj4LoCk8mX
 klcNNfAS1mAlpcfd0IZHFJIkJKqoHx1qr80+ICl27PlBDUPeAjfjecW9U74VV/0CIjObsOL/P
 KpA1vNVfMV8hWzHiutXTNzPXrJDT/v3sb5yJjLVhpdORvr61WXp7fMdMTf/yat9/pLZ43dy77
 on+hX3mDW3ZKt+59vS965n1tD5/lrr2HtxV1v6vmtHPmYfz4s/LNsxgZ9YtLNYKVWIozEg21m
 IuKEwG/1y8jrwIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-7.tower-206.messagelabs.com!1462974751!38877356!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26898 invoked from network); 11 May 2016 13:52:31 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-7.tower-206.messagelabs.com with SMTP; 11 May 2016 13:52:31 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id 2BC6B80DC0;
 Wed, 11 May 2016 09:52:26 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
Date: Wed, 11 May 2016 09:52:30 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIFBETyB0aGF0IFdpbmRvd3Mgc2hvd3MgaXMgdGhlIG9uZSBJIG1lbnRpb25lZCwgdGhlcmVm
b3JlIGl0IGRvZXMgbm90IApiaW5kIGF1dG9tYXRpY2FsbHkuICBIb3cgY2FuIEkgbWFrZSB0aGUg
UERPIGFwcGVhcmVkIHRoZSBmaXJzdCB0aW1lIGFzIAppdCBzaG91bGQ/Cgp4ZW52aWYgZG9lcyBu
b3QgbG9hZCwgV2luZG93cyByZXR1cm5zIGFuIGVycm9yIDEwLgoKSG93IGNhbiBJIGdldCBRRU1V
IGxvZ3M/CgpDb3JkaWFsZW1lbnQsCkRvbWluaWMgUnVzc2VsbApNU0kgQnVyZWF1dGlxdWUgaW5j
LgoKTGUgMjAxNi0wNS0xMSDDoCAwNTo0MSwgUGF1bCBEdXJyYW50IGEgw6ljcml0IDoKPiBEZS1o
dG1saW5nLi4uIFBsZWFzZSBzZW5kIGVtYWlscyBpbiBwbGFpbiB0ZXh0Lgo+Cj4gLS0tCj4gRnJv
bTogRG9taW5pYyBSdXNzZWxsIFttYWlsdG86ZG9taW5pY0Btc2lidXJlYXV0aXF1ZS5jYV0KPiBT
ZW50OiAxMCBNYXkgMjAxNiAyMDozNQo+IFRvOiBQYXVsIER1cnJhbnQKPiBDYzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFtY
ZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mCj4KPiBIZWxsbywKPiBGb3IgdGhlIGRldmljZSBJRHMs
IGl0IGlzIG9ubHkgYnkgbW9kaWZ5aW5nIHRoZSBJRHMgaW4gdGhlIGluZiBmaWxlIHRoYXQgV2lu
ZG93cyB3YXMgYXNzaWduaW5nIHRoZSB4ZW5uZXQgZHJpdmVycyB0byB0aGUgbmV0d29yayBjYXJk
IGF1dG9tYXRpY2FsbHksIG90aGVyd2lzZSB0aGV5IGhhdmUgdG8gYmUgYXNzaWduZWQgbWFudWFs
bHkuCj4gLS0tCj4KPiBBcyBJIHRyaWVkIHRvIGV4cGxhaW4uIFRoZSBQRE8gdG8gd2hpY2ggeW91
IGFyZSB0cnlpbmcgdG8gYXR0YWNoIFhFTk5FVCBpcyB0aGUgd3Jvbmcgb25lLiBCeSBtb2RpZnlp
bmcgdGhlIElEcyBpbiB0aGUgSU5GIGZpbGUgeW91IG1heSBiZSBhYmxlIHRvIGdldCB0aGUgZHJp
dmVyIHRvIGJpbmQsIGJ1dCB0aGVyZSdzIG5vIHdheSBpdCdzIGdvaW5nIHRvIGZ1bmN0aW9uLiBU
aGUgUERPIHlvdSBhcmUgbG9va2luZyBhdCAoWEVOQlVTXFZFTl9YUDAwMDEmREVWX1ZJRiZSRVZf
MDgwMDAwMDkpIGlzIHRoZSBvbmUgdGhhdCB0aGUgWEVOVklGIGRyaXZlciBzaG91bGQgYmluZCB0
by4gSXQgd2lsbCB0aGVuIGNyZWF0ZSBQRE9zIG9mIHRoZSBmb3JtIFhFTlZJRlxWRU5fWFAwMDAx
JkRFVl9ORVQmUkVWXzA4MDAwMDA5IHdoaWNuIFhFTk5FVCB3aWxsIHRoZW4gYmluZCB0by4KPgo+
IC0tLS0KPiBJIGRpZCBjbGVhbiB0aGUgR1BMUFYgZHJpdmVycywgYnV0IHRoZSB4ZW5wY2kgaXMg
aGFyZCB0byByZW1vdmUsIGJlY2F1c2UgV2luZG93cyB0cmVhdHMgaXQgYXMgYSBjcml0aWNhbCwg
Ym9vdCBuZWVkZWQsIGRyaXZlciwgc28gbm90IGFsbCB0aGUga2V5cyBhcmUgYWNjZXNzaWJsZSB0
byBiZSBkZWxldGVkIGluIHRoZSByZWdpc3RyeS4KPiBUaGUgbmV3IHhlbmJ1cyBkcml2ZXIgaXMg
YWN0aXZlLCBhbmQgeGVucGNpIGRvZXMgbm90IGFwcGVhciBpbiB0aGUgZmlsZXMgbGlzdCBvZiB0
aGUgbG9hZGVkIGZpbGVzIGluIHRoZSBkcml2ZXIgb2YgdGhlIHBlcmlwaGVyYWxzIChhdCBmaXJz
dCwgSSB3YXMgbm90IGNsZWFuaW5nIHByb3Blcmx5IHhlbnBjaSwgYW5kIGl0IHdhcyBhcHBlYXJp
bmcgYXMgYSBsb2FkZWQgZmlsZSBmb3IgdGhlIHhlbmJ1cyBhbmQgeGVubmV0IGRyaXZlcnMpLiAg
VG8gYmUgc3VyZSwgSSBkZWxldGVkIHRoZSB4ZW5wY2kuc3lzIGFuZCByZWJvb3RlZCwgaXQgcmVi
b290ZWQgcHJvcGVybHksIG90aGVyd2lzZSBpdCB3b3VsZCBnaXZlIGEgYmx1ZSBzY3JlZW4gd2l0
aCBlcnJvciA3Qi4KPiBPbiB0aGUgdmlydHVhbCBjb21wdXRlciwgZXZlcnkgbmV3IGRyaXZlcnMg
YXJlIGxvYWRlZCwgbm90IHJlcG9ydGluZyBlcnJvcnMgZXhjZXB0IGZvciB4ZW5uZXQsIHRoYXQg
cmV0dXJucyBhbiBlcnJvciAxMC4gIEkgZGlzY292ZXJlZCBpbiBXaW5kb3dzIGxvZ3MgYSBnZW5l
cmljIGVycm9yIChidXQgbm90IHRhZ2dlZCBhcyBhbiBlcnJvcikgd2hpY2ggbWVudGlvbnMgUG5w
RGV2aWNlUHJvYmxlbUNvZGUsIHdoaWNoIGJ5IGdvb2dsaW5nIGRpZCBub3QgcmV2ZWFsIG11Y2gu
Cj4gLS0tLQo+Cj4gSXMgWEVOVklGIGxvYWRlZCBhbmQgZnVuY3Rpb25pbmc/IERvIHlvdSBoYXZl
IGEgbG9nIGZyb20gUUVNVT8KPgo+ICAgIFBhdWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 13:52:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 13:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0UZ0-0008WC-VN; Wed, 11 May 2016 13:52:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0UYz-0008Vv-Cx
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 13:52:33 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 AE/E4-29997-02933375; Wed, 11 May 2016 13:52:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRWlGSWpSXmKPExsUioVq3SlfB0jj
 cYN5bFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCase7qRLaCqYIVUye0sjUwNvN1MXJyCAnsZ5S4
 cNMBxBYWMJPY9OUtI4gtIqAlMWHLVqYuRi6gmh+MErtPzWECSTALeEucmzOJuYuRg4NNwFBiw
 j09kDC/gJLEm08X2UBsXgEXiZkHToDNYRFQlfg/ZSULiC0qECWxfcESVogaQYmTM5+AxTkFPC
 T+7JzFCjHeTGLe5ofMELa8RPPW2cwTGPlmIWmZhaRsFpKyBYzMqxg1ilOLylKLdA3N9ZKKMtM
 zSnITM3N0DQ1M9XJTi4sT01NzEpOK9ZLzczcxAkONAQh2MF487XmIUZKDSUmU9420cbgQX1J+
 SmVGYnFGfFFpTmrxIUYZDg4lCd4/5kA5waLU9NSKtMwcYNDDpCU4eJREeO+ApHmLCxJzizPTI
 VKnGBWlxHm/gCQEQBIZpXlwbbBIu8QoKyXMywh0iBBPQWpRbmYJqvwrRnEORiVhXj4LoCk8mX
 klcNNfAS1mAlpcfd0IZHFJIkJKqoHx1qr80+ICl27PlBDUPeAjfjecW9U74VV/0CIjObsOL/P
 KpA1vNVfMV8hWzHiutXTNzPXrJDT/v3sb5yJjLVhpdORvr61WXp7fMdMTf/yat9/pLZ43dy77
 on+hX3mDW3ZKt+59vS965n1tD5/lrr2HtxV1v6vmtHPmYfz4s/LNsxgZ9YtLNYKVWIozEg21m
 IuKEwG/1y8jrwIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-7.tower-206.messagelabs.com!1462974751!38877356!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26898 invoked from network); 11 May 2016 13:52:31 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-7.tower-206.messagelabs.com with SMTP; 11 May 2016 13:52:31 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id 2BC6B80DC0;
 Wed, 11 May 2016 09:52:26 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
Date: Wed, 11 May 2016 09:52:30 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIFBETyB0aGF0IFdpbmRvd3Mgc2hvd3MgaXMgdGhlIG9uZSBJIG1lbnRpb25lZCwgdGhlcmVm
b3JlIGl0IGRvZXMgbm90IApiaW5kIGF1dG9tYXRpY2FsbHkuICBIb3cgY2FuIEkgbWFrZSB0aGUg
UERPIGFwcGVhcmVkIHRoZSBmaXJzdCB0aW1lIGFzIAppdCBzaG91bGQ/Cgp4ZW52aWYgZG9lcyBu
b3QgbG9hZCwgV2luZG93cyByZXR1cm5zIGFuIGVycm9yIDEwLgoKSG93IGNhbiBJIGdldCBRRU1V
IGxvZ3M/CgpDb3JkaWFsZW1lbnQsCkRvbWluaWMgUnVzc2VsbApNU0kgQnVyZWF1dGlxdWUgaW5j
LgoKTGUgMjAxNi0wNS0xMSDDoCAwNTo0MSwgUGF1bCBEdXJyYW50IGEgw6ljcml0IDoKPiBEZS1o
dG1saW5nLi4uIFBsZWFzZSBzZW5kIGVtYWlscyBpbiBwbGFpbiB0ZXh0Lgo+Cj4gLS0tCj4gRnJv
bTogRG9taW5pYyBSdXNzZWxsIFttYWlsdG86ZG9taW5pY0Btc2lidXJlYXV0aXF1ZS5jYV0KPiBT
ZW50OiAxMCBNYXkgMjAxNiAyMDozNQo+IFRvOiBQYXVsIER1cnJhbnQKPiBDYzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFtY
ZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mCj4KPiBIZWxsbywKPiBGb3IgdGhlIGRldmljZSBJRHMs
IGl0IGlzIG9ubHkgYnkgbW9kaWZ5aW5nIHRoZSBJRHMgaW4gdGhlIGluZiBmaWxlIHRoYXQgV2lu
ZG93cyB3YXMgYXNzaWduaW5nIHRoZSB4ZW5uZXQgZHJpdmVycyB0byB0aGUgbmV0d29yayBjYXJk
IGF1dG9tYXRpY2FsbHksIG90aGVyd2lzZSB0aGV5IGhhdmUgdG8gYmUgYXNzaWduZWQgbWFudWFs
bHkuCj4gLS0tCj4KPiBBcyBJIHRyaWVkIHRvIGV4cGxhaW4uIFRoZSBQRE8gdG8gd2hpY2ggeW91
IGFyZSB0cnlpbmcgdG8gYXR0YWNoIFhFTk5FVCBpcyB0aGUgd3Jvbmcgb25lLiBCeSBtb2RpZnlp
bmcgdGhlIElEcyBpbiB0aGUgSU5GIGZpbGUgeW91IG1heSBiZSBhYmxlIHRvIGdldCB0aGUgZHJp
dmVyIHRvIGJpbmQsIGJ1dCB0aGVyZSdzIG5vIHdheSBpdCdzIGdvaW5nIHRvIGZ1bmN0aW9uLiBU
aGUgUERPIHlvdSBhcmUgbG9va2luZyBhdCAoWEVOQlVTXFZFTl9YUDAwMDEmREVWX1ZJRiZSRVZf
MDgwMDAwMDkpIGlzIHRoZSBvbmUgdGhhdCB0aGUgWEVOVklGIGRyaXZlciBzaG91bGQgYmluZCB0
by4gSXQgd2lsbCB0aGVuIGNyZWF0ZSBQRE9zIG9mIHRoZSBmb3JtIFhFTlZJRlxWRU5fWFAwMDAx
JkRFVl9ORVQmUkVWXzA4MDAwMDA5IHdoaWNuIFhFTk5FVCB3aWxsIHRoZW4gYmluZCB0by4KPgo+
IC0tLS0KPiBJIGRpZCBjbGVhbiB0aGUgR1BMUFYgZHJpdmVycywgYnV0IHRoZSB4ZW5wY2kgaXMg
aGFyZCB0byByZW1vdmUsIGJlY2F1c2UgV2luZG93cyB0cmVhdHMgaXQgYXMgYSBjcml0aWNhbCwg
Ym9vdCBuZWVkZWQsIGRyaXZlciwgc28gbm90IGFsbCB0aGUga2V5cyBhcmUgYWNjZXNzaWJsZSB0
byBiZSBkZWxldGVkIGluIHRoZSByZWdpc3RyeS4KPiBUaGUgbmV3IHhlbmJ1cyBkcml2ZXIgaXMg
YWN0aXZlLCBhbmQgeGVucGNpIGRvZXMgbm90IGFwcGVhciBpbiB0aGUgZmlsZXMgbGlzdCBvZiB0
aGUgbG9hZGVkIGZpbGVzIGluIHRoZSBkcml2ZXIgb2YgdGhlIHBlcmlwaGVyYWxzIChhdCBmaXJz
dCwgSSB3YXMgbm90IGNsZWFuaW5nIHByb3Blcmx5IHhlbnBjaSwgYW5kIGl0IHdhcyBhcHBlYXJp
bmcgYXMgYSBsb2FkZWQgZmlsZSBmb3IgdGhlIHhlbmJ1cyBhbmQgeGVubmV0IGRyaXZlcnMpLiAg
VG8gYmUgc3VyZSwgSSBkZWxldGVkIHRoZSB4ZW5wY2kuc3lzIGFuZCByZWJvb3RlZCwgaXQgcmVi
b290ZWQgcHJvcGVybHksIG90aGVyd2lzZSBpdCB3b3VsZCBnaXZlIGEgYmx1ZSBzY3JlZW4gd2l0
aCBlcnJvciA3Qi4KPiBPbiB0aGUgdmlydHVhbCBjb21wdXRlciwgZXZlcnkgbmV3IGRyaXZlcnMg
YXJlIGxvYWRlZCwgbm90IHJlcG9ydGluZyBlcnJvcnMgZXhjZXB0IGZvciB4ZW5uZXQsIHRoYXQg
cmV0dXJucyBhbiBlcnJvciAxMC4gIEkgZGlzY292ZXJlZCBpbiBXaW5kb3dzIGxvZ3MgYSBnZW5l
cmljIGVycm9yIChidXQgbm90IHRhZ2dlZCBhcyBhbiBlcnJvcikgd2hpY2ggbWVudGlvbnMgUG5w
RGV2aWNlUHJvYmxlbUNvZGUsIHdoaWNoIGJ5IGdvb2dsaW5nIGRpZCBub3QgcmV2ZWFsIG11Y2gu
Cj4gLS0tLQo+Cj4gSXMgWEVOVklGIGxvYWRlZCBhbmQgZnVuY3Rpb25pbmc/IERvIHlvdSBoYXZl
IGEgbG9nIGZyb20gUUVNVT8KPgo+ICAgIFBhdWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 14:13:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 14:13:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0Ut1-0002uG-Hh; Wed, 11 May 2016 14:13:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93251a52a=Paul.Durrant@citrix.com>)
 id 1b0Ut0-0002uA-3J
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 14:13:14 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
 C0/A1-03443-9FD33375; Wed, 11 May 2016 14:13:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQveHrXG
 4wbn7RhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9Lq1SwFexQrrk56xdjA2KLYxcjJISHgJ/F6
 /QkWEJtNQEdi6dH5TCC2iIC+xKnZ58HizALeEldPHmQEsYUFzCSmzbjEDFFjLrHo1X+oej+JO
 w/Ps4PYLAKqEqd+fGMFsXkF3IHs20A1XBxCApuYJM6+eAaU4ODgFHCVmLxHF6SGUUBW4kvjam
 aIXeISt55A3CAhICCxZM95ZghbVOLl43+sELaBxNal+1hAxjALaEqs36UP0aooMaX7ITvEWkG
 JkzOfgJ0vJKAiseXxAagx3BIrP/9hmcAoOgvJtlkIk2YhmTQLyaQFjCyrGNWLU4vKUot0zfSS
 ijLTM0pyEzNzdA0NjPVyU4uLE9NTcxKTivWS83M3MQKjpJ6BgXEH45U250OMkhxMSqK8b6SNw
 4X4kvJTKjMSizPii0pzUosPMcpwcChJ8G6wAcoJFqWmp1akZeYA4xUmLcHBoyTCOxEkzVtckJ
 hbnJkOkTrFqCglzrsWJCEAksgozYNrg6WIS4yyUsK8jAwMDEI8BalFuZklqPKvGMU5GJWEeZm
 ACUeIJzOvBG76K6DFTECLq68bgSwuSURISTUwCtb/YDTgLd66tExn17fICisOWadr3zjf3ni5
 hF18SaTenP3XP51e1cakmPUgOvDjzloTs+oraYwvfXq7p+1+GjrPMdyBLUaoqSKmUtf+eOOVw
 4WFYk+/r8p5IsvrcL788LcZN44dE7ZqmOp972siE0ub/Zu2uq/tF683N7qkntwT1nYqd6a4Ek
 txRqKhFnNRcSIAHaDi9QwDAAA=
X-Env-Sender: prvs=93251a52a=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1462975992!22919507!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29528 invoked from network); 11 May 2016 14:13:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 11 May 2016 14:13:12 -0000
X-IronPort-AV: E=Sophos;i="5.24,608,1454976000"; d="scan'208";a="21374732"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [win-pv-devel] [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2LgggACW7QCAAQx2cIAAJgsAgAAl1JA=
Date: Wed, 11 May 2016 14:12:52 +0000
Message-ID: <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
 <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
In-Reply-To: <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIERvbWluaWMgUnVzc2VsbA0KPiBTZW50OiAxMSBNYXkgMjAxNiAxNDo1Mw0KPiBUbzogUGF1
bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3Vi
amVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFtYZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mDQo+IA0K
PiBUaGUgUERPIHRoYXQgV2luZG93cyBzaG93cyBpcyB0aGUgb25lIEkgbWVudGlvbmVkLCB0aGVy
ZWZvcmUgaXQgZG9lcyBub3QNCj4gYmluZCBhdXRvbWF0aWNhbGx5LiAgSG93IGNhbiBJIG1ha2Ug
dGhlIFBETyBhcHBlYXJlZCB0aGUgZmlyc3QgdGltZSBhcw0KPiBpdCBzaG91bGQ/DQo+IA0KPiB4
ZW52aWYgZG9lcyBub3QgbG9hZCwgV2luZG93cyByZXR1cm5zIGFuIGVycm9yIDEwLg0KDQpPaywg
c28gdGhhdCdzIHlvdXIgcHJvYmxlbS4gTWVzc2luZyB3aXRoIElORiBmaWxlcyBpcyBuZXZlciB0
aGUgYW5zd2VyLg0KDQpEaWQgeW91IGJ1aWxkIGFsbCB0aGUgZHJpdmVycyB5b3Vyc2VsZj8gVGhl
IHVzdWFsIHJlYXNvbiBmb3IgWEVOVklGIGZhaWxpbmcgdG8gbG9hZCBpcyB0aGF0IGl0J3Mgbm90
IGNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiBvZiBYRU5CVVMgeW91IGhhdmUgaW5zdGFsbGVk
Lg0KDQo+IA0KPiBIb3cgY2FuIEkgZ2V0IFFFTVUgbG9ncz8NCj4gDQoNCldoYXQgUUVNVSBhcmUg
eW91IHJ1bm5pbmcgaW4gZG9tMD8gRGlkIHlvdSBidWlsZCB5b3VyIFhlbiBpbnN0YWxsYXRpb24g
eW91cnNlbGY/DQoNCiAgUGF1bA0KDQo+IENvcmRpYWxlbWVudCwNCj4gRG9taW5pYyBSdXNzZWxs
DQo+IE1TSSBCdXJlYXV0aXF1ZSBpbmMuDQo+IA0KPiBMZSAyMDE2LTA1LTExIMOgIDA1OjQxLCBQ
YXVsIER1cnJhbnQgYSDDqWNyaXQgOg0KPiA+IERlLWh0bWxpbmcuLi4gUGxlYXNlIHNlbmQgZW1h
aWxzIGluIHBsYWluIHRleHQuDQo+ID4NCj4gPiAtLS0NCj4gPiBGcm9tOiBEb21pbmljIFJ1c3Nl
bGwgW21haWx0bzpkb21pbmljQG1zaWJ1cmVhdXRpcXVlLmNhXQ0KPiA+IFNlbnQ6IDEwIE1heSAy
MDE2IDIwOjM1DQo+ID4gVG86IFBhdWwgRHVycmFudA0KPiA+IENjOiB3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcNCj4gPiBTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hlbi1k
ZXZlbF0gUFZMIFhlbk5ldCBpbmYNCj4gPg0KPiA+IEhlbGxvLA0KPiA+IEZvciB0aGUgZGV2aWNl
IElEcywgaXQgaXMgb25seSBieSBtb2RpZnlpbmcgdGhlIElEcyBpbiB0aGUgaW5mIGZpbGUgdGhh
dA0KPiBXaW5kb3dzIHdhcyBhc3NpZ25pbmcgdGhlIHhlbm5ldCBkcml2ZXJzIHRvIHRoZSBuZXR3
b3JrIGNhcmQgYXV0b21hdGljYWxseSwNCj4gb3RoZXJ3aXNlIHRoZXkgaGF2ZSB0byBiZSBhc3Np
Z25lZCBtYW51YWxseS4NCj4gPiAtLS0NCj4gPg0KPiA+IEFzIEkgdHJpZWQgdG8gZXhwbGFpbi4g
VGhlIFBETyB0byB3aGljaCB5b3UgYXJlIHRyeWluZyB0byBhdHRhY2ggWEVOTkVUIGlzDQo+IHRo
ZSB3cm9uZyBvbmUuIEJ5IG1vZGlmeWluZyB0aGUgSURzIGluIHRoZSBJTkYgZmlsZSB5b3UgbWF5
IGJlIGFibGUgdG8gZ2V0DQo+IHRoZSBkcml2ZXIgdG8gYmluZCwgYnV0IHRoZXJlJ3Mgbm8gd2F5
IGl0J3MgZ29pbmcgdG8gZnVuY3Rpb24uIFRoZSBQRE8geW91IGFyZQ0KPiBsb29raW5nIGF0IChY
RU5CVVNcVkVOX1hQMDAwMSZERVZfVklGJlJFVl8wODAwMDAwOSkgaXMgdGhlIG9uZSB0aGF0DQo+
IHRoZSBYRU5WSUYgZHJpdmVyIHNob3VsZCBiaW5kIHRvLiBJdCB3aWxsIHRoZW4gY3JlYXRlIFBE
T3Mgb2YgdGhlIGZvcm0NCj4gWEVOVklGXFZFTl9YUDAwMDEmREVWX05FVCZSRVZfMDgwMDAwMDkg
d2hpY24gWEVOTkVUIHdpbGwgdGhlbiBiaW5kDQo+IHRvLg0KPiA+DQo+ID4gLS0tLQ0KPiA+IEkg
ZGlkIGNsZWFuIHRoZSBHUExQViBkcml2ZXJzLCBidXQgdGhlIHhlbnBjaSBpcyBoYXJkIHRvIHJl
bW92ZSwgYmVjYXVzZQ0KPiBXaW5kb3dzIHRyZWF0cyBpdCBhcyBhIGNyaXRpY2FsLCBib290IG5l
ZWRlZCwgZHJpdmVyLCBzbyBub3QgYWxsIHRoZSBrZXlzIGFyZQ0KPiBhY2Nlc3NpYmxlIHRvIGJl
IGRlbGV0ZWQgaW4gdGhlIHJlZ2lzdHJ5Lg0KPiA+IFRoZSBuZXcgeGVuYnVzIGRyaXZlciBpcyBh
Y3RpdmUsIGFuZCB4ZW5wY2kgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBmaWxlcyBsaXN0DQo+IG9m
IHRoZSBsb2FkZWQgZmlsZXMgaW4gdGhlIGRyaXZlciBvZiB0aGUgcGVyaXBoZXJhbHMgKGF0IGZp
cnN0LCBJIHdhcyBub3QgY2xlYW5pbmcNCj4gcHJvcGVybHkgeGVucGNpLCBhbmQgaXQgd2FzIGFw
cGVhcmluZyBhcyBhIGxvYWRlZCBmaWxlIGZvciB0aGUgeGVuYnVzIGFuZA0KPiB4ZW5uZXQgZHJp
dmVycykuICBUbyBiZSBzdXJlLCBJIGRlbGV0ZWQgdGhlIHhlbnBjaS5zeXMgYW5kIHJlYm9vdGVk
LCBpdA0KPiByZWJvb3RlZCBwcm9wZXJseSwgb3RoZXJ3aXNlIGl0IHdvdWxkIGdpdmUgYSBibHVl
IHNjcmVlbiB3aXRoIGVycm9yIDdCLg0KPiA+IE9uIHRoZSB2aXJ0dWFsIGNvbXB1dGVyLCBldmVy
eSBuZXcgZHJpdmVycyBhcmUgbG9hZGVkLCBub3QgcmVwb3J0aW5nIGVycm9ycw0KPiBleGNlcHQg
Zm9yIHhlbm5ldCwgdGhhdCByZXR1cm5zIGFuIGVycm9yIDEwLiAgSSBkaXNjb3ZlcmVkIGluIFdp
bmRvd3MgbG9ncyBhDQo+IGdlbmVyaWMgZXJyb3IgKGJ1dCBub3QgdGFnZ2VkIGFzIGFuIGVycm9y
KSB3aGljaCBtZW50aW9ucw0KPiBQbnBEZXZpY2VQcm9ibGVtQ29kZSwgd2hpY2ggYnkgZ29vZ2xp
bmcgZGlkIG5vdCByZXZlYWwgbXVjaC4NCj4gPiAtLS0tDQo+ID4NCj4gPiBJcyBYRU5WSUYgbG9h
ZGVkIGFuZCBmdW5jdGlvbmluZz8gRG8geW91IGhhdmUgYSBsb2cgZnJvbSBRRU1VPw0KPiA+DQo+
ID4gICAgUGF1bA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 14:13:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 14:13:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0Ut1-0002uG-Hh; Wed, 11 May 2016 14:13:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93251a52a=Paul.Durrant@citrix.com>)
 id 1b0Ut0-0002uA-3J
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 14:13:14 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
 C0/A1-03443-9FD33375; Wed, 11 May 2016 14:13:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQveHrXG
 4wbn7RhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9Lq1SwFexQrrk56xdjA2KLYxcjJISHgJ/F6
 /QkWEJtNQEdi6dH5TCC2iIC+xKnZ58HizALeEldPHmQEsYUFzCSmzbjEDFFjLrHo1X+oej+JO
 w/Ps4PYLAKqEqd+fGMFsXkF3IHs20A1XBxCApuYJM6+eAaU4ODgFHCVmLxHF6SGUUBW4kvjam
 aIXeISt55A3CAhICCxZM95ZghbVOLl43+sELaBxNal+1hAxjALaEqs36UP0aooMaX7ITvEWkG
 JkzOfgJ0vJKAiseXxAagx3BIrP/9hmcAoOgvJtlkIk2YhmTQLyaQFjCyrGNWLU4vKUot0zfSS
 ijLTM0pyEzNzdA0NjPVyU4uLE9NTcxKTivWS83M3MQKjpJ6BgXEH45U250OMkhxMSqK8b6SNw
 4X4kvJTKjMSizPii0pzUosPMcpwcChJ8G6wAcoJFqWmp1akZeYA4xUmLcHBoyTCOxEkzVtckJ
 hbnJkOkTrFqCglzrsWJCEAksgozYNrg6WIS4yyUsK8jAwMDEI8BalFuZklqPKvGMU5GJWEeZm
 ACUeIJzOvBG76K6DFTECLq68bgSwuSURISTUwCtb/YDTgLd66tExn17fICisOWadr3zjf3ni5
 hF18SaTenP3XP51e1cakmPUgOvDjzloTs+oraYwvfXq7p+1+GjrPMdyBLUaoqSKmUtf+eOOVw
 4WFYk+/r8p5IsvrcL788LcZN44dE7ZqmOp972siE0ub/Zu2uq/tF683N7qkntwT1nYqd6a4Ek
 txRqKhFnNRcSIAHaDi9QwDAAA=
X-Env-Sender: prvs=93251a52a=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1462975992!22919507!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29528 invoked from network); 11 May 2016 14:13:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 11 May 2016 14:13:12 -0000
X-IronPort-AV: E=Sophos;i="5.24,608,1454976000"; d="scan'208";a="21374732"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Dominic Russell <dominic@msibureautique.ca>
Thread-Topic: [win-pv-devel] [Xen-devel] PVL XenNet inf
Thread-Index: AQHRqoUfAQg3ccxPeUSiP2rc2a+Tg5+x2LgggACW7QCAAQx2cIAAJgsAgAAl1JA=
Date: Wed, 11 May 2016 14:12:52 +0000
Message-ID: <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
 <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
In-Reply-To: <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIERvbWluaWMgUnVzc2VsbA0KPiBTZW50OiAxMSBNYXkgMjAxNiAxNDo1Mw0KPiBUbzogUGF1
bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3Vi
amVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFtYZW4tZGV2ZWxdIFBWTCBYZW5OZXQgaW5mDQo+IA0K
PiBUaGUgUERPIHRoYXQgV2luZG93cyBzaG93cyBpcyB0aGUgb25lIEkgbWVudGlvbmVkLCB0aGVy
ZWZvcmUgaXQgZG9lcyBub3QNCj4gYmluZCBhdXRvbWF0aWNhbGx5LiAgSG93IGNhbiBJIG1ha2Ug
dGhlIFBETyBhcHBlYXJlZCB0aGUgZmlyc3QgdGltZSBhcw0KPiBpdCBzaG91bGQ/DQo+IA0KPiB4
ZW52aWYgZG9lcyBub3QgbG9hZCwgV2luZG93cyByZXR1cm5zIGFuIGVycm9yIDEwLg0KDQpPaywg
c28gdGhhdCdzIHlvdXIgcHJvYmxlbS4gTWVzc2luZyB3aXRoIElORiBmaWxlcyBpcyBuZXZlciB0
aGUgYW5zd2VyLg0KDQpEaWQgeW91IGJ1aWxkIGFsbCB0aGUgZHJpdmVycyB5b3Vyc2VsZj8gVGhl
IHVzdWFsIHJlYXNvbiBmb3IgWEVOVklGIGZhaWxpbmcgdG8gbG9hZCBpcyB0aGF0IGl0J3Mgbm90
IGNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiBvZiBYRU5CVVMgeW91IGhhdmUgaW5zdGFsbGVk
Lg0KDQo+IA0KPiBIb3cgY2FuIEkgZ2V0IFFFTVUgbG9ncz8NCj4gDQoNCldoYXQgUUVNVSBhcmUg
eW91IHJ1bm5pbmcgaW4gZG9tMD8gRGlkIHlvdSBidWlsZCB5b3VyIFhlbiBpbnN0YWxsYXRpb24g
eW91cnNlbGY/DQoNCiAgUGF1bA0KDQo+IENvcmRpYWxlbWVudCwNCj4gRG9taW5pYyBSdXNzZWxs
DQo+IE1TSSBCdXJlYXV0aXF1ZSBpbmMuDQo+IA0KPiBMZSAyMDE2LTA1LTExIMOgIDA1OjQxLCBQ
YXVsIER1cnJhbnQgYSDDqWNyaXQgOg0KPiA+IERlLWh0bWxpbmcuLi4gUGxlYXNlIHNlbmQgZW1h
aWxzIGluIHBsYWluIHRleHQuDQo+ID4NCj4gPiAtLS0NCj4gPiBGcm9tOiBEb21pbmljIFJ1c3Nl
bGwgW21haWx0bzpkb21pbmljQG1zaWJ1cmVhdXRpcXVlLmNhXQ0KPiA+IFNlbnQ6IDEwIE1heSAy
MDE2IDIwOjM1DQo+ID4gVG86IFBhdWwgRHVycmFudA0KPiA+IENjOiB3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcNCj4gPiBTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hlbi1k
ZXZlbF0gUFZMIFhlbk5ldCBpbmYNCj4gPg0KPiA+IEhlbGxvLA0KPiA+IEZvciB0aGUgZGV2aWNl
IElEcywgaXQgaXMgb25seSBieSBtb2RpZnlpbmcgdGhlIElEcyBpbiB0aGUgaW5mIGZpbGUgdGhh
dA0KPiBXaW5kb3dzIHdhcyBhc3NpZ25pbmcgdGhlIHhlbm5ldCBkcml2ZXJzIHRvIHRoZSBuZXR3
b3JrIGNhcmQgYXV0b21hdGljYWxseSwNCj4gb3RoZXJ3aXNlIHRoZXkgaGF2ZSB0byBiZSBhc3Np
Z25lZCBtYW51YWxseS4NCj4gPiAtLS0NCj4gPg0KPiA+IEFzIEkgdHJpZWQgdG8gZXhwbGFpbi4g
VGhlIFBETyB0byB3aGljaCB5b3UgYXJlIHRyeWluZyB0byBhdHRhY2ggWEVOTkVUIGlzDQo+IHRo
ZSB3cm9uZyBvbmUuIEJ5IG1vZGlmeWluZyB0aGUgSURzIGluIHRoZSBJTkYgZmlsZSB5b3UgbWF5
IGJlIGFibGUgdG8gZ2V0DQo+IHRoZSBkcml2ZXIgdG8gYmluZCwgYnV0IHRoZXJlJ3Mgbm8gd2F5
IGl0J3MgZ29pbmcgdG8gZnVuY3Rpb24uIFRoZSBQRE8geW91IGFyZQ0KPiBsb29raW5nIGF0IChY
RU5CVVNcVkVOX1hQMDAwMSZERVZfVklGJlJFVl8wODAwMDAwOSkgaXMgdGhlIG9uZSB0aGF0DQo+
IHRoZSBYRU5WSUYgZHJpdmVyIHNob3VsZCBiaW5kIHRvLiBJdCB3aWxsIHRoZW4gY3JlYXRlIFBE
T3Mgb2YgdGhlIGZvcm0NCj4gWEVOVklGXFZFTl9YUDAwMDEmREVWX05FVCZSRVZfMDgwMDAwMDkg
d2hpY24gWEVOTkVUIHdpbGwgdGhlbiBiaW5kDQo+IHRvLg0KPiA+DQo+ID4gLS0tLQ0KPiA+IEkg
ZGlkIGNsZWFuIHRoZSBHUExQViBkcml2ZXJzLCBidXQgdGhlIHhlbnBjaSBpcyBoYXJkIHRvIHJl
bW92ZSwgYmVjYXVzZQ0KPiBXaW5kb3dzIHRyZWF0cyBpdCBhcyBhIGNyaXRpY2FsLCBib290IG5l
ZWRlZCwgZHJpdmVyLCBzbyBub3QgYWxsIHRoZSBrZXlzIGFyZQ0KPiBhY2Nlc3NpYmxlIHRvIGJl
IGRlbGV0ZWQgaW4gdGhlIHJlZ2lzdHJ5Lg0KPiA+IFRoZSBuZXcgeGVuYnVzIGRyaXZlciBpcyBh
Y3RpdmUsIGFuZCB4ZW5wY2kgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBmaWxlcyBsaXN0DQo+IG9m
IHRoZSBsb2FkZWQgZmlsZXMgaW4gdGhlIGRyaXZlciBvZiB0aGUgcGVyaXBoZXJhbHMgKGF0IGZp
cnN0LCBJIHdhcyBub3QgY2xlYW5pbmcNCj4gcHJvcGVybHkgeGVucGNpLCBhbmQgaXQgd2FzIGFw
cGVhcmluZyBhcyBhIGxvYWRlZCBmaWxlIGZvciB0aGUgeGVuYnVzIGFuZA0KPiB4ZW5uZXQgZHJp
dmVycykuICBUbyBiZSBzdXJlLCBJIGRlbGV0ZWQgdGhlIHhlbnBjaS5zeXMgYW5kIHJlYm9vdGVk
LCBpdA0KPiByZWJvb3RlZCBwcm9wZXJseSwgb3RoZXJ3aXNlIGl0IHdvdWxkIGdpdmUgYSBibHVl
IHNjcmVlbiB3aXRoIGVycm9yIDdCLg0KPiA+IE9uIHRoZSB2aXJ0dWFsIGNvbXB1dGVyLCBldmVy
eSBuZXcgZHJpdmVycyBhcmUgbG9hZGVkLCBub3QgcmVwb3J0aW5nIGVycm9ycw0KPiBleGNlcHQg
Zm9yIHhlbm5ldCwgdGhhdCByZXR1cm5zIGFuIGVycm9yIDEwLiAgSSBkaXNjb3ZlcmVkIGluIFdp
bmRvd3MgbG9ncyBhDQo+IGdlbmVyaWMgZXJyb3IgKGJ1dCBub3QgdGFnZ2VkIGFzIGFuIGVycm9y
KSB3aGljaCBtZW50aW9ucw0KPiBQbnBEZXZpY2VQcm9ibGVtQ29kZSwgd2hpY2ggYnkgZ29vZ2xp
bmcgZGlkIG5vdCByZXZlYWwgbXVjaC4NCj4gPiAtLS0tDQo+ID4NCj4gPiBJcyBYRU5WSUYgbG9h
ZGVkIGFuZCBmdW5jdGlvbmluZz8gRG8geW91IGhhdmUgYSBsb2cgZnJvbSBRRU1VPw0KPiA+DQo+
ID4gICAgUGF1bA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 11 15:58:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 15:58:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0WWv-0003R5-CS; Wed, 11 May 2016 15:58:33 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0WWt-0003Qq-Oy
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 15:58:31 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 EB/4E-18833-7A653375; Wed, 11 May 2016 15:58:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRWlGSWpSXmKPExsUioVq3SndZmHG
 4QedBZos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8XuPQUG3f8WshoVsDYzrHboYOTmEBPYzSuy4
 ZwtiCwuYSWz68pYRxBYR0JKYsGUrUxcjF1DNeyaJ6zsOsoEkmAW8Jc7NmcTcxcjBwSZgKDHhn
 h5ImF9ASeLNp4tgJbwCLhLHN19gB7FZBFQlNl/ZBBYXFYiS2L5gCStEjaDEyZlPWEDGcAp4SE
 x74gUxPVRi9olrbBMYeWchqZqFJAVhm0nM2/yQGcKWl2jeOhvI5gCy1SSWtSohCy9gZFvFqF6
 cWlSWWqRrpJdUlJmeUZKbmJmja2hgppebWlycmJ6ak5hUrJecn7uJERiSDECwg3HZX6dDjJIc
 TEqivG+kjcOF+JLyUyozEosz4otKc1KLDzHKcHAoSfD+DQXKCRalpqdWpGXmAKMDJi3BwaMkw
 vsPJM1bXJCYW5yZDpE6xagoJc77ACQhAJLIKM2Da4NF5CVGWSlhXkagQ4R4ClKLcjNLUOVfMY
 pzMCoJ874FmcKTmVcCN/0V0GImoMXV141AFpckIqSkGhgzrIvWOcWd2ve71PmaZ8LdtKI/2x3
 WPNZlS2p/tXb/RrlUdbGwpN7Jn+7O5Z6/4J7zvuMMGXbyoRuu/Jq/ezf/qZuhL2SMtmqfN3qv
 8PGT1JKg0krBlFbHIE+ey1E3LvdIBHrsiOUpUHkb2Rwexxj74tWNSeeUH/4UW73Vs9KpV9dLP
 ul52DIlluKMREMt5qLiRAC0nIVewwIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-7.tower-21.messagelabs.com!1462982309!13810063!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38688 invoked from network); 11 May 2016 15:58:29 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-7.tower-21.messagelabs.com with SMTP; 11 May 2016 15:58:29 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id C38B080DB9;
 Wed, 11 May 2016 11:58:23 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
 <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
 <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <a70a6312-da6b-1aeb-dd20-961b3de510c7@msibureautique.ca>
Date: Wed, 11 May 2016 11:58:28 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0221266389618934691=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--===============0221266389618934691==
Content-Type: multipart/alternative;
 boundary="------------395C67392A6BEAE914E271E8"

This is a multi-part message in MIME format.
--------------395C67392A6BEAE914E271E8
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

I messed with the inf after I noticed that Windows was not able to bind 
automatically the driver.  I looked why, and found the IDs did not match 
those reported by Windows.  So only playing with this does not affect 
anything else, it is not my first time playing around with IDs.

I did not build the drivers myself.  I tried xennet drivers from 
February and April, which are the only two available from xen project 
web site.

I did build Xen, because the one coming with CentOS is too old. No 
modifications were done in the source.  GPL drivers were working fine, I 
just wanted to be more up to date with Windows drivers, spent some time 
on it, then was looking for help with this, since I want to avoid having 
to play and debug the source myself.

Cordialement,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-11 à 10:12, Paul Durrant a écrit :
>> -----Original Message-----
>> From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On
>> Behalf Of Dominic Russell
>> Sent: 11 May 2016 14:53
>> To: Paul Durrant
>> Cc: win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
>>
>> The PDO that Windows shows is the one I mentioned, therefore it does not
>> bind automatically.  How can I make the PDO appeared the first time as
>> it should?
>>
>> xenvif does not load, Windows returns an error 10.
> Ok, so that's your problem. Messing with INF files is never the answer.
>
> Did you build all the drivers yourself? The usual reason for XENVIF failing to load is that it's not compatible with the version of XENBUS you have installed.
>
>> How can I get QEMU logs?
>>
> What QEMU are you running in dom0? Did you build your Xen installation yourself?
>
>    Paul
>
>> Cordialement,
>> Dominic Russell
>> MSI Bureautique inc.
>>
>> Le 2016-05-11 à 05:41, Paul Durrant a écrit :
>>> De-htmling... Please send emails in plain text.
>>>
>>> ---
>>> From: Dominic Russell [mailto:dominic@msibureautique.ca]
>>> Sent: 10 May 2016 20:35
>>> To: Paul Durrant
>>> Cc: win-pv-devel@lists.xenproject.org
>>> Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
>>>
>>> Hello,
>>> For the device IDs, it is only by modifying the IDs in the inf file that
>> Windows was assigning the xennet drivers to the network card automatically,
>> otherwise they have to be assigned manually.
>>> ---
>>>
>>> As I tried to explain. The PDO to which you are trying to attach XENNET is
>> the wrong one. By modifying the IDs in the INF file you may be able to get
>> the driver to bind, but there's no way it's going to function. The PDO you are
>> looking at (XENBUS\VEN_XP0001&DEV_VIF&REV_08000009) is the one that
>> the XENVIF driver should bind to. It will then create PDOs of the form
>> XENVIF\VEN_XP0001&DEV_NET&REV_08000009 whicn XENNET will then bind
>> to.
>>> ----
>>> I did clean the GPLPV drivers, but the xenpci is hard to remove, because
>> Windows treats it as a critical, boot needed, driver, so not all the keys are
>> accessible to be deleted in the registry.
>>> The new xenbus driver is active, and xenpci does not appear in the files list
>> of the loaded files in the driver of the peripherals (at first, I was not cleaning
>> properly xenpci, and it was appearing as a loaded file for the xenbus and
>> xennet drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
>> rebooted properly, otherwise it would give a blue screen with error 7B.
>>> On the virtual computer, every new drivers are loaded, not reporting errors
>> except for xennet, that returns an error 10.  I discovered in Windows logs a
>> generic error (but not tagged as an error) which mentions
>> PnpDeviceProblemCode, which by googling did not reveal much.
>>> ----
>>>
>>> Is XENVIF loaded and functioning? Do you have a log from QEMU?
>>>
>>>     Paul
>>
>> _______________________________________________
>> win-pv-devel mailing list
>> win-pv-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


--------------395C67392A6BEAE914E271E8
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>I messed with the inf after I noticed that Windows was not able
      to bind automatically the driver.  I looked why, and found the IDs
      did not match those reported by Windows.  So only playing with
      this does not affect anything else, it is not my first time
      playing around with IDs.</p>
    <p>I did not build the drivers myself.  I tried xennet drivers from
      February and April, which are the only two available from xen
      project web site.<br>
    </p>
    <p>I did build Xen, because the one coming with CentOS is too old. 
      No modifications were done in the source.  GPL drivers were
      working fine, I just wanted to be more up to date with Windows
      drivers, spent some time on it, then was looking for help with
      this, since I want to avoid having to play and debug the source
      myself.<br>
    </p>
    <pre class="moz-signature" cols="72">Cordialement,
Dominic Russell
MSI Bureautique inc.
</pre>
    <div class="moz-cite-prefix">Le 2016-05-11 à 10:12, Paul Durrant a
      écrit :<br>
    </div>
    <blockquote
      cite="mid:1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">-----Original Message-----
From: win-pv-devel [<a class="moz-txt-link-freetext" href="mailto:win-pv-devel-bounces@lists.xenproject.org">mailto:win-pv-devel-bounces@lists.xenproject.org</a>] On
Behalf Of Dominic Russell
Sent: 11 May 2016 14:53
To: Paul Durrant
Cc: <a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf

The PDO that Windows shows is the one I mentioned, therefore it does not
bind automatically.  How can I make the PDO appeared the first time as
it should?

xenvif does not load, Windows returns an error 10.
</pre>
      </blockquote>
      <pre wrap="">
Ok, so that's your problem. Messing with INF files is never the answer.

Did you build all the drivers yourself? The usual reason for XENVIF failing to load is that it's not compatible with the version of XENBUS you have installed.

</pre>
      <blockquote type="cite">
        <pre wrap="">
How can I get QEMU logs?

</pre>
      </blockquote>
      <pre wrap="">
What QEMU are you running in dom0? Did you build your Xen installation yourself?

  Paul

</pre>
      <blockquote type="cite">
        <pre wrap="">Cordialement,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-11 à 05:41, Paul Durrant a écrit :
</pre>
        <blockquote type="cite">
          <pre wrap="">De-htmling... Please send emails in plain text.

---
From: Dominic Russell [<a class="moz-txt-link-freetext" href="mailto:dominic@msibureautique.ca">mailto:dominic@msibureautique.ca</a>]
Sent: 10 May 2016 20:35
To: Paul Durrant
Cc: <a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf

Hello,
For the device IDs, it is only by modifying the IDs in the inf file that
</pre>
        </blockquote>
        <pre wrap="">Windows was assigning the xennet drivers to the network card automatically,
otherwise they have to be assigned manually.
</pre>
        <blockquote type="cite">
          <pre wrap="">---

As I tried to explain. The PDO to which you are trying to attach XENNET is
</pre>
        </blockquote>
        <pre wrap="">the wrong one. By modifying the IDs in the INF file you may be able to get
the driver to bind, but there's no way it's going to function. The PDO you are
looking at (XENBUS\VEN_XP0001&amp;DEV_VIF&amp;REV_08000009) is the one that
the XENVIF driver should bind to. It will then create PDOs of the form
XENVIF\VEN_XP0001&amp;DEV_NET&amp;REV_08000009 whicn XENNET will then bind
to.
</pre>
        <blockquote type="cite">
          <pre wrap="">
----
I did clean the GPLPV drivers, but the xenpci is hard to remove, because
</pre>
        </blockquote>
        <pre wrap="">Windows treats it as a critical, boot needed, driver, so not all the keys are
accessible to be deleted in the registry.
</pre>
        <blockquote type="cite">
          <pre wrap="">The new xenbus driver is active, and xenpci does not appear in the files list
</pre>
        </blockquote>
        <pre wrap="">of the loaded files in the driver of the peripherals (at first, I was not cleaning
properly xenpci, and it was appearing as a loaded file for the xenbus and
xennet drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
rebooted properly, otherwise it would give a blue screen with error 7B.
</pre>
        <blockquote type="cite">
          <pre wrap="">On the virtual computer, every new drivers are loaded, not reporting errors
</pre>
        </blockquote>
        <pre wrap="">except for xennet, that returns an error 10.  I discovered in Windows logs a
generic error (but not tagged as an error) which mentions
PnpDeviceProblemCode, which by googling did not reveal much.
</pre>
        <blockquote type="cite">
          <pre wrap="">----

Is XENVIF loaded and functioning? Do you have a log from QEMU?

   Paul
</pre>
        </blockquote>
        <pre wrap="">

_______________________________________________
win-pv-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
<a class="moz-txt-link-freetext" href="http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel">http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel</a>
</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>

--------------395C67392A6BEAE914E271E8--


--===============0221266389618934691==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============0221266389618934691==--


From win-pv-devel-bounces@lists.xenproject.org Wed May 11 15:58:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 11 May 2016 15:58:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0WWv-0003R5-CS; Wed, 11 May 2016 15:58:33 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <dominic@msibureautique.ca>) id 1b0WWt-0003Qq-Oy
 for win-pv-devel@lists.xenproject.org; Wed, 11 May 2016 15:58:31 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 EB/4E-18833-7A653375; Wed, 11 May 2016 15:58:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRWlGSWpSXmKPExsUioVq3SndZmHG
 4QedBZos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8XuPQUG3f8WshoVsDYzrHboYOTmEBPYzSuy4
 ZwtiCwuYSWz68pYRxBYR0JKYsGUrUxcjF1DNeyaJ6zsOsoEkmAW8Jc7NmcTcxcjBwSZgKDHhn
 h5ImF9ASeLNp4tgJbwCLhLHN19gB7FZBFQlNl/ZBBYXFYiS2L5gCStEjaDEyZlPWEDGcAp4SE
 x74gUxPVRi9olrbBMYeWchqZqFJAVhm0nM2/yQGcKWl2jeOhvI5gCy1SSWtSohCy9gZFvFqF6
 cWlSWWqRrpJdUlJmeUZKbmJmja2hgppebWlycmJ6ak5hUrJecn7uJERiSDECwg3HZX6dDjJIc
 TEqivG+kjcOF+JLyUyozEosz4otKc1KLDzHKcHAoSfD+DQXKCRalpqdWpGXmAKMDJi3BwaMkw
 vsPJM1bXJCYW5yZDpE6xagoJc77ACQhAJLIKM2Da4NF5CVGWSlhXkagQ4R4ClKLcjNLUOVfMY
 pzMCoJ874FmcKTmVcCN/0V0GImoMXV141AFpckIqSkGhgzrIvWOcWd2ve71PmaZ8LdtKI/2x3
 WPNZlS2p/tXb/RrlUdbGwpN7Jn+7O5Z6/4J7zvuMMGXbyoRuu/Jq/ezf/qZuhL2SMtmqfN3qv
 8PGT1JKg0krBlFbHIE+ey1E3LvdIBHrsiOUpUHkb2Rwexxj74tWNSeeUH/4UW73Vs9KpV9dLP
 ul52DIlluKMREMt5qLiRAC0nIVewwIAAA==
X-Env-Sender: dominic@msibureautique.ca
X-Msg-Ref: server-7.tower-21.messagelabs.com!1462982309!13810063!1
X-Originating-IP: [24.37.126.170]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38688 invoked from network); 11 May 2016 15:58:29 -0000
Received: from mail.msibureautique.ca (HELO
 xen-Serveur-MAGEIA.msibureautique.local) (24.37.126.170)
 by server-7.tower-21.messagelabs.com with SMTP; 11 May 2016 15:58:29 -0000
Received: from [10.0.0.43] (PC10-Doum.msibureautique.local [10.0.0.43])
 by xen-Serveur-MAGEIA.msibureautique.local (Postfix) with ESMTPA id C38B080DB9;
 Wed, 11 May 2016 11:58:23 -0400 (EDT)
To: Paul Durrant <Paul.Durrant@citrix.com>
References: <f09160f8-9736-1202-b349-6f44be05fcaa@msibureautique.ca>
 <7bdd9c851f1f4a349edefb335b8998ff@AMSPEX02CL03.citrite.net>
 <bc0ae576-3796-2ac1-9ec0-dcadfc1dfdad@msibureautique.ca>
 <e9eaf70b009145ae88409e733cd52b95@AMSPEX02CL03.citrite.net>
 <488acda8-82c1-b89b-0228-095fd05558ca@msibureautique.ca>
 <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
From: Dominic Russell <dominic@msibureautique.ca>
Organization: MSI Bureautique inc.
Message-ID: <a70a6312-da6b-1aeb-dd20-961b3de510c7@msibureautique.ca>
Date: Wed, 11 May 2016 11:58:28 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0221266389618934691=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--===============0221266389618934691==
Content-Type: multipart/alternative;
 boundary="------------395C67392A6BEAE914E271E8"

This is a multi-part message in MIME format.
--------------395C67392A6BEAE914E271E8
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

I messed with the inf after I noticed that Windows was not able to bind 
automatically the driver.  I looked why, and found the IDs did not match 
those reported by Windows.  So only playing with this does not affect 
anything else, it is not my first time playing around with IDs.

I did not build the drivers myself.  I tried xennet drivers from 
February and April, which are the only two available from xen project 
web site.

I did build Xen, because the one coming with CentOS is too old. No 
modifications were done in the source.  GPL drivers were working fine, I 
just wanted to be more up to date with Windows drivers, spent some time 
on it, then was looking for help with this, since I want to avoid having 
to play and debug the source myself.

Cordialement,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-11 à 10:12, Paul Durrant a écrit :
>> -----Original Message-----
>> From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On
>> Behalf Of Dominic Russell
>> Sent: 11 May 2016 14:53
>> To: Paul Durrant
>> Cc: win-pv-devel@lists.xenproject.org
>> Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
>>
>> The PDO that Windows shows is the one I mentioned, therefore it does not
>> bind automatically.  How can I make the PDO appeared the first time as
>> it should?
>>
>> xenvif does not load, Windows returns an error 10.
> Ok, so that's your problem. Messing with INF files is never the answer.
>
> Did you build all the drivers yourself? The usual reason for XENVIF failing to load is that it's not compatible with the version of XENBUS you have installed.
>
>> How can I get QEMU logs?
>>
> What QEMU are you running in dom0? Did you build your Xen installation yourself?
>
>    Paul
>
>> Cordialement,
>> Dominic Russell
>> MSI Bureautique inc.
>>
>> Le 2016-05-11 à 05:41, Paul Durrant a écrit :
>>> De-htmling... Please send emails in plain text.
>>>
>>> ---
>>> From: Dominic Russell [mailto:dominic@msibureautique.ca]
>>> Sent: 10 May 2016 20:35
>>> To: Paul Durrant
>>> Cc: win-pv-devel@lists.xenproject.org
>>> Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf
>>>
>>> Hello,
>>> For the device IDs, it is only by modifying the IDs in the inf file that
>> Windows was assigning the xennet drivers to the network card automatically,
>> otherwise they have to be assigned manually.
>>> ---
>>>
>>> As I tried to explain. The PDO to which you are trying to attach XENNET is
>> the wrong one. By modifying the IDs in the INF file you may be able to get
>> the driver to bind, but there's no way it's going to function. The PDO you are
>> looking at (XENBUS\VEN_XP0001&DEV_VIF&REV_08000009) is the one that
>> the XENVIF driver should bind to. It will then create PDOs of the form
>> XENVIF\VEN_XP0001&DEV_NET&REV_08000009 whicn XENNET will then bind
>> to.
>>> ----
>>> I did clean the GPLPV drivers, but the xenpci is hard to remove, because
>> Windows treats it as a critical, boot needed, driver, so not all the keys are
>> accessible to be deleted in the registry.
>>> The new xenbus driver is active, and xenpci does not appear in the files list
>> of the loaded files in the driver of the peripherals (at first, I was not cleaning
>> properly xenpci, and it was appearing as a loaded file for the xenbus and
>> xennet drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
>> rebooted properly, otherwise it would give a blue screen with error 7B.
>>> On the virtual computer, every new drivers are loaded, not reporting errors
>> except for xennet, that returns an error 10.  I discovered in Windows logs a
>> generic error (but not tagged as an error) which mentions
>> PnpDeviceProblemCode, which by googling did not reveal much.
>>> ----
>>>
>>> Is XENVIF loaded and functioning? Do you have a log from QEMU?
>>>
>>>     Paul
>>
>> _______________________________________________
>> win-pv-devel mailing list
>> win-pv-devel@lists.xenproject.org
>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


--------------395C67392A6BEAE914E271E8
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>I messed with the inf after I noticed that Windows was not able
      to bind automatically the driver.  I looked why, and found the IDs
      did not match those reported by Windows.  So only playing with
      this does not affect anything else, it is not my first time
      playing around with IDs.</p>
    <p>I did not build the drivers myself.  I tried xennet drivers from
      February and April, which are the only two available from xen
      project web site.<br>
    </p>
    <p>I did build Xen, because the one coming with CentOS is too old. 
      No modifications were done in the source.  GPL drivers were
      working fine, I just wanted to be more up to date with Windows
      drivers, spent some time on it, then was looking for help with
      this, since I want to avoid having to play and debug the source
      myself.<br>
    </p>
    <pre class="moz-signature" cols="72">Cordialement,
Dominic Russell
MSI Bureautique inc.
</pre>
    <div class="moz-cite-prefix">Le 2016-05-11 à 10:12, Paul Durrant a
      écrit :<br>
    </div>
    <blockquote
      cite="mid:1ae47a0be5714f09a5284a6a860649ab@AMSPEX02CL03.citrite.net"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">-----Original Message-----
From: win-pv-devel [<a class="moz-txt-link-freetext" href="mailto:win-pv-devel-bounces@lists.xenproject.org">mailto:win-pv-devel-bounces@lists.xenproject.org</a>] On
Behalf Of Dominic Russell
Sent: 11 May 2016 14:53
To: Paul Durrant
Cc: <a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf

The PDO that Windows shows is the one I mentioned, therefore it does not
bind automatically.  How can I make the PDO appeared the first time as
it should?

xenvif does not load, Windows returns an error 10.
</pre>
      </blockquote>
      <pre wrap="">
Ok, so that's your problem. Messing with INF files is never the answer.

Did you build all the drivers yourself? The usual reason for XENVIF failing to load is that it's not compatible with the version of XENBUS you have installed.

</pre>
      <blockquote type="cite">
        <pre wrap="">
How can I get QEMU logs?

</pre>
      </blockquote>
      <pre wrap="">
What QEMU are you running in dom0? Did you build your Xen installation yourself?

  Paul

</pre>
      <blockquote type="cite">
        <pre wrap="">Cordialement,
Dominic Russell
MSI Bureautique inc.

Le 2016-05-11 à 05:41, Paul Durrant a écrit :
</pre>
        <blockquote type="cite">
          <pre wrap="">De-htmling... Please send emails in plain text.

---
From: Dominic Russell [<a class="moz-txt-link-freetext" href="mailto:dominic@msibureautique.ca">mailto:dominic@msibureautique.ca</a>]
Sent: 10 May 2016 20:35
To: Paul Durrant
Cc: <a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
Subject: Re: [win-pv-devel] [Xen-devel] PVL XenNet inf

Hello,
For the device IDs, it is only by modifying the IDs in the inf file that
</pre>
        </blockquote>
        <pre wrap="">Windows was assigning the xennet drivers to the network card automatically,
otherwise they have to be assigned manually.
</pre>
        <blockquote type="cite">
          <pre wrap="">---

As I tried to explain. The PDO to which you are trying to attach XENNET is
</pre>
        </blockquote>
        <pre wrap="">the wrong one. By modifying the IDs in the INF file you may be able to get
the driver to bind, but there's no way it's going to function. The PDO you are
looking at (XENBUS\VEN_XP0001&amp;DEV_VIF&amp;REV_08000009) is the one that
the XENVIF driver should bind to. It will then create PDOs of the form
XENVIF\VEN_XP0001&amp;DEV_NET&amp;REV_08000009 whicn XENNET will then bind
to.
</pre>
        <blockquote type="cite">
          <pre wrap="">
----
I did clean the GPLPV drivers, but the xenpci is hard to remove, because
</pre>
        </blockquote>
        <pre wrap="">Windows treats it as a critical, boot needed, driver, so not all the keys are
accessible to be deleted in the registry.
</pre>
        <blockquote type="cite">
          <pre wrap="">The new xenbus driver is active, and xenpci does not appear in the files list
</pre>
        </blockquote>
        <pre wrap="">of the loaded files in the driver of the peripherals (at first, I was not cleaning
properly xenpci, and it was appearing as a loaded file for the xenbus and
xennet drivers).  To be sure, I deleted the xenpci.sys and rebooted, it
rebooted properly, otherwise it would give a blue screen with error 7B.
</pre>
        <blockquote type="cite">
          <pre wrap="">On the virtual computer, every new drivers are loaded, not reporting errors
</pre>
        </blockquote>
        <pre wrap="">except for xennet, that returns an error 10.  I discovered in Windows logs a
generic error (but not tagged as an error) which mentions
PnpDeviceProblemCode, which by googling did not reveal much.
</pre>
        <blockquote type="cite">
          <pre wrap="">----

Is XENVIF loaded and functioning? Do you have a log from QEMU?

   Paul
</pre>
        </blockquote>
        <pre wrap="">

_______________________________________________
win-pv-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a>
<a class="moz-txt-link-freetext" href="http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel">http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel</a>
</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>

--------------395C67392A6BEAE914E271E8--


--===============0221266389618934691==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============0221266389618934691==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 12 09:50:14 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 12 May 2016 09:50:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0nFy-0004tX-4C; Thu, 12 May 2016 09:50:10 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b0nFx-0004tQ-SA
 for win-pv-devel@lists.xenproject.org; Thu, 12 May 2016 09:50:09 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 B8/35-09532-1D154375; Thu, 12 May 2016 09:50:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEIsWRWlGSWpSXmKPExsXiVRvkqHsh0CT
 c4MFVdYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacezED+aCZuWK/YdaWRoYG6W6GDk5hATmMEpM
 vGHTxcjFwSJwiUXi27afLCCOhMA7FonGBZfZQKokBGIkHs66xQ5hV0gc//ibBaJbUaL52gV2k
 AYhgRVMEv9WP2QFSbAJqEvcfr8YqsFO4tOsm2C2iICqxLXlx8CGMgtoSTzcMI8RxBYW0JeYem
 ESM4jNAlSzYsJeJhCbV8BdYt3fucwQc+Qk9k5ezTKBkX8BI8MqRvXi1KKy1CJdQ72kosz0jJL
 cxMwcXUMDM73c1OLixPTUnMSkYr3k/NxNjMDwYQCCHYw7nzsdYpTkYFIS5c01MQkX4kvKT6nM
 SCzOiC8qzUktPsQow8GhJMHbFQCUEyxKTU+tSMvMAQYyTFqCg0dJhHcpSJq3uCAxtzgzHSJ1i
 lGXY8vUe2uZhFjy8vNSpcQhZgiAFGWU5sGNgEXVJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKg
 nz9oFM4cnMK4Hb9AroCCagI6qvG4EcUZKIkJJqYCx9HHOo71/En2aW65s1W5fcK3iXG89u6Hh
 z8fsnUyoElBvKt1gofLsaXzbl2/yGviMCm/aYqM93Lndzilxwakv2NsefMoK3FILYc0051hWb
 3xIUuq6p9qfjfI3b/hun3hQfdPo+/6TViexfMY0P729uWNqXYyi8sLL4WIR7edzBIrGiPmHVS
 UosxRmJhlrMRcWJAMYH+VSlAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1463046608!13808466!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_RANDOMQ, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10234 invoked from network); 12 May 2016 09:50:08 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 May 2016 09:50:08 -0000
Received: by mail-wm0-f65.google.com with SMTP id e201so14851757wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 12 May 2016 02:50:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=kFB6AjXGecUkIfrWOMHfSFrTZW6u+i2vrgHkp9vt+DQ=;
 b=PNrLo9Lw1FQVGlUxkGSlYiyEMmfEp4pluIEukP/sATESF44ywPH2vnIC5CmBVvuwPy
 R0Pj10SY9ijDHm1go9z0ba1SEPQp7mwNI7UkMPZbtB5fXc2YeNygz35TZyLYrOHX/Fc6
 TbrmWr6Y79u+lWawNPPelQmDVeCY7Mtk/Tmr/iBqomdA23vhDOzE1RxGyX8wSiRwxmeN
 7Di3Xk8+L5hoTk5K8GigcvoADl+CwQuR3vfbTBz9uL8uvWdJ8MChDsRWAuiXoQPMFqx8
 FBwD+m0+FDGo3XV95w87HvEA3adqXLUbV6OLh7/797czORA09qdxhE1jVR4hV7Um6xuO
 Je/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=kFB6AjXGecUkIfrWOMHfSFrTZW6u+i2vrgHkp9vt+DQ=;
 b=EFJGabwPLs6RCP46sEW8iU7bnKSefmfx+qaq4nSVEpCxgpKEWLEOnpeL7ZhALN5kjV
 1an8VDxEH6TBAg+6s19zfJk898r367a+0slXIsrmzX2JEcK34gI/4fZECBJF9ThPp5+k
 oZPs3COdHoRHUm1rBXbR5UnMWKzQtvwbNgkMRzYsSAIVURGZpiB3K6uqylaw5ODRR9yp
 QzVUcVbH+9SGnyYWczlNncGATJOuNCUA5+Gil4dAbiPOuISs/tUeQgHfQuYh0u/yZGwl
 XQ1MO1un0Tt4SfJxCbiC/jNNazbphL4fS3QbcGsnvx7P/ZOPHnw7dhF2bJtTx9cbi+DF
 Qaqw==
X-Gm-Message-State: AOPr4FWPQNfNcv/tqz/Zh3XiPu0NiCLfNgHASWmmUAUVDSoVBponhbGSf/Y7XQjcaJrjvg==
X-Received: by 10.194.121.8 with SMTP id lg8mr8834276wjb.16.1463046607086;
 Thu, 12 May 2016 02:50:07 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id iv1sm12489237wjb.34.2016.05.12.02.50.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 12 May 2016 02:50:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 12 May 2016 10:50:00 +0100
Message-Id: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Don't free memory at HIGH IRQL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIGhhc2ggdGFibGUgcmVtb3ZlIGZ1bmN0aW9uIGlzIGludm9rZWQgYnkgdGhlIEVWVENITiBl
YXJseSBjYWxsYmFjayBvbgpyZXN1bWUgZnJvbSBzdXNwZW5kLiBUaGlzIG1lYW5zIGl0IGlzIGlu
dm9rZWQgYXQgSElHSCBsZXZlbCB3aXRoIGludGVycnVwdHMKZGlzYWJsZWQsIHdoaWNoIG1lYW5z
IHRoYXQgbWVtb3J5IGNhbiBuZWl0aGVyIGJlIGFsbG9jYXRlZCBub3IgZnJlZWQuIFRoZQpjb2Rl
LCBob3dldmVyLCBkb2VzIGluZGVlZCBmcmVlIGEgZGF0YSBzdHJ1Y3R1cmUgYW5kIHRoaXMgbWF5
IHdlbGwgbGVhZAp0byBtZW1vcnkgY29ycnVwdGlvbi4gVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhl
IGlzc3VlIGJ5IGRlZmVycmluZyBmcmVlaW5nCnRoZSBtZW1vcnkgdG8gYSBzdWJzZXF1ZW50bHkg
c2NoZWR1bGVkIERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50
QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbmJ1cy9oYXNoX3RhYmxlLmMgfCA4OCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg
ODIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVuYnVz
L2hhc2hfdGFibGUuYyBiL3NyYy94ZW5idXMvaGFzaF90YWJsZS5jCmluZGV4IDc1MjA2ZTQuLmU5
ZWQ5OTEgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMvaGFzaF90YWJsZS5jCisrKyBiL3NyYy94ZW5i
dXMvaGFzaF90YWJsZS5jCkBAIC01NCw2ICs1NCw4IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5CVVNf
SEFTSF9UQUJMRV9CVUNLRVQgewogCiBzdHJ1Y3QgX1hFTkJVU19IQVNIX1RBQkxFIHsKICAgICBY
RU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICAgQnVja2V0W1hFTkJVU19IQVNIX1RBQkxFX05SX0JV
Q0tFVFNdOworICAgIFhFTkJVU19IQVNIX1RBQkxFX0JVQ0tFVCAgICBIaWRkZW47CisgICAgS0RQ
QyAgICAgICAgICAgICAgICAgICAgICAgIERwYzsKIH07CiAKICNkZWZpbmUgWEVOQlVTX0hBU0hf
VEFCTEVfVEFHICAgJ0hTQUgnCkBAIC0yNDAsMTIgKzI0MiwxNCBAQCBIYXNoVGFibGVSZW1vdmUo
CiAgICAgKQogewogICAgIFBYRU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICBCdWNrZXQ7CisgICAg
UFhFTkJVU19IQVNIX1RBQkxFX0JVQ0tFVCAgIEhpZGRlbjsKICAgICBQTElTVF9FTlRSWSAgICAg
ICAgICAgICAgICAgTGlzdEVudHJ5OwogICAgIFBYRU5CVVNfSEFTSF9UQUJMRV9OT0RFICAgICBO
b2RlOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgICAgICBJcnFsOwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CiAKICAgICBCdWNrZXQgPSAmVGFibGUtPkJ1Y2tl
dFtIYXNoVGFibGVIYXNoKEtleSldOworICAgIEhpZGRlbiA9ICZUYWJsZS0+SGlkZGVuOwogICAg
IAogICAgIEhhc2hUYWJsZUJ1Y2tldExvY2soQnVja2V0LCBUUlVFLCAmSXJxbCk7CiAKQEAgLTI2
OCw3ICsyNzIsMTEgQEAgZm91bmQ6CiAKICAgICBIYXNoVGFibGVCdWNrZXRVbmxvY2soQnVja2V0
LCBUUlVFLCBJcnFsKTsKIAotICAgIF9fSGFzaFRhYmxlRnJlZShOb2RlKTsKKyAgICBIYXNoVGFi
bGVCdWNrZXRMb2NrKEhpZGRlbiwgVFJVRSwgJklycWwpOworICAgIEluc2VydFRhaWxMaXN0KCZI
aWRkZW4tPkxpc3QsICZOb2RlLT5MaXN0RW50cnkpOworICAgIEhhc2hUYWJsZUJ1Y2tldFVubG9j
ayhIaWRkZW4sIFRSVUUsIElycWwpOworCisgICAgS2VJbnNlcnRRdWV1ZURwYygmVGFibGUtPkRw
YywgTlVMTCwgTlVMTCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKQEAgLTMyMiwx
MyArMzMwLDY0IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK3N0YXRpYworX0Z1
bmN0aW9uX2NsYXNzXyhLREVGRVJSRURfUk9VVElORSkKK19JUlFMX3JlcXVpcmVzX21heF8oRElT
UEFUQ0hfTEVWRUwpCitfSVJRTF9yZXF1aXJlc19taW5fKERJU1BBVENIX0xFVkVMKQorX0lSUUxf
cmVxdWlyZXNfKERJU1BBVENIX0xFVkVMKQorX0lSUUxfcmVxdWlyZXNfc2FtZV8KK1ZPSUQKK0hh
c2hUYWJsZURwYygKKyAgICBJTiAgUEtEUEMgICAgICAgICAgICAgICAgICAgRHBjLAorICAgIElO
ICBQVk9JRCAgICAgICAgICAgICAgICAgICBDb250ZXh0LAorICAgIElOICBQVk9JRCAgICAgICAg
ICAgICAgICAgICBBcmd1bWVudDEsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgIEFy
Z3VtZW50MgorICAgICkKK3sKKyAgICBQWEVOQlVTX0hBU0hfVEFCTEUgICAgICAgICAgVGFibGUg
PSBDb250ZXh0OworICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgICAgICBMaXN0OworICAgIFBY
RU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICBIaWRkZW47CisgICAgS0lSUUwgICAgICAgICAgICAg
ICAgICAgICAgIElycWw7CisKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERwYyk7CisgICAg
VU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDEpOworICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoQXJndW1lbnQyKTsKKworICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlzdCk7CisKKyAg
ICBIaWRkZW4gPSAmVGFibGUtPkhpZGRlbjsKKworICAgIEhhc2hUYWJsZUJ1Y2tldExvY2soSGlk
ZGVuLCBUUlVFLCAmSXJxbCk7CisKKyAgICB3aGlsZSAoIUlzTGlzdEVtcHR5KCZIaWRkZW4tPkxp
c3QpKSB7CisgICAgICAgIFBMSVNUX0VOVFJZIExpc3RFbnRyeTsKKworICAgICAgICBMaXN0RW50
cnkgPSBSZW1vdmVIZWFkTGlzdCgmSGlkZGVuLT5MaXN0KTsKKworICAgICAgICBJbnNlcnRUYWls
TGlzdCgmTGlzdCwgTGlzdEVudHJ5KTsKKyAgICB9CisKKyAgICBIYXNoVGFibGVCdWNrZXRVbmxv
Y2soSGlkZGVuLCBUUlVFLCBJcnFsKTsKKworICAgIHdoaWxlICghSXNMaXN0RW1wdHkoJkxpc3Qp
KSB7CisgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgIExpc3RFbnRyeTsKKyAgICAgICAg
UFhFTkJVU19IQVNIX1RBQkxFX05PREUgTm9kZTsKKworICAgICAgICBMaXN0RW50cnkgPSBSZW1v
dmVIZWFkTGlzdCgmTGlzdCk7CisKKyAgICAgICAgTm9kZSA9IENPTlRBSU5JTkdfUkVDT1JEKExp
c3RFbnRyeSwgWEVOQlVTX0hBU0hfVEFCTEVfTk9ERSwgTGlzdEVudHJ5KTsKKyAgICAgICAgX19I
YXNoVGFibGVGcmVlKE5vZGUpOworICAgIH0KK30KKwogTlRTVEFUVVMKIEhhc2hUYWJsZUNyZWF0
ZSgKLSAgICBPVVQgUFhFTkJVU19IQVNIX1RBQkxFICAqVGFibGUKKyAgICBPVVQgUFhFTkJVU19I
QVNIX1RBQkxFICAgICAgKlRhYmxlCiAgICAgKQogewotICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgIEluZGV4OwotICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7CisgICAgUFhFTkJVU19IQVNIX1RBQkxFX0JV
Q0tFVCAgIEhpZGRlbjsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwog
CiAgICAgKlRhYmxlID0gX19IYXNoVGFibGVBbGxvY2F0ZShzaXplb2YgKFhFTkJVU19IQVNIX1RB
QkxFKSk7CiAKQEAgLTM0Miw2ICs0MDEsMTIgQEAgSGFzaFRhYmxlQ3JlYXRlKAogICAgICAgICBJ
bml0aWFsaXplTGlzdEhlYWQoJkJ1Y2tldC0+TGlzdCk7CiAgICAgfQogCisgICAgSGlkZGVuID0g
JigqVGFibGUpLT5IaWRkZW47CisKKyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkhpZGRlbi0+TGlz
dCk7CisKKyAgICBLZUluaXRpYWxpemVEcGMoJigqVGFibGUpLT5EcGMsIEhhc2hUYWJsZURwYywg
KlRhYmxlKTsKKwogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAogZmFpbDE6CkBAIC0zNTIs
MTAgKzQxNywyMSBAQCBmYWlsMToKIAogVk9JRAogSGFzaFRhYmxlRGVzdHJveSgKLSAgICBJTiAg
UFhFTkJVU19IQVNIX1RBQkxFICBUYWJsZQorICAgIElOICBQWEVOQlVTX0hBU0hfVEFCTEUgICAg
ICBUYWJsZQogICAgICkKIHsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBJbmRleDsKKyAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7CisgICAgUFhFTkJVU19IQVNIX1RB
QkxFX0JVQ0tFVCAgIEhpZGRlbjsKKworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwg
PT0sIFBBU1NJVkVfTEVWRUwpOworICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKKyAgICBSdGxa
ZXJvTWVtb3J5KCZUYWJsZS0+RHBjLCBzaXplb2YgKEtEUEMpKTsKKworICAgIEhpZGRlbiA9ICZU
YWJsZS0+SGlkZGVuOworCisgICAgQVNTRVJUKElzTGlzdEVtcHR5KCZIaWRkZW4tPkxpc3QpKTsK
KyAgICBSdGxaZXJvTWVtb3J5KCZIaWRkZW4tPkxpc3QsIHNpemVvZiAoTElTVF9FTlRSWSkpOwog
CiAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgWEVOQlVTX0hBU0hfVEFCTEVfTlJfQlVDS0VU
UzsgSW5kZXgrKykgewogICAgICAgICBQWEVOQlVTX0hBU0hfVEFCTEVfQlVDS0VUICAgQnVja2V0
ID0gJlRhYmxlLT5CdWNrZXRbSW5kZXhdOwotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu May 12 09:50:14 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 12 May 2016 09:50:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b0nFy-0004tX-4C; Thu, 12 May 2016 09:50:10 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b0nFx-0004tQ-SA
 for win-pv-devel@lists.xenproject.org; Thu, 12 May 2016 09:50:09 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 B8/35-09532-1D154375; Thu, 12 May 2016 09:50:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEIsWRWlGSWpSXmKPExsXiVRvkqHsh0CT
 c4MFVdYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacezED+aCZuWK/YdaWRoYG6W6GDk5hATmMEpM
 vGHTxcjFwSJwiUXi27afLCCOhMA7FonGBZfZQKokBGIkHs66xQ5hV0gc//ibBaJbUaL52gV2k
 AYhgRVMEv9WP2QFSbAJqEvcfr8YqsFO4tOsm2C2iICqxLXlx8CGMgtoSTzcMI8RxBYW0JeYem
 ESM4jNAlSzYsJeJhCbV8BdYt3fucwQc+Qk9k5ezTKBkX8BI8MqRvXi1KKy1CJdQ72kosz0jJL
 cxMwcXUMDM73c1OLixPTUnMSkYr3k/NxNjMDwYQCCHYw7nzsdYpTkYFIS5c01MQkX4kvKT6nM
 SCzOiC8qzUktPsQow8GhJMHbFQCUEyxKTU+tSMvMAQYyTFqCg0dJhHcpSJq3uCAxtzgzHSJ1i
 lGXY8vUe2uZhFjy8vNSpcQhZgiAFGWU5sGNgEXVJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKg
 nz9oFM4cnMK4Hb9AroCCagI6qvG4EcUZKIkJJqYCx9HHOo71/En2aW65s1W5fcK3iXG89u6Hh
 z8fsnUyoElBvKt1gofLsaXzbl2/yGviMCm/aYqM93Lndzilxwakv2NsefMoK3FILYc0051hWb
 3xIUuq6p9qfjfI3b/hun3hQfdPo+/6TViexfMY0P729uWNqXYyi8sLL4WIR7edzBIrGiPmHVS
 UosxRmJhlrMRcWJAMYH+VSlAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1463046608!13808466!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_RANDOMQ, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10234 invoked from network); 12 May 2016 09:50:08 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 May 2016 09:50:08 -0000
Received: by mail-wm0-f65.google.com with SMTP id e201so14851757wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 12 May 2016 02:50:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=kFB6AjXGecUkIfrWOMHfSFrTZW6u+i2vrgHkp9vt+DQ=;
 b=PNrLo9Lw1FQVGlUxkGSlYiyEMmfEp4pluIEukP/sATESF44ywPH2vnIC5CmBVvuwPy
 R0Pj10SY9ijDHm1go9z0ba1SEPQp7mwNI7UkMPZbtB5fXc2YeNygz35TZyLYrOHX/Fc6
 TbrmWr6Y79u+lWawNPPelQmDVeCY7Mtk/Tmr/iBqomdA23vhDOzE1RxGyX8wSiRwxmeN
 7Di3Xk8+L5hoTk5K8GigcvoADl+CwQuR3vfbTBz9uL8uvWdJ8MChDsRWAuiXoQPMFqx8
 FBwD+m0+FDGo3XV95w87HvEA3adqXLUbV6OLh7/797czORA09qdxhE1jVR4hV7Um6xuO
 Je/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=kFB6AjXGecUkIfrWOMHfSFrTZW6u+i2vrgHkp9vt+DQ=;
 b=EFJGabwPLs6RCP46sEW8iU7bnKSefmfx+qaq4nSVEpCxgpKEWLEOnpeL7ZhALN5kjV
 1an8VDxEH6TBAg+6s19zfJk898r367a+0slXIsrmzX2JEcK34gI/4fZECBJF9ThPp5+k
 oZPs3COdHoRHUm1rBXbR5UnMWKzQtvwbNgkMRzYsSAIVURGZpiB3K6uqylaw5ODRR9yp
 QzVUcVbH+9SGnyYWczlNncGATJOuNCUA5+Gil4dAbiPOuISs/tUeQgHfQuYh0u/yZGwl
 XQ1MO1un0Tt4SfJxCbiC/jNNazbphL4fS3QbcGsnvx7P/ZOPHnw7dhF2bJtTx9cbi+DF
 Qaqw==
X-Gm-Message-State: AOPr4FWPQNfNcv/tqz/Zh3XiPu0NiCLfNgHASWmmUAUVDSoVBponhbGSf/Y7XQjcaJrjvg==
X-Received: by 10.194.121.8 with SMTP id lg8mr8834276wjb.16.1463046607086;
 Thu, 12 May 2016 02:50:07 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id iv1sm12489237wjb.34.2016.05.12.02.50.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 12 May 2016 02:50:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 12 May 2016 10:50:00 +0100
Message-Id: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Don't free memory at HIGH IRQL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIGhhc2ggdGFibGUgcmVtb3ZlIGZ1bmN0aW9uIGlzIGludm9rZWQgYnkgdGhlIEVWVENITiBl
YXJseSBjYWxsYmFjayBvbgpyZXN1bWUgZnJvbSBzdXNwZW5kLiBUaGlzIG1lYW5zIGl0IGlzIGlu
dm9rZWQgYXQgSElHSCBsZXZlbCB3aXRoIGludGVycnVwdHMKZGlzYWJsZWQsIHdoaWNoIG1lYW5z
IHRoYXQgbWVtb3J5IGNhbiBuZWl0aGVyIGJlIGFsbG9jYXRlZCBub3IgZnJlZWQuIFRoZQpjb2Rl
LCBob3dldmVyLCBkb2VzIGluZGVlZCBmcmVlIGEgZGF0YSBzdHJ1Y3R1cmUgYW5kIHRoaXMgbWF5
IHdlbGwgbGVhZAp0byBtZW1vcnkgY29ycnVwdGlvbi4gVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhl
IGlzc3VlIGJ5IGRlZmVycmluZyBmcmVlaW5nCnRoZSBtZW1vcnkgdG8gYSBzdWJzZXF1ZW50bHkg
c2NoZWR1bGVkIERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50
QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbmJ1cy9oYXNoX3RhYmxlLmMgfCA4OCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg
ODIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVuYnVz
L2hhc2hfdGFibGUuYyBiL3NyYy94ZW5idXMvaGFzaF90YWJsZS5jCmluZGV4IDc1MjA2ZTQuLmU5
ZWQ5OTEgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMvaGFzaF90YWJsZS5jCisrKyBiL3NyYy94ZW5i
dXMvaGFzaF90YWJsZS5jCkBAIC01NCw2ICs1NCw4IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5CVVNf
SEFTSF9UQUJMRV9CVUNLRVQgewogCiBzdHJ1Y3QgX1hFTkJVU19IQVNIX1RBQkxFIHsKICAgICBY
RU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICAgQnVja2V0W1hFTkJVU19IQVNIX1RBQkxFX05SX0JV
Q0tFVFNdOworICAgIFhFTkJVU19IQVNIX1RBQkxFX0JVQ0tFVCAgICBIaWRkZW47CisgICAgS0RQ
QyAgICAgICAgICAgICAgICAgICAgICAgIERwYzsKIH07CiAKICNkZWZpbmUgWEVOQlVTX0hBU0hf
VEFCTEVfVEFHICAgJ0hTQUgnCkBAIC0yNDAsMTIgKzI0MiwxNCBAQCBIYXNoVGFibGVSZW1vdmUo
CiAgICAgKQogewogICAgIFBYRU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICBCdWNrZXQ7CisgICAg
UFhFTkJVU19IQVNIX1RBQkxFX0JVQ0tFVCAgIEhpZGRlbjsKICAgICBQTElTVF9FTlRSWSAgICAg
ICAgICAgICAgICAgTGlzdEVudHJ5OwogICAgIFBYRU5CVVNfSEFTSF9UQUJMRV9OT0RFICAgICBO
b2RlOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgICAgICBJcnFsOwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CiAKICAgICBCdWNrZXQgPSAmVGFibGUtPkJ1Y2tl
dFtIYXNoVGFibGVIYXNoKEtleSldOworICAgIEhpZGRlbiA9ICZUYWJsZS0+SGlkZGVuOwogICAg
IAogICAgIEhhc2hUYWJsZUJ1Y2tldExvY2soQnVja2V0LCBUUlVFLCAmSXJxbCk7CiAKQEAgLTI2
OCw3ICsyNzIsMTEgQEAgZm91bmQ6CiAKICAgICBIYXNoVGFibGVCdWNrZXRVbmxvY2soQnVja2V0
LCBUUlVFLCBJcnFsKTsKIAotICAgIF9fSGFzaFRhYmxlRnJlZShOb2RlKTsKKyAgICBIYXNoVGFi
bGVCdWNrZXRMb2NrKEhpZGRlbiwgVFJVRSwgJklycWwpOworICAgIEluc2VydFRhaWxMaXN0KCZI
aWRkZW4tPkxpc3QsICZOb2RlLT5MaXN0RW50cnkpOworICAgIEhhc2hUYWJsZUJ1Y2tldFVubG9j
ayhIaWRkZW4sIFRSVUUsIElycWwpOworCisgICAgS2VJbnNlcnRRdWV1ZURwYygmVGFibGUtPkRw
YywgTlVMTCwgTlVMTCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKQEAgLTMyMiwx
MyArMzMwLDY0IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK3N0YXRpYworX0Z1
bmN0aW9uX2NsYXNzXyhLREVGRVJSRURfUk9VVElORSkKK19JUlFMX3JlcXVpcmVzX21heF8oRElT
UEFUQ0hfTEVWRUwpCitfSVJRTF9yZXF1aXJlc19taW5fKERJU1BBVENIX0xFVkVMKQorX0lSUUxf
cmVxdWlyZXNfKERJU1BBVENIX0xFVkVMKQorX0lSUUxfcmVxdWlyZXNfc2FtZV8KK1ZPSUQKK0hh
c2hUYWJsZURwYygKKyAgICBJTiAgUEtEUEMgICAgICAgICAgICAgICAgICAgRHBjLAorICAgIElO
ICBQVk9JRCAgICAgICAgICAgICAgICAgICBDb250ZXh0LAorICAgIElOICBQVk9JRCAgICAgICAg
ICAgICAgICAgICBBcmd1bWVudDEsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgIEFy
Z3VtZW50MgorICAgICkKK3sKKyAgICBQWEVOQlVTX0hBU0hfVEFCTEUgICAgICAgICAgVGFibGUg
PSBDb250ZXh0OworICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgICAgICBMaXN0OworICAgIFBY
RU5CVVNfSEFTSF9UQUJMRV9CVUNLRVQgICBIaWRkZW47CisgICAgS0lSUUwgICAgICAgICAgICAg
ICAgICAgICAgIElycWw7CisKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERwYyk7CisgICAg
VU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDEpOworICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoQXJndW1lbnQyKTsKKworICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlzdCk7CisKKyAg
ICBIaWRkZW4gPSAmVGFibGUtPkhpZGRlbjsKKworICAgIEhhc2hUYWJsZUJ1Y2tldExvY2soSGlk
ZGVuLCBUUlVFLCAmSXJxbCk7CisKKyAgICB3aGlsZSAoIUlzTGlzdEVtcHR5KCZIaWRkZW4tPkxp
c3QpKSB7CisgICAgICAgIFBMSVNUX0VOVFJZIExpc3RFbnRyeTsKKworICAgICAgICBMaXN0RW50
cnkgPSBSZW1vdmVIZWFkTGlzdCgmSGlkZGVuLT5MaXN0KTsKKworICAgICAgICBJbnNlcnRUYWls
TGlzdCgmTGlzdCwgTGlzdEVudHJ5KTsKKyAgICB9CisKKyAgICBIYXNoVGFibGVCdWNrZXRVbmxv
Y2soSGlkZGVuLCBUUlVFLCBJcnFsKTsKKworICAgIHdoaWxlICghSXNMaXN0RW1wdHkoJkxpc3Qp
KSB7CisgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgIExpc3RFbnRyeTsKKyAgICAgICAg
UFhFTkJVU19IQVNIX1RBQkxFX05PREUgTm9kZTsKKworICAgICAgICBMaXN0RW50cnkgPSBSZW1v
dmVIZWFkTGlzdCgmTGlzdCk7CisKKyAgICAgICAgTm9kZSA9IENPTlRBSU5JTkdfUkVDT1JEKExp
c3RFbnRyeSwgWEVOQlVTX0hBU0hfVEFCTEVfTk9ERSwgTGlzdEVudHJ5KTsKKyAgICAgICAgX19I
YXNoVGFibGVGcmVlKE5vZGUpOworICAgIH0KK30KKwogTlRTVEFUVVMKIEhhc2hUYWJsZUNyZWF0
ZSgKLSAgICBPVVQgUFhFTkJVU19IQVNIX1RBQkxFICAqVGFibGUKKyAgICBPVVQgUFhFTkJVU19I
QVNIX1RBQkxFICAgICAgKlRhYmxlCiAgICAgKQogewotICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgIEluZGV4OwotICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7CisgICAgUFhFTkJVU19IQVNIX1RBQkxFX0JV
Q0tFVCAgIEhpZGRlbjsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwog
CiAgICAgKlRhYmxlID0gX19IYXNoVGFibGVBbGxvY2F0ZShzaXplb2YgKFhFTkJVU19IQVNIX1RB
QkxFKSk7CiAKQEAgLTM0Miw2ICs0MDEsMTIgQEAgSGFzaFRhYmxlQ3JlYXRlKAogICAgICAgICBJ
bml0aWFsaXplTGlzdEhlYWQoJkJ1Y2tldC0+TGlzdCk7CiAgICAgfQogCisgICAgSGlkZGVuID0g
JigqVGFibGUpLT5IaWRkZW47CisKKyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkhpZGRlbi0+TGlz
dCk7CisKKyAgICBLZUluaXRpYWxpemVEcGMoJigqVGFibGUpLT5EcGMsIEhhc2hUYWJsZURwYywg
KlRhYmxlKTsKKwogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAogZmFpbDE6CkBAIC0zNTIs
MTAgKzQxNywyMSBAQCBmYWlsMToKIAogVk9JRAogSGFzaFRhYmxlRGVzdHJveSgKLSAgICBJTiAg
UFhFTkJVU19IQVNIX1RBQkxFICBUYWJsZQorICAgIElOICBQWEVOQlVTX0hBU0hfVEFCTEUgICAg
ICBUYWJsZQogICAgICkKIHsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBJbmRleDsKKyAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7CisgICAgUFhFTkJVU19IQVNIX1RB
QkxFX0JVQ0tFVCAgIEhpZGRlbjsKKworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwg
PT0sIFBBU1NJVkVfTEVWRUwpOworICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKKyAgICBSdGxa
ZXJvTWVtb3J5KCZUYWJsZS0+RHBjLCBzaXplb2YgKEtEUEMpKTsKKworICAgIEhpZGRlbiA9ICZU
YWJsZS0+SGlkZGVuOworCisgICAgQVNTRVJUKElzTGlzdEVtcHR5KCZIaWRkZW4tPkxpc3QpKTsK
KyAgICBSdGxaZXJvTWVtb3J5KCZIaWRkZW4tPkxpc3QsIHNpemVvZiAoTElTVF9FTlRSWSkpOwog
CiAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgWEVOQlVTX0hBU0hfVEFCTEVfTlJfQlVDS0VU
UzsgSW5kZXgrKykgewogICAgICAgICBQWEVOQlVTX0hBU0hfVEFCTEVfQlVDS0VUICAgQnVja2V0
ID0gJlRhYmxlLT5CdWNrZXRbSW5kZXhdOwotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 09:13:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 09:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2b3o-0007S6-W4; Tue, 17 May 2016 09:13:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2b3n-0007Ry-3H
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 09:13:03 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 AA/BE-07924-D90EA375; Tue, 17 May 2016 09:13:01 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLKsWRWlGSWpSXmKPExsVSPpHPUXfuA6t
 wgwdL2C3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxptD51gKTmlUnDr9irmB8Yd6FyMXh5DAKUaJ
 PX0fmCGcDYwSF1e1s3UxcnKwCWhIfLl9jAXEFhHwldjU9JsdxGYW8Ja4evIgYxcjB4cwUM2ZQ
 0YQJboSG+7uY4aw9ST6/94Ga2URUJVYNOEBI4jNKxAqcXvfUSYQW0jAXeLTq5lg9ZwCHhL33v
 0Dq2EUkJWY9ug+E8QqcYm502axgtgSAoISi2bvYYawxST+7XrIBmErSXy6v4IVoj5PYsXX82w
 QuwQlTs58wgJRIylxcMUNFpAfJQTOM0p8fLoOKmEqsev7FNYJjGKzkOybhWTWLCSzZgG9zCyg
 KbF+lz5EiaLElO6H7BC2hkTrnLnsyOILGNlXMWoUpxaVpRbpGprrJRVlpmeU5CZm5ugaGhjr5
 aYWFyemp+YkJhXrJefnbmIERiMDEOxgfHna8xCjJAeTkijvy4tW4UJ8SfkplRmJxRnxRaU5qc
 WHGGU4OJQkePfeB8oJFqWmp1akZeYA0wJMWoKDR0mENxkkzVtckJhbnJkOkTrFqCglzpsIkhA
 ASWSU5sG1wVLRJUZZKWFeRqBDhHgKUotyM0tQ5V8xinMwKgnzpoJM4cnMK4Gb/gpoMRPQ4glm
 FiCLSxIRUlINjL28KxcLMfxKdnF8t/WHb5rQ0pkXPh2afkcv5q5n3MIfiYubnzSc/eJ7J1aod
 EPV4cCLW789jlt3/vcsY19RRZObLk/K/tSsbHSeuq7t190em56l1a0f39WfehR8kaU8+dkqtp
 DVhwtvpDX9kX24aapZr+ibK+E/I47qJFzRP7tv94+D73+uvLBKiaU4I9FQi7moOBEAqUDmikA
 DAAA=
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1463476374!32941676!1
X-Originating-IP: [119.145.14.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NSA9PiA3NzQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22904 invoked from network); 17 May 2016 09:12:59 -0000
Received: from szxga02-in.huawei.com (HELO szxga02-in.huawei.com)
 (119.145.14.65)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 17 May 2016 09:12:59 -0000
Received: from 172.24.1.47 (EHLO szxemi412-hub.china.huawei.com)
 ([172.24.1.47])
 by szxrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued)
 with ESMTP id DHG03610; Tue, 17 May 2016 17:12:42 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 szxemi412-hub.china.huawei.com ([10.86.210.35]) with mapi id 14.03.0235.001;
 Tue, 17 May 2016 17:09:55 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <pdurrant@gmail.com>, Paul Durrant <paul.durrant@citrix.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIg==
Date: Tue, 17 May 2016 09:09:54 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A090202.573AE08B.0095, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 2856b471ff40e259c1c846b717571ce8
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2624138034789190261=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2624138034789190261==
Content-Language: zh-CN
Content-Type: multipart/alternative;
	boundary="_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_"

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGVsbG8gUGF1bA0KDQpUaGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxr
IHdpdGggeW91LiBJIGhhdmUgY291cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGlu
ZyB3aXRoIFhlbiB3aW5kb3dzIFBWIGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0
aW1lIHRvIGhlbHA/IFJlYWxseSBhcHByZWNpYXRlIHlvdXIgaGVscCF+DQoNCjEuICAgICAgTWF5
IEkga25vdyBpZiB0aGUgbGF0ZXN0IHdpbmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFz
cyB0aGUgV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoyLiAg
ICAgIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUgaXMgYSBwbGFuIHRvIGpvaW4gaW4g
d2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMgaXMgZ29pbmcgb24/IEFueSBwbGFu
IHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNoIGlzIHRoYXQgTWljcm9zb2Z0IGFs
bG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGluYm94IGRyaXZlci4gRG8gd2UgaGF2
ZSB0aGlzIHBsYW4/DQozLiAgICAgIEkgc2F3IGluIGN1cnJlbnQgd2luIFBWIGRyaXZlciwgd2Ug
YWRkIG9uZSBuZXcgZHJpdmVyIHhlbmNyc2guc3lzIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBCdXQg
d2luZG93cyBhY3R1YWxseSBoYXMgdGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgdGhlIG9yaWdpbmFs
IHN0b3Jwb3J0IG1pbmlwb3J0IGRyaXZlciB0byBjb21wbGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0
IHNhbXBsZSBzdG9yYWNoaSBkcml2ZXIgZGlkIHRoaXMgd2F5IHRvby4gTWF5IEkga25vdyB3aGF0
IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBuZXcgZHJpdmVyPw0KNC4gICAg
ICBJIHNhdyB0aGVyZSBpcyBvbmUgc3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUg
dGhlIHN0b3Jwb3J0LiBNaWNyb3NvZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMg
ZG8gbm90IGxpa2UgYW55IGZpbHRlciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlz
IHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRo
ZSBhcmNoaXRlY3R1cmU/DQoNCkN1cnJlbnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBm
cm9tIENpdHJpeC4gTWF5IEkga25vdyBpZiBIdWF3ZWkgY2FuIGNvbnRyaWJ1dGUgb24gdGhpcyBw
cm9qZWN0IHRvbz8NCg0KDQpUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBmb3IgeW91ciBoZWxwIX4N
Cg0KDQo=

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVu
dD0iTWljcm9zb2Z0IEV4Y2hhbmdlIFNlcnZlciI+DQo8IS0tIGNvbnZlcnRlZCBmcm9tIHJ0ZiAt
LT4NCjxzdHlsZT48IS0tIC5FbWFpbFF1b3RlIHsgbWFyZ2luLWxlZnQ6IDFwdDsgcGFkZGluZy1s
ZWZ0OiA0cHQ7IGJvcmRlci1sZWZ0OiAjODAwMDAwIDJweCBzb2xpZDsgfSAtLT48L3N0eWxlPg0K
PC9oZWFkPg0KPGJvZHk+DQo8Zm9udCBmYWNlPSJBcmlhbCIgc2l6ZT0iMyI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMnB0OyI+DQo8ZGl2PkhlbGxvIFBhdWw8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9k
aXY+DQo8ZGl2PlRoaXMgaXMgV2F5bmUgR2FvIGZyb20gSHVhd2VpLiBOaWNlIHRvIHRhbGsgd2l0
aCB5b3UuIEkgaGF2ZSBjb3VwbGVzIG9mIHRlY2huaWNhbCBxdWVzdGlvbnMgcmVnYXJkaW5nIHdp
dGggWGVuIHdpbmRvd3MgUFYgZHJpdmVycy48L2Rpdj4NCjxkaXY+Q291bGQgeW91IHBsZWFzZSB0
YWtlIGEgdGltZSB0byBoZWxwPyBSZWFsbHkgYXBwcmVjaWF0ZSB5b3VyIGhlbHAhfjwvZGl2Pg0K
PGRpdj48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTAuNXB0OyI+Jm5ic3A7PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxvbCBzdHlsZT0i
bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjE4cHQ7Ij4NCjxsaT5NYXkgSSBrbm93IGlmIHRoZSBsYXRl
c3Qgd2luZG93cyBQViBvcGVuIHNvdXJjZSBjb2RlIGNhbiBwYXNzIHRoZSBXSENLIHRlc3RzIHZl
cnkgc3RhYmxlIGFuZCBnZXQgZHJpdmVyIHNpZ25lZD88L2xpPjxsaT5Gcm9tIHRoZSBob21lIHBh
Z2UsIEkgc2VlIHRoZXJlIGlzIGEgcGxhbiB0byBqb2luIGluIHdpbmRvd3MgdXBkYXRlLiBNYXkg
SSBrbm93IGhvdyB0aGlzIGlzIGdvaW5nIG9uPyBBbnkgcGxhbiB0byBtYWtlIGl0IGhhcHBlbi4g
QW5vdGhlciBhcHByb2FjaCBpcyB0aGF0IE1pY3Jvc29mdCBhbGxvdyBzZW1pY29uZHVjdG9yIGNv
bXBhbnkgZGVsaXZlciBpbmJveCBkcml2ZXIuIERvIHdlIGhhdmUgdGhpcyBwbGFuPzwvbGk+PGxp
Pkkgc2F3IGluIGN1cnJlbnQgd2luIFBWIGRyaXZlciwgd2UgYWRkIG9uZSBuZXcgZHJpdmVyIHhl
bmNyc2guc3lzIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBCdXQgd2luZG93cyBhY3R1YWxseSBoYXMg
dGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgdGhlIG9yaWdpbmFsIHN0b3Jwb3J0IG1pbmlwb3J0IGRy
aXZlciB0byBjb21wbGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0IHNhbXBsZSBzdG9yYWNoaSBkcml2
ZXIgZGlkIHRoaXMgd2F5IHRvby4gTWF5IEkNCmtub3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0
aGF0IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj88L2xpPjxsaT5JIHNhdyB0aGVyZSBpcyBvbmUg
c3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUgdGhlIHN0b3Jwb3J0LiBNaWNyb3Nv
ZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMgZG8gbm90IGxpa2UgYW55IGZpbHRl
ciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQg
d2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRoZSBhcmNoaXRlY3R1cmU/PC9saT48
L29sPg0KPGRpdj48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTAuNXB0OyI+Jm5ic3A7PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxkaXY+
Q3VycmVudGx5LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkgSSBr
bm93IGlmIEh1YXdlaSBjYW4gY29udHJpYnV0ZSBvbiB0aGlzIHByb2plY3QgdG9vPzwvZGl2Pg0K
PGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PlRoYW5rIHlvdSBzbyBt
dWNoIGFnYWluIGZvciB5b3VyIGhlbHAhfjwvZGl2Pg0KPGRpdj48Zm9udCBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuNXB0OyI+Jm5ic3A7
PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIiBz
aXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjVwdDsiPiZuYnNwOzwvc3Bhbj48L2Zv
bnQ+PC9kaXY+DQo8L3NwYW4+PC9mb250Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_--



--===============2624138034789190261==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============2624138034789190261==--



From win-pv-devel-bounces@lists.xenproject.org Tue May 17 09:13:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 09:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2b3o-0007S6-W4; Tue, 17 May 2016 09:13:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2b3n-0007Ry-3H
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 09:13:03 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 AA/BE-07924-D90EA375; Tue, 17 May 2016 09:13:01 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLKsWRWlGSWpSXmKPExsVSPpHPUXfuA6t
 wgwdL2C3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxptD51gKTmlUnDr9irmB8Yd6FyMXh5DAKUaJ
 PX0fmCGcDYwSF1e1s3UxcnKwCWhIfLl9jAXEFhHwldjU9JsdxGYW8Ja4evIgYxcjB4cwUM2ZQ
 0YQJboSG+7uY4aw9ST6/94Ga2URUJVYNOEBI4jNKxAqcXvfUSYQW0jAXeLTq5lg9ZwCHhL33v
 0Dq2EUkJWY9ug+E8QqcYm502axgtgSAoISi2bvYYawxST+7XrIBmErSXy6v4IVoj5PYsXX82w
 QuwQlTs58wgJRIylxcMUNFpAfJQTOM0p8fLoOKmEqsev7FNYJjGKzkOybhWTWLCSzZgG9zCyg
 KbF+lz5EiaLElO6H7BC2hkTrnLnsyOILGNlXMWoUpxaVpRbpGprrJRVlpmeU5CZm5ugaGhjr5
 aYWFyemp+YkJhXrJefnbmIERiMDEOxgfHna8xCjJAeTkijvy4tW4UJ8SfkplRmJxRnxRaU5qc
 WHGGU4OJQkePfeB8oJFqWmp1akZeYA0wJMWoKDR0mENxkkzVtckJhbnJkOkTrFqCglzpsIkhA
 ASWSU5sG1wVLRJUZZKWFeRqBDhHgKUotyM0tQ5V8xinMwKgnzpoJM4cnMK4Gb/gpoMRPQ4glm
 FiCLSxIRUlINjL28KxcLMfxKdnF8t/WHb5rQ0pkXPh2afkcv5q5n3MIfiYubnzSc/eJ7J1aod
 EPV4cCLW789jlt3/vcsY19RRZObLk/K/tSsbHSeuq7t190em56l1a0f39WfehR8kaU8+dkqtp
 DVhwtvpDX9kX24aapZr+ibK+E/I47qJFzRP7tv94+D73+uvLBKiaU4I9FQi7moOBEAqUDmikA
 DAAA=
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1463476374!32941676!1
X-Originating-IP: [119.145.14.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NSA9PiA3NzQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22904 invoked from network); 17 May 2016 09:12:59 -0000
Received: from szxga02-in.huawei.com (HELO szxga02-in.huawei.com)
 (119.145.14.65)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 17 May 2016 09:12:59 -0000
Received: from 172.24.1.47 (EHLO szxemi412-hub.china.huawei.com)
 ([172.24.1.47])
 by szxrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued)
 with ESMTP id DHG03610; Tue, 17 May 2016 17:12:42 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 szxemi412-hub.china.huawei.com ([10.86.210.35]) with mapi id 14.03.0235.001;
 Tue, 17 May 2016 17:09:55 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <pdurrant@gmail.com>, Paul Durrant <paul.durrant@citrix.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIg==
Date: Tue, 17 May 2016 09:09:54 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A090202.573AE08B.0095, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 2856b471ff40e259c1c846b717571ce8
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2624138034789190261=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2624138034789190261==
Content-Language: zh-CN
Content-Type: multipart/alternative;
	boundary="_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_"

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGVsbG8gUGF1bA0KDQpUaGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxr
IHdpdGggeW91LiBJIGhhdmUgY291cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGlu
ZyB3aXRoIFhlbiB3aW5kb3dzIFBWIGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0
aW1lIHRvIGhlbHA/IFJlYWxseSBhcHByZWNpYXRlIHlvdXIgaGVscCF+DQoNCjEuICAgICAgTWF5
IEkga25vdyBpZiB0aGUgbGF0ZXN0IHdpbmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFz
cyB0aGUgV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoyLiAg
ICAgIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUgaXMgYSBwbGFuIHRvIGpvaW4gaW4g
d2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMgaXMgZ29pbmcgb24/IEFueSBwbGFu
IHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNoIGlzIHRoYXQgTWljcm9zb2Z0IGFs
bG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGluYm94IGRyaXZlci4gRG8gd2UgaGF2
ZSB0aGlzIHBsYW4/DQozLiAgICAgIEkgc2F3IGluIGN1cnJlbnQgd2luIFBWIGRyaXZlciwgd2Ug
YWRkIG9uZSBuZXcgZHJpdmVyIHhlbmNyc2guc3lzIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBCdXQg
d2luZG93cyBhY3R1YWxseSBoYXMgdGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgdGhlIG9yaWdpbmFs
IHN0b3Jwb3J0IG1pbmlwb3J0IGRyaXZlciB0byBjb21wbGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0
IHNhbXBsZSBzdG9yYWNoaSBkcml2ZXIgZGlkIHRoaXMgd2F5IHRvby4gTWF5IEkga25vdyB3aGF0
IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBuZXcgZHJpdmVyPw0KNC4gICAg
ICBJIHNhdyB0aGVyZSBpcyBvbmUgc3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUg
dGhlIHN0b3Jwb3J0LiBNaWNyb3NvZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMg
ZG8gbm90IGxpa2UgYW55IGZpbHRlciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlz
IHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRo
ZSBhcmNoaXRlY3R1cmU/DQoNCkN1cnJlbnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBm
cm9tIENpdHJpeC4gTWF5IEkga25vdyBpZiBIdWF3ZWkgY2FuIGNvbnRyaWJ1dGUgb24gdGhpcyBw
cm9qZWN0IHRvbz8NCg0KDQpUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBmb3IgeW91ciBoZWxwIX4N
Cg0KDQo=

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVu
dD0iTWljcm9zb2Z0IEV4Y2hhbmdlIFNlcnZlciI+DQo8IS0tIGNvbnZlcnRlZCBmcm9tIHJ0ZiAt
LT4NCjxzdHlsZT48IS0tIC5FbWFpbFF1b3RlIHsgbWFyZ2luLWxlZnQ6IDFwdDsgcGFkZGluZy1s
ZWZ0OiA0cHQ7IGJvcmRlci1sZWZ0OiAjODAwMDAwIDJweCBzb2xpZDsgfSAtLT48L3N0eWxlPg0K
PC9oZWFkPg0KPGJvZHk+DQo8Zm9udCBmYWNlPSJBcmlhbCIgc2l6ZT0iMyI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMnB0OyI+DQo8ZGl2PkhlbGxvIFBhdWw8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9k
aXY+DQo8ZGl2PlRoaXMgaXMgV2F5bmUgR2FvIGZyb20gSHVhd2VpLiBOaWNlIHRvIHRhbGsgd2l0
aCB5b3UuIEkgaGF2ZSBjb3VwbGVzIG9mIHRlY2huaWNhbCBxdWVzdGlvbnMgcmVnYXJkaW5nIHdp
dGggWGVuIHdpbmRvd3MgUFYgZHJpdmVycy48L2Rpdj4NCjxkaXY+Q291bGQgeW91IHBsZWFzZSB0
YWtlIGEgdGltZSB0byBoZWxwPyBSZWFsbHkgYXBwcmVjaWF0ZSB5b3VyIGhlbHAhfjwvZGl2Pg0K
PGRpdj48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTAuNXB0OyI+Jm5ic3A7PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxvbCBzdHlsZT0i
bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjE4cHQ7Ij4NCjxsaT5NYXkgSSBrbm93IGlmIHRoZSBsYXRl
c3Qgd2luZG93cyBQViBvcGVuIHNvdXJjZSBjb2RlIGNhbiBwYXNzIHRoZSBXSENLIHRlc3RzIHZl
cnkgc3RhYmxlIGFuZCBnZXQgZHJpdmVyIHNpZ25lZD88L2xpPjxsaT5Gcm9tIHRoZSBob21lIHBh
Z2UsIEkgc2VlIHRoZXJlIGlzIGEgcGxhbiB0byBqb2luIGluIHdpbmRvd3MgdXBkYXRlLiBNYXkg
SSBrbm93IGhvdyB0aGlzIGlzIGdvaW5nIG9uPyBBbnkgcGxhbiB0byBtYWtlIGl0IGhhcHBlbi4g
QW5vdGhlciBhcHByb2FjaCBpcyB0aGF0IE1pY3Jvc29mdCBhbGxvdyBzZW1pY29uZHVjdG9yIGNv
bXBhbnkgZGVsaXZlciBpbmJveCBkcml2ZXIuIERvIHdlIGhhdmUgdGhpcyBwbGFuPzwvbGk+PGxp
Pkkgc2F3IGluIGN1cnJlbnQgd2luIFBWIGRyaXZlciwgd2UgYWRkIG9uZSBuZXcgZHJpdmVyIHhl
bmNyc2guc3lzIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBCdXQgd2luZG93cyBhY3R1YWxseSBoYXMg
dGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgdGhlIG9yaWdpbmFsIHN0b3Jwb3J0IG1pbmlwb3J0IGRy
aXZlciB0byBjb21wbGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0IHNhbXBsZSBzdG9yYWNoaSBkcml2
ZXIgZGlkIHRoaXMgd2F5IHRvby4gTWF5IEkNCmtub3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0
aGF0IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj88L2xpPjxsaT5JIHNhdyB0aGVyZSBpcyBvbmUg
c3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUgdGhlIHN0b3Jwb3J0LiBNaWNyb3Nv
ZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMgZG8gbm90IGxpa2UgYW55IGZpbHRl
ciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQg
d2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRoZSBhcmNoaXRlY3R1cmU/PC9saT48
L29sPg0KPGRpdj48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTAuNXB0OyI+Jm5ic3A7PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxkaXY+
Q3VycmVudGx5LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkgSSBr
bm93IGlmIEh1YXdlaSBjYW4gY29udHJpYnV0ZSBvbiB0aGlzIHByb2plY3QgdG9vPzwvZGl2Pg0K
PGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PlRoYW5rIHlvdSBzbyBt
dWNoIGFnYWluIGZvciB5b3VyIGhlbHAhfjwvZGl2Pg0KPGRpdj48Zm9udCBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iIHNpemU9IjIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuNXB0OyI+Jm5ic3A7
PC9zcGFuPjwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIiBz
aXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjVwdDsiPiZuYnNwOzwvc3Bhbj48L2Zv
bnQ+PC9kaXY+DQo8L3NwYW4+PC9mb250Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_1087C473D86967468DC48EEFC72AAC0220BB4411SZXEMI506MBXchi_--



--===============2624138034789190261==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============2624138034789190261==--



From win-pv-devel-bounces@lists.xenproject.org Tue May 17 15:16:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 15:16:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2gj6-0002oS-Kv; Tue, 17 May 2016 15:16:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93879597d=Paul.Durrant@citrix.com>)
 id 1b2gj5-0002oF-Pb
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 15:16:03 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 1A/F5-07924-2B53B375; Tue, 17 May 2016 15:16:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQneTqXW
 4wY5ZshZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+W25UwFN2Qqrv2/z9rAuEKmi5GTQ0LAT2Le
 +YlsIDabgI7E0qPzmUBsEQFPiUV35rOC2MwC3hJXTx5kBLGFgWp6f29mhKjRldhwdx8zhG0k8
 ePoOzCbRUBVYtes1WAzeQXcJX4t7QOKc3EICUxilPiwfS9YM6dAmMTcRRPBbEYBWYkvjauZIZ
 aJS9x6AnGEhICAxJI955khbFGJl4//sULYBhJbl+5j6WLkAKrXlFi/Sx+iVVFiSvdDdoi9ghI
 nZz5hAbGFBFQktjw+ADWGW2Ll5z8sExhFZyHZNgth0iwkk2YhmbSAkWUVo3pxalFZapGuuV5S
 UWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmCcMADBDsbG706HGCU5mJREeS+YWIcL8
 SXlp1RmJBZnxBeV5qQWH2KU4eBQkuD9CpITLEpNT61Iy8wBRixMWoKDR0mEdxNImre4IDG3OD
 MdInWKUVFKnPcsSEIAJJFRmgfXBksSlxhlpYR5GYEOEeIpSC3KzSxBlX/FKM7BqCQMsZ0nM68
 EbvoroMVMQIsnmFmALC5JREhJNTCmtZztMTjGzT7vYOXUb74t8/+8E1sX52p48eTevXM3Zpx5
 bJcbGaMl+nHa50+G8+XTrO8Iy324NHuv/EbF5O39xo9XMu15ahDa+s64Zwd3+sQteibpuoW95
 Y/mMr9vKtZvfDxZxfCHbNaZY+ozTR9yXk86MvfRgk/6n3fozDT8VPVNysp0RqaMEktxRqKhFn
 NRcSIAb8/jow0DAAA=
X-Env-Sender: prvs=93879597d=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1463498162!23886857!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32270 invoked from network); 17 May 2016 15:16:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 17 May 2016 15:16:02 -0000
X-IronPort-AV: E=Sophos;i="5.26,324,1459814400"; d="scan'208";a="22077493"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3Q
Date: Tue, 17 May 2016 15:16:01 +0000
Message-ID: <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZy4uLg0KDQpGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86Z2Fvd2VpMTdAaHVhd2Vp
LmNvbV0gDQpTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0KVG86IFBhdWwgRHVycmFudDsgUGF1bCBE
dXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBY
ZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCkhlbGxvIFBhdWwNCsKgDQpUaGlzIGlz
IFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291
cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5kb3dzIFBW
IGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJlYWxseSBh
cHByZWNpYXRlIHlvdXIgaGVscCF+DQrCoA0KMS4gTWF5IEkga25vdyBpZiB0aGUgbGF0ZXN0IHdp
bmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFzcyB0aGUgV0hDSyB0ZXN0cyB2ZXJ5IHN0
YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoNCj4gWWVzLiBUaGUgWGVuU2VydmVyIFBWIGRy
aXZlcnMgYXJlIGJhc2VkIG9uIHRoaXMgc291cmNlIHdpdGggb25seSBzbWFsbCBjb21wYXRpYmls
aXR5IHBhdGNoZXMuDQoNCjIuIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUgaXMgYSBw
bGFuIHRvIGpvaW4gaW4gd2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMgaXMgZ29p
bmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNoIGlzIHRo
YXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGluYm94IGRy
aXZlci4gRG8gd2UgaGF2ZSB0aGlzIHBsYW4/DQoNCj4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRy
aXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmIHlvdSdyZSBW
TSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCBk
b3dubG9hZCBhbmQgaW5zdGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2lsbCBub3Qg
Z28gb250byBXaW5kb3dzIFVwZGF0ZS4NCg0KMy4gSSBzYXcgaW4gY3VycmVudCB3aW4gUFYgZHJp
dmVyLCB3ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMgdG8gY29tcGxldGUgdGhlIGR1
bXAuIEJ1dCB3aW5kb3dzIGFjdHVhbGx5IGhhcyB0aGUgZnVuY3Rpb24ganVzdCByZXVzZSB0aGUg
b3JpZ2luYWwgc3RvcnBvcnQgbWluaXBvcnQgZHJpdmVyIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBN
aWNyb3NvZnQgc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQgdGhpcyB3YXkgdG9vLiBNYXkgSSBr
bm93IHdoYXQgaXMgc3BlY2lhbCByZWFzb24gdGhhdCB3ZSBjaG9vc2UgYWRkIG5ldyBkcml2ZXI/
DQoNCj4gVGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJlbnQgdG8g
YSBub3JtYWwga2VybmVsIGVudmlyb25tZW50LiBUaGUgeGVuY3JzaCBkcml2ZXIgaXMgYWN0dWFs
bHkgbGlua2VkIGludG8gdGhlIG5vcm1hbCB4ZW52YmQgc3RvcnBvcnQgZHJpdmVyIGJ1dCBvbmx5
IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwgZW52aXJvbm1lbnQuIEl0IHRoZW4g
YWN0aXZhdGVzIGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBpdHMgb3duIHByaXZhdGUg
aW50ZXJmYWNlcyB0byB0YWxrIHRvIFhlbiBhbmQgdGhlIFBWIGJhY2tlbmQgKHNpbmNlIHRoZSBu
b3JtYWwgeGVuYnVzIHByb3ZpZGVkIEFQSXMgYXJlIG5vdCBhdmFpbGFibGUpLg0KDQo0LiBJIHNh
dyB0aGVyZSBpcyBvbmUgc3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUgdGhlIHN0
b3Jwb3J0LiBNaWNyb3NvZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMgZG8gbm90
IGxpa2UgYW55IGZpbHRlciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlzIHNwZWNp
YWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRoZSBhcmNo
aXRlY3R1cmU/DQoNCj4gVGhlcmUgaXMgYSBmaWx0ZXIgZHJpdmVyIGNhbGxlZCB4ZW5kaXNrIHRo
YXQgc2l0cyBhYm92ZSB0aGUgc3RvcnBvcnQgUERPcy4gSXQgc2VydmVzIG9ubHkgdG8gaW50ZXJj
ZXB0IHRoZSBJUlBzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHRyaW0vZGlzY2FyZC4gTmV3ZXIgdmVy
c2lvbnMgb2Ygc3RvcnBvcnQgc3VwcG9ydCB0cmltL2Rpc2NhcmQgZGlyZWN0bHkgYnV0IHRoZSBk
cml2ZXJzIGNhbm5vdCBtYWtlIHVzZSBvZiBuZXdlciBzdG9ycG9ydCBhcyB0aGV5IGFyZSBkZXNp
Z25lZCB0byBmdW5jdGlvbiBvbiBvbGRlciB2ZXJzaW9ucyBvZiBXaW5kb3dzLg0KwqANCkN1cnJl
bnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBmcm9tIENpdHJpeC4gTWF5IEkga25vdyBp
ZiBIdWF3ZWkgY2FuIGNvbnRyaWJ1dGUgb24gdGhpcyBwcm9qZWN0IHRvbz8NCg0KPiBBYnNvbHV0
ZWx5LiBDb250cmlidXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIG1hZGUgYnkgSW52aXNpYmxlIFRo
aW5ncyBMYWJzIGFuZCBBbWF6b24gc28gSSdkIGJlIGhhcHB5IHRvIHJldmlldyBjb250cmlidXRp
b25zIGZyb20gSHVhd2VpLg0KPiBDaGVlcnMsDQo+DQo+ICAgUGF1bA0KwqANClRoYW5rIHlvdSBz
byBtdWNoIGFnYWluIGZvciB5b3VyIGhlbHAhfg0KwqANCsKgDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 15:16:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 15:16:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2gj6-0002oS-Kv; Tue, 17 May 2016 15:16:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93879597d=Paul.Durrant@citrix.com>)
 id 1b2gj5-0002oF-Pb
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 15:16:03 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 1A/F5-07924-2B53B375; Tue, 17 May 2016 15:16:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQneTqXW
 4wY5ZshZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+W25UwFN2Qqrv2/z9rAuEKmi5GTQ0LAT2Le
 +YlsIDabgI7E0qPzmUBsEQFPiUV35rOC2MwC3hJXTx5kBLGFgWp6f29mhKjRldhwdx8zhG0k8
 ePoOzCbRUBVYtes1WAzeQXcJX4t7QOKc3EICUxilPiwfS9YM6dAmMTcRRPBbEYBWYkvjauZIZ
 aJS9x6AnGEhICAxJI955khbFGJl4//sULYBhJbl+5j6WLkAKrXlFi/Sx+iVVFiSvdDdoi9ghI
 nZz5hAbGFBFQktjw+ADWGW2Ll5z8sExhFZyHZNgth0iwkk2YhmbSAkWUVo3pxalFZapGuuV5S
 UWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmCcMADBDsbG706HGCU5mJREeS+YWIcL8
 SXlp1RmJBZnxBeV5qQWH2KU4eBQkuD9CpITLEpNT61Iy8wBRixMWoKDR0mEdxNImre4IDG3OD
 MdInWKUVFKnPcsSEIAJJFRmgfXBksSlxhlpYR5GYEOEeIpSC3KzSxBlX/FKM7BqCQMsZ0nM68
 EbvoroMVMQIsnmFmALC5JREhJNTCmtZztMTjGzT7vYOXUb74t8/+8E1sX52p48eTevXM3Zpx5
 bJcbGaMl+nHa50+G8+XTrO8Iy324NHuv/EbF5O39xo9XMu15ahDa+s64Zwd3+sQteibpuoW95
 Y/mMr9vKtZvfDxZxfCHbNaZY+ozTR9yXk86MvfRgk/6n3fozDT8VPVNysp0RqaMEktxRqKhFn
 NRcSIAb8/jow0DAAA=
X-Env-Sender: prvs=93879597d=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1463498162!23886857!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32270 invoked from network); 17 May 2016 15:16:02 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 17 May 2016 15:16:02 -0000
X-IronPort-AV: E=Sophos;i="5.26,324,1459814400"; d="scan'208";a="22077493"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3Q
Date: Tue, 17 May 2016 15:16:01 +0000
Message-ID: <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RGUtaHRtbGluZy4uLg0KDQpGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86Z2Fvd2VpMTdAaHVhd2Vp
LmNvbV0gDQpTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0KVG86IFBhdWwgRHVycmFudDsgUGF1bCBE
dXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBY
ZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCkhlbGxvIFBhdWwNCsKgDQpUaGlzIGlz
IFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291
cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5kb3dzIFBW
IGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJlYWxseSBh
cHByZWNpYXRlIHlvdXIgaGVscCF+DQrCoA0KMS4gTWF5IEkga25vdyBpZiB0aGUgbGF0ZXN0IHdp
bmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFzcyB0aGUgV0hDSyB0ZXN0cyB2ZXJ5IHN0
YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoNCj4gWWVzLiBUaGUgWGVuU2VydmVyIFBWIGRy
aXZlcnMgYXJlIGJhc2VkIG9uIHRoaXMgc291cmNlIHdpdGggb25seSBzbWFsbCBjb21wYXRpYmls
aXR5IHBhdGNoZXMuDQoNCjIuIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUgaXMgYSBw
bGFuIHRvIGpvaW4gaW4gd2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMgaXMgZ29p
bmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNoIGlzIHRo
YXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGluYm94IGRy
aXZlci4gRG8gd2UgaGF2ZSB0aGlzIHBsYW4/DQoNCj4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRy
aXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmIHlvdSdyZSBW
TSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCBk
b3dubG9hZCBhbmQgaW5zdGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2lsbCBub3Qg
Z28gb250byBXaW5kb3dzIFVwZGF0ZS4NCg0KMy4gSSBzYXcgaW4gY3VycmVudCB3aW4gUFYgZHJp
dmVyLCB3ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMgdG8gY29tcGxldGUgdGhlIGR1
bXAuIEJ1dCB3aW5kb3dzIGFjdHVhbGx5IGhhcyB0aGUgZnVuY3Rpb24ganVzdCByZXVzZSB0aGUg
b3JpZ2luYWwgc3RvcnBvcnQgbWluaXBvcnQgZHJpdmVyIHRvIGNvbXBsZXRlIHRoZSBkdW1wLiBN
aWNyb3NvZnQgc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQgdGhpcyB3YXkgdG9vLiBNYXkgSSBr
bm93IHdoYXQgaXMgc3BlY2lhbCByZWFzb24gdGhhdCB3ZSBjaG9vc2UgYWRkIG5ldyBkcml2ZXI/
DQoNCj4gVGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJlbnQgdG8g
YSBub3JtYWwga2VybmVsIGVudmlyb25tZW50LiBUaGUgeGVuY3JzaCBkcml2ZXIgaXMgYWN0dWFs
bHkgbGlua2VkIGludG8gdGhlIG5vcm1hbCB4ZW52YmQgc3RvcnBvcnQgZHJpdmVyIGJ1dCBvbmx5
IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwgZW52aXJvbm1lbnQuIEl0IHRoZW4g
YWN0aXZhdGVzIGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBpdHMgb3duIHByaXZhdGUg
aW50ZXJmYWNlcyB0byB0YWxrIHRvIFhlbiBhbmQgdGhlIFBWIGJhY2tlbmQgKHNpbmNlIHRoZSBu
b3JtYWwgeGVuYnVzIHByb3ZpZGVkIEFQSXMgYXJlIG5vdCBhdmFpbGFibGUpLg0KDQo0LiBJIHNh
dyB0aGVyZSBpcyBvbmUgc3RvcmFnZSBmaWx0ZXIgZHJpdmVyIHRoYXQgaXMgYWJvdmUgdGhlIHN0
b3Jwb3J0LiBNaWNyb3NvZnQgV0hDSyBkb2N1bWVudCB1c2VkIHRvIG1lbnRpb24gTVMgZG8gbm90
IGxpa2UgYW55IGZpbHRlciBhYm92ZSBzdG9ycG9ydC4gTWF5IEkga25vdyB3aGF0IGlzIHNwZWNp
YWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIgZHJpdmVycyBpbnRvIHRoZSBhcmNo
aXRlY3R1cmU/DQoNCj4gVGhlcmUgaXMgYSBmaWx0ZXIgZHJpdmVyIGNhbGxlZCB4ZW5kaXNrIHRo
YXQgc2l0cyBhYm92ZSB0aGUgc3RvcnBvcnQgUERPcy4gSXQgc2VydmVzIG9ubHkgdG8gaW50ZXJj
ZXB0IHRoZSBJUlBzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHRyaW0vZGlzY2FyZC4gTmV3ZXIgdmVy
c2lvbnMgb2Ygc3RvcnBvcnQgc3VwcG9ydCB0cmltL2Rpc2NhcmQgZGlyZWN0bHkgYnV0IHRoZSBk
cml2ZXJzIGNhbm5vdCBtYWtlIHVzZSBvZiBuZXdlciBzdG9ycG9ydCBhcyB0aGV5IGFyZSBkZXNp
Z25lZCB0byBmdW5jdGlvbiBvbiBvbGRlciB2ZXJzaW9ucyBvZiBXaW5kb3dzLg0KwqANCkN1cnJl
bnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBmcm9tIENpdHJpeC4gTWF5IEkga25vdyBp
ZiBIdWF3ZWkgY2FuIGNvbnRyaWJ1dGUgb24gdGhpcyBwcm9qZWN0IHRvbz8NCg0KPiBBYnNvbHV0
ZWx5LiBDb250cmlidXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIG1hZGUgYnkgSW52aXNpYmxlIFRo
aW5ncyBMYWJzIGFuZCBBbWF6b24gc28gSSdkIGJlIGhhcHB5IHRvIHJldmlldyBjb250cmlidXRp
b25zIGZyb20gSHVhd2VpLg0KPiBDaGVlcnMsDQo+DQo+ICAgUGF1bA0KwqANClRoYW5rIHlvdSBz
byBtdWNoIGFnYWluIGZvciB5b3VyIGhlbHAhfg0KwqANCsKgDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWS-0006ZL-GF; Tue, 17 May 2016 16:07:04 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWR-0006ZF-Rn
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:04 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
 8F/FF-20564-7A14B375; Tue, 17 May 2016 16:07:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkqLvM0Tr
 cYMNyLYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMW3DRraC+/wVrZc+MjUw7uXqYuTiEBKYxSjR
 cbmFDcRhEbjEItF0tIkRxJEQeMci0TPlOWsXIyeQEyPx/dd+dgi7XOL8ulWMILaQgKJE87UL7
 BCjljFJ7L3wlAkkwSagLnH7/WKoBjuJT7NugtkiAqoS15YfYwOxmQW0JB5umAc2SBgo/vTRF7
 A4C5C99WgvC4jNK+AucX9KI9QRchJ7J69mmcDIv4CRYRWjenFqUVlqka6FXlJRZnpGSW5iZo6
 uoYGpXm5qcXFiempOYlKxXnJ+7iZGYAAxAMEOxoPNzocYJTmYlER5L5hYhwvxJeWnVGYkFmfE
 F5XmpBYfYpTh4FCS4G1wAMoJFqWmp1akZeYAQxkmLcHBoyTCaweS5i0uSMwtzkyHSJ1i1OXYM
 vXeWiYhlrz8vFQpcd5ukCIBkKKM0jy4EbC4usQoKyXMywh0lBBPQWpRbmYJqvwrRnEORiVh3i
 qQKTyZeSVwm14BHcEEdMQEMwuQI0oSEVJSDYxLTLsXNtjyn27+tPvHceefJ1WCv6/6Oa/+pCR
 D4IVPvBr8ifOUFhXM2PpWKez9JtvaEzfSS25urj6gwN/y4rrdGaXwmPIte0rre0PENptM3bbI
 vjjvaJHJRd4dGbdYA+dyrwn4kHuN13+py+pSlX8MbSsM2R5+sGBcdq8qTEq59sixU/LHS38os
 RRnJBpqMRcVJwIAV8ol+6YCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1463501222!36442702!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61737 invoked from network); 17 May 2016 16:07:02 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-3.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:02 -0000
Received: by mail-wm0-f65.google.com with SMTP id r12so5920869wme.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=w8TDnuD17itzjWmr8OT+E3x43kH9SaNIdto6JJO9bSY=;
 b=0RVf8x1jJPW7AkDKPUWFC7ZAdlsqRM8yna0Wje1osH3Y82/D+m3AqkT+yJs/Sa+nSX
 49MJRoZogxmoxtJOOiVO2XycXnxQdulfEFUBHzhq5HiUf/qFn7ZAJtdgm0mM8UYi2fEW
 qfFFIMpqsxnngkHVg4KgQfCQIWU9zuAYtw+ikIO0BpuKgjVcWuyYtHWwpt8A+WpZAlyt
 SReglNKHYxQ/wXE+85iSwlhFlUAmRZbBlWD87uqx1Io6kKLgkYVbbVsAqeVLsLW9d5uf
 xdoJRK9intRonehgfCFmMoVUuzTREWSEOryCOXv0ArYHZGtvpFC9ui3B982hPSrTZyF+
 89Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=w8TDnuD17itzjWmr8OT+E3x43kH9SaNIdto6JJO9bSY=;
 b=Cu3DEFMZhOl3hVRl8dGjduldvpGaY5hbkqOLKeHiY1v9enCz2C9mjmFLumWzzS9bOz
 7c3nxxmu6KqL+iuasT1EWmr91oM55phiL3ZO1X7yORk1ukpsV40FPkmqjvCjV3o7eFmG
 y7yqvyE2+FalAW+HAHJTfSOFWK7tIZCh/yew5NhR53S+345h6stIGRgmj/YJpFAB4Tus
 41SQ7J47t0uOb2l9CLsBABYgr7Xd7P9GLGX78pmsMfZh85qYmuHBA/k0J1tX+1rW+Lg5
 nYUG4jNcPnNcr8DqzlmgchRHJF/SUGFbibsUaleQaO1wr1gVVj5q69DIZqNhoqtcVuc8
 Z4aA==
X-Gm-Message-State: AOPr4FX7uU/GEB1QBEL9MoEkax1TbJOwXTtUX/caF+3asRNTBtXhf1grte08xcaNblhb5g==
X-Received: by 10.194.87.72 with SMTP id v8mr2675356wjz.68.1463501222316;
 Tue, 17 May 2016 09:07:02 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.01
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:01 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:00 +0100
Message-Id: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 0/4] NDIS RSS support
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBzZXJpZXMgYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWxpdHkgdG8gdGhl
IFZJRiBpbnRlcmZhY2UKdG8gc3VwcG9ydCBlbmFibGluZyBORElTIFJTUyBpbiBYRU5ORVQuCgpB
IGJhY2tlbmQgdGhhdCBzdXBwb3J0cyB0aGUgbmV3IG5ldGlmIGNvbnRyb2wgcmluZyBwcm90b2Nv
bCBpcyBhbHNvCnJlcXVpcmVkLiBTZWUgbmV0aWYuaCBpbiB0aGUgWGVuIHNvdXJjZSB0cmVlIGZv
ciBkZXRhaWxzLgoKUGF1bCBEdXJyYW50ICg0KToKICBVcGRhdGUgWGVuIGhlYWRlcnMgdG8gNC43
LjAtcmMyCiAgQWRkIGZyb250ZW5kIGNvZGUgZm9yIHRoZSBuZXcgbmV0aWYgY29udHJvbCByaW5n
CiAgQWRkIG5ldyBmdW5jdGlvbmFsaXR5IHRvIFZJRiBpbnRlcmZhY2UgdG8gc3VwcG9ydCBSU1MK
ICBTZW5kIHRyYW5zbWl0IHNpZGUgaGFzaCB2YWx1ZSB0byB0aGUgYmFja2VuZAoKIGluY2x1ZGUv
ZXZ0Y2huX2ludGVyZmFjZS5oICAgICAgICAgICAgICAgfCAgIDM2ICstCiBpbmNsdWRlL3Jldmlz
aW9uLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQogaW5jbHVkZS92aWZfaW50ZXJm
YWNlLmggICAgICAgICAgICAgICAgICB8ICAxNDYgKysrLQogaW5jbHVkZS94ZW4vcHVibGljL2Fy
Y2gteDg2L3hlbi14ODZfMzIuaCB8ICAgMjEgKy0KIGluY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmggfCAgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVu
LmggICAgICAgIHwgICAzNyArLQogaW5jbHVkZS94ZW4vcHVibGljL2Vycm5vLmggICAgICAgICAg
ICAgICB8ICAgNjMgKy0KIGluY2x1ZGUveGVuL3B1YmxpYy9ncmFudF90YWJsZS5oICAgICAgICAg
fCAgIDEwICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvaW8vbmV0aWYuaCAgICAgICAgICAgIHwgIDY1
OSArKysrKysrKysrKysrLS0KIGluY2x1ZGUveGVuL3B1YmxpYy9pby9yaW5nLmggICAgICAgICAg
ICAgfCAgIDE4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaCAgICAgICAgICAgICAgIHwg
ICAgOCArLQogaW5jbHVkZS94ZW4vcHVibGljL3hlbi1jb21wYXQuaCAgICAgICAgICB8ICAgIDIg
Ky0KIGluY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCAgMTUzICsrKy0K
IGluY2x1ZGUveGVuL3hlbi9lcnJuby5oICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMv
eGVudmlmLmluZiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMgICAgICAgICAgICAgICAgICB8IDEzMzYgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgIHwg
IDEyNiArKysKIHNyYy94ZW52aWYvZnJvbnRlbmQuYyAgICAgICAgICAgICAgICAgICAgfCAgMzY2
ICsrKysrKystCiBzcmMveGVudmlmL2Zyb250ZW5kLmggICAgICAgICAgICAgICAgICAgIHwgICA1
MSArLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzMzYgKysr
KysrKy0KIHNyYy94ZW52aWYvcmVjZWl2ZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsK
IHNyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyAgICAgICAgICAgICAgICAgfCAgMjA5ICsrKystCiBz
cmMveGVudmlmL3ZpZi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwNyArKysrKwogc3Jj
L3hlbnZpZi92aWYuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogdnMyMDEyL3hl
bnZpZi94ZW52aWYudmN4cHJvaiAgICAgICAgICAgICB8ICAgIDEgKwogdnMyMDEzL3hlbnZpZi94
ZW52aWYudmN4cHJvaiAgICAgICAgICAgICB8ICAgIDEgKwogMjYgZmlsZXMgY2hhbmdlZCwgMzU5
NCBpbnNlcnRpb25zKCspLCAyNTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj
L3hlbnZpZi9jb250cm9sbGVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVudmlmL2NvbnRy
b2xsZXIuaAoKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWS-0006ZL-GF; Tue, 17 May 2016 16:07:04 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWR-0006ZF-Rn
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:04 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
 8F/FF-20564-7A14B375; Tue, 17 May 2016 16:07:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkqLvM0Tr
 cYMNyLYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMW3DRraC+/wVrZc+MjUw7uXqYuTiEBKYxSjR
 cbmFDcRhEbjEItF0tIkRxJEQeMci0TPlOWsXIyeQEyPx/dd+dgi7XOL8ulWMILaQgKJE87UL7
 BCjljFJ7L3wlAkkwSagLnH7/WKoBjuJT7NugtkiAqoS15YfYwOxmQW0JB5umAc2SBgo/vTRF7
 A4C5C99WgvC4jNK+AucX9KI9QRchJ7J69mmcDIv4CRYRWjenFqUVlqka6FXlJRZnpGSW5iZo6
 uoYGpXm5qcXFiempOYlKxXnJ+7iZGYAAxAMEOxoPNzocYJTmYlER5L5hYhwvxJeWnVGYkFmfE
 F5XmpBYfYpTh4FCS4G1wAMoJFqWmp1akZeYAQxkmLcHBoyTCaweS5i0uSMwtzkyHSJ1i1OXYM
 vXeWiYhlrz8vFQpcd5ukCIBkKKM0jy4EbC4usQoKyXMywh0lBBPQWpRbmYJqvwrRnEORiVh3i
 qQKTyZeSVwm14BHcEEdMQEMwuQI0oSEVJSDYxLTLsXNtjyn27+tPvHceefJ1WCv6/6Oa/+pCR
 D4IVPvBr8ifOUFhXM2PpWKez9JtvaEzfSS25urj6gwN/y4rrdGaXwmPIte0rre0PENptM3bbI
 vjjvaJHJRd4dGbdYA+dyrwn4kHuN13+py+pSlX8MbSsM2R5+sGBcdq8qTEq59sixU/LHS38os
 RRnJBpqMRcVJwIAV8ol+6YCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1463501222!36442702!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61737 invoked from network); 17 May 2016 16:07:02 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-3.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:02 -0000
Received: by mail-wm0-f65.google.com with SMTP id r12so5920869wme.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=w8TDnuD17itzjWmr8OT+E3x43kH9SaNIdto6JJO9bSY=;
 b=0RVf8x1jJPW7AkDKPUWFC7ZAdlsqRM8yna0Wje1osH3Y82/D+m3AqkT+yJs/Sa+nSX
 49MJRoZogxmoxtJOOiVO2XycXnxQdulfEFUBHzhq5HiUf/qFn7ZAJtdgm0mM8UYi2fEW
 qfFFIMpqsxnngkHVg4KgQfCQIWU9zuAYtw+ikIO0BpuKgjVcWuyYtHWwpt8A+WpZAlyt
 SReglNKHYxQ/wXE+85iSwlhFlUAmRZbBlWD87uqx1Io6kKLgkYVbbVsAqeVLsLW9d5uf
 xdoJRK9intRonehgfCFmMoVUuzTREWSEOryCOXv0ArYHZGtvpFC9ui3B982hPSrTZyF+
 89Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=w8TDnuD17itzjWmr8OT+E3x43kH9SaNIdto6JJO9bSY=;
 b=Cu3DEFMZhOl3hVRl8dGjduldvpGaY5hbkqOLKeHiY1v9enCz2C9mjmFLumWzzS9bOz
 7c3nxxmu6KqL+iuasT1EWmr91oM55phiL3ZO1X7yORk1ukpsV40FPkmqjvCjV3o7eFmG
 y7yqvyE2+FalAW+HAHJTfSOFWK7tIZCh/yew5NhR53S+345h6stIGRgmj/YJpFAB4Tus
 41SQ7J47t0uOb2l9CLsBABYgr7Xd7P9GLGX78pmsMfZh85qYmuHBA/k0J1tX+1rW+Lg5
 nYUG4jNcPnNcr8DqzlmgchRHJF/SUGFbibsUaleQaO1wr1gVVj5q69DIZqNhoqtcVuc8
 Z4aA==
X-Gm-Message-State: AOPr4FX7uU/GEB1QBEL9MoEkax1TbJOwXTtUX/caF+3asRNTBtXhf1grte08xcaNblhb5g==
X-Received: by 10.194.87.72 with SMTP id v8mr2675356wjz.68.1463501222316;
 Tue, 17 May 2016 09:07:02 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.01
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:01 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:00 +0100
Message-Id: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 0/4] NDIS RSS support
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBzZXJpZXMgYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWxpdHkgdG8gdGhl
IFZJRiBpbnRlcmZhY2UKdG8gc3VwcG9ydCBlbmFibGluZyBORElTIFJTUyBpbiBYRU5ORVQuCgpB
IGJhY2tlbmQgdGhhdCBzdXBwb3J0cyB0aGUgbmV3IG5ldGlmIGNvbnRyb2wgcmluZyBwcm90b2Nv
bCBpcyBhbHNvCnJlcXVpcmVkLiBTZWUgbmV0aWYuaCBpbiB0aGUgWGVuIHNvdXJjZSB0cmVlIGZv
ciBkZXRhaWxzLgoKUGF1bCBEdXJyYW50ICg0KToKICBVcGRhdGUgWGVuIGhlYWRlcnMgdG8gNC43
LjAtcmMyCiAgQWRkIGZyb250ZW5kIGNvZGUgZm9yIHRoZSBuZXcgbmV0aWYgY29udHJvbCByaW5n
CiAgQWRkIG5ldyBmdW5jdGlvbmFsaXR5IHRvIFZJRiBpbnRlcmZhY2UgdG8gc3VwcG9ydCBSU1MK
ICBTZW5kIHRyYW5zbWl0IHNpZGUgaGFzaCB2YWx1ZSB0byB0aGUgYmFja2VuZAoKIGluY2x1ZGUv
ZXZ0Y2huX2ludGVyZmFjZS5oICAgICAgICAgICAgICAgfCAgIDM2ICstCiBpbmNsdWRlL3Jldmlz
aW9uLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQogaW5jbHVkZS92aWZfaW50ZXJm
YWNlLmggICAgICAgICAgICAgICAgICB8ICAxNDYgKysrLQogaW5jbHVkZS94ZW4vcHVibGljL2Fy
Y2gteDg2L3hlbi14ODZfMzIuaCB8ICAgMjEgKy0KIGluY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmggfCAgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVu
LmggICAgICAgIHwgICAzNyArLQogaW5jbHVkZS94ZW4vcHVibGljL2Vycm5vLmggICAgICAgICAg
ICAgICB8ICAgNjMgKy0KIGluY2x1ZGUveGVuL3B1YmxpYy9ncmFudF90YWJsZS5oICAgICAgICAg
fCAgIDEwICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvaW8vbmV0aWYuaCAgICAgICAgICAgIHwgIDY1
OSArKysrKysrKysrKysrLS0KIGluY2x1ZGUveGVuL3B1YmxpYy9pby9yaW5nLmggICAgICAgICAg
ICAgfCAgIDE4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaCAgICAgICAgICAgICAgIHwg
ICAgOCArLQogaW5jbHVkZS94ZW4vcHVibGljL3hlbi1jb21wYXQuaCAgICAgICAgICB8ICAgIDIg
Ky0KIGluY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCAgMTUzICsrKy0K
IGluY2x1ZGUveGVuL3hlbi9lcnJuby5oICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMv
eGVudmlmLmluZiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMgICAgICAgICAgICAgICAgICB8IDEzMzYgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgIHwg
IDEyNiArKysKIHNyYy94ZW52aWYvZnJvbnRlbmQuYyAgICAgICAgICAgICAgICAgICAgfCAgMzY2
ICsrKysrKystCiBzcmMveGVudmlmL2Zyb250ZW5kLmggICAgICAgICAgICAgICAgICAgIHwgICA1
MSArLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzMzYgKysr
KysrKy0KIHNyYy94ZW52aWYvcmVjZWl2ZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsK
IHNyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYyAgICAgICAgICAgICAgICAgfCAgMjA5ICsrKystCiBz
cmMveGVudmlmL3ZpZi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwNyArKysrKwogc3Jj
L3hlbnZpZi92aWYuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogdnMyMDEyL3hl
bnZpZi94ZW52aWYudmN4cHJvaiAgICAgICAgICAgICB8ICAgIDEgKwogdnMyMDEzL3hlbnZpZi94
ZW52aWYudmN4cHJvaiAgICAgICAgICAgICB8ICAgIDEgKwogMjYgZmlsZXMgY2hhbmdlZCwgMzU5
NCBpbnNlcnRpb25zKCspLCAyNTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj
L3hlbnZpZi9jb250cm9sbGVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVudmlmL2NvbnRy
b2xsZXIuaAoKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:07 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWV-0006Zz-In; Tue, 17 May 2016 16:07:07 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWU-0006ZV-6M
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:06 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B9/09-26345-9A14B375; Tue, 17 May 2016 16:07:05 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsXiVRukrbvc0Tr
 c4Ntna4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8er3HPaCSyeYKyZ3/WVsYJx+k6mLkZNDSGA2
 o8SMXcxdjFwcLAKzWCXeNfUygTgSAttYJR6/PMgOUiUhECMxofk8M4RdJfHizU42iG5FieZrF
 9hBGoQEljFJ/F7+jxEkwSagLnH7/WKoZjuJT7NugtkiAqoS15YfA2tmFtCSeLhhHli9sICJxO
 kzb8BsFqCaaU0nwM7jFXCX2H/vGhvEHDmJvZNXs4DYnAIeErNe/2GHOMJdon37dTaIekGJkzO
 fANVwAM1Xl1g/TwhilbxE89bZzBMYRWYhqZqFUDULSdUCRuZVjBrFqUVlqUW6hiZ6SUWZ6Rkl
 uYmZObqGQG5uanFxYnpqTmJSsV5yfu4mRmAE1DMwMO5g/H7a8xCjJAeTkijvBRPrcCG+pPyUy
 ozE4oz4otKc1OJDjDIcHEoSvC8dgHKCRanpqRVpmTnAWIRJS3DwKInwvgJJ8xYXJOYWZ6ZDpE
 4xGnNsWXBjLRPHlqn31jIJseTl56VKifN2g5QKgJRmlObBDYKliEuMslLCvIwMDAxCPAWpRbm
 ZJajyrxjFORiVhHk3g0zhycwrgdv3CugUJqBTJphZgJxSkoiQkmpgTJSafe1OxQcJnZmfbfs/
 MZsx23x6uGud+Y7XEhfvr380hTe54vPtrAafJTZuU/zCTu8/IMpq5XA3xn6Rycm/q3bem23Gf
 2liaMQm5k2LEwvU8ubOWpGy/EnGX15xncbmDQbBj688u35/9zaxHW8XcbkvSzfa+/Zq9ZmjcX
 4v1cprbjuoTOPjeabEUpyRaKjFXFScCAAOpKDRDAMAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1463501223!41789451!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 45907 invoked from network); 17 May 2016 16:07:03 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
 (74.125.82.43)
 by server-3.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:03 -0000
Received: by mail-wm0-f43.google.com with SMTP id g17so39367469wme.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=mQyIqdWhVAyvqP1N9iDlXO7iePFWf+YrN/rszU8DGEQ=;
 b=UspRbQhX/BWiDnCJXBABEY6vxmDzILuWFawY3ahGA79fFpd/JDw3Xp+9zwN2l3oKRs
 ClS6Pc2QNfUPb7pCu2uVeCDQGi0POCKSZy474pVElrSlOBXhGjqQzGlHMUPx7zL/8MvI
 FRkiCLHcH2CJeXMdPDR9Hb+GU9ZO+mVhuR7eYrjSKAQ7UFmgffnsy579G/9+NuEf+0XW
 0cu7F4nywhU/TEQkvZm0NN5uqfwKXWtn7iryDfqQHyH4nBa36RMlxN7iBg4HPhUvHCHQ
 Icpz4ht6eJGxV4mfEVgBVTmBy5ujO9jxetUejPYFI5vdE5ZrhQeOXevZHz/wsEcoJGuR
 jjqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=mQyIqdWhVAyvqP1N9iDlXO7iePFWf+YrN/rszU8DGEQ=;
 b=W4GiFjGP1CrZa0srOVmVe0esq/tB/1xOMyPVrBxpWgGdAV0vajw6nSGaEpwywcIyax
 4rf5dOrlTU81DjaiHU7ybPApo/+JwJk1qyUkO5L1ekvp9Vl4scgd3FD7hTzZ3XpBrFib
 PEClbsQ5jUeQST4dXmZv+jzPZO8mrp8SC0cTzxS20vC1Vj8WD259OqE+YMt2DehFEM7L
 I1tE9Ke/BPuc5ctKoM7IJwlYFqD+CH92k8pVzkEUBmb0pFCODokz5++RwcwnB22V54YV
 G8qDmmLt18NUbUG0CmDaDHarn34QgeqfFw4HU5f3Wg8/RMNclSAoYjM9gJUgUYTTUJGD
 ZGbA==
X-Gm-Message-State: AOPr4FXcF+JjmtQa2tZxZYfq5Klg9d/dEEuDd2CjlI/jMN1TNmrKz6G/EQnT4iCfYnbZSw==
X-Received: by 10.194.175.168 with SMTP id cb8mr2381677wjc.56.1463501223310;
 Tue, 17 May 2016 09:07:03 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.02
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:02 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:01 +0100
Message-Id: <1463501224-12940-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/4] Update Xen headers to 4.7.0-rc2
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwdWxscyBpbiB0aGUgcmVjZW50IGNoYW5nZXMgdG8gbmV0aWYuaCB3aGljaCBhcmUgcmVx
dWlyZWQgYnkKc3Vic2VxdWVudCBwYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50
IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14
ODYveGVuLXg4Nl8zMi5oIHwgIDIxICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVu
LXg4Nl82NC5oIHwgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmggICAg
ICAgIHwgIDM3ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvZXJybm8uaCAgICAgICAgICAgICAgIHwg
IDYzICsrLQogaW5jbHVkZS94ZW4vcHVibGljL2dyYW50X3RhYmxlLmggICAgICAgICB8ICAxMCAr
LQogaW5jbHVkZS94ZW4vcHVibGljL2lvL25ldGlmLmggICAgICAgICAgICB8IDY1OSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tCiBpbmNsdWRlL3hlbi9wdWJsaWMvaW8vcmluZy5oICAg
ICAgICAgICAgIHwgIDE4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaCAgICAgICAgICAg
ICAgIHwgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oICAgICAgICAgIHwg
ICAyICstCiBpbmNsdWRlL3hlbi9wdWJsaWMveGVuLmggICAgICAgICAgICAgICAgIHwgMTUzICsr
KysrLS0KIGluY2x1ZGUveGVuL3hlbi9lcnJuby5oICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K
IDExIGZpbGVzIGNoYW5nZWQsIDg0MSBpbnNlcnRpb25zKCspLCAxNDQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzMyLmgKaW5kZXggNzM2ODhiOC4uZDIz
MzQwYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIu
aAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oCkBAIC01OCwz
NCArNTgsMzEgQEAKICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAgIDB4RjU4
MDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUgICAgIDB4RjU4MDAwMDAK
ICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgIDB4RjY4MDAwMDAKLSNkZWZp
bmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSAgICAgIFwKLSAgICBta191bnNpZ25lZF9sb25n
KF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKLSNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RB
UlRfUEFFICAgICAgIFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RB
UlRfUEFFKQotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgICAgXAotICAgIG1r
X3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFKQorI2RlZmluZSBIWVBFUlZJ
U09SX1ZJUlRfU1RBUlRfUEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NU
QVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191
bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRf
RU5EX1BBRSAgICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCiAK
IC8qIE5vbi1QQUUgYm91bmRzIGFyZSBvYnNvbGV0ZS4gKi8KICNkZWZpbmUgX19IWVBFUlZJU09S
X1ZJUlRfU1RBUlRfTk9OUEFFIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9T
VEFSVF9OT05QQUUgIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9O
UEFFICAgIDB4RkM0MDAwMDAKICNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAg
IFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSkK
KyAgICB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQogI2RlZmlu
ZSBNQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgICAgXAotICAgIG1rX3Vuc2lnbmVkX2xvbmco
X19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUpCisgICAgeGVuX21rX3Vsb25nKF9fTUFDSDJQ
SFlTX1ZJUlRfU1RBUlRfTk9OUEFFKQogI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFF
ICAgICAgXAotICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFF
KQorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9OT05QQUUpCiAKICNkZWZp
bmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFCiAj
ZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFF
CiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EICAgIF9fTUFDSDJQSFlTX1ZJUlRfRU5EX1BB
RQogCiAjaWZuZGVmIEhZUEVSVklTT1JfVklSVF9TVEFSVAotI2RlZmluZSBIWVBFUlZJU09SX1ZJ
UlRfU1RBUlQgbWtfdW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNkZWZp
bmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9T
VEFSVCkKICNlbmRpZgogCi0jZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICBta191bnNpZ25l
ZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VO
RCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQorI2RlZmluZSBNQUNI
MlBIWVNfVklSVF9TVEFSVCAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VORCAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9FTkQpCiAjZGVmaW5lIE1BQ0gyUEhZU19OUl9FTlRSSUVTICAoKE1BQ0gyUEhZU19WSVJUX0VO
RC1NQUNIMlBIWVNfVklSVF9TVEFSVCk+PjIpCiAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBw
aW5nCiAjZGVmaW5lIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nICgoVUxPTkdfUFRSICopTUFDSDJQ
SFlTX1ZJUlRfU1RBUlQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYv
eGVuLXg4Nl82NC5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaApp
bmRleCBiOTllYWFiLi4yZjUzZjY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl82NC5oCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4t
eDg2XzY0LmgKQEAgLTc2LDEyICs3NiwxMiBAQAogI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VO
RCAgICAweEZGRkY4MDQwMDAwMDAwMDAKIAogI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQK
LSNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIEhZUEVSVklTT1JfVklSVF9FTkQgICBta191bnNpZ25l
ZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NU
QVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNkZWZpbmUgSFlQRVJW
SVNPUl9WSVJUX0VORCAgIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9FTkQpCiAjZW5k
aWYKIAotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgbWtfdW5zaWduZWRfbG9uZyhfX01B
Q0gyUEhZU19WSVJUX1NUQVJUKQotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgbWtfdW5z
aWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRf
U1RBUlQgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUKQorI2RlZmluZSBNQUNI
MlBIWVNfVklSVF9FTkQgICAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQogI2Rl
ZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlT
X1ZJUlRfU1RBUlQpPj4zKQogI2lmbmRlZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwogI2RlZmlu
ZSBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZyAoKFVMT05HX1BUUiAqKUhZUEVSVklTT1JfVklSVF9T
VEFSVCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaAppbmRleCA1OGM2MTdmLi4wNWRiNzdmIDEw
MDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKKysrIGIvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oCkBAIC01NCw5ICs1NCw2IEBACiAjZGVmaW5lIFhF
Tl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFORExFKG5hbWUpCiAj
ZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dVRVNUX0hBTkRMRShu
YW1lKQogI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpICBkbyB7ICho
bmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCi0jaWZkZWYgX19YRU5fVE9PTFNfXwotI2RlZmluZSBn
ZXRfeGVuX2d1ZXN0X2hhbmRsZSh2YWwsIGhuZCkgIGRvIHsgdmFsID0gKGhuZCkucDsgfSB3aGls
ZSAoMCkKLSNlbmRpZgogI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZShobmQsIHZhbCkgc2V0
X3hlbl9ndWVzdF9oYW5kbGVfcmF3KGhuZCwgdmFsKQogCiAjaWYgZGVmaW5lZChfX2kzODZfXykK
QEAgLTI2Miw2ICsyNTksNDAgQEAgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gewogfTsKIHR5cGVk
ZWYgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gYXJjaF9zaGFyZWRfaW5mb190OwogCisjaWYgZGVm
aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisvKgorICogc3RydWN0IHhl
bl9hcmNoX2RvbWFpbmNvbmZpZydzIEFCSSBpcyBjb3ZlcmVkIGJ5CisgKiBYRU5fRE9NQ1RMX0lO
VEVSRkFDRV9WRVJTSU9OLgorICovCitzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIHsKKyNk
ZWZpbmUgX1hFTl9YODZfRU1VX0xBUElDICAgICAgICAgIDAKKyNkZWZpbmUgWEVOX1g4Nl9FTVVf
TEFQSUMgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0xBUElDKQorI2RlZmluZSBfWEVOX1g4
Nl9FTVVfSFBFVCAgICAgICAgICAgMQorI2RlZmluZSBYRU5fWDg2X0VNVV9IUEVUICAgICAgICAg
ICAgKDFVPDxfWEVOX1g4Nl9FTVVfSFBFVCkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1BNICAgICAg
ICAgICAgIDIKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUE0gICAgICAgICAgICAgICgxVTw8X1hFTl9Y
ODZfRU1VX1BNKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgMworI2RlZmlu
ZSBYRU5fWDg2X0VNVV9SVEMgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUlRDKQorI2Rl
ZmluZSBfWEVOX1g4Nl9FTVVfSU9BUElDICAgICAgICAgNAorI2RlZmluZSBYRU5fWDg2X0VNVV9J
T0FQSUMgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9BUElDKQorI2RlZmluZSBfWEVOX1g4
Nl9FTVVfUElDICAgICAgICAgICAgNQorI2RlZmluZSBYRU5fWDg2X0VNVV9QSUMgICAgICAgICAg
ICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElDKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfVkdBICAgICAg
ICAgICAgNgorI2RlZmluZSBYRU5fWDg2X0VNVV9WR0EgICAgICAgICAgICAgKDFVPDxfWEVOX1g4
Nl9FTVVfVkdBKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgNworI2RlZmlu
ZSBYRU5fWDg2X0VNVV9JT01NVSAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9NTVUpCisj
ZGVmaW5lIF9YRU5fWDg2X0VNVV9QSVQgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9YODZfRU1V
X1BJVCAgICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9QSVQpCisKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfQUxMICAgICAgICAgICAgIChYRU5fWDg2X0VNVV9MQVBJQyB8IFhFTl9YODZfRU1VX0hQ
RVQgfCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1V
X1BNIHwgWEVOX1g4Nl9FTVVfUlRDIHwgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWEVOX1g4Nl9FTVVfSU9BUElDIHwgWEVOX1g4Nl9FTVVfUElDIHwgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fWDg2X0VNVV9WR0EgfCBYRU5f
WDg2X0VNVV9JT01NVSB8ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhFTl9YODZfRU1VX1BJVCkKKyAgICB1aW50MzJfdCBlbXVsYXRpb25fZmxhZ3M7Cit9OworI2Vu
ZGlmCisKICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi9wdWJsaWMvZXJybm8uaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5oCmluZGV4
IGM2NDQ2MzMuLmU0NDAyMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5o
CisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5oCkBAIC0xLDI2ICsxLDYwIEBACisvKgor
ICogVGhlcmUgYXJlIHR3byBleHBlY3RlZCB3YXlzIG9mIGluY2x1ZGluZyB0aGlzIGhlYWRlci4K
KyAqCisgKiAxKSBUaGUgImRlZmF1bHQiIGNhc2UgKGV4cGVjdGVkIGZyb20gdG9vbHMgZXRjKS4K
KyAqCisgKiBTaW1wbHkgI2luY2x1ZGUgPHB1YmxpYy9lcnJuby5oPgorICoKKyAqIEluIHRoaXMg
Y2lyY3Vtc3RhbmNlLCBub3JtYWwgaGVhZGVyIGd1YXJkcyBhcHBseSBhbmQgdGhlIGluY2x1ZGVy
IHNoYWxsIGdldAorICogYW4gZW51bWVyYXRpb24gaW4gdGhlIFhFTl94eHggbmFtZXNwYWNlLCBh
cHByb3ByaWF0ZSBmb3IgQyBvciBhc3NlbWJseS4KKyAqCisgKiAyKSBUaGUgc3BlY2lhbCBjYXNl
IHdoZXJlIHRoZSBpbmNsdWRlciBwcm92aWRlcyBhIFhFTl9FUlJOTygpIGluIHNjb3BlLgorICoK
KyAqIEluIHRoaXMgY2FzZSwgbm8gaW5jbHVzaW9uIGd1YXJkcyBhcHBseSBhbmQgdGhlIGNhbGxl
ciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHRoZWlyIFhFTl9FUlJOTygpIGJlaW5nIGFwcHJvcHJp
YXRlIGluIHRoZSBpbmNsdWRlZCBjb250ZXh0LiAgVGhlIGhlYWRlcgorICogd2lsbCB1bmlsYXRl
cmFsbHkgI3VuZGVmIFhFTl9FUlJOTygpLgorICovCisKKyNpZm5kZWYgWEVOX0VSUk5PCisKKy8q
CisgKiBJbmNsdWRlciBoYXMgbm90IHByb3ZpZGVkIGEgY3VzdG9tIFhFTl9FUlJOTygpLiAgQXJy
YW5nZSBmb3Igbm9ybWFsIGhlYWRlcgorICogZ3VhcmRzLCBhbiBhdXRvbWF0aWMgZW51bSAoZm9y
IEMgY29kZSkgYW5kIGNvbnN0YW50cyBpbiB0aGUgWEVOX3h4eAorICogbmFtZXNwYWNlLgorICov
CiAjaWZuZGVmIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0VS
Uk5PX0hfXworCisjZGVmaW5lIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUKIAogI2lmbmRlZiBf
X0FTU0VNQkxZX18KIAogI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIFhFTl8jI25hbWUg
PSB2YWx1ZSwKIGVudW0geGVuX2Vycm5vIHsKIAotI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLwor
I2VsaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKIAogI2RlZmluZSBY
RU5fRVJSTk8obmFtZSwgdmFsdWUpIC5lcXUgWEVOXyMjbmFtZSwgdmFsdWUKIAogI2VuZGlmIC8q
IF9fQVNTRU1CTFlfXyAqLwogCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0VSUk5PX0hfXyAqLwor
I2VuZGlmIC8qICFYRU5fRVJSTk8gKi8KKwogLyogYCBlbnVtIG5lZ19lcnJub3ZhbCB7ICBbIC1F
Zm9vIGZvciBlYWNoIEVmb28gaW4gdGhlIGxpc3QgYmVsb3cgXSAgfSAqLwogLyogYCBlbnVtIGVy
cm5vdmFsIHsgKi8KIAotI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19FUlJOT19IX18gKi8KLQogI2lm
ZGVmIFhFTl9FUlJOTwogCiAvKgogICogVmFsdWVzIG9yaWdpbmF0aW5nIGZyb20geDg2IExpbnV4
LiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgcmVzcGVjdGl2ZQogICogdmFsdWVzIHdoZW4gYWRkaW5n
IG5ldyBkZWZpbml0aW9ucyBoZXJlLgorICoKKyAqIFRoZSBzZXQgb2YgaWRlbnRpZmllcnMgdG8g
YmUgYWRkZWQgaGVyZSBzaG91bGRuJ3QgZXh0ZW5kIGJleW9uZCB3aGF0CisgKiBQT1NJWCBtYW5k
YXRlcyAoc2VlIGUuZy4KKyAqIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85
Njk5OTE5Nzk5L2Jhc2VkZWZzL2Vycm5vLmguaHRtbCkKKyAqIHdpdGggdGhlIGV4Y2VwdGlvbiB0
aGF0IHdlIHN1cHBvcnQgc29tZSBvcHRpb25hbCAoWFNSKSB2YWx1ZXMKKyAqIHNwZWNpZmllZCB0
aGVyZSAoYnV0IG5vIG5ldyBvbmVzIHNob3VsZCBiZSBhZGRlZCkuCiAgKi8KIAogWEVOX0VSUk5P
KEVQRVJNLAkgMSkJLyogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgKi8KQEAgLTM2LDYgKzcwLDcg
QEAgWEVOX0VSUk5PKEVOT0VYRUMsCSA4KQkvKiBFeGVjIGZvcm1hdCBlcnJvciAqLwogWEVOX0VS
Uk5PKEVCQURGLAkgOSkJLyogQmFkIGZpbGUgbnVtYmVyICovCiBYRU5fRVJSTk8oRUNISUxELAkx
MCkJLyogTm8gY2hpbGQgcHJvY2Vzc2VzICovCiBYRU5fRVJSTk8oRUFHQUlOLAkxMSkJLyogVHJ5
IGFnYWluICovCitYRU5fRVJSTk8oRVdPVUxEQkxPQ0ssCTExKQkvKiBPcGVyYXRpb24gd291bGQg
YmxvY2suICBBbGlhc2VzIEVBR0FJTiAqLwogWEVOX0VSUk5PKEVOT01FTSwJMTIpCS8qIE91dCBv
ZiBtZW1vcnkgKi8KIFhFTl9FUlJOTyhFQUNDRVMsCTEzKQkvKiBQZXJtaXNzaW9uIGRlbmllZCAq
LwogWEVOX0VSUk5PKEVGQVVMVCwJMTQpCS8qIEJhZCBhZGRyZXNzICovCkBAIC00MywxOSArNzgs
MjEgQEAgWEVOX0VSUk5PKEVCVVNZLAkxNikJLyogRGV2aWNlIG9yIHJlc291cmNlIGJ1c3kgKi8K
IFhFTl9FUlJOTyhFRVhJU1QsCTE3KQkvKiBGaWxlIGV4aXN0cyAqLwogWEVOX0VSUk5PKEVYREVW
LAkxOCkJLyogQ3Jvc3MtZGV2aWNlIGxpbmsgKi8KIFhFTl9FUlJOTyhFTk9ERVYsCTE5KQkvKiBO
byBzdWNoIGRldmljZSAqLworWEVOX0VSUk5PKEVJU0RJUiwJMjEpCS8qIElzIGEgZGlyZWN0b3J5
ICovCiBYRU5fRVJSTk8oRUlOVkFMLAkyMikJLyogSW52YWxpZCBhcmd1bWVudCAqLwogWEVOX0VS
Uk5PKEVORklMRSwJMjMpCS8qIEZpbGUgdGFibGUgb3ZlcmZsb3cgKi8KIFhFTl9FUlJOTyhFTUZJ
TEUsCTI0KQkvKiBUb28gbWFueSBvcGVuIGZpbGVzICovCiBYRU5fRVJSTk8oRU5PU1BDLAkyOCkJ
LyogTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UgKi8KK1hFTl9FUlJOTyhFUk9GUywJMzApCS8qIFJl
YWQtb25seSBmaWxlIHN5c3RlbSAqLwogWEVOX0VSUk5PKEVNTElOSywJMzEpCS8qIFRvbyBtYW55
IGxpbmtzICovCiBYRU5fRVJSTk8oRURPTSwJCTMzKQkvKiBNYXRoIGFyZ3VtZW50IG91dCBvZiBk
b21haW4gb2YgZnVuYyAqLwogWEVOX0VSUk5PKEVSQU5HRSwJMzQpCS8qIE1hdGggcmVzdWx0IG5v
dCByZXByZXNlbnRhYmxlICovCiBYRU5fRVJSTk8oRURFQURMSywJMzUpCS8qIFJlc291cmNlIGRl
YWRsb2NrIHdvdWxkIG9jY3VyICovCitYRU5fRVJSTk8oRURFQURMT0NLLAkzNSkJLyogUmVzb3Vy
Y2UgZGVhZGxvY2sgd291bGQgb2NjdXIuIEFsaWFzZXMgRURFQURMSyAqLwogWEVOX0VSUk5PKEVO
QU1FVE9PTE9ORywJMzYpCS8qIEZpbGUgbmFtZSB0b28gTE9OR19QVFIgKi8KIFhFTl9FUlJOTyhF
Tk9MQ0ssCTM3KQkvKiBObyByZWNvcmQgbG9ja3MgYXZhaWxhYmxlICovCitYRU5fRVJSTk8oRU5P
VEVNUFRZLAkzOSkJLyogRGlyZWN0b3J5IG5vdCBlbXB0eSAqLwogWEVOX0VSUk5PKEVOT1NZUywJ
MzgpCS8qIEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCAqLwotWEVOX0VSUk5PKEVCQURSUUMsCTU2
KQkvKiBJbnZhbGlkIHJlcXVlc3QgY29kZSAqLwotWEVOX0VSUk5PKEVCQURTTFQsCTU3KQkvKiBJ
bnZhbGlkIHNsb3QgKi8KIFhFTl9FUlJOTyhFTk9EQVRBLAk2MSkJLyogTm8gZGF0YSBhdmFpbGFi
bGUgKi8KIFhFTl9FUlJOTyhFVElNRSwJNjIpCS8qIFRpbWVyIGV4cGlyZWQgKi8KIFhFTl9FUlJO
TyhFQkFETVNHLAk3NCkJLyogTm90IGEgZGF0YSBtZXNzYWdlICovCkBAIC02NCwzMCArMTAxLDI0
IEBAIFhFTl9FUlJOTyhFSUxTRVEsCTg0KQkvKiBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UgKi8KICNp
ZmRlZiBfX1hFTl9fIC8qIEludGVybmFsIG9ubHksIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRv
IHRoZSBndWVzdC4gKi8KIFhFTl9FUlJOTyhFUkVTVEFSVCwJODUpCS8qIEludGVycnVwdGVkIHN5
c3RlbSBjYWxsIHNob3VsZCBiZSByZXN0YXJ0ZWQgKi8KICNlbmRpZgotWEVOX0VSUk5PKEVVU0VS
UywJODcpCS8qIFRvbyBtYW55IHVzZXJzICovCitYRU5fRVJSTk8oRU5PVFNPQ0ssCTg4KQkvKiBT
b2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQgKi8KIFhFTl9FUlJOTyhFT1BOT1RTVVBQLAk5
NSkJLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50ICovCiBY
RU5fRVJSTk8oRUFERFJJTlVTRSwJOTgpCS8qIEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UgKi8KIFhF
Tl9FUlJOTyhFQUREUk5PVEFWQUlMLCA5OSkJLyogQ2Fubm90IGFzc2lnbiByZXF1ZXN0ZWQgYWRk
cmVzcyAqLwogWEVOX0VSUk5PKEVOT0JVRlMsCTEwNSkJLyogTm8gYnVmZmVyIHNwYWNlIGF2YWls
YWJsZSAqLwogWEVOX0VSUk5PKEVJU0NPTk4sCTEwNikJLyogVHJhbnNwb3J0IGVuZHBvaW50IGlz
IGFscmVhZHkgY29ubmVjdGVkICovCiBYRU5fRVJSTk8oRU5PVENPTk4sCTEwNykJLyogVHJhbnNw
b3J0IGVuZHBvaW50IGlzIG5vdCBjb25uZWN0ZWQgKi8KLVhFTl9FUlJOTyhFU0hVVERPV04sCTEw
OCkJLyogQ2Fubm90IHNlbmQgYWZ0ZXIgdHJhbnNwb3J0IGVuZHBvaW50IHNodXRkb3duICovCi1Y
RU5fRVJSTk8oRVRPT01BTllSRUZTLAkxMDkpCS8qIFRvbyBtYW55IHJlZmVyZW5jZXM6IGNhbm5v
dCBzcGxpY2UgKi8KIFhFTl9FUlJOTyhFVElNRURPVVQsCTExMCkJLyogQ29ubmVjdGlvbiB0aW1l
ZCBvdXQgKi8KIAogI3VuZGVmIFhFTl9FUlJOTwogI2VuZGlmIC8qIFhFTl9FUlJOTyAqLwotCi0j
aWZuZGVmIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KLSNkZWZpbmUgX19YRU5fUFVCTElDX0VSUk5P
X0hfXwotCiAvKiBgIH0gKi8KIAorLyogQ2xlYW4gdXAgZnJvbSBhIGRlZmF1bHQgaW5jbHVkZS4g
IENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCisjaWZkZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5D
TFVERQorI3VuZGVmIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUKICNpZm5kZWYgX19BU1NFTUJM
WV9fCiB9OwogI2VuZGlmCiAKLSNkZWZpbmUJWEVOX0VXT1VMREJMT0NLCVhFTl9FQUdBSU4JLyog
T3BlcmF0aW9uIHdvdWxkIGJsb2NrICovCi0jZGVmaW5lCVhFTl9FREVBRExPQ0sJWEVOX0VERUFE
TEsJLyogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIgKi8KLQotI2VuZGlmIC8qICBfX1hF
Tl9QVUJMSUNfRVJSTk9fSF9fICovCisjZW5kaWYgLyogWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVE
RSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL2dyYW50X3RhYmxlLmggYi9pbmNs
dWRlL3hlbi9wdWJsaWMvZ3JhbnRfdGFibGUuaAppbmRleCBmMWI3OTE3Li5iNjhmZmRkIDEwMDY0
NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRlL3hl
bi9wdWJsaWMvZ3JhbnRfdGFibGUuaApAQCAtNDMsNyArNDMsNyBAQAogICogdGFibGUgYXJlIGlk
ZW50aWZpZWQgYnkgZ3JhbnQgcmVmZXJlbmNlcy4gQSBncmFudCByZWZlcmVuY2UgaXMgYW4KICAq
IGludGVnZXIsIHdoaWNoIGluZGV4ZXMgaW50byB0aGUgZ3JhbnQgdGFibGUuIEl0IGFjdHMgYXMg
YQogICogY2FwYWJpbGl0eSB3aGljaCB0aGUgZ3JhbnRlZSBjYW4gdXNlIHRvIHBlcmZvcm0gb3Bl
cmF0aW9ucyBvbiB0aGUKLSAqIGdyYW50ZXLigJlzIG1lbW9yeS4KKyAqIGdyYW50ZXIncyBtZW1v
cnkuCiAgKgogICogVGhpcyBjYXBhYmlsaXR5LWJhc2VkIHN5c3RlbSBhbGxvd3Mgc2hhcmVkLW1l
bW9yeSBjb21tdW5pY2F0aW9ucwogICogYmV0d2VlbiB1bnByaXZpbGVnZWQgZG9tYWlucy4gQSBn
cmFudCByZWZlcmVuY2UgYWxzbyBlbmNhcHN1bGF0ZXMKQEAgLTEzNCw4ICsxMzQsMTAgQEAgc3Ry
dWN0IGdyYW50X2VudHJ5X3YxIHsKICAgICAvKiBUaGUgZG9tYWluIGJlaW5nIGdyYW50ZWQgZm9y
ZWlnbiBwcml2aWxlZ2VzLiBbR1NUXSAqLwogICAgIGRvbWlkX3QgIGRvbWlkOwogICAgIC8qCi0g
ICAgICogR1RGX3Blcm1pdF9hY2Nlc3M6IEZyYW1lIHRoYXQgQGRvbWlkIGlzIGFsbG93ZWQgdG8g
bWFwIGFuZCBhY2Nlc3MuIFtHU1RdCi0gICAgICogR1RGX2FjY2VwdF90cmFuc2ZlcjogRnJhbWUg
d2hvc2Ugb3duZXJzaGlwIHRyYW5zZmVycmVkIGJ5IEBkb21pZC4gW1hFTl0KKyAgICAgKiBHVEZf
cGVybWl0X2FjY2VzczogR0ZOIHRoYXQgQGRvbWlkIGlzIGFsbG93ZWQgdG8gbWFwIGFuZCBhY2Nl
c3MuIFtHU1RdCisgICAgICogR1RGX2FjY2VwdF90cmFuc2ZlcjogR0ZOIHRoYXQgQGRvbWlkIGlz
IGFsbG93ZWQgdG8gdHJhbnNmZXIgaW50by4gW0dTVF0KKyAgICAgKiBHVEZfdHJhbnNmZXJfY29t
cGxldGVkOiBNRk4gd2hvc2Ugb3duZXJzaGlwIHRyYW5zZmVycmVkIGJ5IEBkb21pZAorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgIChub24tdHJhbnNsYXRlZCBndWVzdHMgb25seSkuIFtY
RU5dCiAgICAgICovCiAgICAgdWludDMyX3QgZnJhbWU7CiB9OwpAQCAtMzIxLDcgKzMyMyw3IEBA
IHR5cGVkZWYgdWludDMyX3QgZ3JhbnRfaGFuZGxlX3Q7CiAvKgogICogR05UVEFCT1BfbWFwX2dy
YW50X3JlZjogTWFwIHRoZSBncmFudCBlbnRyeSAoPGRvbT4sPHJlZj4pIGZvciBhY2Nlc3MKICAq
IGJ5IGRldmljZXMgYW5kL29yIGhvc3QgQ1BVcy4gSWYgc3VjY2Vzc2Z1bCwgPGhhbmRsZT4gaXMg
YSB0cmFja2luZyBudW1iZXIKLSAqIHRoYXQgbXVzdCBiZSBwcmVzZW50ZWQgbGF0ZXIgdG8gZGVz
dHJveSB0aGUgbWFwcGluZyhzKS4gT24gZXJyb3IsIDxoYW5kbGU+CisgKiB0aGF0IG11c3QgYmUg
cHJlc2VudGVkIGxhdGVyIHRvIGRlc3Ryb3kgdGhlIG1hcHBpbmcocykuIE9uIGVycm9yLCA8c3Rh
dHVzPgogICogaXMgYSBuZWdhdGl2ZSBzdGF0dXMgY29kZS4KICAqIE5PVEVTOgogICogIDEuIElm
IEdOVE1BUF9kZXZpY2VfbWFwIGlzIHNwZWNpZmllZCB0aGVuIDxkZXZfYnVzX2FkZHI+IGlzIHRo
ZSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvaW8vbmV0aWYuaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9pby9uZXRpZi5oCmluZGV4IDg4N2E4YTcuLmU0N2VmYjggMTAwNjQ0
Ci0tLSBhL2luY2x1ZGUveGVuL3B1YmxpYy9pby9uZXRpZi5oCisrKyBiL2luY2x1ZGUveGVuL3B1
YmxpYy9pby9uZXRpZi5oCkBAIC0xMzYsMjAgKzEzNiw1MTIgQEAKICAqLwogCiAvKgotICogVGhp
cyBpcyB0aGUgJ3dpcmUnIGZvcm1hdCBmb3IgcGFja2V0czoKLSAqICBSZXF1ZXN0IDE6IG5ldGlm
X3R4X3JlcXVlc3RfdCAtLSBORVRUWEZfKiAoYW55IGZsYWdzKQotICogW1JlcXVlc3QgMjogbmV0
aWZfZXh0cmFfaW5mb190XSAob25seSBpZiByZXF1ZXN0IDEgaGFzIE5FVFRYRl9leHRyYV9pbmZv
KQotICogW1JlcXVlc3QgMzogbmV0aWZfZXh0cmFfaW5mb190XSAob25seSBpZiByZXF1ZXN0IDIg
aGFzIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQotICogIFJlcXVlc3QgNDogbmV0aWZfdHhfcmVxdWVz
dF90IC0tIE5FVFRYRl9tb3JlX2RhdGEKLSAqICBSZXF1ZXN0IDU6IG5ldGlmX3R4X3JlcXVlc3Rf
dCAtLSBORVRUWEZfbW9yZV9kYXRhCi0gKiAgLi4uCi0gKiAgUmVxdWVzdCBOOiBuZXRpZl90eF9y
ZXF1ZXN0X3QgLS0gMAorICogImZlYXR1cmUtbXVsdGljYXN0LWNvbnRyb2wiIGFuZCAiZmVhdHVy
ZS1keW5hbWljLW11bHRpY2FzdC1jb250cm9sIgorICogYWR2ZXJ0aXNlIHRoZSBjYXBhYmlsaXR5
IHRvIGZpbHRlciBldGhlcm5ldCBtdWx0aWNhc3QgcGFja2V0cyBpbiB0aGUKKyAqIGJhY2tlbmQu
IElmIHRoZSBmcm9udGVuZCB3aXNoZXMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmZWF0dXJl
IHRoZW4KKyAqIGl0IG1heSBzZXQgInJlcXVlc3QtbXVsdGljYXN0LWNvbnRyb2wiLiBJZiB0aGUg
YmFja2VuZCBvbmx5IGFkdmVydGlzZXMKKyAqICJmZWF0dXJlLW11bHRpY2FzdC1jb250cm9sIiB0
aGVuICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9sIiBtdXN0IGJlIHNldAorICogYmVmb3JlIHRo
ZSBmcm9udGVuZCBtb3ZlcyBpbnRvIHRoZSBjb25uZWN0ZWQgc3RhdGUuIFRoZSBiYWNrZW5kIHdp
bGwKKyAqIHNhbXBsZSB0aGUgdmFsdWUgb24gdGhpcyBzdGF0ZSB0cmFuc2l0aW9uIGFuZCBhbnkg
c3Vic2VxdWVudCBjaGFuZ2UgaW4KKyAqIHZhbHVlIHdpbGwgaGF2ZSBubyBlZmZlY3QuIEhvd2V2
ZXIsIGlmIHRoZSBiYWNrZW5kIGFsc28gYWR2ZXJ0aXNlcworICogImZlYXR1cmUtZHluYW1pYy1t
dWx0aWNhc3QtY29udHJvbCIgdGhlbiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIKKyAqIG1h
eSBiZSBzZXQgYnkgdGhlIGZyb250ZW5kIGF0IGFueSB0aW1lLiBJbiB0aGlzIGNhc2UsIHRoZSBi
YWNrZW5kIHdpbGwKKyAqIHdhdGNoIHRoZSB2YWx1ZSBhbmQgcmUtc2FtcGxlIG9uIHdhdGNoIGV2
ZW50cy4KKyAqCisgKiBJZiB0aGUgc2FtcGxlZCB2YWx1ZSBvZiAicmVxdWVzdC1tdWx0aWNhc3Qt
Y29udHJvbCIgaXMgc2V0IHRoZW4gdGhlCisgKiBiYWNrZW5kIHRyYW5zbWl0IHNpZGUgc2hvdWxk
IG5vIExPTkdfUFRSZXIgZmxvb2QgbXVsdGljYXN0IHBhY2tldHMgdG8gdGhlCisgKiBmcm9udGVu
ZCwgaXQgc2hvdWxkIGluc3RlYWQgZHJvcCBhbnkgbXVsdGljYXN0IHBhY2tldCB0aGF0IGRvZXMg
bm90CisgKiBtYXRjaCBpbiBhIGZpbHRlciBsaXN0LgorICogVGhlIGxpc3QgaXMgYW1lbmRlZCBi
eSB0aGUgZnJvbnRlbmQgYnkgc2VuZGluZyBkdW1teSB0cmFuc21pdCByZXF1ZXN0cworICogY29u
dGFpbmluZyBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF97QURELERFTH0gZXh0cmEtaW5mbyBm
cmFnbWVudHMgYXMKKyAqIHNwZWNpZmllZCBiZWxvdy4KKyAqIE5vdGUgdGhhdCB0aGUgZmlsdGVy
IGxpc3QgbWF5IGJlIGFtZW5kZWQgZXZlbiBpZiB0aGUgc2FtcGxlZCB2YWx1ZSBvZgorICogInJl
cXVlc3QtbXVsdGljYXN0LWNvbnRyb2wiIGlzIG5vdCBzZXQsIGhvd2V2ZXIgdGhlIGZpbHRlciBz
aG91bGQgb25seQorICogYmUgYXBwbGllZCBpZiBpdCBpcyBzZXQuCisgKi8KKworLyoKKyAqIENv
bnRyb2wgcmluZworICogPT09PT09PT09PT09CisgKgorICogU29tZSBmZWF0dXJlcywgc3VjaCBh
cyBoYXNoaW5nIChkZXRhaWxlZCBiZWxvdyksIHJlcXVpcmUgYQorICogc2lnbmlmaWNhbnQgYW1v
dW50IG9mIG91dC1vZi1iYW5kIGRhdGEgdG8gYmUgcGFzc2VkIGZyb20gZnJvbnRlbmQgdG8KKyAq
IGJhY2tlbmQuIFVzZSBvZiB4ZW5zdG9yZSBpcyBub3Qgc3VpdGFibGUgZm9yIGxhcmdlIHF1YW50
aXRpZXMgb2YgZGF0YQorICogYmVjYXVzZSBvZiBxdW90YSBsaW1pdGF0aW9ucyBhbmQgc28gYSBk
ZWRpY2F0ZWQgJ2NvbnRyb2wgcmluZycgaXMgdXNlZC4KKyAqIFRoZSBhYmlsaXR5IG9mIHRoZSBi
YWNrZW5kIHRvIHVzZSBhIGNvbnRyb2wgcmluZyBpcyBhZHZlcnRpc2VkIGJ5CisgKiBzZXR0aW5n
OgorICoKKyAqIC9sb2NhbC9kb21haW4vWC9iYWNrZW5kLzxkb21pZD4vPHZpZj4vZmVhdHVyZS1j
dHJsLXJpbmcgPSAiMSIKKyAqCisgKiBUaGUgZnJvbnRlbmQgcHJvdmlkZXMgYSBjb250cm9sIHJp
bmcgdG8gdGhlIGJhY2tlbmQgYnkgc2V0dGluZzoKKyAqCisgKiAvbG9jYWwvZG9tYWluLzxkb21p
ZD4vZGV2aWNlL3ZpZi88dmlmPi9jdHJsLXJpbmctcmVmID0gPGdyZWY+CisgKiAvbG9jYWwvZG9t
YWluLzxkb21pZD4vZGV2aWNlL3ZpZi88dmlmPi9ldmVudC1jaGFubmVsLWN0cmwgPSA8cG9ydD4K
KyAqCisgKiB3aGVyZSA8Z3JlZj4gaXMgdGhlIGdyYW50IHJlZmVyZW5jZSBvZiB0aGUgc2hhcmVk
IHBhZ2UgdXNlZCB0bworICogaW1wbGVtZW50IHRoZSBjb250cm9sIHJpbmcgYW5kIDxwb3J0PiBp
cyBhbiBldmVudCBjaGFubmVsIHRvIGJlIHVzZWQKKyAqIGFzIGEgbWFpbGJveCBpbnRlcnJ1cHQu
IFRoZXNlIGtleXMgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBmcm9udGVuZAorICogbW92ZXMgaW50
byB0aGUgY29ubmVjdGVkIHN0YXRlLgorICoKKyAqIFRoZSBjb250cm9sIHJpbmcgdXNlcyBhIGZp
eGVkIHJlcXVlc3QvcmVzcG9uc2UgbWVzc2FnZSBzaXplIGFuZCBpcworICogYmFsYW5jZWQgKGku
ZS4gb25lIHJlcXVlc3QgdG8gb25lIHJlc3BvbnNlKSwgc28gb3BlcmF0aW9uYWxseSBpdCBpcyBt
dWNoCisgKiB0aGUgc2FtZSBhcyBhIHRyYW5zbWl0IG9yIHJlY2VpdmUgcmluZy4KKyAqIE5vdGUg
dGhhdCB0aGVyZSBpcyBubyByZXF1aXJlbWVudCB0aGF0IHJlc3BvbnNlcyBhcmUgaXNzdWVkIGlu
IHRoZSBzYW1lCisgKiBvcmRlciBhcyByZXF1ZXN0cy4KKyAqLworCisvKgorICogSGFzaCB0eXBl
cworICogPT09PT09PT09PQorICoKKyAqIEZvciB0aGUgcHVycG9zZXMgb2YgdGhlIGRlZmluaXRp
b25zIGJlbG93LCAnUGFja2V0W10nIGlzIGFuIGFycmF5IG9mCisgKiBvY3RldHMgY29udGFpbmlu
ZyBhbiBJUCBwYWNrZXQgd2l0aG91dCBvcHRpb25zLCAnQXJyYXlbWC4uWV0nIG1lYW5zIGEKKyAq
IHN1Yi1hcnJheSBvZiAnQXJyYXknIGNvbnRhaW5pbmcgYnl0ZXMgWCB0aHJ1IFkgaW5jbHVzaXZl
LCBhbmQgJysnIGlzCisgKiB1c2VkIHRvIGluZGljYXRlIGNvbmNhdGVuYXRpb24gb2YgYXJyYXlz
LgorICovCisKKy8qCisgKiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24gNCBo
ZWFkZXIgYXMgZm9sbG93czoKKyAqCisgKiBCdWZmZXJbMC4uOF0gPSBQYWNrZXRbMTIuLjE1XSAo
c291cmNlIGFkZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgIFBhY2tldFsxNi4uMTldIChkZXN0
aW5hdGlvbiBhZGRyZXNzKQorICoKKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCA4KQorICovCisj
ZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNCAwCisjZGVmaW5lIFhFTl9ORVRJ
Rl9DVFJMX0hBU0hfVFlQRV9JUFY0IFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxfSEFTSF9U
WVBFX0lQVjQpCisKKy8qCisgKiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24g
NCBoZWFkZXIgYW5kIFRDUCBoZWFkZXIgYXMKKyAqIGZvbGxvd3M6CisgKgorICogQnVmZmVyWzAu
LjEyXSA9IFBhY2tldFsxMi4uMTVdIChzb3VyY2UgYWRkcmVzcykgKworICogICAgICAgICAgICAg
ICAgIFBhY2tldFsxNi4uMTldIChkZXN0aW5hdGlvbiBhZGRyZXNzKSArCisgKiAgICAgICAgICAg
ICAgICAgUGFja2V0WzIwLi4yMV0gKHNvdXJjZSBwb3J0KSArCisgKiAgICAgICAgICAgICAgICAg
UGFja2V0WzIyLi4yM10gKGRlc3RpbmF0aW9uIHBvcnQpCisgKgorICogUmVzdWx0ID0gSGFzaChC
dWZmZXIsIDEyKQogICovCisjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9U
Q1AgMQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1AgXAorICAgICgx
IDw8IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1ApCisKKy8qCisgKiBBIGhhc2gg
Y2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24gNiBoZWFkZXIgYXMgZm9sbG93czoKKyAqCisg
KiBCdWZmZXJbMC4uMzJdID0gUGFja2V0WzguLjIzXSAgKHNvdXJjZSBhZGRyZXNzICkgKworICog
ICAgICAgICAgICAgICAgIFBhY2tldFsyNC4uMzldIChkZXN0aW5hdGlvbiBhZGRyZXNzKQorICoK
KyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCAzMikKKyAqLworI2RlZmluZSBfWEVOX05FVElGX0NU
UkxfSEFTSF9UWVBFX0lQVjYgMgorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBW
NiBcCisgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2KQorCisvKgorICog
QSBoYXNoIGNhbGN1bGF0ZWQgb3ZlciBhbiBJUCB2ZXJzaW9uIDYgaGVhZGVyIGFuZCBUQ1AgaGVh
ZGVyIGFzCisgKiBmb2xsb3dzOgorICoKKyAqIEJ1ZmZlclswLi4zNl0gPSBQYWNrZXRbOC4uMjNd
ICAoc291cmNlIGFkZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbMjQuLjM5XSAo
ZGVzdGluYXRpb24gYWRkcmVzcykgKworICogICAgICAgICAgICAgICAgIFBhY2tldFs0MC4uNDFd
IChzb3VyY2UgcG9ydCkgKworICogICAgICAgICAgICAgICAgIFBhY2tldFs0Mi4uNDNdIChkZXN0
aW5hdGlvbiBwb3J0KQorICoKKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCAzNikKKyAqLworI2Rl
ZmluZSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjZfVENQIDMKKyNkZWZpbmUgWEVOX05F
VElGX0NUUkxfSEFTSF9UWVBFX0lQVjZfVENQIFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxf
SEFTSF9UWVBFX0lQVjZfVENQKQorCisvKgorICogSGFzaCBhbGdvcml0aG1zCisgKiA9PT09PT09
PT09PT09PT0KKyAqLworCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhNX05P
TkUgMAorCisvKgorICogVG9lcGxpdHogaGFzaDoKKyAqLworCisjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaIDEKKworLyoKKyAqIFRoaXMgYWxnb3JpdGhtIHVz
ZXMgYSAna2V5JyBhcyB3ZWxsIGFzIHRoZSBkYXRhIGJ1ZmZlciBpdHNlbGYuCisgKiAoQnVmZmVy
W10gYW5kIEtleVtdIGFyZSB0cmVhdGVkIGFzIHNoaWZ0LXJlZ2lzdGVycyB3aGVyZSB0aGUgTVNC
IG9mCisgKiBCdWZmZXIvS2V5WzBdIGlzIGNvbnNpZGVyZWQgJ2xlZnQtbW9zdCcgYW5kIHRoZSBM
U0Igb2YgQnVmZmVyL0tleVtOLTFdCisgKiBpcyB0aGUgJ3JpZ2h0LW1vc3QnKS4KKyAqCisgKiBW
YWx1ZSA9IDAKKyAqIEZvciBudW1iZXIgb2YgYml0cyBpbiBCdWZmZXJbXQorICogICAgSWYgKGxl
ZnQtbW9zdCBiaXQgb2YgQnVmZmVyW10gaXMgMSkKKyAqICAgICAgICBWYWx1ZSBePSBsZWZ0LW1v
c3QgMzIgYml0cyBvZiBLZXlbXQorICogICAgS2V5W10gPDwgMQorICogICAgQnVmZmVyW10gPDwg
MQorICoKKyAqIFRoZSBjb2RlIGJlbG93IGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZSB3aGVy
ZSBhbiBvcGVyYXRpbmcgc3lzdGVtCisgKiBkb2VzIG5vdCBhbHJlYWR5IHByb3ZpZGUgYW4gaW1w
bGVtZW50YXRpb24uCisgKi8KKyNpZmRlZiBYRU5fTkVUSUZfREVGSU5FX1RPRVBMSVRaCitzdGF0
aWMgdWludDMyX3QgeGVuX25ldGlmX3RvZXBsaXR6X2hhc2goY29uc3QgdWludDhfdCAqa2V5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXls
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf
dCAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBidWZsZW4pCit7CisgICAgdW5zaWduZWQgaW50IGtleWksIGJ1Zmk7CisgICAgdWludDY0
X3QgcHJlZml4ID0gMDsKKyAgICB1aW50NjRfdCBoYXNoID0gMDsKKworICAgIC8qIFByZS1sb2Fk
IHByZWZpeCB3aXRoIHRoZSBmaXJzdCA4IGJ5dGVzIG9mIHRoZSBrZXkgKi8KKyAgICBmb3IgKGtl
eWkgPSAwOyBrZXlpIDwgODsga2V5aSsrKSB7CisgICAgICAgIHByZWZpeCA8PD0gODsKKyAgICAg
ICAgcHJlZml4IHw9IChrZXlpIDwga2V5bGVuKSA/IGtleVtrZXlpXSA6IDA7CisgICAgfQorCisg
ICAgZm9yIChidWZpID0gMDsgYnVmaSA8IGJ1ZmxlbjsgYnVmaSsrKSB7CisgICAgICAgIHVpbnQ4
X3QgYnl0ZSA9IGJ1ZltidWZpXTsKKyAgICAgICAgdW5zaWduZWQgaW50IGJpdDsKKworICAgICAg
ICBmb3IgKGJpdCA9IDA7IGJpdCA8IDg7IGJpdCsrKSB7CisgICAgICAgICAgICBpZiAoYnl0ZSAm
IDB4ODApCisgICAgICAgICAgICAgICAgaGFzaCBePSBwcmVmaXg7CisgICAgICAgICAgICBwcmVm
aXggPDw9IDE7CisgICAgICAgICAgICBieXRlIDw8PTE7CisgICAgICAgIH0KKworICAgICAgICAv
KgorICAgICAgICAgKiAncHJlZml4JyBoYXMgbm93IGJlZW4gbGVmdC1zaGlmdGVkIGJ5IDgsIHNv
CisgICAgICAgICAqIE9SIGluIHRoZSBuZXh0IGJ5dGUuCisgICAgICAgICAqLworICAgICAgICBw
cmVmaXggfD0gKGtleWkgPCBrZXlsZW4pID8ga2V5W2tleWldIDogMDsKKyAgICAgICAga2V5aSsr
OworICAgIH0KKworICAgIC8qIFRoZSB2YWxpZCBwYXJ0IG9mIHRoZSBoYXNoIGlzIGluIHRoZSB1
cHBlciAzMiBiaXRzLiAqLworICAgIHJldHVybiBoYXNoID4+IDMyOworfQorI2VuZGlmIC8qIFhF
Tl9ORVRJRl9ERUZJTkVfVE9FUExJVFogKi8KKworLyoKKyAqIENvbnRyb2wgcmVxdWVzdHMgKHN0
cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0KQorICogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogQWxsIHJlcXVlc3RzIGhhdmUgdGhlIGZv
bGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAg
NSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSsKKyAqIHwgICAgaWQgICAgIHwgICB0eXBlICAgIHwgICAgICAgICBk
YXRhWzBdICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKKyAqIHwgICAgICAgICBkYXRhWzFdICAgICAgIHwgICAgICAgICBkYXRhWzJd
ICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKKyAqCisgKiBpZDogdGhlIHJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGluIHJlc3Bv
bnNlLgorICogdHlwZTogdGhlIHR5cGUgb2YgcmVxdWVzdCAoc2VlIGJlbG93KQorICogZGF0YVtd
OiBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QgKGRldGVybWluZWQgYnkgdHlw
ZSkKKyAqLworCitzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVxdWVzdCB7CisgICAgdWludDE2X3Qg
aWQ7CisgICAgdWludDE2X3QgdHlwZTsKKworI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0lO
VkFMSUQgICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hB
U0hfRkxBR1MgICAgICAgIDEKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9G
TEFHUyAgICAgICAgMgorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWSAg
ICAgICAgICAzCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfTUFQUElOR19T
SVpFIDQKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUg
NQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkcgICAgICA2Cisj
ZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNICAgIDcKKworICAg
IHVpbnQzMl90IGRhdGFbM107Cit9OworCisvKgorICogQ29udHJvbCByZXNwb25zZXMgKHN0cnVj
dCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSkKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogQWxsIHJlc3BvbnNlcyBoYXZlIHRoZSBm
b2xsb3dpbmcgZm9ybWF0OgorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAg
IDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8ICAgIGlkICAgICB8ICAgdHlwZSAgICB8ICAgICAgICAg
c3RhdHVzICAgICAgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rCisgKiB8ICAgICAgICAgZGF0YSAgICAgICAgICB8CisgKiArLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rCisgKgorICogaWQ6IHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgaWRl
bnRpZmllcgorICogdHlwZTogdGhlIHR5cGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdAor
ICogc3RhdHVzOiB0aGUgc3RhdHVzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZworICogZGF0YTogYW55
IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNwb25zZSAoZGV0ZXJtaW5lZCBieSB0eXBlIGFu
ZAorICogICAgICAgc3RhdHVzKQorICovCisKK3N0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25z
ZSB7CisgICAgdWludDE2X3QgaWQ7CisgICAgdWludDE2X3QgdHlwZTsKKyAgICB1aW50MzJfdCBz
dGF0dXM7CisKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAg
IDAKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAgIDEKKyNk
ZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIDIKKyNkZWZpbmUg
WEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9PVkVSRkxPVyAgIDMKKworICAgIHVpbnQzMl90
IGRhdGE7Cit9OworCisvKgorICogQ29udHJvbCBtZXNzYWdlcworICogPT09PT09PT09PT09PT09
PQorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNCisgKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBi
eSB0aGUgZnJvbnRlbmQgdG8gc2V0IHRoZSBkZXNpcmVkIGhhc2ggYWxnb3JpdGhtLgorICoKKyAq
IFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNI
X0FMR09SSVRITQorICogIGRhdGFbMF0gPSBhIFhFTl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhN
XyogdmFsdWUKKyAqICBkYXRhWzFdID0gMAorICogIGRhdGFbMl0gPSAwCisgKgorICogUmVzcG9u
c2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVE
ICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RS
TF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgYWxnb3JpdGhtIGlzIG5vdAorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRl
ZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAt
IE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKgorICogTk9URTogU2V0dGluZyBkYXRhWzBdIHRvIFhF
Tl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhNX05PTkUgZGlzYWJsZXMKKyAqICAgICAgIGhhc2hp
bmcgYW5kIHRoZSBiYWNrZW5kIGlzIGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0
cworICogICAgICAgdG8gcXVldWVzICh3aGljaCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIpLgor
ICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfRkxBR1MKKyAqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250
ZW5kIHRvIHF1ZXJ5IHRoZSB0eXBlcyBvZiBoYXNoIHN1cHBvcnRlZCBieQorICogdGhlIGJhY2tl
bmQuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZ
UEVfR0VUX0hBU0hfRkxBR1MKKyAqICBkYXRhWzBdID0gMAorICogIGRhdGFbMV0gPSAwCisgKiAg
ZGF0YVsyXSA9IDAKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElG
X0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgLSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZAorICog
ICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9u
IHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBzdXBwb3J0ZWQgaGFzaCB0eXBlcyAoaWYgb3BlcmF0
aW9uIHdhcyBzdWNjZXNzZnVsKQorICoKKyAqIE5PVEU6IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0g
bXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVyYXRpb24gY2FuCisgKiAgICAgICBzdWNj
ZWVkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MKKyAqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNlbnQgYnkgdGhl
IGZyb250ZW5kIHRvIHNldCB0aGUgdHlwZXMgb2YgaGFzaCB0aGF0IHRoZSBiYWNrZW5kCisgKiBz
aG91bGQgY2FsY3VsYXRlLiAoU2VlIGFib3ZlIGZvciBoYXNoIHR5cGUgZGVmaW5pdGlvbnMpLgor
ICogTm90ZSB0aGF0IHRoZSAnbWF4aW1hbCcgdHlwZSBvZiBoYXNoIHNob3VsZCBhbHdheXMgYmUg
Y2hvc2VuLiBGb3IKKyAqIGV4YW1wbGUsIGlmIHRoZSBmcm9udGVuZCBzZXRzIGJvdGggSVBWNCBh
bmQgSVBWNF9UQ1AgaGFzaCB0eXBlcyB0aGVuCisgKiB0aGUgbGF0dGVyIGhhc2ggdHlwZSBzaG91
bGQgYmUgY2FsY3VsYXRlZCBmb3IgYW55IFRDUCBwYWNrZXQgYW5kIHRoZQorICogZm9ybWVyIG9u
bHkgY2FsY3VsYXRlZCBmb3Igbm9uLVRDUCBwYWNrZXRzLgorICoKKyAqIFJlcXVlc3Q6CisgKgor
ICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0ZMQUdTCisgKiAgZGF0
YVswXSA9IGJpdHdpc2UgT1Igb2YgWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFXyogdmFsdWVzCisg
KiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoKKyAq
ICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBPcGVy
YXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lO
VkFMSURfUEFSQU1FVEVSIC0gT25lIG9yIG1vcmUgZmxhZworICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlzIGludmFsaWQgb3IKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN1
cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAg
ICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAgID0gMAorICoKKyAqIE5PVEU6
IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0gbXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVy
YXRpb24gY2FuCisgKiAgICAgICBzdWNjZWVkLgorICogICAgICAgQWxzbywgc2V0dGluZyBkYXRh
WzBdIHRvIHplcm8gZGlzYWJsZXMgaGFzaGluZyBhbmQgdGhlIGJhY2tlbmQKKyAqICAgICAgIGlz
IGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0cyB0byBxdWV1ZXMuCisgKgorICog
WEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBzZXQg
dGhlIGtleSBvZiB0aGUgaGFzaCBpZiB0aGUgYWxnb3JpdGhtCisgKiByZXF1aXJlcyBpdC4gKFNl
ZSBoYXNoIGFsZ29yaXRobXMgYWJvdmUpLgorICoKKyAqIFJlcXVlc3Q6CisgKgorICogIHR5cGUg
ICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWQorICogIGRhdGFbMF0gPSBncmFu
dCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBrZXkgKGFzc3VtZWQgdG8KKyAqICAg
ICAgICAgICAgc3RhcnQgYXQgYmVnaW5uaW5nIG9mIGdyYW50KQorICogIGRhdGFbMV0gPSBzaXpl
IG9mIGtleSBpbiBvY3RldHMKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoK
KyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBP
cGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVT
X0lOVkFMSURfUEFSQU1FVEVSIC0gS2V5IHNpemUgaXMgaW52YWxpZAorICogICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAtIEtleSBzaXplIGlzIGxhcmdl
cgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoYW4gdGhlIGJhY2tlbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwb3J0cworICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NU
QVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAg
ID0gMAorICoKKyAqIE5PVEU6IEFueSBrZXkgb2N0ZXRzIG5vdCBzcGVjaWZpZWQgYXJlIGFzc3Vt
ZWQgdG8gYmUgemVybyAodGhlIGtleQorICogICAgICAgaXMgYXNzdW1lZCB0byBiZSBlbXB0eSBi
eSBkZWZhdWx0KSBhbmQgc3BlY2lmeWluZyBhIG5ldyBrZXkKKyAqICAgICAgIGludmFsaWRhdGVz
IGFueSBwcmV2aW91cyBrZXksIGhlbmNlIHNwZWNpZnlpbmcgYSBrZXkgc2l6ZSBvZgorICogICAg
ICAgemVybyB3aWxsIGNsZWFyIHRoZSBrZXkgKHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgY2FsY3Vs
YXRlZCBoYXNoCisgKiAgICAgICB3aWxsIGFsd2F5cyBiZSB6ZXJvKS4KKyAqICAgICAgIFRoZSBt
YXhpbXVtIHNpemUgb2Yga2V5IGlzIGFsZ29yaXRobSBhbmQgYmFja2VuZCBzcGVjaWZpYywgYnV0
CisgKiAgICAgICBpcyBhbHNvIGxpbWl0ZWQgYnkgdGhlIHNpbmdsZSBncmFudCByZWZlcmVuY2Uu
CisgKiAgICAgICBUaGUgZ3JhbnQgcmVmZXJlbmNlIG1heSBiZSByZWFkLW9ubHkgYW5kIG11c3Qg
cmVtYWluIHZhbGlkIHVudGlsCisgKiAgICAgICB0aGUgcmVzcG9uc2UgaGFzIGJlZW4gcHJvY2Vz
c2VkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfTUFQUElOR19TSVpFCisg
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMg
aXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gcXVlcnkgdGhlIG1heGltdW0gc2l6ZSBvZiBtYXBw
aW5nCisgKiB0YWJsZSBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuIFRoZSBzaXplIGlzIHNwZWNp
ZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqCisgKiBSZXF1ZXN0OgorICoK
KyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9NQVBQSU5HX1NJWkUK
KyAqICBkYXRhWzBdID0gMAorICogIGRhdGFbMV0gPSAwCisgKiAgZGF0YVsyXSA9IDAKKyAqCisg
KiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9T
VVBQT1JURUQgLSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJ
Rl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqICBk
YXRhICAgPSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGFsbG93ZWQgaW4gdGhlIG1hcHBpbmcg
dGFibGUKKyAqICAgICAgICAgICAoaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsKSBvciB6ZXJv
IGlmIGEgbWFwcGluZyB0YWJsZSBpcworICogICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgKGkuZS4g
aGFzaCBtYXBwaW5nIGlzIGRvbmUgb25seSBieSBtb2R1bGFyCisgKiAgICAgICAgICAgYXJpdGht
ZXRpYykuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUK
KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlz
IHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIG1hcHBp
bmcKKyAqIHRhYmxlIHRvIGJlIHVzZWQgYnkgdGhlIGJhY2tlbmQuIFRoZSBzaXplIGlzIHNwZWNp
ZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqIEFueSBwcmV2aW91cyB0YWJs
ZSBpcyBpbnZhbGlkYXRlZCBieSB0aGlzIG1lc3NhZ2UgYW5kIGFueSBuZXcgdGFibGUKKyAqIGlz
IGFzc3VtZWQgdG8gYmUgemVybyBmaWxsZWQuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlw
ZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFCisgKiAgZGF0
YVswXSA9IG51bWJlciBvZiBlbnRyaWVzIGluIG1hcHBpbmcgdGFibGUKKyAqICBkYXRhWzFdID0g
MAorICogIGRhdGFbMl0gPSAwCisgKgorICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBw
b3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVU
RVIgLSBUYWJsZSBzaXplIGlzIGludmFsaWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9T
VEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEg
ICA9IDAKKyAqCisgKiBOT1RFOiBTZXR0aW5nIGRhdGFbMF0gdG8gMCBtZWFucyB0aGF0IGhhc2gg
bWFwcGluZyBzaG91bGQgYmUgZG9uZQorICogICAgICAgdXNpbmcgbW9kdWxhciBhcml0aG1ldGlj
LgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORworICogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRo
ZSBmcm9udGVuZCB0byBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHRhYmxlIG1hcHBpbmcKKyAqIGhh
c2ggdmFsdWUgdG8gcXVldWUgbnVtYmVyLiBUaGUgYmFja2VuZCBzaG91bGQgY2FsY3VsYXRlIHRo
ZSBoYXNoIGZyb20KKyAqIHRoZSBwYWNrZXQgaGVhZGVyLCB1c2UgaXQgYXMgYW4gaW5kZXggaW50
byB0aGUgdGFibGUgKG1vZHVsbyB0aGUgc2l6ZQorICogb2YgdGhlIHRhYmxlKSBhbmQgdGhlbiBz
dGVlciB0aGUgcGFja2V0IHRvIHRoZSBxdWV1ZSBudW1iZXIgZm91bmQgYXQKKyAqIHRoYXQgaW5k
ZXguCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZ
UEVfU0VUX0hBU0hfTUFQUElORworICogIGRhdGFbMF0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFn
ZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIChzdWItKXRhYmxlCisgKiAgICAgICAgICAgIChhc3N1
bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBncmFudCkKKyAqICBkYXRhWzFdID0gc2l6ZSBv
ZiAoc3ViLSl0YWJsZSBpbiBlbnRyaWVzCisgKiAgZGF0YVsyXSA9IG9mZnNldCwgaW4gZW50cmll
cywgb2Ygc3ViLXRhYmxlIHdpdGhpbiBvdmVyYWxsIHRhYmxlCisgKgorICogUmVzcG9uc2U6Cisg
KgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAt
IE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFU
VVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUYWJsZSBzaXplIG9yIGNvbnRlbnQKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBpbnZhbGlkCisg
KiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9PVkVSRkxPVyAgIC0gVGFi
bGUgc2l6ZSBpcyBsYXJnZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGFuIHRoZSBiYWNrZW5kCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMKKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vz
c2Z1bAorICogIGRhdGEgICA9IDAKKyAqCisgKiBOT1RFOiBUaGUgb3ZlcmFsbCB0YWJsZSBoYXMg
dGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgICAgICAgMCAgICAgMSAgICAgMiAgICAg
MyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICAgICAgICstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqICAgICAgIHwgICAgICAgbWFw
cGluZ1swXSAgICAgIHwgICAgICAgbWFwcGluZ1sxXSAgICAgIHwKKyAqICAgICAgICstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqICAgICAgIHwgICAg
ICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgIHwg
ICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAg
ICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAq
ICAgICAgIHwgICAgICBtYXBwaW5nW04tMl0gICAgIHwgICAgICBtYXBwaW5nW04tMV0gICAgIHwK
KyAqICAgICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSsKKyAqCisgKiAgICAgICB3aGVyZSBOIGlzIHNwZWNpZmllZCBieSBhIFhFTl9ORVRJRl9DVFJM
X1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFCisgKiAgICAgICBtZXNzYWdlIGFuZCBlYWNoICBt
YXBwaW5nIG11c3Qgc3BlY2lmaWVzIGEgcXVldWUgYmV0d2VlbiAwIGFuZAorICogICAgICAgIm11
bHRpLXF1ZXVlLW51bS1xdWV1ZXMiIChzZWUgYWJvdmUpLgorICogICAgICAgVGhlIGJhY2tlbmQg
bWF5IHN1cHBvcnQgYSBtYXBwaW5nIHRhYmxlIGxhcmdlciB0aGFuIGNhbiBiZQorICogICAgICAg
bWFwcGVkIGJ5IGEgc2luZ2xlIGdyYW50IHJlZmVyZW5jZS4gVGh1cyBzdWItdGFibGVzIHdpdGhp
biBhCisgKiAgICAgICBsYXJnZXIgdGFibGUgY2FuIGJlIGluZGl2aWR1YWxseSBzZXQgYnkgc2Vu
ZGluZyBtdWx0aXBsZSBtZXNzYWdlcworICogICAgICAgd2l0aCBkaWZmZXJpbmcgb2Zmc2V0IHZh
bHVlcy4gU3BlY2lmeWluZyBhIG5ldyBzdWItdGFibGUgZG9lcyBub3QKKyAqICAgICAgIGludmFs
aWRhdGUgYW55IHRhYmxlIGRhdGEgb3V0c2lkZSB0aGF0IHJhbmdlLgorICogICAgICAgVGhlIGdy
YW50IHJlZmVyZW5jZSBtYXkgYmUgcmVhZC1vbmx5IGFuZCBtdXN0IHJlbWFpbiB2YWxpZCB1bnRp
bAorICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4KKyAqLworCitERUZJ
TkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwKKyAgICAgICAgICAgICAgICAgIHN0cnVjdCB4
ZW5fbmV0aWZfY3RybF9yZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9uZXRp
Zl9jdHJsX3Jlc3BvbnNlKTsKIAogLyoKICAqIEd1ZXN0IHRyYW5zbWl0CiAgKiA9PT09PT09PT09
PT09PQogICoKKyAqIFRoaXMgaXMgdGhlICd3aXJlJyBmb3JtYXQgZm9yIHRyYW5zbWl0IChmcm9u
dGVuZCAtPiBiYWNrZW5kKSBwYWNrZXRzOgorICoKKyAqICBGcmFnbWVudCAxOiBuZXRpZl90eF9y
ZXF1ZXN0X3QgIC0gZmxhZ3MgPSBORVRUWEZfKgorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplID0gdG90YWwgcGFja2V0IHNpemUKKyAqIFtFeHRyYSAxOiBuZXRpZl9l
eHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21lbnQgMSBmbGFncyBpbmNsdWRlCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRUWEZfZXh0cmFfaW5mbykKKyAq
ICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZXh0
cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4uLgorICogIEZyYWdtZW50IE46IG5ldGlm
X3R4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVudCBOLTEgZmxhZ3MgaW5jbHVkZQorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUVFhGX21vcmVfZGF0YSAtIGZs
YWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICogTk9URToKKyAqCisgKiBUaGlzIGZvcm1h
dCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgZm9yIHJlY2VpdmUKKyAqIChi
YWNrZW5kIC0+IGZyb250ZW5kKSBwYWNrZXRzLiBTcGVjaWZpY2FsbHksIGluIGEgbXVsdGktZnJh
Z21lbnQKKyAqIHBhY2tldCB0aGUgYWN0dWFsIHNpemUgb2YgZnJhZ21lbnQgMSBjYW4gb25seSBi
ZSBkZXRlcm1pbmVkIGJ5CisgKiBzdWJ0cmFjdGluZyB0aGUgc2l6ZXMgb2YgZnJhZ21lbnRzIDIu
Lk4gZnJvbSB0aGUgdG90YWwgcGFja2V0IHNpemUuCisgKgogICogUmluZyBzbG90IHNpemUgaXMg
MTIgb2N0ZXRzLCBob3dldmVyIG5vdCBhbGwgcmVxdWVzdC9yZXNwb25zZQogICogc3RydWN0cyB1
c2UgdGhlIGZ1bGwgc2l6ZS4KICAqCkBAIC0xODUsNiArNjc3LDI5IEBACiAgKiBHdWVzdCByZWNl
aXZlCiAgKiA9PT09PT09PT09PT09CiAgKgorICogVGhpcyBpcyB0aGUgJ3dpcmUnIGZvcm1hdCBm
b3IgcmVjZWl2ZSAoYmFja2VuZCAtPiBmcm9udGVuZCkgcGFja2V0czoKKyAqCisgKiAgRnJhZ21l
bnQgMTogbmV0aWZfcnhfcmVxdWVzdF90ICAtIGZsYWdzID0gTkVUUlhGXyoKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZyYWdtZW50IHNpemUKKyAqIFtFeHRy
YSAxOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21lbnQgMSBmbGFncyBp
bmNsdWRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRSWEZfZXh0
cmFfaW5mbykKKyAqICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0g
KG9ubHkgaWYgZXh0cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4uLgorICogIEZyYWdt
ZW50IE46IG5ldGlmX3J4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVudCBOLTEgZmxhZ3Mg
aW5jbHVkZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUUlhGX21v
cmVfZGF0YSAtIGZsYWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICogTk9URToKKyAqCisg
KiBUaGlzIGZvcm1hdCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgZm9yIHRy
YW5zbWl0CisgKiAoZnJvbnRlbmQgLT4gYmFja2VuZCkgcGFja2V0cy4gU3BlY2lmaWNhbGx5LCBp
biBhIG11bHRpLWZyYWdtZW50CisgKiBwYWNrZXQgdGhlIHNpemUgb2YgdGhlIHBhY2tldCBjYW4g
b25seSBiZSBkZXRlcm1pbmVkIGJ5IHN1bW1pbmcgdGhlCisgKiBzaXplcyBvZiBmcmFnbWVudHMg
MS4uTi4KKyAqCiAgKiBSaW5nIHNsb3Qgc2l6ZSBpcyA4IG9jdGV0cy4KICAqCiAgKiByeCByZXF1
ZXN0IChuZXRpZl9yeF9yZXF1ZXN0X3QpCkBAIC0yMTEsMTUgKzcyNiwyOSBAQAogICogZmxhZ3M6
IE5FVFJYRl8qCiAgKiBzdGF0dXM6IC12ZTogTkVUSUZfUlNQXyo7ICt2ZTogUngnZWQgcGt0IHNp
emUuCiAgKgorICogTk9URTogSGlzdG9yaWNhbGx5LCB0byBzdXBwb3J0IEdTTyBvbiB0aGUgZnJv
bnRlbmQgcmVjZWl2ZSBzaWRlLCBMaW51eAorICogICAgICAgbmV0ZnJvbnQgZG9lcyBub3QgbWFr
ZSB1c2Ugb2YgdGhlIHJ4IHJlc3BvbnNlIGlkIChiZWNhdXNlLCBhcworICogICAgICAgZGVzY3Jp
YmVkIGJlbG93LCBleHRyYSBpbmZvIHN0cnVjdHVyZXMgb3ZlcmxheSB0aGUgaWQgZmllbGQpLgor
ICogICAgICAgSW5zdGVhZCBpdCBhc3N1bWVzIHRoYXQgcmVzcG9uc2VzIGFsd2F5cyBhcHBlYXIg
aW4gdGhlIHNhbWUgcmluZworICogICAgICAgc2xvdCBhcyB0aGVpciBjb3JyZXNwb25kaW5nIHJl
cXVlc3QuIFRodXMsIHRvIG1haW50YWluCisgKiAgICAgICBjb21wYXRpYmlsaXR5LCBiYWNrZW5k
cyBtdXN0IG1ha2Ugc3VyZSB0aGlzIGlzIHRoZSBjYXNlLgorICoKICAqIEV4dHJhIEluZm8KICAq
ID09PT09PT09PT0KICAqCi0gKiBDYW4gYmUgcHJlc2VudCBpZiBpbml0aWFsIHJlcXVlc3QgaGFz
IE5FVHtULFJ9WEZfZXh0cmFfaW5mbywgb3IKLSAqIHByZXZpb3VzIGV4dHJhIHJlcXVlc3QgaGFz
IFhFTl9ORVRJRl9FWFRSQV9NT1JFLgorICogQ2FuIGJlIHByZXNlbnQgaWYgaW5pdGlhbCByZXF1
ZXN0IG9yIHJlc3BvbnNlIGhhcyBORVR7VCxSfVhGX2V4dHJhX2luZm8sCisgKiBvciBwcmV2aW91
cyBleHRyYSByZXF1ZXN0IGhhcyBYRU5fTkVUSUZfRVhUUkFfTU9SRS4KICAqCiAgKiBUaGUgc3Ry
dWN0IHRoZXJlZm9yZSBuZWVkcyB0byBmaXQgaW50byBlaXRoZXIgYSB0eCBvciByeCBzbG90IGFu
ZAogICogaXMgdGhlcmVmb3JlIGxpbWl0ZWQgdG8gOCBvY3RldHMuCiAgKgorICogTk9URTogQmVj
YXVzZSBleHRyYSBpbmZvIGRhdGEgb3ZlcmxheXMgdGhlIHVzdWFsIHJlcXVlc3QvcmVzcG9uc2UK
KyAqICAgICAgIHN0cnVjdHVyZXMsIHRoZXJlIGlzIG5vIGlkIGluZm9ybWF0aW9uIGluIHRoZSBv
cHBvc2l0ZSBkaXJlY3Rpb24uCisgKiAgICAgICBTbywgaWYgYW4gZXh0cmEgaW5mbyBvdmVybGF5
cyBhbiByeCByZXNwb25zZSB0aGUgZnJvbnRlbmQgY2FuCisgKiAgICAgICBhc3N1bWUgdGhhdCBp
dCBpcyBpbiB0aGUgc2FtZSByaW5nIHNsb3QgYXMgdGhlIHJlcXVlc3QgdGhhdCB3YXMKKyAqICAg
ICAgIGNvbnN1bWVkIHRvIG1ha2UgdGhlIHNsb3QgYXZhaWxhYmxlLCBhbmQgdGhlIGJhY2tlbmQg
bXVzdCBlbnN1cmUKKyAqICAgICAgIHRoaXMgYXNzdW1wdGlvbiBpcyB0cnVlLgorICoKICAqIGV4
dHJhIGluZm8gKG5ldGlmX2V4dHJhX2luZm9fdCkKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICAqCkBAIC0yMjcsNyArNzU2LDcgQEAKICAqCiAgKiAgICAwICAgICAxICAgICAy
ICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAogICogKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwotICogfHR5cGUgfGZsYWdzfCB0eXBl
IHNwZWNmaWMgZGF0YSAgICAgICAgICAgICAgICAgfAorICogfHR5cGUgfGZsYWdzfCB0eXBlIHNw
ZWNpZmljIGRhdGEgICAgICAgICAgICAgICAgfAogICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICogfCBwYWRkaW5nIGZvciB0eCAgICAgICAgfAog
ICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwpAQCAtMjM1LDcgKzc2NCw4IEBACiAgKiB0eXBl
OiBYRU5fTkVUSUZfRVhUUkFfVFlQRV8qCiAgKiBmbGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdf
KgogICogcGFkZGluZyBmb3IgdHg6IHByZXNlbnQgb25seSBpbiB0aGUgdHggY2FzZSBkdWUgdG8g
OCBvY3RldCBsaW1pdAotICogICAgIGZyb20gcnggY2FzZS4gTm90IHNob3duIGluIHR5cGUgc3Bl
Y2lmaWMgZW50cmllcyBiZWxvdy4KKyAqICAgICAgICAgICAgICAgICBmcm9tIHJ4IGNhc2UuIE5v
dCBzaG93biBpbiB0eXBlIHNwZWNpZmljIGVudHJpZXMKKyAqICAgICAgICAgICAgICAgICBiZWxv
dy4KICAqCiAgKiBYRU5fTkVUSUZfRVhUUkFfVFlQRV9HU086CiAgKgpAQCAtMjQ2LDkgKzc3Niwx
NCBAQAogICoKICAqIHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPCiAgKiBm
bGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdfKgotICogc2l6ZTogTWF4aW11bSBwYXlsb2FkIHNp
emUgb2YgZWFjaCBzZWdtZW50LgotICogdHlwZTogWEVOX05FVElGX0dTT19UWVBFXyoKLSAqIGZl
YXR1cmVzOiBFTl9ORVRJRl9HU09fRkVBVF8qCisgKiBzaXplOiBNYXhpbXVtIHBheWxvYWQgc2l6
ZSBvZiBlYWNoIHNlZ21lbnQuIEZvciBleGFtcGxlLAorICogICAgICAgZm9yIFRDUCB0aGlzIGlz
IGp1c3QgdGhlIHBhdGggTVNTLgorICogdHlwZTogWEVOX05FVElGX0dTT19UWVBFXyo6IFRoaXMg
ZGV0ZXJtaW5lcyB0aGUgcHJvdG9jb2wgb2YKKyAqICAgICAgIHRoZSBwYWNrZXQgYW5kIGFueSBl
eHRyYSBmZWF0dXJlcyByZXF1aXJlZCB0byBzZWdtZW50IHRoZQorICogICAgICAgcGFja2V0IHBy
b3Blcmx5LgorICogZmVhdHVyZXM6IEVOX05FVElGX0dTT19GRUFUXyo6IFRoaXMgc3BlY2lmaWVz
IGFueSBleHRyYSBHU08KKyAqICAgICAgICAgICBmZWF0dXJlcyByZXF1aXJlZCB0byBwcm9jZXNz
IHRoaXMgcGFja2V0LCBzdWNoIGFzIEVDTgorICogICAgICAgICAgIHN1cHBvcnQgZm9yIFRDUHY0
LgogICoKICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfToKICAqCkBAIC0y
NjAsNiArNzk1LDI1IEBACiAgKiB0eXBlOiBNdXN0IGJlIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01D
QVNUX3tBREQsREVMfQogICogZmxhZ3M6IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKICAqIGFkZHI6
IGFkZHJlc3MgdG8gYWRkL3JlbW92ZQorICoKKyAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0hBU0g6
CisgKgorICogQSBiYWNrZW5kIHRoYXQgc3VwcG9ydHMgdGVvcGxpdHogaGFzaGluZyBpcyBhc3N1
bWVkIHRvIGFjY2VwdAorICogdGhpcyB0eXBlIG9mIGV4dHJhIGluZm8gaW4gdHJhbnNtaXQgcGFj
a2V0cy4KKyAqIEEgZnJvbnRlbmQgdGhhdCBlbmFibGVzIGhhc2hpbmcgaXMgYXNzdW1lZCB0byBh
Y2NlcHQKKyAqIHRoaXMgdHlwZSBvZiBleHRyYSBpbmZvIGluIHJlY2VpdmUgcGFja2V0cy4KKyAq
CisgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3Rl
dAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwor
ICogfHR5cGUgfGZsYWdzfGh0eXBlfCBhbGcgfExTQiAtLS0tIHZhbHVlIC0tLS0gTVNCfAorICog
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAq
IHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfSEFTSAorICogZmxhZ3M6IFhFTl9O
RVRJRl9FWFRSQV9GTEFHXyoKKyAqIGh0eXBlOiBIYXNoIHR5cGUgKG9uZSBvZiBfWEVOX05FVElG
X0NUUkxfSEFTSF9UWVBFXyogLSBzZWUgYWJvdmUpCisgKiBhbGc6IFRoZSBhbGdvcml0aG0gdXNl
ZCB0byBjYWxjdWxhdGUgdGhlIGhhc2ggKG9uZSBvZgorICogICAgICBYRU5fTkVUSUZfQ1RSTF9I
QVNIX1RZUEVfQUxHT1JJVEhNXyogLSBzZWUgYWJvdmUpCisgKiB2YWx1ZTogSGFzaCB2YWx1ZQog
ICovCiAKIC8qIFByb3RvY29sIGNoZWNrc3VtIGZpZWxkIGlzIGJsYW5rIGluIHRoZSBwYWNrZXQg
KGhhcmR3YXJlIG9mZmxvYWQpPyAqLwpAQCAtMjgwLDExICs4MzQsMTEgQEAKIAogI2RlZmluZSBY
RU5fTkVUSUZfTUFYX1RYX1NJWkUgMHhGRkZGCiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCB7Ci0g
ICAgZ3JhbnRfcmVmX3QgZ3JlZjsgICAgICAvKiBSZWZlcmVuY2UgdG8gYnVmZmVyIHBhZ2UgKi8K
LSAgICB1aW50MTZfdCBvZmZzZXQ7ICAgICAgIC8qIE9mZnNldCB3aXRoaW4gYnVmZmVyIHBhZ2Ug
Ki8KLSAgICB1aW50MTZfdCBmbGFnczsgICAgICAgIC8qIE5FVFRYRl8qICovCi0gICAgdWludDE2
X3QgaWQ7ICAgICAgICAgICAvKiBFY2hvZWQgaW4gcmVzcG9uc2UgbWVzc2FnZS4gKi8KLSAgICB1
aW50MTZfdCBzaXplOyAgICAgICAgIC8qIFBhY2tldCBzaXplIGluIGJ5dGVzLiAgICAgICAqLwor
ICAgIGdyYW50X3JlZl90IGdyZWY7CisgICAgdWludDE2X3Qgb2Zmc2V0OworICAgIHVpbnQxNl90
IGZsYWdzOworICAgIHVpbnQxNl90IGlkOworICAgIHVpbnQxNl90IHNpemU7CiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCBuZXRpZl90eF9yZXF1ZXN0X3Q7CiAKQEAgLTI5Myw3
ICs4NDcsOCBAQCB0eXBlZGVmIHN0cnVjdCBuZXRpZl90eF9yZXF1ZXN0IG5ldGlmX3R4X3JlcXVl
c3RfdDsKICNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPICAgICAgICgxKSAgLyogdS5n
c28gKi8KICNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1RfQUREICgyKSAgLyogdS5t
Y2FzdCAqLwogI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF9ERUwgKDMpICAvKiB1
Lm1jYXN0ICovCi0jZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCAgICAgICAoNCkKKyNk
ZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfSEFTSCAgICAgICg0KSAgLyogdS5oYXNoICovCisj
ZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCAgICAgICAoNSkKIAogLyogbmV0aWZfZXh0
cmFfaW5mb190IGZsYWdzLiAqLwogI2RlZmluZSBfWEVOX05FVElGX0VYVFJBX0ZMQUdfTU9SRSAo
MCkKQEAgLTMwOSw1MSArODY0LDIzIEBAIHR5cGVkZWYgc3RydWN0IG5ldGlmX3R4X3JlcXVlc3Qg
bmV0aWZfdHhfcmVxdWVzdF90OwogICogbmV0aWZfcnhfcmVzcG9uc2VfdCBmb3IgY29tcGF0aWJp
bGl0eS4KICAqLwogc3RydWN0IG5ldGlmX2V4dHJhX2luZm8gewotICAgIHVpbnQ4X3QgdHlwZTsg
IC8qIFhFTl9ORVRJRl9FWFRSQV9UWVBFXyogKi8KLSAgICB1aW50OF90IGZsYWdzOyAvKiBYRU5f
TkVUSUZfRVhUUkFfRkxBR18qICovCi0KKyAgICB1aW50OF90IHR5cGU7CisgICAgdWludDhfdCBm
bGFnczsKICAgICB1bmlvbiB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFhFTl9ORVRJRl9FWFRS
QV9UWVBFX0dTTzoKLSAgICAgICAgICovCiAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAv
KgotICAgICAgICAgICAgICogTWF4aW11bSBwYXlsb2FkIHNpemUgb2YgZWFjaCBzZWdtZW50LiBG
b3IgZXhhbXBsZSwgZm9yIFRDUCB0aGlzCi0gICAgICAgICAgICAgKiBpcyBqdXN0IHRoZSBwYXRo
IE1TUy4KLSAgICAgICAgICAgICAqLwogICAgICAgICAgICAgdWludDE2X3Qgc2l6ZTsKLQotICAg
ICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIEdTTyB0eXBlLiBUaGlzIGRldGVybWluZXMgdGhl
IHByb3RvY29sIG9mIHRoZSBwYWNrZXQgYW5kIGFueQotICAgICAgICAgICAgICogZXh0cmEgZmVh
dHVyZXMgcmVxdWlyZWQgdG8gc2VnbWVudCB0aGUgcGFja2V0IHByb3Blcmx5LgotICAgICAgICAg
ICAgICovCi0gICAgICAgICAgICB1aW50OF90IHR5cGU7IC8qIFhFTl9ORVRJRl9HU09fVFlQRV8q
ICovCi0KLSAgICAgICAgICAgIC8qIEZ1dHVyZSBleHBhbnNpb24uICovCisgICAgICAgICAgICB1
aW50OF90IHR5cGU7CiAgICAgICAgICAgICB1aW50OF90IHBhZDsKLQotICAgICAgICAgICAgLyoK
LSAgICAgICAgICAgICAqIEdTTyBmZWF0dXJlcy4gVGhpcyBzcGVjaWZpZXMgYW55IGV4dHJhIEdT
TyBmZWF0dXJlcyByZXF1aXJlZAotICAgICAgICAgICAgICogdG8gcHJvY2VzcyB0aGlzIHBhY2tl
dCwgc3VjaCBhcyBFQ04gc3VwcG9ydCBmb3IgVENQdjQuCi0gICAgICAgICAgICAgKi8KLSAgICAg
ICAgICAgIHVpbnQxNl90IGZlYXR1cmVzOyAvKiBYRU5fTkVUSUZfR1NPX0ZFQVRfKiAqLworICAg
ICAgICAgICAgdWludDE2X3QgZmVhdHVyZXM7CiAgICAgICAgIH0gZ3NvOwotCi0gICAgICAgIC8q
Ci0gICAgICAgICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfToKLSAgICAg
ICAgICogQmFja2VuZCBhZHZlcnRpc2VzIGF2YWlsYWJpbGl0eSB2aWEgJ2ZlYXR1cmUtbXVsdGlj
YXN0LWNvbnRyb2wnCi0gICAgICAgICAqIHhlbmJ1cyBub2RlIGNvbnRhaW5pbmcgdmFsdWUgJzEn
LgotICAgICAgICAgKiBGcm9udGVuZCByZXF1ZXN0cyB0aGlzIGZlYXR1cmUgYnkgYWR2ZXJ0aXNp
bmcKLSAgICAgICAgICogJ3JlcXVlc3QtbXVsdGljYXN0LWNvbnRyb2wnIHhlbmJ1cyBub2RlIGNv
bnRhaW5pbmcgdmFsdWUgJzEnLgotICAgICAgICAgKiBJZiBtdWx0aWNhc3QgY29udHJvbCBpcyBy
ZXF1ZXN0ZWQgdGhlbiBtdWx0aWNhc3QgZmxvb2RpbmcgaXMKLSAgICAgICAgICogZGlzYWJsZWQg
YW5kIHRoZSBmcm9udGVuZCBtdXN0IGV4cGxpY2l0bHkgcmVnaXN0ZXIgaXRzIGludGVyZXN0Ci0g
ICAgICAgICAqIGluIG11bHRpY2FzdCBncm91cHMgdXNpbmcgZHVtbXkgdHJhbnNtaXQgcmVxdWVz
dHMgY29udGFpbmluZwotICAgICAgICAgKiBNQ0FTVF97QURELERFTH0gZXh0cmEtaW5mbyBmcmFn
bWVudHMuCi0gICAgICAgICAqLwogICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDhf
dCBhZGRyWzZdOyAvKiBBZGRyZXNzIHRvIGFkZC9yZW1vdmUuICovCisgICAgICAgICAgICB1aW50
OF90IGFkZHJbNl07CiAgICAgICAgIH0gbWNhc3Q7Ci0KKyAgICAgICAgc3RydWN0IHsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgdHlwZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgYWxnb3JpdGhtOworICAg
ICAgICAgICAgdWludDhfdCB2YWx1ZVs0XTsKKyAgICAgICAgfSBoYXNoOwogICAgICAgICB1aW50
MTZfdCBwYWRbM107CiAgICAgfSB1OwogfTsKQEAgLTM2MSwxNCArODg4LDE0IEBAIHR5cGVkZWYg
c3RydWN0IG5ldGlmX2V4dHJhX2luZm8gbmV0aWZfZXh0cmFfaW5mb190OwogCiBzdHJ1Y3QgbmV0
aWZfdHhfcmVzcG9uc2UgewogICAgIHVpbnQxNl90IGlkOwotICAgIGludDE2X3QgIHN0YXR1czsg
ICAgICAgLyogTkVUSUZfUlNQXyogKi8KKyAgICBpbnQxNl90ICBzdGF0dXM7CiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgbmV0aWZfdHhfcmVzcG9uc2UgbmV0aWZfdHhfcmVzcG9uc2VfdDsKIAogc3RydWN0
IG5ldGlmX3J4X3JlcXVlc3QgewogICAgIHVpbnQxNl90ICAgIGlkOyAgICAgICAgLyogRWNob2Vk
IGluIHJlc3BvbnNlIG1lc3NhZ2UuICAgICAgICAqLwogICAgIHVpbnQxNl90ICAgIHBhZDsKLSAg
ICBncmFudF9yZWZfdCBncmVmOyAgICAgIC8qIFJlZmVyZW5jZSB0byBpbmNvbWluZyBncmFudGVk
IGZyYW1lICovCisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsKIH07CiB0eXBlZGVmIHN0cnVjdCBuZXRp
Zl9yeF9yZXF1ZXN0IG5ldGlmX3J4X3JlcXVlc3RfdDsKIApAQCAtMzg4LDExICs5MTUsMTUgQEAg
dHlwZWRlZiBzdHJ1Y3QgbmV0aWZfcnhfcmVxdWVzdCBuZXRpZl9yeF9yZXF1ZXN0X3Q7CiAjZGVm
aW5lIF9ORVRSWEZfZXh0cmFfaW5mbyAgICAgKDMpCiAjZGVmaW5lICBORVRSWEZfZXh0cmFfaW5m
byAgICAgKDFVPDxfTkVUUlhGX2V4dHJhX2luZm8pCiAKKy8qIFBhY2tldCBoYXMgR1NPIHByZWZp
eC4gRGVwcmVjYXRlZCBidXQgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgKi8KKyNkZWZpbmUg
X05FVFJYRl9nc29fcHJlZml4ICAgICAoNCkKKyNkZWZpbmUgIE5FVFJYRl9nc29fcHJlZml4ICAg
ICAoMVU8PF9ORVRSWEZfZ3NvX3ByZWZpeCkKKwogc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIHsK
ICAgICB1aW50MTZfdCBpZDsKLSAgICB1aW50MTZfdCBvZmZzZXQ7ICAgICAgIC8qIE9mZnNldCBp
biBwYWdlIG9mIHN0YXJ0IG9mIHJlY2VpdmVkIHBhY2tldCAgKi8KLSAgICB1aW50MTZfdCBmbGFn
czsgICAgICAgIC8qIE5FVFJYRl8qICovCi0gICAgaW50MTZfdCAgc3RhdHVzOyAgICAgICAvKiAt
dmU6IE5FVElGX1JTUF8qIDsgK3ZlOiBSeCdlZCBwa3Qgc2l6ZS4gKi8KKyAgICB1aW50MTZfdCBv
ZmZzZXQ7CisgICAgdWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZfdCAgc3RhdHVzOwogfTsKIHR5
cGVkZWYgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIG5ldGlmX3J4X3Jlc3BvbnNlX3Q7CiAKZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9pby9yaW5nLmggYi9pbmNsdWRlL3hlbi9wdWJs
aWMvaW8vcmluZy5oCmluZGV4IGIxNjY2ZDguLjFkMjljYzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
eGVuL3B1YmxpYy9pby9yaW5nLmgKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2lvL3JpbmcuaApA
QCAtMTExLDcgKzExMSw3IEBAIHN0cnVjdCBfX25hbWUjI19zcmluZyB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHVpbnQ4X3Qg
bXNnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgfSB0YXBpZl91c2VyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICAgICAgdWludDhfdCBwdnRfcGFkWzRdOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHByaXZhdGU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9
IHB2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICB1aW50OF90IF9fcGFkWzQ0XTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB1bmlvbiBfX25hbWUjI19zcmluZ19l
bnRyeSByaW5nWzFdOyAvKiB2YXJpYWJsZS1sZW5ndGggKi8gICAgICAgICAgIFwKIH07ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKQEAgLTE1Niw3ICsxNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNr
X3JpbmcgX19uYW1lIyNfYmFja19yaW5nX3QKICNkZWZpbmUgU0hBUkVEX1JJTkdfSU5JVChfcykg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoX3MpLT5y
ZXFfcHJvZCAgPSAoX3MpLT5yc3BfcHJvZCAgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAoX3MpLT5yZXFfZXZlbnQgPSAoX3MpLT5yc3BfZXZlbnQgPSAxOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAodm9pZCltZW1zZXQoKF9zKS0+cHJpdmF0ZS5w
dnRfcGFkLCAwLCBzaXplb2YoKF9zKS0+cHJpdmF0ZS5wdnRfcGFkKSk7IFwKKyAgICAodm9pZClt
ZW1zZXQoKF9zKS0+cHZ0LnB2dF9wYWQsIDAsIHNpemVvZigoX3MpLT5wdnQucHZ0X3BhZCkpOyAg
ICAgIFwKICAgICAodm9pZCltZW1zZXQoKF9zKS0+X19wYWQsIDAsIHNpemVvZigoX3MpLT5fX3Bh
ZCkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUoMCkKIApAQCAtMjEyLDYgKzIxMiwyMCBA
QCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgX19uYW1lIyNfYmFja19yaW5nX3QK
ICNkZWZpbmUgUklOR19HRVRfUkVRVUVTVChfciwgX2lkeCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAoJigoX3IpLT5zcmluZy0+cmluZ1soKF9pZHgpICYgKFJJ
TkdfU0laRShfcikgLSAxKSldLnJlcSkpCiAKKy8qCisgKiBHZXQgYSBsb2NhbCBjb3B5IG9mIGEg
cmVxdWVzdC4KKyAqCisgKiBVc2UgdGhpcyBpbiBwcmVmZXJlbmNlIHRvIFJJTkdfR0VUX1JFUVVF
U1QoKSBzbyBhbGwgcHJvY2Vzc2luZyBpcworICogZG9uZSBvbiBhIGxvY2FsIGNvcHkgdGhhdCBj
YW5ub3QgYmUgbW9kaWZpZWQgYnkgdGhlIG90aGVyIGVuZC4KKyAqCisgKiBOb3RlIHRoYXQgaHR0
cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTgxNDUgbWF5IGNhdXNl
IHRoaXMKKyAqIHRvIGJlIGluZWZmZWN0aXZlIHdoZXJlIF9yZXEgaXMgYSBzdHJ1Y3Qgd2hpY2gg
Y29uc2lzdHMgb2Ygb25seSBiaXRmaWVsZHMuCisgKi8KKyNkZWZpbmUgUklOR19DT1BZX1JFUVVF
U1QoX3IsIF9pZHgsIF9yZXEpIGRvIHsJCQkJXAorCS8qIFVzZSB2b2xhdGlsZSB0byBmb3JjZSB0
aGUgY29weSBpbnRvIF9yZXEuICovCQkJXAorCSooX3JlcSkgPSAqKHZvbGF0aWxlIHR5cGVvZihf
cmVxKSlSSU5HX0dFVF9SRVFVRVNUKF9yLCBfaWR4KTsJXAorfSB3aGlsZSAoMCkKKwogI2RlZmlu
ZSBSSU5HX0dFVF9SRVNQT05TRShfciwgX2lkeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICgmKChfciktPnNyaW5nLT5yaW5nWygoX2lkeCkgJiAoUklOR19TSVpF
KF9yKSAtIDEpKV0ucnNwKSkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL3RyYWNl
LmggYi9pbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaAppbmRleCAxYTI4NTljLi45NWIwMGU4IDEw
MDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaAorKysgYi9pbmNsdWRlL3hlbi9w
dWJsaWMvdHJhY2UuaApAQCAtNzUsNyArNzUsNyBAQAogLyogUGVyLXNjaGVkdWxlciBJRHMsIHRv
IGlkZW50aWZ5IHNjaGVkdWxlciBzcGVjaWZpYyBldmVudHMgKi8KICNkZWZpbmUgVFJDX1NDSEVE
X0NTQ0hFRCAgIDAKICNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRDIgIDEKLSNkZWZpbmUgVFJDX1ND
SEVEX1NFREYgICAgIDIKKy8qICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9TRURGIDIgKFJlbW92ZWQp
ICovCiAjZGVmaW5lIFRSQ19TQ0hFRF9BUklOQzY1MyAzCiAjZGVmaW5lIFRSQ19TQ0hFRF9SVERT
ICAgICA0CiAKQEAgLTg1LDYgKzg1LDkgQEAKICAgICAgICgoVFJDX1NDSEVEXyMjX2MgPDwgVFJD
X1NDSEVEX0lEX1NISUZUKSAmIFRSQ19TQ0hFRF9JRF9NQVNLKSApICsgXAogICAgIChfZSAmIFRS
Q19TQ0hFRF9FVlRfTUFTSykgKQogCisvKiBUcmFjZSBjbGFzc2VzIGZvciBET00wIG9wZXJhdGlv
bnMgKi8KKyNkZWZpbmUgVFJDX0RPTTBfRE9NT1BTICAgICAweDAwMDQxMDAwICAgLyogRG9tYWlu
cyBtYW5pcHVsYXRpb25zICovCisKIC8qIFRyYWNlIGNsYXNzZXMgZm9yIEhhcmR3YXJlICovCiAj
ZGVmaW5lIFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAwMCAgIC8qIFBvd2VyIG1hbmFnZW1l
bnQgdHJhY2VzICovCiAjZGVmaW5lIFRSQ19IV19JUlEgICAgICAgICAgMHgwMDgwMjAwMCAgIC8q
IFRyYWNlcyByZWxhdGluZyB0byB0aGUgaGFuZGxpbmcgb2YgSVJRcyAqLwpAQCAtMTEzLDYgKzEx
Niw5IEBACiAjZGVmaW5lIFRSQ19TQ0hFRF9TV0lUQ0hfSU5GTkVYVCAoVFJDX1NDSEVEX1ZFUkJP
U0UgKyAxNSkKICNkZWZpbmUgVFJDX1NDSEVEX1NIVVRET1dOX0NPREUgIChUUkNfU0NIRURfVkVS
Qk9TRSArIDE2KQogCisjZGVmaW5lIFRSQ19ET00wX0RPTV9BREQgICAgICAgICAoVFJDX0RPTTBf
RE9NT1BTICsgMSkKKyNkZWZpbmUgVFJDX0RPTTBfRE9NX1JFTSAgICAgICAgIChUUkNfRE9NMF9E
T01PUFMgKyAyKQorCiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9NQVAgICAgICAoVFJDX01F
TSArIDEpCiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9VTk1BUCAgICAoVFJDX01FTSArIDIp
CiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9UUkFOU0ZFUiAoVFJDX01FTSArIDMpCmRpZmYg
LS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oIGIvaW5jbHVkZS94ZW4vcHVi
bGljL3hlbi1jb21wYXQuaAppbmRleCBlMjNjMzcxLi4yZWVhMGUyIDEwMDY0NAotLS0gYS9pbmNs
dWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4t
Y29tcGF0LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9DT01Q
QVRfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hfXwogCi0jZGVmaW5lIF9f
WEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fIDB4MDAwNDA2MDAKKyNkZWZpbmUgX19YRU5f
TEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDcwMAogCiAjaWYgZGVmaW5lZChfX1hF
Tl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRj
aGluZyBoZWFkZXJzIGFuZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLwpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL3hl
bi5oCmluZGV4IDAwNjYzMWIuLjIwNTdiNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3B1Ymxp
Yy94ZW4uaAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLmgKQEAgLTUyLDYgKzUyLDE5IEBA
IERFRklORV9YRU5fR1VFU1RfSEFORExFKHZvaWQpOwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0X3QpOwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KTsKIERFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKKworLyogVHVybiBhIHBsYWluIG51bWJlciBp
bnRvIGEgQyB1bnNpZ25lZCAoTE9OR19QVFIpIGNvbnN0YW50LiAqLworI2RlZmluZSBfX3hlbl9t
a191aW50KHgpICB4ICMjIFUKKyNkZWZpbmUgX194ZW5fbWtfdWxvbmcoeCkgeCAjIyBVTAorI2Rl
ZmluZSB4ZW5fbWtfdWludCh4KSAgICBfX3hlbl9ta191aW50KHgpCisjZGVmaW5lIHhlbl9ta191
bG9uZyh4KSAgIF9feGVuX21rX3Vsb25nKHgpCisKKyNlbHNlCisKKy8qIEluIGFzc2VtYmx5IGNv
ZGUgd2UgY2Fubm90IHVzZSBDIG51bWVyaWMgY29uc3RhbnQgc3VmZml4ZXMuICovCisjZGVmaW5l
IHhlbl9ta191aW50KHgpICB4CisjZGVmaW5lIHhlbl9ta191bG9uZyh4KSB4CisKICNlbmRpZgog
CiAvKgpAQCAtMTAxLDYgKzExNCw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl91bG9u
Z190KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX2tleGVjX29wICAgICAgICAgICAgIDM3CiAjZGVm
aW5lIF9fSFlQRVJWSVNPUl90bWVtX29wICAgICAgICAgICAgICAzOAogI2RlZmluZSBfX0hZUEVS
VklTT1JfeGNfcmVzZXJ2ZWRfb3AgICAgICAgMzkgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAq
LworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11X29wICAgICAgICAgICAgNDAKIAogLyogQXJj
aGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgX19I
WVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAgIDQ4CkBAIC0xNjAsNiArMTc0LDcgQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogI2RlZmluZSBWSVJRX01FTV9FVkVO
VCAgMTAgLyogRy4gKERPTTApIEEgbWVtb3J5IGV2ZW50IGhhcyBvY2N1cmVkICAgICAgICAgICAq
LwogI2RlZmluZSBWSVJRX1hDX1JFU0VSVkVEIDExIC8qIEcuIFJlc2VydmVkIGZvciBYZW5DbGll
bnQgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBWSVJRX0VOT01FTSAgICAgMTIgLyog
Ry4gKERPTTApIExvdyBvbiBoZWFwIG1lbW9yeSAgICAgICAqLworI2RlZmluZSBWSVJRX1hFTlBN
VSAgICAgMTMgLyogVi4gIFBNQyBpbnRlcnJ1cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwogCiAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgVklSUSBkZWZpbml0aW9ucy4gKi8KICNk
ZWZpbmUgVklSUV9BUkNIXzAgICAgMTYKQEAgLTQ0OSwxMyArNDY0LDEzIEBAIERFRklORV9YRU5f
R1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKIC8qIFdoZW4gc3BlY2lmeWluZyBVVk1GX01VTFRJ
LCBhbHNvIE9SIGluIGEgcG9pbnRlciB0byBhIENQVSBiaXRtYXAuICAgKi8KIC8qIFVWTUZfTE9D
QUwgaXMgbWVyZWx5IFVWTUZfTVVMVEkgd2l0aCBhIE5VTEwgYml0bWFwIHBvaW50ZXIuICAgICAg
ICAgKi8KIC8qIGAgZW51bSB1dm1fZmxhZ3MgeyAqLwotI2RlZmluZSBVVk1GX05PTkUgICAgICAg
ICAgICAgICAoMFVMPDwwKSAvKiBObyBmbHVzaGluZyBhdCBhbGwuICAgKi8KLSNkZWZpbmUgVVZN
Rl9UTEJfRkxVU0ggICAgICAgICAgKDFVTDw8MCkgLyogRmx1c2ggZW50aXJlIFRMQihzKS4gICov
Ci0jZGVmaW5lIFVWTUZfSU5WTFBHICAgICAgICAgICAgICgyVUw8PDApIC8qIEZsdXNoIG9ubHkg
b25lIGVudHJ5LiAqLwotI2RlZmluZSBVVk1GX0ZMVVNIVFlQRV9NQVNLICAgICAoM1VMPDwwKQot
I2RlZmluZSBVVk1GX01VTFRJICAgICAgICAgICAgICAoMFVMPDwyKSAvKiBGbHVzaCBzdWJzZXQg
b2YgVExCcy4gKi8KLSNkZWZpbmUgVVZNRl9MT0NBTCAgICAgICAgICAgICAgKDBVTDw8MikgLyog
Rmx1c2ggbG9jYWwgVExCLiAgICAgICovCi0jZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgICAg
ICgxVUw8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAqLworI2RlZmluZSBVVk1GX05PTkUg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDApIC8qIE5vIGZsdXNoaW5nIGF0IGFsbC4gICAq
LworI2RlZmluZSBVVk1GX1RMQl9GTFVTSCAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDApIC8qIEZs
dXNoIGVudGlyZSBUTEIocykuICAqLworI2RlZmluZSBVVk1GX0lOVkxQRyAgICAgICAgICh4ZW5f
bWtfdWxvbmcoMik8PDApIC8qIEZsdXNoIG9ubHkgb25lIGVudHJ5LiAqLworI2RlZmluZSBVVk1G
X0ZMVVNIVFlQRV9NQVNLICh4ZW5fbWtfdWxvbmcoMyk8PDApCisjZGVmaW5lIFVWTUZfTVVMVEkg
ICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1c2ggc3Vic2V0IG9mIFRMQnMuICov
CisjZGVmaW5lIFVWTUZfTE9DQUwgICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1
c2ggbG9jYWwgVExCLiAgICAgICovCisjZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgKHhlbl9t
a191bG9uZygxKTw8MikgLyogRmx1c2ggYWxsIFRMQnMuICAgICAgICovCiAvKiBgIH0gKi8KIAog
LyoKQEAgLTQ4NiwxNyArNTAxLDM1IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9v
cF90KTsKIC8qIHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KICNk
ZWZpbmUgVk1BU1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMyAgICAgMwogCi0jZGVmaW5lIE1BWF9W
TUFTU1RfVFlQRSAgICAgICAgICAgICAgICAgIDMKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJl
aGF2aW91ciBmb3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9t
IGRvX2lyZXQoKSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJv
dW5jZSBmcmFtZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBm
b3IgdGhlIHB1cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVf
YXJjaGl0ZWN0dXJhbF9pb3BsICAgNAogCi0jaWZuZGVmIF9fQVNTRU1CTFlfXworLyoKKyAqIHg4
Ni82NCBndWVzdHM6IHN0cmljdGx5IGhpZGUgTTJQIGZyb20gdXNlciBtb2RlLgorICogVGhpcyBh
bGxvd3MgdGhlIGd1ZXN0IHRvIGNvbnRyb2wgcmVzcGVjdGl2ZSBoeXBlcnZpc29yIGJlaGF2aW9y
OgorICogLSB3aGVuIG5vdCBzZXQsIEw0IHRhYmxlcyBnZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNw
ZWN0aXZlIHNsb3QgYmxhbmssCisgKiAgIGFuZCB3aGVuZXZlciB0aGUgTDQgdGFibGUgZ2V0cyB1
c2VkIGFzIGEga2VybmVsIG9uZSB0aGUgbWlzc2luZworICogICBtYXBwaW5nIGdldHMgaW5zZXJ0
ZWQsCisgKiAtIHdoZW4gc2V0LCBMNCB0YWJsZXMgZ2V0IGNyZWF0ZWQgd2l0aCB0aGUgcmVzcGVj
dGl2ZSBzbG90IGluaXRpYWxpemVkCisgKiAgIGFzIGJlZm9yZSwgYW5kIHdoZW5ldmVyIHRoZSBM
NCB0YWJsZSBnZXRzIHVzZWQgYXMgYSB1c2VyIG9uZSB0aGUKKyAqICAgbWFwcGluZyBnZXRzIHph
cHBlZC4KKyAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9tMnBfc3RyaWN0ICAgICAgICAgICAzMgog
Ci10eXBlZGVmIHVpbnQxNl90IGRvbWlkX3Q7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDA2MDAKKyNkZWZpbmUgTUFYX1ZNQVNTVF9UWVBFICAgICAgICAgICAgICAgICAg
MworI2VuZGlmCiAKIC8qIERvbWFpbiBpZHMgPj0gRE9NSURfRklSU1RfUkVTRVJWRUQgY2Fubm90
IGJlIHVzZWQgZm9yIG9yZGluYXJ5IGRvbWFpbnMuICovCi0jZGVmaW5lIERPTUlEX0ZJUlNUX1JF
U0VSVkVEICgweDdGRjBVKQorI2RlZmluZSBET01JRF9GSVJTVF9SRVNFUlZFRCB4ZW5fbWtfdWlu
dCgweDdGRjApCiAKIC8qIERPTUlEX1NFTEYgaXMgdXNlZCBpbiBjZXJ0YWluIGNvbnRleHRzIHRv
IHJlZmVyIHRvIG9uZXNlbGYuICovCi0jZGVmaW5lIERPTUlEX1NFTEYgKDB4N0ZGMFUpCisjZGVm
aW5lIERPTUlEX1NFTEYgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZGMCkKIAogLyoKICAqIERP
TUlEX0lPIGlzIHVzZWQgdG8gcmVzdHJpY3QgcGFnZS10YWJsZSB1cGRhdGVzIHRvIG1hcHBpbmcg
SS9PIG1lbW9yeS4KQEAgLTUwNyw3ICs1NDAsNyBAQCB0eXBlZGVmIHVpbnQxNl90IGRvbWlkX3Q7
CiAgKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gTU1VRVhUX1NFVF9GT1JFSUdORE9NLCBidXQg
aW4gdGhhdCBjb250ZXh0IGNhbgogICogYmUgc3BlY2lmaWVkIGJ5IGFueSBjYWxsaW5nIGRvbWFp
bi4KICAqLwotI2RlZmluZSBET01JRF9JTyAgICgweDdGRjFVKQorI2RlZmluZSBET01JRF9JTyAg
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjEpCiAKIC8qCiAgKiBET01JRF9YRU4gaXMgdXNl
ZCB0byBhbGxvdyBwcml2aWxlZ2VkIGRvbWFpbnMgdG8gbWFwIHJlc3RyaWN0ZWQgcGFydHMgb2YK
QEAgLTUxNSwxNyArNTQ4LDIxIEBAIHR5cGVkZWYgdWludDE2X3QgZG9taWRfdDsKICAqIFRoaXMg
b25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VUX0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBl
cm1pdHRlZCBpZgogICogdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCi0jZGVmaW5lIERP
TUlEX1hFTiAgKDB4N0ZGMlUpCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGMikKIAogLyoKICAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBz
aGFyYWJsZSBwYWdlcyAqLwotI2RlZmluZSBET01JRF9DT1cgICgweDdGRjNVKQorI2RlZmluZSBE
T01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjMpCiAKIC8qIERPTUlEX0lOVkFM
SUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRoIHVua25vd24gb3duZXIuICovCi0jZGVm
aW5lIERPTUlEX0lOVkFMSUQgKDB4N0ZGNFUpCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAg
IHhlbl9ta191aW50KDB4N0ZGNCkKIAogLyogSWRsZSBkb21haW4uICovCi0jZGVmaW5lIERPTUlE
X0lETEUgKDB4N0ZGRlUpCisjZGVmaW5lIERPTUlEX0lETEUgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlwZWRlZiB1aW50MTZfdCBkb21p
ZF90OwogCiAvKgogICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX21tdV91
cGRhdGUoKS4KQEAgLTU4NSwxMCArNjIyLDE4IEBAIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB7CiAg
ICAgICovCiAgICAgdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7CiAgICAgaW50OF90ICAgdHNj
X3NoaWZ0OworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPiAweDA0MDYwMAorICAgIHVp
bnQ4X3QgIGZsYWdzOworICAgIHVpbnQ4X3QgIHBhZDFbMl07CisjZWxzZQogICAgIGludDhfdCAg
IHBhZDFbM107CisjZW5kaWYKIH07IC8qIDMyIGJ5dGVzICovCiB0eXBlZGVmIHN0cnVjdCB2Y3B1
X3RpbWVfaW5mbyB2Y3B1X3RpbWVfaW5mb190OwogCisjZGVmaW5lIFhFTl9QVkNMT0NLX1RTQ19T
VEFCTEVfQklUICAgICAoMSA8PCAwKQorI2RlZmluZSBYRU5fUFZDTE9DS19HVUVTVF9TVE9QUEVE
ICAgICAgKDEgPDwgMSkKKwogc3RydWN0IHZjcHVfaW5mbyB7CiAgICAgLyoKICAgICAgKiAnZXZ0
Y2huX3VwY2FsbF9wZW5kaW5nJyBpcyB3cml0dGVuIG5vbi16ZXJvIGJ5IFhlbiB0byBpbmRpY2F0
ZQpAQCAtNzA0LDI0ICs3NDksMjcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2hhcmVkX2luZm8gc2hhcmVk
X2luZm9fdDsKICAqICAzLiBUaGlzIHRoZSBvcmRlciBvZiBib290c3RyYXAgZWxlbWVudHMgaW4g
dGhlIGluaXRpYWwgdmlydHVhbCByZWdpb246CiAgKiAgICAgIGEuIHJlbG9jYXRlZCBrZXJuZWwg
aW1hZ2UKICAqICAgICAgYi4gaW5pdGlhbCByYW0gZGlzayAgICAgICAgICAgICAgW21vZF9zdGFy
dCwgbW9kX2xlbl0KKyAqICAgICAgICAgKG1heSBiZSBvbWl0dGVkKQogICogICAgICBjLiBsaXN0
IG9mIGFsbG9jYXRlZCBwYWdlIGZyYW1lcyBbbWZuX2xpc3QsIG5yX3BhZ2VzXQogICogICAgICAg
ICAodW5sZXNzIHJlbG9jYXRlZCBkdWUgdG8gWEVOX0VMRk5PVEVfSU5JVF9QMk0pCiAgKiAgICAg
IGQuIHN0YXJ0X2luZm9fdCBzdHJ1Y3R1cmUgICAgICAgIFtyZWdpc3RlciBFU0kgKHg4NildCi0g
KiAgICAgIGUuIGJvb3RzdHJhcCBwYWdlIHRhYmxlcyAgICAgICAgIFtwdF9iYXNlIGFuZCBDUjMg
KHg4NildCi0gKiAgICAgIGYuIGJvb3RzdHJhcCBzdGFjayAgICAgICAgICAgICAgIFtyZWdpc3Rl
ciBFU1AgKHg4NildCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZG9tMCB0aGlzIHBhZ2UgY29udGFp
bnMgdGhlIGNvbnNvbGUgaW5mbywgdG9vCisgKiAgICAgIGUuIHVubGVzcyBkb20wOiB4ZW5zdG9y
ZSByaW5nIHBhZ2UKKyAqICAgICAgZi4gdW5sZXNzIGRvbTA6IGNvbnNvbGUgcmluZyBwYWdlCisg
KiAgICAgIGcuIGJvb3RzdHJhcCBwYWdlIHRhYmxlcyAgICAgICAgIFtwdF9iYXNlIGFuZCBDUjMg
KHg4NildCisgKiAgICAgIGguIGJvb3RzdHJhcCBzdGFjayAgICAgICAgICAgICAgIFtyZWdpc3Rl
ciBFU1AgKHg4NildCiAgKiAgNC4gQm9vdHN0cmFwIGVsZW1lbnRzIGFyZSBwYWNrZWQgdG9nZXRo
ZXIsIGJ1dCBlYWNoIGlzIDRrQi1hbGlnbmVkLgotICogIDUuIFRoZSBpbml0aWFsIHJhbSBkaXNr
IG1heSBiZSBvbWl0dGVkLgotICogIDYuIFRoZSBsaXN0IG9mIHBhZ2UgZnJhbWVzIGZvcm1zIGEg
Y29udGlndW91cyAncHNldWRvLXBoeXNpY2FsJyBtZW1vcnkKKyAqICA1LiBUaGUgbGlzdCBvZiBw
YWdlIGZyYW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVkby1waHlzaWNhbCcgbWVtb3J5CiAg
KiAgICAgbGF5b3V0IGZvciB0aGUgZG9tYWluLiBJbiBwYXJ0aWN1bGFyLCB0aGUgYm9vdHN0cmFw
IHZpcnR1YWwtbWVtb3J5CiAgKiAgICAgcmVnaW9uIGlzIGEgMToxIG1hcHBpbmcgdG8gdGhlIGZp
cnN0IHNlY3Rpb24gb2YgdGhlIHBzZXVkby1waHlzaWNhbCBtYXAuCi0gKiAgNy4gQWxsIGJvb3Rz
dHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFibGUgZm9yIHRoZSBndWVzdCBPUy4g
VGhlCisgKiAgNi4gQWxsIGJvb3RzdHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFi
bGUgZm9yIHRoZSBndWVzdCBPUy4gVGhlCiAgKiAgICAgb25seSBleGNlcHRpb24gaXMgdGhlIGJv
b3RzdHJhcCBwYWdlIHRhYmxlLCB3aGljaCBpcyBtYXBwZWQgcmVhZC1vbmx5LgotICogIDguIFRo
ZXJlIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVhc3QgNTEya0IgcGFkZGluZyBhZnRlciB0aGUg
ZmluYWwKKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVkIHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBh
ZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCiAgKiAgICAgYm9vdHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vz
c2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lvbiBpcwogICogICAgIGV4dGVuZGVkIGJ5
IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KICAqCiAgKiBOb3RlOiBQcmlvciB0byAyNTgz
MzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFkanVzdCBEb20wIGluaXRpYWwgcGFnZQot
ICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRoZSBwdF9iYXNlICgzLmUgYWJvdmUpIGFu
ZCBjcjMgdG8gbm90IHBvaW50CisgKiB0YWJsZSBsYXlvdXQiKSBhIGJ1ZyBjYXVzZWQgdGhlIHB0
X2Jhc2UgKDMuZyBhYm92ZSkgYW5kIGNyMyB0byBub3QgcG9pbnQKICAqIHRvIHRoZSBzdGFydCBv
ZiB0aGUgZ3Vlc3QgcGFnZSB0YWJsZXMgKGl0IHdhcyBvZmZzZXQgYnkgdHdvIHBhZ2VzKS4KICAq
IFRoaXMgb25seSBtYW5pZmVzdGVkIGl0c2VsZiBvbiAzMi1vbi02NCBkb20wIGtlcm5lbHMgYW5k
IG5vdCAzMi1vbi02NCBkb21VCiAgKiBvciA2NC1iaXQga2VybmVscyBvZiBhbnkgY29sb3VyLiBU
aGUgcGFnZSB0YWJsZXMgZm9yIGEgMzItb24tNjQgZG9tMCBnb3QKQEAgLTc2NSw2ICs4MTMsNTIg
QEAgc3RydWN0IHN0YXJ0X2luZm8gewogfTsKIHR5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3Rh
cnRfaW5mb190OwogCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZI
IGd1ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQg
cGh5c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVz
cyBmaWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1h
Z2ljIHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICst
LS0tLS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhp
cyBzdHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAg
ICAgICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJs
ZS4KKyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJ
Rl94eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxl
cyAgICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICst
LS0tLS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJl
c3Mgb2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlv
dXQgb2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAq
ICAgIHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxp
bmUsCisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3Ry
aW5nLgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwg
UGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAg
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRo
ZSBtb2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0
aGUgbW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAg
ICAgIHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29t
bWFuZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFT
Q0lJIHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAg
ICAgICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQg
c2l6ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4K
KyAqCisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBk
YXRhIGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NU
QVJUX01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKwogLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRv
bTAgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLwogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJT
SU9OX18gPCAweDAwMDMwMjAzCiAjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5t
Zm4KQEAgLTc3Nyw2ICs4NzEsOCBAQCB0eXBlZGVmIHN0cnVjdCBzdGFydF9pbmZvIHN0YXJ0X2lu
Zm9fdDsKICNkZWZpbmUgU0lGX0lOSVRET01BSU4gICAgKDE8PDEpICAvKiBJcyB0aGlzIHRoZSBp
bml0aWFsIGNvbnRyb2wgZG9tYWluPyAqLwogI2RlZmluZSBTSUZfTVVMVElCT09UX01PRCAoMTw8
MikgIC8qIElzIG1vZF9zdGFydCBhIG11bHRpYm9vdCBtb2R1bGU/ICovCiAjZGVmaW5lIFNJRl9N
T0RfU1RBUlRfUEZOICgxPDwzKSAgLyogSXMgbW9kX3N0YXJ0IGEgUEZOPyAqLworI2RlZmluZSBT
SUZfVklSVF9QMk1fNFRPT0xTICgxPDw0KSAvKiBEbyBYZW4gdG9vbHMgdW5kZXJzdGFuZCBhIHZp
cnQuIG1hcHBlZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQLT5N
IG1ha2luZyB0aGUgMyBsZXZlbCB0cmVlIG9ic29sZXRlPyAqLwogI2RlZmluZSBTSUZfUE1fTUFT
SyAgICAgICAoMHhGRjw8OCkgLyogcmVzZXJ2ZSAxIGJ5dGUgZm9yIHhlbi1wbSBvcHRpb25zICov
CiAKIC8qCkBAIC04NTcsMjAgKzk1MywxMSBAQCB0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25z
b2xlX2luZm8gewogCiB0eXBlZGVmIHVpbnQ4X3QgeGVuX2RvbWFpbl9oYW5kbGVfdFsxNl07CiAK
LS8qIFR1cm4gYSBwbGFpbiBudW1iZXIgaW50byBhIEMgVUxPTkdfUFRSIGNvbnN0YW50LiAqLwot
I2RlZmluZSBfX21rX3Vuc2lnbmVkX2xvbmcoeCkgeCAjIyBVTAotI2RlZmluZSBta191bnNpZ25l
ZF9sb25nKHgpIF9fbWtfdW5zaWduZWRfbG9uZyh4KQotCiBfX0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHVpbnQ4LCAgdWludDhfdCk7CiBfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwg
dWludDE2X3QpOwogX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsK
IF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDY0LCB1aW50NjRfdCk7CiAKLSNlbHNlIC8q
IF9fQVNTRU1CTFlfXyAqLwotCi0vKiBJbiBhc3NlbWJseSBjb2RlIHdlIGNhbm5vdCB1c2UgQyBu
dW1lcmljIGNvbnN0YW50IHN1ZmZpeGVzLiAqLwotI2RlZmluZSBta191bnNpZ25lZF9sb25nKHgp
IHgKLQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KIAogLyogRGVmYXVsdCBkZWZpbml0aW9u
cyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9tY3RsL3N5c2N0bC4gKi8KZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3hlbi9lcnJuby5oIGIvaW5jbHVkZS94ZW4veGVuL2Vycm5vLmgKaW5kZXggMzE3ODQ2
Ni4uNjliMjhkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuL2Vycm5vLmgKKysrIGIvaW5j
bHVkZS94ZW4veGVuL2Vycm5vLmgKQEAgLTEsMTggKzEsMTYgQEAKICNpZm5kZWYgX19YRU5fRVJS
Tk9fSF9fCiAjZGVmaW5lIF9fWEVOX0VSUk5PX0hfXwogCi0jaW5jbHVkZSA8cHVibGljL2Vycm5v
Lmg+Ci0KICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKLSNkZWZpbmUgWEVOX0VSUk5PKG5hbWUsIHZh
bHVlKSBuYW1lID0gWEVOXyMjbmFtZSwKKyNkZWZpbmUgWEVOX0VSUk5PKG5hbWUsIHZhbHVlKSBu
YW1lID0gdmFsdWUsCiBlbnVtIHsKICNpbmNsdWRlIDxwdWJsaWMvZXJybm8uaD4KIH07CiAKICNl
bHNlIC8qICFfX0FTU0VNQkxZX18gKi8KIAotI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUp
IC5lcXUgbmFtZSwgWEVOXyMjbmFtZQorI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIC5l
cXUgbmFtZSwgdmFsdWUKICNpbmNsdWRlIDxwdWJsaWMvZXJybm8uaD4KIAogI2VuZGlmIC8qIF9f
QVNTRU1CTFlfXyAqLwotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:07 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWV-0006Zz-In; Tue, 17 May 2016 16:07:07 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWU-0006ZV-6M
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:06 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B9/09-26345-9A14B375; Tue, 17 May 2016 16:07:05 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsXiVRukrbvc0Tr
 c4Ntna4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8er3HPaCSyeYKyZ3/WVsYJx+k6mLkZNDSGA2
 o8SMXcxdjFwcLAKzWCXeNfUygTgSAttYJR6/PMgOUiUhECMxofk8M4RdJfHizU42iG5FieZrF
 9hBGoQEljFJ/F7+jxEkwSagLnH7/WKoZjuJT7NugtkiAqoS15YfA2tmFtCSeLhhHli9sICJxO
 kzb8BsFqCaaU0nwM7jFXCX2H/vGhvEHDmJvZNXs4DYnAIeErNe/2GHOMJdon37dTaIekGJkzO
 fANVwAM1Xl1g/TwhilbxE89bZzBMYRWYhqZqFUDULSdUCRuZVjBrFqUVlqUW6hiZ6SUWZ6Rkl
 uYmZObqGQG5uanFxYnpqTmJSsV5yfu4mRmAE1DMwMO5g/H7a8xCjJAeTkijvBRPrcCG+pPyUy
 ozE4oz4otKc1OJDjDIcHEoSvC8dgHKCRanpqRVpmTnAWIRJS3DwKInwvgJJ8xYXJOYWZ6ZDpE
 4xGnNsWXBjLRPHlqn31jIJseTl56VKifN2g5QKgJRmlObBDYKliEuMslLCvIwMDAxCPAWpRbm
 ZJajyrxjFORiVhHk3g0zhycwrgdv3CugUJqBTJphZgJxSkoiQkmpgTJSafe1OxQcJnZmfbfs/
 MZsx23x6uGud+Y7XEhfvr380hTe54vPtrAafJTZuU/zCTu8/IMpq5XA3xn6Rycm/q3bem23Gf
 2liaMQm5k2LEwvU8ubOWpGy/EnGX15xncbmDQbBj688u35/9zaxHW8XcbkvSzfa+/Zq9ZmjcX
 4v1cprbjuoTOPjeabEUpyRaKjFXFScCAAOpKDRDAMAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1463501223!41789451!1
X-Originating-IP: [74.125.82.43]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 45907 invoked from network); 17 May 2016 16:07:03 -0000
Received: from mail-wm0-f43.google.com (HELO mail-wm0-f43.google.com)
 (74.125.82.43)
 by server-3.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:03 -0000
Received: by mail-wm0-f43.google.com with SMTP id g17so39367469wme.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=mQyIqdWhVAyvqP1N9iDlXO7iePFWf+YrN/rszU8DGEQ=;
 b=UspRbQhX/BWiDnCJXBABEY6vxmDzILuWFawY3ahGA79fFpd/JDw3Xp+9zwN2l3oKRs
 ClS6Pc2QNfUPb7pCu2uVeCDQGi0POCKSZy474pVElrSlOBXhGjqQzGlHMUPx7zL/8MvI
 FRkiCLHcH2CJeXMdPDR9Hb+GU9ZO+mVhuR7eYrjSKAQ7UFmgffnsy579G/9+NuEf+0XW
 0cu7F4nywhU/TEQkvZm0NN5uqfwKXWtn7iryDfqQHyH4nBa36RMlxN7iBg4HPhUvHCHQ
 Icpz4ht6eJGxV4mfEVgBVTmBy5ujO9jxetUejPYFI5vdE5ZrhQeOXevZHz/wsEcoJGuR
 jjqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=mQyIqdWhVAyvqP1N9iDlXO7iePFWf+YrN/rszU8DGEQ=;
 b=W4GiFjGP1CrZa0srOVmVe0esq/tB/1xOMyPVrBxpWgGdAV0vajw6nSGaEpwywcIyax
 4rf5dOrlTU81DjaiHU7ybPApo/+JwJk1qyUkO5L1ekvp9Vl4scgd3FD7hTzZ3XpBrFib
 PEClbsQ5jUeQST4dXmZv+jzPZO8mrp8SC0cTzxS20vC1Vj8WD259OqE+YMt2DehFEM7L
 I1tE9Ke/BPuc5ctKoM7IJwlYFqD+CH92k8pVzkEUBmb0pFCODokz5++RwcwnB22V54YV
 G8qDmmLt18NUbUG0CmDaDHarn34QgeqfFw4HU5f3Wg8/RMNclSAoYjM9gJUgUYTTUJGD
 ZGbA==
X-Gm-Message-State: AOPr4FXcF+JjmtQa2tZxZYfq5Klg9d/dEEuDd2CjlI/jMN1TNmrKz6G/EQnT4iCfYnbZSw==
X-Received: by 10.194.175.168 with SMTP id cb8mr2381677wjc.56.1463501223310;
 Tue, 17 May 2016 09:07:03 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.02
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:02 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:01 +0100
Message-Id: <1463501224-12940-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/4] Update Xen headers to 4.7.0-rc2
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwdWxscyBpbiB0aGUgcmVjZW50IGNoYW5nZXMgdG8gbmV0aWYuaCB3aGljaCBhcmUgcmVx
dWlyZWQgYnkKc3Vic2VxdWVudCBwYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50
IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14
ODYveGVuLXg4Nl8zMi5oIHwgIDIxICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVu
LXg4Nl82NC5oIHwgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmggICAg
ICAgIHwgIDM3ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvZXJybm8uaCAgICAgICAgICAgICAgIHwg
IDYzICsrLQogaW5jbHVkZS94ZW4vcHVibGljL2dyYW50X3RhYmxlLmggICAgICAgICB8ICAxMCAr
LQogaW5jbHVkZS94ZW4vcHVibGljL2lvL25ldGlmLmggICAgICAgICAgICB8IDY1OSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tCiBpbmNsdWRlL3hlbi9wdWJsaWMvaW8vcmluZy5oICAg
ICAgICAgICAgIHwgIDE4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaCAgICAgICAgICAg
ICAgIHwgICA4ICstCiBpbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oICAgICAgICAgIHwg
ICAyICstCiBpbmNsdWRlL3hlbi9wdWJsaWMveGVuLmggICAgICAgICAgICAgICAgIHwgMTUzICsr
KysrLS0KIGluY2x1ZGUveGVuL3hlbi9lcnJuby5oICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K
IDExIGZpbGVzIGNoYW5nZWQsIDg0MSBpbnNlcnRpb25zKCspLCAxNDQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzMyLmgKaW5kZXggNzM2ODhiOC4uZDIz
MzQwYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIu
aAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oCkBAIC01OCwz
NCArNTgsMzEgQEAKICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAgIDB4RjU4
MDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUgICAgIDB4RjU4MDAwMDAK
ICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgIDB4RjY4MDAwMDAKLSNkZWZp
bmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSAgICAgIFwKLSAgICBta191bnNpZ25lZF9sb25n
KF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKLSNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RB
UlRfUEFFICAgICAgIFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RB
UlRfUEFFKQotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfUEFFICAgICAgICAgXAotICAgIG1r
X3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfUEFFKQorI2RlZmluZSBIWVBFUlZJ
U09SX1ZJUlRfU1RBUlRfUEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NU
QVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191
bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRf
RU5EX1BBRSAgICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCiAK
IC8qIE5vbi1QQUUgYm91bmRzIGFyZSBvYnNvbGV0ZS4gKi8KICNkZWZpbmUgX19IWVBFUlZJU09S
X1ZJUlRfU1RBUlRfTk9OUEFFIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9T
VEFSVF9OT05QQUUgIDB4RkMwMDAwMDAKICNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9O
UEFFICAgIDB4RkM0MDAwMDAKICNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAg
IFwKLSAgICBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSkK
KyAgICB4ZW5fbWtfdWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQogI2RlZmlu
ZSBNQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgICAgXAotICAgIG1rX3Vuc2lnbmVkX2xvbmco
X19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUpCisgICAgeGVuX21rX3Vsb25nKF9fTUFDSDJQ
SFlTX1ZJUlRfU1RBUlRfTk9OUEFFKQogI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFF
ICAgICAgXAotICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFF
KQorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9OT05QQUUpCiAKICNkZWZp
bmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFCiAj
ZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFF
CiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EICAgIF9fTUFDSDJQSFlTX1ZJUlRfRU5EX1BB
RQogCiAjaWZuZGVmIEhZUEVSVklTT1JfVklSVF9TVEFSVAotI2RlZmluZSBIWVBFUlZJU09SX1ZJ
UlRfU1RBUlQgbWtfdW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNkZWZp
bmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9T
VEFSVCkKICNlbmRpZgogCi0jZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICBta191bnNpZ25l
ZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VO
RCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQorI2RlZmluZSBNQUNI
MlBIWVNfVklSVF9TVEFSVCAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VORCAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9FTkQpCiAjZGVmaW5lIE1BQ0gyUEhZU19OUl9FTlRSSUVTICAoKE1BQ0gyUEhZU19WSVJUX0VO
RC1NQUNIMlBIWVNfVklSVF9TVEFSVCk+PjIpCiAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBw
aW5nCiAjZGVmaW5lIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nICgoVUxPTkdfUFRSICopTUFDSDJQ
SFlTX1ZJUlRfU1RBUlQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYv
eGVuLXg4Nl82NC5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaApp
bmRleCBiOTllYWFiLi4yZjUzZjY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl82NC5oCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4t
eDg2XzY0LmgKQEAgLTc2LDEyICs3NiwxMiBAQAogI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VO
RCAgICAweEZGRkY4MDQwMDAwMDAwMDAKIAogI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQK
LSNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIEhZUEVSVklTT1JfVklSVF9FTkQgICBta191bnNpZ25l
ZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NU
QVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNkZWZpbmUgSFlQRVJW
SVNPUl9WSVJUX0VORCAgIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9FTkQpCiAjZW5k
aWYKIAotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgbWtfdW5zaWduZWRfbG9uZyhfX01B
Q0gyUEhZU19WSVJUX1NUQVJUKQotI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkQgICAgbWtfdW5z
aWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRf
U1RBUlQgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUKQorI2RlZmluZSBNQUNI
MlBIWVNfVklSVF9FTkQgICAgeGVuX21rX3Vsb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQogI2Rl
ZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNIMlBIWVNfVklSVF9FTkQtTUFDSDJQSFlT
X1ZJUlRfU1RBUlQpPj4zKQogI2lmbmRlZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwogI2RlZmlu
ZSBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZyAoKFVMT05HX1BUUiAqKUhZUEVSVklTT1JfVklSVF9T
VEFSVCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaAppbmRleCA1OGM2MTdmLi4wNWRiNzdmIDEw
MDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKKysrIGIvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oCkBAIC01NCw5ICs1NCw2IEBACiAjZGVmaW5lIFhF
Tl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFORExFKG5hbWUpCiAj
ZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dVRVNUX0hBTkRMRShu
YW1lKQogI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpICBkbyB7ICho
bmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCi0jaWZkZWYgX19YRU5fVE9PTFNfXwotI2RlZmluZSBn
ZXRfeGVuX2d1ZXN0X2hhbmRsZSh2YWwsIGhuZCkgIGRvIHsgdmFsID0gKGhuZCkucDsgfSB3aGls
ZSAoMCkKLSNlbmRpZgogI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZShobmQsIHZhbCkgc2V0
X3hlbl9ndWVzdF9oYW5kbGVfcmF3KGhuZCwgdmFsKQogCiAjaWYgZGVmaW5lZChfX2kzODZfXykK
QEAgLTI2Miw2ICsyNTksNDAgQEAgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gewogfTsKIHR5cGVk
ZWYgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gYXJjaF9zaGFyZWRfaW5mb190OwogCisjaWYgZGVm
aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisvKgorICogc3RydWN0IHhl
bl9hcmNoX2RvbWFpbmNvbmZpZydzIEFCSSBpcyBjb3ZlcmVkIGJ5CisgKiBYRU5fRE9NQ1RMX0lO
VEVSRkFDRV9WRVJTSU9OLgorICovCitzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIHsKKyNk
ZWZpbmUgX1hFTl9YODZfRU1VX0xBUElDICAgICAgICAgIDAKKyNkZWZpbmUgWEVOX1g4Nl9FTVVf
TEFQSUMgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0xBUElDKQorI2RlZmluZSBfWEVOX1g4
Nl9FTVVfSFBFVCAgICAgICAgICAgMQorI2RlZmluZSBYRU5fWDg2X0VNVV9IUEVUICAgICAgICAg
ICAgKDFVPDxfWEVOX1g4Nl9FTVVfSFBFVCkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1BNICAgICAg
ICAgICAgIDIKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUE0gICAgICAgICAgICAgICgxVTw8X1hFTl9Y
ODZfRU1VX1BNKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgMworI2RlZmlu
ZSBYRU5fWDg2X0VNVV9SVEMgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUlRDKQorI2Rl
ZmluZSBfWEVOX1g4Nl9FTVVfSU9BUElDICAgICAgICAgNAorI2RlZmluZSBYRU5fWDg2X0VNVV9J
T0FQSUMgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9BUElDKQorI2RlZmluZSBfWEVOX1g4
Nl9FTVVfUElDICAgICAgICAgICAgNQorI2RlZmluZSBYRU5fWDg2X0VNVV9QSUMgICAgICAgICAg
ICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElDKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfVkdBICAgICAg
ICAgICAgNgorI2RlZmluZSBYRU5fWDg2X0VNVV9WR0EgICAgICAgICAgICAgKDFVPDxfWEVOX1g4
Nl9FTVVfVkdBKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgNworI2RlZmlu
ZSBYRU5fWDg2X0VNVV9JT01NVSAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfSU9NTVUpCisj
ZGVmaW5lIF9YRU5fWDg2X0VNVV9QSVQgICAgICAgICAgICA4CisjZGVmaW5lIFhFTl9YODZfRU1V
X1BJVCAgICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9QSVQpCisKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfQUxMICAgICAgICAgICAgIChYRU5fWDg2X0VNVV9MQVBJQyB8IFhFTl9YODZfRU1VX0hQ
RVQgfCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1V
X1BNIHwgWEVOX1g4Nl9FTVVfUlRDIHwgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWEVOX1g4Nl9FTVVfSU9BUElDIHwgWEVOX1g4Nl9FTVVfUElDIHwgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fWDg2X0VNVV9WR0EgfCBYRU5f
WDg2X0VNVV9JT01NVSB8ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhFTl9YODZfRU1VX1BJVCkKKyAgICB1aW50MzJfdCBlbXVsYXRpb25fZmxhZ3M7Cit9OworI2Vu
ZGlmCisKICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNs
dWRlL3hlbi9wdWJsaWMvZXJybm8uaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5oCmluZGV4
IGM2NDQ2MzMuLmU0NDAyMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5o
CisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9lcnJuby5oCkBAIC0xLDI2ICsxLDYwIEBACisvKgor
ICogVGhlcmUgYXJlIHR3byBleHBlY3RlZCB3YXlzIG9mIGluY2x1ZGluZyB0aGlzIGhlYWRlci4K
KyAqCisgKiAxKSBUaGUgImRlZmF1bHQiIGNhc2UgKGV4cGVjdGVkIGZyb20gdG9vbHMgZXRjKS4K
KyAqCisgKiBTaW1wbHkgI2luY2x1ZGUgPHB1YmxpYy9lcnJuby5oPgorICoKKyAqIEluIHRoaXMg
Y2lyY3Vtc3RhbmNlLCBub3JtYWwgaGVhZGVyIGd1YXJkcyBhcHBseSBhbmQgdGhlIGluY2x1ZGVy
IHNoYWxsIGdldAorICogYW4gZW51bWVyYXRpb24gaW4gdGhlIFhFTl94eHggbmFtZXNwYWNlLCBh
cHByb3ByaWF0ZSBmb3IgQyBvciBhc3NlbWJseS4KKyAqCisgKiAyKSBUaGUgc3BlY2lhbCBjYXNl
IHdoZXJlIHRoZSBpbmNsdWRlciBwcm92aWRlcyBhIFhFTl9FUlJOTygpIGluIHNjb3BlLgorICoK
KyAqIEluIHRoaXMgY2FzZSwgbm8gaW5jbHVzaW9uIGd1YXJkcyBhcHBseSBhbmQgdGhlIGNhbGxl
ciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHRoZWlyIFhFTl9FUlJOTygpIGJlaW5nIGFwcHJvcHJp
YXRlIGluIHRoZSBpbmNsdWRlZCBjb250ZXh0LiAgVGhlIGhlYWRlcgorICogd2lsbCB1bmlsYXRl
cmFsbHkgI3VuZGVmIFhFTl9FUlJOTygpLgorICovCisKKyNpZm5kZWYgWEVOX0VSUk5PCisKKy8q
CisgKiBJbmNsdWRlciBoYXMgbm90IHByb3ZpZGVkIGEgY3VzdG9tIFhFTl9FUlJOTygpLiAgQXJy
YW5nZSBmb3Igbm9ybWFsIGhlYWRlcgorICogZ3VhcmRzLCBhbiBhdXRvbWF0aWMgZW51bSAoZm9y
IEMgY29kZSkgYW5kIGNvbnN0YW50cyBpbiB0aGUgWEVOX3h4eAorICogbmFtZXNwYWNlLgorICov
CiAjaWZuZGVmIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0VS
Uk5PX0hfXworCisjZGVmaW5lIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUKIAogI2lmbmRlZiBf
X0FTU0VNQkxZX18KIAogI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIFhFTl8jI25hbWUg
PSB2YWx1ZSwKIGVudW0geGVuX2Vycm5vIHsKIAotI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLwor
I2VsaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKIAogI2RlZmluZSBY
RU5fRVJSTk8obmFtZSwgdmFsdWUpIC5lcXUgWEVOXyMjbmFtZSwgdmFsdWUKIAogI2VuZGlmIC8q
IF9fQVNTRU1CTFlfXyAqLwogCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0VSUk5PX0hfXyAqLwor
I2VuZGlmIC8qICFYRU5fRVJSTk8gKi8KKwogLyogYCBlbnVtIG5lZ19lcnJub3ZhbCB7ICBbIC1F
Zm9vIGZvciBlYWNoIEVmb28gaW4gdGhlIGxpc3QgYmVsb3cgXSAgfSAqLwogLyogYCBlbnVtIGVy
cm5vdmFsIHsgKi8KIAotI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19FUlJOT19IX18gKi8KLQogI2lm
ZGVmIFhFTl9FUlJOTwogCiAvKgogICogVmFsdWVzIG9yaWdpbmF0aW5nIGZyb20geDg2IExpbnV4
LiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgcmVzcGVjdGl2ZQogICogdmFsdWVzIHdoZW4gYWRkaW5n
IG5ldyBkZWZpbml0aW9ucyBoZXJlLgorICoKKyAqIFRoZSBzZXQgb2YgaWRlbnRpZmllcnMgdG8g
YmUgYWRkZWQgaGVyZSBzaG91bGRuJ3QgZXh0ZW5kIGJleW9uZCB3aGF0CisgKiBQT1NJWCBtYW5k
YXRlcyAoc2VlIGUuZy4KKyAqIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85
Njk5OTE5Nzk5L2Jhc2VkZWZzL2Vycm5vLmguaHRtbCkKKyAqIHdpdGggdGhlIGV4Y2VwdGlvbiB0
aGF0IHdlIHN1cHBvcnQgc29tZSBvcHRpb25hbCAoWFNSKSB2YWx1ZXMKKyAqIHNwZWNpZmllZCB0
aGVyZSAoYnV0IG5vIG5ldyBvbmVzIHNob3VsZCBiZSBhZGRlZCkuCiAgKi8KIAogWEVOX0VSUk5P
KEVQRVJNLAkgMSkJLyogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgKi8KQEAgLTM2LDYgKzcwLDcg
QEAgWEVOX0VSUk5PKEVOT0VYRUMsCSA4KQkvKiBFeGVjIGZvcm1hdCBlcnJvciAqLwogWEVOX0VS
Uk5PKEVCQURGLAkgOSkJLyogQmFkIGZpbGUgbnVtYmVyICovCiBYRU5fRVJSTk8oRUNISUxELAkx
MCkJLyogTm8gY2hpbGQgcHJvY2Vzc2VzICovCiBYRU5fRVJSTk8oRUFHQUlOLAkxMSkJLyogVHJ5
IGFnYWluICovCitYRU5fRVJSTk8oRVdPVUxEQkxPQ0ssCTExKQkvKiBPcGVyYXRpb24gd291bGQg
YmxvY2suICBBbGlhc2VzIEVBR0FJTiAqLwogWEVOX0VSUk5PKEVOT01FTSwJMTIpCS8qIE91dCBv
ZiBtZW1vcnkgKi8KIFhFTl9FUlJOTyhFQUNDRVMsCTEzKQkvKiBQZXJtaXNzaW9uIGRlbmllZCAq
LwogWEVOX0VSUk5PKEVGQVVMVCwJMTQpCS8qIEJhZCBhZGRyZXNzICovCkBAIC00MywxOSArNzgs
MjEgQEAgWEVOX0VSUk5PKEVCVVNZLAkxNikJLyogRGV2aWNlIG9yIHJlc291cmNlIGJ1c3kgKi8K
IFhFTl9FUlJOTyhFRVhJU1QsCTE3KQkvKiBGaWxlIGV4aXN0cyAqLwogWEVOX0VSUk5PKEVYREVW
LAkxOCkJLyogQ3Jvc3MtZGV2aWNlIGxpbmsgKi8KIFhFTl9FUlJOTyhFTk9ERVYsCTE5KQkvKiBO
byBzdWNoIGRldmljZSAqLworWEVOX0VSUk5PKEVJU0RJUiwJMjEpCS8qIElzIGEgZGlyZWN0b3J5
ICovCiBYRU5fRVJSTk8oRUlOVkFMLAkyMikJLyogSW52YWxpZCBhcmd1bWVudCAqLwogWEVOX0VS
Uk5PKEVORklMRSwJMjMpCS8qIEZpbGUgdGFibGUgb3ZlcmZsb3cgKi8KIFhFTl9FUlJOTyhFTUZJ
TEUsCTI0KQkvKiBUb28gbWFueSBvcGVuIGZpbGVzICovCiBYRU5fRVJSTk8oRU5PU1BDLAkyOCkJ
LyogTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UgKi8KK1hFTl9FUlJOTyhFUk9GUywJMzApCS8qIFJl
YWQtb25seSBmaWxlIHN5c3RlbSAqLwogWEVOX0VSUk5PKEVNTElOSywJMzEpCS8qIFRvbyBtYW55
IGxpbmtzICovCiBYRU5fRVJSTk8oRURPTSwJCTMzKQkvKiBNYXRoIGFyZ3VtZW50IG91dCBvZiBk
b21haW4gb2YgZnVuYyAqLwogWEVOX0VSUk5PKEVSQU5HRSwJMzQpCS8qIE1hdGggcmVzdWx0IG5v
dCByZXByZXNlbnRhYmxlICovCiBYRU5fRVJSTk8oRURFQURMSywJMzUpCS8qIFJlc291cmNlIGRl
YWRsb2NrIHdvdWxkIG9jY3VyICovCitYRU5fRVJSTk8oRURFQURMT0NLLAkzNSkJLyogUmVzb3Vy
Y2UgZGVhZGxvY2sgd291bGQgb2NjdXIuIEFsaWFzZXMgRURFQURMSyAqLwogWEVOX0VSUk5PKEVO
QU1FVE9PTE9ORywJMzYpCS8qIEZpbGUgbmFtZSB0b28gTE9OR19QVFIgKi8KIFhFTl9FUlJOTyhF
Tk9MQ0ssCTM3KQkvKiBObyByZWNvcmQgbG9ja3MgYXZhaWxhYmxlICovCitYRU5fRVJSTk8oRU5P
VEVNUFRZLAkzOSkJLyogRGlyZWN0b3J5IG5vdCBlbXB0eSAqLwogWEVOX0VSUk5PKEVOT1NZUywJ
MzgpCS8qIEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCAqLwotWEVOX0VSUk5PKEVCQURSUUMsCTU2
KQkvKiBJbnZhbGlkIHJlcXVlc3QgY29kZSAqLwotWEVOX0VSUk5PKEVCQURTTFQsCTU3KQkvKiBJ
bnZhbGlkIHNsb3QgKi8KIFhFTl9FUlJOTyhFTk9EQVRBLAk2MSkJLyogTm8gZGF0YSBhdmFpbGFi
bGUgKi8KIFhFTl9FUlJOTyhFVElNRSwJNjIpCS8qIFRpbWVyIGV4cGlyZWQgKi8KIFhFTl9FUlJO
TyhFQkFETVNHLAk3NCkJLyogTm90IGEgZGF0YSBtZXNzYWdlICovCkBAIC02NCwzMCArMTAxLDI0
IEBAIFhFTl9FUlJOTyhFSUxTRVEsCTg0KQkvKiBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UgKi8KICNp
ZmRlZiBfX1hFTl9fIC8qIEludGVybmFsIG9ubHksIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRv
IHRoZSBndWVzdC4gKi8KIFhFTl9FUlJOTyhFUkVTVEFSVCwJODUpCS8qIEludGVycnVwdGVkIHN5
c3RlbSBjYWxsIHNob3VsZCBiZSByZXN0YXJ0ZWQgKi8KICNlbmRpZgotWEVOX0VSUk5PKEVVU0VS
UywJODcpCS8qIFRvbyBtYW55IHVzZXJzICovCitYRU5fRVJSTk8oRU5PVFNPQ0ssCTg4KQkvKiBT
b2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQgKi8KIFhFTl9FUlJOTyhFT1BOT1RTVVBQLAk5
NSkJLyogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50ICovCiBY
RU5fRVJSTk8oRUFERFJJTlVTRSwJOTgpCS8qIEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UgKi8KIFhF
Tl9FUlJOTyhFQUREUk5PVEFWQUlMLCA5OSkJLyogQ2Fubm90IGFzc2lnbiByZXF1ZXN0ZWQgYWRk
cmVzcyAqLwogWEVOX0VSUk5PKEVOT0JVRlMsCTEwNSkJLyogTm8gYnVmZmVyIHNwYWNlIGF2YWls
YWJsZSAqLwogWEVOX0VSUk5PKEVJU0NPTk4sCTEwNikJLyogVHJhbnNwb3J0IGVuZHBvaW50IGlz
IGFscmVhZHkgY29ubmVjdGVkICovCiBYRU5fRVJSTk8oRU5PVENPTk4sCTEwNykJLyogVHJhbnNw
b3J0IGVuZHBvaW50IGlzIG5vdCBjb25uZWN0ZWQgKi8KLVhFTl9FUlJOTyhFU0hVVERPV04sCTEw
OCkJLyogQ2Fubm90IHNlbmQgYWZ0ZXIgdHJhbnNwb3J0IGVuZHBvaW50IHNodXRkb3duICovCi1Y
RU5fRVJSTk8oRVRPT01BTllSRUZTLAkxMDkpCS8qIFRvbyBtYW55IHJlZmVyZW5jZXM6IGNhbm5v
dCBzcGxpY2UgKi8KIFhFTl9FUlJOTyhFVElNRURPVVQsCTExMCkJLyogQ29ubmVjdGlvbiB0aW1l
ZCBvdXQgKi8KIAogI3VuZGVmIFhFTl9FUlJOTwogI2VuZGlmIC8qIFhFTl9FUlJOTyAqLwotCi0j
aWZuZGVmIF9fWEVOX1BVQkxJQ19FUlJOT19IX18KLSNkZWZpbmUgX19YRU5fUFVCTElDX0VSUk5P
X0hfXwotCiAvKiBgIH0gKi8KIAorLyogQ2xlYW4gdXAgZnJvbSBhIGRlZmF1bHQgaW5jbHVkZS4g
IENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCisjaWZkZWYgWEVOX0VSUk5PX0RFRkFVTFRfSU5D
TFVERQorI3VuZGVmIFhFTl9FUlJOT19ERUZBVUxUX0lOQ0xVREUKICNpZm5kZWYgX19BU1NFTUJM
WV9fCiB9OwogI2VuZGlmCiAKLSNkZWZpbmUJWEVOX0VXT1VMREJMT0NLCVhFTl9FQUdBSU4JLyog
T3BlcmF0aW9uIHdvdWxkIGJsb2NrICovCi0jZGVmaW5lCVhFTl9FREVBRExPQ0sJWEVOX0VERUFE
TEsJLyogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIgKi8KLQotI2VuZGlmIC8qICBfX1hF
Tl9QVUJMSUNfRVJSTk9fSF9fICovCisjZW5kaWYgLyogWEVOX0VSUk5PX0RFRkFVTFRfSU5DTFVE
RSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL2dyYW50X3RhYmxlLmggYi9pbmNs
dWRlL3hlbi9wdWJsaWMvZ3JhbnRfdGFibGUuaAppbmRleCBmMWI3OTE3Li5iNjhmZmRkIDEwMDY0
NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRlL3hl
bi9wdWJsaWMvZ3JhbnRfdGFibGUuaApAQCAtNDMsNyArNDMsNyBAQAogICogdGFibGUgYXJlIGlk
ZW50aWZpZWQgYnkgZ3JhbnQgcmVmZXJlbmNlcy4gQSBncmFudCByZWZlcmVuY2UgaXMgYW4KICAq
IGludGVnZXIsIHdoaWNoIGluZGV4ZXMgaW50byB0aGUgZ3JhbnQgdGFibGUuIEl0IGFjdHMgYXMg
YQogICogY2FwYWJpbGl0eSB3aGljaCB0aGUgZ3JhbnRlZSBjYW4gdXNlIHRvIHBlcmZvcm0gb3Bl
cmF0aW9ucyBvbiB0aGUKLSAqIGdyYW50ZXLigJlzIG1lbW9yeS4KKyAqIGdyYW50ZXIncyBtZW1v
cnkuCiAgKgogICogVGhpcyBjYXBhYmlsaXR5LWJhc2VkIHN5c3RlbSBhbGxvd3Mgc2hhcmVkLW1l
bW9yeSBjb21tdW5pY2F0aW9ucwogICogYmV0d2VlbiB1bnByaXZpbGVnZWQgZG9tYWlucy4gQSBn
cmFudCByZWZlcmVuY2UgYWxzbyBlbmNhcHN1bGF0ZXMKQEAgLTEzNCw4ICsxMzQsMTAgQEAgc3Ry
dWN0IGdyYW50X2VudHJ5X3YxIHsKICAgICAvKiBUaGUgZG9tYWluIGJlaW5nIGdyYW50ZWQgZm9y
ZWlnbiBwcml2aWxlZ2VzLiBbR1NUXSAqLwogICAgIGRvbWlkX3QgIGRvbWlkOwogICAgIC8qCi0g
ICAgICogR1RGX3Blcm1pdF9hY2Nlc3M6IEZyYW1lIHRoYXQgQGRvbWlkIGlzIGFsbG93ZWQgdG8g
bWFwIGFuZCBhY2Nlc3MuIFtHU1RdCi0gICAgICogR1RGX2FjY2VwdF90cmFuc2ZlcjogRnJhbWUg
d2hvc2Ugb3duZXJzaGlwIHRyYW5zZmVycmVkIGJ5IEBkb21pZC4gW1hFTl0KKyAgICAgKiBHVEZf
cGVybWl0X2FjY2VzczogR0ZOIHRoYXQgQGRvbWlkIGlzIGFsbG93ZWQgdG8gbWFwIGFuZCBhY2Nl
c3MuIFtHU1RdCisgICAgICogR1RGX2FjY2VwdF90cmFuc2ZlcjogR0ZOIHRoYXQgQGRvbWlkIGlz
IGFsbG93ZWQgdG8gdHJhbnNmZXIgaW50by4gW0dTVF0KKyAgICAgKiBHVEZfdHJhbnNmZXJfY29t
cGxldGVkOiBNRk4gd2hvc2Ugb3duZXJzaGlwIHRyYW5zZmVycmVkIGJ5IEBkb21pZAorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgIChub24tdHJhbnNsYXRlZCBndWVzdHMgb25seSkuIFtY
RU5dCiAgICAgICovCiAgICAgdWludDMyX3QgZnJhbWU7CiB9OwpAQCAtMzIxLDcgKzMyMyw3IEBA
IHR5cGVkZWYgdWludDMyX3QgZ3JhbnRfaGFuZGxlX3Q7CiAvKgogICogR05UVEFCT1BfbWFwX2dy
YW50X3JlZjogTWFwIHRoZSBncmFudCBlbnRyeSAoPGRvbT4sPHJlZj4pIGZvciBhY2Nlc3MKICAq
IGJ5IGRldmljZXMgYW5kL29yIGhvc3QgQ1BVcy4gSWYgc3VjY2Vzc2Z1bCwgPGhhbmRsZT4gaXMg
YSB0cmFja2luZyBudW1iZXIKLSAqIHRoYXQgbXVzdCBiZSBwcmVzZW50ZWQgbGF0ZXIgdG8gZGVz
dHJveSB0aGUgbWFwcGluZyhzKS4gT24gZXJyb3IsIDxoYW5kbGU+CisgKiB0aGF0IG11c3QgYmUg
cHJlc2VudGVkIGxhdGVyIHRvIGRlc3Ryb3kgdGhlIG1hcHBpbmcocykuIE9uIGVycm9yLCA8c3Rh
dHVzPgogICogaXMgYSBuZWdhdGl2ZSBzdGF0dXMgY29kZS4KICAqIE5PVEVTOgogICogIDEuIElm
IEdOVE1BUF9kZXZpY2VfbWFwIGlzIHNwZWNpZmllZCB0aGVuIDxkZXZfYnVzX2FkZHI+IGlzIHRo
ZSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvaW8vbmV0aWYuaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy9pby9uZXRpZi5oCmluZGV4IDg4N2E4YTcuLmU0N2VmYjggMTAwNjQ0
Ci0tLSBhL2luY2x1ZGUveGVuL3B1YmxpYy9pby9uZXRpZi5oCisrKyBiL2luY2x1ZGUveGVuL3B1
YmxpYy9pby9uZXRpZi5oCkBAIC0xMzYsMjAgKzEzNiw1MTIgQEAKICAqLwogCiAvKgotICogVGhp
cyBpcyB0aGUgJ3dpcmUnIGZvcm1hdCBmb3IgcGFja2V0czoKLSAqICBSZXF1ZXN0IDE6IG5ldGlm
X3R4X3JlcXVlc3RfdCAtLSBORVRUWEZfKiAoYW55IGZsYWdzKQotICogW1JlcXVlc3QgMjogbmV0
aWZfZXh0cmFfaW5mb190XSAob25seSBpZiByZXF1ZXN0IDEgaGFzIE5FVFRYRl9leHRyYV9pbmZv
KQotICogW1JlcXVlc3QgMzogbmV0aWZfZXh0cmFfaW5mb190XSAob25seSBpZiByZXF1ZXN0IDIg
aGFzIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQotICogIFJlcXVlc3QgNDogbmV0aWZfdHhfcmVxdWVz
dF90IC0tIE5FVFRYRl9tb3JlX2RhdGEKLSAqICBSZXF1ZXN0IDU6IG5ldGlmX3R4X3JlcXVlc3Rf
dCAtLSBORVRUWEZfbW9yZV9kYXRhCi0gKiAgLi4uCi0gKiAgUmVxdWVzdCBOOiBuZXRpZl90eF9y
ZXF1ZXN0X3QgLS0gMAorICogImZlYXR1cmUtbXVsdGljYXN0LWNvbnRyb2wiIGFuZCAiZmVhdHVy
ZS1keW5hbWljLW11bHRpY2FzdC1jb250cm9sIgorICogYWR2ZXJ0aXNlIHRoZSBjYXBhYmlsaXR5
IHRvIGZpbHRlciBldGhlcm5ldCBtdWx0aWNhc3QgcGFja2V0cyBpbiB0aGUKKyAqIGJhY2tlbmQu
IElmIHRoZSBmcm9udGVuZCB3aXNoZXMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBmZWF0dXJl
IHRoZW4KKyAqIGl0IG1heSBzZXQgInJlcXVlc3QtbXVsdGljYXN0LWNvbnRyb2wiLiBJZiB0aGUg
YmFja2VuZCBvbmx5IGFkdmVydGlzZXMKKyAqICJmZWF0dXJlLW11bHRpY2FzdC1jb250cm9sIiB0
aGVuICJyZXF1ZXN0LW11bHRpY2FzdC1jb250cm9sIiBtdXN0IGJlIHNldAorICogYmVmb3JlIHRo
ZSBmcm9udGVuZCBtb3ZlcyBpbnRvIHRoZSBjb25uZWN0ZWQgc3RhdGUuIFRoZSBiYWNrZW5kIHdp
bGwKKyAqIHNhbXBsZSB0aGUgdmFsdWUgb24gdGhpcyBzdGF0ZSB0cmFuc2l0aW9uIGFuZCBhbnkg
c3Vic2VxdWVudCBjaGFuZ2UgaW4KKyAqIHZhbHVlIHdpbGwgaGF2ZSBubyBlZmZlY3QuIEhvd2V2
ZXIsIGlmIHRoZSBiYWNrZW5kIGFsc28gYWR2ZXJ0aXNlcworICogImZlYXR1cmUtZHluYW1pYy1t
dWx0aWNhc3QtY29udHJvbCIgdGhlbiAicmVxdWVzdC1tdWx0aWNhc3QtY29udHJvbCIKKyAqIG1h
eSBiZSBzZXQgYnkgdGhlIGZyb250ZW5kIGF0IGFueSB0aW1lLiBJbiB0aGlzIGNhc2UsIHRoZSBi
YWNrZW5kIHdpbGwKKyAqIHdhdGNoIHRoZSB2YWx1ZSBhbmQgcmUtc2FtcGxlIG9uIHdhdGNoIGV2
ZW50cy4KKyAqCisgKiBJZiB0aGUgc2FtcGxlZCB2YWx1ZSBvZiAicmVxdWVzdC1tdWx0aWNhc3Qt
Y29udHJvbCIgaXMgc2V0IHRoZW4gdGhlCisgKiBiYWNrZW5kIHRyYW5zbWl0IHNpZGUgc2hvdWxk
IG5vIExPTkdfUFRSZXIgZmxvb2QgbXVsdGljYXN0IHBhY2tldHMgdG8gdGhlCisgKiBmcm9udGVu
ZCwgaXQgc2hvdWxkIGluc3RlYWQgZHJvcCBhbnkgbXVsdGljYXN0IHBhY2tldCB0aGF0IGRvZXMg
bm90CisgKiBtYXRjaCBpbiBhIGZpbHRlciBsaXN0LgorICogVGhlIGxpc3QgaXMgYW1lbmRlZCBi
eSB0aGUgZnJvbnRlbmQgYnkgc2VuZGluZyBkdW1teSB0cmFuc21pdCByZXF1ZXN0cworICogY29u
dGFpbmluZyBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF97QURELERFTH0gZXh0cmEtaW5mbyBm
cmFnbWVudHMgYXMKKyAqIHNwZWNpZmllZCBiZWxvdy4KKyAqIE5vdGUgdGhhdCB0aGUgZmlsdGVy
IGxpc3QgbWF5IGJlIGFtZW5kZWQgZXZlbiBpZiB0aGUgc2FtcGxlZCB2YWx1ZSBvZgorICogInJl
cXVlc3QtbXVsdGljYXN0LWNvbnRyb2wiIGlzIG5vdCBzZXQsIGhvd2V2ZXIgdGhlIGZpbHRlciBz
aG91bGQgb25seQorICogYmUgYXBwbGllZCBpZiBpdCBpcyBzZXQuCisgKi8KKworLyoKKyAqIENv
bnRyb2wgcmluZworICogPT09PT09PT09PT09CisgKgorICogU29tZSBmZWF0dXJlcywgc3VjaCBh
cyBoYXNoaW5nIChkZXRhaWxlZCBiZWxvdyksIHJlcXVpcmUgYQorICogc2lnbmlmaWNhbnQgYW1v
dW50IG9mIG91dC1vZi1iYW5kIGRhdGEgdG8gYmUgcGFzc2VkIGZyb20gZnJvbnRlbmQgdG8KKyAq
IGJhY2tlbmQuIFVzZSBvZiB4ZW5zdG9yZSBpcyBub3Qgc3VpdGFibGUgZm9yIGxhcmdlIHF1YW50
aXRpZXMgb2YgZGF0YQorICogYmVjYXVzZSBvZiBxdW90YSBsaW1pdGF0aW9ucyBhbmQgc28gYSBk
ZWRpY2F0ZWQgJ2NvbnRyb2wgcmluZycgaXMgdXNlZC4KKyAqIFRoZSBhYmlsaXR5IG9mIHRoZSBi
YWNrZW5kIHRvIHVzZSBhIGNvbnRyb2wgcmluZyBpcyBhZHZlcnRpc2VkIGJ5CisgKiBzZXR0aW5n
OgorICoKKyAqIC9sb2NhbC9kb21haW4vWC9iYWNrZW5kLzxkb21pZD4vPHZpZj4vZmVhdHVyZS1j
dHJsLXJpbmcgPSAiMSIKKyAqCisgKiBUaGUgZnJvbnRlbmQgcHJvdmlkZXMgYSBjb250cm9sIHJp
bmcgdG8gdGhlIGJhY2tlbmQgYnkgc2V0dGluZzoKKyAqCisgKiAvbG9jYWwvZG9tYWluLzxkb21p
ZD4vZGV2aWNlL3ZpZi88dmlmPi9jdHJsLXJpbmctcmVmID0gPGdyZWY+CisgKiAvbG9jYWwvZG9t
YWluLzxkb21pZD4vZGV2aWNlL3ZpZi88dmlmPi9ldmVudC1jaGFubmVsLWN0cmwgPSA8cG9ydD4K
KyAqCisgKiB3aGVyZSA8Z3JlZj4gaXMgdGhlIGdyYW50IHJlZmVyZW5jZSBvZiB0aGUgc2hhcmVk
IHBhZ2UgdXNlZCB0bworICogaW1wbGVtZW50IHRoZSBjb250cm9sIHJpbmcgYW5kIDxwb3J0PiBp
cyBhbiBldmVudCBjaGFubmVsIHRvIGJlIHVzZWQKKyAqIGFzIGEgbWFpbGJveCBpbnRlcnJ1cHQu
IFRoZXNlIGtleXMgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBmcm9udGVuZAorICogbW92ZXMgaW50
byB0aGUgY29ubmVjdGVkIHN0YXRlLgorICoKKyAqIFRoZSBjb250cm9sIHJpbmcgdXNlcyBhIGZp
eGVkIHJlcXVlc3QvcmVzcG9uc2UgbWVzc2FnZSBzaXplIGFuZCBpcworICogYmFsYW5jZWQgKGku
ZS4gb25lIHJlcXVlc3QgdG8gb25lIHJlc3BvbnNlKSwgc28gb3BlcmF0aW9uYWxseSBpdCBpcyBt
dWNoCisgKiB0aGUgc2FtZSBhcyBhIHRyYW5zbWl0IG9yIHJlY2VpdmUgcmluZy4KKyAqIE5vdGUg
dGhhdCB0aGVyZSBpcyBubyByZXF1aXJlbWVudCB0aGF0IHJlc3BvbnNlcyBhcmUgaXNzdWVkIGlu
IHRoZSBzYW1lCisgKiBvcmRlciBhcyByZXF1ZXN0cy4KKyAqLworCisvKgorICogSGFzaCB0eXBl
cworICogPT09PT09PT09PQorICoKKyAqIEZvciB0aGUgcHVycG9zZXMgb2YgdGhlIGRlZmluaXRp
b25zIGJlbG93LCAnUGFja2V0W10nIGlzIGFuIGFycmF5IG9mCisgKiBvY3RldHMgY29udGFpbmlu
ZyBhbiBJUCBwYWNrZXQgd2l0aG91dCBvcHRpb25zLCAnQXJyYXlbWC4uWV0nIG1lYW5zIGEKKyAq
IHN1Yi1hcnJheSBvZiAnQXJyYXknIGNvbnRhaW5pbmcgYnl0ZXMgWCB0aHJ1IFkgaW5jbHVzaXZl
LCBhbmQgJysnIGlzCisgKiB1c2VkIHRvIGluZGljYXRlIGNvbmNhdGVuYXRpb24gb2YgYXJyYXlz
LgorICovCisKKy8qCisgKiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24gNCBo
ZWFkZXIgYXMgZm9sbG93czoKKyAqCisgKiBCdWZmZXJbMC4uOF0gPSBQYWNrZXRbMTIuLjE1XSAo
c291cmNlIGFkZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgIFBhY2tldFsxNi4uMTldIChkZXN0
aW5hdGlvbiBhZGRyZXNzKQorICoKKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCA4KQorICovCisj
ZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNCAwCisjZGVmaW5lIFhFTl9ORVRJ
Rl9DVFJMX0hBU0hfVFlQRV9JUFY0IFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxfSEFTSF9U
WVBFX0lQVjQpCisKKy8qCisgKiBBIGhhc2ggY2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24g
NCBoZWFkZXIgYW5kIFRDUCBoZWFkZXIgYXMKKyAqIGZvbGxvd3M6CisgKgorICogQnVmZmVyWzAu
LjEyXSA9IFBhY2tldFsxMi4uMTVdIChzb3VyY2UgYWRkcmVzcykgKworICogICAgICAgICAgICAg
ICAgIFBhY2tldFsxNi4uMTldIChkZXN0aW5hdGlvbiBhZGRyZXNzKSArCisgKiAgICAgICAgICAg
ICAgICAgUGFja2V0WzIwLi4yMV0gKHNvdXJjZSBwb3J0KSArCisgKiAgICAgICAgICAgICAgICAg
UGFja2V0WzIyLi4yM10gKGRlc3RpbmF0aW9uIHBvcnQpCisgKgorICogUmVzdWx0ID0gSGFzaChC
dWZmZXIsIDEyKQogICovCisjZGVmaW5lIF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9U
Q1AgMQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1AgXAorICAgICgx
IDw8IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1ApCisKKy8qCisgKiBBIGhhc2gg
Y2FsY3VsYXRlZCBvdmVyIGFuIElQIHZlcnNpb24gNiBoZWFkZXIgYXMgZm9sbG93czoKKyAqCisg
KiBCdWZmZXJbMC4uMzJdID0gUGFja2V0WzguLjIzXSAgKHNvdXJjZSBhZGRyZXNzICkgKworICog
ICAgICAgICAgICAgICAgIFBhY2tldFsyNC4uMzldIChkZXN0aW5hdGlvbiBhZGRyZXNzKQorICoK
KyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCAzMikKKyAqLworI2RlZmluZSBfWEVOX05FVElGX0NU
UkxfSEFTSF9UWVBFX0lQVjYgMgorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBW
NiBcCisgICAgKDEgPDwgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2KQorCisvKgorICog
QSBoYXNoIGNhbGN1bGF0ZWQgb3ZlciBhbiBJUCB2ZXJzaW9uIDYgaGVhZGVyIGFuZCBUQ1AgaGVh
ZGVyIGFzCisgKiBmb2xsb3dzOgorICoKKyAqIEJ1ZmZlclswLi4zNl0gPSBQYWNrZXRbOC4uMjNd
ICAoc291cmNlIGFkZHJlc3MpICsKKyAqICAgICAgICAgICAgICAgICBQYWNrZXRbMjQuLjM5XSAo
ZGVzdGluYXRpb24gYWRkcmVzcykgKworICogICAgICAgICAgICAgICAgIFBhY2tldFs0MC4uNDFd
IChzb3VyY2UgcG9ydCkgKworICogICAgICAgICAgICAgICAgIFBhY2tldFs0Mi4uNDNdIChkZXN0
aW5hdGlvbiBwb3J0KQorICoKKyAqIFJlc3VsdCA9IEhhc2goQnVmZmVyLCAzNikKKyAqLworI2Rl
ZmluZSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjZfVENQIDMKKyNkZWZpbmUgWEVOX05F
VElGX0NUUkxfSEFTSF9UWVBFX0lQVjZfVENQIFwKKyAgICAoMSA8PCBfWEVOX05FVElGX0NUUkxf
SEFTSF9UWVBFX0lQVjZfVENQKQorCisvKgorICogSGFzaCBhbGdvcml0aG1zCisgKiA9PT09PT09
PT09PT09PT0KKyAqLworCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhNX05P
TkUgMAorCisvKgorICogVG9lcGxpdHogaGFzaDoKKyAqLworCisjZGVmaW5lIFhFTl9ORVRJRl9D
VFJMX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaIDEKKworLyoKKyAqIFRoaXMgYWxnb3JpdGhtIHVz
ZXMgYSAna2V5JyBhcyB3ZWxsIGFzIHRoZSBkYXRhIGJ1ZmZlciBpdHNlbGYuCisgKiAoQnVmZmVy
W10gYW5kIEtleVtdIGFyZSB0cmVhdGVkIGFzIHNoaWZ0LXJlZ2lzdGVycyB3aGVyZSB0aGUgTVNC
IG9mCisgKiBCdWZmZXIvS2V5WzBdIGlzIGNvbnNpZGVyZWQgJ2xlZnQtbW9zdCcgYW5kIHRoZSBM
U0Igb2YgQnVmZmVyL0tleVtOLTFdCisgKiBpcyB0aGUgJ3JpZ2h0LW1vc3QnKS4KKyAqCisgKiBW
YWx1ZSA9IDAKKyAqIEZvciBudW1iZXIgb2YgYml0cyBpbiBCdWZmZXJbXQorICogICAgSWYgKGxl
ZnQtbW9zdCBiaXQgb2YgQnVmZmVyW10gaXMgMSkKKyAqICAgICAgICBWYWx1ZSBePSBsZWZ0LW1v
c3QgMzIgYml0cyBvZiBLZXlbXQorICogICAgS2V5W10gPDwgMQorICogICAgQnVmZmVyW10gPDwg
MQorICoKKyAqIFRoZSBjb2RlIGJlbG93IGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZSB3aGVy
ZSBhbiBvcGVyYXRpbmcgc3lzdGVtCisgKiBkb2VzIG5vdCBhbHJlYWR5IHByb3ZpZGUgYW4gaW1w
bGVtZW50YXRpb24uCisgKi8KKyNpZmRlZiBYRU5fTkVUSUZfREVGSU5FX1RPRVBMSVRaCitzdGF0
aWMgdWludDMyX3QgeGVuX25ldGlmX3RvZXBsaXR6X2hhc2goY29uc3QgdWludDhfdCAqa2V5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXls
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf
dCAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBidWZsZW4pCit7CisgICAgdW5zaWduZWQgaW50IGtleWksIGJ1Zmk7CisgICAgdWludDY0
X3QgcHJlZml4ID0gMDsKKyAgICB1aW50NjRfdCBoYXNoID0gMDsKKworICAgIC8qIFByZS1sb2Fk
IHByZWZpeCB3aXRoIHRoZSBmaXJzdCA4IGJ5dGVzIG9mIHRoZSBrZXkgKi8KKyAgICBmb3IgKGtl
eWkgPSAwOyBrZXlpIDwgODsga2V5aSsrKSB7CisgICAgICAgIHByZWZpeCA8PD0gODsKKyAgICAg
ICAgcHJlZml4IHw9IChrZXlpIDwga2V5bGVuKSA/IGtleVtrZXlpXSA6IDA7CisgICAgfQorCisg
ICAgZm9yIChidWZpID0gMDsgYnVmaSA8IGJ1ZmxlbjsgYnVmaSsrKSB7CisgICAgICAgIHVpbnQ4
X3QgYnl0ZSA9IGJ1ZltidWZpXTsKKyAgICAgICAgdW5zaWduZWQgaW50IGJpdDsKKworICAgICAg
ICBmb3IgKGJpdCA9IDA7IGJpdCA8IDg7IGJpdCsrKSB7CisgICAgICAgICAgICBpZiAoYnl0ZSAm
IDB4ODApCisgICAgICAgICAgICAgICAgaGFzaCBePSBwcmVmaXg7CisgICAgICAgICAgICBwcmVm
aXggPDw9IDE7CisgICAgICAgICAgICBieXRlIDw8PTE7CisgICAgICAgIH0KKworICAgICAgICAv
KgorICAgICAgICAgKiAncHJlZml4JyBoYXMgbm93IGJlZW4gbGVmdC1zaGlmdGVkIGJ5IDgsIHNv
CisgICAgICAgICAqIE9SIGluIHRoZSBuZXh0IGJ5dGUuCisgICAgICAgICAqLworICAgICAgICBw
cmVmaXggfD0gKGtleWkgPCBrZXlsZW4pID8ga2V5W2tleWldIDogMDsKKyAgICAgICAga2V5aSsr
OworICAgIH0KKworICAgIC8qIFRoZSB2YWxpZCBwYXJ0IG9mIHRoZSBoYXNoIGlzIGluIHRoZSB1
cHBlciAzMiBiaXRzLiAqLworICAgIHJldHVybiBoYXNoID4+IDMyOworfQorI2VuZGlmIC8qIFhF
Tl9ORVRJRl9ERUZJTkVfVE9FUExJVFogKi8KKworLyoKKyAqIENvbnRyb2wgcmVxdWVzdHMgKHN0
cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0KQorICogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogQWxsIHJlcXVlc3RzIGhhdmUgdGhlIGZv
bGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAg
NSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSsKKyAqIHwgICAgaWQgICAgIHwgICB0eXBlICAgIHwgICAgICAgICBk
YXRhWzBdICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSst
LS0tLSstLS0tLSsKKyAqIHwgICAgICAgICBkYXRhWzFdICAgICAgIHwgICAgICAgICBkYXRhWzJd
ICAgICAgIHwKKyAqICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKKyAqCisgKiBpZDogdGhlIHJlcXVlc3QgaWRlbnRpZmllciwgZWNob2VkIGluIHJlc3Bv
bnNlLgorICogdHlwZTogdGhlIHR5cGUgb2YgcmVxdWVzdCAoc2VlIGJlbG93KQorICogZGF0YVtd
OiBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QgKGRldGVybWluZWQgYnkgdHlw
ZSkKKyAqLworCitzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVxdWVzdCB7CisgICAgdWludDE2X3Qg
aWQ7CisgICAgdWludDE2X3QgdHlwZTsKKworI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX0lO
VkFMSUQgICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hB
U0hfRkxBR1MgICAgICAgIDEKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9G
TEFHUyAgICAgICAgMgorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWSAg
ICAgICAgICAzCisjZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfTUFQUElOR19T
SVpFIDQKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUg
NQorI2RlZmluZSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX01BUFBJTkcgICAgICA2Cisj
ZGVmaW5lIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNICAgIDcKKworICAg
IHVpbnQzMl90IGRhdGFbM107Cit9OworCisvKgorICogQ29udHJvbCByZXNwb25zZXMgKHN0cnVj
dCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSkKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogQWxsIHJlc3BvbnNlcyBoYXZlIHRoZSBm
b2xsb3dpbmcgZm9ybWF0OgorICoKKyAqICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAg
IDUgICAgIDYgICAgIDcgIG9jdGV0CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rLS0tLS0rCisgKiB8ICAgIGlkICAgICB8ICAgdHlwZSAgICB8ICAgICAgICAg
c3RhdHVzICAgICAgICB8CisgKiArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r
LS0tLS0rLS0tLS0rCisgKiB8ICAgICAgICAgZGF0YSAgICAgICAgICB8CisgKiArLS0tLS0rLS0t
LS0rLS0tLS0rLS0tLS0rCisgKgorICogaWQ6IHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgaWRl
bnRpZmllcgorICogdHlwZTogdGhlIHR5cGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdAor
ICogc3RhdHVzOiB0aGUgc3RhdHVzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZworICogZGF0YTogYW55
IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNwb25zZSAoZGV0ZXJtaW5lZCBieSB0eXBlIGFu
ZAorICogICAgICAgc3RhdHVzKQorICovCisKK3N0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXNwb25z
ZSB7CisgICAgdWludDE2X3QgaWQ7CisgICAgdWludDE2X3QgdHlwZTsKKyAgICB1aW50MzJfdCBz
dGF0dXM7CisKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX1NVQ0NFU1MgICAgICAgICAg
IDAKKyNkZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgICAgIDEKKyNk
ZWZpbmUgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSIDIKKyNkZWZpbmUg
WEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9PVkVSRkxPVyAgIDMKKworICAgIHVpbnQzMl90
IGRhdGE7Cit9OworCisvKgorICogQ29udHJvbCBtZXNzYWdlcworICogPT09PT09PT09PT09PT09
PQorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfQUxHT1JJVEhNCisgKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMgaXMgc2VudCBi
eSB0aGUgZnJvbnRlbmQgdG8gc2V0IHRoZSBkZXNpcmVkIGhhc2ggYWxnb3JpdGhtLgorICoKKyAq
IFJlcXVlc3Q6CisgKgorICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNI
X0FMR09SSVRITQorICogIGRhdGFbMF0gPSBhIFhFTl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhN
XyogdmFsdWUKKyAqICBkYXRhWzFdID0gMAorICogIGRhdGFbMl0gPSAwCisgKgorICogUmVzcG9u
c2U6CisgKgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVE
ICAgICAtIE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RS
TF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUaGUgYWxnb3JpdGhtIGlzIG5vdAorICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRl
ZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgICAgICAt
IE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKgorICogTk9URTogU2V0dGluZyBkYXRhWzBdIHRvIFhF
Tl9ORVRJRl9DVFJMX0hBU0hfQUxHT1JJVEhNX05PTkUgZGlzYWJsZXMKKyAqICAgICAgIGhhc2hp
bmcgYW5kIHRoZSBiYWNrZW5kIGlzIGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0
cworICogICAgICAgdG8gcXVldWVzICh3aGljaCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIpLgor
ICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfRkxBR1MKKyAqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNlbnQgYnkgdGhlIGZyb250
ZW5kIHRvIHF1ZXJ5IHRoZSB0eXBlcyBvZiBoYXNoIHN1cHBvcnRlZCBieQorICogdGhlIGJhY2tl
bmQuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZ
UEVfR0VUX0hBU0hfRkxBR1MKKyAqICBkYXRhWzBdID0gMAorICogIGRhdGFbMV0gPSAwCisgKiAg
ZGF0YVsyXSA9IDAKKyAqCisgKiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElG
X0NUUkxfU1RBVFVTX05PVF9TVVBQT1JURUQgLSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZAorICog
ICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9u
IHN1Y2Nlc3NmdWwKKyAqICBkYXRhICAgPSBzdXBwb3J0ZWQgaGFzaCB0eXBlcyAoaWYgb3BlcmF0
aW9uIHdhcyBzdWNjZXNzZnVsKQorICoKKyAqIE5PVEU6IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0g
bXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVyYXRpb24gY2FuCisgKiAgICAgICBzdWNj
ZWVkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MKKyAqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlzIHNlbnQgYnkgdGhl
IGZyb250ZW5kIHRvIHNldCB0aGUgdHlwZXMgb2YgaGFzaCB0aGF0IHRoZSBiYWNrZW5kCisgKiBz
aG91bGQgY2FsY3VsYXRlLiAoU2VlIGFib3ZlIGZvciBoYXNoIHR5cGUgZGVmaW5pdGlvbnMpLgor
ICogTm90ZSB0aGF0IHRoZSAnbWF4aW1hbCcgdHlwZSBvZiBoYXNoIHNob3VsZCBhbHdheXMgYmUg
Y2hvc2VuLiBGb3IKKyAqIGV4YW1wbGUsIGlmIHRoZSBmcm9udGVuZCBzZXRzIGJvdGggSVBWNCBh
bmQgSVBWNF9UQ1AgaGFzaCB0eXBlcyB0aGVuCisgKiB0aGUgbGF0dGVyIGhhc2ggdHlwZSBzaG91
bGQgYmUgY2FsY3VsYXRlZCBmb3IgYW55IFRDUCBwYWNrZXQgYW5kIHRoZQorICogZm9ybWVyIG9u
bHkgY2FsY3VsYXRlZCBmb3Igbm9uLVRDUCBwYWNrZXRzLgorICoKKyAqIFJlcXVlc3Q6CisgKgor
ICogIHR5cGUgICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0ZMQUdTCisgKiAgZGF0
YVswXSA9IGJpdHdpc2UgT1Igb2YgWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFXyogdmFsdWVzCisg
KiAgZGF0YVsxXSA9IDAKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoKKyAq
ICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBPcGVy
YXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0lO
VkFMSURfUEFSQU1FVEVSIC0gT25lIG9yIG1vcmUgZmxhZworICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlzIGludmFsaWQgb3IKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN1
cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAg
ICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAgID0gMAorICoKKyAqIE5PVEU6
IEEgdmFsaWQgaGFzaCBhbGdvcml0aG0gbXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgdGhpcyBvcGVy
YXRpb24gY2FuCisgKiAgICAgICBzdWNjZWVkLgorICogICAgICAgQWxzbywgc2V0dGluZyBkYXRh
WzBdIHRvIHplcm8gZGlzYWJsZXMgaGFzaGluZyBhbmQgdGhlIGJhY2tlbmQKKyAqICAgICAgIGlz
IGZyZWUgdG8gY2hvb3NlIGhvdyBpdCBzdGVlcnMgcGFja2V0cyB0byBxdWV1ZXMuCisgKgorICog
WEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRoZSBmcm9udGVuZCB0byBzZXQg
dGhlIGtleSBvZiB0aGUgaGFzaCBpZiB0aGUgYWxnb3JpdGhtCisgKiByZXF1aXJlcyBpdC4gKFNl
ZSBoYXNoIGFsZ29yaXRobXMgYWJvdmUpLgorICoKKyAqIFJlcXVlc3Q6CisgKgorICogIHR5cGUg
ICAgPSBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0tFWQorICogIGRhdGFbMF0gPSBncmFu
dCByZWZlcmVuY2Ugb2YgcGFnZSBjb250YWluaW5nIHRoZSBrZXkgKGFzc3VtZWQgdG8KKyAqICAg
ICAgICAgICAgc3RhcnQgYXQgYmVnaW5uaW5nIG9mIGdyYW50KQorICogIGRhdGFbMV0gPSBzaXpl
IG9mIGtleSBpbiBvY3RldHMKKyAqICBkYXRhWzJdID0gMAorICoKKyAqIFJlc3BvbnNlOgorICoK
KyAqICBzdGF0dXMgPSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRFRCAgICAgLSBP
cGVyYXRpb24gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VwcG9ydGVkCisgKiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVT
X0lOVkFMSURfUEFSQU1FVEVSIC0gS2V5IHNpemUgaXMgaW52YWxpZAorICogICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1cgICAtIEtleSBzaXplIGlzIGxhcmdl
cgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoYW4gdGhlIGJhY2tlbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwb3J0cworICogICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1NU
QVRVU19TVUNDRVNTICAgICAgICAgICAtIE9wZXJhdGlvbiBzdWNjZXNzZnVsCisgKiAgZGF0YSAg
ID0gMAorICoKKyAqIE5PVEU6IEFueSBrZXkgb2N0ZXRzIG5vdCBzcGVjaWZpZWQgYXJlIGFzc3Vt
ZWQgdG8gYmUgemVybyAodGhlIGtleQorICogICAgICAgaXMgYXNzdW1lZCB0byBiZSBlbXB0eSBi
eSBkZWZhdWx0KSBhbmQgc3BlY2lmeWluZyBhIG5ldyBrZXkKKyAqICAgICAgIGludmFsaWRhdGVz
IGFueSBwcmV2aW91cyBrZXksIGhlbmNlIHNwZWNpZnlpbmcgYSBrZXkgc2l6ZSBvZgorICogICAg
ICAgemVybyB3aWxsIGNsZWFyIHRoZSBrZXkgKHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgY2FsY3Vs
YXRlZCBoYXNoCisgKiAgICAgICB3aWxsIGFsd2F5cyBiZSB6ZXJvKS4KKyAqICAgICAgIFRoZSBt
YXhpbXVtIHNpemUgb2Yga2V5IGlzIGFsZ29yaXRobSBhbmQgYmFja2VuZCBzcGVjaWZpYywgYnV0
CisgKiAgICAgICBpcyBhbHNvIGxpbWl0ZWQgYnkgdGhlIHNpbmdsZSBncmFudCByZWZlcmVuY2Uu
CisgKiAgICAgICBUaGUgZ3JhbnQgcmVmZXJlbmNlIG1heSBiZSByZWFkLW9ubHkgYW5kIG11c3Qg
cmVtYWluIHZhbGlkIHVudGlsCisgKiAgICAgICB0aGUgcmVzcG9uc2UgaGFzIGJlZW4gcHJvY2Vz
c2VkLgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VUX0hBU0hfTUFQUElOR19TSVpFCisg
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIFRoaXMg
aXMgc2VudCBieSB0aGUgZnJvbnRlbmQgdG8gcXVlcnkgdGhlIG1heGltdW0gc2l6ZSBvZiBtYXBw
aW5nCisgKiB0YWJsZSBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuIFRoZSBzaXplIGlzIHNwZWNp
ZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqCisgKiBSZXF1ZXN0OgorICoK
KyAqICB0eXBlICAgID0gWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9NQVBQSU5HX1NJWkUK
KyAqICBkYXRhWzBdID0gMAorICogIGRhdGFbMV0gPSAwCisgKiAgZGF0YVsyXSA9IDAKKyAqCisg
KiBSZXNwb25zZToKKyAqCisgKiAgc3RhdHVzID0gWEVOX05FVElGX0NUUkxfU1RBVFVTX05PVF9T
VVBQT1JURUQgLSBPcGVyYXRpb24gbm90IHN1cHBvcnRlZAorICogICAgICAgICAgIFhFTl9ORVRJ
Rl9DVFJMX1NUQVRVU19TVUNDRVNTICAgICAgIC0gT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKKyAqICBk
YXRhICAgPSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGFsbG93ZWQgaW4gdGhlIG1hcHBpbmcg
dGFibGUKKyAqICAgICAgICAgICAoaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsKSBvciB6ZXJv
IGlmIGEgbWFwcGluZyB0YWJsZSBpcworICogICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgKGkuZS4g
aGFzaCBtYXBwaW5nIGlzIGRvbmUgb25seSBieSBtb2R1bGFyCisgKiAgICAgICAgICAgYXJpdGht
ZXRpYykuCisgKgorICogWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUK
KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBUaGlzIGlz
IHNlbnQgYnkgdGhlIGZyb250ZW5kIHRvIHNldCB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIG1hcHBp
bmcKKyAqIHRhYmxlIHRvIGJlIHVzZWQgYnkgdGhlIGJhY2tlbmQuIFRoZSBzaXplIGlzIHNwZWNp
ZmllZCBpbiB0ZXJtcyBvZgorICogdGFibGUgZW50cmllcy4KKyAqIEFueSBwcmV2aW91cyB0YWJs
ZSBpcyBpbnZhbGlkYXRlZCBieSB0aGlzIG1lc3NhZ2UgYW5kIGFueSBuZXcgdGFibGUKKyAqIGlz
IGFzc3VtZWQgdG8gYmUgemVybyBmaWxsZWQuCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlw
ZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFCisgKiAgZGF0
YVswXSA9IG51bWJlciBvZiBlbnRyaWVzIGluIG1hcHBpbmcgdGFibGUKKyAqICBkYXRhWzFdID0g
MAorICogIGRhdGFbMl0gPSAwCisgKgorICogUmVzcG9uc2U6CisgKgorICogIHN0YXR1cyA9IFhF
Tl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAtIE9wZXJhdGlvbiBub3QKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBw
b3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVU
RVIgLSBUYWJsZSBzaXplIGlzIGludmFsaWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9T
VEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vzc2Z1bAorICogIGRhdGEg
ICA9IDAKKyAqCisgKiBOT1RFOiBTZXR0aW5nIGRhdGFbMF0gdG8gMCBtZWFucyB0aGF0IGhhc2gg
bWFwcGluZyBzaG91bGQgYmUgZG9uZQorICogICAgICAgdXNpbmcgbW9kdWxhciBhcml0aG1ldGlj
LgorICoKKyAqIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfTUFQUElORworICogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBpcyBzZW50IGJ5IHRo
ZSBmcm9udGVuZCB0byBzZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHRhYmxlIG1hcHBpbmcKKyAqIGhh
c2ggdmFsdWUgdG8gcXVldWUgbnVtYmVyLiBUaGUgYmFja2VuZCBzaG91bGQgY2FsY3VsYXRlIHRo
ZSBoYXNoIGZyb20KKyAqIHRoZSBwYWNrZXQgaGVhZGVyLCB1c2UgaXQgYXMgYW4gaW5kZXggaW50
byB0aGUgdGFibGUgKG1vZHVsbyB0aGUgc2l6ZQorICogb2YgdGhlIHRhYmxlKSBhbmQgdGhlbiBz
dGVlciB0aGUgcGFja2V0IHRvIHRoZSBxdWV1ZSBudW1iZXIgZm91bmQgYXQKKyAqIHRoYXQgaW5k
ZXguCisgKgorICogUmVxdWVzdDoKKyAqCisgKiAgdHlwZSAgICA9IFhFTl9ORVRJRl9DVFJMX1RZ
UEVfU0VUX0hBU0hfTUFQUElORworICogIGRhdGFbMF0gPSBncmFudCByZWZlcmVuY2Ugb2YgcGFn
ZSBjb250YWluaW5nIHRoZSBtYXBwaW5nIChzdWItKXRhYmxlCisgKiAgICAgICAgICAgIChhc3N1
bWVkIHRvIHN0YXJ0IGF0IGJlZ2lubmluZyBvZiBncmFudCkKKyAqICBkYXRhWzFdID0gc2l6ZSBv
ZiAoc3ViLSl0YWJsZSBpbiBlbnRyaWVzCisgKiAgZGF0YVsyXSA9IG9mZnNldCwgaW4gZW50cmll
cywgb2Ygc3ViLXRhYmxlIHdpdGhpbiBvdmVyYWxsIHRhYmxlCisgKgorICogUmVzcG9uc2U6Cisg
KgorICogIHN0YXR1cyA9IFhFTl9ORVRJRl9DVFJMX1NUQVRVU19OT1RfU1VQUE9SVEVEICAgICAt
IE9wZXJhdGlvbiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdXBwb3J0ZWQKKyAqICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9TVEFU
VVNfSU5WQUxJRF9QQVJBTUVURVIgLSBUYWJsZSBzaXplIG9yIGNvbnRlbnQKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBpbnZhbGlkCisg
KiAgICAgICAgICAgWEVOX05FVElGX0NUUkxfU1RBVFVTX0JVRkZFUl9PVkVSRkxPVyAgIC0gVGFi
bGUgc2l6ZSBpcyBsYXJnZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGFuIHRoZSBiYWNrZW5kCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMKKyAqICAgICAgICAgICBY
RU5fTkVUSUZfQ1RSTF9TVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgLSBPcGVyYXRpb24gc3VjY2Vz
c2Z1bAorICogIGRhdGEgICA9IDAKKyAqCisgKiBOT1RFOiBUaGUgb3ZlcmFsbCB0YWJsZSBoYXMg
dGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgKgorICogICAgICAgICAgMCAgICAgMSAgICAgMiAgICAg
MyAgICAgNCAgICAgNSAgICAgNiAgICAgNyAgb2N0ZXQKKyAqICAgICAgICstLS0tLSstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqICAgICAgIHwgICAgICAgbWFw
cGluZ1swXSAgICAgIHwgICAgICAgbWFwcGluZ1sxXSAgICAgIHwKKyAqICAgICAgICstLS0tLSst
LS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAqICAgICAgIHwgICAg
ICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgIHwg
ICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAg
ICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKKyAq
ICAgICAgIHwgICAgICBtYXBwaW5nW04tMl0gICAgIHwgICAgICBtYXBwaW5nW04tMV0gICAgIHwK
KyAqICAgICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t
LSsKKyAqCisgKiAgICAgICB3aGVyZSBOIGlzIHNwZWNpZmllZCBieSBhIFhFTl9ORVRJRl9DVFJM
X1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFCisgKiAgICAgICBtZXNzYWdlIGFuZCBlYWNoICBt
YXBwaW5nIG11c3Qgc3BlY2lmaWVzIGEgcXVldWUgYmV0d2VlbiAwIGFuZAorICogICAgICAgIm11
bHRpLXF1ZXVlLW51bS1xdWV1ZXMiIChzZWUgYWJvdmUpLgorICogICAgICAgVGhlIGJhY2tlbmQg
bWF5IHN1cHBvcnQgYSBtYXBwaW5nIHRhYmxlIGxhcmdlciB0aGFuIGNhbiBiZQorICogICAgICAg
bWFwcGVkIGJ5IGEgc2luZ2xlIGdyYW50IHJlZmVyZW5jZS4gVGh1cyBzdWItdGFibGVzIHdpdGhp
biBhCisgKiAgICAgICBsYXJnZXIgdGFibGUgY2FuIGJlIGluZGl2aWR1YWxseSBzZXQgYnkgc2Vu
ZGluZyBtdWx0aXBsZSBtZXNzYWdlcworICogICAgICAgd2l0aCBkaWZmZXJpbmcgb2Zmc2V0IHZh
bHVlcy4gU3BlY2lmeWluZyBhIG5ldyBzdWItdGFibGUgZG9lcyBub3QKKyAqICAgICAgIGludmFs
aWRhdGUgYW55IHRhYmxlIGRhdGEgb3V0c2lkZSB0aGF0IHJhbmdlLgorICogICAgICAgVGhlIGdy
YW50IHJlZmVyZW5jZSBtYXkgYmUgcmVhZC1vbmx5IGFuZCBtdXN0IHJlbWFpbiB2YWxpZCB1bnRp
bAorICogICAgICAgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHByb2Nlc3NlZC4KKyAqLworCitERUZJ
TkVfUklOR19UWVBFUyh4ZW5fbmV0aWZfY3RybCwKKyAgICAgICAgICAgICAgICAgIHN0cnVjdCB4
ZW5fbmV0aWZfY3RybF9yZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9uZXRp
Zl9jdHJsX3Jlc3BvbnNlKTsKIAogLyoKICAqIEd1ZXN0IHRyYW5zbWl0CiAgKiA9PT09PT09PT09
PT09PQogICoKKyAqIFRoaXMgaXMgdGhlICd3aXJlJyBmb3JtYXQgZm9yIHRyYW5zbWl0IChmcm9u
dGVuZCAtPiBiYWNrZW5kKSBwYWNrZXRzOgorICoKKyAqICBGcmFnbWVudCAxOiBuZXRpZl90eF9y
ZXF1ZXN0X3QgIC0gZmxhZ3MgPSBORVRUWEZfKgorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplID0gdG90YWwgcGFja2V0IHNpemUKKyAqIFtFeHRyYSAxOiBuZXRpZl9l
eHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21lbnQgMSBmbGFncyBpbmNsdWRlCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRUWEZfZXh0cmFfaW5mbykKKyAq
ICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZXh0
cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4uLgorICogIEZyYWdtZW50IE46IG5ldGlm
X3R4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVudCBOLTEgZmxhZ3MgaW5jbHVkZQorICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUVFhGX21vcmVfZGF0YSAtIGZs
YWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICogTk9URToKKyAqCisgKiBUaGlzIGZvcm1h
dCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgZm9yIHJlY2VpdmUKKyAqIChi
YWNrZW5kIC0+IGZyb250ZW5kKSBwYWNrZXRzLiBTcGVjaWZpY2FsbHksIGluIGEgbXVsdGktZnJh
Z21lbnQKKyAqIHBhY2tldCB0aGUgYWN0dWFsIHNpemUgb2YgZnJhZ21lbnQgMSBjYW4gb25seSBi
ZSBkZXRlcm1pbmVkIGJ5CisgKiBzdWJ0cmFjdGluZyB0aGUgc2l6ZXMgb2YgZnJhZ21lbnRzIDIu
Lk4gZnJvbSB0aGUgdG90YWwgcGFja2V0IHNpemUuCisgKgogICogUmluZyBzbG90IHNpemUgaXMg
MTIgb2N0ZXRzLCBob3dldmVyIG5vdCBhbGwgcmVxdWVzdC9yZXNwb25zZQogICogc3RydWN0cyB1
c2UgdGhlIGZ1bGwgc2l6ZS4KICAqCkBAIC0xODUsNiArNjc3LDI5IEBACiAgKiBHdWVzdCByZWNl
aXZlCiAgKiA9PT09PT09PT09PT09CiAgKgorICogVGhpcyBpcyB0aGUgJ3dpcmUnIGZvcm1hdCBm
b3IgcmVjZWl2ZSAoYmFja2VuZCAtPiBmcm9udGVuZCkgcGFja2V0czoKKyAqCisgKiAgRnJhZ21l
bnQgMTogbmV0aWZfcnhfcmVxdWVzdF90ICAtIGZsYWdzID0gTkVUUlhGXyoKKyAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IGZyYWdtZW50IHNpemUKKyAqIFtFeHRy
YSAxOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0gKG9ubHkgaWYgZnJhZ21lbnQgMSBmbGFncyBp
bmNsdWRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRSWEZfZXh0
cmFfaW5mbykKKyAqICAuLi4KKyAqIFtFeHRyYSBOOiBuZXRpZl9leHRyYV9pbmZvX3RdICAgIC0g
KG9ubHkgaWYgZXh0cmEgTi0xIGZsYWdzIGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9FWFRSQV9NT1JFKQorICogIC4uLgorICogIEZyYWdt
ZW50IE46IG5ldGlmX3J4X3JlcXVlc3RfdCAgLSAob25seSBpZiBmcmFnbWVudCBOLTEgZmxhZ3Mg
aW5jbHVkZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUUlhGX21v
cmVfZGF0YSAtIGZsYWdzIG9uIHByZWNlZGluZworICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0cmFzIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkKKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSAwCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemUgPSBmcmFnbWVudCBzaXplCisgKgorICogTk9URToKKyAqCisg
KiBUaGlzIGZvcm1hdCBzbGlnaHRseSBpcyBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgZm9yIHRy
YW5zbWl0CisgKiAoZnJvbnRlbmQgLT4gYmFja2VuZCkgcGFja2V0cy4gU3BlY2lmaWNhbGx5LCBp
biBhIG11bHRpLWZyYWdtZW50CisgKiBwYWNrZXQgdGhlIHNpemUgb2YgdGhlIHBhY2tldCBjYW4g
b25seSBiZSBkZXRlcm1pbmVkIGJ5IHN1bW1pbmcgdGhlCisgKiBzaXplcyBvZiBmcmFnbWVudHMg
MS4uTi4KKyAqCiAgKiBSaW5nIHNsb3Qgc2l6ZSBpcyA4IG9jdGV0cy4KICAqCiAgKiByeCByZXF1
ZXN0IChuZXRpZl9yeF9yZXF1ZXN0X3QpCkBAIC0yMTEsMTUgKzcyNiwyOSBAQAogICogZmxhZ3M6
IE5FVFJYRl8qCiAgKiBzdGF0dXM6IC12ZTogTkVUSUZfUlNQXyo7ICt2ZTogUngnZWQgcGt0IHNp
emUuCiAgKgorICogTk9URTogSGlzdG9yaWNhbGx5LCB0byBzdXBwb3J0IEdTTyBvbiB0aGUgZnJv
bnRlbmQgcmVjZWl2ZSBzaWRlLCBMaW51eAorICogICAgICAgbmV0ZnJvbnQgZG9lcyBub3QgbWFr
ZSB1c2Ugb2YgdGhlIHJ4IHJlc3BvbnNlIGlkIChiZWNhdXNlLCBhcworICogICAgICAgZGVzY3Jp
YmVkIGJlbG93LCBleHRyYSBpbmZvIHN0cnVjdHVyZXMgb3ZlcmxheSB0aGUgaWQgZmllbGQpLgor
ICogICAgICAgSW5zdGVhZCBpdCBhc3N1bWVzIHRoYXQgcmVzcG9uc2VzIGFsd2F5cyBhcHBlYXIg
aW4gdGhlIHNhbWUgcmluZworICogICAgICAgc2xvdCBhcyB0aGVpciBjb3JyZXNwb25kaW5nIHJl
cXVlc3QuIFRodXMsIHRvIG1haW50YWluCisgKiAgICAgICBjb21wYXRpYmlsaXR5LCBiYWNrZW5k
cyBtdXN0IG1ha2Ugc3VyZSB0aGlzIGlzIHRoZSBjYXNlLgorICoKICAqIEV4dHJhIEluZm8KICAq
ID09PT09PT09PT0KICAqCi0gKiBDYW4gYmUgcHJlc2VudCBpZiBpbml0aWFsIHJlcXVlc3QgaGFz
IE5FVHtULFJ9WEZfZXh0cmFfaW5mbywgb3IKLSAqIHByZXZpb3VzIGV4dHJhIHJlcXVlc3QgaGFz
IFhFTl9ORVRJRl9FWFRSQV9NT1JFLgorICogQ2FuIGJlIHByZXNlbnQgaWYgaW5pdGlhbCByZXF1
ZXN0IG9yIHJlc3BvbnNlIGhhcyBORVR7VCxSfVhGX2V4dHJhX2luZm8sCisgKiBvciBwcmV2aW91
cyBleHRyYSByZXF1ZXN0IGhhcyBYRU5fTkVUSUZfRVhUUkFfTU9SRS4KICAqCiAgKiBUaGUgc3Ry
dWN0IHRoZXJlZm9yZSBuZWVkcyB0byBmaXQgaW50byBlaXRoZXIgYSB0eCBvciByeCBzbG90IGFu
ZAogICogaXMgdGhlcmVmb3JlIGxpbWl0ZWQgdG8gOCBvY3RldHMuCiAgKgorICogTk9URTogQmVj
YXVzZSBleHRyYSBpbmZvIGRhdGEgb3ZlcmxheXMgdGhlIHVzdWFsIHJlcXVlc3QvcmVzcG9uc2UK
KyAqICAgICAgIHN0cnVjdHVyZXMsIHRoZXJlIGlzIG5vIGlkIGluZm9ybWF0aW9uIGluIHRoZSBv
cHBvc2l0ZSBkaXJlY3Rpb24uCisgKiAgICAgICBTbywgaWYgYW4gZXh0cmEgaW5mbyBvdmVybGF5
cyBhbiByeCByZXNwb25zZSB0aGUgZnJvbnRlbmQgY2FuCisgKiAgICAgICBhc3N1bWUgdGhhdCBp
dCBpcyBpbiB0aGUgc2FtZSByaW5nIHNsb3QgYXMgdGhlIHJlcXVlc3QgdGhhdCB3YXMKKyAqICAg
ICAgIGNvbnN1bWVkIHRvIG1ha2UgdGhlIHNsb3QgYXZhaWxhYmxlLCBhbmQgdGhlIGJhY2tlbmQg
bXVzdCBlbnN1cmUKKyAqICAgICAgIHRoaXMgYXNzdW1wdGlvbiBpcyB0cnVlLgorICoKICAqIGV4
dHJhIGluZm8gKG5ldGlmX2V4dHJhX2luZm9fdCkKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICAqCkBAIC0yMjcsNyArNzU2LDcgQEAKICAqCiAgKiAgICAwICAgICAxICAgICAy
ICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3RldAogICogKy0tLS0tKy0tLS0tKy0t
LS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwotICogfHR5cGUgfGZsYWdzfCB0eXBl
IHNwZWNmaWMgZGF0YSAgICAgICAgICAgICAgICAgfAorICogfHR5cGUgfGZsYWdzfCB0eXBlIHNw
ZWNpZmljIGRhdGEgICAgICAgICAgICAgICAgfAogICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0t
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICogfCBwYWRkaW5nIGZvciB0eCAgICAgICAgfAog
ICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwpAQCAtMjM1LDcgKzc2NCw4IEBACiAgKiB0eXBl
OiBYRU5fTkVUSUZfRVhUUkFfVFlQRV8qCiAgKiBmbGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdf
KgogICogcGFkZGluZyBmb3IgdHg6IHByZXNlbnQgb25seSBpbiB0aGUgdHggY2FzZSBkdWUgdG8g
OCBvY3RldCBsaW1pdAotICogICAgIGZyb20gcnggY2FzZS4gTm90IHNob3duIGluIHR5cGUgc3Bl
Y2lmaWMgZW50cmllcyBiZWxvdy4KKyAqICAgICAgICAgICAgICAgICBmcm9tIHJ4IGNhc2UuIE5v
dCBzaG93biBpbiB0eXBlIHNwZWNpZmljIGVudHJpZXMKKyAqICAgICAgICAgICAgICAgICBiZWxv
dy4KICAqCiAgKiBYRU5fTkVUSUZfRVhUUkFfVFlQRV9HU086CiAgKgpAQCAtMjQ2LDkgKzc3Niwx
NCBAQAogICoKICAqIHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPCiAgKiBm
bGFnczogWEVOX05FVElGX0VYVFJBX0ZMQUdfKgotICogc2l6ZTogTWF4aW11bSBwYXlsb2FkIHNp
emUgb2YgZWFjaCBzZWdtZW50LgotICogdHlwZTogWEVOX05FVElGX0dTT19UWVBFXyoKLSAqIGZl
YXR1cmVzOiBFTl9ORVRJRl9HU09fRkVBVF8qCisgKiBzaXplOiBNYXhpbXVtIHBheWxvYWQgc2l6
ZSBvZiBlYWNoIHNlZ21lbnQuIEZvciBleGFtcGxlLAorICogICAgICAgZm9yIFRDUCB0aGlzIGlz
IGp1c3QgdGhlIHBhdGggTVNTLgorICogdHlwZTogWEVOX05FVElGX0dTT19UWVBFXyo6IFRoaXMg
ZGV0ZXJtaW5lcyB0aGUgcHJvdG9jb2wgb2YKKyAqICAgICAgIHRoZSBwYWNrZXQgYW5kIGFueSBl
eHRyYSBmZWF0dXJlcyByZXF1aXJlZCB0byBzZWdtZW50IHRoZQorICogICAgICAgcGFja2V0IHBy
b3Blcmx5LgorICogZmVhdHVyZXM6IEVOX05FVElGX0dTT19GRUFUXyo6IFRoaXMgc3BlY2lmaWVz
IGFueSBleHRyYSBHU08KKyAqICAgICAgICAgICBmZWF0dXJlcyByZXF1aXJlZCB0byBwcm9jZXNz
IHRoaXMgcGFja2V0LCBzdWNoIGFzIEVDTgorICogICAgICAgICAgIHN1cHBvcnQgZm9yIFRDUHY0
LgogICoKICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfToKICAqCkBAIC0y
NjAsNiArNzk1LDI1IEBACiAgKiB0eXBlOiBNdXN0IGJlIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01D
QVNUX3tBREQsREVMfQogICogZmxhZ3M6IFhFTl9ORVRJRl9FWFRSQV9GTEFHXyoKICAqIGFkZHI6
IGFkZHJlc3MgdG8gYWRkL3JlbW92ZQorICoKKyAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX0hBU0g6
CisgKgorICogQSBiYWNrZW5kIHRoYXQgc3VwcG9ydHMgdGVvcGxpdHogaGFzaGluZyBpcyBhc3N1
bWVkIHRvIGFjY2VwdAorICogdGhpcyB0eXBlIG9mIGV4dHJhIGluZm8gaW4gdHJhbnNtaXQgcGFj
a2V0cy4KKyAqIEEgZnJvbnRlbmQgdGhhdCBlbmFibGVzIGhhc2hpbmcgaXMgYXNzdW1lZCB0byBh
Y2NlcHQKKyAqIHRoaXMgdHlwZSBvZiBleHRyYSBpbmZvIGluIHJlY2VpdmUgcGFja2V0cy4KKyAq
CisgKiAgICAwICAgICAxICAgICAyICAgICAzICAgICA0ICAgICA1ICAgICA2ICAgICA3ICBvY3Rl
dAorICogKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwor
ICogfHR5cGUgfGZsYWdzfGh0eXBlfCBhbGcgfExTQiAtLS0tIHZhbHVlIC0tLS0gTVNCfAorICog
Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKworICoKKyAq
IHR5cGU6IE11c3QgYmUgWEVOX05FVElGX0VYVFJBX1RZUEVfSEFTSAorICogZmxhZ3M6IFhFTl9O
RVRJRl9FWFRSQV9GTEFHXyoKKyAqIGh0eXBlOiBIYXNoIHR5cGUgKG9uZSBvZiBfWEVOX05FVElG
X0NUUkxfSEFTSF9UWVBFXyogLSBzZWUgYWJvdmUpCisgKiBhbGc6IFRoZSBhbGdvcml0aG0gdXNl
ZCB0byBjYWxjdWxhdGUgdGhlIGhhc2ggKG9uZSBvZgorICogICAgICBYRU5fTkVUSUZfQ1RSTF9I
QVNIX1RZUEVfQUxHT1JJVEhNXyogLSBzZWUgYWJvdmUpCisgKiB2YWx1ZTogSGFzaCB2YWx1ZQog
ICovCiAKIC8qIFByb3RvY29sIGNoZWNrc3VtIGZpZWxkIGlzIGJsYW5rIGluIHRoZSBwYWNrZXQg
KGhhcmR3YXJlIG9mZmxvYWQpPyAqLwpAQCAtMjgwLDExICs4MzQsMTEgQEAKIAogI2RlZmluZSBY
RU5fTkVUSUZfTUFYX1RYX1NJWkUgMHhGRkZGCiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCB7Ci0g
ICAgZ3JhbnRfcmVmX3QgZ3JlZjsgICAgICAvKiBSZWZlcmVuY2UgdG8gYnVmZmVyIHBhZ2UgKi8K
LSAgICB1aW50MTZfdCBvZmZzZXQ7ICAgICAgIC8qIE9mZnNldCB3aXRoaW4gYnVmZmVyIHBhZ2Ug
Ki8KLSAgICB1aW50MTZfdCBmbGFnczsgICAgICAgIC8qIE5FVFRYRl8qICovCi0gICAgdWludDE2
X3QgaWQ7ICAgICAgICAgICAvKiBFY2hvZWQgaW4gcmVzcG9uc2UgbWVzc2FnZS4gKi8KLSAgICB1
aW50MTZfdCBzaXplOyAgICAgICAgIC8qIFBhY2tldCBzaXplIGluIGJ5dGVzLiAgICAgICAqLwor
ICAgIGdyYW50X3JlZl90IGdyZWY7CisgICAgdWludDE2X3Qgb2Zmc2V0OworICAgIHVpbnQxNl90
IGZsYWdzOworICAgIHVpbnQxNl90IGlkOworICAgIHVpbnQxNl90IHNpemU7CiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgbmV0aWZfdHhfcmVxdWVzdCBuZXRpZl90eF9yZXF1ZXN0X3Q7CiAKQEAgLTI5Myw3
ICs4NDcsOCBAQCB0eXBlZGVmIHN0cnVjdCBuZXRpZl90eF9yZXF1ZXN0IG5ldGlmX3R4X3JlcXVl
c3RfdDsKICNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPICAgICAgICgxKSAgLyogdS5n
c28gKi8KICNkZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1RfQUREICgyKSAgLyogdS5t
Y2FzdCAqLwogI2RlZmluZSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9NQ0FTVF9ERUwgKDMpICAvKiB1
Lm1jYXN0ICovCi0jZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCAgICAgICAoNCkKKyNk
ZWZpbmUgWEVOX05FVElGX0VYVFJBX1RZUEVfSEFTSCAgICAgICg0KSAgLyogdS5oYXNoICovCisj
ZGVmaW5lIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCAgICAgICAoNSkKIAogLyogbmV0aWZfZXh0
cmFfaW5mb190IGZsYWdzLiAqLwogI2RlZmluZSBfWEVOX05FVElGX0VYVFJBX0ZMQUdfTU9SRSAo
MCkKQEAgLTMwOSw1MSArODY0LDIzIEBAIHR5cGVkZWYgc3RydWN0IG5ldGlmX3R4X3JlcXVlc3Qg
bmV0aWZfdHhfcmVxdWVzdF90OwogICogbmV0aWZfcnhfcmVzcG9uc2VfdCBmb3IgY29tcGF0aWJp
bGl0eS4KICAqLwogc3RydWN0IG5ldGlmX2V4dHJhX2luZm8gewotICAgIHVpbnQ4X3QgdHlwZTsg
IC8qIFhFTl9ORVRJRl9FWFRSQV9UWVBFXyogKi8KLSAgICB1aW50OF90IGZsYWdzOyAvKiBYRU5f
TkVUSUZfRVhUUkFfRkxBR18qICovCi0KKyAgICB1aW50OF90IHR5cGU7CisgICAgdWludDhfdCBm
bGFnczsKICAgICB1bmlvbiB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFhFTl9ORVRJRl9FWFRS
QV9UWVBFX0dTTzoKLSAgICAgICAgICovCiAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAv
KgotICAgICAgICAgICAgICogTWF4aW11bSBwYXlsb2FkIHNpemUgb2YgZWFjaCBzZWdtZW50LiBG
b3IgZXhhbXBsZSwgZm9yIFRDUCB0aGlzCi0gICAgICAgICAgICAgKiBpcyBqdXN0IHRoZSBwYXRo
IE1TUy4KLSAgICAgICAgICAgICAqLwogICAgICAgICAgICAgdWludDE2X3Qgc2l6ZTsKLQotICAg
ICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIEdTTyB0eXBlLiBUaGlzIGRldGVybWluZXMgdGhl
IHByb3RvY29sIG9mIHRoZSBwYWNrZXQgYW5kIGFueQotICAgICAgICAgICAgICogZXh0cmEgZmVh
dHVyZXMgcmVxdWlyZWQgdG8gc2VnbWVudCB0aGUgcGFja2V0IHByb3Blcmx5LgotICAgICAgICAg
ICAgICovCi0gICAgICAgICAgICB1aW50OF90IHR5cGU7IC8qIFhFTl9ORVRJRl9HU09fVFlQRV8q
ICovCi0KLSAgICAgICAgICAgIC8qIEZ1dHVyZSBleHBhbnNpb24uICovCisgICAgICAgICAgICB1
aW50OF90IHR5cGU7CiAgICAgICAgICAgICB1aW50OF90IHBhZDsKLQotICAgICAgICAgICAgLyoK
LSAgICAgICAgICAgICAqIEdTTyBmZWF0dXJlcy4gVGhpcyBzcGVjaWZpZXMgYW55IGV4dHJhIEdT
TyBmZWF0dXJlcyByZXF1aXJlZAotICAgICAgICAgICAgICogdG8gcHJvY2VzcyB0aGlzIHBhY2tl
dCwgc3VjaCBhcyBFQ04gc3VwcG9ydCBmb3IgVENQdjQuCi0gICAgICAgICAgICAgKi8KLSAgICAg
ICAgICAgIHVpbnQxNl90IGZlYXR1cmVzOyAvKiBYRU5fTkVUSUZfR1NPX0ZFQVRfKiAqLworICAg
ICAgICAgICAgdWludDE2X3QgZmVhdHVyZXM7CiAgICAgICAgIH0gZ3NvOwotCi0gICAgICAgIC8q
Ci0gICAgICAgICAqIFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX3tBREQsREVMfToKLSAgICAg
ICAgICogQmFja2VuZCBhZHZlcnRpc2VzIGF2YWlsYWJpbGl0eSB2aWEgJ2ZlYXR1cmUtbXVsdGlj
YXN0LWNvbnRyb2wnCi0gICAgICAgICAqIHhlbmJ1cyBub2RlIGNvbnRhaW5pbmcgdmFsdWUgJzEn
LgotICAgICAgICAgKiBGcm9udGVuZCByZXF1ZXN0cyB0aGlzIGZlYXR1cmUgYnkgYWR2ZXJ0aXNp
bmcKLSAgICAgICAgICogJ3JlcXVlc3QtbXVsdGljYXN0LWNvbnRyb2wnIHhlbmJ1cyBub2RlIGNv
bnRhaW5pbmcgdmFsdWUgJzEnLgotICAgICAgICAgKiBJZiBtdWx0aWNhc3QgY29udHJvbCBpcyBy
ZXF1ZXN0ZWQgdGhlbiBtdWx0aWNhc3QgZmxvb2RpbmcgaXMKLSAgICAgICAgICogZGlzYWJsZWQg
YW5kIHRoZSBmcm9udGVuZCBtdXN0IGV4cGxpY2l0bHkgcmVnaXN0ZXIgaXRzIGludGVyZXN0Ci0g
ICAgICAgICAqIGluIG11bHRpY2FzdCBncm91cHMgdXNpbmcgZHVtbXkgdHJhbnNtaXQgcmVxdWVz
dHMgY29udGFpbmluZwotICAgICAgICAgKiBNQ0FTVF97QURELERFTH0gZXh0cmEtaW5mbyBmcmFn
bWVudHMuCi0gICAgICAgICAqLwogICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDhf
dCBhZGRyWzZdOyAvKiBBZGRyZXNzIHRvIGFkZC9yZW1vdmUuICovCisgICAgICAgICAgICB1aW50
OF90IGFkZHJbNl07CiAgICAgICAgIH0gbWNhc3Q7Ci0KKyAgICAgICAgc3RydWN0IHsKKyAgICAg
ICAgICAgIHVpbnQ4X3QgdHlwZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgYWxnb3JpdGhtOworICAg
ICAgICAgICAgdWludDhfdCB2YWx1ZVs0XTsKKyAgICAgICAgfSBoYXNoOwogICAgICAgICB1aW50
MTZfdCBwYWRbM107CiAgICAgfSB1OwogfTsKQEAgLTM2MSwxNCArODg4LDE0IEBAIHR5cGVkZWYg
c3RydWN0IG5ldGlmX2V4dHJhX2luZm8gbmV0aWZfZXh0cmFfaW5mb190OwogCiBzdHJ1Y3QgbmV0
aWZfdHhfcmVzcG9uc2UgewogICAgIHVpbnQxNl90IGlkOwotICAgIGludDE2X3QgIHN0YXR1czsg
ICAgICAgLyogTkVUSUZfUlNQXyogKi8KKyAgICBpbnQxNl90ICBzdGF0dXM7CiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgbmV0aWZfdHhfcmVzcG9uc2UgbmV0aWZfdHhfcmVzcG9uc2VfdDsKIAogc3RydWN0
IG5ldGlmX3J4X3JlcXVlc3QgewogICAgIHVpbnQxNl90ICAgIGlkOyAgICAgICAgLyogRWNob2Vk
IGluIHJlc3BvbnNlIG1lc3NhZ2UuICAgICAgICAqLwogICAgIHVpbnQxNl90ICAgIHBhZDsKLSAg
ICBncmFudF9yZWZfdCBncmVmOyAgICAgIC8qIFJlZmVyZW5jZSB0byBpbmNvbWluZyBncmFudGVk
IGZyYW1lICovCisgICAgZ3JhbnRfcmVmX3QgZ3JlZjsKIH07CiB0eXBlZGVmIHN0cnVjdCBuZXRp
Zl9yeF9yZXF1ZXN0IG5ldGlmX3J4X3JlcXVlc3RfdDsKIApAQCAtMzg4LDExICs5MTUsMTUgQEAg
dHlwZWRlZiBzdHJ1Y3QgbmV0aWZfcnhfcmVxdWVzdCBuZXRpZl9yeF9yZXF1ZXN0X3Q7CiAjZGVm
aW5lIF9ORVRSWEZfZXh0cmFfaW5mbyAgICAgKDMpCiAjZGVmaW5lICBORVRSWEZfZXh0cmFfaW5m
byAgICAgKDFVPDxfTkVUUlhGX2V4dHJhX2luZm8pCiAKKy8qIFBhY2tldCBoYXMgR1NPIHByZWZp
eC4gRGVwcmVjYXRlZCBidXQgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgKi8KKyNkZWZpbmUg
X05FVFJYRl9nc29fcHJlZml4ICAgICAoNCkKKyNkZWZpbmUgIE5FVFJYRl9nc29fcHJlZml4ICAg
ICAoMVU8PF9ORVRSWEZfZ3NvX3ByZWZpeCkKKwogc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIHsK
ICAgICB1aW50MTZfdCBpZDsKLSAgICB1aW50MTZfdCBvZmZzZXQ7ICAgICAgIC8qIE9mZnNldCBp
biBwYWdlIG9mIHN0YXJ0IG9mIHJlY2VpdmVkIHBhY2tldCAgKi8KLSAgICB1aW50MTZfdCBmbGFn
czsgICAgICAgIC8qIE5FVFJYRl8qICovCi0gICAgaW50MTZfdCAgc3RhdHVzOyAgICAgICAvKiAt
dmU6IE5FVElGX1JTUF8qIDsgK3ZlOiBSeCdlZCBwa3Qgc2l6ZS4gKi8KKyAgICB1aW50MTZfdCBv
ZmZzZXQ7CisgICAgdWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZfdCAgc3RhdHVzOwogfTsKIHR5
cGVkZWYgc3RydWN0IG5ldGlmX3J4X3Jlc3BvbnNlIG5ldGlmX3J4X3Jlc3BvbnNlX3Q7CiAKZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9pby9yaW5nLmggYi9pbmNsdWRlL3hlbi9wdWJs
aWMvaW8vcmluZy5oCmluZGV4IGIxNjY2ZDguLjFkMjljYzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
eGVuL3B1YmxpYy9pby9yaW5nLmgKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2lvL3JpbmcuaApA
QCAtMTExLDcgKzExMSw3IEBAIHN0cnVjdCBfX25hbWUjI19zcmluZyB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHVpbnQ4X3Qg
bXNnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgfSB0YXBpZl91c2VyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICAgICAgdWludDhfdCBwdnRfcGFkWzRdOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHByaXZhdGU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9
IHB2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICB1aW50OF90IF9fcGFkWzQ0XTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB1bmlvbiBfX25hbWUjI19zcmluZ19l
bnRyeSByaW5nWzFdOyAvKiB2YXJpYWJsZS1sZW5ndGggKi8gICAgICAgICAgIFwKIH07ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKQEAgLTE1Niw3ICsxNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNr
X3JpbmcgX19uYW1lIyNfYmFja19yaW5nX3QKICNkZWZpbmUgU0hBUkVEX1JJTkdfSU5JVChfcykg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoX3MpLT5y
ZXFfcHJvZCAgPSAoX3MpLT5yc3BfcHJvZCAgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAoX3MpLT5yZXFfZXZlbnQgPSAoX3MpLT5yc3BfZXZlbnQgPSAxOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAodm9pZCltZW1zZXQoKF9zKS0+cHJpdmF0ZS5w
dnRfcGFkLCAwLCBzaXplb2YoKF9zKS0+cHJpdmF0ZS5wdnRfcGFkKSk7IFwKKyAgICAodm9pZClt
ZW1zZXQoKF9zKS0+cHZ0LnB2dF9wYWQsIDAsIHNpemVvZigoX3MpLT5wdnQucHZ0X3BhZCkpOyAg
ICAgIFwKICAgICAodm9pZCltZW1zZXQoKF9zKS0+X19wYWQsIDAsIHNpemVvZigoX3MpLT5fX3Bh
ZCkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUoMCkKIApAQCAtMjEyLDYgKzIxMiwyMCBA
QCB0eXBlZGVmIHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgX19uYW1lIyNfYmFja19yaW5nX3QK
ICNkZWZpbmUgUklOR19HRVRfUkVRVUVTVChfciwgX2lkeCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAoJigoX3IpLT5zcmluZy0+cmluZ1soKF9pZHgpICYgKFJJ
TkdfU0laRShfcikgLSAxKSldLnJlcSkpCiAKKy8qCisgKiBHZXQgYSBsb2NhbCBjb3B5IG9mIGEg
cmVxdWVzdC4KKyAqCisgKiBVc2UgdGhpcyBpbiBwcmVmZXJlbmNlIHRvIFJJTkdfR0VUX1JFUVVF
U1QoKSBzbyBhbGwgcHJvY2Vzc2luZyBpcworICogZG9uZSBvbiBhIGxvY2FsIGNvcHkgdGhhdCBj
YW5ub3QgYmUgbW9kaWZpZWQgYnkgdGhlIG90aGVyIGVuZC4KKyAqCisgKiBOb3RlIHRoYXQgaHR0
cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTgxNDUgbWF5IGNhdXNl
IHRoaXMKKyAqIHRvIGJlIGluZWZmZWN0aXZlIHdoZXJlIF9yZXEgaXMgYSBzdHJ1Y3Qgd2hpY2gg
Y29uc2lzdHMgb2Ygb25seSBiaXRmaWVsZHMuCisgKi8KKyNkZWZpbmUgUklOR19DT1BZX1JFUVVF
U1QoX3IsIF9pZHgsIF9yZXEpIGRvIHsJCQkJXAorCS8qIFVzZSB2b2xhdGlsZSB0byBmb3JjZSB0
aGUgY29weSBpbnRvIF9yZXEuICovCQkJXAorCSooX3JlcSkgPSAqKHZvbGF0aWxlIHR5cGVvZihf
cmVxKSlSSU5HX0dFVF9SRVFVRVNUKF9yLCBfaWR4KTsJXAorfSB3aGlsZSAoMCkKKwogI2RlZmlu
ZSBSSU5HX0dFVF9SRVNQT05TRShfciwgX2lkeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICgmKChfciktPnNyaW5nLT5yaW5nWygoX2lkeCkgJiAoUklOR19TSVpF
KF9yKSAtIDEpKV0ucnNwKSkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL3RyYWNl
LmggYi9pbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaAppbmRleCAxYTI4NTljLi45NWIwMGU4IDEw
MDY0NAotLS0gYS9pbmNsdWRlL3hlbi9wdWJsaWMvdHJhY2UuaAorKysgYi9pbmNsdWRlL3hlbi9w
dWJsaWMvdHJhY2UuaApAQCAtNzUsNyArNzUsNyBAQAogLyogUGVyLXNjaGVkdWxlciBJRHMsIHRv
IGlkZW50aWZ5IHNjaGVkdWxlciBzcGVjaWZpYyBldmVudHMgKi8KICNkZWZpbmUgVFJDX1NDSEVE
X0NTQ0hFRCAgIDAKICNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRDIgIDEKLSNkZWZpbmUgVFJDX1ND
SEVEX1NFREYgICAgIDIKKy8qICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9TRURGIDIgKFJlbW92ZWQp
ICovCiAjZGVmaW5lIFRSQ19TQ0hFRF9BUklOQzY1MyAzCiAjZGVmaW5lIFRSQ19TQ0hFRF9SVERT
ICAgICA0CiAKQEAgLTg1LDYgKzg1LDkgQEAKICAgICAgICgoVFJDX1NDSEVEXyMjX2MgPDwgVFJD
X1NDSEVEX0lEX1NISUZUKSAmIFRSQ19TQ0hFRF9JRF9NQVNLKSApICsgXAogICAgIChfZSAmIFRS
Q19TQ0hFRF9FVlRfTUFTSykgKQogCisvKiBUcmFjZSBjbGFzc2VzIGZvciBET00wIG9wZXJhdGlv
bnMgKi8KKyNkZWZpbmUgVFJDX0RPTTBfRE9NT1BTICAgICAweDAwMDQxMDAwICAgLyogRG9tYWlu
cyBtYW5pcHVsYXRpb25zICovCisKIC8qIFRyYWNlIGNsYXNzZXMgZm9yIEhhcmR3YXJlICovCiAj
ZGVmaW5lIFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAwMCAgIC8qIFBvd2VyIG1hbmFnZW1l
bnQgdHJhY2VzICovCiAjZGVmaW5lIFRSQ19IV19JUlEgICAgICAgICAgMHgwMDgwMjAwMCAgIC8q
IFRyYWNlcyByZWxhdGluZyB0byB0aGUgaGFuZGxpbmcgb2YgSVJRcyAqLwpAQCAtMTEzLDYgKzEx
Niw5IEBACiAjZGVmaW5lIFRSQ19TQ0hFRF9TV0lUQ0hfSU5GTkVYVCAoVFJDX1NDSEVEX1ZFUkJP
U0UgKyAxNSkKICNkZWZpbmUgVFJDX1NDSEVEX1NIVVRET1dOX0NPREUgIChUUkNfU0NIRURfVkVS
Qk9TRSArIDE2KQogCisjZGVmaW5lIFRSQ19ET00wX0RPTV9BREQgICAgICAgICAoVFJDX0RPTTBf
RE9NT1BTICsgMSkKKyNkZWZpbmUgVFJDX0RPTTBfRE9NX1JFTSAgICAgICAgIChUUkNfRE9NMF9E
T01PUFMgKyAyKQorCiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9NQVAgICAgICAoVFJDX01F
TSArIDEpCiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9VTk1BUCAgICAoVFJDX01FTSArIDIp
CiAjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9UUkFOU0ZFUiAoVFJDX01FTSArIDMpCmRpZmYg
LS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oIGIvaW5jbHVkZS94ZW4vcHVi
bGljL3hlbi1jb21wYXQuaAppbmRleCBlMjNjMzcxLi4yZWVhMGUyIDEwMDY0NAotLS0gYS9pbmNs
dWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5oCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4t
Y29tcGF0LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9DT01Q
QVRfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hfXwogCi0jZGVmaW5lIF9f
WEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fIDB4MDAwNDA2MDAKKyNkZWZpbmUgX19YRU5f
TEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDcwMAogCiAjaWYgZGVmaW5lZChfX1hF
Tl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRj
aGluZyBoZWFkZXJzIGFuZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLwpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL3hl
bi5oCmluZGV4IDAwNjYzMWIuLjIwNTdiNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3B1Ymxp
Yy94ZW4uaAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLmgKQEAgLTUyLDYgKzUyLDE5IEBA
IERFRklORV9YRU5fR1VFU1RfSEFORExFKHZvaWQpOwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0X3QpOwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KTsKIERFRklORV9Y
RU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKKworLyogVHVybiBhIHBsYWluIG51bWJlciBp
bnRvIGEgQyB1bnNpZ25lZCAoTE9OR19QVFIpIGNvbnN0YW50LiAqLworI2RlZmluZSBfX3hlbl9t
a191aW50KHgpICB4ICMjIFUKKyNkZWZpbmUgX194ZW5fbWtfdWxvbmcoeCkgeCAjIyBVTAorI2Rl
ZmluZSB4ZW5fbWtfdWludCh4KSAgICBfX3hlbl9ta191aW50KHgpCisjZGVmaW5lIHhlbl9ta191
bG9uZyh4KSAgIF9feGVuX21rX3Vsb25nKHgpCisKKyNlbHNlCisKKy8qIEluIGFzc2VtYmx5IGNv
ZGUgd2UgY2Fubm90IHVzZSBDIG51bWVyaWMgY29uc3RhbnQgc3VmZml4ZXMuICovCisjZGVmaW5l
IHhlbl9ta191aW50KHgpICB4CisjZGVmaW5lIHhlbl9ta191bG9uZyh4KSB4CisKICNlbmRpZgog
CiAvKgpAQCAtMTAxLDYgKzExNCw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl91bG9u
Z190KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX2tleGVjX29wICAgICAgICAgICAgIDM3CiAjZGVm
aW5lIF9fSFlQRVJWSVNPUl90bWVtX29wICAgICAgICAgICAgICAzOAogI2RlZmluZSBfX0hZUEVS
VklTT1JfeGNfcmVzZXJ2ZWRfb3AgICAgICAgMzkgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAq
LworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11X29wICAgICAgICAgICAgNDAKIAogLyogQXJj
aGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgX19I
WVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAgIDQ4CkBAIC0xNjAsNiArMTc0LDcgQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogI2RlZmluZSBWSVJRX01FTV9FVkVO
VCAgMTAgLyogRy4gKERPTTApIEEgbWVtb3J5IGV2ZW50IGhhcyBvY2N1cmVkICAgICAgICAgICAq
LwogI2RlZmluZSBWSVJRX1hDX1JFU0VSVkVEIDExIC8qIEcuIFJlc2VydmVkIGZvciBYZW5DbGll
bnQgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBWSVJRX0VOT01FTSAgICAgMTIgLyog
Ry4gKERPTTApIExvdyBvbiBoZWFwIG1lbW9yeSAgICAgICAqLworI2RlZmluZSBWSVJRX1hFTlBN
VSAgICAgMTMgLyogVi4gIFBNQyBpbnRlcnJ1cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwogCiAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgVklSUSBkZWZpbml0aW9ucy4gKi8KICNk
ZWZpbmUgVklSUV9BUkNIXzAgICAgMTYKQEAgLTQ0OSwxMyArNDY0LDEzIEBAIERFRklORV9YRU5f
R1VFU1RfSEFORExFKG1tdWV4dF9vcF90KTsKIC8qIFdoZW4gc3BlY2lmeWluZyBVVk1GX01VTFRJ
LCBhbHNvIE9SIGluIGEgcG9pbnRlciB0byBhIENQVSBiaXRtYXAuICAgKi8KIC8qIFVWTUZfTE9D
QUwgaXMgbWVyZWx5IFVWTUZfTVVMVEkgd2l0aCBhIE5VTEwgYml0bWFwIHBvaW50ZXIuICAgICAg
ICAgKi8KIC8qIGAgZW51bSB1dm1fZmxhZ3MgeyAqLwotI2RlZmluZSBVVk1GX05PTkUgICAgICAg
ICAgICAgICAoMFVMPDwwKSAvKiBObyBmbHVzaGluZyBhdCBhbGwuICAgKi8KLSNkZWZpbmUgVVZN
Rl9UTEJfRkxVU0ggICAgICAgICAgKDFVTDw8MCkgLyogRmx1c2ggZW50aXJlIFRMQihzKS4gICov
Ci0jZGVmaW5lIFVWTUZfSU5WTFBHICAgICAgICAgICAgICgyVUw8PDApIC8qIEZsdXNoIG9ubHkg
b25lIGVudHJ5LiAqLwotI2RlZmluZSBVVk1GX0ZMVVNIVFlQRV9NQVNLICAgICAoM1VMPDwwKQot
I2RlZmluZSBVVk1GX01VTFRJICAgICAgICAgICAgICAoMFVMPDwyKSAvKiBGbHVzaCBzdWJzZXQg
b2YgVExCcy4gKi8KLSNkZWZpbmUgVVZNRl9MT0NBTCAgICAgICAgICAgICAgKDBVTDw8MikgLyog
Rmx1c2ggbG9jYWwgVExCLiAgICAgICovCi0jZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgICAg
ICgxVUw8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAqLworI2RlZmluZSBVVk1GX05PTkUg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDApIC8qIE5vIGZsdXNoaW5nIGF0IGFsbC4gICAq
LworI2RlZmluZSBVVk1GX1RMQl9GTFVTSCAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDApIC8qIEZs
dXNoIGVudGlyZSBUTEIocykuICAqLworI2RlZmluZSBVVk1GX0lOVkxQRyAgICAgICAgICh4ZW5f
bWtfdWxvbmcoMik8PDApIC8qIEZsdXNoIG9ubHkgb25lIGVudHJ5LiAqLworI2RlZmluZSBVVk1G
X0ZMVVNIVFlQRV9NQVNLICh4ZW5fbWtfdWxvbmcoMyk8PDApCisjZGVmaW5lIFVWTUZfTVVMVEkg
ICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1c2ggc3Vic2V0IG9mIFRMQnMuICov
CisjZGVmaW5lIFVWTUZfTE9DQUwgICAgICAgICAgKHhlbl9ta191bG9uZygwKTw8MikgLyogRmx1
c2ggbG9jYWwgVExCLiAgICAgICovCisjZGVmaW5lIFVWTUZfQUxMICAgICAgICAgICAgKHhlbl9t
a191bG9uZygxKTw8MikgLyogRmx1c2ggYWxsIFRMQnMuICAgICAgICovCiAvKiBgIH0gKi8KIAog
LyoKQEAgLTQ4NiwxNyArNTAxLDM1IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1tdWV4dF9v
cF90KTsKIC8qIHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KICNk
ZWZpbmUgVk1BU1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMyAgICAgMwogCi0jZGVmaW5lIE1BWF9W
TUFTU1RfVFlQRSAgICAgICAgICAgICAgICAgIDMKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJl
aGF2aW91ciBmb3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9t
IGRvX2lyZXQoKSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJv
dW5jZSBmcmFtZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBm
b3IgdGhlIHB1cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVf
YXJjaGl0ZWN0dXJhbF9pb3BsICAgNAogCi0jaWZuZGVmIF9fQVNTRU1CTFlfXworLyoKKyAqIHg4
Ni82NCBndWVzdHM6IHN0cmljdGx5IGhpZGUgTTJQIGZyb20gdXNlciBtb2RlLgorICogVGhpcyBh
bGxvd3MgdGhlIGd1ZXN0IHRvIGNvbnRyb2wgcmVzcGVjdGl2ZSBoeXBlcnZpc29yIGJlaGF2aW9y
OgorICogLSB3aGVuIG5vdCBzZXQsIEw0IHRhYmxlcyBnZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNw
ZWN0aXZlIHNsb3QgYmxhbmssCisgKiAgIGFuZCB3aGVuZXZlciB0aGUgTDQgdGFibGUgZ2V0cyB1
c2VkIGFzIGEga2VybmVsIG9uZSB0aGUgbWlzc2luZworICogICBtYXBwaW5nIGdldHMgaW5zZXJ0
ZWQsCisgKiAtIHdoZW4gc2V0LCBMNCB0YWJsZXMgZ2V0IGNyZWF0ZWQgd2l0aCB0aGUgcmVzcGVj
dGl2ZSBzbG90IGluaXRpYWxpemVkCisgKiAgIGFzIGJlZm9yZSwgYW5kIHdoZW5ldmVyIHRoZSBM
NCB0YWJsZSBnZXRzIHVzZWQgYXMgYSB1c2VyIG9uZSB0aGUKKyAqICAgbWFwcGluZyBnZXRzIHph
cHBlZC4KKyAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9tMnBfc3RyaWN0ICAgICAgICAgICAzMgog
Ci10eXBlZGVmIHVpbnQxNl90IGRvbWlkX3Q7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDA2MDAKKyNkZWZpbmUgTUFYX1ZNQVNTVF9UWVBFICAgICAgICAgICAgICAgICAg
MworI2VuZGlmCiAKIC8qIERvbWFpbiBpZHMgPj0gRE9NSURfRklSU1RfUkVTRVJWRUQgY2Fubm90
IGJlIHVzZWQgZm9yIG9yZGluYXJ5IGRvbWFpbnMuICovCi0jZGVmaW5lIERPTUlEX0ZJUlNUX1JF
U0VSVkVEICgweDdGRjBVKQorI2RlZmluZSBET01JRF9GSVJTVF9SRVNFUlZFRCB4ZW5fbWtfdWlu
dCgweDdGRjApCiAKIC8qIERPTUlEX1NFTEYgaXMgdXNlZCBpbiBjZXJ0YWluIGNvbnRleHRzIHRv
IHJlZmVyIHRvIG9uZXNlbGYuICovCi0jZGVmaW5lIERPTUlEX1NFTEYgKDB4N0ZGMFUpCisjZGVm
aW5lIERPTUlEX1NFTEYgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZGMCkKIAogLyoKICAqIERP
TUlEX0lPIGlzIHVzZWQgdG8gcmVzdHJpY3QgcGFnZS10YWJsZSB1cGRhdGVzIHRvIG1hcHBpbmcg
SS9PIG1lbW9yeS4KQEAgLTUwNyw3ICs1NDAsNyBAQCB0eXBlZGVmIHVpbnQxNl90IGRvbWlkX3Q7
CiAgKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gTU1VRVhUX1NFVF9GT1JFSUdORE9NLCBidXQg
aW4gdGhhdCBjb250ZXh0IGNhbgogICogYmUgc3BlY2lmaWVkIGJ5IGFueSBjYWxsaW5nIGRvbWFp
bi4KICAqLwotI2RlZmluZSBET01JRF9JTyAgICgweDdGRjFVKQorI2RlZmluZSBET01JRF9JTyAg
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjEpCiAKIC8qCiAgKiBET01JRF9YRU4gaXMgdXNl
ZCB0byBhbGxvdyBwcml2aWxlZ2VkIGRvbWFpbnMgdG8gbWFwIHJlc3RyaWN0ZWQgcGFydHMgb2YK
QEAgLTUxNSwxNyArNTQ4LDIxIEBAIHR5cGVkZWYgdWludDE2X3QgZG9taWRfdDsKICAqIFRoaXMg
b25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VUX0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBl
cm1pdHRlZCBpZgogICogdGhlIGNhbGxlciBpcyBwcml2aWxlZ2VkLgogICovCi0jZGVmaW5lIERP
TUlEX1hFTiAgKDB4N0ZGMlUpCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGMikKIAogLyoKICAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBz
aGFyYWJsZSBwYWdlcyAqLwotI2RlZmluZSBET01JRF9DT1cgICgweDdGRjNVKQorI2RlZmluZSBE
T01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjMpCiAKIC8qIERPTUlEX0lOVkFM
SUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRoIHVua25vd24gb3duZXIuICovCi0jZGVm
aW5lIERPTUlEX0lOVkFMSUQgKDB4N0ZGNFUpCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAg
IHhlbl9ta191aW50KDB4N0ZGNCkKIAogLyogSWRsZSBkb21haW4uICovCi0jZGVmaW5lIERPTUlE
X0lETEUgKDB4N0ZGRlUpCisjZGVmaW5lIERPTUlEX0lETEUgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlwZWRlZiB1aW50MTZfdCBkb21p
ZF90OwogCiAvKgogICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX21tdV91
cGRhdGUoKS4KQEAgLTU4NSwxMCArNjIyLDE4IEBAIHN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB7CiAg
ICAgICovCiAgICAgdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7CiAgICAgaW50OF90ICAgdHNj
X3NoaWZ0OworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPiAweDA0MDYwMAorICAgIHVp
bnQ4X3QgIGZsYWdzOworICAgIHVpbnQ4X3QgIHBhZDFbMl07CisjZWxzZQogICAgIGludDhfdCAg
IHBhZDFbM107CisjZW5kaWYKIH07IC8qIDMyIGJ5dGVzICovCiB0eXBlZGVmIHN0cnVjdCB2Y3B1
X3RpbWVfaW5mbyB2Y3B1X3RpbWVfaW5mb190OwogCisjZGVmaW5lIFhFTl9QVkNMT0NLX1RTQ19T
VEFCTEVfQklUICAgICAoMSA8PCAwKQorI2RlZmluZSBYRU5fUFZDTE9DS19HVUVTVF9TVE9QUEVE
ICAgICAgKDEgPDwgMSkKKwogc3RydWN0IHZjcHVfaW5mbyB7CiAgICAgLyoKICAgICAgKiAnZXZ0
Y2huX3VwY2FsbF9wZW5kaW5nJyBpcyB3cml0dGVuIG5vbi16ZXJvIGJ5IFhlbiB0byBpbmRpY2F0
ZQpAQCAtNzA0LDI0ICs3NDksMjcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2hhcmVkX2luZm8gc2hhcmVk
X2luZm9fdDsKICAqICAzLiBUaGlzIHRoZSBvcmRlciBvZiBib290c3RyYXAgZWxlbWVudHMgaW4g
dGhlIGluaXRpYWwgdmlydHVhbCByZWdpb246CiAgKiAgICAgIGEuIHJlbG9jYXRlZCBrZXJuZWwg
aW1hZ2UKICAqICAgICAgYi4gaW5pdGlhbCByYW0gZGlzayAgICAgICAgICAgICAgW21vZF9zdGFy
dCwgbW9kX2xlbl0KKyAqICAgICAgICAgKG1heSBiZSBvbWl0dGVkKQogICogICAgICBjLiBsaXN0
IG9mIGFsbG9jYXRlZCBwYWdlIGZyYW1lcyBbbWZuX2xpc3QsIG5yX3BhZ2VzXQogICogICAgICAg
ICAodW5sZXNzIHJlbG9jYXRlZCBkdWUgdG8gWEVOX0VMRk5PVEVfSU5JVF9QMk0pCiAgKiAgICAg
IGQuIHN0YXJ0X2luZm9fdCBzdHJ1Y3R1cmUgICAgICAgIFtyZWdpc3RlciBFU0kgKHg4NildCi0g
KiAgICAgIGUuIGJvb3RzdHJhcCBwYWdlIHRhYmxlcyAgICAgICAgIFtwdF9iYXNlIGFuZCBDUjMg
KHg4NildCi0gKiAgICAgIGYuIGJvb3RzdHJhcCBzdGFjayAgICAgICAgICAgICAgIFtyZWdpc3Rl
ciBFU1AgKHg4NildCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZG9tMCB0aGlzIHBhZ2UgY29udGFp
bnMgdGhlIGNvbnNvbGUgaW5mbywgdG9vCisgKiAgICAgIGUuIHVubGVzcyBkb20wOiB4ZW5zdG9y
ZSByaW5nIHBhZ2UKKyAqICAgICAgZi4gdW5sZXNzIGRvbTA6IGNvbnNvbGUgcmluZyBwYWdlCisg
KiAgICAgIGcuIGJvb3RzdHJhcCBwYWdlIHRhYmxlcyAgICAgICAgIFtwdF9iYXNlIGFuZCBDUjMg
KHg4NildCisgKiAgICAgIGguIGJvb3RzdHJhcCBzdGFjayAgICAgICAgICAgICAgIFtyZWdpc3Rl
ciBFU1AgKHg4NildCiAgKiAgNC4gQm9vdHN0cmFwIGVsZW1lbnRzIGFyZSBwYWNrZWQgdG9nZXRo
ZXIsIGJ1dCBlYWNoIGlzIDRrQi1hbGlnbmVkLgotICogIDUuIFRoZSBpbml0aWFsIHJhbSBkaXNr
IG1heSBiZSBvbWl0dGVkLgotICogIDYuIFRoZSBsaXN0IG9mIHBhZ2UgZnJhbWVzIGZvcm1zIGEg
Y29udGlndW91cyAncHNldWRvLXBoeXNpY2FsJyBtZW1vcnkKKyAqICA1LiBUaGUgbGlzdCBvZiBw
YWdlIGZyYW1lcyBmb3JtcyBhIGNvbnRpZ3VvdXMgJ3BzZXVkby1waHlzaWNhbCcgbWVtb3J5CiAg
KiAgICAgbGF5b3V0IGZvciB0aGUgZG9tYWluLiBJbiBwYXJ0aWN1bGFyLCB0aGUgYm9vdHN0cmFw
IHZpcnR1YWwtbWVtb3J5CiAgKiAgICAgcmVnaW9uIGlzIGEgMToxIG1hcHBpbmcgdG8gdGhlIGZp
cnN0IHNlY3Rpb24gb2YgdGhlIHBzZXVkby1waHlzaWNhbCBtYXAuCi0gKiAgNy4gQWxsIGJvb3Rz
dHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFibGUgZm9yIHRoZSBndWVzdCBPUy4g
VGhlCisgKiAgNi4gQWxsIGJvb3RzdHJhcCBlbGVtZW50cyBhcmUgbWFwcGVkIHJlYWQtd3JpdGFi
bGUgZm9yIHRoZSBndWVzdCBPUy4gVGhlCiAgKiAgICAgb25seSBleGNlcHRpb24gaXMgdGhlIGJv
b3RzdHJhcCBwYWdlIHRhYmxlLCB3aGljaCBpcyBtYXBwZWQgcmVhZC1vbmx5LgotICogIDguIFRo
ZXJlIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVhc3QgNTEya0IgcGFkZGluZyBhZnRlciB0aGUg
ZmluYWwKKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVkIHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBh
ZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCiAgKiAgICAgYm9vdHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vz
c2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lvbiBpcwogICogICAgIGV4dGVuZGVkIGJ5
IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KICAqCiAgKiBOb3RlOiBQcmlvciB0byAyNTgz
MzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFkanVzdCBEb20wIGluaXRpYWwgcGFnZQot
ICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRoZSBwdF9iYXNlICgzLmUgYWJvdmUpIGFu
ZCBjcjMgdG8gbm90IHBvaW50CisgKiB0YWJsZSBsYXlvdXQiKSBhIGJ1ZyBjYXVzZWQgdGhlIHB0
X2Jhc2UgKDMuZyBhYm92ZSkgYW5kIGNyMyB0byBub3QgcG9pbnQKICAqIHRvIHRoZSBzdGFydCBv
ZiB0aGUgZ3Vlc3QgcGFnZSB0YWJsZXMgKGl0IHdhcyBvZmZzZXQgYnkgdHdvIHBhZ2VzKS4KICAq
IFRoaXMgb25seSBtYW5pZmVzdGVkIGl0c2VsZiBvbiAzMi1vbi02NCBkb20wIGtlcm5lbHMgYW5k
IG5vdCAzMi1vbi02NCBkb21VCiAgKiBvciA2NC1iaXQga2VybmVscyBvZiBhbnkgY29sb3VyLiBU
aGUgcGFnZSB0YWJsZXMgZm9yIGEgMzItb24tNjQgZG9tMCBnb3QKQEAgLTc2NSw2ICs4MTMsNTIg
QEAgc3RydWN0IHN0YXJ0X2luZm8gewogfTsKIHR5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3Rh
cnRfaW5mb190OwogCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZI
IGd1ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQg
cGh5c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVz
cyBmaWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1h
Z2ljIHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICst
LS0tLS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhp
cyBzdHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAg
ICAgICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJs
ZS4KKyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJ
Rl94eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxl
cyAgICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICst
LS0tLS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJl
c3Mgb2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlv
dXQgb2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAq
ICAgIHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxp
bmUsCisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3Ry
aW5nLgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwg
UGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAg
Ky0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRo
ZSBtb2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0t
LS0tLS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0
aGUgbW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAg
ICAgIHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0t
LS0rCisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29t
bWFuZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFT
Q0lJIHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAg
ICAgICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQg
c2l6ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4K
KyAqCisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBk
YXRhIGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NU
QVJUX01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKwogLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRv
bTAgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLwogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJT
SU9OX18gPCAweDAwMDMwMjAzCiAjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5t
Zm4KQEAgLTc3Nyw2ICs4NzEsOCBAQCB0eXBlZGVmIHN0cnVjdCBzdGFydF9pbmZvIHN0YXJ0X2lu
Zm9fdDsKICNkZWZpbmUgU0lGX0lOSVRET01BSU4gICAgKDE8PDEpICAvKiBJcyB0aGlzIHRoZSBp
bml0aWFsIGNvbnRyb2wgZG9tYWluPyAqLwogI2RlZmluZSBTSUZfTVVMVElCT09UX01PRCAoMTw8
MikgIC8qIElzIG1vZF9zdGFydCBhIG11bHRpYm9vdCBtb2R1bGU/ICovCiAjZGVmaW5lIFNJRl9N
T0RfU1RBUlRfUEZOICgxPDwzKSAgLyogSXMgbW9kX3N0YXJ0IGEgUEZOPyAqLworI2RlZmluZSBT
SUZfVklSVF9QMk1fNFRPT0xTICgxPDw0KSAvKiBEbyBYZW4gdG9vbHMgdW5kZXJzdGFuZCBhIHZp
cnQuIG1hcHBlZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQLT5N
IG1ha2luZyB0aGUgMyBsZXZlbCB0cmVlIG9ic29sZXRlPyAqLwogI2RlZmluZSBTSUZfUE1fTUFT
SyAgICAgICAoMHhGRjw8OCkgLyogcmVzZXJ2ZSAxIGJ5dGUgZm9yIHhlbi1wbSBvcHRpb25zICov
CiAKIC8qCkBAIC04NTcsMjAgKzk1MywxMSBAQCB0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25z
b2xlX2luZm8gewogCiB0eXBlZGVmIHVpbnQ4X3QgeGVuX2RvbWFpbl9oYW5kbGVfdFsxNl07CiAK
LS8qIFR1cm4gYSBwbGFpbiBudW1iZXIgaW50byBhIEMgVUxPTkdfUFRSIGNvbnN0YW50LiAqLwot
I2RlZmluZSBfX21rX3Vuc2lnbmVkX2xvbmcoeCkgeCAjIyBVTAotI2RlZmluZSBta191bnNpZ25l
ZF9sb25nKHgpIF9fbWtfdW5zaWduZWRfbG9uZyh4KQotCiBfX0RFRklORV9YRU5fR1VFU1RfSEFO
RExFKHVpbnQ4LCAgdWludDhfdCk7CiBfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwg
dWludDE2X3QpOwogX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsK
IF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDY0LCB1aW50NjRfdCk7CiAKLSNlbHNlIC8q
IF9fQVNTRU1CTFlfXyAqLwotCi0vKiBJbiBhc3NlbWJseSBjb2RlIHdlIGNhbm5vdCB1c2UgQyBu
dW1lcmljIGNvbnN0YW50IHN1ZmZpeGVzLiAqLwotI2RlZmluZSBta191bnNpZ25lZF9sb25nKHgp
IHgKLQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KIAogLyogRGVmYXVsdCBkZWZpbml0aW9u
cyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9tY3RsL3N5c2N0bC4gKi8KZGlmZiAtLWdpdCBhL2luY2x1
ZGUveGVuL3hlbi9lcnJuby5oIGIvaW5jbHVkZS94ZW4veGVuL2Vycm5vLmgKaW5kZXggMzE3ODQ2
Ni4uNjliMjhkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuL2Vycm5vLmgKKysrIGIvaW5j
bHVkZS94ZW4veGVuL2Vycm5vLmgKQEAgLTEsMTggKzEsMTYgQEAKICNpZm5kZWYgX19YRU5fRVJS
Tk9fSF9fCiAjZGVmaW5lIF9fWEVOX0VSUk5PX0hfXwogCi0jaW5jbHVkZSA8cHVibGljL2Vycm5v
Lmg+Ci0KICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKLSNkZWZpbmUgWEVOX0VSUk5PKG5hbWUsIHZh
bHVlKSBuYW1lID0gWEVOXyMjbmFtZSwKKyNkZWZpbmUgWEVOX0VSUk5PKG5hbWUsIHZhbHVlKSBu
YW1lID0gdmFsdWUsCiBlbnVtIHsKICNpbmNsdWRlIDxwdWJsaWMvZXJybm8uaD4KIH07CiAKICNl
bHNlIC8qICFfX0FTU0VNQkxZX18gKi8KIAotI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUp
IC5lcXUgbmFtZSwgWEVOXyMjbmFtZQorI2RlZmluZSBYRU5fRVJSTk8obmFtZSwgdmFsdWUpIC5l
cXUgbmFtZSwgdmFsdWUKICNpbmNsdWRlIDxwdWJsaWMvZXJybm8uaD4KIAogI2VuZGlmIC8qIF9f
QVNTRU1CTFlfXyAqLwotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWW-0006aq-Me; Tue, 17 May 2016 16:07:08 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWV-0006Zx-N8
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:07 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 9B/7A-07120-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRWlGSWpSXmKPExsXiVRvkorvS0Tr
 c4OgkU4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMaHlFXPBsj9MFSvb/jE2MHa3M3UxcnEICcxm
 lLi49zGYwyLwkkVi7fzbzCCOhEA/q8SN7VPYuxg5gZwYiUufG9kg7HKJRU3nWUFsIQFFieZrF
 9ghRi1jknjRNhGsgU1AXeL2+8VQzXYSn2bdBLNFBFQlri0/BjaIWUBL4uGGeYwgtrCAl8S1yT
 eYQGwWoJqZSyHqeQXcJU4dW8IMMUdOYu/k1SwgNqeAh8Ss13/YIY5wl2jffp1tAqPgAkaGVYz
 qxalFZalFuoZ6SUWZ6RkluYmZObqGBmZ6uanFxYnpqTmJScV6yfm5mxiBQccABDsYdz53OsQo
 ycGkJMp7wcQ6XIgvKT+lMiOxOCO+qDQntfgQowwHh5IEb4MDUE6wKDU9tSItMwcY/jBpCQ4eJ
 RFeO5A0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ87KDFAmAFGWU5sGNgMXiJUZZKWFeRq
 CjhHgKUotyM0tQ5V8xinMwKgnzVoFM4cnMK4Hb9AroCCagIyaYWYAcUZKIkJJqYKycbfLx+Ve
 /eifrgC4RpY6S2xMFmZkKRW9+n8NbmKfs/GzXhe2ra/vPZVbefTexMvqwlHj/U9nPpi9W1a1a
 +SnbKPfftGnm0duXfr7NleNVyGHOdqfjicyBFbeE9aVqy39MPS+99Kb+WleL01vjrzrs54y82
 SnpHV+UNvmI2bOVxd+NEhaEOSuxFGckGmoxFxUnAgDDolR3wAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1463501225!14551697!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19077 invoked from network); 17 May 2016 16:07:05 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:05 -0000
Received: by mail-wm0-f68.google.com with SMTP id e201so5886249wme.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=CHZdsqTHPmvvhX+GWImhSHVIkB93K699ivBNZJbv2vQ=;
 b=zFJkGDr86aaFJX9kFaPmWwmOOewjAhCkAcS7fFb6efjULB3Aw7RM8wh5LV/+PxbxdI
 LbN47itRkiZetMyTQ586aPTCGX5jG6HuDPOToDjddvXR0ppBlfiKHJ8WQqx3SWHRQTBi
 oC0RkWXe8Ys7n4Rft9dWsietKmRBl4Sz0aEv4n8pUFeuexKCU0rohTurL10g8a6Hdo0F
 zB4q5BfmHj3N3ewsXjT1lI4fbGmyobsmhrRb3NJnXMDczA7oZ9XPvtkhuEqOIfslsDGW
 QHYCD6QYzTfVbwYPh+C/5Uba5LmsKvjfdfARcmQSS+/jboGV6feb+BHRqsZLnvBnDcCE
 Ugfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=CHZdsqTHPmvvhX+GWImhSHVIkB93K699ivBNZJbv2vQ=;
 b=Op1MWzkJrO0GldiQkjmSVQ0BZvvo/wdeRPrh3itTBfZP60BtwLOx55bwpjSj6RH8tW
 oRTNYSo6sugjpRfv+JFXPiumVMFrSVN+63CRWssOeXrtA2VnNNUDoVTYSOGe9cqsjLeI
 UuF+/vCV0IFyN++FzQRtRBPSiJuPEQZidb1vYHwKkCFti69bSS5vjA33FrNYBPzgrdHr
 hsU+MQcmW3XmM7Qk9TdD9OM+ZPgdT/WvuqMPA9C4pSichBnmj2XDtr8GKPs83npPxl5E
 wJexbdAG5a+JE+6HTLF/CRuTZO9MP0JRZgUuS9nJah5MsABF18jOUjf23QdoH2znpBsb
 qFcQ==
X-Gm-Message-State: AOPr4FW6ntv8xDjVowMe3sGV/WaEtJXsMYZ1a1+PxcYDGE/PVdP1LkwRgHcnh2KjvRT9Bw==
X-Received: by 10.194.76.137 with SMTP id k9mr2344311wjw.3.1463501225449;
 Tue, 17 May 2016 09:07:05 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.04
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:04 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:03 +0100
Message-Id: <1463501224-12940-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/4] Add new functionality to VIF interface
	to support RSS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgZXh0cmEgZnVuY3Rpb25hbGl0eSBpbnRvIHRo
ZSBWSUYgaW50ZXJmYWNlCnRvIG1ha2UgdXNlIG9mIHRoZSBuZXcgY29udHJvbCByaW5nIHRvIHN1
cHBvcnQgTkRJUyBSU1MgaW4gWEVOTkVULgoKVGhlIFZJRiBpbnRlcmZhY2UgdmVyc2lvbiBpcyBi
dW1wZWQgdG8gNiBhbmQgdGhlIFBETyByZXZpc2lvbiBhZGp1c3RlZAphY2NvcmRpbmdseS4KClNp
Z25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQog
aW5jbHVkZS9yZXZpc2lvbi5oICAgICAgIHwgICA3ICstCiBpbmNsdWRlL3ZpZl9pbnRlcmZhY2Uu
aCAgfCAxNDYgKysrKysrKysrKysrKysrKysrKy0KIHNyYy94ZW52aWYvZnJvbnRlbmQuYyAgICB8
IDMxNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3hl
bnZpZi9mcm9udGVuZC5oICAgIHwgIDQ0ICsrKysrKy0KIHNyYy94ZW52aWYvcmVjZWl2ZXIuYyAg
ICB8IDMzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQog
c3JjL3hlbnZpZi9yZWNlaXZlci5oICAgIHwgIDMyICsrKysrCiBzcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgfCAgMzggKysrKystCiBzcmMveGVudmlmL3ZpZi5jICAgICAgICAgfCAyMDcgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy94ZW52aWYvdmlmLmggICAgICAgICB8ICAgMSAr
CiA5IGZpbGVzIGNoYW5nZWQsIDEwNzMgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS9yZXZpc2lvbi5oIGIvaW5jbHVkZS9yZXZpc2lvbi5oCmluZGV4
IDY0NThiZmQuLjE0YjdiMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmV2aXNpb24uaAorKysgYi9p
bmNsdWRlL3JldmlzaW9uLmgKQEAgLTQ0LDkgKzQ0LDEwIEBACiAgICAgREVGSU5FX1JFVklTSU9O
KDB4MDgwMDAwMDMsICAxLCAgMywgIDAsICAwKSwgICAgXAogICAgIERFRklORV9SRVZJU0lPTigw
eDA4MDAwMDA0LCAgMSwgIDMsICAyLCAgMSksICAgIFwKICAgICBERUZJTkVfUkVWSVNJT04oMHgw
ODAwMDAwNiwgIDEsICA0LCAgMiwgIDEpLCAgICBcCi0gICAgREVGSU5FX1JFVklTSU9OKDB4MDgw
MDAwMDksICAxLCAgNSwgIDIsICAxKQorICAgIERFRklORV9SRVZJU0lPTigweDA4MDAwMDA5LCAg
MSwgIDUsICAyLCAgMSksICAgIFwKKyAgICBERUZJTkVfUkVWSVNJT04oMHgwODAwMDAwQiwgIDEs
ICA2LCAgMiwgIDEpCiAKLS8vIFJldmlzaW9uIDB4MDgwMDAwMDUsIDB4MDgwMDAwMDcgYW5kIDB4
MDgwMDAwMDggYXJlIGFscmVhZHkgaW4gdXNlIGluCi0vLyB0aGUgc3RhZ2luZy04LjEgYnJhbmNo
LgorLy8gUmV2aXNpb24gMHgwODAwMDAwNSwgMHgwODAwMDAwNywgMHgwODAwMDAwOCBhbmQgMHgw
ODAwMDAwQSBhcmUgYWxyZWFkeQorLy8gaW4gdXNlIGluIHRoZSBzdGFnaW5nLTguMSBicmFuY2gu
CiAKICNlbmRpZiAgLy8gX1JFVklTSU9OX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmlmX2ludGVy
ZmFjZS5oIGIvaW5jbHVkZS92aWZfaW50ZXJmYWNlLmgKaW5kZXggNWEwNjRmZC4uODUzNTU0ZCAx
MDA2NDQKLS0tIGEvaW5jbHVkZS92aWZfaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS92aWZfaW50
ZXJmYWNlLmgKQEAgLTUwLDIwICs1MCw0NCBAQCB0eXBlZGVmIGVudW0gX1hFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE0gewogICAgIC8qISBOb25lICh2YWx1ZSBzaG91bGQgYmUgaWdub3JlZCkg
Ki8KICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUgPSAwLAogICAgIC8qISBV
bnNwZWNpZmllZCBoYXNoICh2YWx1ZSBjYW4gYmUgdXNlZCkgKi8KLSAgICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVECisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09S
SVRITV9VTlNQRUNJRklFRCwKKyAgICAvKiEgVG9lcGxpdHogaGFzaCAqLworICAgIFhFTlZJRl9Q
QUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFoKIH0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09S
SVRITSwgKlBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNOwogCi0vKiEgXHN0cnVjdCBfWEVO
VklGX1BBQ0tFVF9IQVNIX1YxCit0eXBlZGVmIGVudW0gX1hFTlZJRl9QQUNLRVRfSEFTSF9UWVBF
IHsKKyAgICAvKiEgTm9uZSAodmFsdWUgc2hvdWxkIGJlIGlnbm9yZWQpICovCisgICAgWEVOVklG
X1BBQ0tFVF9IQVNIX1RZUEVfTk9ORSA9IDAsCisgICAgLyohIElQdjQgaGVhZGVyIG9ubHkgKi8K
KyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0LAorICAgIC8qISBJUHY0IGFuZCBUQ1Ag
aGVhZGVycyAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQLAorICAgIC8q
ISBJUHY2IGhlYWRlciBvbmx5ICovCisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNiwK
KyAgICAvKiEgSVB2NiBhbmQgVENQIGhlYWRlcnMgKi8KKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hf
VFlQRV9JUFY2X1RDUAorfSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRSwgKlBYRU5WSUZfUEFDS0VU
X0hBU0hfVFlQRTsKKworc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgeworICAgIC8qISBI
YXNoIGFsZ29yaXRobSB1c2VkIHRvIGNhbGN1bGF0ZSB2YWx1ZSAqLworICAgIFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtOworICAgIC8qISBDYWxjdWxhdGVkIHZhbHVl
ICovCisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsKK307CisKKy8q
ISBcc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIKICAgICBcYnJpZWYgSGFzaCBpbmZvcm1h
dGlvbgogKi8KLXN0cnVjdCBfWEVOVklGX1BBQ0tFVF9IQVNIX1YxIHsKK3N0cnVjdCBfWEVOVklG
X1BBQ0tFVF9IQVNIX1YyIHsKICAgICAvKiEgSGFzaCBhbGdvcml0aG0gdXNlZCB0byBjYWxjdWxh
dGUgdmFsdWUgKi8KICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNICAgIEFsZ29yaXRo
bTsKKyAgICAvKiEgU2NvcGUgb2YgaGFzaCAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBF
ICAgICAgICAgVHlwZTsKICAgICAvKiEgQ2FsY3VsYXRlZCB2YWx1ZSAqLwogICAgIFVMT05HICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfWEVO
VklGX1BBQ0tFVF9IQVNIX1YxIFhFTlZJRl9QQUNLRVRfSEFTSCwgKlBYRU5WSUZfUEFDS0VUX0hB
U0g7Cit0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1BBQ0tFVF9IQVNIX1YyIFhFTlZJRl9QQUNLRVRf
SEFTSCwgKlBYRU5WSUZfUEFDS0VUX0hBU0g7CiAKIC8qISBcc3RydWN0IF9YRU5WSUZfUEFDS0VU
X0hFQURFUl9WMQogICAgIFxicmllZiBQYWNrZXQgaGVhZGVyIGluZm9ybWF0aW9uCkBAIC0zNjYs
NiArMzkwLDcgQEAgdHlwZWRlZiBWT0lECiAgICAgXHBhcmFtIE1heGltdW1TZWdtZW50U2l6ZSBU
aGUgVENQIE1TUyAodXNlZCBvbmx5IGlmIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJcFZlcnNpb25b
NHw2XUxhcmdlUGFja2V0IGlzIHNldCkKICAgICBccGFyYW0gVGFnQ29udHJvbEluZm9ybWF0aW9u
IFRoZSBWTEFOIFRDSSAodXNlZCBvbmx5IGlmIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRUYWdNYW5p
cHVsYXRpb24gaXMgc2V0KQogICAgIFxwYXJhbSBJbmZvIEhlYWRlciBpbmZvcm1hdGlvbiBmb3Ig
dGhlIHBhY2tldAorICAgIFxwYXJhbSBIYXNoIEhhc2ggaW5mb3JtYXRpb24gZm9yIHRoZSBwYWNr
ZXQKICAgICBccGFyYW0gQ29va2llIENvb2tpZSB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gWEVO
VklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVQgbWV0aG9kCiAKICAgICBcYiBYRU5WSUZfTUFDX1NU
QVRFX0NIQU5HRToKQEAgLTQyNyw2ICs0NTIsMzUgQEAgdHlwZWRlZiBOVFNUQVRVUwogICAgIE9V
VCBQVUxPTkdMT05HICAgICAgICAgICAgICBWYWx1ZQogICAgICk7CiAKKy8qISBcdHlwZWRlZiBY
RU5WSUZfVklGX1FVRVJZX1JJTkdfQ09VTlQKKyAgICBcYnJpZWYgUXVlcnkgdGhlIG51bWJlciBv
ZiBzaGFyZWQgcmluZ3MgYmV0d2VlbiBmcm9udGVuZAorICAgIGFuZCBiYWNrZW5kCisKKyAgICBc
cGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIENvdW50IEJ1
ZmZlciB0byByZWNlaXZlIHRoZSBjb3VudAorKi8KK3R5cGVkZWYgVk9JRAorKCpYRU5WSUZfVklG
X1FVRVJZX1JJTkdfQ09VTlQpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAg
T1VUIFBVTE9ORyAgICAgIENvdW50CisgICAgKTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZf
VVBEQVRFX0hBU0hfTUFQUElORworICAgIFxicmllZiBVcGRhdGUgdGhlIG1hcHBpbmcgb2YgaGFz
aCB0byB0cmFuc21pdHRlci9yZWNlaXZlciByaW5nCisKKyAgICBUaGUgZGVmYXVsdCBtYXBwaW5n
IGlzIGhhc2ggJSBudW1iZXItb2YtcmluZ3MKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGlu
dGVyZmFjZSBoZWFkZXIKKyAgICBccGFyYW0gTWFwcGluZyBUaGUgbWFwcGluZyB0YWJsZQorICAg
IFxwYXJhbSBTaXplIFRoZSBzaXplIG9mIHRoZSBtYXBwaW5nIHRhYmxlCisqLwordHlwZWRlZiBO
VFNUQVRVUworKCpYRU5WSUZfVklGX1VQREFURV9IQVNIX01BUFBJTkcpKAorICAgIElOICBQSU5U
RVJGQUNFICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgUFBST0NFU1NPUl9OVU1CRVIgICBN
YXBwaW5nLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIFNpemUKKyAgICApOworCiB0eXBl
ZGVmIFZPSUQKICgqWEVOVklGX1ZJRl9SRUNFSVZFUl9SRVRVUk5fUEFDS0VUU19WMSkoCiAgICAg
SU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZSwKQEAgLTU3OSw2ICs2MzMsNTIgQEAgdHlwZWRlZiBW
T0lECiAgICAgT1VUIFBVTE9ORyAgICAgIFNpemUKICAgICApOwogCisvKiEgXHR5cGVkZWYgWEVO
VklGX1ZJRl9SRUNFSVZFUl9TRVRfSEFTSF9BTEdPUklUSE0KKyAgICBcYnJpZWYgU2VsZWN0IGEg
aGFzaCBhbG9yaXRobQorCisgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRl
cgorICAgIFxwYXJhbSBBbGdvcml0aG0gVGhlIGFsZ29yaXRobSB0byBlbmFibGUgKG9yCisgICAg
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FIHRvIGRpc2FibGUgaGFzaGluZykKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX0hBU0hfQUxHT1JJ
VEhNKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2Us
CisgICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAg
KTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfSEFTSF9DQVBBQklM
SVRJRVMKKyAgICBcYnJpZWYgUXVlcnkgYW55IGFsZ29yaXRobS1zcGVjaWZpYyBjYXBhYmlsaXRp
ZXMuCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBh
cmFtIC4uLiBBZGRpdGlvbmFsIGNhcGFiaWxpdGllcyByZXBvcnRlZCBieSB0aGUgc2VsZWN0ZWQg
YWxnb3JpdGhtCisKKyAgICBcYiBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRa
OgorICAgIFxwYXJhbSBUeXBlcyBNYXNrIG9mIGhhc2ggdHlwZXMgc3VwcG9ydGVkCisqLwordHlw
ZWRlZiBOVFNUQVRVUworKCpYRU5WSUZfVklGX1JFQ0VJVkVSX1FVRVJZX0hBU0hfQ0FQQUJJTElU
SUVTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLAorICAgIC4uLgorICAgICk7CisK
Ky8qISBcdHlwZWRlZiBYRU5WSUZfVklGX1JFQ0VJVkVSX1VQREFURV9IQVNIX1BBUkFNRVRFUlMK
KyAgICBcYnJpZWYgU2V0IHBhcmFtZXRlcnMgb2YgY3VycmVudGx5IHNlbGVjdGVkIGFsZ29yaXRo
bS4KKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFy
YW0gLi4uIEFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1aXJlZCBieSB0aGUgc2VsZWN0ZWQgYWxn
b3JpdGhtCisKKyAgICBcYiBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaOgor
ICAgIFxwYXJhbSBUeXBlcyBNYXNrIG9mIGhhc2ggdHlwZXMgZW5hYmxlZAorICAgIFxwYXJhbSBL
ZXkgUG9pbnRlciB0byBhIDQwLWJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgaGFzaCBrZXkKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfVVBEQVRFX0hBU0hfUEFS
QU1FVEVSUykoCisgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZSwKKyAgICAuLi4KKyAgICAp
OworCisjZGVmaW5lIFhFTlZJRl9WSUZfSEFTSF9LRVlfU0laRSAgICA0MAorCiAvKiEgXHR5cGVk
ZWYgWEVOVklGX1ZJRl9NQUNfUVVFUllfU1RBVEUKICAgICBcYnJpZWYgUXVlcnkgdGhlIGN1cnJl
bnQgTUFDIChsaW5rKSBzdGF0ZQogCkBAIC04MjIsNyArOTIyLDQxIEBAIHN0cnVjdCBfWEVOVklG
X1ZJRl9JTlRFUkZBQ0VfVjUgewogICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX0ZJTFRFUl9MRVZF
TCAgICAgICAgICAgICAgIE1hY1F1ZXJ5RmlsdGVyTGV2ZWw7CiB9OwogCi10eXBlZGVmIHN0cnVj
dCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjUgWEVOVklGX1ZJRl9JTlRFUkZBQ0UsICpQWEVOVklG
X1ZJRl9JTlRFUkZBQ0U7CisvKiEgXHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjYKKyAg
ICBcYnJpZWYgVklGIGludGVyZmFjZSB2ZXJzaW9uIDYKKyAgICBcaW5ncm91cCBpbnRlcmZhY2Vz
CisqLworc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiB7CisgICAgSU5URVJGQUNFICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlOworICAgIFhFTlZJ
Rl9WSUZfQUNRVUlSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmU7CisgICAg
WEVOVklGX1ZJRl9SRUxFQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZTsK
KyAgICBYRU5WSUZfVklGX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmFi
bGU7CisgICAgWEVOVklGX1ZJRl9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RGlzYWJsZTsKKyAgICBYRU5WSUZfVklGX1FVRVJZX1NUQVRJU1RJQyAgICAgICAgICAgICAgICAg
ICAgICBRdWVyeVN0YXRpc3RpYzsKKyAgICBYRU5WSUZfVklGX1FVRVJZX1JJTkdfQ09VTlQgICAg
ICAgICAgICAgICAgICAgICBRdWVyeVJpbmdDb3VudDsKKyAgICBYRU5WSUZfVklGX1VQREFURV9I
QVNIX01BUFBJTkcgICAgICAgICAgICAgICAgICBVcGRhdGVIYXNoTWFwcGluZzsKKyAgICBYRU5W
SUZfVklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVQgICAgICAgICAgICAgICBSZWNlaXZlclJldHVy
blBhY2tldDsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9PRkZMT0FEX09QVElPTlMgICAg
ICAgICBSZWNlaXZlclNldE9mZmxvYWRPcHRpb25zOworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJf
U0VUX0JBQ0tGSUxMX1NJWkUgICAgICAgICAgIFJlY2VpdmVyU2V0QmFja2ZpbGxTaXplOworICAg
IFhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfUklOR19TSVpFICAgICAgICAgICAgIFJlY2VpdmVy
UXVlcnlSaW5nU2l6ZTsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9IQVNIX0FMR09SSVRI
TSAgICAgICAgICBSZWNlaXZlclNldEhhc2hBbGdvcml0aG07CisgICAgWEVOVklGX1ZJRl9SRUNF
SVZFUl9RVUVSWV9IQVNIX0NBUEFCSUxJVElFUyAgICAgUmVjZWl2ZXJRdWVyeUhhc2hDYXBhYmls
aXRpZXM7CisgICAgWEVOVklGX1ZJRl9SRUNFSVZFUl9VUERBVEVfSEFTSF9QQVJBTUVURVJTICAg
ICAgUmVjZWl2ZXJVcGRhdGVIYXNoUGFyYW1ldGVyczsKKyAgICBYRU5WSUZfVklGX1RSQU5TTUlU
VEVSX1FVRVVFX1BBQ0tFVCAgICAgICAgICAgICBUcmFuc21pdHRlclF1ZXVlUGFja2V0OworICAg
IFhFTlZJRl9WSUZfVFJBTlNNSVRURVJfUVVFUllfT0ZGTE9BRF9PUFRJT05TICAgIFRyYW5zbWl0
dGVyUXVlcnlPZmZsb2FkT3B0aW9uczsKKyAgICBYRU5WSUZfVklGX1RSQU5TTUlUVEVSX1FVRVJZ
X0xBUkdFX1BBQ0tFVF9TSVpFICBUcmFuc21pdHRlclF1ZXJ5TGFyZ2VQYWNrZXRTaXplOworICAg
IFhFTlZJRl9WSUZfVFJBTlNNSVRURVJfUVVFUllfUklOR19TSVpFICAgICAgICAgIFRyYW5zbWl0
dGVyUXVlcnlSaW5nU2l6ZTsKKyAgICBYRU5WSUZfVklGX01BQ19RVUVSWV9TVEFURSAgICAgICAg
ICAgICAgICAgICAgICBNYWNRdWVyeVN0YXRlOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX01B
WElNVU1fRlJBTUVfU0laRSAgICAgICAgIE1hY1F1ZXJ5TWF4aW11bUZyYW1lU2l6ZTsKKyAgICBY
RU5WSUZfVklGX01BQ19RVUVSWV9QRVJNQU5FTlRfQUREUkVTUyAgICAgICAgICBNYWNRdWVyeVBl
cm1hbmVudEFkZHJlc3M7CisgICAgWEVOVklGX1ZJRl9NQUNfUVVFUllfQ1VSUkVOVF9BRERSRVNT
ICAgICAgICAgICAgTWFjUXVlcnlDdXJyZW50QWRkcmVzczsKKyAgICBYRU5WSUZfVklGX01BQ19R
VUVSWV9NVUxUSUNBU1RfQUREUkVTU0VTICAgICAgICBNYWNRdWVyeU11bHRpY2FzdEFkZHJlc3Nl
czsKKyAgICBYRU5WSUZfVklGX01BQ19TRVRfTVVMVElDQVNUX0FERFJFU1NFUyAgICAgICAgICBN
YWNTZXRNdWx0aWNhc3RBZGRyZXNzZXM7CisgICAgWEVOVklGX1ZJRl9NQUNfU0VUX0ZJTFRFUl9M
RVZFTCAgICAgICAgICAgICAgICAgTWFjU2V0RmlsdGVyTGV2ZWw7CisgICAgWEVOVklGX1ZJRl9N
QUNfUVVFUllfRklMVEVSX0xFVkVMICAgICAgICAgICAgICAgTWFjUXVlcnlGaWx0ZXJMZXZlbDsK
K307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiBYRU5WSUZfVklG
X0lOVEVSRkFDRSwgKlBYRU5WSUZfVklGX0lOVEVSRkFDRTsKIAogLyohIFxkZWYgWEVOVklGX1ZJ
RgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9jYXRpb24KQEAgLTgz
Myw2ICs5NjcsNiBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjUgWEVO
VklGX1ZJRl9JTlRFUkZBQ0UsICpQWEVOVklGX1ZJRl9JTlRFUgogI2VuZGlmICAvLyBfV0lORExM
CiAKICNkZWZpbmUgWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVkVSU0lPTl9NSU4gICAgMgotI2RlZmlu
ZSBYRU5WSUZfVklGX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAgICA1CisjZGVmaW5lIFhFTlZJRl9W
SUZfSU5URVJGQUNFX1ZFUlNJT05fTUFYICAgIDYKIAogI2VuZGlmICAvLyBfWEVOVklGX0lOVEVS
RkFDRV9ICmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zy
b250ZW5kLmMKaW5kZXggZTk1MDU1Mi4uYjY4MmIyYyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwpAQCAtNTYsNiArNTYsMTUgQEAg
dHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9GUk9OVEVORF9TVEFUSVNUSUNTIHsKICAgICBVTE9OR0xP
TkcgICBWYWx1ZVtYRU5WSUZfVklGX1NUQVRJU1RJQ19DT1VOVF07CiB9IFhFTlZJRl9GUk9OVEVO
RF9TVEFUSVNUSUNTLCAqUFhFTlZJRl9GUk9OVEVORF9TVEFUSVNUSUNTOwogCisjZGVmaW5lIFhF
TlZJRl9GUk9OVEVORF9NQVhJTVVNX0hBU0hfTUFQUElOR19TSVpFICAgMTI4CisKK3R5cGVkZWYg
c3RydWN0IF9YRU5WSUZfRlJPTlRFTkRfSEFTSCB7CisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FM
R09SSVRITSAgICBBbGdvcml0aG07CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGbGFnczsKKyAgICBVQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVtYRU5WSUZf
VklGX0hBU0hfS0VZX1NJWkVdOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAg
TWFwcGluZ1tYRU5WSUZfRlJPTlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRV07CisgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplOworfSBYRU5WSUZfRlJPTlRFTkRf
SEFTSCwgKlBYRU5WSUZfRlJPTlRFTkRfSEFTSDsKIAogc3RydWN0IF9YRU5WSUZfRlJPTlRFTkQg
ewogICAgIFBYRU5WSUZfUERPICAgICAgICAgICAgICAgICBQZG87CkBAIC05NSw2ICsxMDQsOCBA
QCBzdHJ1Y3QgX1hFTlZJRl9GUk9OVEVORCB7CiAgICAgTkVUX0lGSU5ERVggICAgICAgICAgICAg
ICAgIEludGVyZmFjZUluZGV4OwogICAgIFBTT0NLQUREUl9JTkVUICAgICAgICAgICAgICBBZGRy
ZXNzVGFibGU7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NDb3VudDsK
KworICAgIFhFTlZJRl9GUk9OVEVORF9IQVNIICAgICAgICBIYXNoOwogfTsKIAogc3RhdGljIGNv
bnN0IFBDSEFSCkBAIC0xNzkwLDYgKzE4MDEsMjk1IEBAIEZyb250ZW5kSXNTcGxpdCgKICAgICBy
ZXR1cm4gX19Gcm9udGVuZElzU3BsaXQoRnJvbnRlbmQpOwogfQogCitzdGF0aWMgRk9SQ0VJTkxJ
TkUgTlRTVEFUVVMKK19fRnJvbnRlbmRVcGRhdGVIYXNoKAorICAgIElOICBQWEVOVklGX0ZST05U
RU5EICAgICAgICAgICAgICAgIEZyb250ZW5kCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRF
TkRfSEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgUFhFTlZJ
Rl9DT05UUk9MTEVSICAgICAgICAgICAgICAgICAgQ29udHJvbGxlcjsKKyAgICBVTE9ORyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvID0gMDsKKyAgICBVTE9ORyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTaXplOworICAgIFBVTE9ORyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1hcHBpbmc7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmxhZ3M7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
OworCisgICAgQ29udHJvbGxlciA9IF9fRnJvbnRlbmRHZXRDb250cm9sbGVyKEZyb250ZW5kKTsK
KworICAgIHN3aXRjaCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX05PTkU6CisgICAgICAgIFNpemUgPSAxOworICAgICAgICBNYXBwaW5n
ID0gJlplcm87CisgICAgICAgIEZsYWdzID0gMDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFo6CisgICAgICAgIFNpemUgPSBI
YXNoLT5TaXplOworICAgICAgICBNYXBwaW5nID0gSGFzaC0+TWFwcGluZzsKKyAgICAgICAgRmxh
Z3MgPSBIYXNoLT5GbGFnczsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQ6CisgICAgZGVmYXVsdDoKKyAgICAgICAgKFZP
SUQpIENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKENvbnRyb2xsZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9IQVNIX0FMR09SSVRI
TV9OT05FKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIHN0YXR1cyA9IENvbnRy
b2xsZXJTZXRIYXNoQWxnb3JpdGhtKENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fVE9FUExJVFop
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgc3RhdHVzID0gQ29udHJvbGxlclNldEhhc2hNYXBwaW5nU2l6ZShDb250cm9sbGVyLCBTaXpl
KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKwor
ICAgIHN0YXR1cyA9IENvbnRyb2xsZXJTZXRIYXNoTWFwcGluZyhDb250cm9sbGVyLCBNYXBwaW5n
LCBTaXplLCAwKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBm
YWlsMzsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJTZXRIYXNoS2V5KENvbnRyb2xsZXIsIEhh
c2gtPktleSwgWEVOVklGX1ZJRl9IQVNIX0tFWV9TSVpFKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNDsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJT
ZXRIYXNoRmxhZ3MoQ29udHJvbGxlciwgRmxhZ3MpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0
dXMpKQorICAgICAgICBnb3RvIGZhaWw1OworCitkb25lOgorICAgIHJldHVybiBTVEFUVVNfU1VD
Q0VTUzsKKworZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKKworZmFpbDQ6CisgICAgRXJy
b3IoImZhaWw0XG4iKTsKKworZmFpbDM6CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKworZmFpbDI6
CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4
KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitGcm9u
dGVuZFVwZGF0ZUhhc2goCisgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAg
RnJvbnRlbmQKKyAgICApCit7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7
CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssICZJcnFsKTsKKyAgICBz
dGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgS2VSZWxlYXNlU3Bp
bkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisK
K05UU1RBVFVTCitGcm9udGVuZFNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBYRU5WSUZfRlJP
TlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQsCisgICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFT
SF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkRf
SEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssICZJcnFsKTsKKworICAgIGlmIChBbGdvcml0aG0gPT0gSGFzaC0+QWxnb3JpdGht
KQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBzd2l0Y2ggKEFsZ29yaXRobSkgeworICAgIGNh
c2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgorICAgIGNhc2UgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRDoKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE1fVE9FUExJVFo6CisgICAgICAgIHN0YXR1cyA9IFNUQVRVU19TVUNDRVNT
OworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHN0YXR1cyA9IFNUQVRV
U19OT1RfU1VQUE9SVEVEOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEluZm8oIiVzOiAlc1xu
IiwgX19Gcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpLAorICAgICAgICAgKEFsZ29yaXRobSA9PSBY
RU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUpID8gIk5PTkUiIDoKKyAgICAgICAgIChB
bGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRCkgPyAi
VU5TUEVDSUZJRUQiIDoKKyAgICAgICAgIChBbGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNI
X0FMR09SSVRITV9UT0VQTElUWikgPyAiVE9FUExJVFoiIDoKKyAgICAgICAgICIiKTsKKworICAg
IEhhc2gtPkFsZ29yaXRobSA9IEFsZ29yaXRobTsKKworZG9uZToKKyAgICBLZVJlbGVhc2VTcGlu
TG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iKTsKKworICAgIEtlUmVsZWFz
ZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CisKKyAgICByZXR1cm4gc3RhdHVzOwor
fQorCitOVFNUQVRVUworRnJvbnRlbmRRdWVyeUhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9G
Uk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAgICBUeXBlcwor
ICAgICkKK3sKKyAgICBLSVJRTCAgICAgICAgICAgICAgICAgICBJcnFsOworICAgIFVMT05HICAg
ICAgICAgICAgICAgICAgIEZsYWdzOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1
czsKKworICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOworCisg
ICAgc3RhdHVzID0gQ29udHJvbGxlckdldEhhc2hGbGFncyhfX0Zyb250ZW5kR2V0Q29udHJvbGxl
cihGcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRmxhZ3Mp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgKlR5cGVzID0gMDsKKyAgICBpZiAoRmxhZ3MgJiBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVf
SVBWNCkKKyAgICAgICAgKlR5cGVzIHw9IDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBW
NDsKKyAgICBpZiAoRmxhZ3MgJiBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1ApCisg
ICAgICAgICpUeXBlcyB8PSAxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQOwor
ICAgIGlmIChGbGFncyAmIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2KQorICAgICAgICAq
VHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OworICAgIGlmIChGbGFn
cyAmIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2X1RDUCkKKyAgICAgICAgKlR5cGVzIHw9
IDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1A7CisKKyAgICBLZVJlbGVhc2VT
cGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitGcm9udGVuZFNldEhhc2hNYXBwaW5nKAorICAgIElO
ICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBQVUxPTkcgICAgICAgICAg
ICAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sK
KyAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNoID0gJkZyb250ZW5kLT5IYXNoOworICAg
IEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJx
bCk7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7CisgICAgaWYgKFNp
emUgPiBYRU5WSUZfRlJPTlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRSkKKyAgICAgICAg
Z290byBmYWlsMTsKKworICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+TWFwcGluZywgTWFwcGluZywg
c2l6ZW9mIChVTE9ORykgKiBTaXplKTsKKyAgICBIYXNoLT5TaXplID0gU2l6ZTsKKworICAgIEtl
UmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CisKKyAgICByZXR1cm4gU1RB
VFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1
cyk7CisKKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisg
ICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0Zyb250ZW5kU2V0SGFzaEtleSgKKyAg
ICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXkKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9
ICZGcm9udGVuZC0+SGFzaDsKKyAgICBLSVJRTCAgICAgICAgICAgICAgICAgICBJcnFsOworCisg
ICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJxbCk7CisKKyAgICBSdGxD
b3B5TWVtb3J5KEhhc2gtPktleSwgS2V5LCBYRU5WSUZfVklGX0hBU0hfS0VZX1NJWkUpOworCisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVy
biBTVEFUVVNfU1VDQ0VTUzsKK30KKworTlRTVEFUVVMKK0Zyb250ZW5kU2V0SGFzaFR5cGVzKAor
ICAgIElOICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgIFR5cGVzCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgIEhh
c2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsK
KyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBGbGFnczsKKworICAgIEtlQWNxdWlyZVNwaW5M
b2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOworCisgICAgRmxhZ3MgPSAwOworICAgIGlmIChU
eXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjQpKQorICAgICAgICBGbGFn
cyB8PSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNDsKKyAgICBpZiAoVHlwZXMgJiAoMSA8
PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUCkpCisgICAgICAgIEZsYWdzIHw9IFhF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0X1RDUDsKKyAgICBpZiAoVHlwZXMgJiAoMSA8PCBY
RU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2KSkKKyAgICAgICAgRmxhZ3MgfD0gWEVOX05FVElG
X0NUUkxfSEFTSF9UWVBFX0lQVjY7CisgICAgaWYgKFR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEVfSVBWNl9UQ1ApKQorICAgICAgICBGbGFncyB8PSBYRU5fTkVUSUZfQ1RSTF9I
QVNIX1RZUEVfSVBWNl9UQ1A7CisKKyAgICBIYXNoLT5GbGFncyA9IEZsYWdzOworCisgICAgS2VS
ZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVybiBTVEFU
VVNfU1VDQ0VTUzsKK30KKworVUxPTkcKK0Zyb250ZW5kR2V0UXVldWUoCisgICAgSU4gIFBYRU5W
SUZfRlJPTlRFTkQgICAgRnJvbnRlbmQsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgVmFs
dWUKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9ICZGcm9udGVu
ZC0+SGFzaDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBRdWV1ZTsKKworICAgIHN3aXRj
aCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJ
VEhNX05PTkU6CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lG
SUVEOgorICAgICAgICBRdWV1ZSA9IFZhbHVlICUgX19Gcm9udGVuZEdldE51bVF1ZXVlcyhGcm9u
dGVuZCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxH
T1JJVEhNX1RPRVBMSVRaOgorICAgICAgICBRdWV1ZSA9IEhhc2gtPk1hcHBpbmdbVmFsdWUgJSBI
YXNoLT5TaXplXTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlQoRkFMU0UpOworICAgICAgICBRdWV1ZSA9IDA7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHJldHVybiBRdWV1ZTsKK30KKwogc3RhdGljIE5UU1RBVFVTCiBGcm9udGVuZENvbm5lY3Qo
CiAgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKQEAgLTIwNDUsMTEgKzIzNDUs
MjAgQEAgRnJvbnRlbmRFbmFibGUoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAg
ICAgIGdvdG8gZmFpbDM7CiAKLSAgICBGcm9udGVuZE5vdGlmeU11bHRpY2FzdEFkZHJlc3NlcyhG
cm9udGVuZCwgVFJVRSk7CisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRl
bmQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw0Owor
CisgICAgKFZPSUQpIEZyb250ZW5kTm90aWZ5TXVsdGljYXN0QWRkcmVzc2VzKEZyb250ZW5kLCBU
UlVFKTsKIAogICAgIFRyYWNlKCI8PT09PVxuIik7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OwogCitmYWlsNDoKKyAgICBFcnJvcigiZmFpbDRcbiIpOworCisgICAgVHJhbnNtaXR0ZXJEaXNh
YmxlKF9fRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCkpOworCiBmYWlsMzoKICAgICBF
cnJvcigiZmFpbDNcbiIpOwogCkBAIC0yMDczLDcgKzIzODIsNyBAQCBGcm9udGVuZERpc2FibGUo
CiB7CiAgICAgVHJhY2UoIj09PT0+XG4iKTsKIAotICAgIEZyb250ZW5kTm90aWZ5TXVsdGljYXN0
QWRkcmVzc2VzKEZyb250ZW5kLCBGQUxTRSk7CisgICAgKFZPSUQpIEZyb250ZW5kTm90aWZ5TXVs
dGljYXN0QWRkcmVzc2VzKEZyb250ZW5kLCBGQUxTRSk7CiAKICAgICBUcmFuc21pdHRlckRpc2Fi
bGUoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVyKEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNh
YmxlKF9fRnJvbnRlbmRHZXRSZWNlaXZlcihGcm9udGVuZCkpOwpAQCAtMjQ2MSw2ICsyNzcwLDcg
QEAgRnJvbnRlbmRJbml0aWFsaXplKAogICAgIEZkb0dldFN0b3JlSW50ZXJmYWNlKFBkb0dldEZk
byhQZG8pLCAmKCpGcm9udGVuZCktPlN0b3JlSW50ZXJmYWNlKTsKIAogICAgIEZyb250ZW5kU2V0
TWF4UXVldWVzKCpGcm9udGVuZCk7CisgICAgKCpGcm9udGVuZCktPkhhc2guQWxnb3JpdGhtID0g
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRDsKIAogICAgIHN0YXR1cyA9
IE1hY0luaXRpYWxpemUoKkZyb250ZW5kLCAmKCpGcm9udGVuZCktPk1hYyk7CiAgICAgaWYgKCFO
VF9TVUNDRVNTKHN0YXR1cykpCkBAIC0yNTI2LDYgKzI4MzYsNyBAQCBmYWlsNzoKIGZhaWw2Ogog
ICAgIEVycm9yKCJmYWlsNlxuIik7CiAKKyAgICBSdGxaZXJvTWVtb3J5KCYoKkZyb250ZW5kKS0+
SGFzaCwgc2l6ZW9mIChYRU5WSUZfRlJPTlRFTkRfSEFTSCkpOwogICAgICgqRnJvbnRlbmQpLT5N
YXhRdWV1ZXMgPSAwOwogCiAgICAgUnRsWmVyb01lbW9yeSgmKCpGcm9udGVuZCktPlN0b3JlSW50
ZXJmYWNlLApAQCAtMjYxNiw2ICsyOTI3LDcgQEAgRnJvbnRlbmRUZWFyZG93bigKICAgICBNYWNU
ZWFyZG93bihfX0Zyb250ZW5kR2V0TWFjKEZyb250ZW5kKSk7CiAgICAgRnJvbnRlbmQtPk1hYyA9
IE5VTEw7CiAKKyAgICBSdGxaZXJvTWVtb3J5KCZGcm9udGVuZC0+SGFzaCwgc2l6ZW9mIChYRU5W
SUZfRlJPTlRFTkRfSEFTSCkpOwogICAgIEZyb250ZW5kLT5NYXhRdWV1ZXMgPSAwOwogCiAgICAg
UnRsWmVyb01lbW9yeSgmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLApkaWZmIC0tZ2l0IGEvc3Jj
L3hlbnZpZi9mcm9udGVuZC5oIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5oCmluZGV4IDY1ZGFhYzQu
LjUxM2U4MTIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZnJvbnRlbmQuaAorKysgYi9zcmMveGVu
dmlmL2Zyb250ZW5kLmgKQEAgLTIwMiw3ICsyMDIsNDkgQEAgRnJvbnRlbmRTZXRGaWx0ZXJMZXZl
bCgKIAogZXh0ZXJuIFZPSUQKIEZyb250ZW5kQWR2ZXJ0aXNlSXBBZGRyZXNzZXMoCi0gICAgSU4g
IFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kCisgICAgSU4gIFBYRU5WSUZfRlJPTlRF
TkQgICAgRnJvbnRlbmQKKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0Zyb250ZW5kVXBkYXRl
SGFzaCgKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZAorICAgICk7CisKK2V4
dGVybiBOVFNUQVRVUworRnJvbnRlbmRTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQWEVOVklG
X0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kLAorICAgIElOICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNICAgIEFsZ29yaXRobQorICAgICk7CisKK2V4dGVybiBOVFNUQVRVUwor
RnJvbnRlbmRRdWVyeUhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9u
dGVuZCwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAgICBUeXBlcworICAgICk7CisKK2V4dGVy
biBOVFNUQVRVUworRnJvbnRlbmRTZXRIYXNoTWFwcGluZygKKyAgICBJTiAgUFhFTlZJRl9GUk9O
VEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgUFVMT05HICAgICAgICAgICAgICBNYXBwaW5nLAor
ICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIE9yZGVyCisgICAgKTsKKworZXh0ZXJuIE5UU1RB
VFVTCitGcm9udGVuZFNldEhhc2hLZXkoCisgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJv
bnRlbmQsCisgICAgSU4gIFBVQ0hBUiAgICAgICAgICAgICAgS2V5CisgICAgKTsKKworZXh0ZXJu
IE5UU1RBVFVTCitGcm9udGVuZFNldEhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVO
RCAgICBGcm9udGVuZCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBUeXBlcworICAgICk7
CisKK2V4dGVybiBVTE9ORworRnJvbnRlbmRHZXRRdWV1ZSgKKyAgICBJTiAgUFhFTlZJRl9GUk9O
VEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBJbmRleAogICAg
ICk7CiAKICNlbmRpZiAgLy8gX1hFTlZJRl9GUk9OVEVORF9ICmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL3JlY2VpdmVyLmMgYi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggOWI0YzNiMy4uM2Qz
N2FkMiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYv
cmVjZWl2ZXIuYwpAQCAtNjcsNiArNjcsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9SRUNF
SVZFUl9GUkFHTUVOVCB7CiAgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAgRW50cnk7CiB9IFhF
TlZJRl9SRUNFSVZFUl9GUkFHTUVOVCwgKlBYRU5WSUZfUkVDRUlWRVJfRlJBR01FTlQ7CiAKK3R5
cGVkZWYgc3RydWN0IF9YRU5WSUZfUkVDRUlWRVJfSEFTSCB7CisgICAgWEVOVklGX1BBQ0tFVF9I
QVNIX0FMR09SSVRITSAgICBBbGdvcml0aG07CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUeXBlczsKK30gWEVOVklGX1JFQ0VJVkVSX0hBU0gsICpQWEVOVklGX1JFQ0VJVkVS
X0hBU0g7CisKICNkZWZpbmUgWEVOVklGX1JFQ0VJVkVSX1JJTkdfU0laRSAgIChfX0NPTlNUX1JJ
TkdfU0laRShuZXRpZl9yeCwgUEFHRV9TSVpFKSkKIAogI2RlZmluZSBYRU5WSUZfUkVDRUlWRVJf
TUFYSU1VTV9GUkFHTUVOVF9JRCAoWEVOVklGX1JFQ0VJVkVSX1JJTkdfU0laRSAtIDEpCkBAIC0x
MDEsMTEgKzEwNiwxMyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1JFQ0VJVkVSX1JJTkcgewog
ICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgICAgICBEZWJ1Z0NhbGxiYWNrOwogICAgIFBYRU5W
SUZfVEhSRUFEICAgICAgICAgICAgICBXYXRjaGRvZ1RocmVhZDsKICAgICBMSVNUX0VOVFJZICAg
ICAgICAgICAgICAgICAgUGFja2V0TGlzdDsKKyAgICBYRU5WSUZfUkVDRUlWRVJfSEFTSCAgICAg
ICAgSGFzaDsKIH0gWEVOVklGX1JFQ0VJVkVSX1JJTkcsICpQWEVOVklGX1JFQ0VJVkVSX1JJTkc7
CiAKIHR5cGVkZWYgc3RydWN0IF9YRU5WSUZfUkVDRUlWRVJfUEFDS0VUIHsKICAgICBMSVNUX0VO
VFJZICAgICAgICAgICAgICAgICAgICAgIExpc3RFbnRyeTsKICAgICBYRU5WSUZfUEFDS0VUX0lO
Rk8gICAgICAgICAgICAgIEluZm87CisgICAgWEVOVklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAg
ICBIYXNoOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAg
IFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoOwogICAgIFhFTlZJRl9QQUNL
RVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3M7CkBAIC0xMTcsMjMgKzEyNCwyMyBAQCB0eXBlZGVm
IHN0cnVjdCBfWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVCB7CiB9IFhFTlZJRl9SRUNFSVZFUl9QQUNL
RVQsICpQWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVDsKIAogc3RydWN0IF9YRU5WSUZfUkVDRUlWRVIg
ewotICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kOwotICAgIFhFTkJVU19DQUNI
RV9JTlRFUkZBQ0UgIENhY2hlSW50ZXJmYWNlOwotICAgIFhFTkJVU19HTlRUQUJfSU5URVJGQUNF
IEdudHRhYkludGVyZmFjZTsKLSAgICBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSBFdnRjaG5JbnRl
cmZhY2U7Ci0gICAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgKlJpbmc7Ci0gICAgTE9ORyAgICAg
ICAgICAgICAgICAgICAgTG9hbmVkOwotICAgIExPTkcgICAgICAgICAgICAgICAgICAgIFJldHVy
bmVkOwotICAgIEtFVkVOVCAgICAgICAgICAgICAgICAgIEV2ZW50OwotICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgIENhbGN1bGF0ZUNoZWNrc3VtczsKLSAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICBBbGxvd0dzb1BhY2tldHM7Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgRGlzYWJs
ZUlwVmVyc2lvbjRHc287Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgRGlzYWJsZUlwVmVy
c2lvbjZHc287Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSXBBbGlnbk9mZnNldDsKLSAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICBBbHdheXNQdWxsdXA7Ci0gICAgWEVOQlVTX1NUT1JF
X0lOVEVSRkFDRSAgU3RvcmVJbnRlcmZhY2U7Ci0gICAgWEVOQlVTX0RFQlVHX0lOVEVSRkFDRSAg
RGVidWdJbnRlcmZhY2U7Ci0gICAgUFhFTkJVU19ERUJVR19DQUxMQkFDSyAgRGVidWdDYWxsYmFj
azsKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kOworICAgIFhF
TkJVU19DQUNIRV9JTlRFUkZBQ0UgICAgICAgICAgQ2FjaGVJbnRlcmZhY2U7CisgICAgWEVOQlVT
X0dOVFRBQl9JTlRFUkZBQ0UgICAgICAgICBHbnR0YWJJbnRlcmZhY2U7CisgICAgWEVOQlVTX0VW
VENITl9JTlRFUkZBQ0UgICAgICAgICBFdnRjaG5JbnRlcmZhY2U7CisgICAgUFhFTlZJRl9SRUNF
SVZFUl9SSU5HICAgICAgICAgICAqUmluZzsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvYW5lZDsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
bmVkOworICAgIEtFVkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnQ7CisgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxhdGVDaGVja3N1bXM7CisgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0dzb1BhY2tldHM7CisgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNhYmxlSXBWZXJzaW9uNEdzbzsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc2FibGVJcFZlcnNpb242R3NvOworICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgSXBBbGlnbk9mZnNldDsKKyAgICBVTE9ORyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFsd2F5c1B1bGx1cDsKKyAgICBYRU5CVVNfU1RPUkVf
SU5URVJGQUNFICAgICAgICAgIFN0b3JlSW50ZXJmYWNlOworICAgIFhFTkJVU19ERUJVR19JTlRF
UkZBQ0UgICAgICAgICAgRGVidWdJbnRlcmZhY2U7CisgICAgUFhFTkJVU19ERUJVR19DQUxMQkFD
SyAgICAgICAgICBEZWJ1Z0NhbGxiYWNrOwogfTsKIAogI2RlZmluZSBYRU5WSUZfUkVDRUlWRVJf
VEFHICdFQ0VSJwpAQCAtMjY5LDYgKzI3Niw3IEBAIF9fUmVjZWl2ZXJSaW5nUHV0UGFja2V0KAog
ICAgIFBhY2tldC0+VGFnQ29udHJvbEluZm9ybWF0aW9uID0gMDsKIAogICAgIFJ0bFplcm9NZW1v
cnkoJlBhY2tldC0+SW5mbywgc2l6ZW9mIChYRU5WSUZfUEFDS0VUX0lORk8pKTsKKyAgICBSdGxa
ZXJvTWVtb3J5KCZQYWNrZXQtPkhhc2gsIHNpemVvZiAoWEVOVklGX1BBQ0tFVF9IQVNIKSk7CiAK
ICAgICBNZGwtPk1hcHBlZFN5c3RlbVZhID0gTWRsLT5TdGFydFZhOwogICAgIE1kbC0+Qnl0ZU9m
ZnNldCA9IDA7CkBAIC03NDYsMTEgKzc1NCwxMiBAQCBfX1JlY2VpdmVyUmluZ0J1aWxkU2VnbWVu
dCgKICAgICBpZiAoU2VnbWVudCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAg
U2VnbWVudC0+SW5mbyA9IFBhY2tldC0+SW5mbzsKLSAgICBTZWdtZW50LT5PZmZzZXQgPSBQYWNr
ZXQtPk9mZnNldDsKLSAgICBTZWdtZW50LT5GbGFncyA9IFBhY2tldC0+RmxhZ3M7Ci0gICAgU2Vn
bWVudC0+TWF4aW11bVNlZ21lbnRTaXplID0gUGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemU7Ci0g
ICAgU2VnbWVudC0+VGFnQ29udHJvbEluZm9ybWF0aW9uID0gUGFja2V0LT5UYWdDb250cm9sSW5m
b3JtYXRpb247CisgICAgUnRsQ29weU1lbW9yeShTZWdtZW50LAorICAgICAgICAgICAgICAgICAg
UGFja2V0LAorICAgICAgICAgICAgICAgICAgRklFTERfT0ZGU0VUKFhFTlZJRl9SRUNFSVZFUl9Q
QUNLRVQsIE1kbCkpOworCisgICAgLy8gVGhlIHNlZ21lbnQgY29udGFpbnMgbm8gZGF0YSBhcyB5
ZXQKKyAgICBTZWdtZW50LT5MZW5ndGggPSAwOwogCiAgICAgTWRsID0gJlNlZ21lbnQtPk1kbDsK
IApAQCAtMTE3OCw5ICsxMTg3LDggQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKICAgICBQ
WEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kOwogICAgIFBYRU5WSUZfTUFD
ICAgICAgICAgICAgICAgICAgICAgTWFjOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTGVuZ3RoOwotICAgIFhFTlZJRl9QQUNLRVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3M7
Ci0gICAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemU7
CiAgICAgWEVOVklGX1BBQ0tFVF9QQVlMT0FEICAgICAgICAgICBQYXlsb2FkOworICAgIFBYRU5W
SUZfUkVDRUlWRVJfUEFDS0VUICAgICAgICAgTmV3OwogICAgIFBYRU5WSUZfUEFDS0VUX0lORk8g
ICAgICAgICAgICAgSW5mbzsKICAgICBQVUNIQVIgICAgICAgICAgICAgICAgICAgICAgICAgIFN0
YXJ0VmE7CiAgICAgUEVUSEVSTkVUX0hFQURFUiAgICAgICAgICAgICAgICBFdGhlcm5ldEhlYWRl
cjsKQEAgLTExOTQsMTYgKzEyMDIsMjUgQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKIAog
ICAgIEFTU0VSVDNVKFBhY2tldC0+T2Zmc2V0LCA9PSwgMCk7CiAgICAgTGVuZ3RoID0gUGFja2V0
LT5MZW5ndGg7Ci0gICAgRmxhZ3MgPSBQYWNrZXQtPkZsYWdzOwotICAgIE1heGltdW1TZWdtZW50
U2l6ZSA9IFBhY2tldC0+TWF4aW11bVNlZ21lbnRTaXplOwogICAgIEFTU0VSVDNVKFBhY2tldC0+
VGFnQ29udHJvbEluZm9ybWF0aW9uLCA9PSwgMCk7CiAKICAgICBQYXlsb2FkLk1kbCA9ICZQYWNr
ZXQtPk1kbDsKICAgICBQYXlsb2FkLk9mZnNldCA9IDA7CiAgICAgUGF5bG9hZC5MZW5ndGggPSBM
ZW5ndGg7CiAKLSAgICAvLyBHZXQgYSBuZXcgcGFja2V0IHN0cnVjdHVyZSB0aGF0IHdpbGwganVz
dCBjb250YWluIHRoZSBoZWFkZXIgYWZ0ZXIgcGFyc2luZwotICAgIFBhY2tldCA9IF9fUmVjZWl2
ZXJSaW5nR2V0UGFja2V0KFJpbmcsIFRSVUUpOworICAgIC8vIEdldCBhIG5ldyBwYWNrZXQgc3Ry
dWN0dXJlIHRoYXQgd2lsbCBqdXN0IGNvbnRhaW4gdGhlIGhlYWRlciBhZnRlcgorICAgIC8vIHBh
cnNpbmcuIFdlIG5lZWQgdG8gcHJlc2VydmUgbWV0YWRhdGEgZnJvbSB0aGUgb3JpZ2luYWwuCisK
KyAgICBOZXcgPSBfX1JlY2VpdmVyUmluZ0dldFBhY2tldChSaW5nLCBUUlVFKTsKKworICAgIFJ0
bENvcHlNZW1vcnkoTmV3LAorICAgICAgICAgICAgICAgICAgUGFja2V0LAorICAgICAgICAgICAg
ICAgICAgRklFTERfT0ZGU0VUKFhFTlZJRl9SRUNFSVZFUl9QQUNLRVQsIE1kbCkpOworCisgICAg
UGFja2V0ID0gTmV3OworCisgICAgLy8gT3ZlcnJpZGUgb2Zmc2V0IHRvIGFsaWduCisgICAgUGFj
a2V0LT5PZmZzZXQgPSBSZWNlaXZlci0+SXBBbGlnbk9mZnNldDsKIAogICAgIHN0YXR1cyA9IFNU
QVRVU19OT19NRU1PUlk7CiAgICAgaWYgKFBhY2tldCA9PSBOVUxMKSB7CkBAIC0xMjEzLDEyICsx
MjMwLDYgQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKICAgICAgICAgZ290byBmYWlsMTsK
ICAgICB9CiAKLSAgICAvLyBDb3B5IGluIHRoZSBleHRyYWN0ZWQgbWV0YWRhdGEKLSAgICBQYWNr
ZXQtPk9mZnNldCA9IFJlY2VpdmVyLT5JcEFsaWduT2Zmc2V0OwotICAgIFBhY2tldC0+TGVuZ3Ro
ID0gTGVuZ3RoOwotICAgIFBhY2tldC0+RmxhZ3MgPSBGbGFnczsKLSAgICBQYWNrZXQtPk1heGlt
dW1TZWdtZW50U2l6ZSA9IE1heGltdW1TZWdtZW50U2l6ZTsKLQogICAgIFN0YXJ0VmEgPSBNbUdl
dFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKCZQYWNrZXQtPk1kbCwgTm9ybWFsUGFnZVByaW9yaXR5
KTsKICAgICBBU1NFUlQoU3RhcnRWYSAhPSBOVUxMKTsKICAgICBTdGFydFZhICs9IFBhY2tldC0+
T2Zmc2V0OwpAQCAtMTQzMiw2ICsxNDQzLDcgQEAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jaygK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrZXQtPk1heGltdW1TZWdtZW50U2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrZXQtPlRhZ0NvbnRyb2xJbmZv
cm1hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUGFja2V0LT5JbmZvLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQYWNrZXQtPkhhc2gsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFja2V0KTsKICAgICB9CiAKQEAgLTE0NzIsMTcgKzE0ODQs
MjQgQEAgX19SZWNlaXZlclJpbmdJc1N0b3BwZWQoCiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lE
CiBfX1JlY2VpdmVyUmluZ1RyaWdnZXIoCi0gICAgSU4gIFBYRU5WSUZfUkVDRUlWRVJfUklORyAg
IFJpbmcKKyAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZywKKyAgICBJTiAgQk9P
TEVBTiAgICAgICAgICAgICAgICAgTG9ja2VkCiAgICAgKQogewogICAgIFBYRU5WSUZfUkVDRUlW
RVIgICAgICAgICAgICBSZWNlaXZlcjsKIAogICAgIFJlY2VpdmVyID0gUmluZy0+UmVjZWl2ZXI7
CiAKKyAgICBpZiAoIUxvY2tlZCkKKyAgICAgICAgX19SZWNlaXZlclJpbmdBY3F1aXJlTG9jayhS
aW5nKTsKKwogICAgIGlmIChSaW5nLT5Db25uZWN0ZWQpCiAgICAgICAgIChWT0lEKSBYRU5CVVNf
RVZUQ0hOKFRyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSZWNlaXZlci0+
RXZ0Y2huSW50ZXJmYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5DaGFu
bmVsKTsKKworICAgIGlmICghTG9ja2VkKQorICAgICAgICBfX1JlY2VpdmVyUmluZ1JlbGVhc2VM
b2NrKFJpbmcpOwogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRApAQCAtMTUzOSw3ICsxNTU4
LDcgQEAgX19SZWNlaXZlclJpbmdSZXR1cm5QYWNrZXQoCiAKICAgICAgICAgaWYgKF9fUmVjZWl2
ZXJSaW5nSXNTdG9wcGVkKFJpbmcpKSB7CiAgICAgICAgICAgICBfX1JlY2VpdmVyUmluZ1N0YXJ0
KFJpbmcpOwotICAgICAgICAgICAgX19SZWNlaXZlclJpbmdUcmlnZ2VyKFJpbmcpOworICAgICAg
ICAgICAgX19SZWNlaXZlclJpbmdUcmlnZ2VyKFJpbmcsIFRSVUUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKCFMb2NrZWQpCkBAIC0xODA5LDYgKzE4MjgsNyBAQCBSZWNlaXZlclJpbmdQb2xs
KAogICAgICAgICBCT09MRUFOICAgICAgICAgICAgICAgICBFeHRyYTsKICAgICAgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgSW5mbzsKICAgICAgICAgVVNIT1JUICAgICAgICAgICAgICAgICAg
TWF4aW11bVNlZ21lbnRTaXplOworICAgICAgICBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICBIYXNo
OwogICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVCBQYWNrZXQ7CiAgICAgICAgIHVpbnQx
Nl90ICAgICAgICAgICAgICAgIGZsYWdzOwogICAgICAgICBQTURMICAgICAgICAgICAgICAgICAg
ICBUYWlsTWRsOwpAQCAtMTgyMCw2ICsxODQwLDcgQEAgUmVjZWl2ZXJSaW5nUG9sbCgKICAgICAg
ICAgRXh0cmEgPSBGQUxTRTsKICAgICAgICAgSW5mbyA9IDA7CiAgICAgICAgIE1heGltdW1TZWdt
ZW50U2l6ZSA9IDA7CisgICAgICAgIFJ0bFplcm9NZW1vcnkoJkhhc2gsIHNpemVvZiAoSGFzaCkp
OwogICAgICAgICBQYWNrZXQgPSBOVUxMOwogICAgICAgICBmbGFncyA9IDA7CiAgICAgICAgIFRh
aWxNZGwgPSBOVUxMOwpAQCAtMTg4NCw2ICsxOTA1LDM1IEBAIFJlY2VpdmVyUmluZ1BvbGwoCiAg
ICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSA9IGV4dHJhLT51Lmdzby5zaXpl
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICAgICAgICAgIGNhc2UgWEVO
X05FVElGX0VYVFJBX1RZUEVfSEFTSDoKKyAgICAgICAgICAgICAgICAgICAgSGFzaC5BbGdvcml0
aG0gPSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaOworCisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAoZXh0cmEtPnUuaGFzaC50eXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgSGFzaC5UeXBlID0gWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgX1hF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0X1RDUDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IEhhc2guVHlwZSA9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBfWEVOX05F
VElGX0NUUkxfSEFTSF9UWVBFX0lQVjY6CisgICAgICAgICAgICAgICAgICAgICAgICBIYXNoLlR5
cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBfWEVOX05FVElGX0NUUkxfSEFT
SF9UWVBFX0lQVjZfVENQOgorICAgICAgICAgICAgICAgICAgICAgICAgSGFzaC5UeXBlID0gWEVO
VklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1A7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKEZBTFNFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhc2guVHlwZSA9
IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX05PTkU7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIEhhc2gu
VmFsdWUgPSAqKHVpbnQzMl90ICopZXh0cmEtPnUuaGFzaC52YWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQoRkFMU0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE5NDAs
NiArMTk5MCwxNCBAQCBSZWNlaXZlclJpbmdQb2xsKAogICAgICAgICAgICAgICAgICAgICAgICAg
UGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemUgPSBNYXhpbXVtU2VnbWVudFNpemU7CiAgICAgICAg
ICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgICAgICBpZiAoSW5mbyAmICgxIDw8IFhF
Tl9ORVRJRl9FWFRSQV9UWVBFX0hBU0gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlQzVShIYXNoLkFsZ29yaXRobSwgPT0sIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9F
UExJVFopOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoSGFzaC5BbGdvcml0aG0gPT0g
UmluZy0+SGFzaC5BbGdvcml0aG0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDF1
IDw8IEhhc2guVHlwZSkgJiBSaW5nLT5IYXNoLlR5cGVzKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYWNrZXQtPkhhc2ggPSBIYXNoOworICAgICAgICAgICAgICAgICAgICB9CisKICAg
ICAgICAgICAgICAgICAgICAgUGFja2V0LT5GbGFncy5WYWx1ZSA9IGZsYWdzOwogCiAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChJc1plcm9NZW1vcnkoJlBhY2tldC0+TGlzdEVudHJ5LCBzaXpl
b2YgKExJU1RfRU5UUlkpKSk7CkBAIC0xOTUyLDYgKzIwMTAsNyBAQCBSZWNlaXZlclJpbmdQb2xs
KAogICAgICAgICAgICAgICAgIEVycm9yID0gRkFMU0U7CiAgICAgICAgICAgICAgICAgSW5mbyA9
IDA7CiAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplID0gMDsKKyAgICAgICAgICAg
ICAgICBSdGxaZXJvTWVtb3J5KCZIYXNoLCBzaXplb2YgKEhhc2gpKTsKICAgICAgICAgICAgICAg
ICBQYWNrZXQgPSBOVUxMOwogICAgICAgICAgICAgICAgIGZsYWdzID0gMDsKICAgICAgICAgICAg
ICAgICBUYWlsTWRsID0gTlVMTDsKQEAgLTE5NjMsNiArMjAyMiw3IEBAIFJlY2VpdmVyUmluZ1Bv
bGwoCiAgICAgICAgIEFTU0VSVDNQKFBhY2tldCwgPT0sIE5VTEwpOwogICAgICAgICBBU1NFUlQz
VShmbGFncywgPT0sIDApOwogICAgICAgICBBU1NFUlQzVShNYXhpbXVtU2VnbWVudFNpemUsID09
LCAwKTsKKyAgICAgICAgQVNTRVJUKElzWmVyb01lbW9yeSgmSGFzaCwgc2l6ZW9mIChIYXNoKSkp
OwogICAgICAgICBBU1NFUlQzUChUYWlsTWRsLCA9PSwgTlVMTCk7CiAgICAgICAgIEFTU0VSVChF
T1ApOwogCkBAIC0yMTU4LDcgKzIyMTgsNyBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+RGVidWdDYWxsYmFjayk7CiAKICAgICAgICAg
ICAgICAgICAvLyBUcnkgdG8gbW92ZSB0aGluZ3MgYWxvbmcKLSAgICAgICAgICAgICAgICBSZWNl
aXZlclJpbmdQb2xsKFJpbmcpOworICAgICAgICAgICAgICAgIF9fUmVjZWl2ZXJSaW5nVHJpZ2dl
cihSaW5nLCBUUlVFKTsKICAgICAgICAgICAgICAgICBfX1JlY2VpdmVyUmluZ1NlbmQoUmluZywg
VFJVRSk7CiAgICAgICAgICAgICB9CiAKQEAgLTI2NzksNiArMjczOSw3IEBAIF9fUmVjZWl2ZXJS
aW5nVGVhcmRvd24oCiAgICAgUmVjZWl2ZXIgPSBSaW5nLT5SZWNlaXZlcjsKICAgICBGcm9udGVu
ZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKIAorICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPkhhc2gs
IHNpemVvZiAoWEVOVklGX1JFQ0VJVkVSX0hBU0gpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZSaW5n
LT5UaW1lckRwYywgc2l6ZW9mIChLRFBDKSk7CiAgICAgUnRsWmVyb01lbW9yeSgmUmluZy0+VGlt
ZXIsIHNpemVvZiAoS1RJTUVSKSk7CiAgICAgUnRsWmVyb01lbW9yeSgmUmluZy0+RHBjLCBzaXpl
b2YgKEtEUEMpKTsKQEAgLTM0ODYsNiArMzU0NywxOSBAQCBSZWNlaXZlcldhaXRGb3JQYWNrZXRz
KAogfQogCiBWT0lECitSZWNlaXZlclRyaWdnZXIoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIg
ICAgUmVjZWl2ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKKyAgICApCit7
CisgICAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZzsKKworICAgIFJpbmcgPSBSZWNlaXZl
ci0+UmluZ1tJbmRleF07CisKKyAgICBfX1JlY2VpdmVyUmluZ1RyaWdnZXIoUmluZywgRkFMU0Up
OworfQorCitWT0lECiBSZWNlaXZlclNlbmQoCiAgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAg
UmVjZWl2ZXIsCiAgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKQEAgLTM0OTcsMyAr
MzU3MSwxOTEgQEAgUmVjZWl2ZXJTZW5kKAogCiAgICAgX19SZWNlaXZlclJpbmdTZW5kKFJpbmcs
IEZBTFNFKTsKIH0KKworTlRTVEFUVVMKK1JlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSgKKyAgICBJ
TiAgUFhFTlZJRl9SRUNFSVZFUiAgICAgICAgICAgICAgICBSZWNlaXZlciwKKyAgICBJTiAgWEVO
VklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG0KKyAgICApCit7CisgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQ7CisgICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBMT05HICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbmRleDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKKwor
ICAgIEtlUmFpc2VJcnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CisKKyAgICBmb3IgKEluZGV4
ID0gMDsKKyAgICAgICAgIEluZGV4IDwgKExPTkcpRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRl
bmQpOworICAgICAgICAgKytJbmRleCkgeworICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1JJTkcg
ICBSaW5nOworCisgICAgICAgIFJpbmcgPSBSZWNlaXZlci0+UmluZ1tJbmRleF07CisgICAgICAg
IGlmIChSaW5nID09IE5VTEwpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBfX1JlY2Vp
dmVyUmluZ0FjcXVpcmVMb2NrKFJpbmcpOworICAgICAgICBSaW5nLT5IYXNoLkFsZ29yaXRobSA9
IEFsZ29yaXRobTsKKyAgICAgICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKKyAg
ICB9CisKKyAgICBLZUxvd2VySXJxbChJcnFsKTsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0
SGFzaEFsZ29yaXRobShGcm9udGVuZCwgQWxnb3JpdGhtKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kVXBk
YXRlSGFzaChGcm9udGVuZCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAg
IGdvdG8gZmFpbDI7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwyOgorICAg
IEVycm9yKCJmYWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIs
IHN0YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworUmVjZWl2ZXJR
dWVyeUhhc2hDYXBhYmlsaXRpZXMoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2
ZXIsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICAgICAgVHlwZXMKKyAgICApCit7CisgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQ7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJvbnRlbmQ7CisKKyAgICBz
dGF0dXMgPSBGcm9udGVuZFF1ZXJ5SGFzaFR5cGVzKEZyb250ZW5kLCBUeXBlcyk7CisgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICByZXR1cm4g
U1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0
YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworUmVjZWl2ZXJVcGRh
dGVIYXNoUGFyYW1ldGVycygKKyAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUiAgICBSZWNlaXZlciwK
KyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBUeXBlcywKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXkKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRl
bmQ7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBMT05HICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisK
KyAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKKworICAgIEtlUmFpc2VJcnFsKERJ
U1BBVENIX0xFVkVMLCAmSXJxbCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsKKyAgICAgICAgIElu
ZGV4IDwgKExPTkcpRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRlbmQpOworICAgICAgICAgKytJ
bmRleCkgeworICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1JJTkcgICBSaW5nOworCisgICAgICAg
IFJpbmcgPSBSZWNlaXZlci0+UmluZ1tJbmRleF07CisgICAgICAgIGlmIChSaW5nID09IE5VTEwp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBfX1JlY2VpdmVyUmluZ0FjcXVpcmVMb2Nr
KFJpbmcpOworICAgICAgICBSaW5nLT5IYXNoLlR5cGVzID0gVHlwZXM7CisgICAgICAgIF9fUmVj
ZWl2ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CisgICAgfQorCisgICAgS2VMb3dlcklycWwoSXJx
bCk7CisKKyAgICBzdGF0dXMgPSBGcm9udGVuZFNldEhhc2hUeXBlcyhGcm9udGVuZCwgVHlwZXMp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgc3RhdHVzID0gRnJvbnRlbmRTZXRIYXNoS2V5KEZyb250ZW5kLCBLZXkpOworICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0g
RnJvbnRlbmRVcGRhdGVIYXNoKEZyb250ZW5kKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKwor
ZmFpbDI6CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwx
ICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVT
CitSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5nKAorICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAg
IFJlY2VpdmVyLAorICAgIElOICBQUFJPQ0VTU09SX05VTUJFUiAgIFByb2Nlc3Nvck1hcHBpbmcs
CisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sKKyAgICBQWEVOVklG
X0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBQVUxPTkcgICAgICAgICAgICAgICAgICBR
dWV1ZU1hcHBpbmc7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAg
IFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAgICAg
ICAgIHN0YXR1czsKKworICAgIEZyb250ZW5kID0gUmVjZWl2ZXItPkZyb250ZW5kOworCisgICAg
UXVldWVNYXBwaW5nID0gX19SZWNlaXZlckFsbG9jYXRlKHNpemVvZiAoVUxPTkcpICogU2l6ZSk7
CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOworICAgIGlmIChRdWV1ZU1hcHBpbmcg
PT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIE51bVF1ZXVlcyA9IEZyb250ZW5k
R2V0TnVtUXVldWVzKEZyb250ZW5kKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BB
UkFNRVRFUjsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBTaXplOyBJbmRleCsrKSB7Cisg
ICAgICAgIFF1ZXVlTWFwcGluZ1tJbmRleF0gPSBLZUdldFByb2Nlc3NvckluZGV4RnJvbU51bWJl
cigmUHJvY2Vzc29yTWFwcGluZ1tJbmRleF0pOworCisgICAgICAgIGlmIChRdWV1ZU1hcHBpbmdb
SW5kZXhdID49IE51bVF1ZXVlcykKKyAgICAgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisg
ICAgc3RhdHVzID0gRnJvbnRlbmRTZXRIYXNoTWFwcGluZyhGcm9udGVuZCwgUXVldWVNYXBwaW5n
LCBTaXplKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
MzsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDQ7CisKKyAgICBfX1JlY2Vp
dmVyRnJlZShRdWV1ZU1hcHBpbmcpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitm
YWlsNDoKKyAgICBFcnJvcigiZmFpbDRcbiIpOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNc
biIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCisgICAgX19SZWNlaXZlckZy
ZWUoUXVldWVNYXBwaW5nKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwg
c3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zcmMveGVudmlm
L3JlY2VpdmVyLmggYi9zcmMveGVudmlmL3JlY2VpdmVyLmgKaW5kZXggNzE4OGRmYS4uNzg0NmYw
YiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9yZWNlaXZlci5oCisrKyBiL3NyYy94ZW52aWYvcmVj
ZWl2ZXIuaApAQCAtMTA3LDkgKzEwNyw0MSBAQCBSZWNlaXZlclJldHVyblBhY2tldCgKICAgICAp
OwogCiBleHRlcm4gVk9JRAorUmVjZWl2ZXJUcmlnZ2VyKAorICAgIElOICBQWEVOVklGX1JFQ0VJ
VkVSICAgIFJlY2VpdmVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4CisgICAg
KTsKKworZXh0ZXJuIFZPSUQKIFJlY2VpdmVyU2VuZCgKICAgICBJTiAgUFhFTlZJRl9SRUNFSVZF
UiAgICBSZWNlaXZlciwKICAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBJbmRleAogICAgICk7
CiAKK05UU1RBVFVTCitSZWNlaXZlclNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBYRU5WSUZf
UkVDRUlWRVIgICAgICAgICAgICAgICAgUmVjZWl2ZXIsCisgICAgSU4gIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAgKTsKKworTlRTVEFUVVMKK1JlY2VpdmVy
UXVlcnlIYXNoQ2FwYWJpbGl0aWVzKAorICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAgIFJlY2Vp
dmVyLAorICAgIE9VVCBQVUxPTkcgICAgICAgICAgICAgIFR5cGVzCisgICAgKTsKKworTlRTVEFU
VVMKK1JlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRlcnMoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlW
RVIgICAgUmVjZWl2ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgVHlwZXMsCisgICAg
SU4gIFBVQ0hBUiAgICAgICAgICAgICAgS2V5CisgICAgKTsKKworTlRTVEFUVVMKK1JlY2VpdmVy
VXBkYXRlSGFzaE1hcHBpbmcoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2ZXIs
CisgICAgSU4gIFBQUk9DRVNTT1JfTlVNQkVSICAgUHJvY2Vzc29yTWFwcGluZywKKyAgICBJTiAg
VUxPTkcgICAgICAgICAgICAgICBPcmRlcgorICAgICk7CisKICNlbmRpZiAgLy8gX1hFTlZJRl9S
RUNFSVZFUl9ICmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgYi9zcmMveGVu
dmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggOTQwNmNhYi4uMThmNjY0ZCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwpAQCAt
MjUyNCw2ICsyNTI0LDMyIEBAIGRvbmU6CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECitf
X1RyYW5zbWl0dGVyUmluZ1RyaWdnZXIoCisgICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVJfUklO
RyAgICBSaW5nCisgICAgKQoreworICAgIFBYRU5WSUZfVFJBTlNNSVRURVIgICAgICAgICAgICAg
VHJhbnNtaXR0ZXI7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICBGcm9udGVu
ZDsKKworICAgIFRyYW5zbWl0dGVyID0gUmluZy0+VHJhbnNtaXR0ZXI7CisgICAgRnJvbnRlbmQg
PSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7CisKKyAgICBpZiAoIVJpbmctPkNvbm5lY3RlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyb250ZW5kSXNTcGxpdChGcm9udGVuZCkpIHsKKyAg
ICAgICAgQVNTRVJUKFJpbmctPkNoYW5uZWwgIT0gTlVMTCk7CisKKyAgICAgICAgKFZPSUQpIFhF
TkJVU19FVlRDSE4oVHJpZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRyYW5z
bWl0dGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJp
bmctPkNoYW5uZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIFJlY2VpdmVyVHJpZ2dlcihGcm9u
dGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJpbmct
PkluZGV4KTsKKyAgICB9Cit9CisKK3N0YXRpYyBGT1JDRUlOTElORSBWT0lECiBfX1RyYW5zbWl0
dGVyUmluZ1NlbmQoCiAgICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVJfUklORyAgICBSaW5nCiAg
ICAgKQpAQCAtMzA4Nyw4ICszMTEzLDggQEAgVHJhbnNtaXR0ZXJSaW5nV2F0Y2hkb2coCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmctPkRlYnVnQ2FsbGJhY2spOwogCiAgICAgICAg
ICAgICAgICAgLy8gVHJ5IHRvIG1vdmUgdGhpbmdzIGFsb25nCisgICAgICAgICAgICAgICAgX19U
cmFuc21pdHRlclJpbmdUcmlnZ2VyKFJpbmcpOwogICAgICAgICAgICAgICAgIF9fVHJhbnNtaXR0
ZXJSaW5nU2VuZChSaW5nKTsKLSAgICAgICAgICAgICAgICAoVk9JRCkgVHJhbnNtaXR0ZXJSaW5n
UG9sbChSaW5nKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgUGFja2V0c1F1ZXVlZCA9
IFJpbmctPlBhY2tldHNRdWV1ZWQ7CkBAIC00NzcyLDYgKzQ3OTgsNyBAQCBUcmFuc21pdHRlclF1
ZXVlUGFja2V0KAogICAgIFBVQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRWYTsK
ICAgICBQWEVOVklGX1BBQ0tFVF9QQVlMT0FEICAgICAgICAgIFBheWxvYWQ7CiAgICAgUFhFTlZJ
Rl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvOworICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWU7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
bmRleDsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSX1JJTkcgICAgICAgIFJpbmc7CiAgICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CkBAIC00ODA1LDIwICs0ODMyLDIx
IEBAIFRyYW5zbWl0dGVyUXVldWVQYWNrZXQoCiAKICAgICBzd2l0Y2ggKEhhc2gtPkFsZ29yaXRo
bSkgewogICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgotICAgICAg
ICBJbmRleCA9IF9fVHJhbnNtaXR0ZXJIYXNoUGFja2V0KFBhY2tldCk7CisgICAgICAgIFZhbHVl
ID0gX19UcmFuc21pdHRlckhhc2hQYWNrZXQoUGFja2V0KTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQ6Ci0gICAgICAg
IEluZGV4ID0gSGFzaC0+VmFsdWU7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJ
VEhNX1RPRVBMSVRaOgorICAgICAgICBWYWx1ZSA9IEhhc2gtPlZhbHVlOwogICAgICAgICBicmVh
azsKIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVChGQUxTRSk7Ci0gICAgICAgIEluZGV4
ID0gMDsKKyAgICAgICAgVmFsdWUgPSAwOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBJ
bmRleCAlPSBGcm9udGVuZEdldE51bVF1ZXVlcyhGcm9udGVuZCk7CisgICAgSW5kZXggPSBGcm9u
dGVuZEdldFF1ZXVlKEZyb250ZW5kLCBWYWx1ZSk7CiAgICAgUmluZyA9IFRyYW5zbWl0dGVyLT5S
aW5nW0luZGV4XTsKIAogICAgIF9fVHJhbnNtaXR0ZXJSaW5nUXVldWVQYWNrZXQoUmluZywgUGFj
a2V0KTsKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvdmlmLmMgYi9zcmMveGVudmlmL3ZpZi5jCmlu
ZGV4IGNlOTRhNTYuLjU1MDFlMjUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvdmlmLmMKKysrIGIv
c3JjL3hlbnZpZi92aWYuYwpAQCAtMzE5LDYgKzMxOSw0MiBAQCBkb25lOgogfQogCiBzdGF0aWMg
Vk9JRAorVmlmUXVlcnlSaW5nQ291bnQoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZh
Y2UsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICBDb3VudAorICAgICkKK3sKKyAgICBQWEVOVklG
X1ZJRl9DT05URVhUIENvbnRleHQgPSBJbnRlcmZhY2UtPkNvbnRleHQ7CisKKyAgICBBY3F1aXJl
TXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOworCisgICAgKkNvdW50ID0gRnJvbnRlbmRH
ZXROdW1RdWV1ZXMoQ29udGV4dC0+RnJvbnRlbmQpOworCisgICAgUmVsZWFzZU1yc3dMb2NrU2hh
cmVkKCZDb250ZXh0LT5Mb2NrKTsKK30KKworc3RhdGljIE5UU1RBVFVTCitWaWZVcGRhdGVIYXNo
TWFwcGluZygKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4g
IFBQUk9DRVNTT1JfTlVNQkVSICAgTWFwcGluZywKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICBPcmRlcgorICAgICkKK3sKKyAgICBQWEVOVklGX1ZJRl9DT05URVhUICAgICBDb250ZXh0ID0g
SW50ZXJmYWNlLT5Db250ZXh0OworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsK
KworICAgIEFjcXVpcmVNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICBzdGF0
dXMgPSBSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5nKEZyb250ZW5kR2V0UmVjZWl2ZXIoQ29udGV4
dC0+RnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFw
cGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyKTsKKwor
ICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICByZXR1cm4g
c3RhdHVzOworfQorCitzdGF0aWMgVk9JRAogVmlmUmVjZWl2ZXJSZXR1cm5QYWNrZXRzVmVyc2lv
bjEoCiAgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZhY2UsCiAgICAgSU4gIFBMSVNUX0VO
VFJZICAgICBMaXN0CkBAIC02NzEsNiArNzA3LDgyIEBAIFZpZlJlY2VpdmVyU2V0QmFja2ZpbGxT
aXplKAogICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CiB9CiAKK3N0
YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQSU5U
RVJGQUNFICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG0KKyAgICApCit7CisgICAgUFhFTlZJRl9W
SUZfQ09OVEVYVCAgICAgICAgICAgICAgICAgQ29udGV4dCA9IEludGVyZmFjZS0+Q29udGV4dDsK
KyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBB
Y3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOworCisgICAgc3RhdHVzID0gUmVj
ZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKEZyb250ZW5kR2V0UmVjZWl2ZXIoQ29udGV4dC0+RnJvbnRl
bmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0pOwor
CisgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJRdWVyeUhhc2hDYXBh
YmlsaXRpZXMoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZhY2UsCisgICAgLi4uCisg
ICAgKQoreworICAgIFBYRU5WSUZfVklGX0NPTlRFWFQgQ29udGV4dCA9IEludGVyZmFjZS0+Q29u
dGV4dDsKKyAgICB2YV9saXN0ICAgICAgICAgICAgIEFyZ3VtZW50czsKKyAgICBQVUxPTkcgICAg
ICAgICAgICAgIFR5cGVzOworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAg
QWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHZhX3N0YXJ0KEFy
Z3VtZW50cywgSW50ZXJmYWNlKTsKKworICAgIFR5cGVzID0gdmFfYXJnKEFyZ3VtZW50cywgUFVM
T05HKTsKKworICAgIHN0YXR1cyA9IFJlY2VpdmVyUXVlcnlIYXNoQ2FwYWJpbGl0aWVzKEZyb250
ZW5kR2V0UmVjZWl2ZXIoQ29udGV4dC0+RnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFR5cGVzKTsKKworICAgIHZhX2VuZChBcmd1bWVudHMpOwor
CisgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJVcGRhdGVIYXNoUGFy
YW1ldGVycygKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgIEludGVyZmFjZSwKKyAgICAuLi4KKyAg
ICApCit7CisgICAgUFhFTlZJRl9WSUZfQ09OVEVYVCBDb250ZXh0ID0gSW50ZXJmYWNlLT5Db250
ZXh0OworICAgIHZhX2xpc3QgICAgICAgICAgICAgQXJndW1lbnRzOworICAgIFVMT05HICAgICAg
ICAgICAgICAgVHlwZXM7CisgICAgUFVDSEFSICAgICAgICAgICAgICBLZXk7CisgICAgTlRTVEFU
VVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBBY3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRl
eHQtPkxvY2spOworCisgICAgdmFfc3RhcnQoQXJndW1lbnRzLCBJbnRlcmZhY2UpOworCisgICAg
VHlwZXMgPSB2YV9hcmcoQXJndW1lbnRzLCBVTE9ORyk7CisgICAgS2V5ID0gdmFfYXJnKEFyZ3Vt
ZW50cywgUFVDSEFSKTsKKworICAgIHN0YXR1cyA9IFJlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRl
cnMoRnJvbnRlbmRHZXRSZWNlaXZlcihDb250ZXh0LT5Gcm9udGVuZCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEtleSk7CisKKyAgICB2YV9lbmQoQXJndW1lbnRzKTsKKwor
ICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICByZXR1cm4g
c3RhdHVzOworfQorCiBzdGF0aWMgVk9JRAogVmlmTWFjUXVlcnlTdGF0ZSgKICAgICBJTiAgUElO
VEVSRkFDRSAgICAgICAgICAgICAgICAgIEludGVyZmFjZSwKQEAgLTEwMDksNiArMTEyMSwzNiBA
QCBzdGF0aWMgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSBWaWZJbnRlcmZhY2VWZXJz
aW9uNSA9IHsKICAgICBWaWZNYWNRdWVyeUZpbHRlckxldmVsCiB9OwogCitzdGF0aWMgc3RydWN0
IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiBWaWZJbnRlcmZhY2VWZXJzaW9uNiA9IHsKKyAgICB7
IHNpemVvZiAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiksIDYsIE5VTEwsIE5VTEws
IE5VTEwgfSwKKyAgICBWaWZBY3F1aXJlLAorICAgIFZpZlJlbGVhc2UsCisgICAgVmlmRW5hYmxl
LAorICAgIFZpZkRpc2FibGUsCisgICAgVmlmUXVlcnlTdGF0aXN0aWMsCisgICAgVmlmUXVlcnlS
aW5nQ291bnQsCisgICAgVmlmVXBkYXRlSGFzaE1hcHBpbmcsCisgICAgVmlmUmVjZWl2ZXJSZXR1
cm5QYWNrZXQsCisgICAgVmlmUmVjZWl2ZXJTZXRPZmZsb2FkT3B0aW9ucywKKyAgICBWaWZSZWNl
aXZlclNldEJhY2tmaWxsU2l6ZSwKKyAgICBWaWZSZWNlaXZlclF1ZXJ5UmluZ1NpemUsCisgICAg
VmlmUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtLAorICAgIFZpZlJlY2VpdmVyUXVlcnlIYXNoQ2Fw
YWJpbGl0aWVzLAorICAgIFZpZlJlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRlcnMsCisgICAgVmlm
VHJhbnNtaXR0ZXJRdWV1ZVBhY2tldCwKKyAgICBWaWZUcmFuc21pdHRlclF1ZXJ5T2ZmbG9hZE9w
dGlvbnMsCisgICAgVmlmVHJhbnNtaXR0ZXJRdWVyeUxhcmdlUGFja2V0U2l6ZSwKKyAgICBWaWZU
cmFuc21pdHRlclF1ZXJ5UmluZ1NpemUsCisgICAgVmlmTWFjUXVlcnlTdGF0ZSwKKyAgICBWaWZN
YWNRdWVyeU1heGltdW1GcmFtZVNpemUsCisgICAgVmlmTWFjUXVlcnlQZXJtYW5lbnRBZGRyZXNz
LAorICAgIFZpZk1hY1F1ZXJ5Q3VycmVudEFkZHJlc3MsCisgICAgVmlmTWFjUXVlcnlNdWx0aWNh
c3RBZGRyZXNzZXMsCisgICAgVmlmTWFjU2V0TXVsdGljYXN0QWRkcmVzc2VzLAorICAgIFZpZk1h
Y1NldEZpbHRlckxldmVsLAorICAgIFZpZk1hY1F1ZXJ5RmlsdGVyTGV2ZWwKK307CisKIE5UU1RB
VFVTCiBWaWZJbml0aWFsaXplKAogICAgIElOICBQWEVOVklGX1BETyAgICAgICAgIFBkbywKQEAg
LTExNDEsNiArMTI4MywyMyBAQCBWaWZHZXRJbnRlcmZhY2UoCiAgICAgICAgIHN0YXR1cyA9IFNU
QVRVU19TVUNDRVNTOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSA2OiB7CisgICAg
ICAgIHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjYgKlZpZkludGVyZmFjZTsKKworICAg
ICAgICBWaWZJbnRlcmZhY2UgPSAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiAqKUlu
dGVyZmFjZTsKKworICAgICAgICBzdGF0dXMgPSBTVEFUVVNfQlVGRkVSX09WRVJGTE9XOworICAg
ICAgICBpZiAoU2l6ZSA8IHNpemVvZiAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNikp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAqVmlmSW50ZXJmYWNlID0gVmlmSW50ZXJm
YWNlVmVyc2lvbjY7CisKKyAgICAgICAgQVNTRVJUM1UoSW50ZXJmYWNlLT5WZXJzaW9uLCA9PSwg
VmVyc2lvbik7CisgICAgICAgIEludGVyZmFjZS0+Q29udGV4dCA9IENvbnRleHQ7CisKKyAgICAg
ICAgc3RhdHVzID0gU1RBVFVTX1NVQ0NFU1M7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBk
ZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKICAgICAgICAg
YnJlYWs7CkBAIC0xMTg2LDYgKzEzNDUsNyBAQCBfX1ZpZlJlY2VpdmVyUXVldWVQYWNrZXRWZXJz
aW9uMSgKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2Vn
bWVudFNpemUsCiAgICAgSU4gIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29u
dHJvbEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAg
IEluZm8sCisgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICAgICAgICAgSGFzaCwKICAg
ICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUKICAgICApCiB7CkBA
IC0xMTk0LDYgKzEzNTQsOCBAQCBfX1ZpZlJlY2VpdmVyUXVldWVQYWNrZXRWZXJzaW9uMSgKICAg
ICBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0OwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAorICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoSGFzaCk7CisKICAgICBJbmZvVmVyc2lvbjEgPSBfX1ZpZkFsbG9jYXRlKHNpemVv
ZiAoc3RydWN0IF9YRU5WSUZfUEFDS0VUX0lORk9fVjEpKTsKIAogICAgIHN0YXR1cyA9IFNUQVRV
U19OT19NRU1PUlk7CkBAIC0xMjQ3LDYgKzE0MDksMzQgQEAgZmFpbDE6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29va2llKTsKIH0KIAorc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK19fVmlm
UmVjZWl2ZXJRdWV1ZVBhY2tldFZlcnNpb240KAorICAgIElOICBQWEVOVklGX1ZJRl9DT05URVhU
ICAgICAgICAgICAgIENvbnRleHQsCisgICAgSU4gIFBNREwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTWRsLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl
dCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsCisgICAg
SU4gIFhFTlZJRl9QQUNLRVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3MsCisgICAgSU4gIFVTSE9S
VCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAorICAgIElOICBV
U0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ0NvbnRyb2xJbmZvcm1hdGlvbiwKKyAg
ICBJTiAgUFhFTlZJRl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvLAorICAgIElOICBQWEVO
VklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAgIEhhc2gsCisgICAgSU4gIFBWT0lEICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ29va2llCisgICAgKQoreworICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoSGFzaCk7CisKKyAgICBDb250ZXh0LT5DYWxsYmFjayhDb250ZXh0LT5Bcmd1bWVudCwK
KyAgICAgICAgICAgICAgICAgICAgICBYRU5WSUZfUkVDRUlWRVJfUVVFVUVfUEFDS0VULAorICAg
ICAgICAgICAgICAgICAgICAgIE1kbCwKKyAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQsCisg
ICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIEZsYWdz
LAorICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICBUYWdDb250cm9sSW5mb3JtYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
SW5mbywKKyAgICAgICAgICAgICAgICAgICAgICBDb29raWUpOworfQorCiBWT0lECiBWaWZSZWNl
aXZlclF1ZXVlUGFja2V0KAogICAgIElOICBQWEVOVklGX1ZJRl9DT05URVhUICAgICAgICAgICAg
IENvbnRleHQsCkBAIC0xMjU3LDYgKzE0NDcsNyBAQCBWaWZSZWNlaXZlclF1ZXVlUGFja2V0KAog
ICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6
ZSwKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9sSW5m
b3JtYXRpb24sCiAgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgSW5mbywK
KyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICBIYXNoLAogICAgIElOICBQ
Vk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZQogICAgICkKIHsKQEAgLTEyNzEs
MTEgKzE0NjIsMjUgQEAgVmlmUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9sSW5mb3JtYXRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2gsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvb2tpZSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSA0
OgogICAgIGNhc2UgNToKKyAgICAgICAgX19WaWZSZWNlaXZlclF1ZXVlUGFja2V0VmVyc2lvbjQo
Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWRsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBIYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb29raWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgNjoKICAg
ICAgICAgQ29udGV4dC0+Q2FsbGJhY2soQ29udGV4dC0+QXJndW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTlZJRl9SRUNFSVZFUl9RVUVVRV9QQUNLRVQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1kbCwKQEAgLTEyODUsNiArMTQ5MCw3IEBAIFZpZlJlY2VpdmVyUXVldWVQ
YWNrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUpOwogICAgICAgICBicmVhazsKIApAQCAt
MTMzNCw2ICsxNTQwLDcgQEAgVmlmVHJhbnNtaXR0ZXJSZXR1cm5QYWNrZXQoCiAKICAgICBjYXNl
IDQ6CiAgICAgY2FzZSA1OgorICAgIGNhc2UgNjoKICAgICAgICAgQ29udGV4dC0+Q2FsbGJhY2so
Q29udGV4dC0+QXJndW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9UUkFO
U01JVFRFUl9SRVRVUk5fUEFDS0VULAogICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUs
CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3ZpZi5oIGIvc3JjL3hlbnZpZi92aWYuaAppbmRleCA2
Y2RhNGI3Li42ODk0Y2EyIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3ZpZi5oCisrKyBiL3NyYy94
ZW52aWYvdmlmLmgKQEAgLTc4LDYgKzc4LDcgQEAgVmlmUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAg
ICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemUs
CiAgICAgSU4gIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9y
bWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAgIEluZm8sCisg
ICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICAgICAgICAgSGFzaCwKICAgICBJTiAgUFZP
SUQgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUKICAgICApOwogCi0tIAoyLjEuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWW-0006aq-Me; Tue, 17 May 2016 16:07:08 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWV-0006Zx-N8
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:07 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 9B/7A-07120-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRWlGSWpSXmKPExsXiVRvkorvS0Tr
 c4OgkU4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMaHlFXPBsj9MFSvb/jE2MHa3M3UxcnEICcxm
 lLi49zGYwyLwkkVi7fzbzCCOhEA/q8SN7VPYuxg5gZwYiUufG9kg7HKJRU3nWUFsIQFFieZrF
 9ghRi1jknjRNhGsgU1AXeL2+8VQzXYSn2bdBLNFBFQlri0/BjaIWUBL4uGGeYwgtrCAl8S1yT
 eYQGwWoJqZSyHqeQXcJU4dW8IMMUdOYu/k1SwgNqeAh8Ss13/YIY5wl2jffp1tAqPgAkaGVYz
 qxalFZalFuoZ6SUWZ6RkluYmZObqGBmZ6uanFxYnpqTmJScV6yfm5mxiBQccABDsYdz53OsQo
 ycGkJMp7wcQ6XIgvKT+lMiOxOCO+qDQntfgQowwHh5IEb4MDUE6wKDU9tSItMwcY/jBpCQ4eJ
 RFeO5A0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ87KDFAmAFGWU5sGNgMXiJUZZKWFeRq
 CjhHgKUotyM0tQ5V8xinMwKgnzVoFM4cnMK4Hb9AroCCagIyaYWYAcUZKIkJJqYKycbfLx+Ve
 /eifrgC4RpY6S2xMFmZkKRW9+n8NbmKfs/GzXhe2ra/vPZVbefTexMvqwlHj/U9nPpi9W1a1a
 +SnbKPfftGnm0duXfr7NleNVyGHOdqfjicyBFbeE9aVqy39MPS+99Kb+WleL01vjrzrs54y82
 SnpHV+UNvmI2bOVxd+NEhaEOSuxFGckGmoxFxUnAgDDolR3wAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1463501225!14551697!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19077 invoked from network); 17 May 2016 16:07:05 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:05 -0000
Received: by mail-wm0-f68.google.com with SMTP id e201so5886249wme.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=CHZdsqTHPmvvhX+GWImhSHVIkB93K699ivBNZJbv2vQ=;
 b=zFJkGDr86aaFJX9kFaPmWwmOOewjAhCkAcS7fFb6efjULB3Aw7RM8wh5LV/+PxbxdI
 LbN47itRkiZetMyTQ586aPTCGX5jG6HuDPOToDjddvXR0ppBlfiKHJ8WQqx3SWHRQTBi
 oC0RkWXe8Ys7n4Rft9dWsietKmRBl4Sz0aEv4n8pUFeuexKCU0rohTurL10g8a6Hdo0F
 zB4q5BfmHj3N3ewsXjT1lI4fbGmyobsmhrRb3NJnXMDczA7oZ9XPvtkhuEqOIfslsDGW
 QHYCD6QYzTfVbwYPh+C/5Uba5LmsKvjfdfARcmQSS+/jboGV6feb+BHRqsZLnvBnDcCE
 Ugfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=CHZdsqTHPmvvhX+GWImhSHVIkB93K699ivBNZJbv2vQ=;
 b=Op1MWzkJrO0GldiQkjmSVQ0BZvvo/wdeRPrh3itTBfZP60BtwLOx55bwpjSj6RH8tW
 oRTNYSo6sugjpRfv+JFXPiumVMFrSVN+63CRWssOeXrtA2VnNNUDoVTYSOGe9cqsjLeI
 UuF+/vCV0IFyN++FzQRtRBPSiJuPEQZidb1vYHwKkCFti69bSS5vjA33FrNYBPzgrdHr
 hsU+MQcmW3XmM7Qk9TdD9OM+ZPgdT/WvuqMPA9C4pSichBnmj2XDtr8GKPs83npPxl5E
 wJexbdAG5a+JE+6HTLF/CRuTZO9MP0JRZgUuS9nJah5MsABF18jOUjf23QdoH2znpBsb
 qFcQ==
X-Gm-Message-State: AOPr4FW6ntv8xDjVowMe3sGV/WaEtJXsMYZ1a1+PxcYDGE/PVdP1LkwRgHcnh2KjvRT9Bw==
X-Received: by 10.194.76.137 with SMTP id k9mr2344311wjw.3.1463501225449;
 Tue, 17 May 2016 09:07:05 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.04
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:04 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:03 +0100
Message-Id: <1463501224-12940-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/4] Add new functionality to VIF interface
	to support RSS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgZXh0cmEgZnVuY3Rpb25hbGl0eSBpbnRvIHRo
ZSBWSUYgaW50ZXJmYWNlCnRvIG1ha2UgdXNlIG9mIHRoZSBuZXcgY29udHJvbCByaW5nIHRvIHN1
cHBvcnQgTkRJUyBSU1MgaW4gWEVOTkVULgoKVGhlIFZJRiBpbnRlcmZhY2UgdmVyc2lvbiBpcyBi
dW1wZWQgdG8gNiBhbmQgdGhlIFBETyByZXZpc2lvbiBhZGp1c3RlZAphY2NvcmRpbmdseS4KClNp
Z25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQog
aW5jbHVkZS9yZXZpc2lvbi5oICAgICAgIHwgICA3ICstCiBpbmNsdWRlL3ZpZl9pbnRlcmZhY2Uu
aCAgfCAxNDYgKysrKysrKysrKysrKysrKysrKy0KIHNyYy94ZW52aWYvZnJvbnRlbmQuYyAgICB8
IDMxNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3hl
bnZpZi9mcm9udGVuZC5oICAgIHwgIDQ0ICsrKysrKy0KIHNyYy94ZW52aWYvcmVjZWl2ZXIuYyAg
ICB8IDMzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQog
c3JjL3hlbnZpZi9yZWNlaXZlci5oICAgIHwgIDMyICsrKysrCiBzcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgfCAgMzggKysrKystCiBzcmMveGVudmlmL3ZpZi5jICAgICAgICAgfCAyMDcgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy94ZW52aWYvdmlmLmggICAgICAgICB8ICAgMSAr
CiA5IGZpbGVzIGNoYW5nZWQsIDEwNzMgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS9yZXZpc2lvbi5oIGIvaW5jbHVkZS9yZXZpc2lvbi5oCmluZGV4
IDY0NThiZmQuLjE0YjdiMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmV2aXNpb24uaAorKysgYi9p
bmNsdWRlL3JldmlzaW9uLmgKQEAgLTQ0LDkgKzQ0LDEwIEBACiAgICAgREVGSU5FX1JFVklTSU9O
KDB4MDgwMDAwMDMsICAxLCAgMywgIDAsICAwKSwgICAgXAogICAgIERFRklORV9SRVZJU0lPTigw
eDA4MDAwMDA0LCAgMSwgIDMsICAyLCAgMSksICAgIFwKICAgICBERUZJTkVfUkVWSVNJT04oMHgw
ODAwMDAwNiwgIDEsICA0LCAgMiwgIDEpLCAgICBcCi0gICAgREVGSU5FX1JFVklTSU9OKDB4MDgw
MDAwMDksICAxLCAgNSwgIDIsICAxKQorICAgIERFRklORV9SRVZJU0lPTigweDA4MDAwMDA5LCAg
MSwgIDUsICAyLCAgMSksICAgIFwKKyAgICBERUZJTkVfUkVWSVNJT04oMHgwODAwMDAwQiwgIDEs
ICA2LCAgMiwgIDEpCiAKLS8vIFJldmlzaW9uIDB4MDgwMDAwMDUsIDB4MDgwMDAwMDcgYW5kIDB4
MDgwMDAwMDggYXJlIGFscmVhZHkgaW4gdXNlIGluCi0vLyB0aGUgc3RhZ2luZy04LjEgYnJhbmNo
LgorLy8gUmV2aXNpb24gMHgwODAwMDAwNSwgMHgwODAwMDAwNywgMHgwODAwMDAwOCBhbmQgMHgw
ODAwMDAwQSBhcmUgYWxyZWFkeQorLy8gaW4gdXNlIGluIHRoZSBzdGFnaW5nLTguMSBicmFuY2gu
CiAKICNlbmRpZiAgLy8gX1JFVklTSU9OX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmlmX2ludGVy
ZmFjZS5oIGIvaW5jbHVkZS92aWZfaW50ZXJmYWNlLmgKaW5kZXggNWEwNjRmZC4uODUzNTU0ZCAx
MDA2NDQKLS0tIGEvaW5jbHVkZS92aWZfaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS92aWZfaW50
ZXJmYWNlLmgKQEAgLTUwLDIwICs1MCw0NCBAQCB0eXBlZGVmIGVudW0gX1hFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE0gewogICAgIC8qISBOb25lICh2YWx1ZSBzaG91bGQgYmUgaWdub3JlZCkg
Ki8KICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUgPSAwLAogICAgIC8qISBV
bnNwZWNpZmllZCBoYXNoICh2YWx1ZSBjYW4gYmUgdXNlZCkgKi8KLSAgICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVECisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09S
SVRITV9VTlNQRUNJRklFRCwKKyAgICAvKiEgVG9lcGxpdHogaGFzaCAqLworICAgIFhFTlZJRl9Q
QUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFoKIH0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09S
SVRITSwgKlBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNOwogCi0vKiEgXHN0cnVjdCBfWEVO
VklGX1BBQ0tFVF9IQVNIX1YxCit0eXBlZGVmIGVudW0gX1hFTlZJRl9QQUNLRVRfSEFTSF9UWVBF
IHsKKyAgICAvKiEgTm9uZSAodmFsdWUgc2hvdWxkIGJlIGlnbm9yZWQpICovCisgICAgWEVOVklG
X1BBQ0tFVF9IQVNIX1RZUEVfTk9ORSA9IDAsCisgICAgLyohIElQdjQgaGVhZGVyIG9ubHkgKi8K
KyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0LAorICAgIC8qISBJUHY0IGFuZCBUQ1Ag
aGVhZGVycyAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQLAorICAgIC8q
ISBJUHY2IGhlYWRlciBvbmx5ICovCisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNiwK
KyAgICAvKiEgSVB2NiBhbmQgVENQIGhlYWRlcnMgKi8KKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hf
VFlQRV9JUFY2X1RDUAorfSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRSwgKlBYRU5WSUZfUEFDS0VU
X0hBU0hfVFlQRTsKKworc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgeworICAgIC8qISBI
YXNoIGFsZ29yaXRobSB1c2VkIHRvIGNhbGN1bGF0ZSB2YWx1ZSAqLworICAgIFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtOworICAgIC8qISBDYWxjdWxhdGVkIHZhbHVl
ICovCisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsKK307CisKKy8q
ISBcc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIKICAgICBcYnJpZWYgSGFzaCBpbmZvcm1h
dGlvbgogKi8KLXN0cnVjdCBfWEVOVklGX1BBQ0tFVF9IQVNIX1YxIHsKK3N0cnVjdCBfWEVOVklG
X1BBQ0tFVF9IQVNIX1YyIHsKICAgICAvKiEgSGFzaCBhbGdvcml0aG0gdXNlZCB0byBjYWxjdWxh
dGUgdmFsdWUgKi8KICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNICAgIEFsZ29yaXRo
bTsKKyAgICAvKiEgU2NvcGUgb2YgaGFzaCAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBF
ICAgICAgICAgVHlwZTsKICAgICAvKiEgQ2FsY3VsYXRlZCB2YWx1ZSAqLwogICAgIFVMT05HICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfWEVO
VklGX1BBQ0tFVF9IQVNIX1YxIFhFTlZJRl9QQUNLRVRfSEFTSCwgKlBYRU5WSUZfUEFDS0VUX0hB
U0g7Cit0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1BBQ0tFVF9IQVNIX1YyIFhFTlZJRl9QQUNLRVRf
SEFTSCwgKlBYRU5WSUZfUEFDS0VUX0hBU0g7CiAKIC8qISBcc3RydWN0IF9YRU5WSUZfUEFDS0VU
X0hFQURFUl9WMQogICAgIFxicmllZiBQYWNrZXQgaGVhZGVyIGluZm9ybWF0aW9uCkBAIC0zNjYs
NiArMzkwLDcgQEAgdHlwZWRlZiBWT0lECiAgICAgXHBhcmFtIE1heGltdW1TZWdtZW50U2l6ZSBU
aGUgVENQIE1TUyAodXNlZCBvbmx5IGlmIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJcFZlcnNpb25b
NHw2XUxhcmdlUGFja2V0IGlzIHNldCkKICAgICBccGFyYW0gVGFnQ29udHJvbEluZm9ybWF0aW9u
IFRoZSBWTEFOIFRDSSAodXNlZCBvbmx5IGlmIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRUYWdNYW5p
cHVsYXRpb24gaXMgc2V0KQogICAgIFxwYXJhbSBJbmZvIEhlYWRlciBpbmZvcm1hdGlvbiBmb3Ig
dGhlIHBhY2tldAorICAgIFxwYXJhbSBIYXNoIEhhc2ggaW5mb3JtYXRpb24gZm9yIHRoZSBwYWNr
ZXQKICAgICBccGFyYW0gQ29va2llIENvb2tpZSB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gWEVO
VklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVQgbWV0aG9kCiAKICAgICBcYiBYRU5WSUZfTUFDX1NU
QVRFX0NIQU5HRToKQEAgLTQyNyw2ICs0NTIsMzUgQEAgdHlwZWRlZiBOVFNUQVRVUwogICAgIE9V
VCBQVUxPTkdMT05HICAgICAgICAgICAgICBWYWx1ZQogICAgICk7CiAKKy8qISBcdHlwZWRlZiBY
RU5WSUZfVklGX1FVRVJZX1JJTkdfQ09VTlQKKyAgICBcYnJpZWYgUXVlcnkgdGhlIG51bWJlciBv
ZiBzaGFyZWQgcmluZ3MgYmV0d2VlbiBmcm9udGVuZAorICAgIGFuZCBiYWNrZW5kCisKKyAgICBc
cGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIENvdW50IEJ1
ZmZlciB0byByZWNlaXZlIHRoZSBjb3VudAorKi8KK3R5cGVkZWYgVk9JRAorKCpYRU5WSUZfVklG
X1FVRVJZX1JJTkdfQ09VTlQpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAg
T1VUIFBVTE9ORyAgICAgIENvdW50CisgICAgKTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZf
VVBEQVRFX0hBU0hfTUFQUElORworICAgIFxicmllZiBVcGRhdGUgdGhlIG1hcHBpbmcgb2YgaGFz
aCB0byB0cmFuc21pdHRlci9yZWNlaXZlciByaW5nCisKKyAgICBUaGUgZGVmYXVsdCBtYXBwaW5n
IGlzIGhhc2ggJSBudW1iZXItb2YtcmluZ3MKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGlu
dGVyZmFjZSBoZWFkZXIKKyAgICBccGFyYW0gTWFwcGluZyBUaGUgbWFwcGluZyB0YWJsZQorICAg
IFxwYXJhbSBTaXplIFRoZSBzaXplIG9mIHRoZSBtYXBwaW5nIHRhYmxlCisqLwordHlwZWRlZiBO
VFNUQVRVUworKCpYRU5WSUZfVklGX1VQREFURV9IQVNIX01BUFBJTkcpKAorICAgIElOICBQSU5U
RVJGQUNFICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgUFBST0NFU1NPUl9OVU1CRVIgICBN
YXBwaW5nLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIFNpemUKKyAgICApOworCiB0eXBl
ZGVmIFZPSUQKICgqWEVOVklGX1ZJRl9SRUNFSVZFUl9SRVRVUk5fUEFDS0VUU19WMSkoCiAgICAg
SU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZSwKQEAgLTU3OSw2ICs2MzMsNTIgQEAgdHlwZWRlZiBW
T0lECiAgICAgT1VUIFBVTE9ORyAgICAgIFNpemUKICAgICApOwogCisvKiEgXHR5cGVkZWYgWEVO
VklGX1ZJRl9SRUNFSVZFUl9TRVRfSEFTSF9BTEdPUklUSE0KKyAgICBcYnJpZWYgU2VsZWN0IGEg
aGFzaCBhbG9yaXRobQorCisgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRl
cgorICAgIFxwYXJhbSBBbGdvcml0aG0gVGhlIGFsZ29yaXRobSB0byBlbmFibGUgKG9yCisgICAg
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FIHRvIGRpc2FibGUgaGFzaGluZykKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX0hBU0hfQUxHT1JJ
VEhNKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2Us
CisgICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAg
KTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfSEFTSF9DQVBBQklM
SVRJRVMKKyAgICBcYnJpZWYgUXVlcnkgYW55IGFsZ29yaXRobS1zcGVjaWZpYyBjYXBhYmlsaXRp
ZXMuCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBh
cmFtIC4uLiBBZGRpdGlvbmFsIGNhcGFiaWxpdGllcyByZXBvcnRlZCBieSB0aGUgc2VsZWN0ZWQg
YWxnb3JpdGhtCisKKyAgICBcYiBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRa
OgorICAgIFxwYXJhbSBUeXBlcyBNYXNrIG9mIGhhc2ggdHlwZXMgc3VwcG9ydGVkCisqLwordHlw
ZWRlZiBOVFNUQVRVUworKCpYRU5WSUZfVklGX1JFQ0VJVkVSX1FVRVJZX0hBU0hfQ0FQQUJJTElU
SUVTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLAorICAgIC4uLgorICAgICk7CisK
Ky8qISBcdHlwZWRlZiBYRU5WSUZfVklGX1JFQ0VJVkVSX1VQREFURV9IQVNIX1BBUkFNRVRFUlMK
KyAgICBcYnJpZWYgU2V0IHBhcmFtZXRlcnMgb2YgY3VycmVudGx5IHNlbGVjdGVkIGFsZ29yaXRo
bS4KKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFy
YW0gLi4uIEFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1aXJlZCBieSB0aGUgc2VsZWN0ZWQgYWxn
b3JpdGhtCisKKyAgICBcYiBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaOgor
ICAgIFxwYXJhbSBUeXBlcyBNYXNrIG9mIGhhc2ggdHlwZXMgZW5hYmxlZAorICAgIFxwYXJhbSBL
ZXkgUG9pbnRlciB0byBhIDQwLWJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgaGFzaCBrZXkKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfVVBEQVRFX0hBU0hfUEFS
QU1FVEVSUykoCisgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZSwKKyAgICAuLi4KKyAgICAp
OworCisjZGVmaW5lIFhFTlZJRl9WSUZfSEFTSF9LRVlfU0laRSAgICA0MAorCiAvKiEgXHR5cGVk
ZWYgWEVOVklGX1ZJRl9NQUNfUVVFUllfU1RBVEUKICAgICBcYnJpZWYgUXVlcnkgdGhlIGN1cnJl
bnQgTUFDIChsaW5rKSBzdGF0ZQogCkBAIC04MjIsNyArOTIyLDQxIEBAIHN0cnVjdCBfWEVOVklG
X1ZJRl9JTlRFUkZBQ0VfVjUgewogICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX0ZJTFRFUl9MRVZF
TCAgICAgICAgICAgICAgIE1hY1F1ZXJ5RmlsdGVyTGV2ZWw7CiB9OwogCi10eXBlZGVmIHN0cnVj
dCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjUgWEVOVklGX1ZJRl9JTlRFUkZBQ0UsICpQWEVOVklG
X1ZJRl9JTlRFUkZBQ0U7CisvKiEgXHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjYKKyAg
ICBcYnJpZWYgVklGIGludGVyZmFjZSB2ZXJzaW9uIDYKKyAgICBcaW5ncm91cCBpbnRlcmZhY2Vz
CisqLworc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiB7CisgICAgSU5URVJGQUNFICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlOworICAgIFhFTlZJ
Rl9WSUZfQUNRVUlSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmU7CisgICAg
WEVOVklGX1ZJRl9SRUxFQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZTsK
KyAgICBYRU5WSUZfVklGX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmFi
bGU7CisgICAgWEVOVklGX1ZJRl9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RGlzYWJsZTsKKyAgICBYRU5WSUZfVklGX1FVRVJZX1NUQVRJU1RJQyAgICAgICAgICAgICAgICAg
ICAgICBRdWVyeVN0YXRpc3RpYzsKKyAgICBYRU5WSUZfVklGX1FVRVJZX1JJTkdfQ09VTlQgICAg
ICAgICAgICAgICAgICAgICBRdWVyeVJpbmdDb3VudDsKKyAgICBYRU5WSUZfVklGX1VQREFURV9I
QVNIX01BUFBJTkcgICAgICAgICAgICAgICAgICBVcGRhdGVIYXNoTWFwcGluZzsKKyAgICBYRU5W
SUZfVklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVQgICAgICAgICAgICAgICBSZWNlaXZlclJldHVy
blBhY2tldDsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9PRkZMT0FEX09QVElPTlMgICAg
ICAgICBSZWNlaXZlclNldE9mZmxvYWRPcHRpb25zOworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJf
U0VUX0JBQ0tGSUxMX1NJWkUgICAgICAgICAgIFJlY2VpdmVyU2V0QmFja2ZpbGxTaXplOworICAg
IFhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfUklOR19TSVpFICAgICAgICAgICAgIFJlY2VpdmVy
UXVlcnlSaW5nU2l6ZTsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9IQVNIX0FMR09SSVRI
TSAgICAgICAgICBSZWNlaXZlclNldEhhc2hBbGdvcml0aG07CisgICAgWEVOVklGX1ZJRl9SRUNF
SVZFUl9RVUVSWV9IQVNIX0NBUEFCSUxJVElFUyAgICAgUmVjZWl2ZXJRdWVyeUhhc2hDYXBhYmls
aXRpZXM7CisgICAgWEVOVklGX1ZJRl9SRUNFSVZFUl9VUERBVEVfSEFTSF9QQVJBTUVURVJTICAg
ICAgUmVjZWl2ZXJVcGRhdGVIYXNoUGFyYW1ldGVyczsKKyAgICBYRU5WSUZfVklGX1RSQU5TTUlU
VEVSX1FVRVVFX1BBQ0tFVCAgICAgICAgICAgICBUcmFuc21pdHRlclF1ZXVlUGFja2V0OworICAg
IFhFTlZJRl9WSUZfVFJBTlNNSVRURVJfUVVFUllfT0ZGTE9BRF9PUFRJT05TICAgIFRyYW5zbWl0
dGVyUXVlcnlPZmZsb2FkT3B0aW9uczsKKyAgICBYRU5WSUZfVklGX1RSQU5TTUlUVEVSX1FVRVJZ
X0xBUkdFX1BBQ0tFVF9TSVpFICBUcmFuc21pdHRlclF1ZXJ5TGFyZ2VQYWNrZXRTaXplOworICAg
IFhFTlZJRl9WSUZfVFJBTlNNSVRURVJfUVVFUllfUklOR19TSVpFICAgICAgICAgIFRyYW5zbWl0
dGVyUXVlcnlSaW5nU2l6ZTsKKyAgICBYRU5WSUZfVklGX01BQ19RVUVSWV9TVEFURSAgICAgICAg
ICAgICAgICAgICAgICBNYWNRdWVyeVN0YXRlOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX01B
WElNVU1fRlJBTUVfU0laRSAgICAgICAgIE1hY1F1ZXJ5TWF4aW11bUZyYW1lU2l6ZTsKKyAgICBY
RU5WSUZfVklGX01BQ19RVUVSWV9QRVJNQU5FTlRfQUREUkVTUyAgICAgICAgICBNYWNRdWVyeVBl
cm1hbmVudEFkZHJlc3M7CisgICAgWEVOVklGX1ZJRl9NQUNfUVVFUllfQ1VSUkVOVF9BRERSRVNT
ICAgICAgICAgICAgTWFjUXVlcnlDdXJyZW50QWRkcmVzczsKKyAgICBYRU5WSUZfVklGX01BQ19R
VUVSWV9NVUxUSUNBU1RfQUREUkVTU0VTICAgICAgICBNYWNRdWVyeU11bHRpY2FzdEFkZHJlc3Nl
czsKKyAgICBYRU5WSUZfVklGX01BQ19TRVRfTVVMVElDQVNUX0FERFJFU1NFUyAgICAgICAgICBN
YWNTZXRNdWx0aWNhc3RBZGRyZXNzZXM7CisgICAgWEVOVklGX1ZJRl9NQUNfU0VUX0ZJTFRFUl9M
RVZFTCAgICAgICAgICAgICAgICAgTWFjU2V0RmlsdGVyTGV2ZWw7CisgICAgWEVOVklGX1ZJRl9N
QUNfUVVFUllfRklMVEVSX0xFVkVMICAgICAgICAgICAgICAgTWFjUXVlcnlGaWx0ZXJMZXZlbDsK
K307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiBYRU5WSUZfVklG
X0lOVEVSRkFDRSwgKlBYRU5WSUZfVklGX0lOVEVSRkFDRTsKIAogLyohIFxkZWYgWEVOVklGX1ZJ
RgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9jYXRpb24KQEAgLTgz
Myw2ICs5NjcsNiBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjUgWEVO
VklGX1ZJRl9JTlRFUkZBQ0UsICpQWEVOVklGX1ZJRl9JTlRFUgogI2VuZGlmICAvLyBfV0lORExM
CiAKICNkZWZpbmUgWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVkVSU0lPTl9NSU4gICAgMgotI2RlZmlu
ZSBYRU5WSUZfVklGX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAgICA1CisjZGVmaW5lIFhFTlZJRl9W
SUZfSU5URVJGQUNFX1ZFUlNJT05fTUFYICAgIDYKIAogI2VuZGlmICAvLyBfWEVOVklGX0lOVEVS
RkFDRV9ICmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zy
b250ZW5kLmMKaW5kZXggZTk1MDU1Mi4uYjY4MmIyYyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwpAQCAtNTYsNiArNTYsMTUgQEAg
dHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9GUk9OVEVORF9TVEFUSVNUSUNTIHsKICAgICBVTE9OR0xP
TkcgICBWYWx1ZVtYRU5WSUZfVklGX1NUQVRJU1RJQ19DT1VOVF07CiB9IFhFTlZJRl9GUk9OVEVO
RF9TVEFUSVNUSUNTLCAqUFhFTlZJRl9GUk9OVEVORF9TVEFUSVNUSUNTOwogCisjZGVmaW5lIFhF
TlZJRl9GUk9OVEVORF9NQVhJTVVNX0hBU0hfTUFQUElOR19TSVpFICAgMTI4CisKK3R5cGVkZWYg
c3RydWN0IF9YRU5WSUZfRlJPTlRFTkRfSEFTSCB7CisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FM
R09SSVRITSAgICBBbGdvcml0aG07CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGbGFnczsKKyAgICBVQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVtYRU5WSUZf
VklGX0hBU0hfS0VZX1NJWkVdOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAg
TWFwcGluZ1tYRU5WSUZfRlJPTlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRV07CisgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplOworfSBYRU5WSUZfRlJPTlRFTkRf
SEFTSCwgKlBYRU5WSUZfRlJPTlRFTkRfSEFTSDsKIAogc3RydWN0IF9YRU5WSUZfRlJPTlRFTkQg
ewogICAgIFBYRU5WSUZfUERPICAgICAgICAgICAgICAgICBQZG87CkBAIC05NSw2ICsxMDQsOCBA
QCBzdHJ1Y3QgX1hFTlZJRl9GUk9OVEVORCB7CiAgICAgTkVUX0lGSU5ERVggICAgICAgICAgICAg
ICAgIEludGVyZmFjZUluZGV4OwogICAgIFBTT0NLQUREUl9JTkVUICAgICAgICAgICAgICBBZGRy
ZXNzVGFibGU7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NDb3VudDsK
KworICAgIFhFTlZJRl9GUk9OVEVORF9IQVNIICAgICAgICBIYXNoOwogfTsKIAogc3RhdGljIGNv
bnN0IFBDSEFSCkBAIC0xNzkwLDYgKzE4MDEsMjk1IEBAIEZyb250ZW5kSXNTcGxpdCgKICAgICBy
ZXR1cm4gX19Gcm9udGVuZElzU3BsaXQoRnJvbnRlbmQpOwogfQogCitzdGF0aWMgRk9SQ0VJTkxJ
TkUgTlRTVEFUVVMKK19fRnJvbnRlbmRVcGRhdGVIYXNoKAorICAgIElOICBQWEVOVklGX0ZST05U
RU5EICAgICAgICAgICAgICAgIEZyb250ZW5kCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRF
TkRfSEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgUFhFTlZJ
Rl9DT05UUk9MTEVSICAgICAgICAgICAgICAgICAgQ29udHJvbGxlcjsKKyAgICBVTE9ORyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvID0gMDsKKyAgICBVTE9ORyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTaXplOworICAgIFBVTE9ORyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1hcHBpbmc7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmxhZ3M7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
OworCisgICAgQ29udHJvbGxlciA9IF9fRnJvbnRlbmRHZXRDb250cm9sbGVyKEZyb250ZW5kKTsK
KworICAgIHN3aXRjaCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX05PTkU6CisgICAgICAgIFNpemUgPSAxOworICAgICAgICBNYXBwaW5n
ID0gJlplcm87CisgICAgICAgIEZsYWdzID0gMDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFo6CisgICAgICAgIFNpemUgPSBI
YXNoLT5TaXplOworICAgICAgICBNYXBwaW5nID0gSGFzaC0+TWFwcGluZzsKKyAgICAgICAgRmxh
Z3MgPSBIYXNoLT5GbGFnczsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQ6CisgICAgZGVmYXVsdDoKKyAgICAgICAgKFZP
SUQpIENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKENvbnRyb2xsZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9IQVNIX0FMR09SSVRI
TV9OT05FKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIHN0YXR1cyA9IENvbnRy
b2xsZXJTZXRIYXNoQWxnb3JpdGhtKENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fVE9FUExJVFop
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgc3RhdHVzID0gQ29udHJvbGxlclNldEhhc2hNYXBwaW5nU2l6ZShDb250cm9sbGVyLCBTaXpl
KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKwor
ICAgIHN0YXR1cyA9IENvbnRyb2xsZXJTZXRIYXNoTWFwcGluZyhDb250cm9sbGVyLCBNYXBwaW5n
LCBTaXplLCAwKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBm
YWlsMzsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJTZXRIYXNoS2V5KENvbnRyb2xsZXIsIEhh
c2gtPktleSwgWEVOVklGX1ZJRl9IQVNIX0tFWV9TSVpFKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNDsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJT
ZXRIYXNoRmxhZ3MoQ29udHJvbGxlciwgRmxhZ3MpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0
dXMpKQorICAgICAgICBnb3RvIGZhaWw1OworCitkb25lOgorICAgIHJldHVybiBTVEFUVVNfU1VD
Q0VTUzsKKworZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKKworZmFpbDQ6CisgICAgRXJy
b3IoImZhaWw0XG4iKTsKKworZmFpbDM6CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKworZmFpbDI6
CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4
KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitGcm9u
dGVuZFVwZGF0ZUhhc2goCisgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAg
RnJvbnRlbmQKKyAgICApCit7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7
CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssICZJcnFsKTsKKyAgICBz
dGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgS2VSZWxlYXNlU3Bp
bkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisK
K05UU1RBVFVTCitGcm9udGVuZFNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBYRU5WSUZfRlJP
TlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQsCisgICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFT
SF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkRf
SEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssICZJcnFsKTsKKworICAgIGlmIChBbGdvcml0aG0gPT0gSGFzaC0+QWxnb3JpdGht
KQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBzd2l0Y2ggKEFsZ29yaXRobSkgeworICAgIGNh
c2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgorICAgIGNhc2UgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRDoKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE1fVE9FUExJVFo6CisgICAgICAgIHN0YXR1cyA9IFNUQVRVU19TVUNDRVNT
OworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHN0YXR1cyA9IFNUQVRV
U19OT1RfU1VQUE9SVEVEOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEluZm8oIiVzOiAlc1xu
IiwgX19Gcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpLAorICAgICAgICAgKEFsZ29yaXRobSA9PSBY
RU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUpID8gIk5PTkUiIDoKKyAgICAgICAgIChB
bGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRCkgPyAi
VU5TUEVDSUZJRUQiIDoKKyAgICAgICAgIChBbGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNI
X0FMR09SSVRITV9UT0VQTElUWikgPyAiVE9FUExJVFoiIDoKKyAgICAgICAgICIiKTsKKworICAg
IEhhc2gtPkFsZ29yaXRobSA9IEFsZ29yaXRobTsKKworZG9uZToKKyAgICBLZVJlbGVhc2VTcGlu
TG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iKTsKKworICAgIEtlUmVsZWFz
ZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CisKKyAgICByZXR1cm4gc3RhdHVzOwor
fQorCitOVFNUQVRVUworRnJvbnRlbmRRdWVyeUhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9G
Uk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAgICBUeXBlcwor
ICAgICkKK3sKKyAgICBLSVJRTCAgICAgICAgICAgICAgICAgICBJcnFsOworICAgIFVMT05HICAg
ICAgICAgICAgICAgICAgIEZsYWdzOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1
czsKKworICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOworCisg
ICAgc3RhdHVzID0gQ29udHJvbGxlckdldEhhc2hGbGFncyhfX0Zyb250ZW5kR2V0Q29udHJvbGxl
cihGcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRmxhZ3Mp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgKlR5cGVzID0gMDsKKyAgICBpZiAoRmxhZ3MgJiBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVf
SVBWNCkKKyAgICAgICAgKlR5cGVzIHw9IDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBW
NDsKKyAgICBpZiAoRmxhZ3MgJiBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9UQ1ApCisg
ICAgICAgICpUeXBlcyB8PSAxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQOwor
ICAgIGlmIChGbGFncyAmIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2KQorICAgICAgICAq
VHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OworICAgIGlmIChGbGFn
cyAmIFhFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2X1RDUCkKKyAgICAgICAgKlR5cGVzIHw9
IDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1A7CisKKyAgICBLZVJlbGVhc2VT
cGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitGcm9udGVuZFNldEhhc2hNYXBwaW5nKAorICAgIElO
ICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBQVUxPTkcgICAgICAgICAg
ICAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sK
KyAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNoID0gJkZyb250ZW5kLT5IYXNoOworICAg
IEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJx
bCk7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7CisgICAgaWYgKFNp
emUgPiBYRU5WSUZfRlJPTlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRSkKKyAgICAgICAg
Z290byBmYWlsMTsKKworICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+TWFwcGluZywgTWFwcGluZywg
c2l6ZW9mIChVTE9ORykgKiBTaXplKTsKKyAgICBIYXNoLT5TaXplID0gU2l6ZTsKKworICAgIEtl
UmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CisKKyAgICByZXR1cm4gU1RB
VFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1
cyk7CisKKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisg
ICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0Zyb250ZW5kU2V0SGFzaEtleSgKKyAg
ICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXkKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9
ICZGcm9udGVuZC0+SGFzaDsKKyAgICBLSVJRTCAgICAgICAgICAgICAgICAgICBJcnFsOworCisg
ICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJxbCk7CisKKyAgICBSdGxD
b3B5TWVtb3J5KEhhc2gtPktleSwgS2V5LCBYRU5WSUZfVklGX0hBU0hfS0VZX1NJWkUpOworCisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVy
biBTVEFUVVNfU1VDQ0VTUzsKK30KKworTlRTVEFUVVMKK0Zyb250ZW5kU2V0SGFzaFR5cGVzKAor
ICAgIElOICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgIFR5cGVzCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgIEhh
c2ggPSAmRnJvbnRlbmQtPkhhc2g7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsK
KyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBGbGFnczsKKworICAgIEtlQWNxdWlyZVNwaW5M
b2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOworCisgICAgRmxhZ3MgPSAwOworICAgIGlmIChU
eXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjQpKQorICAgICAgICBGbGFn
cyB8PSBYRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNDsKKyAgICBpZiAoVHlwZXMgJiAoMSA8
PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUCkpCisgICAgICAgIEZsYWdzIHw9IFhF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0X1RDUDsKKyAgICBpZiAoVHlwZXMgJiAoMSA8PCBY
RU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2KSkKKyAgICAgICAgRmxhZ3MgfD0gWEVOX05FVElG
X0NUUkxfSEFTSF9UWVBFX0lQVjY7CisgICAgaWYgKFR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEVfSVBWNl9UQ1ApKQorICAgICAgICBGbGFncyB8PSBYRU5fTkVUSUZfQ1RSTF9I
QVNIX1RZUEVfSVBWNl9UQ1A7CisKKyAgICBIYXNoLT5GbGFncyA9IEZsYWdzOworCisgICAgS2VS
ZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKKworICAgIHJldHVybiBTVEFU
VVNfU1VDQ0VTUzsKK30KKworVUxPTkcKK0Zyb250ZW5kR2V0UXVldWUoCisgICAgSU4gIFBYRU5W
SUZfRlJPTlRFTkQgICAgRnJvbnRlbmQsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgVmFs
dWUKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9ICZGcm9udGVu
ZC0+SGFzaDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBRdWV1ZTsKKworICAgIHN3aXRj
aCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJ
VEhNX05PTkU6CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lG
SUVEOgorICAgICAgICBRdWV1ZSA9IFZhbHVlICUgX19Gcm9udGVuZEdldE51bVF1ZXVlcyhGcm9u
dGVuZCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxH
T1JJVEhNX1RPRVBMSVRaOgorICAgICAgICBRdWV1ZSA9IEhhc2gtPk1hcHBpbmdbVmFsdWUgJSBI
YXNoLT5TaXplXTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlQoRkFMU0UpOworICAgICAgICBRdWV1ZSA9IDA7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHJldHVybiBRdWV1ZTsKK30KKwogc3RhdGljIE5UU1RBVFVTCiBGcm9udGVuZENvbm5lY3Qo
CiAgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKQEAgLTIwNDUsMTEgKzIzNDUs
MjAgQEAgRnJvbnRlbmRFbmFibGUoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAg
ICAgIGdvdG8gZmFpbDM7CiAKLSAgICBGcm9udGVuZE5vdGlmeU11bHRpY2FzdEFkZHJlc3NlcyhG
cm9udGVuZCwgVFJVRSk7CisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRl
bmQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw0Owor
CisgICAgKFZPSUQpIEZyb250ZW5kTm90aWZ5TXVsdGljYXN0QWRkcmVzc2VzKEZyb250ZW5kLCBU
UlVFKTsKIAogICAgIFRyYWNlKCI8PT09PVxuIik7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OwogCitmYWlsNDoKKyAgICBFcnJvcigiZmFpbDRcbiIpOworCisgICAgVHJhbnNtaXR0ZXJEaXNh
YmxlKF9fRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCkpOworCiBmYWlsMzoKICAgICBF
cnJvcigiZmFpbDNcbiIpOwogCkBAIC0yMDczLDcgKzIzODIsNyBAQCBGcm9udGVuZERpc2FibGUo
CiB7CiAgICAgVHJhY2UoIj09PT0+XG4iKTsKIAotICAgIEZyb250ZW5kTm90aWZ5TXVsdGljYXN0
QWRkcmVzc2VzKEZyb250ZW5kLCBGQUxTRSk7CisgICAgKFZPSUQpIEZyb250ZW5kTm90aWZ5TXVs
dGljYXN0QWRkcmVzc2VzKEZyb250ZW5kLCBGQUxTRSk7CiAKICAgICBUcmFuc21pdHRlckRpc2Fi
bGUoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVyKEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNh
YmxlKF9fRnJvbnRlbmRHZXRSZWNlaXZlcihGcm9udGVuZCkpOwpAQCAtMjQ2MSw2ICsyNzcwLDcg
QEAgRnJvbnRlbmRJbml0aWFsaXplKAogICAgIEZkb0dldFN0b3JlSW50ZXJmYWNlKFBkb0dldEZk
byhQZG8pLCAmKCpGcm9udGVuZCktPlN0b3JlSW50ZXJmYWNlKTsKIAogICAgIEZyb250ZW5kU2V0
TWF4UXVldWVzKCpGcm9udGVuZCk7CisgICAgKCpGcm9udGVuZCktPkhhc2guQWxnb3JpdGhtID0g
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9VTlNQRUNJRklFRDsKIAogICAgIHN0YXR1cyA9
IE1hY0luaXRpYWxpemUoKkZyb250ZW5kLCAmKCpGcm9udGVuZCktPk1hYyk7CiAgICAgaWYgKCFO
VF9TVUNDRVNTKHN0YXR1cykpCkBAIC0yNTI2LDYgKzI4MzYsNyBAQCBmYWlsNzoKIGZhaWw2Ogog
ICAgIEVycm9yKCJmYWlsNlxuIik7CiAKKyAgICBSdGxaZXJvTWVtb3J5KCYoKkZyb250ZW5kKS0+
SGFzaCwgc2l6ZW9mIChYRU5WSUZfRlJPTlRFTkRfSEFTSCkpOwogICAgICgqRnJvbnRlbmQpLT5N
YXhRdWV1ZXMgPSAwOwogCiAgICAgUnRsWmVyb01lbW9yeSgmKCpGcm9udGVuZCktPlN0b3JlSW50
ZXJmYWNlLApAQCAtMjYxNiw2ICsyOTI3LDcgQEAgRnJvbnRlbmRUZWFyZG93bigKICAgICBNYWNU
ZWFyZG93bihfX0Zyb250ZW5kR2V0TWFjKEZyb250ZW5kKSk7CiAgICAgRnJvbnRlbmQtPk1hYyA9
IE5VTEw7CiAKKyAgICBSdGxaZXJvTWVtb3J5KCZGcm9udGVuZC0+SGFzaCwgc2l6ZW9mIChYRU5W
SUZfRlJPTlRFTkRfSEFTSCkpOwogICAgIEZyb250ZW5kLT5NYXhRdWV1ZXMgPSAwOwogCiAgICAg
UnRsWmVyb01lbW9yeSgmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLApkaWZmIC0tZ2l0IGEvc3Jj
L3hlbnZpZi9mcm9udGVuZC5oIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5oCmluZGV4IDY1ZGFhYzQu
LjUxM2U4MTIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZnJvbnRlbmQuaAorKysgYi9zcmMveGVu
dmlmL2Zyb250ZW5kLmgKQEAgLTIwMiw3ICsyMDIsNDkgQEAgRnJvbnRlbmRTZXRGaWx0ZXJMZXZl
bCgKIAogZXh0ZXJuIFZPSUQKIEZyb250ZW5kQWR2ZXJ0aXNlSXBBZGRyZXNzZXMoCi0gICAgSU4g
IFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kCisgICAgSU4gIFBYRU5WSUZfRlJPTlRF
TkQgICAgRnJvbnRlbmQKKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0Zyb250ZW5kVXBkYXRl
SGFzaCgKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZAorICAgICk7CisKK2V4
dGVybiBOVFNUQVRVUworRnJvbnRlbmRTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQWEVOVklG
X0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kLAorICAgIElOICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNICAgIEFsZ29yaXRobQorICAgICk7CisKK2V4dGVybiBOVFNUQVRVUwor
RnJvbnRlbmRRdWVyeUhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9u
dGVuZCwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAgICBUeXBlcworICAgICk7CisKK2V4dGVy
biBOVFNUQVRVUworRnJvbnRlbmRTZXRIYXNoTWFwcGluZygKKyAgICBJTiAgUFhFTlZJRl9GUk9O
VEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgUFVMT05HICAgICAgICAgICAgICBNYXBwaW5nLAor
ICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIE9yZGVyCisgICAgKTsKKworZXh0ZXJuIE5UU1RB
VFVTCitGcm9udGVuZFNldEhhc2hLZXkoCisgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJv
bnRlbmQsCisgICAgSU4gIFBVQ0hBUiAgICAgICAgICAgICAgS2V5CisgICAgKTsKKworZXh0ZXJu
IE5UU1RBVFVTCitGcm9udGVuZFNldEhhc2hUeXBlcygKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVO
RCAgICBGcm9udGVuZCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBUeXBlcworICAgICk7
CisKK2V4dGVybiBVTE9ORworRnJvbnRlbmRHZXRRdWV1ZSgKKyAgICBJTiAgUFhFTlZJRl9GUk9O
VEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBJbmRleAogICAg
ICk7CiAKICNlbmRpZiAgLy8gX1hFTlZJRl9GUk9OVEVORF9ICmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL3JlY2VpdmVyLmMgYi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggOWI0YzNiMy4uM2Qz
N2FkMiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYv
cmVjZWl2ZXIuYwpAQCAtNjcsNiArNjcsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9SRUNF
SVZFUl9GUkFHTUVOVCB7CiAgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAgRW50cnk7CiB9IFhF
TlZJRl9SRUNFSVZFUl9GUkFHTUVOVCwgKlBYRU5WSUZfUkVDRUlWRVJfRlJBR01FTlQ7CiAKK3R5
cGVkZWYgc3RydWN0IF9YRU5WSUZfUkVDRUlWRVJfSEFTSCB7CisgICAgWEVOVklGX1BBQ0tFVF9I
QVNIX0FMR09SSVRITSAgICBBbGdvcml0aG07CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUeXBlczsKK30gWEVOVklGX1JFQ0VJVkVSX0hBU0gsICpQWEVOVklGX1JFQ0VJVkVS
X0hBU0g7CisKICNkZWZpbmUgWEVOVklGX1JFQ0VJVkVSX1JJTkdfU0laRSAgIChfX0NPTlNUX1JJ
TkdfU0laRShuZXRpZl9yeCwgUEFHRV9TSVpFKSkKIAogI2RlZmluZSBYRU5WSUZfUkVDRUlWRVJf
TUFYSU1VTV9GUkFHTUVOVF9JRCAoWEVOVklGX1JFQ0VJVkVSX1JJTkdfU0laRSAtIDEpCkBAIC0x
MDEsMTEgKzEwNiwxMyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX1JFQ0VJVkVSX1JJTkcgewog
ICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgICAgICBEZWJ1Z0NhbGxiYWNrOwogICAgIFBYRU5W
SUZfVEhSRUFEICAgICAgICAgICAgICBXYXRjaGRvZ1RocmVhZDsKICAgICBMSVNUX0VOVFJZICAg
ICAgICAgICAgICAgICAgUGFja2V0TGlzdDsKKyAgICBYRU5WSUZfUkVDRUlWRVJfSEFTSCAgICAg
ICAgSGFzaDsKIH0gWEVOVklGX1JFQ0VJVkVSX1JJTkcsICpQWEVOVklGX1JFQ0VJVkVSX1JJTkc7
CiAKIHR5cGVkZWYgc3RydWN0IF9YRU5WSUZfUkVDRUlWRVJfUEFDS0VUIHsKICAgICBMSVNUX0VO
VFJZICAgICAgICAgICAgICAgICAgICAgIExpc3RFbnRyeTsKICAgICBYRU5WSUZfUEFDS0VUX0lO
Rk8gICAgICAgICAgICAgIEluZm87CisgICAgWEVOVklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAg
ICBIYXNoOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAg
IFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoOwogICAgIFhFTlZJRl9QQUNL
RVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3M7CkBAIC0xMTcsMjMgKzEyNCwyMyBAQCB0eXBlZGVm
IHN0cnVjdCBfWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVCB7CiB9IFhFTlZJRl9SRUNFSVZFUl9QQUNL
RVQsICpQWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVDsKIAogc3RydWN0IF9YRU5WSUZfUkVDRUlWRVIg
ewotICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kOwotICAgIFhFTkJVU19DQUNI
RV9JTlRFUkZBQ0UgIENhY2hlSW50ZXJmYWNlOwotICAgIFhFTkJVU19HTlRUQUJfSU5URVJGQUNF
IEdudHRhYkludGVyZmFjZTsKLSAgICBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSBFdnRjaG5JbnRl
cmZhY2U7Ci0gICAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgKlJpbmc7Ci0gICAgTE9ORyAgICAg
ICAgICAgICAgICAgICAgTG9hbmVkOwotICAgIExPTkcgICAgICAgICAgICAgICAgICAgIFJldHVy
bmVkOwotICAgIEtFVkVOVCAgICAgICAgICAgICAgICAgIEV2ZW50OwotICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgIENhbGN1bGF0ZUNoZWNrc3VtczsKLSAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICBBbGxvd0dzb1BhY2tldHM7Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgRGlzYWJs
ZUlwVmVyc2lvbjRHc287Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgRGlzYWJsZUlwVmVy
c2lvbjZHc287Ci0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSXBBbGlnbk9mZnNldDsKLSAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICBBbHdheXNQdWxsdXA7Ci0gICAgWEVOQlVTX1NUT1JF
X0lOVEVSRkFDRSAgU3RvcmVJbnRlcmZhY2U7Ci0gICAgWEVOQlVTX0RFQlVHX0lOVEVSRkFDRSAg
RGVidWdJbnRlcmZhY2U7Ci0gICAgUFhFTkJVU19ERUJVR19DQUxMQkFDSyAgRGVidWdDYWxsYmFj
azsKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kOworICAgIFhF
TkJVU19DQUNIRV9JTlRFUkZBQ0UgICAgICAgICAgQ2FjaGVJbnRlcmZhY2U7CisgICAgWEVOQlVT
X0dOVFRBQl9JTlRFUkZBQ0UgICAgICAgICBHbnR0YWJJbnRlcmZhY2U7CisgICAgWEVOQlVTX0VW
VENITl9JTlRFUkZBQ0UgICAgICAgICBFdnRjaG5JbnRlcmZhY2U7CisgICAgUFhFTlZJRl9SRUNF
SVZFUl9SSU5HICAgICAgICAgICAqUmluZzsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvYW5lZDsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
bmVkOworICAgIEtFVkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnQ7CisgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxhdGVDaGVja3N1bXM7CisgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0dzb1BhY2tldHM7CisgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNhYmxlSXBWZXJzaW9uNEdzbzsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc2FibGVJcFZlcnNpb242R3NvOworICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgSXBBbGlnbk9mZnNldDsKKyAgICBVTE9ORyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFsd2F5c1B1bGx1cDsKKyAgICBYRU5CVVNfU1RPUkVf
SU5URVJGQUNFICAgICAgICAgIFN0b3JlSW50ZXJmYWNlOworICAgIFhFTkJVU19ERUJVR19JTlRF
UkZBQ0UgICAgICAgICAgRGVidWdJbnRlcmZhY2U7CisgICAgUFhFTkJVU19ERUJVR19DQUxMQkFD
SyAgICAgICAgICBEZWJ1Z0NhbGxiYWNrOwogfTsKIAogI2RlZmluZSBYRU5WSUZfUkVDRUlWRVJf
VEFHICdFQ0VSJwpAQCAtMjY5LDYgKzI3Niw3IEBAIF9fUmVjZWl2ZXJSaW5nUHV0UGFja2V0KAog
ICAgIFBhY2tldC0+VGFnQ29udHJvbEluZm9ybWF0aW9uID0gMDsKIAogICAgIFJ0bFplcm9NZW1v
cnkoJlBhY2tldC0+SW5mbywgc2l6ZW9mIChYRU5WSUZfUEFDS0VUX0lORk8pKTsKKyAgICBSdGxa
ZXJvTWVtb3J5KCZQYWNrZXQtPkhhc2gsIHNpemVvZiAoWEVOVklGX1BBQ0tFVF9IQVNIKSk7CiAK
ICAgICBNZGwtPk1hcHBlZFN5c3RlbVZhID0gTWRsLT5TdGFydFZhOwogICAgIE1kbC0+Qnl0ZU9m
ZnNldCA9IDA7CkBAIC03NDYsMTEgKzc1NCwxMiBAQCBfX1JlY2VpdmVyUmluZ0J1aWxkU2VnbWVu
dCgKICAgICBpZiAoU2VnbWVudCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAg
U2VnbWVudC0+SW5mbyA9IFBhY2tldC0+SW5mbzsKLSAgICBTZWdtZW50LT5PZmZzZXQgPSBQYWNr
ZXQtPk9mZnNldDsKLSAgICBTZWdtZW50LT5GbGFncyA9IFBhY2tldC0+RmxhZ3M7Ci0gICAgU2Vn
bWVudC0+TWF4aW11bVNlZ21lbnRTaXplID0gUGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemU7Ci0g
ICAgU2VnbWVudC0+VGFnQ29udHJvbEluZm9ybWF0aW9uID0gUGFja2V0LT5UYWdDb250cm9sSW5m
b3JtYXRpb247CisgICAgUnRsQ29weU1lbW9yeShTZWdtZW50LAorICAgICAgICAgICAgICAgICAg
UGFja2V0LAorICAgICAgICAgICAgICAgICAgRklFTERfT0ZGU0VUKFhFTlZJRl9SRUNFSVZFUl9Q
QUNLRVQsIE1kbCkpOworCisgICAgLy8gVGhlIHNlZ21lbnQgY29udGFpbnMgbm8gZGF0YSBhcyB5
ZXQKKyAgICBTZWdtZW50LT5MZW5ndGggPSAwOwogCiAgICAgTWRsID0gJlNlZ21lbnQtPk1kbDsK
IApAQCAtMTE3OCw5ICsxMTg3LDggQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKICAgICBQ
WEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kOwogICAgIFBYRU5WSUZfTUFD
ICAgICAgICAgICAgICAgICAgICAgTWFjOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTGVuZ3RoOwotICAgIFhFTlZJRl9QQUNLRVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3M7
Ci0gICAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemU7
CiAgICAgWEVOVklGX1BBQ0tFVF9QQVlMT0FEICAgICAgICAgICBQYXlsb2FkOworICAgIFBYRU5W
SUZfUkVDRUlWRVJfUEFDS0VUICAgICAgICAgTmV3OwogICAgIFBYRU5WSUZfUEFDS0VUX0lORk8g
ICAgICAgICAgICAgSW5mbzsKICAgICBQVUNIQVIgICAgICAgICAgICAgICAgICAgICAgICAgIFN0
YXJ0VmE7CiAgICAgUEVUSEVSTkVUX0hFQURFUiAgICAgICAgICAgICAgICBFdGhlcm5ldEhlYWRl
cjsKQEAgLTExOTQsMTYgKzEyMDIsMjUgQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKIAog
ICAgIEFTU0VSVDNVKFBhY2tldC0+T2Zmc2V0LCA9PSwgMCk7CiAgICAgTGVuZ3RoID0gUGFja2V0
LT5MZW5ndGg7Ci0gICAgRmxhZ3MgPSBQYWNrZXQtPkZsYWdzOwotICAgIE1heGltdW1TZWdtZW50
U2l6ZSA9IFBhY2tldC0+TWF4aW11bVNlZ21lbnRTaXplOwogICAgIEFTU0VSVDNVKFBhY2tldC0+
VGFnQ29udHJvbEluZm9ybWF0aW9uLCA9PSwgMCk7CiAKICAgICBQYXlsb2FkLk1kbCA9ICZQYWNr
ZXQtPk1kbDsKICAgICBQYXlsb2FkLk9mZnNldCA9IDA7CiAgICAgUGF5bG9hZC5MZW5ndGggPSBM
ZW5ndGg7CiAKLSAgICAvLyBHZXQgYSBuZXcgcGFja2V0IHN0cnVjdHVyZSB0aGF0IHdpbGwganVz
dCBjb250YWluIHRoZSBoZWFkZXIgYWZ0ZXIgcGFyc2luZwotICAgIFBhY2tldCA9IF9fUmVjZWl2
ZXJSaW5nR2V0UGFja2V0KFJpbmcsIFRSVUUpOworICAgIC8vIEdldCBhIG5ldyBwYWNrZXQgc3Ry
dWN0dXJlIHRoYXQgd2lsbCBqdXN0IGNvbnRhaW4gdGhlIGhlYWRlciBhZnRlcgorICAgIC8vIHBh
cnNpbmcuIFdlIG5lZWQgdG8gcHJlc2VydmUgbWV0YWRhdGEgZnJvbSB0aGUgb3JpZ2luYWwuCisK
KyAgICBOZXcgPSBfX1JlY2VpdmVyUmluZ0dldFBhY2tldChSaW5nLCBUUlVFKTsKKworICAgIFJ0
bENvcHlNZW1vcnkoTmV3LAorICAgICAgICAgICAgICAgICAgUGFja2V0LAorICAgICAgICAgICAg
ICAgICAgRklFTERfT0ZGU0VUKFhFTlZJRl9SRUNFSVZFUl9QQUNLRVQsIE1kbCkpOworCisgICAg
UGFja2V0ID0gTmV3OworCisgICAgLy8gT3ZlcnJpZGUgb2Zmc2V0IHRvIGFsaWduCisgICAgUGFj
a2V0LT5PZmZzZXQgPSBSZWNlaXZlci0+SXBBbGlnbk9mZnNldDsKIAogICAgIHN0YXR1cyA9IFNU
QVRVU19OT19NRU1PUlk7CiAgICAgaWYgKFBhY2tldCA9PSBOVUxMKSB7CkBAIC0xMjEzLDEyICsx
MjMwLDYgQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKICAgICAgICAgZ290byBmYWlsMTsK
ICAgICB9CiAKLSAgICAvLyBDb3B5IGluIHRoZSBleHRyYWN0ZWQgbWV0YWRhdGEKLSAgICBQYWNr
ZXQtPk9mZnNldCA9IFJlY2VpdmVyLT5JcEFsaWduT2Zmc2V0OwotICAgIFBhY2tldC0+TGVuZ3Ro
ID0gTGVuZ3RoOwotICAgIFBhY2tldC0+RmxhZ3MgPSBGbGFnczsKLSAgICBQYWNrZXQtPk1heGlt
dW1TZWdtZW50U2l6ZSA9IE1heGltdW1TZWdtZW50U2l6ZTsKLQogICAgIFN0YXJ0VmEgPSBNbUdl
dFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKCZQYWNrZXQtPk1kbCwgTm9ybWFsUGFnZVByaW9yaXR5
KTsKICAgICBBU1NFUlQoU3RhcnRWYSAhPSBOVUxMKTsKICAgICBTdGFydFZhICs9IFBhY2tldC0+
T2Zmc2V0OwpAQCAtMTQzMiw2ICsxNDQzLDcgQEAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jaygK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrZXQtPk1heGltdW1TZWdtZW50U2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrZXQtPlRhZ0NvbnRyb2xJbmZv
cm1hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUGFja2V0LT5JbmZvLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQYWNrZXQtPkhhc2gsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFja2V0KTsKICAgICB9CiAKQEAgLTE0NzIsMTcgKzE0ODQs
MjQgQEAgX19SZWNlaXZlclJpbmdJc1N0b3BwZWQoCiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lE
CiBfX1JlY2VpdmVyUmluZ1RyaWdnZXIoCi0gICAgSU4gIFBYRU5WSUZfUkVDRUlWRVJfUklORyAg
IFJpbmcKKyAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZywKKyAgICBJTiAgQk9P
TEVBTiAgICAgICAgICAgICAgICAgTG9ja2VkCiAgICAgKQogewogICAgIFBYRU5WSUZfUkVDRUlW
RVIgICAgICAgICAgICBSZWNlaXZlcjsKIAogICAgIFJlY2VpdmVyID0gUmluZy0+UmVjZWl2ZXI7
CiAKKyAgICBpZiAoIUxvY2tlZCkKKyAgICAgICAgX19SZWNlaXZlclJpbmdBY3F1aXJlTG9jayhS
aW5nKTsKKwogICAgIGlmIChSaW5nLT5Db25uZWN0ZWQpCiAgICAgICAgIChWT0lEKSBYRU5CVVNf
RVZUQ0hOKFRyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSZWNlaXZlci0+
RXZ0Y2huSW50ZXJmYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5DaGFu
bmVsKTsKKworICAgIGlmICghTG9ja2VkKQorICAgICAgICBfX1JlY2VpdmVyUmluZ1JlbGVhc2VM
b2NrKFJpbmcpOwogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRApAQCAtMTUzOSw3ICsxNTU4
LDcgQEAgX19SZWNlaXZlclJpbmdSZXR1cm5QYWNrZXQoCiAKICAgICAgICAgaWYgKF9fUmVjZWl2
ZXJSaW5nSXNTdG9wcGVkKFJpbmcpKSB7CiAgICAgICAgICAgICBfX1JlY2VpdmVyUmluZ1N0YXJ0
KFJpbmcpOwotICAgICAgICAgICAgX19SZWNlaXZlclJpbmdUcmlnZ2VyKFJpbmcpOworICAgICAg
ICAgICAgX19SZWNlaXZlclJpbmdUcmlnZ2VyKFJpbmcsIFRSVUUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKCFMb2NrZWQpCkBAIC0xODA5LDYgKzE4MjgsNyBAQCBSZWNlaXZlclJpbmdQb2xs
KAogICAgICAgICBCT09MRUFOICAgICAgICAgICAgICAgICBFeHRyYTsKICAgICAgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgSW5mbzsKICAgICAgICAgVVNIT1JUICAgICAgICAgICAgICAgICAg
TWF4aW11bVNlZ21lbnRTaXplOworICAgICAgICBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICBIYXNo
OwogICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1BBQ0tFVCBQYWNrZXQ7CiAgICAgICAgIHVpbnQx
Nl90ICAgICAgICAgICAgICAgIGZsYWdzOwogICAgICAgICBQTURMICAgICAgICAgICAgICAgICAg
ICBUYWlsTWRsOwpAQCAtMTgyMCw2ICsxODQwLDcgQEAgUmVjZWl2ZXJSaW5nUG9sbCgKICAgICAg
ICAgRXh0cmEgPSBGQUxTRTsKICAgICAgICAgSW5mbyA9IDA7CiAgICAgICAgIE1heGltdW1TZWdt
ZW50U2l6ZSA9IDA7CisgICAgICAgIFJ0bFplcm9NZW1vcnkoJkhhc2gsIHNpemVvZiAoSGFzaCkp
OwogICAgICAgICBQYWNrZXQgPSBOVUxMOwogICAgICAgICBmbGFncyA9IDA7CiAgICAgICAgIFRh
aWxNZGwgPSBOVUxMOwpAQCAtMTg4NCw2ICsxOTA1LDM1IEBAIFJlY2VpdmVyUmluZ1BvbGwoCiAg
ICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSA9IGV4dHJhLT51Lmdzby5zaXpl
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICAgICAgICAgIGNhc2UgWEVO
X05FVElGX0VYVFJBX1RZUEVfSEFTSDoKKyAgICAgICAgICAgICAgICAgICAgSGFzaC5BbGdvcml0
aG0gPSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaOworCisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAoZXh0cmEtPnUuaGFzaC50eXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgSGFzaC5UeXBlID0gWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgX1hF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0X1RDUDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IEhhc2guVHlwZSA9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBfWEVOX05F
VElGX0NUUkxfSEFTSF9UWVBFX0lQVjY6CisgICAgICAgICAgICAgICAgICAgICAgICBIYXNoLlR5
cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBfWEVOX05FVElGX0NUUkxfSEFT
SF9UWVBFX0lQVjZfVENQOgorICAgICAgICAgICAgICAgICAgICAgICAgSGFzaC5UeXBlID0gWEVO
VklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1A7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKEZBTFNFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhc2guVHlwZSA9
IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX05PTkU7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIEhhc2gu
VmFsdWUgPSAqKHVpbnQzMl90ICopZXh0cmEtPnUuaGFzaC52YWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQoRkFMU0UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE5NDAs
NiArMTk5MCwxNCBAQCBSZWNlaXZlclJpbmdQb2xsKAogICAgICAgICAgICAgICAgICAgICAgICAg
UGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemUgPSBNYXhpbXVtU2VnbWVudFNpemU7CiAgICAgICAg
ICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgICAgICBpZiAoSW5mbyAmICgxIDw8IFhF
Tl9ORVRJRl9FWFRSQV9UWVBFX0hBU0gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlQzVShIYXNoLkFsZ29yaXRobSwgPT0sIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9F
UExJVFopOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoSGFzaC5BbGdvcml0aG0gPT0g
UmluZy0+SGFzaC5BbGdvcml0aG0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDF1
IDw8IEhhc2guVHlwZSkgJiBSaW5nLT5IYXNoLlR5cGVzKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYWNrZXQtPkhhc2ggPSBIYXNoOworICAgICAgICAgICAgICAgICAgICB9CisKICAg
ICAgICAgICAgICAgICAgICAgUGFja2V0LT5GbGFncy5WYWx1ZSA9IGZsYWdzOwogCiAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChJc1plcm9NZW1vcnkoJlBhY2tldC0+TGlzdEVudHJ5LCBzaXpl
b2YgKExJU1RfRU5UUlkpKSk7CkBAIC0xOTUyLDYgKzIwMTAsNyBAQCBSZWNlaXZlclJpbmdQb2xs
KAogICAgICAgICAgICAgICAgIEVycm9yID0gRkFMU0U7CiAgICAgICAgICAgICAgICAgSW5mbyA9
IDA7CiAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplID0gMDsKKyAgICAgICAgICAg
ICAgICBSdGxaZXJvTWVtb3J5KCZIYXNoLCBzaXplb2YgKEhhc2gpKTsKICAgICAgICAgICAgICAg
ICBQYWNrZXQgPSBOVUxMOwogICAgICAgICAgICAgICAgIGZsYWdzID0gMDsKICAgICAgICAgICAg
ICAgICBUYWlsTWRsID0gTlVMTDsKQEAgLTE5NjMsNiArMjAyMiw3IEBAIFJlY2VpdmVyUmluZ1Bv
bGwoCiAgICAgICAgIEFTU0VSVDNQKFBhY2tldCwgPT0sIE5VTEwpOwogICAgICAgICBBU1NFUlQz
VShmbGFncywgPT0sIDApOwogICAgICAgICBBU1NFUlQzVShNYXhpbXVtU2VnbWVudFNpemUsID09
LCAwKTsKKyAgICAgICAgQVNTRVJUKElzWmVyb01lbW9yeSgmSGFzaCwgc2l6ZW9mIChIYXNoKSkp
OwogICAgICAgICBBU1NFUlQzUChUYWlsTWRsLCA9PSwgTlVMTCk7CiAgICAgICAgIEFTU0VSVChF
T1ApOwogCkBAIC0yMTU4LDcgKzIyMTgsNyBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+RGVidWdDYWxsYmFjayk7CiAKICAgICAgICAg
ICAgICAgICAvLyBUcnkgdG8gbW92ZSB0aGluZ3MgYWxvbmcKLSAgICAgICAgICAgICAgICBSZWNl
aXZlclJpbmdQb2xsKFJpbmcpOworICAgICAgICAgICAgICAgIF9fUmVjZWl2ZXJSaW5nVHJpZ2dl
cihSaW5nLCBUUlVFKTsKICAgICAgICAgICAgICAgICBfX1JlY2VpdmVyUmluZ1NlbmQoUmluZywg
VFJVRSk7CiAgICAgICAgICAgICB9CiAKQEAgLTI2NzksNiArMjczOSw3IEBAIF9fUmVjZWl2ZXJS
aW5nVGVhcmRvd24oCiAgICAgUmVjZWl2ZXIgPSBSaW5nLT5SZWNlaXZlcjsKICAgICBGcm9udGVu
ZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKIAorICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPkhhc2gs
IHNpemVvZiAoWEVOVklGX1JFQ0VJVkVSX0hBU0gpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZSaW5n
LT5UaW1lckRwYywgc2l6ZW9mIChLRFBDKSk7CiAgICAgUnRsWmVyb01lbW9yeSgmUmluZy0+VGlt
ZXIsIHNpemVvZiAoS1RJTUVSKSk7CiAgICAgUnRsWmVyb01lbW9yeSgmUmluZy0+RHBjLCBzaXpl
b2YgKEtEUEMpKTsKQEAgLTM0ODYsNiArMzU0NywxOSBAQCBSZWNlaXZlcldhaXRGb3JQYWNrZXRz
KAogfQogCiBWT0lECitSZWNlaXZlclRyaWdnZXIoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIg
ICAgUmVjZWl2ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKKyAgICApCit7
CisgICAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZzsKKworICAgIFJpbmcgPSBSZWNlaXZl
ci0+UmluZ1tJbmRleF07CisKKyAgICBfX1JlY2VpdmVyUmluZ1RyaWdnZXIoUmluZywgRkFMU0Up
OworfQorCitWT0lECiBSZWNlaXZlclNlbmQoCiAgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAg
UmVjZWl2ZXIsCiAgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKQEAgLTM0OTcsMyAr
MzU3MSwxOTEgQEAgUmVjZWl2ZXJTZW5kKAogCiAgICAgX19SZWNlaXZlclJpbmdTZW5kKFJpbmcs
IEZBTFNFKTsKIH0KKworTlRTVEFUVVMKK1JlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSgKKyAgICBJ
TiAgUFhFTlZJRl9SRUNFSVZFUiAgICAgICAgICAgICAgICBSZWNlaXZlciwKKyAgICBJTiAgWEVO
VklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG0KKyAgICApCit7CisgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQ7CisgICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBMT05HICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbmRleDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKKwor
ICAgIEtlUmFpc2VJcnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CisKKyAgICBmb3IgKEluZGV4
ID0gMDsKKyAgICAgICAgIEluZGV4IDwgKExPTkcpRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRl
bmQpOworICAgICAgICAgKytJbmRleCkgeworICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1JJTkcg
ICBSaW5nOworCisgICAgICAgIFJpbmcgPSBSZWNlaXZlci0+UmluZ1tJbmRleF07CisgICAgICAg
IGlmIChSaW5nID09IE5VTEwpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBfX1JlY2Vp
dmVyUmluZ0FjcXVpcmVMb2NrKFJpbmcpOworICAgICAgICBSaW5nLT5IYXNoLkFsZ29yaXRobSA9
IEFsZ29yaXRobTsKKyAgICAgICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKKyAg
ICB9CisKKyAgICBLZUxvd2VySXJxbChJcnFsKTsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0
SGFzaEFsZ29yaXRobShGcm9udGVuZCwgQWxnb3JpdGhtKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kVXBk
YXRlSGFzaChGcm9udGVuZCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAg
IGdvdG8gZmFpbDI7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwyOgorICAg
IEVycm9yKCJmYWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIs
IHN0YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworUmVjZWl2ZXJR
dWVyeUhhc2hDYXBhYmlsaXRpZXMoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2
ZXIsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICAgICAgVHlwZXMKKyAgICApCit7CisgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQ7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJvbnRlbmQ7CisKKyAgICBz
dGF0dXMgPSBGcm9udGVuZFF1ZXJ5SGFzaFR5cGVzKEZyb250ZW5kLCBUeXBlcyk7CisgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICByZXR1cm4g
U1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0
YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworUmVjZWl2ZXJVcGRh
dGVIYXNoUGFyYW1ldGVycygKKyAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUiAgICBSZWNlaXZlciwK
KyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBUeXBlcywKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXkKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRl
bmQ7CisgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBMT05HICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisK
KyAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5Gcm9udGVuZDsKKworICAgIEtlUmFpc2VJcnFsKERJ
U1BBVENIX0xFVkVMLCAmSXJxbCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsKKyAgICAgICAgIElu
ZGV4IDwgKExPTkcpRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRlbmQpOworICAgICAgICAgKytJ
bmRleCkgeworICAgICAgICBQWEVOVklGX1JFQ0VJVkVSX1JJTkcgICBSaW5nOworCisgICAgICAg
IFJpbmcgPSBSZWNlaXZlci0+UmluZ1tJbmRleF07CisgICAgICAgIGlmIChSaW5nID09IE5VTEwp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBfX1JlY2VpdmVyUmluZ0FjcXVpcmVMb2Nr
KFJpbmcpOworICAgICAgICBSaW5nLT5IYXNoLlR5cGVzID0gVHlwZXM7CisgICAgICAgIF9fUmVj
ZWl2ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CisgICAgfQorCisgICAgS2VMb3dlcklycWwoSXJx
bCk7CisKKyAgICBzdGF0dXMgPSBGcm9udGVuZFNldEhhc2hUeXBlcyhGcm9udGVuZCwgVHlwZXMp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisg
ICAgc3RhdHVzID0gRnJvbnRlbmRTZXRIYXNoS2V5KEZyb250ZW5kLCBLZXkpOworICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0g
RnJvbnRlbmRVcGRhdGVIYXNoKEZyb250ZW5kKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKwor
ZmFpbDI6CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwx
ICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVT
CitSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5nKAorICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAg
IFJlY2VpdmVyLAorICAgIElOICBQUFJPQ0VTU09SX05VTUJFUiAgIFByb2Nlc3Nvck1hcHBpbmcs
CisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sKKyAgICBQWEVOVklG
X0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBQVUxPTkcgICAgICAgICAgICAgICAgICBR
dWV1ZU1hcHBpbmc7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAg
IFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAgICAg
ICAgIHN0YXR1czsKKworICAgIEZyb250ZW5kID0gUmVjZWl2ZXItPkZyb250ZW5kOworCisgICAg
UXVldWVNYXBwaW5nID0gX19SZWNlaXZlckFsbG9jYXRlKHNpemVvZiAoVUxPTkcpICogU2l6ZSk7
CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOworICAgIGlmIChRdWV1ZU1hcHBpbmcg
PT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIE51bVF1ZXVlcyA9IEZyb250ZW5k
R2V0TnVtUXVldWVzKEZyb250ZW5kKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BB
UkFNRVRFUjsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBTaXplOyBJbmRleCsrKSB7Cisg
ICAgICAgIFF1ZXVlTWFwcGluZ1tJbmRleF0gPSBLZUdldFByb2Nlc3NvckluZGV4RnJvbU51bWJl
cigmUHJvY2Vzc29yTWFwcGluZ1tJbmRleF0pOworCisgICAgICAgIGlmIChRdWV1ZU1hcHBpbmdb
SW5kZXhdID49IE51bVF1ZXVlcykKKyAgICAgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisg
ICAgc3RhdHVzID0gRnJvbnRlbmRTZXRIYXNoTWFwcGluZyhGcm9udGVuZCwgUXVldWVNYXBwaW5n
LCBTaXplKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
MzsKKworICAgIHN0YXR1cyA9IEZyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDQ7CisKKyAgICBfX1JlY2Vp
dmVyRnJlZShRdWV1ZU1hcHBpbmcpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitm
YWlsNDoKKyAgICBFcnJvcigiZmFpbDRcbiIpOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNc
biIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCisgICAgX19SZWNlaXZlckZy
ZWUoUXVldWVNYXBwaW5nKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwg
c3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zcmMveGVudmlm
L3JlY2VpdmVyLmggYi9zcmMveGVudmlmL3JlY2VpdmVyLmgKaW5kZXggNzE4OGRmYS4uNzg0NmYw
YiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9yZWNlaXZlci5oCisrKyBiL3NyYy94ZW52aWYvcmVj
ZWl2ZXIuaApAQCAtMTA3LDkgKzEwNyw0MSBAQCBSZWNlaXZlclJldHVyblBhY2tldCgKICAgICAp
OwogCiBleHRlcm4gVk9JRAorUmVjZWl2ZXJUcmlnZ2VyKAorICAgIElOICBQWEVOVklGX1JFQ0VJ
VkVSICAgIFJlY2VpdmVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4CisgICAg
KTsKKworZXh0ZXJuIFZPSUQKIFJlY2VpdmVyU2VuZCgKICAgICBJTiAgUFhFTlZJRl9SRUNFSVZF
UiAgICBSZWNlaXZlciwKICAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBJbmRleAogICAgICk7
CiAKK05UU1RBVFVTCitSZWNlaXZlclNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBYRU5WSUZf
UkVDRUlWRVIgICAgICAgICAgICAgICAgUmVjZWl2ZXIsCisgICAgSU4gIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCisgICAgKTsKKworTlRTVEFUVVMKK1JlY2VpdmVy
UXVlcnlIYXNoQ2FwYWJpbGl0aWVzKAorICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAgIFJlY2Vp
dmVyLAorICAgIE9VVCBQVUxPTkcgICAgICAgICAgICAgIFR5cGVzCisgICAgKTsKKworTlRTVEFU
VVMKK1JlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRlcnMoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlW
RVIgICAgUmVjZWl2ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgVHlwZXMsCisgICAg
SU4gIFBVQ0hBUiAgICAgICAgICAgICAgS2V5CisgICAgKTsKKworTlRTVEFUVVMKK1JlY2VpdmVy
VXBkYXRlSGFzaE1hcHBpbmcoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2ZXIs
CisgICAgSU4gIFBQUk9DRVNTT1JfTlVNQkVSICAgUHJvY2Vzc29yTWFwcGluZywKKyAgICBJTiAg
VUxPTkcgICAgICAgICAgICAgICBPcmRlcgorICAgICk7CisKICNlbmRpZiAgLy8gX1hFTlZJRl9S
RUNFSVZFUl9ICmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgYi9zcmMveGVu
dmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggOTQwNmNhYi4uMThmNjY0ZCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwpAQCAt
MjUyNCw2ICsyNTI0LDMyIEBAIGRvbmU6CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECitf
X1RyYW5zbWl0dGVyUmluZ1RyaWdnZXIoCisgICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVJfUklO
RyAgICBSaW5nCisgICAgKQoreworICAgIFBYRU5WSUZfVFJBTlNNSVRURVIgICAgICAgICAgICAg
VHJhbnNtaXR0ZXI7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICBGcm9udGVu
ZDsKKworICAgIFRyYW5zbWl0dGVyID0gUmluZy0+VHJhbnNtaXR0ZXI7CisgICAgRnJvbnRlbmQg
PSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7CisKKyAgICBpZiAoIVJpbmctPkNvbm5lY3RlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyb250ZW5kSXNTcGxpdChGcm9udGVuZCkpIHsKKyAg
ICAgICAgQVNTRVJUKFJpbmctPkNoYW5uZWwgIT0gTlVMTCk7CisKKyAgICAgICAgKFZPSUQpIFhF
TkJVU19FVlRDSE4oVHJpZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRyYW5z
bWl0dGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJp
bmctPkNoYW5uZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIFJlY2VpdmVyVHJpZ2dlcihGcm9u
dGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJpbmct
PkluZGV4KTsKKyAgICB9Cit9CisKK3N0YXRpYyBGT1JDRUlOTElORSBWT0lECiBfX1RyYW5zbWl0
dGVyUmluZ1NlbmQoCiAgICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVJfUklORyAgICBSaW5nCiAg
ICAgKQpAQCAtMzA4Nyw4ICszMTEzLDggQEAgVHJhbnNtaXR0ZXJSaW5nV2F0Y2hkb2coCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmctPkRlYnVnQ2FsbGJhY2spOwogCiAgICAgICAg
ICAgICAgICAgLy8gVHJ5IHRvIG1vdmUgdGhpbmdzIGFsb25nCisgICAgICAgICAgICAgICAgX19U
cmFuc21pdHRlclJpbmdUcmlnZ2VyKFJpbmcpOwogICAgICAgICAgICAgICAgIF9fVHJhbnNtaXR0
ZXJSaW5nU2VuZChSaW5nKTsKLSAgICAgICAgICAgICAgICAoVk9JRCkgVHJhbnNtaXR0ZXJSaW5n
UG9sbChSaW5nKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgUGFja2V0c1F1ZXVlZCA9
IFJpbmctPlBhY2tldHNRdWV1ZWQ7CkBAIC00NzcyLDYgKzQ3OTgsNyBAQCBUcmFuc21pdHRlclF1
ZXVlUGFja2V0KAogICAgIFBVQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRWYTsK
ICAgICBQWEVOVklGX1BBQ0tFVF9QQVlMT0FEICAgICAgICAgIFBheWxvYWQ7CiAgICAgUFhFTlZJ
Rl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvOworICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWU7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
bmRleDsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSX1JJTkcgICAgICAgIFJpbmc7CiAgICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CkBAIC00ODA1LDIwICs0ODMyLDIx
IEBAIFRyYW5zbWl0dGVyUXVldWVQYWNrZXQoCiAKICAgICBzd2l0Y2ggKEhhc2gtPkFsZ29yaXRo
bSkgewogICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgotICAgICAg
ICBJbmRleCA9IF9fVHJhbnNtaXR0ZXJIYXNoUGFja2V0KFBhY2tldCk7CisgICAgICAgIFZhbHVl
ID0gX19UcmFuc21pdHRlckhhc2hQYWNrZXQoUGFja2V0KTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQ6Ci0gICAgICAg
IEluZGV4ID0gSGFzaC0+VmFsdWU7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJ
VEhNX1RPRVBMSVRaOgorICAgICAgICBWYWx1ZSA9IEhhc2gtPlZhbHVlOwogICAgICAgICBicmVh
azsKIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVChGQUxTRSk7Ci0gICAgICAgIEluZGV4
ID0gMDsKKyAgICAgICAgVmFsdWUgPSAwOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBJ
bmRleCAlPSBGcm9udGVuZEdldE51bVF1ZXVlcyhGcm9udGVuZCk7CisgICAgSW5kZXggPSBGcm9u
dGVuZEdldFF1ZXVlKEZyb250ZW5kLCBWYWx1ZSk7CiAgICAgUmluZyA9IFRyYW5zbWl0dGVyLT5S
aW5nW0luZGV4XTsKIAogICAgIF9fVHJhbnNtaXR0ZXJSaW5nUXVldWVQYWNrZXQoUmluZywgUGFj
a2V0KTsKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvdmlmLmMgYi9zcmMveGVudmlmL3ZpZi5jCmlu
ZGV4IGNlOTRhNTYuLjU1MDFlMjUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvdmlmLmMKKysrIGIv
c3JjL3hlbnZpZi92aWYuYwpAQCAtMzE5LDYgKzMxOSw0MiBAQCBkb25lOgogfQogCiBzdGF0aWMg
Vk9JRAorVmlmUXVlcnlSaW5nQ291bnQoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZh
Y2UsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICBDb3VudAorICAgICkKK3sKKyAgICBQWEVOVklG
X1ZJRl9DT05URVhUIENvbnRleHQgPSBJbnRlcmZhY2UtPkNvbnRleHQ7CisKKyAgICBBY3F1aXJl
TXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOworCisgICAgKkNvdW50ID0gRnJvbnRlbmRH
ZXROdW1RdWV1ZXMoQ29udGV4dC0+RnJvbnRlbmQpOworCisgICAgUmVsZWFzZU1yc3dMb2NrU2hh
cmVkKCZDb250ZXh0LT5Mb2NrKTsKK30KKworc3RhdGljIE5UU1RBVFVTCitWaWZVcGRhdGVIYXNo
TWFwcGluZygKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4g
IFBQUk9DRVNTT1JfTlVNQkVSICAgTWFwcGluZywKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICBPcmRlcgorICAgICkKK3sKKyAgICBQWEVOVklGX1ZJRl9DT05URVhUICAgICBDb250ZXh0ID0g
SW50ZXJmYWNlLT5Db250ZXh0OworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsK
KworICAgIEFjcXVpcmVNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICBzdGF0
dXMgPSBSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5nKEZyb250ZW5kR2V0UmVjZWl2ZXIoQ29udGV4
dC0+RnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFw
cGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyKTsKKwor
ICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICByZXR1cm4g
c3RhdHVzOworfQorCitzdGF0aWMgVk9JRAogVmlmUmVjZWl2ZXJSZXR1cm5QYWNrZXRzVmVyc2lv
bjEoCiAgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZhY2UsCiAgICAgSU4gIFBMSVNUX0VO
VFJZICAgICBMaXN0CkBAIC02NzEsNiArNzA3LDgyIEBAIFZpZlJlY2VpdmVyU2V0QmFja2ZpbGxT
aXplKAogICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CiB9CiAKK3N0
YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQSU5U
RVJGQUNFICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG0KKyAgICApCit7CisgICAgUFhFTlZJRl9W
SUZfQ09OVEVYVCAgICAgICAgICAgICAgICAgQ29udGV4dCA9IEludGVyZmFjZS0+Q29udGV4dDsK
KyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBB
Y3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOworCisgICAgc3RhdHVzID0gUmVj
ZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKEZyb250ZW5kR2V0UmVjZWl2ZXIoQ29udGV4dC0+RnJvbnRl
bmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0pOwor
CisgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJRdWVyeUhhc2hDYXBh
YmlsaXRpZXMoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICBJbnRlcmZhY2UsCisgICAgLi4uCisg
ICAgKQoreworICAgIFBYRU5WSUZfVklGX0NPTlRFWFQgQ29udGV4dCA9IEludGVyZmFjZS0+Q29u
dGV4dDsKKyAgICB2YV9saXN0ICAgICAgICAgICAgIEFyZ3VtZW50czsKKyAgICBQVUxPTkcgICAg
ICAgICAgICAgIFR5cGVzOworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAg
QWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHZhX3N0YXJ0KEFy
Z3VtZW50cywgSW50ZXJmYWNlKTsKKworICAgIFR5cGVzID0gdmFfYXJnKEFyZ3VtZW50cywgUFVM
T05HKTsKKworICAgIHN0YXR1cyA9IFJlY2VpdmVyUXVlcnlIYXNoQ2FwYWJpbGl0aWVzKEZyb250
ZW5kR2V0UmVjZWl2ZXIoQ29udGV4dC0+RnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFR5cGVzKTsKKworICAgIHZhX2VuZChBcmd1bWVudHMpOwor
CisgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworVmlmUmVjZWl2ZXJVcGRhdGVIYXNoUGFy
YW1ldGVycygKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgIEludGVyZmFjZSwKKyAgICAuLi4KKyAg
ICApCit7CisgICAgUFhFTlZJRl9WSUZfQ09OVEVYVCBDb250ZXh0ID0gSW50ZXJmYWNlLT5Db250
ZXh0OworICAgIHZhX2xpc3QgICAgICAgICAgICAgQXJndW1lbnRzOworICAgIFVMT05HICAgICAg
ICAgICAgICAgVHlwZXM7CisgICAgUFVDSEFSICAgICAgICAgICAgICBLZXk7CisgICAgTlRTVEFU
VVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBBY3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRl
eHQtPkxvY2spOworCisgICAgdmFfc3RhcnQoQXJndW1lbnRzLCBJbnRlcmZhY2UpOworCisgICAg
VHlwZXMgPSB2YV9hcmcoQXJndW1lbnRzLCBVTE9ORyk7CisgICAgS2V5ID0gdmFfYXJnKEFyZ3Vt
ZW50cywgUFVDSEFSKTsKKworICAgIHN0YXR1cyA9IFJlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRl
cnMoRnJvbnRlbmRHZXRSZWNlaXZlcihDb250ZXh0LT5Gcm9udGVuZCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEtleSk7CisKKyAgICB2YV9lbmQoQXJndW1lbnRzKTsKKwor
ICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CisKKyAgICByZXR1cm4g
c3RhdHVzOworfQorCiBzdGF0aWMgVk9JRAogVmlmTWFjUXVlcnlTdGF0ZSgKICAgICBJTiAgUElO
VEVSRkFDRSAgICAgICAgICAgICAgICAgIEludGVyZmFjZSwKQEAgLTEwMDksNiArMTEyMSwzNiBA
QCBzdGF0aWMgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSBWaWZJbnRlcmZhY2VWZXJz
aW9uNSA9IHsKICAgICBWaWZNYWNRdWVyeUZpbHRlckxldmVsCiB9OwogCitzdGF0aWMgc3RydWN0
IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiBWaWZJbnRlcmZhY2VWZXJzaW9uNiA9IHsKKyAgICB7
IHNpemVvZiAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiksIDYsIE5VTEwsIE5VTEws
IE5VTEwgfSwKKyAgICBWaWZBY3F1aXJlLAorICAgIFZpZlJlbGVhc2UsCisgICAgVmlmRW5hYmxl
LAorICAgIFZpZkRpc2FibGUsCisgICAgVmlmUXVlcnlTdGF0aXN0aWMsCisgICAgVmlmUXVlcnlS
aW5nQ291bnQsCisgICAgVmlmVXBkYXRlSGFzaE1hcHBpbmcsCisgICAgVmlmUmVjZWl2ZXJSZXR1
cm5QYWNrZXQsCisgICAgVmlmUmVjZWl2ZXJTZXRPZmZsb2FkT3B0aW9ucywKKyAgICBWaWZSZWNl
aXZlclNldEJhY2tmaWxsU2l6ZSwKKyAgICBWaWZSZWNlaXZlclF1ZXJ5UmluZ1NpemUsCisgICAg
VmlmUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtLAorICAgIFZpZlJlY2VpdmVyUXVlcnlIYXNoQ2Fw
YWJpbGl0aWVzLAorICAgIFZpZlJlY2VpdmVyVXBkYXRlSGFzaFBhcmFtZXRlcnMsCisgICAgVmlm
VHJhbnNtaXR0ZXJRdWV1ZVBhY2tldCwKKyAgICBWaWZUcmFuc21pdHRlclF1ZXJ5T2ZmbG9hZE9w
dGlvbnMsCisgICAgVmlmVHJhbnNtaXR0ZXJRdWVyeUxhcmdlUGFja2V0U2l6ZSwKKyAgICBWaWZU
cmFuc21pdHRlclF1ZXJ5UmluZ1NpemUsCisgICAgVmlmTWFjUXVlcnlTdGF0ZSwKKyAgICBWaWZN
YWNRdWVyeU1heGltdW1GcmFtZVNpemUsCisgICAgVmlmTWFjUXVlcnlQZXJtYW5lbnRBZGRyZXNz
LAorICAgIFZpZk1hY1F1ZXJ5Q3VycmVudEFkZHJlc3MsCisgICAgVmlmTWFjUXVlcnlNdWx0aWNh
c3RBZGRyZXNzZXMsCisgICAgVmlmTWFjU2V0TXVsdGljYXN0QWRkcmVzc2VzLAorICAgIFZpZk1h
Y1NldEZpbHRlckxldmVsLAorICAgIFZpZk1hY1F1ZXJ5RmlsdGVyTGV2ZWwKK307CisKIE5UU1RB
VFVTCiBWaWZJbml0aWFsaXplKAogICAgIElOICBQWEVOVklGX1BETyAgICAgICAgIFBkbywKQEAg
LTExNDEsNiArMTI4MywyMyBAQCBWaWZHZXRJbnRlcmZhY2UoCiAgICAgICAgIHN0YXR1cyA9IFNU
QVRVU19TVUNDRVNTOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSA2OiB7CisgICAg
ICAgIHN0cnVjdCBfWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVjYgKlZpZkludGVyZmFjZTsKKworICAg
ICAgICBWaWZJbnRlcmZhY2UgPSAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNiAqKUlu
dGVyZmFjZTsKKworICAgICAgICBzdGF0dXMgPSBTVEFUVVNfQlVGRkVSX09WRVJGTE9XOworICAg
ICAgICBpZiAoU2l6ZSA8IHNpemVvZiAoc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNikp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAqVmlmSW50ZXJmYWNlID0gVmlmSW50ZXJm
YWNlVmVyc2lvbjY7CisKKyAgICAgICAgQVNTRVJUM1UoSW50ZXJmYWNlLT5WZXJzaW9uLCA9PSwg
VmVyc2lvbik7CisgICAgICAgIEludGVyZmFjZS0+Q29udGV4dCA9IENvbnRleHQ7CisKKyAgICAg
ICAgc3RhdHVzID0gU1RBVFVTX1NVQ0NFU1M7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBk
ZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKICAgICAgICAg
YnJlYWs7CkBAIC0xMTg2LDYgKzEzNDUsNyBAQCBfX1ZpZlJlY2VpdmVyUXVldWVQYWNrZXRWZXJz
aW9uMSgKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2Vn
bWVudFNpemUsCiAgICAgSU4gIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29u
dHJvbEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAg
IEluZm8sCisgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICAgICAgICAgSGFzaCwKICAg
ICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUKICAgICApCiB7CkBA
IC0xMTk0LDYgKzEzNTQsOCBAQCBfX1ZpZlJlY2VpdmVyUXVldWVQYWNrZXRWZXJzaW9uMSgKICAg
ICBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0OwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAorICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoSGFzaCk7CisKICAgICBJbmZvVmVyc2lvbjEgPSBfX1ZpZkFsbG9jYXRlKHNpemVv
ZiAoc3RydWN0IF9YRU5WSUZfUEFDS0VUX0lORk9fVjEpKTsKIAogICAgIHN0YXR1cyA9IFNUQVRV
U19OT19NRU1PUlk7CkBAIC0xMjQ3LDYgKzE0MDksMzQgQEAgZmFpbDE6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29va2llKTsKIH0KIAorc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK19fVmlm
UmVjZWl2ZXJRdWV1ZVBhY2tldFZlcnNpb240KAorICAgIElOICBQWEVOVklGX1ZJRl9DT05URVhU
ICAgICAgICAgICAgIENvbnRleHQsCisgICAgSU4gIFBNREwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTWRsLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl
dCwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsCisgICAg
SU4gIFhFTlZJRl9QQUNLRVRfQ0hFQ0tTVU1fRkxBR1MgICAgRmxhZ3MsCisgICAgSU4gIFVTSE9S
VCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAorICAgIElOICBV
U0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ0NvbnRyb2xJbmZvcm1hdGlvbiwKKyAg
ICBJTiAgUFhFTlZJRl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvLAorICAgIElOICBQWEVO
VklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAgIEhhc2gsCisgICAgSU4gIFBWT0lEICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ29va2llCisgICAgKQoreworICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoSGFzaCk7CisKKyAgICBDb250ZXh0LT5DYWxsYmFjayhDb250ZXh0LT5Bcmd1bWVudCwK
KyAgICAgICAgICAgICAgICAgICAgICBYRU5WSUZfUkVDRUlWRVJfUVVFVUVfUEFDS0VULAorICAg
ICAgICAgICAgICAgICAgICAgIE1kbCwKKyAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQsCisg
ICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIEZsYWdz
LAorICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICBUYWdDb250cm9sSW5mb3JtYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
SW5mbywKKyAgICAgICAgICAgICAgICAgICAgICBDb29raWUpOworfQorCiBWT0lECiBWaWZSZWNl
aXZlclF1ZXVlUGFja2V0KAogICAgIElOICBQWEVOVklGX1ZJRl9DT05URVhUICAgICAgICAgICAg
IENvbnRleHQsCkBAIC0xMjU3LDYgKzE0NDcsNyBAQCBWaWZSZWNlaXZlclF1ZXVlUGFja2V0KAog
ICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6
ZSwKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9sSW5m
b3JtYXRpb24sCiAgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgSW5mbywK
KyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICBIYXNoLAogICAgIElOICBQ
Vk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZQogICAgICkKIHsKQEAgLTEyNzEs
MTEgKzE0NjIsMjUgQEAgVmlmUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9sSW5mb3JtYXRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2gsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvb2tpZSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSA0
OgogICAgIGNhc2UgNToKKyAgICAgICAgX19WaWZSZWNlaXZlclF1ZXVlUGFja2V0VmVyc2lvbjQo
Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWRsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBIYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb29raWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgNjoKICAg
ICAgICAgQ29udGV4dC0+Q2FsbGJhY2soQ29udGV4dC0+QXJndW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTlZJRl9SRUNFSVZFUl9RVUVVRV9QQUNLRVQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1kbCwKQEAgLTEyODUsNiArMTQ5MCw3IEBAIFZpZlJlY2VpdmVyUXVldWVQ
YWNrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUpOwogICAgICAgICBicmVhazsKIApAQCAt
MTMzNCw2ICsxNTQwLDcgQEAgVmlmVHJhbnNtaXR0ZXJSZXR1cm5QYWNrZXQoCiAKICAgICBjYXNl
IDQ6CiAgICAgY2FzZSA1OgorICAgIGNhc2UgNjoKICAgICAgICAgQ29udGV4dC0+Q2FsbGJhY2so
Q29udGV4dC0+QXJndW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9UUkFO
U01JVFRFUl9SRVRVUk5fUEFDS0VULAogICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUs
CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3ZpZi5oIGIvc3JjL3hlbnZpZi92aWYuaAppbmRleCA2
Y2RhNGI3Li42ODk0Y2EyIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3ZpZi5oCisrKyBiL3NyYy94
ZW52aWYvdmlmLmgKQEAgLTc4LDYgKzc4LDcgQEAgVmlmUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAg
ICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemUs
CiAgICAgSU4gIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9y
bWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAgIEluZm8sCisg
ICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hBU0ggICAgICAgICAgICAgSGFzaCwKICAgICBJTiAgUFZP
SUQgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29raWUKICAgICApOwogCi0tIAoyLjEuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWW-0006bI-Pd; Tue, 17 May 2016 16:07:08 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWV-0006Zy-Nb
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:08 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 45/6A-09532-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkorvS0Tr
 c4GWXhcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNWHyii7lg4i+mimcrJrM0MF7pYupi5OIQEpjN
 KPGj+w6YwyLwkkVi0o7FYI6EQD+rxIrH2xm7GDmAnBiJM7+A4pxAZrVEx5zPLCC2kICiRPO1C
 +wQk5YxSXQumsEOkmATUJe4/X4xO0SDncSnWTfBbBEBVYlry4+xgdjMAloSDzfMA5svLOAqcb
 9FGyTMAlTSMf0kI4jNK+Aucf7zd2aIMXISeyevBtvLKeAhMev1H3aIG9wl2rdfZ5vAKLiAkWE
 Vo3pxalFZapGusV5SUWZ6RkluYmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmDAMQDBDsaOf06H
 GCU5mJREeS+YWIcL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuAVdgDKCRalpqdWpGXmAEMfJi3Bw
 aMkwmsHkuYtLkjMLc5Mh0idYtTl2DL13lomIZa8/LxUKXFedpAiAZCijNI8uBGwOLzEKCslzM
 sIdJQQT0FqUW5mCar8K0ZxDkYlYYhVPJl5JXCbXgEdwQR0xAQzC5AjShIRUlINjMwHfq6aViv
 sU+3Tl9tp5na0vih6+8vNugcOc0lHrbo5h7FCqFCptqEuNaE7JT5R3bLMykxGNC7/i6KJ8eP9
 jOxBLxc39PHuvFK214or5erGIp4zuV3HN/8oec9/o+pqQ+PHioJp2bXd03yfiwclCE7JfHOlY
 raWpFz4XduTq8R0PrIe/btdiaU4I9FQi7moOBEAtCc2yb4CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1463501225!14567044!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54345 invoked from network); 17 May 2016 16:07:05 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-11.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:05 -0000
Received: by mail-wm0-f68.google.com with SMTP id n129so5927118wmn.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=vagcodILJ+UcwbJ8yusnWEus+26g8aGThORKwmy17hg=;
 b=LGu8EqjvIdrfURPjqZh2uA6x9CRh8gx20jadJob4ls3DittBV2TX+xGLaLBaDRhZui
 0PrdYMEaAOdpJZLgOCZ7VB0IbrnzR0jcKWVraM1uQAdqRRsno5Y+rl6VSMbCL4aAsFGd
 9VVAlWxHXh8IrdsvsoLXihJBbRZA7UBD2fkMvN/oGo39rqVB3P8/qfjQRUo+B3FpOB/W
 t9+qz+70ZMUSf6gNHu3ODFRTirG81IUYRUEUDFKDTmJMI2CNGD0gMqNEXOlQpfJ/dw9i
 Lq5TmQhOdKdfnUNxbC3gmGT+PJjt4KQKmAf8FLCCCLBC+X0Mbrwdw7uM5r6WQZXhYEtg
 Bfzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=vagcodILJ+UcwbJ8yusnWEus+26g8aGThORKwmy17hg=;
 b=glUPaw1o3EyWfJGcSPs299yCdPUmElZjuiFcG+jX1egGbPKbbjjv84dxPT4uPCdfx4
 +NF8Gipsr1CyI+v14aNXmpUGAtfe+KCVWJs9v9MJ/7bb2E1N5zVSG43L+3Uzsja29u48
 ZhlL8XIpm1DJ+zsSWrOovkxhkjbrT+7db9pL9cHyuPOjG0WK8sL7uv6aHUk6pqly0Dns
 9rsQrPnSNr+Yt8rpzsazc3y7FYBIN84XU/Nf44ZQRIqMvmFeD6tybJUrjnyPbrcLjx8i
 Vr4dYqa7TGyBbz8DqwWBWEryBg0X09IP+NqRK//3xbpNqjfJ4x0BE5F+6Li3Vm5NbvW5
 fnWw==
X-Gm-Message-State: AOPr4FU0+X2yHMSa0GYkkxbeMSZkrbDCt3JLZZhSy1H285LsizgrCNhdiXPz4F3UP+RMPw==
X-Received: by 10.194.242.167 with SMTP id wr7mr2316216wjc.145.1463501224480; 
 Tue, 17 May 2016 09:07:04 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.03
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:03 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:02 +0100
Message-Id: <1463501224-12940-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/4] Add frontend code for the new netif
	control ring
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

TXkgcmVjZW50IHBhdGNoZXMgdG8gWGVuJ3MgbmV0aWYuaCBzcGVjaWZ5IGEgY29udHJvbCByaW5n
IHRoYXQgY2FuIGJlCnVzZWQgYnkgYSBmcm9udGVuZCBkcml2ZXIgdG8gY29uZmlndXJlIHBhY2tl
dCBoYXNoaW5nIGFuZCBzdGVlcmluZyBpbgphIGJhY2tlbmQuClRoaXMgcGF0Y2ggYWRkcyB0aGUg
bmVjZXNzYXJ5IGNvZGUgdG8gWEVOVklGIHRvIGRyaXZlIHRoaXMgbmV3IHJpbmcsCmhvd2V2ZXIg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUgdG8gbGluayB0aGlzIHVwIHRvIG5ldyBWSUYgaW50ZXJmYWNl
CmZ1bmN0aW9uYWxpdHkgKHNvIHRoYXQgaXQgbWF5IGJlIHVzZWQgYnkgWEVOTkVUKSBpcyBkZWZl
cnJlZCB0byBhCnN1YnNlcXVlbnQgcGF0Y2guCgpUaGlzIHBhdGNoIGFsc28gcHVsbHMgaW4gYW4g
dXBkYXRlZCBFVlRDSE4gaW50ZXJmYWNlIGZyb20gWEVOQlVTIGFuZApjb3JyZWN0cyB0aGUgUERP
IGJpbmRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRy
aXguY29tPgotLS0KIGluY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oICAgfCAgIDM2ICstCiBzcmMv
eGVudmlmLmluZiAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL3hlbnZpZi9jb250cm9sbGVy
LmMgICAgICB8IDEzMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiBzcmMveGVudmlmL2NvbnRyb2xsZXIuaCAgICAgIHwgIDEyNiArKysrCiBzcmMveGVudmlmL2Zy
b250ZW5kLmMgICAgICAgIHwgICA1MCArLQogc3JjL3hlbnZpZi9mcm9udGVuZC5oICAgICAgICB8
ICAgIDcgKwogdnMyMDEyL3hlbnZpZi94ZW52aWYudmN4cHJvaiB8ICAgIDEgKwogdnMyMDEzL3hl
bnZpZi94ZW52aWYudmN4cHJvaiB8ICAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCAxNTQ5IGluc2Vy
dGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW52aWYv
Y29udHJvbGxlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbnZpZi9jb250cm9sbGVyLmgK
CmRpZmYgLS1naXQgYS9pbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaCBiL2luY2x1ZGUvZXZ0Y2hu
X2ludGVyZmFjZS5oCmluZGV4IDZmOGZlNDIuLmE5OTUyZDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
ZXZ0Y2huX2ludGVyZmFjZS5oCisrKyBiL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oCkBAIC0x
ODAsNiArMTgwLDIwIEBAIHR5cGVkZWYgVk9JRAogICAgIElOICBQWEVOQlVTX0VWVENITl9DSEFO
TkVMICBDaGFubmVsCiAgICAgKTsKIAorLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fV0FJVAor
ICAgIFxicmllZiBXYWl0IGZvciBhbiBldmVudCB0byB0aGUgbG9jYWwgZW5kIG9mIHRoZSBjaGFu
bmVsCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBh
cmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxlCisgICAgXHBhcmFtIFRpbWVvdXQgQW4gb3B0
aW9uYWwgdGltZW91dCB2YWx1ZSAoc2ltaWxhciB0byBLZVdhaXRGb3JTaW5nbGVPYmplY3QoKSwg
YnV0IG5vbi16ZXJvIHZhbHVlcyBhcmUgYWxsb3dlZCBhdCBESVNQQVRDSF9MRVZFTCkuCisqLwor
dHlwZWRlZiBOVFNUQVRVUworKCpYRU5CVVNfRVZUQ0hOX1dBSVQpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5O
RUwgIENoYW5uZWwsCisgICAgSU4gIFBMQVJHRV9JTlRFR0VSICAgICAgICAgIFRpbWVvdXQgT1BU
SU9OQUwKKyAgICApOworCiAvKiEgXHR5cGVkZWYgWEVOQlVTX0VWVENITl9HRVRfUE9SVAogICAg
IFxicmllZiBHZXQgdGhlIGxvY2FsIHBvcnQgbnVtYmVyIGJvdW5kIHRvIHRoZSBjaGFubmVsCiAK
QEAgLTI3Niw3ICsyOTAsMjUgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNCB7
CiAgICAgWEVOQlVTX0VWVENITl9DTE9TRSAgICAgRXZ0Y2huQ2xvc2U7CiB9OwogCi10eXBlZGVm
IHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjQgWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZBQ0U7CisvKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENI
Tl9JTlRFUkZBQ0VfVjUKKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDUKKyAg
ICBcaW5ncm91cCBpbnRlcmZhY2VzCisqLworc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFD
RV9WNSB7CisgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50ZXJmYWNlOworICAgIFhFTkJV
U19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CisgICAgWEVOQlVTX0VWVENITl9SRUxF
QVNFICAgRXZ0Y2huUmVsZWFzZTsKKyAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBFdnRjaG5P
cGVuOworICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7CisgICAgWEVOQlVT
X0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOworICAgIFhFTkJVU19FVlRDSE5fU0VORCAg
ICAgIEV2dGNoblNlbmQ7CisgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2huVHJpZ2dl
cjsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVQgICAgICBFdnRjaG5XYWl0OworICAgIFhFTkJVU19F
VlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7CisgICAgWEVOQlVTX0VWVENITl9DTE9TRSAg
ICAgRXZ0Y2huQ2xvc2U7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRF
UkZBQ0VfVjUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0U7CiAKIC8qISBcZGVmIFhFTkJVU19FVlRDSE4KICAgICBcYnJpZWYgTWFjcm8gYXQgYXNzaXN0
IGluIG1ldGhvZCBpbnZvY2F0aW9uCkBAIC0yODcsNyArMzE5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0IFhFTkJVU19FVlRDSE5fSU5URVJGQUNFLCAqUFhF
TkJVU19FVlQKICNlbmRpZiAgLy8gX1dJTkRMTAogCiAjZGVmaW5lIFhFTkJVU19FVlRDSE5fSU5U
RVJGQUNFX1ZFUlNJT05fTUlOIDEKLSNkZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVS
U0lPTl9NQVggNAorI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01BWCA1
CiAKICNlbmRpZiAgLy8gX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX0gKIApkaWZmIC0tZ2l0IGEv
c3JjL3hlbnZpZi5pbmYgYi9zcmMveGVudmlmLmluZgppbmRleCAwZmE0Yzk4Li44OTkyNjBlIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmLmluZgorKysgYi9zcmMveGVudmlmLmluZgpAQCAtNTgsOSAr
NTgsOSBAQCB4ZW52aWZfY29pbnN0X0BNQUpPUl9WRVJTSU9OQF9ATUlOT1JfVkVSU0lPTkBfQE1J
Q1JPX1ZFUlNJT05AX0BCVUlMRF9OVU1CRVJALmRsbAogOyBEaXNwbGF5TmFtZQkJU2VjdGlvbgkJ
RGV2aWNlSUQKIDsgLS0tLS0tLS0tLS0JCS0tLS0tLS0JCS0tLS0tLS0tCiAKLSVYZW5WaWZEZXNj
JQkJPVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQEBWRU5ET1JfREVWSUNF
X0lEQCZERVZfVklGJlJFVl8wODAwMDAwOQotJVhlblZpZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhF
TkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfVklGJlJFVl8wODAwMDAwOQotJVhlblZp
ZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZERVZf
VklGJlJFVl8wODAwMDAwOQorJVhlblZpZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5f
QFZFTkRPUl9QUkVGSVhAQFZFTkRPUl9ERVZJQ0VfSURAJkRFVl9WSUYmUkVWXzA4MDAwMDBCCisl
WGVuVmlmRGVzYyUJCT1YZW5WaWZfSW5zdCwJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAx
JkRFVl9WSUYmUkVWXzA4MDAwMDBCCislWGVuVmlmRGVzYyUJCT1YZW5WaWZfSW5zdCwJWEVOQlVT
XFZFTl9AVkVORE9SX1BSRUZJWEAwMDAyJkRFVl9WSUYmUkVWXzA4MDAwMDBCCiAKIFtYZW5WaWZf
SW5zdF0gCiBDb3B5RmlsZXM9WGVuVmlmX0NvcHlmaWxlcwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMgYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42YzZiYjNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMKQEAgLTAsMCArMSwxMzM2IEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJp
eCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1ldGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPG50ZGRr
Lmg+CisjaW5jbHVkZSA8cHJvY2dycC5oPgorI2luY2x1ZGUgPG50c3Ryc2FmZS5oPgorI2luY2x1
ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHhlbi5oPgorCisj
aW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8c3RvcmVfaW50ZXJmYWNlLmg+
CisjaW5jbHVkZSA8Y2FjaGVfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8Z250dGFiX2ludGVyZmFj
ZS5oPgorI2luY2x1ZGUgPGV2dGNobl9pbnRlcmZhY2UuaD4KKworI2luY2x1ZGUgInBkby5oIgor
I2luY2x1ZGUgImZyb250ZW5kLmgiCisjaW5jbHVkZSAiY29udHJvbGxlci5oIgorI2luY2x1ZGUg
InZpZi5oIgorI2luY2x1ZGUgInRocmVhZC5oIgorI2luY2x1ZGUgInJlZ2lzdHJ5LmgiCisjaW5j
bHVkZSAiZGJnX3ByaW50LmgiCisjaW5jbHVkZSAiYXNzZXJ0LmgiCisjaW5jbHVkZSAidXRpbC5o
IgorCitleHRlcm4gVUxPTkcKK05UQVBJCitSdGxSYW5kb21FeCAoCisgICAgX19pbm91dCBQVUxP
TkcgU2VlZAorICAgICk7CisKKyNkZWZpbmUgTUFYTkFNRUxFTiAgMTI4CisKK3N0cnVjdCBfWEVO
VklGX0NPTlRST0xMRVIgeworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgICAg
IEZyb250ZW5kOworICAgIEtTUElOX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2s7
CisgICAgUFhFTkJVU19HTlRUQUJfQ0FDSEUgICAgICAgICAgICAgICAgR250dGFiQ2FjaGU7Cisg
ICAgUE1ETCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWRsOworICAgIHhlbl9uZXRp
Zl9jdHJsX2Zyb250X3JpbmdfdCAgICAgICAgIEZyb250OworICAgIHhlbl9uZXRpZl9jdHJsX3Ny
aW5nX3QgICAgICAgICAgICAgICpTaGFyZWQ7CisgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAg
ICAgICAgICAgICAgRW50cnk7CisgICAgUFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAgICAgICAgICAg
ICAgQ2hhbm5lbDsKKyAgICBLRFBDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcGM7
CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHBjczsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudHM7CisgICAgQk9PTEVBTiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGVkOworICAgIEJPT0xFQU4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVuYWJsZWQ7CisgICAgVVNIT1JUICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmVxdWVzdElkOworICAgIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0
ICAgICAgIFJlcXVlc3Q7CisgICAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlICAgICAg
UmVzcG9uc2U7CisgICAgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UgICAgICAgICAgICAgR250dGFi
SW50ZXJmYWNlOworICAgIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFICAgICAgICAgICAgIEV2dGNo
bkludGVyZmFjZTsKKyAgICBYRU5CVVNfU1RPUkVfSU5URVJGQUNFICAgICAgICAgICAgICBTdG9y
ZUludGVyZmFjZTsKKyAgICBYRU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAgICAgICAgICBEZWJ1
Z0ludGVyZmFjZTsKKyAgICBQWEVOQlVTX0RFQlVHX0NBTExCQUNLICAgICAgICAgICAgICBEZWJ1
Z0NhbGxiYWNrOworICAgIFBYRU5WSUZfVEhSRUFEICAgICAgICAgICAgICAgICAgICAgIFdhdGNo
ZG9nVGhyZWFkOworfTsKKworI2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9UQUcgICdUTk9DJwor
CitzdGF0aWMgRk9SQ0VJTkxJTkUgUFZPSUQKK19fQ29udHJvbGxlckFsbG9jYXRlKAorICAgIElO
ICBVTE9ORyAgIExlbmd0aAorICAgICkKK3sKKyAgICByZXR1cm4gX19BbGxvY2F0ZVBvb2xXaXRo
VGFnKE5vblBhZ2VkUG9vbCwgTGVuZ3RoLCBYRU5WSUZfQ09OVFJPTExFUl9UQUcpOworfQorCitz
dGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19Db250cm9sbGVyRnJlZSgKKyAgICBJTiAgUFZPSUQg
ICBCdWZmZXIKKyAgICApCit7CisgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WSUZf
Q09OVFJPTExFUl9UQUcpOworfQorCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19kcnZfcmVx
dWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19Db250cm9sbGVyQWNxdWlyZUxvY2soCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBBU1NFUlQz
VShLZUdldEN1cnJlbnRJcnFsKCksID09LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBLZUFjcXVp
cmVTcGluTG9ja0F0RHBjTGV2ZWwoJkNvbnRyb2xsZXItPkxvY2spOworfQorCitzdGF0aWMgRk9S
Q0VJTkxJTkUgVk9JRAorX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19Db250
cm9sbGVyUmVsZWFzZUxvY2soCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxl
cgorICAgICkKK3sKKyAgICBLZVJlbGVhc2VTcGluTG9ja0Zyb21EcGNMZXZlbCgmQ29udHJvbGxl
ci0+TG9jayk7Cit9CisKK3N0YXRpYyBWT0lECitDb250cm9sbGVyQWNxdWlyZUxvY2soCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBfX0NvbnRy
b2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKK30KKworc3RhdGljIFZPSUQKK0NvbnRyb2xs
ZXJSZWxlYXNlTG9jaygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisg
ICAgKQoreworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworfQorCitz
dGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19Db250cm9sbGVyU2VuZCgKKyAgICBJTiAgUFhFTlZJ
Rl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQoreworICAgIChWT0lEKSBYRU5CVVNfRVZU
Q0hOKFNlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkV2dGNobklu
dGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5DaGFubmVsKTsK
K30KKworVk9JRAorQ29udHJvbGxlclBvbGwoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAg
ICAgICAgICBDb250cm9sbGVyCisgICAgKQoreworICAgIFJJTkdfSURYICAgICAgICAgICAgICAg
ICAgICAgICAgcnNwX3Byb2Q7CisgICAgUklOR19JRFggICAgICAgICAgICAgICAgICAgICAgICBy
c3BfY29uczsKKyAgICBzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UgICpyc3A7CisKKyAg
ICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgIHJzcF9wcm9kID0gQ29udHJvbGxlci0+U2hhcmVk
LT5yc3BfcHJvZDsKKyAgICByc3BfY29ucyA9IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zOwor
CisgICAgS2VNZW1vcnlCYXJyaWVyKCk7CisKKyAgICBpZiAocnNwX2NvbnMgPT0gcnNwX3Byb2Qp
CisgICAgICAgIHJldHVybjsKKworICAgIHJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZDb250cm9s
bGVyLT5Gcm9udCwgcnNwX2NvbnMpOworICAgIHJzcF9jb25zKys7CisKKyAgICBDb250cm9sbGVy
LT5SZXNwb25zZSA9ICpyc3A7CisKKyAgICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgIENvbnRy
b2xsZXItPkZyb250LnJzcF9jb25zID0gcnNwX2NvbnM7CisgICAgQ29udHJvbGxlci0+U2hhcmVk
LT5yc3BfZXZlbnQgPSByc3BfY29ucyArIDE7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworQ29udHJv
bGxlclB1dFJlcXVlc3QoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250
cm9sbGVyLAorICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgVHlwZSwKKyAgICBJ
TiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIERhdGEwLAorICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgICAgICAgICAgRGF0YTEsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAg
ICAgICBEYXRhMgorICAgICkKK3sKKyAgICBSSU5HX0lEWCAgICAgICAgICAgICAgICAgICAgICAg
IHJlcV9wcm9kOworICAgIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0ICAgKnJlcTsKKyAg
ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeTsKKyAgICBOVFNUQVRVUyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlNV
RkZJQ0lFTlRfUkVTT1VSQ0VTOworICAgIGlmIChSSU5HX0ZVTEwoJkNvbnRyb2xsZXItPkZyb250
KSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIENvbnRyb2xsZXItPlJlcXVlc3QudHlwZSA9
IFR5cGU7CisgICAgQ29udHJvbGxlci0+UmVxdWVzdC5pZCA9IENvbnRyb2xsZXItPlJlcXVlc3RJ
ZCsrOworICAgIENvbnRyb2xsZXItPlJlcXVlc3QuZGF0YVswXSA9IERhdGEwOworICAgIENvbnRy
b2xsZXItPlJlcXVlc3QuZGF0YVsxXSA9IERhdGExOworICAgIENvbnRyb2xsZXItPlJlcXVlc3Qu
ZGF0YVsyXSA9IERhdGEyOworCisgICAgcmVxX3Byb2QgPSBDb250cm9sbGVyLT5Gcm9udC5yZXFf
cHJvZF9wdnQ7CisKKyAgICByZXEgPSBSSU5HX0dFVF9SRVFVRVNUKCZDb250cm9sbGVyLT5Gcm9u
dCwgcmVxX3Byb2QpOworICAgIHJlcV9wcm9kKys7CisKKyAgICAqcmVxID0gQ29udHJvbGxlci0+
UmVxdWVzdDsKKworICAgIEtlTWVtb3J5QmFycmllcigpOworCisgICAgQ29udHJvbGxlci0+RnJv
bnQucmVxX3Byb2RfcHZ0ID0gcmVxX3Byb2Q7CisKKyNwcmFnbWEgd2FybmluZyAocHVzaCkKKyNw
cmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQorCisgICAgLy8gTWFrZSB0aGUgcmVxdWVzdHMg
dmlzaWJsZSB0byB0aGUgYmFja2VuZAorICAgIFJJTkdfUFVTSF9SRVFVRVNUU19BTkRfQ0hFQ0tf
Tk9USUZZKCZDb250cm9sbGVyLT5Gcm9udCwgTm90aWZ5KTsKKworI3ByYWdtYSB3YXJuaW5nIChw
b3ApCisKKyAgICBpZiAoTm90aWZ5KQorICAgICAgICBfX0NvbnRyb2xsZXJTZW5kKENvbnRyb2xs
ZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMToKKyAgICBFcnJvcigi
ZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworI2Rl
ZmluZSBUSU1FX1VTKF91cykgICAgICAgICgoX3VzKSAqIDEwKQorI2RlZmluZSBUSU1FX01TKF9t
cykgICAgICAgIChUSU1FX1VTKChfbXMpICogMTAwMCkpCisjZGVmaW5lIFRJTUVfUyhfcykgICAg
ICAgICAgKFRJTUVfTVMoKF9zKSAqIDEwMDApKQorI2RlZmluZSBUSU1FX1JFTEFUSVZFKF90KSAg
ICgtKF90KSkKKworI2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9QT0xMX1BFUklPRCA1CisKK3N0
YXRpYyBOVFNUQVRVUworQ29udHJvbGxlckdldFJlc3BvbnNlKAorICAgIElOICBQWEVOVklGX0NP
TlRST0xMRVIgICAgICAgICAgQ29udHJvbGxlciwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAg
ICAgICAgICAgIERhdGEgT1BUSU9OQUwKKyAgICApCit7CisgICAgTEFSR0VfSU5URUdFUiAgICAg
ICAgICAgICAgICAgICBUaW1lb3V0OworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgVGltZW91dC5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9T
KFhFTlZJRl9DT05UUk9MTEVSX1BPTExfUEVSSU9EKSk7CisKKyAgICBmb3IgKDs7KSB7CisgICAg
ICAgIENvbnRyb2xsZXJQb2xsKENvbnRyb2xsZXIpOworICAgICAgICBLZU1lbW9yeUJhcnJpZXIo
KTsKKworICAgICAgICBpZiAoQ29udHJvbGxlci0+UmVzcG9uc2UuaWQgPT0gQ29udHJvbGxlci0+
UmVxdWVzdC5pZCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHN0YXR1cyA9IFhFTkJV
U19FVlRDSE4oV2FpdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxl
ci0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRy
b2xsZXItPkNoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRpbWVvdXQp
OworICAgICAgICBpZiAoc3RhdHVzID09IFNUQVRVU19USU1FT1VUKQorICAgICAgICAgICAgV2Fy
bmluZygiVElNRUQgT1VUXG4iKTsKKyAgICB9CisKKyAgICBBU1NFUlQzVShDb250cm9sbGVyLT5S
ZXNwb25zZS50eXBlLCA9PSwgQ29udHJvbGxlci0+UmVxdWVzdC50eXBlKTsKKworICAgIHN3aXRj
aCAoQ29udHJvbGxlci0+UmVzcG9uc2Uuc3RhdHVzKSB7CisgICAgY2FzZSBYRU5fTkVUSUZfQ1RS
TF9TVEFUVVNfU1VDQ0VTUzoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX1NVQ0NFU1M7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRF
RDoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI6Cisg
ICAgICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1c6CisgICAg
ICAgIHN0YXR1cyA9IFNUQVRVU19CVUZGRVJfT1ZFUkZMT1c7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX1VOU1VDQ0VTU0ZVTDsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSAmJiBEYXRhICE9
IE5VTEwpCisgICAgICAgICpEYXRhID0gQ29udHJvbGxlci0+UmVzcG9uc2UuZGF0YTsKKworICAg
IFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPlJlcXVlc3QsCisgICAgICAgICAgICAgICAgICBz
aXplb2YgKHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0KSk7CisgICAgUnRsWmVyb01lbW9y
eSgmQ29udHJvbGxlci0+UmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKHN0cnVj
dCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSkpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKwor
I2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9XQVRDSERPR19QRVJJT0QgMTUKKworc3RhdGljIE5U
U1RBVFVTCitDb250cm9sbGVyV2F0Y2hkb2coCisgICAgSU4gIFBYRU5WSUZfVEhSRUFEICBTZWxm
LAorICAgIElOICBQVk9JRCAgICAgICAgICAgQ29udGV4dAorICAgICkKK3sKKyAgICBQWEVOVklG
X0NPTlRST0xMRVIgIENvbnRyb2xsZXIgPSBDb250ZXh0OworICAgIExBUkdFX0lOVEVHRVIgICAg
ICAgVGltZW91dDsKKyAgICBSSU5HX0lEWCAgICAgICAgICAgIHJzcF9wcm9kOworICAgIFJJTkdf
SURYICAgICAgICAgICAgcnNwX2NvbnM7CisKKyAgICBUcmFjZSgiPT09PT5cbiIpOworCisgICAg
VGltZW91dC5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9DT05UUk9MTEVS
X1dBVENIRE9HX1BFUklPRCkpOworCisgICAgcnNwX3Byb2QgPSAwOworICAgIHJzcF9jb25zID0g
MDsKKworICAgIGZvciAoOzspIHsKKyAgICAgICAgUEtFVkVOVCBFdmVudDsKKyAgICAgICAgS0lS
UUwgICBJcnFsOworCisgICAgICAgIEV2ZW50ID0gVGhyZWFkR2V0RXZlbnQoU2VsZik7CisKKyAg
ICAgICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdChFdmVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgS2VybmVsTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGlt
ZW91dCk7CisgICAgICAgIEtlQ2xlYXJFdmVudChFdmVudCk7CisKKyAgICAgICAgaWYgKFRocmVh
ZElzQWxlcnRlZChTZWxmKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIEtlUmFpc2VJ
cnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CisgICAgICAgIF9fQ29udHJvbGxlckFjcXVpcmVM
b2NrKENvbnRyb2xsZXIpOworCisgICAgICAgIGlmIChDb250cm9sbGVyLT5FbmFibGVkKSB7Cisg
ICAgICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgICAgICAgICAgaWYgKENvbnRyb2xs
ZXItPlNoYXJlZC0+cnNwX3Byb2QgIT0gcnNwX3Byb2QgJiYKKyAgICAgICAgICAgICAgICAgQ29u
dHJvbGxlci0+RnJvbnQucnNwX2NvbnMgPT0gcnNwX2NvbnMpIHsKKyAgICAgICAgICAgICAgICBY
RU5CVVNfREVCVUcoVHJpZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRy
b2xsZXItPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250
cm9sbGVyLT5EZWJ1Z0NhbGxiYWNrKTsKKworICAgICAgICAgICAgICAgIC8vIFRyeSB0byBtb3Zl
IHRoaW5ncyBhbG9uZworICAgICAgICAgICAgICAgIENvbnRyb2xsZXJQb2xsKENvbnRyb2xsZXIp
OworICAgICAgICAgICAgICAgIF9fQ29udHJvbGxlclNlbmQoQ29udHJvbGxlcik7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEtlTWVtb3J5QmFycmllcigpOworCisgICAgICAgICAgICBy
c3BfcHJvZCA9IENvbnRyb2xsZXItPlNoYXJlZC0+cnNwX3Byb2Q7CisgICAgICAgICAgICByc3Bf
Y29ucyA9IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zOworICAgICAgICB9CisKKyAgICAgICAg
X19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisgICAgICAgIEtlTG93ZXJJcnFs
KElycWwpOworICAgIH0KKworICAgIFRyYWNlKCI8PT09PVxuIik7CisKKyAgICByZXR1cm4gU1RB
VFVTX1NVQ0NFU1M7Cit9CisKK19fZHJ2X21heElSUUwoRElTUEFUQ0hfTEVWRUwpCitfX2Rydl9t
aW5JUlFMKERJU1BBVENIX0xFVkVMKQorX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVM
KQorX19kcnZfc2FtZUlSUUwKK3N0YXRpYyBWT0lECitDb250cm9sbGVyRHBjKAorICAgIElOICBQ
S0RQQyAgICAgICAgICAgICAgICAgICBEcGMsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAg
ICAgIENvbnRleHQsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgIEFyZ3VtZW50MSwK
KyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgQXJndW1lbnQyCisgICAgKQoreworICAg
IFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250cm9sbGVyID0gQ29udGV4dDsKKworICAg
IFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRHBjKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVS
KEFyZ3VtZW50MSk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDIpOworCisg
ICAgQVNTRVJUKENvbnRyb2xsZXIgIT0gTlVMTCk7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJl
TG9jayhDb250cm9sbGVyKTsKKworICAgIGlmIChDb250cm9sbGVyLT5FbmFibGVkKQorICAgICAg
ICBDb250cm9sbGVyUG9sbChDb250cm9sbGVyKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworfQorCitLU0VSVklDRV9ST1VUSU5FICAgIFRyYW5zbWl0dGVyUmlu
Z0V2dGNobkNhbGxiYWNrOworCitCT09MRUFOCitDb250cm9sbGVyRXZ0Y2huQ2FsbGJhY2soCisg
ICAgSU4gIFBLSU5URVJSVVBUICAgICAgICAgICAgIEludGVycnVwdE9iamVjdCwKKyAgICBJTiAg
UFZPSUQgICAgICAgICAgICAgICAgICAgQXJndW1lbnQKKyAgICApCit7CisgICAgUFhFTlZJRl9D
T05UUk9MTEVSICAgICAgICAgIENvbnRyb2xsZXIgPSBBcmd1bWVudDsKKworICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoSW50ZXJydXB0T2JqZWN0KTsKKworICAgIEFTU0VSVChDb250cm9sbGVy
ICE9IE5VTEwpOworCisgICAgQ29udHJvbGxlci0+RXZlbnRzKys7CisKKyAgICBpZiAoS2VJbnNl
cnRRdWV1ZURwYygmQ29udHJvbGxlci0+RHBjLCBOVUxMLCBOVUxMKSkKKyAgICAgICAgQ29udHJv
bGxlci0+RHBjcysrOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBWT0lECitDb250
cm9sbGVyRGVidWdDYWxsYmFjaygKKyAgICBJTiAgUFZPSUQgICAgICAgICAgIEFyZ3VtZW50LAor
ICAgIElOICBCT09MRUFOICAgICAgICAgQ3Jhc2hpbmcKKyAgICApCit7CisgICAgVU5SRUZFUkVO
Q0VEX1BBUkFNRVRFUihBcmd1bWVudCk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDcmFz
aGluZyk7Cit9CisKK05UU1RBVFVTCitDb250cm9sbGVySW5pdGlhbGl6ZSgKKyAgICBJTiAgUFhF
TlZJRl9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBPVVQgUFhFTlZJRl9DT05UUk9MTEVSICAq
Q29udHJvbGxlcgorICAgICkKK3sKKyAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBOb3c7Cisg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2VlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CisKKyAgICAqQ29udHJvbGxlciA9IF9fQ29udHJvbGxlckFsbG9jYXRlKHNp
emVvZiAoWEVOVklGX0NPTlRST0xMRVIpKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1P
Ulk7CisgICAgaWYgKCpDb250cm9sbGVyID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisK
KyAgICBGZG9HZXREZWJ1Z0ludGVyZmFjZShQZG9HZXRGZG8oRnJvbnRlbmRHZXRQZG8oRnJvbnRl
bmQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmKCpDb250cm9sbGVyKS0+RGVidWdJbnRl
cmZhY2UpOworCisgICAgRmRvR2V0U3RvcmVJbnRlcmZhY2UoUGRvR2V0RmRvKEZyb250ZW5kR2V0
UGRvKEZyb250ZW5kKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJigqQ29udHJvbGxlcikt
PlN0b3JlSW50ZXJmYWNlKTsKKworICAgIEZkb0dldEdudHRhYkludGVyZmFjZShQZG9HZXRGZG8o
RnJvbnRlbmRHZXRQZG8oRnJvbnRlbmQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJigq
Q29udHJvbGxlciktPkdudHRhYkludGVyZmFjZSk7CisKKyAgICBGZG9HZXRFdnRjaG5JbnRlcmZh
Y2UoUGRvR2V0RmRvKEZyb250ZW5kR2V0UGRvKEZyb250ZW5kKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICYoKkNvbnRyb2xsZXIpLT5FdnRjaG5JbnRlcmZhY2UpOworCisgICAgS2VJbml0
aWFsaXplU3BpbkxvY2soJigqQ29udHJvbGxlciktPkxvY2spOworICAgIEtlSW5pdGlhbGl6ZURw
YygmKCpDb250cm9sbGVyKS0+RHBjLCBDb250cm9sbGVyRHBjLCAqQ29udHJvbGxlcik7CisKKyAg
ICBLZVF1ZXJ5U3lzdGVtVGltZSgmTm93KTsKKyAgICBTZWVkID0gTm93Lkxvd1BhcnQ7CisKKyAg
ICAoKkNvbnRyb2xsZXIpLT5SZXF1ZXN0SWQgPSAoVVNIT1JUKVJ0bFJhbmRvbUV4KCZTZWVkKTsK
KworICAgIHN0YXR1cyA9IFRocmVhZENyZWF0ZShDb250cm9sbGVyV2F0Y2hkb2csCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICpDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAmKCpDb250cm9sbGVyKS0+V2F0Y2hkb2dUaHJlYWQpOworICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgKCpDb250cm9sbGVyKS0+RnJvbnRl
bmQgPSBGcm9udGVuZDsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDI6Cisg
ICAgRXJyb3IoImZhaWwyXG4iKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJigqQ29udHJvbGxlcikt
PkxvY2ssCisgICAgICAgICAgICAgICAgICBzaXplb2YgKEtTUElOX0xPQ0spKTsKKworICAgIFJ0
bFplcm9NZW1vcnkoJigqQ29udHJvbGxlciktPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgIHNpemVvZiAoWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UpKTsKKworICAgIFJ0bFplcm9N
ZW1vcnkoJigqQ29udHJvbGxlciktPlN0b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAg
c2l6ZW9mIChYRU5CVVNfU1RPUkVfSU5URVJGQUNFKSk7CisKKyAgICBSdGxaZXJvTWVtb3J5KCYo
KkNvbnRyb2xsZXIpLT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIHNpemVvZiAo
WEVOQlVTX0RFQlVHX0lOVEVSRkFDRSkpOworCisgICAgUnRsWmVyb01lbW9yeSgmKCpDb250cm9s
bGVyKS0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRSkpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4i
LCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0NvbnRyb2xs
ZXJDb25uZWN0KAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgICAgICBDb250cm9sbGVyCisg
ICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKKyAgICBQ
Q0hBUiAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAgIEJPT0xFQU4gICAgICAgICAg
ICAgICAgICAgICBGZWF0dXJlOworICAgIFBGTl9OVU1CRVIgICAgICAgICAgICAgICAgICBQZm47
CisgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWVbTUFYTkFNRUxFTl07CisgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAg
ICAgICAgICAgICBzdGF0dXM7CisKKyAgICBUcmFjZSgiPT09PT5cbiIpOworCisgICAgRnJvbnRl
bmQgPSBDb250cm9sbGVyLT5Gcm9udGVuZDsKKworICAgIHN0YXR1cyA9IFhFTkJVU19ERUJVRyhB
Y3F1aXJlLCAmQ29udHJvbGxlci0+RGVidWdJbnRlcmZhY2UpOworICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0gWEVOQlVTX1NU
T1JFKEFjcXVpcmUsICZDb250cm9sbGVyLT5TdG9yZUludGVyZmFjZSk7CisgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBzdGF0dXMgPSBYRU5C
VVNfRVZUQ0hOKEFjcXVpcmUsICZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZhY2UpOworICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgc3RhdHVz
ID0gWEVOQlVTX0dOVFRBQihBY3F1aXJlLCAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlKTsK
KyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNDsKKworICAg
IHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAm
Q29udHJvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0QmFja2VuZFBhdGgoRnJv
bnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1jdHJsLXJpbmciLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQnVmZmVyKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkgeworICAgICAgICBGZWF0dXJlID0gRkFMU0U7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgRmVhdHVyZSA9IChCT09MRUFOKXN0cnRvbChCdWZmZXIsIE5VTEwsIDIpOworCisgICAgICAg
IFhFTkJVU19TVE9SRShGcmVlLAorICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPlN0
b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsKKyAgICB9CisKKyAg
ICBpZiAoIUZlYXR1cmUpCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIHN0YXR1cyA9IFJ0bFN0
cmluZ0NiUHJpbnRmQShOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
b2YgKE5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXNfY29udHJvbGxl
ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0UGF0aChGcm9u
dGVuZCkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw1
OworCisgICAgZm9yIChJbmRleCA9IDA7IE5hbWVbSW5kZXhdICE9ICdcMCc7IEluZGV4KyspCisg
ICAgICAgIGlmIChOYW1lW0luZGV4XSA9PSAnLycpCisgICAgICAgICAgICBOYW1lW0luZGV4XSA9
ICdfJzsKKworICAgIHN0YXR1cyA9IFhFTkJVU19HTlRUQUIoQ3JlYXRlQ2FjaGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyQWNxdWlyZUxvY2ssCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyUmVsZWFzZUxvY2ssCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
JkNvbnRyb2xsZXItPkdudHRhYkNhY2hlKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsNjsKKworICAgIENvbnRyb2xsZXItPk1kbCA9IF9fQWxsb2NhdGVQ
YWdlKCk7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOworICAgIGlmIChDb250cm9s
bGVyLT5NZGwgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsNzsKKworICAgIENvbnRyb2xsZXIt
PlNoYXJlZCA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUoQ29udHJvbGxlci0+TWRsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9y
bWFsUGFnZVByaW9yaXR5KTsKKyAgICBBU1NFUlQoQ29udHJvbGxlci0+U2hhcmVkICE9IE5VTEwp
OworCisgICAgU0hBUkVEX1JJTkdfSU5JVChDb250cm9sbGVyLT5TaGFyZWQpOworICAgIEZST05U
X1JJTkdfSU5JVCgmQ29udHJvbGxlci0+RnJvbnQsIENvbnRyb2xsZXItPlNoYXJlZCwgUEFHRV9T
SVpFKTsKKyAgICBBU1NFUlQzUChDb250cm9sbGVyLT5Gcm9udC5zcmluZywgPT0sIENvbnRyb2xs
ZXItPlNoYXJlZCk7CisKKyAgICBQZm4gPSBNbUdldE1kbFBmbkFycmF5KENvbnRyb2xsZXItPk1k
bClbMF07CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfR05UVEFCKFBlcm1pdEZvcmVpZ25BY2Nlc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmRHZXRCYWNrZW5kRG9tYWluKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkVudHJ5KTsKKyAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsODsKKworICAgIENvbnRyb2xsZXItPkNo
YW5uZWwgPSBYRU5CVVNfRVZUQ0hOKE9wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVNfRVZUQ0hOX1RZUEVfVU5CT1VORCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyRXZ0Y2huQ2Fs
bGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEJh
Y2tlbmREb21haW4oRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZBTFNFKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CisgICAg
aWYgKENvbnRyb2xsZXItPkNoYW5uZWwgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsOTsKKwor
ICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAorICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXIt
PkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkNoYW5uZWws
CisgICAgICAgICAgICAgICAgICBGQUxTRSk7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUco
UmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5EZWJ1Z0lu
dGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgX19NT0RVTEVfXyAifENPTlRST0xM
RVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyRGVidWdDYWxsYmFjaywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNvbnRyb2xsZXItPkRlYnVnQ2FsbGJhY2spOworICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxMDsKKworICAgIF9fQ29udHJvbGxlckFjcXVp
cmVMb2NrKENvbnRyb2xsZXIpOworCisgICAgQ29udHJvbGxlci0+Q29ubmVjdGVkID0gVFJVRTsK
KworICAgIGlmIChLZUluc2VydFF1ZXVlRHBjKCZDb250cm9sbGVyLT5EcGMsIE5VTEwsIE5VTEwp
KQorICAgICAgICBDb250cm9sbGVyLT5EcGNzKys7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNl
TG9jayhDb250cm9sbGVyKTsKKworZG9uZToKKyAgICBUcmFjZSgiPD09PT1cbiIpOworICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDEwOgorICAgIEVycm9yKCJmYWlsMTBcbiIpOwor
CisgICAgWEVOQlVTX0VWVENITihDbG9zZSwKKyAgICAgICAgICAgICAgICAgICZDb250cm9sbGVy
LT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5DaGFubmVs
KTsKKyAgICBDb250cm9sbGVyLT5DaGFubmVsID0gTlVMTDsKKworICAgIENvbnRyb2xsZXItPkV2
ZW50cyA9IDA7CisgICAgQ29udHJvbGxlci0+RHBjcyA9IDA7CisKK2ZhaWw5OgorICAgIEVycm9y
KCJmYWlsOVxuIik7CisKKyAgICAoVk9JRCkgWEVOQlVTX0dOVFRBQihSZXZva2VGb3JlaWduQWNj
ZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBD
b250cm9sbGVyLT5FbnRyeSk7CisgICAgQ29udHJvbGxlci0+RW50cnkgPSBOVUxMOworCitmYWls
ODoKKyAgICBFcnJvcigiZmFpbDhcbiIpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29udHJvbGxl
ci0+RnJvbnQsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKHN0cnVjdCB4ZW5fbmV0aWZfY3Ry
bF9mcm9udF9yaW5nKSk7CisgICAgUnRsWmVyb01lbW9yeShDb250cm9sbGVyLT5TaGFyZWQsIFBB
R0VfU0laRSk7CisKKyAgICBDb250cm9sbGVyLT5TaGFyZWQgPSBOVUxMOworICAgIF9fRnJlZVBh
Z2UoQ29udHJvbGxlci0+TWRsKTsKKyAgICBDb250cm9sbGVyLT5NZGwgPSBOVUxMOworCitmYWls
NzoKKyAgICBFcnJvcigiZmFpbDdcbiIpOworCisgICAgWEVOQlVTX0dOVFRBQihEZXN0cm95Q2Fj
aGUsCisgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUpOworICAgIENvbnRyb2xsZXIt
PkdudHRhYkNhY2hlID0gTlVMTDsKKworZmFpbDY6CisgICAgRXJyb3IoImZhaWw2XG4iKTsKKwor
ZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKKworICAgIFhFTkJVU19HTlRUQUIoUmVsZWFz
ZSwgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSk7CisKK2ZhaWw0OgorICAgIEVycm9yKCJm
YWlsNFxuIik7CisKKyAgICBYRU5CVVNfRVZUQ0hOKFJlbGVhc2UsICZDb250cm9sbGVyLT5FdnRj
aG5JbnRlcmZhY2UpOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCisgICAgWEVO
QlVTX1NUT1JFKFJlbGVhc2UsICZDb250cm9sbGVyLT5TdG9yZUludGVyZmFjZSk7CisKK2ZhaWwy
OgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKKyAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJkNv
bnRyb2xsZXItPkRlYnVnSW50ZXJmYWNlKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICgl
MDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitD
b250cm9sbGVyU3RvcmVXcml0ZSgKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAg
IENvbnRyb2xsZXIsCisgICAgSU4gIFBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJT04gICBUcmFuc2Fj
dGlvbgorICAgICkKK3sKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250
ZW5kOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydDsKKyAgICBOVFNU
QVRVUyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBGcm9udGVuZCA9IENvbnRy
b2xsZXItPkZyb250ZW5kOworCisgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFByaW50ZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPlN0b3JlSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgRnJvbnRlbmRHZXRQYXRoKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgImN0cmwtcmluZy1yZWYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiJXUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVNfR05UVEFCKEdldFJlZmVyZW5jZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50
ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xs
ZXItPkVudHJ5KSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8g
ZmFpbDE7CisKKyAgICBQb3J0ID0gWEVOQlVTX0VWVENITihHZXRQb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29udHJvbGxlci0+Q2hhbm5lbCk7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNf
U1RPUkUoUHJpbnRmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+U3Rv
cmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXZlbnQtY2hhbm5lbC1jdHJsIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiV1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydCk7CisgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKK2RvbmU6Cisg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIp
OworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAg
cmV0dXJuIHN0YXR1czsKK30KKworVk9JRAorQ29udHJvbGxlckVuYWJsZSgKKyAgICBJTiAgUFhF
TlZJRl9DT05UUk9MTEVSICAgICAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBUcmFjZSgiPT09
PT5cbiIpOworCisgICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAg
ICBDb250cm9sbGVyLT5FbmFibGVkID0gVFJVRTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworCisgICAgVHJhY2UoIjw9PT09XG4iKTsKK30KKworVk9JRAorQ29u
dHJvbGxlckRpc2FibGUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgIENvbnRyb2xs
ZXIKKyAgICApCit7CisgICAgVHJhY2UoIj09PT0+XG4iKTsKKworICAgIF9fQ29udHJvbGxlckFj
cXVpcmVMb2NrKENvbnRyb2xsZXIpOworCisgICAgQ29udHJvbGxlci0+RW5hYmxlZCA9IEZBTFNF
OworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBUcmFj
ZSgiPD09PT1cbiIpOworfQorCitWT0lECitDb250cm9sbGVyRGlzY29ubmVjdCgKKyAgICBJTiAg
UFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQoreworICAgIFRyYWNlKCI9PT09
PlxuIik7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKKworICAg
IGlmICghQ29udHJvbGxlci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBD
b250cm9sbGVyLT5Db25uZWN0ZWQgPSBGQUxTRTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworCisgICAgWEVOQlVTX0RFQlVHKERlcmVnaXN0ZXIsCisgICAgICAg
ICAgICAgICAgICZDb250cm9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAg
Q29udHJvbGxlci0+RGVidWdDYWxsYmFjayk7CisgICAgQ29udHJvbGxlci0+RGVidWdDYWxsYmFj
ayA9IE5VTEw7CisKKyAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLAorICAgICAgICAgICAgICAgICAg
JkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIENvbnRyb2xs
ZXItPkNoYW5uZWwpOworICAgIENvbnRyb2xsZXItPkNoYW5uZWwgPSBOVUxMOworCisgICAgQ29u
dHJvbGxlci0+RXZlbnRzID0gMDsKKyAgICBDb250cm9sbGVyLT5EcGNzID0gMDsKKworICAgIChW
T0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkVudHJ5KTsKKyAg
ICBDb250cm9sbGVyLT5FbnRyeSA9IE5VTEw7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZDb250cm9s
bGVyLT5Gcm9udCwKKyAgICAgICAgICAgICAgICAgIHNpemVvZiAoc3RydWN0IHhlbl9uZXRpZl9j
dHJsX2Zyb250X3JpbmcpKTsKKyAgICBSdGxaZXJvTWVtb3J5KENvbnRyb2xsZXItPlNoYXJlZCwg
UEFHRV9TSVpFKTsKKworICAgIENvbnRyb2xsZXItPlNoYXJlZCA9IE5VTEw7CisgICAgX19GcmVl
UGFnZShDb250cm9sbGVyLT5NZGwpOworICAgIENvbnRyb2xsZXItPk1kbCA9IE5VTEw7CisKKyAg
ICBYRU5CVVNfR05UVEFCKERlc3Ryb3lDYWNoZSwKKyAgICAgICAgICAgICAgICAgICZDb250cm9s
bGVyLT5HbnR0YWJJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0
YWJDYWNoZSk7CisgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUgPSBOVUxMOworCisgICAgWEVO
QlVTX0dOVFRBQihSZWxlYXNlLCAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlKTsKKworICAg
IFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSk7CisK
KyAgICBYRU5CVVNfU1RPUkUoUmVsZWFzZSwgJkNvbnRyb2xsZXItPlN0b3JlSW50ZXJmYWNlKTsK
KworICAgIFhFTkJVU19ERUJVRyhSZWxlYXNlLCAmQ29udHJvbGxlci0+RGVidWdJbnRlcmZhY2Up
OworCitkb25lOgorICAgIFRyYWNlKCI8PT09PVxuIik7Cit9CisKK1ZPSUQKK0NvbnRyb2xsZXJU
ZWFyZG93bigKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQor
eworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVWRUwpOwor
ICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKKyAgICBDb250cm9sbGVyLT5Gcm9udGVuZCA9IE5V
TEw7CisKKyAgICBUaHJlYWRBbGVydChDb250cm9sbGVyLT5XYXRjaGRvZ1RocmVhZCk7CisgICAg
VGhyZWFkSm9pbihDb250cm9sbGVyLT5XYXRjaGRvZ1RocmVhZCk7CisgICAgQ29udHJvbGxlci0+
V2F0Y2hkb2dUaHJlYWQgPSBOVUxMOworCisgICAgQ29udHJvbGxlci0+UmVxdWVzdElkID0gMDsK
KworICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPkRwYywKKyAgICAgICAgICAgICAgICAg
IHNpemVvZiAoS0RQQykpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29udHJvbGxlci0+TG9jaywK
KyAgICAgICAgICAgICAgICAgIHNpemVvZiAoS1NQSU5fTE9DSykpOworCisgICAgUnRsWmVyb01l
bW9yeSgmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6
ZW9mIChYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSkpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29u
dHJvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJV
U19TVE9SRV9JTlRFUkZBQ0UpKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPkRl
YnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfREVCVUdfSU5U
RVJGQUNFKSk7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7
CisKKyAgICBBU1NFUlQoSXNaZXJvTWVtb3J5KENvbnRyb2xsZXIsIHNpemVvZiAoWEVOVklGX0NP
TlRST0xMRVIpKSk7CisgICAgX19Db250cm9sbGVyRnJlZShDb250cm9sbGVyKTsKK30KKworTlRT
VEFUVVMKK0NvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQWEVOVklGX0NPTlRS
T0xMRVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgQWxnb3JpdGht
CisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kOworICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIEZyb250ZW5kID0gQ29udHJvbGxl
ci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsK
KworICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOworICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0gQ29udHJv
bGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHN0
YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29udHJv
bGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigi
ZmFpbDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMp
OworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1
cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworQ29udHJvbGxlckdldEhhc2hGbGFncygKKyAgICBJ
TiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBQVUxPTkcgICAgICAg
ICAgICAgIEZsYWdzCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250
ZW5kOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIEZyb250ZW5k
ID0gQ29udHJvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhD
b250cm9sbGVyKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOworICAgIGlm
ICghQ29udHJvbGxlci0+RW5hYmxlZCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIHN0YXR1
cyA9IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9GTEFHUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBzdGF0
dXMgPSBDb250cm9sbGVyR2V0UmVzcG9uc2UoQ29udHJvbGxlciwgRmxhZ3MpOworICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgX19Db250cm9s
bGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7
CisKK2ZhaWwzOgorICAgIEVycm9yKCJmYWlsM1xuIik7CisKK2ZhaWwyOgorICAgIEVycm9yKCJm
YWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9jayhDb250cm9sbGVyKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitDb250cm9sbGVyU2V0SGFzaEZsYWdzKAorICAgIElO
ICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAg
ICAgICAgRmxhZ3MKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRl
bmQ7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOworCisgICAgRnJvbnRlbmQg
PSBDb250cm9sbGVyLT5Gcm9udGVuZDsKKworICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENv
bnRyb2xsZXIpOworCisgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CisgICAgaWYg
KCFDb250cm9sbGVyLT5Db25uZWN0ZWQpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBzdGF0
dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsK
KyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAg
IHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBp
ZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29u
dHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJv
cigiZmFpbDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0
dXMpOworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBy
ZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hLZXkoCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXksCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sK
KyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBQTURMICAgICAgICAg
ICAgICAgICAgICBNZGw7CisgICAgUFVDSEFSICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAg
IFBGTl9OVU1CRVIgICAgICAgICAgICAgIFBmbjsKKyAgICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAg
ICBFbnRyeTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9u
dGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisgICAgX19Db250cm9sbGVyQWNxdWlyZUxv
Y2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAg
ICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBN
ZGwgPSBfX0FsbG9jYXRlUGFnZSgpOworCisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsK
KyAgICBpZiAoQ29udHJvbGxlci0+TWRsID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDI7CisK
KyAgICBCdWZmZXIgPSBNbUdldFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKE1kbCwgTm9ybWFsUGFn
ZVByaW9yaXR5KTsKKyAgICBBU1NFUlQoQnVmZmVyICE9IE5VTEwpOworCisgICAgUnRsQ29weU1l
bW9yeShCdWZmZXIsIEtleSwgU2l6ZSk7CisKKyAgICBQZm4gPSBNbUdldE1kbFBmbkFycmF5KE1k
bClbMF07CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfR05UVEFCKFBlcm1pdEZvcmVpZ25BY2Nlc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmRHZXRCYWNrZW5kRG9tYWluKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkVudHJ5KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJQdXRSZXF1
ZXN0KENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05F
VElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWEVOQlVTX0dOVFRBQihHZXRSZWZlcmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAg
ICAgIGdvdG8gZmFpbDQ7CisKKyAgICBzdGF0dXMgPSBDb250cm9sbGVyR2V0UmVzcG9uc2UoQ29u
dHJvbGxlciwgTlVMTCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdv
dG8gZmFpbDU7CisKKyAgICAoVk9JRCkgWEVOQlVTX0dOVFRBQihSZXZva2VGb3JlaWduQWNjZXNz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBFbnRy
eSk7CisKKyAgICBfX0ZyZWVQYWdlKE1kbCk7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9j
ayhDb250cm9sbGVyKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDU6Cisg
ICAgRXJyb3IoImZhaWw1XG4iKTsKKworZmFpbDQ6CisgICAgRXJyb3IoImZhaWw0XG4iKTsKKwor
ICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsKKworZmFpbDM6
CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKworICAgIF9fRnJlZVBhZ2UoTWRsKTsKKworZmFpbDI6
CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4
KVxuIiwgc3RhdHVzKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIp
OworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0NvbnRyb2xsZXJHZXRIYXNo
TWFwcGluZ1NpemUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAg
ICBJTiAgUFVMT05HICAgICAgICAgICAgICBTaXplCisgICAgKQoreworICAgIFBYRU5WSUZfRlJP
TlRFTkQgICAgICAgIEZyb250ZW5kOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1
czsKKworICAgIEZyb250ZW5kID0gQ29udHJvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRy
b2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT1Rf
U1VQUE9SVEVEOworICAgIGlmICghQ29udHJvbGxlci0+RW5hYmxlZCkKKyAgICAgICAgZ290byBm
YWlsMTsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9HRVRf
SEFTSF9NQVBQSU5HX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDApOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAg
ICBnb3RvIGZhaWwyOworCisgICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENvbnRy
b2xsZXIsIFNpemUpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3Rv
IGZhaWwzOworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwzOgorICAgIEVycm9yKCJmYWlsM1xuIik7
CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJm
YWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9jayhD
b250cm9sbGVyKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitDb250cm9s
bGVyU2V0SGFzaE1hcHBpbmdTaXplKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRy
b2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sKKyAgICBQ
WEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisg
ICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBT
VEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAg
ICAgIGdvdG8gZmFpbDE7CisKKyAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250
cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJM
X1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRS
ZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRy
b2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMzoKKyAgICBFcnJv
cigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCitmYWlsMToK
KyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgX19Db250cm9sbGVy
UmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNU
QVRVUworQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAorICAgIElOICBQWEVOVklGX0NPTlRST0xM
RVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFBVTE9ORyAgICAgICAgICAgICAgTWFwcGluZywKKyAg
ICBJTiAgVUxPTkcgICAgICAgICAgICAgICBTaXplLAorICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgIE9mZnNldAorICAgICkKK3sKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVu
ZDsKKyAgICBQTURMICAgICAgICAgICAgICAgICAgICBNZGw7CisgICAgUFVDSEFSICAgICAgICAg
ICAgICAgICAgQnVmZmVyOworICAgIFBGTl9OVU1CRVIgICAgICAgICAgICAgIFBmbjsKKyAgICBQ
WEVOQlVTX0dOVFRBQl9FTlRSWSAgICBFbnRyeTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAg
ICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisgICAg
X19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBTVEFU
VVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgICAg
IGdvdG8gZmFpbDE7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7Cisg
ICAgaWYgKFNpemUgKiBzaXplb2YgKFVMT05HKSA+IFBBR0VfU0laRSkKKyAgICAgICAgZ290byBm
YWlsMjsKKworICAgIE1kbCA9IF9fQWxsb2NhdGVQYWdlKCk7CisKKyAgICBzdGF0dXMgPSBTVEFU
VVNfTk9fTUVNT1JZOworICAgIGlmIChDb250cm9sbGVyLT5NZGwgPT0gTlVMTCkKKyAgICAgICAg
Z290byBmYWlsMzsKKworICAgIEJ1ZmZlciA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUo
TWRsLCBOb3JtYWxQYWdlUHJpb3JpdHkpOworICAgIEFTU0VSVChCdWZmZXIgIT0gTlVMTCk7CisK
KyAgICBSdGxDb3B5TWVtb3J5KEJ1ZmZlciwgTWFwcGluZywgU2l6ZSAqIHNpemVvZiAoVUxPTkcp
KTsKKworICAgIFBmbiA9IE1tR2V0TWRsUGZuQXJyYXkoTWRsKVswXTsKKworICAgIHN0YXR1cyA9
IFhFTkJVU19HTlRUQUIoUGVybWl0Rm9yZWlnbkFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEJhY2tlbmRE
b21haW4oRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUGZuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAm
RW50cnkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw0
OworCisgICAgc3RhdHVzID0gQ29udHJvbGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNI
X01BUFBJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0dOVFRB
QihHZXRSZWZlcmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
T2Zmc2V0KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
NTsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxM
KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNjsKKwor
ICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsKKworICAgIF9f
RnJlZVBhZ2UoTWRsKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIp
OworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsNjoKKyAgICBFcnJvcigiZmFp
bDZcbiIpOworCitmYWlsNToKKyAgICBFcnJvcigiZmFpbDVcbiIpOworCisgICAgKFZPSUQpIFhF
TkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
IENvbnRyb2xsZXItPkdudHRhYkNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpOworCitmYWlsNDoKKyAgICBFcnJvcigi
ZmFpbDRcbiIpOworCisgICAgX19GcmVlUGFnZShNZGwpOworCitmYWlsMzoKKyAgICBFcnJvcigi
ZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCitmYWlsMToKKyAg
ICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgX19Db250cm9sbGVyUmVs
ZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmggYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTdiNjg4Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICog
d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICog
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBfWEVOVklGX0NPTlRST0xMRVJfSAorI2RlZmluZSBfWEVOVklGX0NPTlRST0xMRVJfSAor
CisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHZpZl9pbnRlcmZhY2UuaD4KKworI2lu
Y2x1ZGUgImZyb250ZW5kLmgiCisKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfQ09OVFJPTExFUiBY
RU5WSUZfQ09OVFJPTExFUiwgKlBYRU5WSUZfQ09OVFJPTExFUjsKKworZXh0ZXJuIE5UU1RBVFVT
CitDb250cm9sbGVySW5pdGlhbGl6ZSgKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9u
dGVuZCwKKyAgICBPVVQgUFhFTlZJRl9DT05UUk9MTEVSICAqQ29udHJvbGxlcgorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlckNvbm5lY3QoCisgICAgSU4gIFBYRU5WSUZfQ09O
VFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisKK2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxl
clN0b3JlV3JpdGUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250cm9s
bGVyLAorICAgIElOICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb24KKyAg
ICApOworCitleHRlcm4gVk9JRAorQ29udHJvbGxlckVuYWJsZSgKKyAgICBJTiAgUFhFTlZJRl9D
T05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKTsKKworZXh0ZXJuIFZPSUQKK0NvbnRyb2xsZXJE
aXNhYmxlKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRyb2xsZXIKKyAgICApOwor
CitleHRlcm4gVk9JRAorQ29udHJvbGxlckRpc2Nvbm5lY3QoCisgICAgSU4gIFBYRU5WSUZfQ09O
VFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisKK2V4dGVybiBWT0lECitDb250cm9sbGVyVGVh
cmRvd24oCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBY
RU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICBBbGdvcml0aG0KKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0NvbnRyb2xsZXJHZXRIYXNo
RmxhZ3MoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAg
UFVMT05HICAgICAgICAgICAgICBGbGFncworICAgICk7CisKK2V4dGVybiBOVFNUQVRVUworQ29u
dHJvbGxlclNldEhhc2hGbGFncygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9s
bGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIEZsYWdzCisgICAgKTsKKworZXh0ZXJu
IE5UU1RBVFVTCitDb250cm9sbGVyU2V0SGFzaEtleSgKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9M
TEVSICBDb250cm9sbGVyLAorICAgIElOICBQVUNIQVIgICAgICAgICAgICAgIEtleSwKKyAgICBJ
TiAgVUxPTkcgICAgICAgICAgICAgICBTaXplCisgICAgKTsKKworZXh0ZXJuIE5UU1RBVFVTCitD
b250cm9sbGVyR2V0SGFzaE1hcHBpbmdTaXplKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIg
IENvbnRyb2xsZXIsCisgICAgSU4gIFBVTE9ORyAgICAgICAgICAgICAgU2l6ZQorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hNYXBwaW5nU2l6ZSgKKyAgICBJTiAg
UFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgIFNpemUKKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0NvbnRyb2xsZXJTZXRIYXNoTWFw
cGluZygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBQ
VUxPTkcgICAgICAgICAgICAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAg
U2l6ZSwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBPZmZzZXQKKyAgICApOworCisKKyNl
bmRpZiAgLy8gX1hFTlZJRl9DT05UUk9MTEVSX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwppbmRleCA1YTI5NzM2Li5lOTUwNTUyIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmMKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVu
ZC5jCkBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCBfWEVOVklGX0ZST05URU5EIHsKICAgICBQWEVO
VklGX01BQyAgICAgICAgICAgICAgICAgTWFjOwogICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgICAg
ICAgICBSZWNlaXZlcjsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSICAgICAgICAgVHJhbnNtaXR0
ZXI7CisgICAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAgIENvbnRyb2xsZXI7CiAKICAgICBY
RU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAgRGVidWdJbnRlcmZhY2U7CiAgICAgWEVOQlVTX1NV
U1BFTkRfSU5URVJGQUNFICAgIFN1c3BlbmRJbnRlcmZhY2U7CkBAIC0zMjMsOCArMzI0LDkgQEAg
RnJvbnRlbmRHZXQgIyMgX0Z1bmN0aW9uKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiB9CiAKIERFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oTWFjLCBQWEVOVklGX01BQykKLURF
RklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oVHJhbnNtaXR0ZXIsIFBYRU5WSUZfVFJBTlNNSVRU
RVIpCiBERUZJTkVfRlJPTlRFTkRfR0VUX0ZVTkNUSU9OKFJlY2VpdmVyLCBQWEVOVklGX1JFQ0VJ
VkVSKQorREVGSU5FX0ZST05URU5EX0dFVF9GVU5DVElPTihUcmFuc21pdHRlciwgUFhFTlZJRl9U
UkFOU01JVFRFUikKK0RFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oQ29udHJvbGxlciwgUFhF
TlZJRl9DT05UUk9MTEVSKQogCiBzdGF0aWMgQk9PTEVBTgogRnJvbnRlbmRJc09ubGluZSgKQEAg
LTE4MzQsNiArMTgzNiwxMCBAQCBGcm9udGVuZENvbm5lY3QoCiAgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDY7CiAKKyAgICBzdGF0dXMgPSBDb250cm9sbGVy
Q29ubmVjdChfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCkpOworICAgIGlmICghTlRf
U1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw3OworCiAgICAgQXR0ZW1wdCA9IDA7
CiAgICAgZG8gewogICAgICAgICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rp
b247CkBAIC0xODU0LDYgKzE4NjAsMTEgQEAgRnJvbnRlbmRDb25uZWN0KAogICAgICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAgICAgICAgICAgIGdvdG8gYWJvcnQ7CiAKKyAgICAgICAg
c3RhdHVzID0gQ29udHJvbGxlclN0b3JlV3JpdGUoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJv
bnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlv
bik7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICAgICAgZ290byBh
Ym9ydDsKKwogICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLApAQCAtMTg4Miw3ICsxODkzLDcgQEAg
YWJvcnQ6CiAgICAgfSB3aGlsZSAoc3RhdHVzID09IFNUQVRVU19SRVRSWSk7CiAKICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNzsKKyAgICAgICAgZ290byBm
YWlsODsKIAogICAgIFN0YXRlID0gWGVuYnVzU3RhdGVVbmtub3duOwogICAgIHdoaWxlIChTdGF0
ZSAhPSBYZW5idXNTdGF0ZUNvbm5lY3RlZCkgewpAQCAtMTkyMCwxNiArMTkzMSwyMyBAQCBhYm9y
dDoKIAogICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAgICAgaWYgKFN0YXRlICE9
IFhlbmJ1c1N0YXRlQ29ubmVjdGVkKQotICAgICAgICBnb3RvIGZhaWw4OworICAgICAgICBnb3Rv
IGZhaWw5OworCisgICAgQ29udHJvbGxlckVuYWJsZShfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihG
cm9udGVuZCkpOwogCiAgICAgVGhyZWFkV2FrZShGcm9udGVuZC0+TWliVGhyZWFkKTsKIAogICAg
IFRyYWNlKCI8PT09PVxuIik7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWlsOToK
KyAgICBFcnJvcigiZmFpbDlcbiIpOworCiBmYWlsODoKICAgICBFcnJvcigiZmFpbDhcbiIpOwog
CisgICAgQ29udHJvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRl
bmQpKTsKKwogZmFpbDc6CiAgICAgRXJyb3IoImZhaWw3XG4iKTsKIApAQCAtMTk4Miw2ICsyMDAw
LDkgQEAgRnJvbnRlbmREaXNjb25uZWN0KAogewogICAgIFRyYWNlKCI9PT09PlxuIik7CiAKKyAg
ICBDb250cm9sbGVyRGlzYWJsZShfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCkpOwor
CisgICAgQ29udHJvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRl
bmQpKTsKICAgICBUcmFuc21pdHRlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVy
KEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNjb25uZWN0KF9fRnJvbnRlbmRHZXRSZWNlaXZl
cihGcm9udGVuZCkpOwogICAgIE1hY0Rpc2Nvbm5lY3QoX19Gcm9udGVuZEdldE1hYyhGcm9udGVu
ZCkpOwpAQCAtMjQ1MywzMiArMjQ3NCw0MCBAQCBGcm9udGVuZEluaXRpYWxpemUoCiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDg7CiAKKyAgICBzdGF0dXMg
PSBDb250cm9sbGVySW5pdGlhbGl6ZSgqRnJvbnRlbmQsICYoKkZyb250ZW5kKS0+Q29udHJvbGxl
cik7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDk7CisK
ICAgICBLZUluaXRpYWxpemVFdmVudCgmKCpGcm9udGVuZCktPkVqZWN0RXZlbnQsIE5vdGlmaWNh
dGlvbkV2ZW50LCBGQUxTRSk7CiAKICAgICBzdGF0dXMgPSBUaHJlYWRDcmVhdGUoRnJvbnRlbmRF
amVjdCwgKkZyb250ZW5kLCAmKCpGcm9udGVuZCktPkVqZWN0VGhyZWFkKTsKICAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsOTsKKyAgICAgICAgZ290byBmYWls
MTA7CiAKICAgICBzdGF0dXMgPSBUaHJlYWRDcmVhdGUoRnJvbnRlbmRNaWIsICpGcm9udGVuZCwg
JigqRnJvbnRlbmQpLT5NaWJUaHJlYWQpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQot
ICAgICAgICBnb3RvIGZhaWwxMDsKKyAgICAgICAgZ290byBmYWlsMTE7CiAKICAgICBUcmFjZSgi
PD09PT1cbiIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMTA6Ci0gICAg
RXJyb3IoImZhaWwxMFxuIik7CitmYWlsMTE6CisgICAgRXJyb3IoImZhaWwxMVxuIik7CiAKICAg
ICBUaHJlYWRBbGVydCgoKkZyb250ZW5kKS0+RWplY3RUaHJlYWQpOwogICAgIFRocmVhZEpvaW4o
KCpGcm9udGVuZCktPkVqZWN0VGhyZWFkKTsKICAgICAoKkZyb250ZW5kKS0+RWplY3RUaHJlYWQg
PSBOVUxMOwogCi1mYWlsOToKLSAgICBFcnJvcigiZmFpbDlcbiIpOworZmFpbDEwOgorICAgIEVy
cm9yKCJmYWlsMTBcbiIpOwogCiAgICAgUnRsWmVyb01lbW9yeSgmKCpGcm9udGVuZCktPkVqZWN0
RXZlbnQsIHNpemVvZiAoS0VWRU5UKSk7CiAKKyAgICBDb250cm9sbGVyVGVhcmRvd24oX19Gcm9u
dGVuZEdldENvbnRyb2xsZXIoKkZyb250ZW5kKSk7CisgICAgKCpGcm9udGVuZCktPkNvbnRyb2xs
ZXIgPSBOVUxMOworCitmYWlsOToKICAgICBUcmFuc21pdHRlclRlYXJkb3duKF9fRnJvbnRlbmRH
ZXRUcmFuc21pdHRlcigqRnJvbnRlbmQpKTsKICAgICAoKkZyb250ZW5kKS0+VHJhbnNtaXR0ZXIg
PSBOVUxMOwogCkBAIC0yNTc1LDYgKzI2MDQsOSBAQCBGcm9udGVuZFRlYXJkb3duKAogCiAgICAg
UnRsWmVyb01lbW9yeSgmRnJvbnRlbmQtPkVqZWN0RXZlbnQsIHNpemVvZiAoS0VWRU5UKSk7CiAK
KyAgICBDb250cm9sbGVyVGVhcmRvd24oX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRlbmQp
KTsKKyAgICBGcm9udGVuZC0+Q29udHJvbGxlciA9IE5VTEw7CisKICAgICBUcmFuc21pdHRlclRl
YXJkb3duKF9fRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCkpOwogICAgIEZyb250ZW5k
LT5UcmFuc21pdHRlciA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJvbnRlbmQu
aCBiL3NyYy94ZW52aWYvZnJvbnRlbmQuaAppbmRleCA5Y2FjNDEyLi42NWRhYWM0IDEwMDY0NAot
LS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmgKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5oCkBA
IC0xNjUsNiArMTY1LDEzIEBAIEZyb250ZW5kR2V0VHJhbnNtaXR0ZXIoCiAgICAgSU4gIFBYRU5W
SUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKICAgICApOwogCisjaW5jbHVkZSAiY29udHJvbGxlci5o
IgorCitleHRlcm4gUFhFTlZJRl9DT05UUk9MTEVSCitGcm9udGVuZEdldENvbnRyb2xsZXIoCisg
ICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKKyAgICApOworCiBleHRlcm4gVk9J
RAogRnJvbnRlbmRRdWVyeVN0YXRpc3RpYygKICAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICAg
ICAgRnJvbnRlbmQsCmRpZmYgLS1naXQgYS92czIwMTIveGVudmlmL3hlbnZpZi52Y3hwcm9qIGIv
dnMyMDEyL3hlbnZpZi94ZW52aWYudmN4cHJvagppbmRleCBlM2RmMzA5Li4xNzBhYjUzIDEwMDY0
NAotLS0gYS92czIwMTIveGVudmlmL3hlbnZpZi52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW52aWYv
eGVudmlmLnZjeHByb2oKQEAgLTgwLDYgKzgwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uLy4uL3NyYy94ZW52aWYvc2V0dGluZ3MuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uLy4uL3NyYy94ZW52aWYvdGhyZWFkLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Li8uLi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLi8uLi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uLy4uL3NyYy94ZW52aWYvdmlmLmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdy
b3VwPgpkaWZmIC0tZ2l0IGEvdnMyMDEzL3hlbnZpZi94ZW52aWYudmN4cHJvaiBiL3ZzMjAxMy94
ZW52aWYveGVudmlmLnZjeHByb2oKaW5kZXggNjEyNjVhMi4uOWQxZGJhMyAxMDA2NDQKLS0tIGEv
dnMyMDEzL3hlbnZpZi94ZW52aWYudmN4cHJvagorKysgYi92czIwMTMveGVudmlmL3hlbnZpZi52
Y3hwcm9qCkBAIC04Myw2ICs4Myw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9z
cmMveGVudmlmL3NldHRpbmdzLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9z
cmMveGVudmlmL3RocmVhZC5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3Jj
L3hlbnZpZi90cmFuc21pdHRlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4v
c3JjL3hlbnZpZi9jb250cm9sbGVyLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8u
Li9zcmMveGVudmlmL3ZpZi5jIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLS0g
CjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93
aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWW-0006bI-Pd; Tue, 17 May 2016 16:07:08 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWV-0006Zy-Nb
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:08 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 45/6A-09532-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkorvS0Tr
 c4GWXhcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNWHyii7lg4i+mimcrJrM0MF7pYupi5OIQEpjN
 KPGj+w6YwyLwkkVi0o7FYI6EQD+rxIrH2xm7GDmAnBiJM7+A4pxAZrVEx5zPLCC2kICiRPO1C
 +wQk5YxSXQumsEOkmATUJe4/X4xO0SDncSnWTfBbBEBVYlry4+xgdjMAloSDzfMA5svLOAqcb
 9FGyTMAlTSMf0kI4jNK+Aucf7zd2aIMXISeyevBtvLKeAhMev1H3aIG9wl2rdfZ5vAKLiAkWE
 Vo3pxalFZapGusV5SUWZ6RkluYmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmDAMQDBDsaOf06H
 GCU5mJREeS+YWIcL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuAVdgDKCRalpqdWpGXmAEMfJi3Bw
 aMkwmsHkuYtLkjMLc5Mh0idYtTl2DL13lomIZa8/LxUKXFedpAiAZCijNI8uBGwOLzEKCslzM
 sIdJQQT0FqUW5mCar8K0ZxDkYlYYhVPJl5JXCbXgEdwQR0xAQzC5AjShIRUlINjMwHfq6aViv
 sU+3Tl9tp5na0vih6+8vNugcOc0lHrbo5h7FCqFCptqEuNaE7JT5R3bLMykxGNC7/i6KJ8eP9
 jOxBLxc39PHuvFK214or5erGIp4zuV3HN/8oec9/o+pqQ+PHioJp2bXd03yfiwclCE7JfHOlY
 raWpFz4XduTq8R0PrIe/btdiaU4I9FQi7moOBEAtCc2yb4CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1463501225!14567044!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54345 invoked from network); 17 May 2016 16:07:05 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-11.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:05 -0000
Received: by mail-wm0-f68.google.com with SMTP id n129so5927118wmn.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=vagcodILJ+UcwbJ8yusnWEus+26g8aGThORKwmy17hg=;
 b=LGu8EqjvIdrfURPjqZh2uA6x9CRh8gx20jadJob4ls3DittBV2TX+xGLaLBaDRhZui
 0PrdYMEaAOdpJZLgOCZ7VB0IbrnzR0jcKWVraM1uQAdqRRsno5Y+rl6VSMbCL4aAsFGd
 9VVAlWxHXh8IrdsvsoLXihJBbRZA7UBD2fkMvN/oGo39rqVB3P8/qfjQRUo+B3FpOB/W
 t9+qz+70ZMUSf6gNHu3ODFRTirG81IUYRUEUDFKDTmJMI2CNGD0gMqNEXOlQpfJ/dw9i
 Lq5TmQhOdKdfnUNxbC3gmGT+PJjt4KQKmAf8FLCCCLBC+X0Mbrwdw7uM5r6WQZXhYEtg
 Bfzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=vagcodILJ+UcwbJ8yusnWEus+26g8aGThORKwmy17hg=;
 b=glUPaw1o3EyWfJGcSPs299yCdPUmElZjuiFcG+jX1egGbPKbbjjv84dxPT4uPCdfx4
 +NF8Gipsr1CyI+v14aNXmpUGAtfe+KCVWJs9v9MJ/7bb2E1N5zVSG43L+3Uzsja29u48
 ZhlL8XIpm1DJ+zsSWrOovkxhkjbrT+7db9pL9cHyuPOjG0WK8sL7uv6aHUk6pqly0Dns
 9rsQrPnSNr+Yt8rpzsazc3y7FYBIN84XU/Nf44ZQRIqMvmFeD6tybJUrjnyPbrcLjx8i
 Vr4dYqa7TGyBbz8DqwWBWEryBg0X09IP+NqRK//3xbpNqjfJ4x0BE5F+6Li3Vm5NbvW5
 fnWw==
X-Gm-Message-State: AOPr4FU0+X2yHMSa0GYkkxbeMSZkrbDCt3JLZZhSy1H285LsizgrCNhdiXPz4F3UP+RMPw==
X-Received: by 10.194.242.167 with SMTP id wr7mr2316216wjc.145.1463501224480; 
 Tue, 17 May 2016 09:07:04 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.03
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:03 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:02 +0100
Message-Id: <1463501224-12940-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/4] Add frontend code for the new netif
	control ring
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

TXkgcmVjZW50IHBhdGNoZXMgdG8gWGVuJ3MgbmV0aWYuaCBzcGVjaWZ5IGEgY29udHJvbCByaW5n
IHRoYXQgY2FuIGJlCnVzZWQgYnkgYSBmcm9udGVuZCBkcml2ZXIgdG8gY29uZmlndXJlIHBhY2tl
dCBoYXNoaW5nIGFuZCBzdGVlcmluZyBpbgphIGJhY2tlbmQuClRoaXMgcGF0Y2ggYWRkcyB0aGUg
bmVjZXNzYXJ5IGNvZGUgdG8gWEVOVklGIHRvIGRyaXZlIHRoaXMgbmV3IHJpbmcsCmhvd2V2ZXIg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUgdG8gbGluayB0aGlzIHVwIHRvIG5ldyBWSUYgaW50ZXJmYWNl
CmZ1bmN0aW9uYWxpdHkgKHNvIHRoYXQgaXQgbWF5IGJlIHVzZWQgYnkgWEVOTkVUKSBpcyBkZWZl
cnJlZCB0byBhCnN1YnNlcXVlbnQgcGF0Y2guCgpUaGlzIHBhdGNoIGFsc28gcHVsbHMgaW4gYW4g
dXBkYXRlZCBFVlRDSE4gaW50ZXJmYWNlIGZyb20gWEVOQlVTIGFuZApjb3JyZWN0cyB0aGUgUERP
IGJpbmRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRy
aXguY29tPgotLS0KIGluY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oICAgfCAgIDM2ICstCiBzcmMv
eGVudmlmLmluZiAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL3hlbnZpZi9jb250cm9sbGVy
LmMgICAgICB8IDEzMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiBzcmMveGVudmlmL2NvbnRyb2xsZXIuaCAgICAgIHwgIDEyNiArKysrCiBzcmMveGVudmlmL2Zy
b250ZW5kLmMgICAgICAgIHwgICA1MCArLQogc3JjL3hlbnZpZi9mcm9udGVuZC5oICAgICAgICB8
ICAgIDcgKwogdnMyMDEyL3hlbnZpZi94ZW52aWYudmN4cHJvaiB8ICAgIDEgKwogdnMyMDEzL3hl
bnZpZi94ZW52aWYudmN4cHJvaiB8ICAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCAxNTQ5IGluc2Vy
dGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW52aWYv
Y29udHJvbGxlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbnZpZi9jb250cm9sbGVyLmgK
CmRpZmYgLS1naXQgYS9pbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaCBiL2luY2x1ZGUvZXZ0Y2hu
X2ludGVyZmFjZS5oCmluZGV4IDZmOGZlNDIuLmE5OTUyZDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv
ZXZ0Y2huX2ludGVyZmFjZS5oCisrKyBiL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oCkBAIC0x
ODAsNiArMTgwLDIwIEBAIHR5cGVkZWYgVk9JRAogICAgIElOICBQWEVOQlVTX0VWVENITl9DSEFO
TkVMICBDaGFubmVsCiAgICAgKTsKIAorLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fV0FJVAor
ICAgIFxicmllZiBXYWl0IGZvciBhbiBldmVudCB0byB0aGUgbG9jYWwgZW5kIG9mIHRoZSBjaGFu
bmVsCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBh
cmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxlCisgICAgXHBhcmFtIFRpbWVvdXQgQW4gb3B0
aW9uYWwgdGltZW91dCB2YWx1ZSAoc2ltaWxhciB0byBLZVdhaXRGb3JTaW5nbGVPYmplY3QoKSwg
YnV0IG5vbi16ZXJvIHZhbHVlcyBhcmUgYWxsb3dlZCBhdCBESVNQQVRDSF9MRVZFTCkuCisqLwor
dHlwZWRlZiBOVFNUQVRVUworKCpYRU5CVVNfRVZUQ0hOX1dBSVQpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5O
RUwgIENoYW5uZWwsCisgICAgSU4gIFBMQVJHRV9JTlRFR0VSICAgICAgICAgIFRpbWVvdXQgT1BU
SU9OQUwKKyAgICApOworCiAvKiEgXHR5cGVkZWYgWEVOQlVTX0VWVENITl9HRVRfUE9SVAogICAg
IFxicmllZiBHZXQgdGhlIGxvY2FsIHBvcnQgbnVtYmVyIGJvdW5kIHRvIHRoZSBjaGFubmVsCiAK
QEAgLTI3Niw3ICsyOTAsMjUgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNCB7
CiAgICAgWEVOQlVTX0VWVENITl9DTE9TRSAgICAgRXZ0Y2huQ2xvc2U7CiB9OwogCi10eXBlZGVm
IHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjQgWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZBQ0U7CisvKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENI
Tl9JTlRFUkZBQ0VfVjUKKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDUKKyAg
ICBcaW5ncm91cCBpbnRlcmZhY2VzCisqLworc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFD
RV9WNSB7CisgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50ZXJmYWNlOworICAgIFhFTkJV
U19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CisgICAgWEVOQlVTX0VWVENITl9SRUxF
QVNFICAgRXZ0Y2huUmVsZWFzZTsKKyAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBFdnRjaG5P
cGVuOworICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7CisgICAgWEVOQlVT
X0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOworICAgIFhFTkJVU19FVlRDSE5fU0VORCAg
ICAgIEV2dGNoblNlbmQ7CisgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2huVHJpZ2dl
cjsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVQgICAgICBFdnRjaG5XYWl0OworICAgIFhFTkJVU19F
VlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7CisgICAgWEVOQlVTX0VWVENITl9DTE9TRSAg
ICAgRXZ0Y2huQ2xvc2U7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRF
UkZBQ0VfVjUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0U7CiAKIC8qISBcZGVmIFhFTkJVU19FVlRDSE4KICAgICBcYnJpZWYgTWFjcm8gYXQgYXNzaXN0
IGluIG1ldGhvZCBpbnZvY2F0aW9uCkBAIC0yODcsNyArMzE5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0IFhFTkJVU19FVlRDSE5fSU5URVJGQUNFLCAqUFhF
TkJVU19FVlQKICNlbmRpZiAgLy8gX1dJTkRMTAogCiAjZGVmaW5lIFhFTkJVU19FVlRDSE5fSU5U
RVJGQUNFX1ZFUlNJT05fTUlOIDEKLSNkZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVS
U0lPTl9NQVggNAorI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01BWCA1
CiAKICNlbmRpZiAgLy8gX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX0gKIApkaWZmIC0tZ2l0IGEv
c3JjL3hlbnZpZi5pbmYgYi9zcmMveGVudmlmLmluZgppbmRleCAwZmE0Yzk4Li44OTkyNjBlIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmLmluZgorKysgYi9zcmMveGVudmlmLmluZgpAQCAtNTgsOSAr
NTgsOSBAQCB4ZW52aWZfY29pbnN0X0BNQUpPUl9WRVJTSU9OQF9ATUlOT1JfVkVSU0lPTkBfQE1J
Q1JPX1ZFUlNJT05AX0BCVUlMRF9OVU1CRVJALmRsbAogOyBEaXNwbGF5TmFtZQkJU2VjdGlvbgkJ
RGV2aWNlSUQKIDsgLS0tLS0tLS0tLS0JCS0tLS0tLS0JCS0tLS0tLS0tCiAKLSVYZW5WaWZEZXNj
JQkJPVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQEBWRU5ET1JfREVWSUNF
X0lEQCZERVZfVklGJlJFVl8wODAwMDAwOQotJVhlblZpZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhF
TkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfVklGJlJFVl8wODAwMDAwOQotJVhlblZp
ZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZERVZf
VklGJlJFVl8wODAwMDAwOQorJVhlblZpZkRlc2MlCQk9WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5f
QFZFTkRPUl9QUkVGSVhAQFZFTkRPUl9ERVZJQ0VfSURAJkRFVl9WSUYmUkVWXzA4MDAwMDBCCisl
WGVuVmlmRGVzYyUJCT1YZW5WaWZfSW5zdCwJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAx
JkRFVl9WSUYmUkVWXzA4MDAwMDBCCislWGVuVmlmRGVzYyUJCT1YZW5WaWZfSW5zdCwJWEVOQlVT
XFZFTl9AVkVORE9SX1BSRUZJWEAwMDAyJkRFVl9WSUYmUkVWXzA4MDAwMDBCCiAKIFtYZW5WaWZf
SW5zdF0gCiBDb3B5RmlsZXM9WGVuVmlmX0NvcHlmaWxlcwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMgYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42YzZiYjNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMKQEAgLTAsMCArMSwxMzM2IEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJp
eCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1ldGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPG50ZGRr
Lmg+CisjaW5jbHVkZSA8cHJvY2dycC5oPgorI2luY2x1ZGUgPG50c3Ryc2FmZS5oPgorI2luY2x1
ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHhlbi5oPgorCisj
aW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8c3RvcmVfaW50ZXJmYWNlLmg+
CisjaW5jbHVkZSA8Y2FjaGVfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8Z250dGFiX2ludGVyZmFj
ZS5oPgorI2luY2x1ZGUgPGV2dGNobl9pbnRlcmZhY2UuaD4KKworI2luY2x1ZGUgInBkby5oIgor
I2luY2x1ZGUgImZyb250ZW5kLmgiCisjaW5jbHVkZSAiY29udHJvbGxlci5oIgorI2luY2x1ZGUg
InZpZi5oIgorI2luY2x1ZGUgInRocmVhZC5oIgorI2luY2x1ZGUgInJlZ2lzdHJ5LmgiCisjaW5j
bHVkZSAiZGJnX3ByaW50LmgiCisjaW5jbHVkZSAiYXNzZXJ0LmgiCisjaW5jbHVkZSAidXRpbC5o
IgorCitleHRlcm4gVUxPTkcKK05UQVBJCitSdGxSYW5kb21FeCAoCisgICAgX19pbm91dCBQVUxP
TkcgU2VlZAorICAgICk7CisKKyNkZWZpbmUgTUFYTkFNRUxFTiAgMTI4CisKK3N0cnVjdCBfWEVO
VklGX0NPTlRST0xMRVIgeworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgICAg
IEZyb250ZW5kOworICAgIEtTUElOX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2s7
CisgICAgUFhFTkJVU19HTlRUQUJfQ0FDSEUgICAgICAgICAgICAgICAgR250dGFiQ2FjaGU7Cisg
ICAgUE1ETCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWRsOworICAgIHhlbl9uZXRp
Zl9jdHJsX2Zyb250X3JpbmdfdCAgICAgICAgIEZyb250OworICAgIHhlbl9uZXRpZl9jdHJsX3Ny
aW5nX3QgICAgICAgICAgICAgICpTaGFyZWQ7CisgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAg
ICAgICAgICAgICAgRW50cnk7CisgICAgUFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAgICAgICAgICAg
ICAgQ2hhbm5lbDsKKyAgICBLRFBDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcGM7
CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHBjczsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudHM7CisgICAgQk9PTEVBTiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGVkOworICAgIEJPT0xFQU4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVuYWJsZWQ7CisgICAgVVNIT1JUICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmVxdWVzdElkOworICAgIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0
ICAgICAgIFJlcXVlc3Q7CisgICAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3Jlc3BvbnNlICAgICAg
UmVzcG9uc2U7CisgICAgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UgICAgICAgICAgICAgR250dGFi
SW50ZXJmYWNlOworICAgIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFICAgICAgICAgICAgIEV2dGNo
bkludGVyZmFjZTsKKyAgICBYRU5CVVNfU1RPUkVfSU5URVJGQUNFICAgICAgICAgICAgICBTdG9y
ZUludGVyZmFjZTsKKyAgICBYRU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAgICAgICAgICBEZWJ1
Z0ludGVyZmFjZTsKKyAgICBQWEVOQlVTX0RFQlVHX0NBTExCQUNLICAgICAgICAgICAgICBEZWJ1
Z0NhbGxiYWNrOworICAgIFBYRU5WSUZfVEhSRUFEICAgICAgICAgICAgICAgICAgICAgIFdhdGNo
ZG9nVGhyZWFkOworfTsKKworI2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9UQUcgICdUTk9DJwor
CitzdGF0aWMgRk9SQ0VJTkxJTkUgUFZPSUQKK19fQ29udHJvbGxlckFsbG9jYXRlKAorICAgIElO
ICBVTE9ORyAgIExlbmd0aAorICAgICkKK3sKKyAgICByZXR1cm4gX19BbGxvY2F0ZVBvb2xXaXRo
VGFnKE5vblBhZ2VkUG9vbCwgTGVuZ3RoLCBYRU5WSUZfQ09OVFJPTExFUl9UQUcpOworfQorCitz
dGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19Db250cm9sbGVyRnJlZSgKKyAgICBJTiAgUFZPSUQg
ICBCdWZmZXIKKyAgICApCit7CisgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WSUZf
Q09OVFJPTExFUl9UQUcpOworfQorCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19kcnZfcmVx
dWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19Db250cm9sbGVyQWNxdWlyZUxvY2soCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBBU1NFUlQz
VShLZUdldEN1cnJlbnRJcnFsKCksID09LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBLZUFjcXVp
cmVTcGluTG9ja0F0RHBjTGV2ZWwoJkNvbnRyb2xsZXItPkxvY2spOworfQorCitzdGF0aWMgRk9S
Q0VJTkxJTkUgVk9JRAorX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19Db250
cm9sbGVyUmVsZWFzZUxvY2soCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxl
cgorICAgICkKK3sKKyAgICBLZVJlbGVhc2VTcGluTG9ja0Zyb21EcGNMZXZlbCgmQ29udHJvbGxl
ci0+TG9jayk7Cit9CisKK3N0YXRpYyBWT0lECitDb250cm9sbGVyQWNxdWlyZUxvY2soCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBfX0NvbnRy
b2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKK30KKworc3RhdGljIFZPSUQKK0NvbnRyb2xs
ZXJSZWxlYXNlTG9jaygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisg
ICAgKQoreworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworfQorCitz
dGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19Db250cm9sbGVyU2VuZCgKKyAgICBJTiAgUFhFTlZJ
Rl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQoreworICAgIChWT0lEKSBYRU5CVVNfRVZU
Q0hOKFNlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkV2dGNobklu
dGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5DaGFubmVsKTsK
K30KKworVk9JRAorQ29udHJvbGxlclBvbGwoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAg
ICAgICAgICBDb250cm9sbGVyCisgICAgKQoreworICAgIFJJTkdfSURYICAgICAgICAgICAgICAg
ICAgICAgICAgcnNwX3Byb2Q7CisgICAgUklOR19JRFggICAgICAgICAgICAgICAgICAgICAgICBy
c3BfY29uczsKKyAgICBzdHJ1Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UgICpyc3A7CisKKyAg
ICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgIHJzcF9wcm9kID0gQ29udHJvbGxlci0+U2hhcmVk
LT5yc3BfcHJvZDsKKyAgICByc3BfY29ucyA9IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zOwor
CisgICAgS2VNZW1vcnlCYXJyaWVyKCk7CisKKyAgICBpZiAocnNwX2NvbnMgPT0gcnNwX3Byb2Qp
CisgICAgICAgIHJldHVybjsKKworICAgIHJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZDb250cm9s
bGVyLT5Gcm9udCwgcnNwX2NvbnMpOworICAgIHJzcF9jb25zKys7CisKKyAgICBDb250cm9sbGVy
LT5SZXNwb25zZSA9ICpyc3A7CisKKyAgICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgIENvbnRy
b2xsZXItPkZyb250LnJzcF9jb25zID0gcnNwX2NvbnM7CisgICAgQ29udHJvbGxlci0+U2hhcmVk
LT5yc3BfZXZlbnQgPSByc3BfY29ucyArIDE7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworQ29udHJv
bGxlclB1dFJlcXVlc3QoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250
cm9sbGVyLAorICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgVHlwZSwKKyAgICBJ
TiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIERhdGEwLAorICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgICAgICAgICAgRGF0YTEsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAg
ICAgICBEYXRhMgorICAgICkKK3sKKyAgICBSSU5HX0lEWCAgICAgICAgICAgICAgICAgICAgICAg
IHJlcV9wcm9kOworICAgIHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0ICAgKnJlcTsKKyAg
ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeTsKKyAgICBOVFNUQVRVUyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlNV
RkZJQ0lFTlRfUkVTT1VSQ0VTOworICAgIGlmIChSSU5HX0ZVTEwoJkNvbnRyb2xsZXItPkZyb250
KSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIENvbnRyb2xsZXItPlJlcXVlc3QudHlwZSA9
IFR5cGU7CisgICAgQ29udHJvbGxlci0+UmVxdWVzdC5pZCA9IENvbnRyb2xsZXItPlJlcXVlc3RJ
ZCsrOworICAgIENvbnRyb2xsZXItPlJlcXVlc3QuZGF0YVswXSA9IERhdGEwOworICAgIENvbnRy
b2xsZXItPlJlcXVlc3QuZGF0YVsxXSA9IERhdGExOworICAgIENvbnRyb2xsZXItPlJlcXVlc3Qu
ZGF0YVsyXSA9IERhdGEyOworCisgICAgcmVxX3Byb2QgPSBDb250cm9sbGVyLT5Gcm9udC5yZXFf
cHJvZF9wdnQ7CisKKyAgICByZXEgPSBSSU5HX0dFVF9SRVFVRVNUKCZDb250cm9sbGVyLT5Gcm9u
dCwgcmVxX3Byb2QpOworICAgIHJlcV9wcm9kKys7CisKKyAgICAqcmVxID0gQ29udHJvbGxlci0+
UmVxdWVzdDsKKworICAgIEtlTWVtb3J5QmFycmllcigpOworCisgICAgQ29udHJvbGxlci0+RnJv
bnQucmVxX3Byb2RfcHZ0ID0gcmVxX3Byb2Q7CisKKyNwcmFnbWEgd2FybmluZyAocHVzaCkKKyNw
cmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQorCisgICAgLy8gTWFrZSB0aGUgcmVxdWVzdHMg
dmlzaWJsZSB0byB0aGUgYmFja2VuZAorICAgIFJJTkdfUFVTSF9SRVFVRVNUU19BTkRfQ0hFQ0tf
Tk9USUZZKCZDb250cm9sbGVyLT5Gcm9udCwgTm90aWZ5KTsKKworI3ByYWdtYSB3YXJuaW5nIChw
b3ApCisKKyAgICBpZiAoTm90aWZ5KQorICAgICAgICBfX0NvbnRyb2xsZXJTZW5kKENvbnRyb2xs
ZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMToKKyAgICBFcnJvcigi
ZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworI2Rl
ZmluZSBUSU1FX1VTKF91cykgICAgICAgICgoX3VzKSAqIDEwKQorI2RlZmluZSBUSU1FX01TKF9t
cykgICAgICAgIChUSU1FX1VTKChfbXMpICogMTAwMCkpCisjZGVmaW5lIFRJTUVfUyhfcykgICAg
ICAgICAgKFRJTUVfTVMoKF9zKSAqIDEwMDApKQorI2RlZmluZSBUSU1FX1JFTEFUSVZFKF90KSAg
ICgtKF90KSkKKworI2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9QT0xMX1BFUklPRCA1CisKK3N0
YXRpYyBOVFNUQVRVUworQ29udHJvbGxlckdldFJlc3BvbnNlKAorICAgIElOICBQWEVOVklGX0NP
TlRST0xMRVIgICAgICAgICAgQ29udHJvbGxlciwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAg
ICAgICAgICAgIERhdGEgT1BUSU9OQUwKKyAgICApCit7CisgICAgTEFSR0VfSU5URUdFUiAgICAg
ICAgICAgICAgICAgICBUaW1lb3V0OworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgVGltZW91dC5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9T
KFhFTlZJRl9DT05UUk9MTEVSX1BPTExfUEVSSU9EKSk7CisKKyAgICBmb3IgKDs7KSB7CisgICAg
ICAgIENvbnRyb2xsZXJQb2xsKENvbnRyb2xsZXIpOworICAgICAgICBLZU1lbW9yeUJhcnJpZXIo
KTsKKworICAgICAgICBpZiAoQ29udHJvbGxlci0+UmVzcG9uc2UuaWQgPT0gQ29udHJvbGxlci0+
UmVxdWVzdC5pZCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHN0YXR1cyA9IFhFTkJV
U19FVlRDSE4oV2FpdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxl
ci0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRy
b2xsZXItPkNoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRpbWVvdXQp
OworICAgICAgICBpZiAoc3RhdHVzID09IFNUQVRVU19USU1FT1VUKQorICAgICAgICAgICAgV2Fy
bmluZygiVElNRUQgT1VUXG4iKTsKKyAgICB9CisKKyAgICBBU1NFUlQzVShDb250cm9sbGVyLT5S
ZXNwb25zZS50eXBlLCA9PSwgQ29udHJvbGxlci0+UmVxdWVzdC50eXBlKTsKKworICAgIHN3aXRj
aCAoQ29udHJvbGxlci0+UmVzcG9uc2Uuc3RhdHVzKSB7CisgICAgY2FzZSBYRU5fTkVUSUZfQ1RS
TF9TVEFUVVNfU1VDQ0VTUzoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX1NVQ0NFU1M7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfTk9UX1NVUFBPUlRF
RDoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBYRU5fTkVUSUZfQ1RSTF9TVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI6Cisg
ICAgICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFhFTl9ORVRJRl9DVFJMX1NUQVRVU19CVUZGRVJfT1ZFUkZMT1c6CisgICAg
ICAgIHN0YXR1cyA9IFNUQVRVU19CVUZGRVJfT1ZFUkZMT1c7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgc3RhdHVzID0gU1RBVFVTX1VOU1VDQ0VTU0ZVTDsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSAmJiBEYXRhICE9
IE5VTEwpCisgICAgICAgICpEYXRhID0gQ29udHJvbGxlci0+UmVzcG9uc2UuZGF0YTsKKworICAg
IFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPlJlcXVlc3QsCisgICAgICAgICAgICAgICAgICBz
aXplb2YgKHN0cnVjdCB4ZW5fbmV0aWZfY3RybF9yZXF1ZXN0KSk7CisgICAgUnRsWmVyb01lbW9y
eSgmQ29udHJvbGxlci0+UmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKHN0cnVj
dCB4ZW5fbmV0aWZfY3RybF9yZXNwb25zZSkpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKwor
I2RlZmluZSBYRU5WSUZfQ09OVFJPTExFUl9XQVRDSERPR19QRVJJT0QgMTUKKworc3RhdGljIE5U
U1RBVFVTCitDb250cm9sbGVyV2F0Y2hkb2coCisgICAgSU4gIFBYRU5WSUZfVEhSRUFEICBTZWxm
LAorICAgIElOICBQVk9JRCAgICAgICAgICAgQ29udGV4dAorICAgICkKK3sKKyAgICBQWEVOVklG
X0NPTlRST0xMRVIgIENvbnRyb2xsZXIgPSBDb250ZXh0OworICAgIExBUkdFX0lOVEVHRVIgICAg
ICAgVGltZW91dDsKKyAgICBSSU5HX0lEWCAgICAgICAgICAgIHJzcF9wcm9kOworICAgIFJJTkdf
SURYICAgICAgICAgICAgcnNwX2NvbnM7CisKKyAgICBUcmFjZSgiPT09PT5cbiIpOworCisgICAg
VGltZW91dC5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9DT05UUk9MTEVS
X1dBVENIRE9HX1BFUklPRCkpOworCisgICAgcnNwX3Byb2QgPSAwOworICAgIHJzcF9jb25zID0g
MDsKKworICAgIGZvciAoOzspIHsKKyAgICAgICAgUEtFVkVOVCBFdmVudDsKKyAgICAgICAgS0lS
UUwgICBJcnFsOworCisgICAgICAgIEV2ZW50ID0gVGhyZWFkR2V0RXZlbnQoU2VsZik7CisKKyAg
ICAgICAgKFZPSUQpIEtlV2FpdEZvclNpbmdsZU9iamVjdChFdmVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgS2VybmVsTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGlt
ZW91dCk7CisgICAgICAgIEtlQ2xlYXJFdmVudChFdmVudCk7CisKKyAgICAgICAgaWYgKFRocmVh
ZElzQWxlcnRlZChTZWxmKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIEtlUmFpc2VJ
cnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CisgICAgICAgIF9fQ29udHJvbGxlckFjcXVpcmVM
b2NrKENvbnRyb2xsZXIpOworCisgICAgICAgIGlmIChDb250cm9sbGVyLT5FbmFibGVkKSB7Cisg
ICAgICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKKworICAgICAgICAgICAgaWYgKENvbnRyb2xs
ZXItPlNoYXJlZC0+cnNwX3Byb2QgIT0gcnNwX3Byb2QgJiYKKyAgICAgICAgICAgICAgICAgQ29u
dHJvbGxlci0+RnJvbnQucnNwX2NvbnMgPT0gcnNwX2NvbnMpIHsKKyAgICAgICAgICAgICAgICBY
RU5CVVNfREVCVUcoVHJpZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRy
b2xsZXItPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250
cm9sbGVyLT5EZWJ1Z0NhbGxiYWNrKTsKKworICAgICAgICAgICAgICAgIC8vIFRyeSB0byBtb3Zl
IHRoaW5ncyBhbG9uZworICAgICAgICAgICAgICAgIENvbnRyb2xsZXJQb2xsKENvbnRyb2xsZXIp
OworICAgICAgICAgICAgICAgIF9fQ29udHJvbGxlclNlbmQoQ29udHJvbGxlcik7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEtlTWVtb3J5QmFycmllcigpOworCisgICAgICAgICAgICBy
c3BfcHJvZCA9IENvbnRyb2xsZXItPlNoYXJlZC0+cnNwX3Byb2Q7CisgICAgICAgICAgICByc3Bf
Y29ucyA9IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zOworICAgICAgICB9CisKKyAgICAgICAg
X19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisgICAgICAgIEtlTG93ZXJJcnFs
KElycWwpOworICAgIH0KKworICAgIFRyYWNlKCI8PT09PVxuIik7CisKKyAgICByZXR1cm4gU1RB
VFVTX1NVQ0NFU1M7Cit9CisKK19fZHJ2X21heElSUUwoRElTUEFUQ0hfTEVWRUwpCitfX2Rydl9t
aW5JUlFMKERJU1BBVENIX0xFVkVMKQorX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVM
KQorX19kcnZfc2FtZUlSUUwKK3N0YXRpYyBWT0lECitDb250cm9sbGVyRHBjKAorICAgIElOICBQ
S0RQQyAgICAgICAgICAgICAgICAgICBEcGMsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAg
ICAgIENvbnRleHQsCisgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgIEFyZ3VtZW50MSwK
KyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgQXJndW1lbnQyCisgICAgKQoreworICAg
IFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250cm9sbGVyID0gQ29udGV4dDsKKworICAg
IFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRHBjKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVS
KEFyZ3VtZW50MSk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDIpOworCisg
ICAgQVNTRVJUKENvbnRyb2xsZXIgIT0gTlVMTCk7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJl
TG9jayhDb250cm9sbGVyKTsKKworICAgIGlmIChDb250cm9sbGVyLT5FbmFibGVkKQorICAgICAg
ICBDb250cm9sbGVyUG9sbChDb250cm9sbGVyKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworfQorCitLU0VSVklDRV9ST1VUSU5FICAgIFRyYW5zbWl0dGVyUmlu
Z0V2dGNobkNhbGxiYWNrOworCitCT09MRUFOCitDb250cm9sbGVyRXZ0Y2huQ2FsbGJhY2soCisg
ICAgSU4gIFBLSU5URVJSVVBUICAgICAgICAgICAgIEludGVycnVwdE9iamVjdCwKKyAgICBJTiAg
UFZPSUQgICAgICAgICAgICAgICAgICAgQXJndW1lbnQKKyAgICApCit7CisgICAgUFhFTlZJRl9D
T05UUk9MTEVSICAgICAgICAgIENvbnRyb2xsZXIgPSBBcmd1bWVudDsKKworICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoSW50ZXJydXB0T2JqZWN0KTsKKworICAgIEFTU0VSVChDb250cm9sbGVy
ICE9IE5VTEwpOworCisgICAgQ29udHJvbGxlci0+RXZlbnRzKys7CisKKyAgICBpZiAoS2VJbnNl
cnRRdWV1ZURwYygmQ29udHJvbGxlci0+RHBjLCBOVUxMLCBOVUxMKSkKKyAgICAgICAgQ29udHJv
bGxlci0+RHBjcysrOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBWT0lECitDb250
cm9sbGVyRGVidWdDYWxsYmFjaygKKyAgICBJTiAgUFZPSUQgICAgICAgICAgIEFyZ3VtZW50LAor
ICAgIElOICBCT09MRUFOICAgICAgICAgQ3Jhc2hpbmcKKyAgICApCit7CisgICAgVU5SRUZFUkVO
Q0VEX1BBUkFNRVRFUihBcmd1bWVudCk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDcmFz
aGluZyk7Cit9CisKK05UU1RBVFVTCitDb250cm9sbGVySW5pdGlhbGl6ZSgKKyAgICBJTiAgUFhF
TlZJRl9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBPVVQgUFhFTlZJRl9DT05UUk9MTEVSICAq
Q29udHJvbGxlcgorICAgICkKK3sKKyAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBOb3c7Cisg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2VlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CisKKyAgICAqQ29udHJvbGxlciA9IF9fQ29udHJvbGxlckFsbG9jYXRlKHNp
emVvZiAoWEVOVklGX0NPTlRST0xMRVIpKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1P
Ulk7CisgICAgaWYgKCpDb250cm9sbGVyID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisK
KyAgICBGZG9HZXREZWJ1Z0ludGVyZmFjZShQZG9HZXRGZG8oRnJvbnRlbmRHZXRQZG8oRnJvbnRl
bmQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmKCpDb250cm9sbGVyKS0+RGVidWdJbnRl
cmZhY2UpOworCisgICAgRmRvR2V0U3RvcmVJbnRlcmZhY2UoUGRvR2V0RmRvKEZyb250ZW5kR2V0
UGRvKEZyb250ZW5kKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJigqQ29udHJvbGxlcikt
PlN0b3JlSW50ZXJmYWNlKTsKKworICAgIEZkb0dldEdudHRhYkludGVyZmFjZShQZG9HZXRGZG8o
RnJvbnRlbmRHZXRQZG8oRnJvbnRlbmQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJigq
Q29udHJvbGxlciktPkdudHRhYkludGVyZmFjZSk7CisKKyAgICBGZG9HZXRFdnRjaG5JbnRlcmZh
Y2UoUGRvR2V0RmRvKEZyb250ZW5kR2V0UGRvKEZyb250ZW5kKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICYoKkNvbnRyb2xsZXIpLT5FdnRjaG5JbnRlcmZhY2UpOworCisgICAgS2VJbml0
aWFsaXplU3BpbkxvY2soJigqQ29udHJvbGxlciktPkxvY2spOworICAgIEtlSW5pdGlhbGl6ZURw
YygmKCpDb250cm9sbGVyKS0+RHBjLCBDb250cm9sbGVyRHBjLCAqQ29udHJvbGxlcik7CisKKyAg
ICBLZVF1ZXJ5U3lzdGVtVGltZSgmTm93KTsKKyAgICBTZWVkID0gTm93Lkxvd1BhcnQ7CisKKyAg
ICAoKkNvbnRyb2xsZXIpLT5SZXF1ZXN0SWQgPSAoVVNIT1JUKVJ0bFJhbmRvbUV4KCZTZWVkKTsK
KworICAgIHN0YXR1cyA9IFRocmVhZENyZWF0ZShDb250cm9sbGVyV2F0Y2hkb2csCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICpDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAmKCpDb250cm9sbGVyKS0+V2F0Y2hkb2dUaHJlYWQpOworICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgKCpDb250cm9sbGVyKS0+RnJvbnRl
bmQgPSBGcm9udGVuZDsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDI6Cisg
ICAgRXJyb3IoImZhaWwyXG4iKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJigqQ29udHJvbGxlcikt
PkxvY2ssCisgICAgICAgICAgICAgICAgICBzaXplb2YgKEtTUElOX0xPQ0spKTsKKworICAgIFJ0
bFplcm9NZW1vcnkoJigqQ29udHJvbGxlciktPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgIHNpemVvZiAoWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UpKTsKKworICAgIFJ0bFplcm9N
ZW1vcnkoJigqQ29udHJvbGxlciktPlN0b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAg
c2l6ZW9mIChYRU5CVVNfU1RPUkVfSU5URVJGQUNFKSk7CisKKyAgICBSdGxaZXJvTWVtb3J5KCYo
KkNvbnRyb2xsZXIpLT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIHNpemVvZiAo
WEVOQlVTX0RFQlVHX0lOVEVSRkFDRSkpOworCisgICAgUnRsWmVyb01lbW9yeSgmKCpDb250cm9s
bGVyKS0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRSkpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4i
LCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0NvbnRyb2xs
ZXJDb25uZWN0KAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgICAgICBDb250cm9sbGVyCisg
ICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKKyAgICBQ
Q0hBUiAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAgIEJPT0xFQU4gICAgICAgICAg
ICAgICAgICAgICBGZWF0dXJlOworICAgIFBGTl9OVU1CRVIgICAgICAgICAgICAgICAgICBQZm47
CisgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWVbTUFYTkFNRUxFTl07CisgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAg
ICAgICAgICAgICBzdGF0dXM7CisKKyAgICBUcmFjZSgiPT09PT5cbiIpOworCisgICAgRnJvbnRl
bmQgPSBDb250cm9sbGVyLT5Gcm9udGVuZDsKKworICAgIHN0YXR1cyA9IFhFTkJVU19ERUJVRyhB
Y3F1aXJlLCAmQ29udHJvbGxlci0+RGVidWdJbnRlcmZhY2UpOworICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0gWEVOQlVTX1NU
T1JFKEFjcXVpcmUsICZDb250cm9sbGVyLT5TdG9yZUludGVyZmFjZSk7CisgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBzdGF0dXMgPSBYRU5C
VVNfRVZUQ0hOKEFjcXVpcmUsICZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZhY2UpOworICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgc3RhdHVz
ID0gWEVOQlVTX0dOVFRBQihBY3F1aXJlLCAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlKTsK
KyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNDsKKworICAg
IHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAm
Q29udHJvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0QmFja2VuZFBhdGgoRnJv
bnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1jdHJsLXJpbmciLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQnVmZmVyKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkgeworICAgICAgICBGZWF0dXJlID0gRkFMU0U7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgRmVhdHVyZSA9IChCT09MRUFOKXN0cnRvbChCdWZmZXIsIE5VTEwsIDIpOworCisgICAgICAg
IFhFTkJVU19TVE9SRShGcmVlLAorICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPlN0
b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsKKyAgICB9CisKKyAg
ICBpZiAoIUZlYXR1cmUpCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIHN0YXR1cyA9IFJ0bFN0
cmluZ0NiUHJpbnRmQShOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
b2YgKE5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXNfY29udHJvbGxl
ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0UGF0aChGcm9u
dGVuZCkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw1
OworCisgICAgZm9yIChJbmRleCA9IDA7IE5hbWVbSW5kZXhdICE9ICdcMCc7IEluZGV4KyspCisg
ICAgICAgIGlmIChOYW1lW0luZGV4XSA9PSAnLycpCisgICAgICAgICAgICBOYW1lW0luZGV4XSA9
ICdfJzsKKworICAgIHN0YXR1cyA9IFhFTkJVU19HTlRUQUIoQ3JlYXRlQ2FjaGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyQWNxdWlyZUxvY2ssCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyUmVsZWFzZUxvY2ssCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
JkNvbnRyb2xsZXItPkdudHRhYkNhY2hlKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsNjsKKworICAgIENvbnRyb2xsZXItPk1kbCA9IF9fQWxsb2NhdGVQ
YWdlKCk7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOworICAgIGlmIChDb250cm9s
bGVyLT5NZGwgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsNzsKKworICAgIENvbnRyb2xsZXIt
PlNoYXJlZCA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUoQ29udHJvbGxlci0+TWRsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9y
bWFsUGFnZVByaW9yaXR5KTsKKyAgICBBU1NFUlQoQ29udHJvbGxlci0+U2hhcmVkICE9IE5VTEwp
OworCisgICAgU0hBUkVEX1JJTkdfSU5JVChDb250cm9sbGVyLT5TaGFyZWQpOworICAgIEZST05U
X1JJTkdfSU5JVCgmQ29udHJvbGxlci0+RnJvbnQsIENvbnRyb2xsZXItPlNoYXJlZCwgUEFHRV9T
SVpFKTsKKyAgICBBU1NFUlQzUChDb250cm9sbGVyLT5Gcm9udC5zcmluZywgPT0sIENvbnRyb2xs
ZXItPlNoYXJlZCk7CisKKyAgICBQZm4gPSBNbUdldE1kbFBmbkFycmF5KENvbnRyb2xsZXItPk1k
bClbMF07CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfR05UVEFCKFBlcm1pdEZvcmVpZ25BY2Nlc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmRHZXRCYWNrZW5kRG9tYWluKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkVudHJ5KTsKKyAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsODsKKworICAgIENvbnRyb2xsZXItPkNo
YW5uZWwgPSBYRU5CVVNfRVZUQ0hOKE9wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVNfRVZUQ0hOX1RZUEVfVU5CT1VORCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyRXZ0Y2huQ2Fs
bGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEJh
Y2tlbmREb21haW4oRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZBTFNFKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CisgICAg
aWYgKENvbnRyb2xsZXItPkNoYW5uZWwgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsOTsKKwor
ICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAorICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXIt
PkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkNoYW5uZWws
CisgICAgICAgICAgICAgICAgICBGQUxTRSk7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUco
UmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5EZWJ1Z0lu
dGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgX19NT0RVTEVfXyAifENPTlRST0xM
RVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyRGVidWdDYWxsYmFjaywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNvbnRyb2xsZXItPkRlYnVnQ2FsbGJhY2spOworICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwxMDsKKworICAgIF9fQ29udHJvbGxlckFjcXVp
cmVMb2NrKENvbnRyb2xsZXIpOworCisgICAgQ29udHJvbGxlci0+Q29ubmVjdGVkID0gVFJVRTsK
KworICAgIGlmIChLZUluc2VydFF1ZXVlRHBjKCZDb250cm9sbGVyLT5EcGMsIE5VTEwsIE5VTEwp
KQorICAgICAgICBDb250cm9sbGVyLT5EcGNzKys7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNl
TG9jayhDb250cm9sbGVyKTsKKworZG9uZToKKyAgICBUcmFjZSgiPD09PT1cbiIpOworICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDEwOgorICAgIEVycm9yKCJmYWlsMTBcbiIpOwor
CisgICAgWEVOQlVTX0VWVENITihDbG9zZSwKKyAgICAgICAgICAgICAgICAgICZDb250cm9sbGVy
LT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5DaGFubmVs
KTsKKyAgICBDb250cm9sbGVyLT5DaGFubmVsID0gTlVMTDsKKworICAgIENvbnRyb2xsZXItPkV2
ZW50cyA9IDA7CisgICAgQ29udHJvbGxlci0+RHBjcyA9IDA7CisKK2ZhaWw5OgorICAgIEVycm9y
KCJmYWlsOVxuIik7CisKKyAgICAoVk9JRCkgWEVOQlVTX0dOVFRBQihSZXZva2VGb3JlaWduQWNj
ZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBD
b250cm9sbGVyLT5FbnRyeSk7CisgICAgQ29udHJvbGxlci0+RW50cnkgPSBOVUxMOworCitmYWls
ODoKKyAgICBFcnJvcigiZmFpbDhcbiIpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29udHJvbGxl
ci0+RnJvbnQsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKHN0cnVjdCB4ZW5fbmV0aWZfY3Ry
bF9mcm9udF9yaW5nKSk7CisgICAgUnRsWmVyb01lbW9yeShDb250cm9sbGVyLT5TaGFyZWQsIFBB
R0VfU0laRSk7CisKKyAgICBDb250cm9sbGVyLT5TaGFyZWQgPSBOVUxMOworICAgIF9fRnJlZVBh
Z2UoQ29udHJvbGxlci0+TWRsKTsKKyAgICBDb250cm9sbGVyLT5NZGwgPSBOVUxMOworCitmYWls
NzoKKyAgICBFcnJvcigiZmFpbDdcbiIpOworCisgICAgWEVOQlVTX0dOVFRBQihEZXN0cm95Q2Fj
aGUsCisgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUpOworICAgIENvbnRyb2xsZXIt
PkdudHRhYkNhY2hlID0gTlVMTDsKKworZmFpbDY6CisgICAgRXJyb3IoImZhaWw2XG4iKTsKKwor
ZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKKworICAgIFhFTkJVU19HTlRUQUIoUmVsZWFz
ZSwgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSk7CisKK2ZhaWw0OgorICAgIEVycm9yKCJm
YWlsNFxuIik7CisKKyAgICBYRU5CVVNfRVZUQ0hOKFJlbGVhc2UsICZDb250cm9sbGVyLT5FdnRj
aG5JbnRlcmZhY2UpOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCisgICAgWEVO
QlVTX1NUT1JFKFJlbGVhc2UsICZDb250cm9sbGVyLT5TdG9yZUludGVyZmFjZSk7CisKK2ZhaWwy
OgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKKyAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJkNv
bnRyb2xsZXItPkRlYnVnSW50ZXJmYWNlKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICgl
MDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitD
b250cm9sbGVyU3RvcmVXcml0ZSgKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAg
IENvbnRyb2xsZXIsCisgICAgSU4gIFBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJT04gICBUcmFuc2Fj
dGlvbgorICAgICkKK3sKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250
ZW5kOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydDsKKyAgICBOVFNU
QVRVUyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBGcm9udGVuZCA9IENvbnRy
b2xsZXItPkZyb250ZW5kOworCisgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFByaW50ZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPlN0b3JlSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgRnJvbnRlbmRHZXRQYXRoKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgImN0cmwtcmluZy1yZWYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiJXUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBYRU5CVVNfR05UVEFCKEdldFJlZmVyZW5jZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50
ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xs
ZXItPkVudHJ5KSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8g
ZmFpbDE7CisKKyAgICBQb3J0ID0gWEVOQlVTX0VWVENITihHZXRQb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29udHJvbGxlci0+Q2hhbm5lbCk7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNf
U1RPUkUoUHJpbnRmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+U3Rv
cmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXZlbnQtY2hhbm5lbC1jdHJsIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiV1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydCk7CisgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKK2RvbmU6Cisg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIp
OworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAg
cmV0dXJuIHN0YXR1czsKK30KKworVk9JRAorQ29udHJvbGxlckVuYWJsZSgKKyAgICBJTiAgUFhF
TlZJRl9DT05UUk9MTEVSICAgICAgQ29udHJvbGxlcgorICAgICkKK3sKKyAgICBUcmFjZSgiPT09
PT5cbiIpOworCisgICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAg
ICBDb250cm9sbGVyLT5FbmFibGVkID0gVFJVRTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworCisgICAgVHJhY2UoIjw9PT09XG4iKTsKK30KKworVk9JRAorQ29u
dHJvbGxlckRpc2FibGUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgIENvbnRyb2xs
ZXIKKyAgICApCit7CisgICAgVHJhY2UoIj09PT0+XG4iKTsKKworICAgIF9fQ29udHJvbGxlckFj
cXVpcmVMb2NrKENvbnRyb2xsZXIpOworCisgICAgQ29udHJvbGxlci0+RW5hYmxlZCA9IEZBTFNF
OworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBUcmFj
ZSgiPD09PT1cbiIpOworfQorCitWT0lECitDb250cm9sbGVyRGlzY29ubmVjdCgKKyAgICBJTiAg
UFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQoreworICAgIFRyYWNlKCI9PT09
PlxuIik7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKKworICAg
IGlmICghQ29udHJvbGxlci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBD
b250cm9sbGVyLT5Db25uZWN0ZWQgPSBGQUxTRTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VM
b2NrKENvbnRyb2xsZXIpOworCisgICAgWEVOQlVTX0RFQlVHKERlcmVnaXN0ZXIsCisgICAgICAg
ICAgICAgICAgICZDb250cm9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAg
Q29udHJvbGxlci0+RGVidWdDYWxsYmFjayk7CisgICAgQ29udHJvbGxlci0+RGVidWdDYWxsYmFj
ayA9IE5VTEw7CisKKyAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLAorICAgICAgICAgICAgICAgICAg
JkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIENvbnRyb2xs
ZXItPkNoYW5uZWwpOworICAgIENvbnRyb2xsZXItPkNoYW5uZWwgPSBOVUxMOworCisgICAgQ29u
dHJvbGxlci0+RXZlbnRzID0gMDsKKyAgICBDb250cm9sbGVyLT5EcGNzID0gMDsKKworICAgIChW
T0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkVudHJ5KTsKKyAg
ICBDb250cm9sbGVyLT5FbnRyeSA9IE5VTEw7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZDb250cm9s
bGVyLT5Gcm9udCwKKyAgICAgICAgICAgICAgICAgIHNpemVvZiAoc3RydWN0IHhlbl9uZXRpZl9j
dHJsX2Zyb250X3JpbmcpKTsKKyAgICBSdGxaZXJvTWVtb3J5KENvbnRyb2xsZXItPlNoYXJlZCwg
UEFHRV9TSVpFKTsKKworICAgIENvbnRyb2xsZXItPlNoYXJlZCA9IE5VTEw7CisgICAgX19GcmVl
UGFnZShDb250cm9sbGVyLT5NZGwpOworICAgIENvbnRyb2xsZXItPk1kbCA9IE5VTEw7CisKKyAg
ICBYRU5CVVNfR05UVEFCKERlc3Ryb3lDYWNoZSwKKyAgICAgICAgICAgICAgICAgICZDb250cm9s
bGVyLT5HbnR0YWJJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0
YWJDYWNoZSk7CisgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUgPSBOVUxMOworCisgICAgWEVO
QlVTX0dOVFRBQihSZWxlYXNlLCAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlKTsKKworICAg
IFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJkNvbnRyb2xsZXItPkV2dGNobkludGVyZmFjZSk7CisK
KyAgICBYRU5CVVNfU1RPUkUoUmVsZWFzZSwgJkNvbnRyb2xsZXItPlN0b3JlSW50ZXJmYWNlKTsK
KworICAgIFhFTkJVU19ERUJVRyhSZWxlYXNlLCAmQ29udHJvbGxlci0+RGVidWdJbnRlcmZhY2Up
OworCitkb25lOgorICAgIFRyYWNlKCI8PT09PVxuIik7Cit9CisKK1ZPSUQKK0NvbnRyb2xsZXJU
ZWFyZG93bigKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKQor
eworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVWRUwpOwor
ICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKKyAgICBDb250cm9sbGVyLT5Gcm9udGVuZCA9IE5V
TEw7CisKKyAgICBUaHJlYWRBbGVydChDb250cm9sbGVyLT5XYXRjaGRvZ1RocmVhZCk7CisgICAg
VGhyZWFkSm9pbihDb250cm9sbGVyLT5XYXRjaGRvZ1RocmVhZCk7CisgICAgQ29udHJvbGxlci0+
V2F0Y2hkb2dUaHJlYWQgPSBOVUxMOworCisgICAgQ29udHJvbGxlci0+UmVxdWVzdElkID0gMDsK
KworICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPkRwYywKKyAgICAgICAgICAgICAgICAg
IHNpemVvZiAoS0RQQykpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29udHJvbGxlci0+TG9jaywK
KyAgICAgICAgICAgICAgICAgIHNpemVvZiAoS1NQSU5fTE9DSykpOworCisgICAgUnRsWmVyb01l
bW9yeSgmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6
ZW9mIChYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSkpOworCisgICAgUnRsWmVyb01lbW9yeSgmQ29u
dHJvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJV
U19TVE9SRV9JTlRFUkZBQ0UpKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRyb2xsZXItPkRl
YnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfREVCVUdfSU5U
RVJGQUNFKSk7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZDb250cm9sbGVyLT5FdnRjaG5JbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7
CisKKyAgICBBU1NFUlQoSXNaZXJvTWVtb3J5KENvbnRyb2xsZXIsIHNpemVvZiAoWEVOVklGX0NP
TlRST0xMRVIpKSk7CisgICAgX19Db250cm9sbGVyRnJlZShDb250cm9sbGVyKTsKK30KKworTlRT
VEFUVVMKK0NvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKAorICAgIElOICBQWEVOVklGX0NPTlRS
T0xMRVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgQWxnb3JpdGht
CisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kOworICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIEZyb250ZW5kID0gQ29udHJvbGxl
ci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsK
KworICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOworICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3RhdHVzID0gQ29udHJv
bGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHN0
YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29udHJv
bGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
OworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigi
ZmFpbDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMp
OworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1
cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworQ29udHJvbGxlckdldEhhc2hGbGFncygKKyAgICBJ
TiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBQVUxPTkcgICAgICAg
ICAgICAgIEZsYWdzCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgIEZyb250
ZW5kOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIEZyb250ZW5k
ID0gQ29udHJvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhD
b250cm9sbGVyKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOworICAgIGlm
ICghQ29udHJvbGxlci0+RW5hYmxlZCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIHN0YXR1
cyA9IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9HRVRfSEFTSF9GTEFHUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBzdGF0
dXMgPSBDb250cm9sbGVyR2V0UmVzcG9uc2UoQ29udHJvbGxlciwgRmxhZ3MpOworICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgX19Db250cm9s
bGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7
CisKK2ZhaWwzOgorICAgIEVycm9yKCJmYWlsM1xuIik7CisKK2ZhaWwyOgorICAgIEVycm9yKCJm
YWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9jayhDb250cm9sbGVyKTsKKworICAgIHJldHVy
biBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitDb250cm9sbGVyU2V0SGFzaEZsYWdzKAorICAgIElO
ICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAg
ICAgICAgRmxhZ3MKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRl
bmQ7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOworCisgICAgRnJvbnRlbmQg
PSBDb250cm9sbGVyLT5Gcm9udGVuZDsKKworICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENv
bnRyb2xsZXIpOworCisgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7CisgICAgaWYg
KCFDb250cm9sbGVyLT5Db25uZWN0ZWQpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBzdGF0
dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsK
KyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAg
IHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBp
ZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29u
dHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOworCitmYWlsMzoKKyAgICBFcnJvcigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJv
cigiZmFpbDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0
dXMpOworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBy
ZXR1cm4gc3RhdHVzOworfQorCitOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hLZXkoCisgICAg
SU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAgUFVDSEFSICAgICAg
ICAgICAgICBLZXksCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sK
KyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBQTURMICAgICAgICAg
ICAgICAgICAgICBNZGw7CisgICAgUFVDSEFSICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAg
IFBGTl9OVU1CRVIgICAgICAgICAgICAgIFBmbjsKKyAgICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAg
ICBFbnRyeTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9u
dGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisgICAgX19Db250cm9sbGVyQWNxdWlyZUxv
Y2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAg
ICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBN
ZGwgPSBfX0FsbG9jYXRlUGFnZSgpOworCisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsK
KyAgICBpZiAoQ29udHJvbGxlci0+TWRsID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDI7CisK
KyAgICBCdWZmZXIgPSBNbUdldFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKE1kbCwgTm9ybWFsUGFn
ZVByaW9yaXR5KTsKKyAgICBBU1NFUlQoQnVmZmVyICE9IE5VTEwpOworCisgICAgUnRsQ29weU1l
bW9yeShCdWZmZXIsIEtleSwgU2l6ZSk7CisKKyAgICBQZm4gPSBNbUdldE1kbFBmbkFycmF5KE1k
bClbMF07CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfR05UVEFCKFBlcm1pdEZvcmVpZ25BY2Nlc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmRHZXRCYWNrZW5kRG9tYWluKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkVudHJ5KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJQdXRSZXF1
ZXN0KENvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05F
VElGX0NUUkxfVFlQRV9TRVRfSEFTSF9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWEVOQlVTX0dOVFRBQihHZXRSZWZlcmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAg
ICAgIGdvdG8gZmFpbDQ7CisKKyAgICBzdGF0dXMgPSBDb250cm9sbGVyR2V0UmVzcG9uc2UoQ29u
dHJvbGxlciwgTlVMTCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdv
dG8gZmFpbDU7CisKKyAgICAoVk9JRCkgWEVOQlVTX0dOVFRBQihSZXZva2VGb3JlaWduQWNjZXNz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlci0+R250dGFiQ2FjaGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBFbnRy
eSk7CisKKyAgICBfX0ZyZWVQYWdlKE1kbCk7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9j
ayhDb250cm9sbGVyKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDU6Cisg
ICAgRXJyb3IoImZhaWw1XG4iKTsKKworZmFpbDQ6CisgICAgRXJyb3IoImZhaWw0XG4iKTsKKwor
ICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsKKworZmFpbDM6
CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKworICAgIF9fRnJlZVBhZ2UoTWRsKTsKKworZmFpbDI6
CisgICAgRXJyb3IoImZhaWwyXG4iKTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4
KVxuIiwgc3RhdHVzKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIp
OworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK0NvbnRyb2xsZXJHZXRIYXNo
TWFwcGluZ1NpemUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAg
ICBJTiAgUFVMT05HICAgICAgICAgICAgICBTaXplCisgICAgKQoreworICAgIFBYRU5WSUZfRlJP
TlRFTkQgICAgICAgIEZyb250ZW5kOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1
czsKKworICAgIEZyb250ZW5kID0gQ29udHJvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBfX0NvbnRy
b2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT1Rf
U1VQUE9SVEVEOworICAgIGlmICghQ29udHJvbGxlci0+RW5hYmxlZCkKKyAgICAgICAgZ290byBm
YWlsMTsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9HRVRf
SEFTSF9NQVBQSU5HX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDApOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAg
ICBnb3RvIGZhaWwyOworCisgICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENvbnRy
b2xsZXIsIFNpemUpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3Rv
IGZhaWwzOworCisgICAgX19Db250cm9sbGVyUmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwzOgorICAgIEVycm9yKCJmYWlsM1xuIik7
CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKK2ZhaWwxOgorICAgIEVycm9yKCJm
YWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBfX0NvbnRyb2xsZXJSZWxlYXNlTG9jayhD
b250cm9sbGVyKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitDb250cm9s
bGVyU2V0SGFzaE1hcHBpbmdTaXplKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRy
b2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAgICkKK3sKKyAgICBQ
WEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVuZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisg
ICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBT
VEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAg
ICAgIGdvdG8gZmFpbDE7CisKKyAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250
cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJM
X1RZUEVfU0VUX0hBU0hfTUFQUElOR19TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRS
ZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsMzsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRy
b2xsZXIpOworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMzoKKyAgICBFcnJv
cigiZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCitmYWlsMToK
KyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgX19Db250cm9sbGVy
UmVsZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitOVFNU
QVRVUworQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAorICAgIElOICBQWEVOVklGX0NPTlRST0xM
RVIgIENvbnRyb2xsZXIsCisgICAgSU4gIFBVTE9ORyAgICAgICAgICAgICAgTWFwcGluZywKKyAg
ICBJTiAgVUxPTkcgICAgICAgICAgICAgICBTaXplLAorICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgIE9mZnNldAorICAgICkKK3sKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICBGcm9udGVu
ZDsKKyAgICBQTURMICAgICAgICAgICAgICAgICAgICBNZGw7CisgICAgUFVDSEFSICAgICAgICAg
ICAgICAgICAgQnVmZmVyOworICAgIFBGTl9OVU1CRVIgICAgICAgICAgICAgIFBmbjsKKyAgICBQ
WEVOQlVTX0dOVFRBQl9FTlRSWSAgICBFbnRyeTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAg
ICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IENvbnRyb2xsZXItPkZyb250ZW5kOworCisgICAg
X19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CisKKyAgICBzdGF0dXMgPSBTVEFU
VVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgICAg
IGdvdG8gZmFpbDE7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7Cisg
ICAgaWYgKFNpemUgKiBzaXplb2YgKFVMT05HKSA+IFBBR0VfU0laRSkKKyAgICAgICAgZ290byBm
YWlsMjsKKworICAgIE1kbCA9IF9fQWxsb2NhdGVQYWdlKCk7CisKKyAgICBzdGF0dXMgPSBTVEFU
VVNfTk9fTUVNT1JZOworICAgIGlmIChDb250cm9sbGVyLT5NZGwgPT0gTlVMTCkKKyAgICAgICAg
Z290byBmYWlsMzsKKworICAgIEJ1ZmZlciA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUo
TWRsLCBOb3JtYWxQYWdlUHJpb3JpdHkpOworICAgIEFTU0VSVChCdWZmZXIgIT0gTlVMTCk7CisK
KyAgICBSdGxDb3B5TWVtb3J5KEJ1ZmZlciwgTWFwcGluZywgU2l6ZSAqIHNpemVvZiAoVUxPTkcp
KTsKKworICAgIFBmbiA9IE1tR2V0TWRsUGZuQXJyYXkoTWRsKVswXTsKKworICAgIHN0YXR1cyA9
IFhFTkJVU19HTlRUQUIoUGVybWl0Rm9yZWlnbkFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZDb250cm9sbGVyLT5HbnR0YWJJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEJhY2tlbmRE
b21haW4oRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUGZuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAm
RW50cnkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw0
OworCisgICAgc3RhdHVzID0gQ29udHJvbGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNI
X01BUFBJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0dOVFRB
QihHZXRSZWZlcmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
T2Zmc2V0KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
NTsKKworICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxM
KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNjsKKwor
ICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsKKworICAgIF9f
RnJlZVBhZ2UoTWRsKTsKKworICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIp
OworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsNjoKKyAgICBFcnJvcigiZmFp
bDZcbiIpOworCitmYWlsNToKKyAgICBFcnJvcigiZmFpbDVcbiIpOworCisgICAgKFZPSUQpIFhF
TkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
IENvbnRyb2xsZXItPkdudHRhYkNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkpOworCitmYWlsNDoKKyAgICBFcnJvcigi
ZmFpbDRcbiIpOworCisgICAgX19GcmVlUGFnZShNZGwpOworCitmYWlsMzoKKyAgICBFcnJvcigi
ZmFpbDNcbiIpOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCitmYWlsMToKKyAg
ICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgX19Db250cm9sbGVyUmVs
ZWFzZUxvY2soQ29udHJvbGxlcik7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmggYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTdiNjg4Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICog
d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICog
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBfWEVOVklGX0NPTlRST0xMRVJfSAorI2RlZmluZSBfWEVOVklGX0NPTlRST0xMRVJfSAor
CisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHZpZl9pbnRlcmZhY2UuaD4KKworI2lu
Y2x1ZGUgImZyb250ZW5kLmgiCisKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfQ09OVFJPTExFUiBY
RU5WSUZfQ09OVFJPTExFUiwgKlBYRU5WSUZfQ09OVFJPTExFUjsKKworZXh0ZXJuIE5UU1RBVFVT
CitDb250cm9sbGVySW5pdGlhbGl6ZSgKKyAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9u
dGVuZCwKKyAgICBPVVQgUFhFTlZJRl9DT05UUk9MTEVSICAqQ29udHJvbGxlcgorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlckNvbm5lY3QoCisgICAgSU4gIFBYRU5WSUZfQ09O
VFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisKK2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxl
clN0b3JlV3JpdGUoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgICAgICBDb250cm9s
bGVyLAorICAgIElOICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb24KKyAg
ICApOworCitleHRlcm4gVk9JRAorQ29udHJvbGxlckVuYWJsZSgKKyAgICBJTiAgUFhFTlZJRl9D
T05UUk9MTEVSICBDb250cm9sbGVyCisgICAgKTsKKworZXh0ZXJuIFZPSUQKK0NvbnRyb2xsZXJE
aXNhYmxlKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIgIENvbnRyb2xsZXIKKyAgICApOwor
CitleHRlcm4gVk9JRAorQ29udHJvbGxlckRpc2Nvbm5lY3QoCisgICAgSU4gIFBYRU5WSUZfQ09O
VFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisKK2V4dGVybiBWT0lECitDb250cm9sbGVyVGVh
cmRvd24oCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlcgorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hBbGdvcml0aG0oCisgICAgSU4gIFBY
RU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICBBbGdvcml0aG0KKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0NvbnRyb2xsZXJHZXRIYXNo
RmxhZ3MoCisgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgQ29udHJvbGxlciwKKyAgICBJTiAg
UFVMT05HICAgICAgICAgICAgICBGbGFncworICAgICk7CisKK2V4dGVybiBOVFNUQVRVUworQ29u
dHJvbGxlclNldEhhc2hGbGFncygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9s
bGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIEZsYWdzCisgICAgKTsKKworZXh0ZXJu
IE5UU1RBVFVTCitDb250cm9sbGVyU2V0SGFzaEtleSgKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9M
TEVSICBDb250cm9sbGVyLAorICAgIElOICBQVUNIQVIgICAgICAgICAgICAgIEtleSwKKyAgICBJ
TiAgVUxPTkcgICAgICAgICAgICAgICBTaXplCisgICAgKTsKKworZXh0ZXJuIE5UU1RBVFVTCitD
b250cm9sbGVyR2V0SGFzaE1hcHBpbmdTaXplKAorICAgIElOICBQWEVOVklGX0NPTlRST0xMRVIg
IENvbnRyb2xsZXIsCisgICAgSU4gIFBVTE9ORyAgICAgICAgICAgICAgU2l6ZQorICAgICk7CisK
K2V4dGVybiBOVFNUQVRVUworQ29udHJvbGxlclNldEhhc2hNYXBwaW5nU2l6ZSgKKyAgICBJTiAg
UFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgIFNpemUKKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK0NvbnRyb2xsZXJTZXRIYXNoTWFw
cGluZygKKyAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICBDb250cm9sbGVyLAorICAgIElOICBQ
VUxPTkcgICAgICAgICAgICAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAg
U2l6ZSwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBPZmZzZXQKKyAgICApOworCisKKyNl
bmRpZiAgLy8gX1hFTlZJRl9DT05UUk9MTEVSX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwppbmRleCA1YTI5NzM2Li5lOTUwNTUyIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmMKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVu
ZC5jCkBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCBfWEVOVklGX0ZST05URU5EIHsKICAgICBQWEVO
VklGX01BQyAgICAgICAgICAgICAgICAgTWFjOwogICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgICAg
ICAgICBSZWNlaXZlcjsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSICAgICAgICAgVHJhbnNtaXR0
ZXI7CisgICAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAgIENvbnRyb2xsZXI7CiAKICAgICBY
RU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAgRGVidWdJbnRlcmZhY2U7CiAgICAgWEVOQlVTX1NV
U1BFTkRfSU5URVJGQUNFICAgIFN1c3BlbmRJbnRlcmZhY2U7CkBAIC0zMjMsOCArMzI0LDkgQEAg
RnJvbnRlbmRHZXQgIyMgX0Z1bmN0aW9uKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiB9CiAKIERFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oTWFjLCBQWEVOVklGX01BQykKLURF
RklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oVHJhbnNtaXR0ZXIsIFBYRU5WSUZfVFJBTlNNSVRU
RVIpCiBERUZJTkVfRlJPTlRFTkRfR0VUX0ZVTkNUSU9OKFJlY2VpdmVyLCBQWEVOVklGX1JFQ0VJ
VkVSKQorREVGSU5FX0ZST05URU5EX0dFVF9GVU5DVElPTihUcmFuc21pdHRlciwgUFhFTlZJRl9U
UkFOU01JVFRFUikKK0RFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oQ29udHJvbGxlciwgUFhF
TlZJRl9DT05UUk9MTEVSKQogCiBzdGF0aWMgQk9PTEVBTgogRnJvbnRlbmRJc09ubGluZSgKQEAg
LTE4MzQsNiArMTgzNiwxMCBAQCBGcm9udGVuZENvbm5lY3QoCiAgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDY7CiAKKyAgICBzdGF0dXMgPSBDb250cm9sbGVy
Q29ubmVjdChfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCkpOworICAgIGlmICghTlRf
U1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw3OworCiAgICAgQXR0ZW1wdCA9IDA7
CiAgICAgZG8gewogICAgICAgICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rp
b247CkBAIC0xODU0LDYgKzE4NjAsMTEgQEAgRnJvbnRlbmRDb25uZWN0KAogICAgICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAgICAgICAgICAgIGdvdG8gYWJvcnQ7CiAKKyAgICAgICAg
c3RhdHVzID0gQ29udHJvbGxlclN0b3JlV3JpdGUoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJv
bnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlv
bik7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICAgICAgZ290byBh
Ym9ydDsKKwogICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLApAQCAtMTg4Miw3ICsxODkzLDcgQEAg
YWJvcnQ6CiAgICAgfSB3aGlsZSAoc3RhdHVzID09IFNUQVRVU19SRVRSWSk7CiAKICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNzsKKyAgICAgICAgZ290byBm
YWlsODsKIAogICAgIFN0YXRlID0gWGVuYnVzU3RhdGVVbmtub3duOwogICAgIHdoaWxlIChTdGF0
ZSAhPSBYZW5idXNTdGF0ZUNvbm5lY3RlZCkgewpAQCAtMTkyMCwxNiArMTkzMSwyMyBAQCBhYm9y
dDoKIAogICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAgICAgaWYgKFN0YXRlICE9
IFhlbmJ1c1N0YXRlQ29ubmVjdGVkKQotICAgICAgICBnb3RvIGZhaWw4OworICAgICAgICBnb3Rv
IGZhaWw5OworCisgICAgQ29udHJvbGxlckVuYWJsZShfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihG
cm9udGVuZCkpOwogCiAgICAgVGhyZWFkV2FrZShGcm9udGVuZC0+TWliVGhyZWFkKTsKIAogICAg
IFRyYWNlKCI8PT09PVxuIik7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWlsOToK
KyAgICBFcnJvcigiZmFpbDlcbiIpOworCiBmYWlsODoKICAgICBFcnJvcigiZmFpbDhcbiIpOwog
CisgICAgQ29udHJvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRl
bmQpKTsKKwogZmFpbDc6CiAgICAgRXJyb3IoImZhaWw3XG4iKTsKIApAQCAtMTk4Miw2ICsyMDAw
LDkgQEAgRnJvbnRlbmREaXNjb25uZWN0KAogewogICAgIFRyYWNlKCI9PT09PlxuIik7CiAKKyAg
ICBDb250cm9sbGVyRGlzYWJsZShfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCkpOwor
CisgICAgQ29udHJvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRl
bmQpKTsKICAgICBUcmFuc21pdHRlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVy
KEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNjb25uZWN0KF9fRnJvbnRlbmRHZXRSZWNlaXZl
cihGcm9udGVuZCkpOwogICAgIE1hY0Rpc2Nvbm5lY3QoX19Gcm9udGVuZEdldE1hYyhGcm9udGVu
ZCkpOwpAQCAtMjQ1MywzMiArMjQ3NCw0MCBAQCBGcm9udGVuZEluaXRpYWxpemUoCiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDg7CiAKKyAgICBzdGF0dXMg
PSBDb250cm9sbGVySW5pdGlhbGl6ZSgqRnJvbnRlbmQsICYoKkZyb250ZW5kKS0+Q29udHJvbGxl
cik7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDk7CisK
ICAgICBLZUluaXRpYWxpemVFdmVudCgmKCpGcm9udGVuZCktPkVqZWN0RXZlbnQsIE5vdGlmaWNh
dGlvbkV2ZW50LCBGQUxTRSk7CiAKICAgICBzdGF0dXMgPSBUaHJlYWRDcmVhdGUoRnJvbnRlbmRF
amVjdCwgKkZyb250ZW5kLCAmKCpGcm9udGVuZCktPkVqZWN0VGhyZWFkKTsKICAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsOTsKKyAgICAgICAgZ290byBmYWls
MTA7CiAKICAgICBzdGF0dXMgPSBUaHJlYWRDcmVhdGUoRnJvbnRlbmRNaWIsICpGcm9udGVuZCwg
JigqRnJvbnRlbmQpLT5NaWJUaHJlYWQpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQot
ICAgICAgICBnb3RvIGZhaWwxMDsKKyAgICAgICAgZ290byBmYWlsMTE7CiAKICAgICBUcmFjZSgi
PD09PT1cbiIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMTA6Ci0gICAg
RXJyb3IoImZhaWwxMFxuIik7CitmYWlsMTE6CisgICAgRXJyb3IoImZhaWwxMVxuIik7CiAKICAg
ICBUaHJlYWRBbGVydCgoKkZyb250ZW5kKS0+RWplY3RUaHJlYWQpOwogICAgIFRocmVhZEpvaW4o
KCpGcm9udGVuZCktPkVqZWN0VGhyZWFkKTsKICAgICAoKkZyb250ZW5kKS0+RWplY3RUaHJlYWQg
PSBOVUxMOwogCi1mYWlsOToKLSAgICBFcnJvcigiZmFpbDlcbiIpOworZmFpbDEwOgorICAgIEVy
cm9yKCJmYWlsMTBcbiIpOwogCiAgICAgUnRsWmVyb01lbW9yeSgmKCpGcm9udGVuZCktPkVqZWN0
RXZlbnQsIHNpemVvZiAoS0VWRU5UKSk7CiAKKyAgICBDb250cm9sbGVyVGVhcmRvd24oX19Gcm9u
dGVuZEdldENvbnRyb2xsZXIoKkZyb250ZW5kKSk7CisgICAgKCpGcm9udGVuZCktPkNvbnRyb2xs
ZXIgPSBOVUxMOworCitmYWlsOToKICAgICBUcmFuc21pdHRlclRlYXJkb3duKF9fRnJvbnRlbmRH
ZXRUcmFuc21pdHRlcigqRnJvbnRlbmQpKTsKICAgICAoKkZyb250ZW5kKS0+VHJhbnNtaXR0ZXIg
PSBOVUxMOwogCkBAIC0yNTc1LDYgKzI2MDQsOSBAQCBGcm9udGVuZFRlYXJkb3duKAogCiAgICAg
UnRsWmVyb01lbW9yeSgmRnJvbnRlbmQtPkVqZWN0RXZlbnQsIHNpemVvZiAoS0VWRU5UKSk7CiAK
KyAgICBDb250cm9sbGVyVGVhcmRvd24oX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRlbmQp
KTsKKyAgICBGcm9udGVuZC0+Q29udHJvbGxlciA9IE5VTEw7CisKICAgICBUcmFuc21pdHRlclRl
YXJkb3duKF9fRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCkpOwogICAgIEZyb250ZW5k
LT5UcmFuc21pdHRlciA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJvbnRlbmQu
aCBiL3NyYy94ZW52aWYvZnJvbnRlbmQuaAppbmRleCA5Y2FjNDEyLi42NWRhYWM0IDEwMDY0NAot
LS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmgKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5oCkBA
IC0xNjUsNiArMTY1LDEzIEBAIEZyb250ZW5kR2V0VHJhbnNtaXR0ZXIoCiAgICAgSU4gIFBYRU5W
SUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKICAgICApOwogCisjaW5jbHVkZSAiY29udHJvbGxlci5o
IgorCitleHRlcm4gUFhFTlZJRl9DT05UUk9MTEVSCitGcm9udGVuZEdldENvbnRyb2xsZXIoCisg
ICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKKyAgICApOworCiBleHRlcm4gVk9J
RAogRnJvbnRlbmRRdWVyeVN0YXRpc3RpYygKICAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICAg
ICAgRnJvbnRlbmQsCmRpZmYgLS1naXQgYS92czIwMTIveGVudmlmL3hlbnZpZi52Y3hwcm9qIGIv
dnMyMDEyL3hlbnZpZi94ZW52aWYudmN4cHJvagppbmRleCBlM2RmMzA5Li4xNzBhYjUzIDEwMDY0
NAotLS0gYS92czIwMTIveGVudmlmL3hlbnZpZi52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW52aWYv
eGVudmlmLnZjeHByb2oKQEAgLTgwLDYgKzgwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uLy4uL3NyYy94ZW52aWYvc2V0dGluZ3MuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uLy4uL3NyYy94ZW52aWYvdGhyZWFkLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Li8uLi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLi8uLi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uLy4uL3NyYy94ZW52aWYvdmlmLmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdy
b3VwPgpkaWZmIC0tZ2l0IGEvdnMyMDEzL3hlbnZpZi94ZW52aWYudmN4cHJvaiBiL3ZzMjAxMy94
ZW52aWYveGVudmlmLnZjeHByb2oKaW5kZXggNjEyNjVhMi4uOWQxZGJhMyAxMDA2NDQKLS0tIGEv
dnMyMDEzL3hlbnZpZi94ZW52aWYudmN4cHJvagorKysgYi92czIwMTMveGVudmlmL3hlbnZpZi52
Y3hwcm9qCkBAIC04Myw2ICs4Myw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9z
cmMveGVudmlmL3NldHRpbmdzLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9z
cmMveGVudmlmL3RocmVhZC5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3Jj
L3hlbnZpZi90cmFuc21pdHRlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4v
c3JjL3hlbnZpZi9jb250cm9sbGVyLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8u
Li9zcmMveGVudmlmL3ZpZi5jIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLS0g
CjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93
aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWX-0006c8-V3; Tue, 17 May 2016 16:07:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWW-0006aQ-Cv
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:08 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 B3/F0-23864-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkorvK0Tr
 coO+whsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNePRpKmPB7qSKn20nGBsYr9l3MXJxCAnMZpS4
 +G8nO4jDIvCSReLOhe/MII6EQD+rxOQzB9i6GDmBnBiJ1ptroOwqiX+rt4PZQgKKEs3XLrBDj
 FrGJDH/yT5WkASbgLrE7feL2SEa7CQ+zboJZosIqEpcW34MrJlZQEvi4YZ5jCC2sICjROf6/y
 wgNgtQze3fq5lBbF4Bd4mjk74xQsyRk9g7eTVYDaeAh8Ss13/YIY5wl2jffp1tAqPgAkaGVYz
 qxalFZalFuoZ6SUWZ6RkluYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiBAccABDsYl390OsQo
 ycGkJMp7wcQ6XIgvKT+lMiOxOCO+qDQntfgQowwHh5IEb4MDUE6wKDU9tSItMwcY+jBpCQ4eJ
 RFeO5A0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ83aDFAmAFGWU5sGNgMXhJUZZKWFeRq
 CjhHgKUotyM0tQ5V8xinMwKgnzbgaZwpOZVwK36RXQEUxAR0wwswA5oiQRISXVwLhkzfGDK3d
 MDzOryJ9dYNvPFqLYeEVQu/Qx+7I1Sd9En6m9OmrwVDDhjprUurqWXNEz05ao7vq5M/6iMXeB
 vJLcnvq8ROFrnUe8HmkkfE9S9C40nuS57Fiw+195HdPVtyxW7dv3MjCgfmu50t3Si92r7O9t9
 NvK0td0Seaq3bl1DCoTi6RtXiqxFGckGmoxFxUnAgA9eWiAvgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1463501226!39993296!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5012 invoked from network); 17 May 2016 16:07:06 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-13.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:06 -0000
Received: by mail-wm0-f68.google.com with SMTP id w143so5828673wmw.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=kQMQR+MiiyuHrYGdHK36BXHu4EflA6ZoYgXEXnvv5Pc=;
 b=yelERxT03v8ZZVxArPLvoEDxOhzo11EEnw0FG21Af47fuLYzeINdYpYgI9odxZVuIV
 5HBqRetnJUNrBSampmBpI5kfmOUcVWgqOdGXD6GyYh7QFN5uoCcAW8V9g1LSc4StEdop
 E8VHMt4/+KcP2r//Zxq1IuiTtrS3U7ENrUaqgJRmxxFU2NqAQ7d5/MFTYOEqfKoHYFp6
 2kq50QHYbF+hl0m07UK3+KMezmlWCx2WiSUx8GG+recyWHxm/nTauaN1g/FAWlpZERkR
 jAkBB64n0dUlc7soA6prLmssKQt2/P8VcxOp6ap++UnH1GZObXOpepTvWo/145EBl9LP
 PrEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=kQMQR+MiiyuHrYGdHK36BXHu4EflA6ZoYgXEXnvv5Pc=;
 b=Q/ifcIocYadh43r5o/+gD62/oH84/HmN1RN+RhnvQRVQKx8WnMSUr2/GWqn5PF7Qr/
 roTGCXPJLtAicqikeC5WwFOYIxwhos+gH+PhK0X9oC/+ytg52KrWWGCxdEgpcvlSQ20P
 llFaNYS7QXqBAezk+fOSH23DONsjWOfAUWuSiqZMfswNOk/a6qT7RQS06JJjDmhJuTkk
 sD/gztmTzEQWFx0R1l8aceJZPdH3MXg1s9VxG3vdRPutDmszvu18NrbQsJjIeLwnBG3h
 yxFHlbt1kUPkDoy8QGtlPDmC8o083dVcRuntqtniTrysrQqICJSWO3FueMiAMEZ495Ln
 0NMg==
X-Gm-Message-State: AOPr4FWEO7z408IY4IxJoqZbjA1I4pG+VnQMgp1Z9sa6ZL6V0FC58d1bAF2Cd8XKFMCINw==
X-Received: by 10.194.240.230 with SMTP id wd6mr2255092wjc.86.1463501226272;
 Tue, 17 May 2016 09:07:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:04 +0100
Message-Id: <1463501224-12940-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/4] Send transmit side hash value to the
	backend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QmFja2VuZHMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHBhY2tldCBoYXNoaW5nIG9uIHRoZSBndWVz
dCByZWNlaXZlIHNpZGUKYXJlIGFsc28gY2FwYWJsZSBvZiBhY2NlcHRpbmcgaGFzaCB2YWx1ZXMg
aW4gYW4gZXh0cmEgaW5mbyBmcmFnbWVudCBvbgp0aGUgZ3Vlc3QgdHJhbnNtaXQgc2lkZS4gVGhp
cyBwYXRjaCBhZGRzIGNvZGUgdG8gY29uc3RydWN0IGFuZCBzZW5kIHRoZQpleHRyYSBpbmZvIGZy
YWdtZW50IGlmIHRoZSBwYWNrZXQgbWV0YWRhdGEgY29udGFpbnMgaGFzaCBpbmZvcm1hdGlvbiBh
bmQKdGhlIGJhY2tlbmQgaXMgYWJsZSB0byBwcm9jZXNzIGl0LgoKU2lnbmVkLW9mZi1ieTogUGF1
bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5z
bWl0dGVyLmMgfCAxNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jIGIvc3JjL3hlbnZpZi90cmFu
c21pdHRlci5jCmluZGV4IDE4ZjY2NGQuLjM1NDJhMDkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYv
dHJhbnNtaXR0ZXIuYworKysgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKQEAgLTc4LDYgKzc4
LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9UUkFOU01JVFRFUl9QQUNLRVQgewogICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoOwogICAgIFBV
Q0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyOworICAgIFhF
TlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaDsKICAgICBYRU5W
SUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgIEluZm87CiAgICAgWEVOVklG
X1BBQ0tFVF9QQVlMT0FEICAgICAgICAgICAgICAgICAgICAgICBQYXlsb2FkOwogfSBYRU5WSUZf
VFJBTlNNSVRURVJfUEFDS0VULCAqUFhFTlZJRl9UUkFOU01JVFRFUl9QQUNLRVQ7CkBAIC0xNTAs
NyArMTUxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVCB7
CiAgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAgICAgICAgICAgICAgRW50cnk7CiAgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aDsKLSAgICBCT09MRUFOICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRyYTsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFeHRyYTsKIH0gWEVOVklGX1RSQU5TTUlUVEVSX0ZSQUdNRU5ULCAqUFhFTlZJRl9U
UkFOU01JVFRFUl9GUkFHTUVOVDsKIAogI2RlZmluZSBYRU5WSUZfVFJBTlNNSVRURVJfTUFYSU1V
TV9GUkFHTUVOVF9JRCAgMHgwM0ZGCkBAIC0zNDksNiArMzUwLDcgQEAgX19UcmFuc21pdHRlclB1
dFBhY2tldCgKIAogICAgIFJ0bFplcm9NZW1vcnkoUGFja2V0LT5IZWFkZXIsIFhFTlZJRl9UUkFO
U01JVFRFUl9NQVhJTVVNX0hFQURFUl9MRU5HVEgpOwogICAgIFJ0bFplcm9NZW1vcnkoJlBhY2tl
dC0+SW5mbywgc2l6ZW9mIChYRU5WSUZfUEFDS0VUX0lORk8pKTsKKyAgICBSdGxaZXJvTWVtb3J5
KCZQYWNrZXQtPkhhc2gsIHNpemVvZiAoWEVOVklGX1BBQ0tFVF9IQVNIKSk7CiAgICAgUnRsWmVy
b01lbW9yeSgmUGFja2V0LT5QYXlsb2FkLCBzaXplb2YgKFhFTlZJRl9QQUNLRVRfUEFZTE9BRCkp
OwogCiAgICAgWEVOQlVTX0NBQ0hFKFB1dCwKQEAgLTYyNiw3ICs2MjgsNyBAQCBfX1RyYW5zbWl0
dGVyUHV0RnJhZ21lbnQoCiAgICAgQVNTRVJUM1UoRnJhZ21lbnQtPlR5cGUsID09LCBYRU5WSUZf
VFJBTlNNSVRURVJfRlJBR01FTlRfVFlQRV9JTlZBTElEKTsKICAgICBBU1NFUlQzUChGcmFnbWVu
dC0+Q29udGV4dCwgPT0sIE5VTEwpOwogICAgIEFTU0VSVDNQKEZyYWdtZW50LT5FbnRyeSwgPT0s
IE5VTEwpOwotICAgIEFTU0VSVCghRnJhZ21lbnQtPkV4dHJhKTsKKyAgICBBU1NFUlQzVShGcmFn
bWVudC0+RXh0cmEsID09LCAwKTsKIAogICAgIFhFTkJVU19DQUNIRShQdXQsCiAgICAgICAgICAg
ICAgICAgICZUcmFuc21pdHRlci0+Q2FjaGVJbnRlcmZhY2UsCkBAIC0yMDQxLDYgKzIwNDMsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgUFhFTlZJRl9UUkFOU01JVFRF
Ul9TVEFURSAgICAgICBTdGF0ZTsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSX1BBQ0tFVCAgICAg
IFBhY2tldDsKICAgICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgICAgIE9mZmxvYWRPcHRp
b25zOworICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRT
aXplOworICAgIFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgSGFzaDsKICAgICBSSU5H
X0lEWCAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9wcm9kOwogICAgIFJJTkdfSURYICAgICAg
ICAgICAgICAgICAgICAgICAgcnNwX2NvbnM7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFeHRyYTsKQEAgLTIwNTYsMTAgKzIwNjAsMTUgQEAgX19UcmFuc21pdHRlclJpbmdQ
b3N0RnJhZ21lbnRzKAogICAgIFN0YXRlID0gJlJpbmctPlN0YXRlOwogICAgIFBhY2tldCA9IFN0
YXRlLT5QYWNrZXQ7CiAKLSAgICBpZiAoUGFja2V0ICE9IE5VTEwpCisgICAgaWYgKFBhY2tldCAh
PSBOVUxMKSB7CiAgICAgICAgIE9mZmxvYWRPcHRpb25zID0gUGFja2V0LT5PZmZsb2FkT3B0aW9u
czsKLSAgICBlbHNlCisgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSA9IFBhY2tldC0+TWF4aW11
bVNlZ21lbnRTaXplOworICAgICAgICBIYXNoID0gUGFja2V0LT5IYXNoOworICAgIH0gZWxzZSB7
CiAgICAgICAgIE9mZmxvYWRPcHRpb25zLlZhbHVlID0gMDsKKyAgICAgICAgTWF4aW11bVNlZ21l
bnRTaXplID0gMDsKKyAgICAgICAgUnRsWmVyb01lbW9yeSgmSGFzaCwgc2l6ZW9mIChIYXNoKSk7
CisgICAgfQogCiAgICAgQVNTRVJUKCFJc0xpc3RFbXB0eSgmU3RhdGUtPkxpc3QpKTsKICAgICBB
U1NFUlQoU3RhdGUtPkNvdW50ICE9IDApOwpAQCAtMjA3MywxMSArMjA4MiwyMCBAQCBfX1RyYW5z
bWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMaXN0RW50cnkpOwogCi0gICAgRXh0cmEgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9h
ZElwVmVyc2lvbjRMYXJnZVBhY2tldCB8fAotICAgICAgICAgICAgIE9mZmxvYWRPcHRpb25zLk9m
ZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQgfHwKLSAgICAgICAgICAgICBGcmFnbWVudC0+VHlw
ZSA9PSBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlRfVFlQRV9NVUxUSUNBU1RfQ09OVFJPTCkg
PwotICAgICAgICAgICAgMSA6Ci0gICAgICAgICAgICAwOworICAgIEV4dHJhID0gMDsKKworICAg
IGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExhcmdlUGFja2V0IHx8CisgICAg
ICAgIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQpCisgICAgICAg
IEV4dHJhKys7CisKKyAgICBpZiAoRnJhZ21lbnQtPlR5cGUgPT0gWEVOVklGX1RSQU5TTUlUVEVS
X0ZSQUdNRU5UX1RZUEVfTVVMVElDQVNUX0NPTlRST0wpIHsKKyAgICAgICAgQVNTRVJUKFRyYW5z
bWl0dGVyLT5NdWx0aWNhc3RDb250cm9sKTsKKyAgICAgICAgRXh0cmErKzsKKyAgICB9CisKKyAg
ICBpZiAoSGFzaC5BbGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQ
TElUWiAmJgorICAgICAgICBIYXNoLlR5cGUgIT0gWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfTk9O
RSkKKyAgICAgICAgRXh0cmErKzsKIAogICAgIEFTU0VSVDNVKFN0YXRlLT5Db3VudCArIEV4dHJh
LCA8PSwgUklOR19TSVpFKCZSaW5nLT5Gcm9udCkpOwogCkBAIC0yMTE1LDYgKzIxMzMsOCBAQCBf
X1RyYW5zbWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgICAgIHJlcS0+ZmxhZ3MgPSBORVRU
WEZfbW9yZV9kYXRhOwogCiAgICAgICAgIGlmIChGaXJzdFJlcXVlc3QpIHsKKyAgICAgICAgICAg
IHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICpleHRyYSA9IE5VTEw7CisKICAgICAgICAgICAgIEZp
cnN0UmVxdWVzdCA9IEZBTFNFOwogCiAgICAgICAgICAgICBpZiAoT2ZmbG9hZE9wdGlvbnMuT2Zm
bG9hZElwVmVyc2lvbjRUY3BDaGVja3N1bSB8fApAQCAtMjEyNCw0OSArMjE0NCwxMDkgQEAgX19U
cmFuc21pdHRlclJpbmdQb3N0RnJhZ21lbnRzKAogICAgICAgICAgICAgICAgIHJlcS0+ZmxhZ3Mg
fD0gTkVUVFhGX2NzdW1fYmxhbmsgfCBORVRUWEZfZGF0YV92YWxpZGF0ZWQ7CiAKICAgICAgICAg
ICAgIGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExhcmdlUGFja2V0IHx8Ci0g
ICAgICAgICAgICAgICAgT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVyc2lvbjZMYXJnZVBhY2tl
dCB8fAotICAgICAgICAgICAgICAgIEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRF
Ul9GUkFHTUVOVF9UWVBFX01VTFRJQ0FTVF9DT05UUk9MKSB7Ci0gICAgICAgICAgICAgICAgc3Ry
dWN0IG5ldGlmX2V4dHJhX2luZm8gKmV4dHJhOworICAgICAgICAgICAgICAgIE9mZmxvYWRPcHRp
b25zLk9mZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQpIHsKKyAgICAgICAgICAgICAgICBBU1NF
UlQocmVxLT5mbGFncyAmIChORVRUWEZfY3N1bV9ibGFuayB8IE5FVFRYRl9kYXRhX3ZhbGlkYXRl
ZCkpOwogCi0gICAgICAgICAgICAgICAgQVNTRVJUKEV4dHJhICE9IDApOwotICAgICAgICAgICAg
ICAgIEZyYWdtZW50LT5FeHRyYSA9IFRSVUU7CisgICAgICAgICAgICAgICAgRnJhZ21lbnQtPkV4
dHJhKys7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoIShyZXEtPmZsYWdzICYgTkVUVFhGX2V4
dHJhX2luZm8pKTsKKyAgICAgICAgICAgICAgICByZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9p
bmZvOwogCiAgICAgICAgICAgICAgICAgZXh0cmEgPSAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8g
KilSSU5HX0dFVF9SRVFVRVNUKCZSaW5nLT5Gcm9udCwgcmVxX3Byb2QpOwogICAgICAgICAgICAg
ICAgIHJlcV9wcm9kKys7CiAgICAgICAgICAgICAgICAgUmluZy0+UmVxdWVzdHNQb3N0ZWQrKzsK
IAotICAgICAgICAgICAgICAgIGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExh
cmdlUGFja2V0IHx8Ci0gICAgICAgICAgICAgICAgICAgIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJ
cFZlcnNpb242TGFyZ2VQYWNrZXQpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKFBhY2tl
dC0+TWF4aW11bVNlZ21lbnRTaXplICE9IDApOworICAgICAgICAgICAgICAgIFJ0bFplcm9NZW1v
cnkoZXh0cmEsIHNpemVvZiAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8pKTsKKworICAgICAgICAg
ICAgICAgIGV4dHJhLT50eXBlID0gWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPOworCisgICAgICAg
ICAgICAgICAgZXh0cmEtPnUuZ3NvLnR5cGUgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVy
c2lvbjRMYXJnZVBhY2tldCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOX05FVElGX0dTT19UWVBFX1RDUFY0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFhFTl9ORVRJRl9HU09fVFlQRV9UQ1BWNjsKKyAgICAgICAgICAgICAgICBleHRyYS0+
dS5nc28uc2l6ZSA9IE1heGltdW1TZWdtZW50U2l6ZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVF9U
WVBFX01VTFRJQ0FTVF9DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgUFhFTlZJRl9UUkFOU01J
VFRFUl9NVUxUSUNBU1RfQ09OVFJPTCAgIENvbnRyb2w7CisKKyAgICAgICAgICAgICAgICBGcmFn
bWVudC0+RXh0cmErKzsKKworICAgICAgICAgICAgICAgIGlmIChyZXEtPmZsYWdzICYgTkVUVFhG
X2V4dHJhX2luZm8pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGV4dHJhICE9IE5VTEwp
OworICAgICAgICAgICAgICAgICAgICBleHRyYS0+ZmxhZ3MgfD0gWEVOX05FVElGX0VYVFJBX0ZM
QUdfTU9SRTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBy
ZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9pbmZvOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGV4dHJhID0gKHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICopUklOR19HRVRf
UkVRVUVTVCgmUmluZy0+RnJvbnQsIHJlcV9wcm9kKTsKKyAgICAgICAgICAgICAgICByZXFfcHJv
ZCsrOworICAgICAgICAgICAgICAgIFJpbmctPlJlcXVlc3RzUG9zdGVkKys7CisKKyAgICAgICAg
ICAgICAgICBSdGxaZXJvTWVtb3J5KGV4dHJhLCBzaXplb2YgKHN0cnVjdCBuZXRpZl9leHRyYV9p
bmZvKSk7CisKKyAgICAgICAgICAgICAgICBDb250cm9sID0gRnJhZ21lbnQtPkNvbnRleHQ7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChDb250cm9sLT5UeXBlKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBYRU5WSUZfVFJBTlNNSVRURVJfTVVMVElDQVNUX0NPTlRST0xfVFlQRV9BREQ6CisgICAg
ICAgICAgICAgICAgICAgIGV4dHJhLT50eXBlID0gWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1Rf
QUREOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Ug
WEVOVklGX1RSQU5TTUlUVEVSX01VTFRJQ0FTVF9DT05UUk9MX1RZUEVfUkVNT1ZFOgorICAgICAg
ICAgICAgICAgICAgICBleHRyYS0+dHlwZSA9IFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX0RF
TDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoRkFMU0UpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEt
PnR5cGUgPSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9HU087Ci0gICAgICAgICAgICAgICAgICAgIGV4
dHJhLT5mbGFncyA9IDA7CisgICAgICAgICAgICAgICAgUnRsQ29weU1lbW9yeSgmZXh0cmEtPnUu
bWNhc3QuYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sLT5BZGRy
ZXNzLkJ5dGVbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVEhFUk5FVF9BRERS
RVNTX0xFTkdUSCk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEt
PnUuZ3NvLnR5cGUgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVyc2lvbjRMYXJnZVBhY2tl
dCkgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9H
U09fVFlQRV9UQ1BWNCA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOX05FVElGX0dTT19UWVBFX1RDUFY2OwotICAgICAgICAgICAgICAgICAgICBleHRyYS0+dS5n
c28uc2l6ZSA9IFBhY2tldC0+TWF4aW11bVNlZ21lbnRTaXplOwotICAgICAgICAgICAgICAgICAg
ICBleHRyYS0+dS5nc28ucGFkID0gMDsKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEtPnUuZ3Nv
LmZlYXR1cmVzID0gMDsKKyAgICAgICAgICAgIGlmIChIYXNoLkFsZ29yaXRobSA9PSBYRU5WSUZf
UEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaICYmCisgICAgICAgICAgICAgICAgSGFzaC5U
eXBlICE9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX05PTkUpIHsKIAotICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQocmVxLT5mbGFncyAmIChORVRUWEZfY3N1bV9ibGFuayB8IE5FVFRYRl9kYXRh
X3ZhbGlkYXRlZCkpOworICAgICAgICAgICAgICAgIGlmIChyZXEtPmZsYWdzICYgTkVUVFhGX2V4
dHJhX2luZm8pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGV4dHJhICE9IE5VTEwpOwor
ICAgICAgICAgICAgICAgICAgICBleHRyYS0+ZmxhZ3MgfD0gWEVOX05FVElGX0VYVFJBX0ZMQUdf
TU9SRTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBQWEVO
VklGX1RSQU5TTUlUVEVSX01VTFRJQ0FTVF9DT05UUk9MICAgQ29udHJvbDsKKyAgICAgICAgICAg
ICAgICAgICAgcmVxLT5mbGFncyB8PSBORVRUWEZfZXh0cmFfaW5mbzsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBGcmFnbWVudC0+RXh0cmErKzsKKworICAgICAgICAgICAg
ICAgIGV4dHJhID0gKHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICopUklOR19HRVRfUkVRVUVTVCgm
UmluZy0+RnJvbnQsIHJlcV9wcm9kKTsKKyAgICAgICAgICAgICAgICByZXFfcHJvZCsrOworICAg
ICAgICAgICAgICAgIFJpbmctPlJlcXVlc3RzUG9zdGVkKys7CiAKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVF9U
WVBFX01VTFRJQ0FTVF9DT05UUk9MKTsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJvbCA9IEZy
YWdtZW50LT5Db250ZXh0OworICAgICAgICAgICAgICAgIFJ0bFplcm9NZW1vcnkoZXh0cmEsIHNp
emVvZiAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8pKTsKIAotICAgICAgICAgICAgICAgICAgICBl
eHRyYS0+dHlwZSA9IChDb250cm9sLT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9NVUxUSUNB
U1RfQ09OVFJPTF9UWVBFX0FERCkgPwotICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElG
X0VYVFJBX1RZUEVfTUNBU1RfQUREIDoKLSAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFX01DQVNUX0RFTDsKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEtPmZsYWdz
ID0gMDsKKyAgICAgICAgICAgICAgICBleHRyYS0+dHlwZSA9IFhFTl9ORVRJRl9FWFRSQV9UWVBF
X0hBU0g7CiAKLSAgICAgICAgICAgICAgICAgICAgUnRsQ29weU1lbW9yeSgmZXh0cmEtPnUubWNh
c3QuYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbC0+QWRk
cmVzcy5CeXRlWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVUSEVSTkVU
X0FERFJFU1NfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKEhhc2guVHlwZSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNDoKKyAgICAg
ICAgICAgICAgICAgICAgZXh0cmEtPnUuaGFzaC50eXBlID0gX1hFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg
IGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNF9UQ1A6CisgICAgICAgICAgICAgICAg
ICAgIGV4dHJhLT51Lmhhc2gudHlwZSA9IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9U
Q1A7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBY
RU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OgorICAgICAgICAgICAgICAgICAgICBleHRyYS0+
dS5oYXNoLnR5cGUgPSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjY7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2X1RDUDoKKyAgICAgICAgICAgICAgICAgICAgZXh0cmEtPnUuaGFzaC50eXBl
ID0gX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2X1RDUDsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQoRkFMU0UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICByZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9pbmZv
OworICAgICAgICAgICAgICAgICoodWludDMyX3QgKilleHRyYS0+dS5oYXNoLnZhbHVlID0gSGFz
aC5WYWx1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yMjQ1LDYgKzIzMjUsNyBA
QCBfX1RyYW5zbWl0dGVyUmluZ0Zha2VSZXNwb25zZXMoCiAgICAgZm9yIChpZCA9IDA7IGlkIDw9
IFhFTlZJRl9UUkFOU01JVFRFUl9NQVhJTVVNX0ZSQUdNRU5UX0lEOyBpZCsrKSB7CiAgICAgICAg
IFBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlQgICAgRnJhZ21lbnQ7CiAgICAgICAgIG5ldGlm
X3R4X3Jlc3BvbnNlX3QgICAgICAgICAgICAgKnJzcDsKKyAgICAgICAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRyYTsKIAogICAgICAgICBGcmFnbWVudCA9IFJpbmctPlBlbmRp
bmdbaWRdOwogCkBAIC0yMjU4LDcgKzIzMzksNyBAQCBfX1RyYW5zbWl0dGVyUmluZ0Zha2VSZXNw
b25zZXMoCiAgICAgICAgIHJzcC0+aWQgPSBGcmFnbWVudC0+SWQ7CiAgICAgICAgIHJzcC0+c3Rh
dHVzID0gTkVUSUZfUlNQX0RST1BQRUQ7CiAKLSAgICAgICAgaWYgKEZyYWdtZW50LT5FeHRyYSkg
eworICAgICAgICBmb3IgKEV4dHJhID0gMDsgRXh0cmEgPCBGcmFnbWVudC0+RXh0cmE7IEV4dHJh
KyspIHsKICAgICAgICAgICAgIHJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZSaW5nLT5Gcm9udCwg
cnNwX3Byb2QpOwogICAgICAgICAgICAgcnNwX3Byb2QrKzsKICAgICAgICAgICAgIENvdW50Kys7
CkBAIC0yMzc0LDYgKzI0NTUsNyBAQCBUcmFuc21pdHRlclJpbmdQb2xsKAogICAgIGZvciAoOzsp
IHsKICAgICAgICAgUklOR19JRFggICAgcnNwX3Byb2Q7CiAgICAgICAgIFJJTkdfSURYICAgIHJz
cF9jb25zOworICAgICAgICBVTE9ORyAgICAgICBFeHRyYTsKIAogICAgICAgICBLZU1lbW9yeUJh
cnJpZXIoKTsKIApAQCAtMjM4NSw2ICsyNDY3LDcgQEAgVHJhbnNtaXR0ZXJSaW5nUG9sbCgKICAg
ICAgICAgaWYgKHJzcF9jb25zID09IHJzcF9wcm9kIHx8IFJldHJ5KQogICAgICAgICAgICAgYnJl
YWs7CiAKKyAgICAgICAgRXh0cmEgPSAwOwogICAgICAgICB3aGlsZSAocnNwX2NvbnMgIT0gcnNw
X3Byb2QgJiYgIVJldHJ5KSB7CiAgICAgICAgICAgICBuZXRpZl90eF9yZXNwb25zZV90ICAgICAg
ICAgICAgICpyc3A7CiAgICAgICAgICAgICB1aW50MTZfdCAgICAgICAgICAgICAgICAgICAgICAg
IGlkOwpAQCAtMjM5Nyw4ICsyNDgwLDEzIEBAIFRyYW5zbWl0dGVyUmluZ1BvbGwoCiAKICAgICAg
ICAgICAgIFJpbmctPlN0b3BwZWQgPSBGQUxTRTsKIAotICAgICAgICAgICAgaWYgKHJzcC0+c3Rh
dHVzID09IE5FVElGX1JTUF9OVUxMKQorICAgICAgICAgICAgaWYgKHJzcC0+c3RhdHVzID09IE5F
VElGX1JTUF9OVUxMKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKEV4dHJhICE9IDApOworICAg
ICAgICAgICAgICAgIC0tRXh0cmE7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEFTU0VSVDNVKEV4dHJhLCA9PSwgMCk7CiAKICAgICAgICAg
ICAgIGlkID0gcnNwLT5pZDsKIApAQCAtMjQ3NCw3ICsyNTYyLDggQEAgVHJhbnNtaXR0ZXJSaW5n
UG9sbCgKICAgICAgICAgICAgICAgICBGcmFnbWVudC0+RW50cnkgPSBOVUxMOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBGcmFnbWVudC0+RXh0cmEgPSBGQUxTRTsKKyAgICAgICAgICAg
IEV4dHJhID0gRnJhZ21lbnQtPkV4dHJhOworICAgICAgICAgICAgRnJhZ21lbnQtPkV4dHJhID0g
MDsKICAgICAgICAgICAgIF9fVHJhbnNtaXR0ZXJQdXRGcmFnbWVudChSaW5nLCBGcmFnbWVudCk7
CiAKICAgICAgICAgICAgIGlmIChQYWNrZXQgPT0gTlVMTCkKQEAgLTI1MTAsNiArMjU5OSw3IEBA
IFRyYW5zbWl0dGVyUmluZ1BvbGwoCiAgICAgICAgICAgICBpZiAocnNwX2NvbnMgLSBSaW5nLT5G
cm9udC5yc3BfY29ucyA+IFhFTlZJRl9UUkFOU01JVFRFUl9CQVRDSChSaW5nKSkKICAgICAgICAg
ICAgICAgICBSZXRyeSA9IFRSVUU7CiAgICAgICAgIH0KKyAgICAgICAgQVNTRVJUM1UoRXh0cmEs
ID09LCAwKTsKIAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIApAQCAtNDgxNyw2ICs0OTA3
LDcgQEAgVHJhbnNtaXR0ZXJRdWV1ZVBhY2tldCgKICAgICBQYWNrZXQtPk9mZmxvYWRPcHRpb25z
ID0gT2ZmbG9hZE9wdGlvbnM7CiAgICAgUGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemUgPSBNYXhp
bXVtU2VnbWVudFNpemU7CiAgICAgUGFja2V0LT5UYWdDb250cm9sSW5mb3JtYXRpb24gPSBUYWdD
b250cm9sSW5mb3JtYXRpb247CisgICAgUGFja2V0LT5IYXNoID0gKkhhc2g7CiAgICAgUGFja2V0
LT5Db29raWUgPSBDb29raWU7CiAKICAgICBTdGFydFZhID0gUGFja2V0LT5IZWFkZXI7Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:07:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:07:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hWX-0006c8-V3; Tue, 17 May 2016 16:07:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hWW-0006aQ-Cv
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:07:08 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 B3/F0-23864-BA14B375; Tue, 17 May 2016 16:07:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkorvK0Tr
 coO+whsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNePRpKmPB7qSKn20nGBsYr9l3MXJxCAnMZpS4
 +G8nO4jDIvCSReLOhe/MII6EQD+rxOQzB9i6GDmBnBiJ1ptroOwqiX+rt4PZQgKKEs3XLrBDj
 FrGJDH/yT5WkASbgLrE7feL2SEa7CQ+zboJZosIqEpcW34MrJlZQEvi4YZ5jCC2sICjROf6/y
 wgNgtQze3fq5lBbF4Bd4mjk74xQsyRk9g7eTVYDaeAh8Ss13/YIY5wl2jffp1tAqPgAkaGVYz
 qxalFZalFuoZ6SUWZ6RkluYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiBAccABDsYl390OsQo
 ycGkJMp7wcQ6XIgvKT+lMiOxOCO+qDQntfgQowwHh5IEb4MDUE6wKDU9tSItMwcY+jBpCQ4eJ
 RFeO5A0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ83aDFAmAFGWU5sGNgMXhJUZZKWFeRq
 CjhHgKUotyM0tQ5V8xinMwKgnzbgaZwpOZVwK36RXQEUxAR0wwswA5oiQRISXVwLhkzfGDK3d
 MDzOryJ9dYNvPFqLYeEVQu/Qx+7I1Sd9En6m9OmrwVDDhjprUurqWXNEz05ao7vq5M/6iMXeB
 vJLcnvq8ROFrnUe8HmkkfE9S9C40nuS57Fiw+195HdPVtyxW7dv3MjCgfmu50t3Si92r7O9t9
 NvK0td0Seaq3bl1DCoTi6RtXiqxFGckGmoxFxUnAgA9eWiAvgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1463501226!39993296!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5012 invoked from network); 17 May 2016 16:07:06 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-13.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:07:06 -0000
Received: by mail-wm0-f68.google.com with SMTP id w143so5828673wmw.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:07:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=kQMQR+MiiyuHrYGdHK36BXHu4EflA6ZoYgXEXnvv5Pc=;
 b=yelERxT03v8ZZVxArPLvoEDxOhzo11EEnw0FG21Af47fuLYzeINdYpYgI9odxZVuIV
 5HBqRetnJUNrBSampmBpI5kfmOUcVWgqOdGXD6GyYh7QFN5uoCcAW8V9g1LSc4StEdop
 E8VHMt4/+KcP2r//Zxq1IuiTtrS3U7ENrUaqgJRmxxFU2NqAQ7d5/MFTYOEqfKoHYFp6
 2kq50QHYbF+hl0m07UK3+KMezmlWCx2WiSUx8GG+recyWHxm/nTauaN1g/FAWlpZERkR
 jAkBB64n0dUlc7soA6prLmssKQt2/P8VcxOp6ap++UnH1GZObXOpepTvWo/145EBl9LP
 PrEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=kQMQR+MiiyuHrYGdHK36BXHu4EflA6ZoYgXEXnvv5Pc=;
 b=Q/ifcIocYadh43r5o/+gD62/oH84/HmN1RN+RhnvQRVQKx8WnMSUr2/GWqn5PF7Qr/
 roTGCXPJLtAicqikeC5WwFOYIxwhos+gH+PhK0X9oC/+ytg52KrWWGCxdEgpcvlSQ20P
 llFaNYS7QXqBAezk+fOSH23DONsjWOfAUWuSiqZMfswNOk/a6qT7RQS06JJjDmhJuTkk
 sD/gztmTzEQWFx0R1l8aceJZPdH3MXg1s9VxG3vdRPutDmszvu18NrbQsJjIeLwnBG3h
 yxFHlbt1kUPkDoy8QGtlPDmC8o083dVcRuntqtniTrysrQqICJSWO3FueMiAMEZ495Ln
 0NMg==
X-Gm-Message-State: AOPr4FWEO7z408IY4IxJoqZbjA1I4pG+VnQMgp1Z9sa6ZL6V0FC58d1bAF2Cd8XKFMCINw==
X-Received: by 10.194.240.230 with SMTP id wd6mr2255092wjc.86.1463501226272;
 Tue, 17 May 2016 09:07:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id gk4sm3879179wjd.7.2016.05.17.09.07.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:07:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:07:04 +0100
Message-Id: <1463501224-12940-5-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
References: <1463501224-12940-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/4] Send transmit side hash value to the
	backend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QmFja2VuZHMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHBhY2tldCBoYXNoaW5nIG9uIHRoZSBndWVz
dCByZWNlaXZlIHNpZGUKYXJlIGFsc28gY2FwYWJsZSBvZiBhY2NlcHRpbmcgaGFzaCB2YWx1ZXMg
aW4gYW4gZXh0cmEgaW5mbyBmcmFnbWVudCBvbgp0aGUgZ3Vlc3QgdHJhbnNtaXQgc2lkZS4gVGhp
cyBwYXRjaCBhZGRzIGNvZGUgdG8gY29uc3RydWN0IGFuZCBzZW5kIHRoZQpleHRyYSBpbmZvIGZy
YWdtZW50IGlmIHRoZSBwYWNrZXQgbWV0YWRhdGEgY29udGFpbnMgaGFzaCBpbmZvcm1hdGlvbiBh
bmQKdGhlIGJhY2tlbmQgaXMgYWJsZSB0byBwcm9jZXNzIGl0LgoKU2lnbmVkLW9mZi1ieTogUGF1
bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5z
bWl0dGVyLmMgfCAxNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jIGIvc3JjL3hlbnZpZi90cmFu
c21pdHRlci5jCmluZGV4IDE4ZjY2NGQuLjM1NDJhMDkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYv
dHJhbnNtaXR0ZXIuYworKysgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKQEAgLTc4LDYgKzc4
LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9UUkFOU01JVFRFUl9QQUNLRVQgewogICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoOwogICAgIFBV
Q0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyOworICAgIFhF
TlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaDsKICAgICBYRU5W
SUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAgIEluZm87CiAgICAgWEVOVklG
X1BBQ0tFVF9QQVlMT0FEICAgICAgICAgICAgICAgICAgICAgICBQYXlsb2FkOwogfSBYRU5WSUZf
VFJBTlNNSVRURVJfUEFDS0VULCAqUFhFTlZJRl9UUkFOU01JVFRFUl9QQUNLRVQ7CkBAIC0xNTAs
NyArMTUxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVCB7
CiAgICAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAgICAgICAgICAgICAgRW50cnk7CiAgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OwogICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aDsKLSAgICBCT09MRUFOICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRyYTsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFeHRyYTsKIH0gWEVOVklGX1RSQU5TTUlUVEVSX0ZSQUdNRU5ULCAqUFhFTlZJRl9U
UkFOU01JVFRFUl9GUkFHTUVOVDsKIAogI2RlZmluZSBYRU5WSUZfVFJBTlNNSVRURVJfTUFYSU1V
TV9GUkFHTUVOVF9JRCAgMHgwM0ZGCkBAIC0zNDksNiArMzUwLDcgQEAgX19UcmFuc21pdHRlclB1
dFBhY2tldCgKIAogICAgIFJ0bFplcm9NZW1vcnkoUGFja2V0LT5IZWFkZXIsIFhFTlZJRl9UUkFO
U01JVFRFUl9NQVhJTVVNX0hFQURFUl9MRU5HVEgpOwogICAgIFJ0bFplcm9NZW1vcnkoJlBhY2tl
dC0+SW5mbywgc2l6ZW9mIChYRU5WSUZfUEFDS0VUX0lORk8pKTsKKyAgICBSdGxaZXJvTWVtb3J5
KCZQYWNrZXQtPkhhc2gsIHNpemVvZiAoWEVOVklGX1BBQ0tFVF9IQVNIKSk7CiAgICAgUnRsWmVy
b01lbW9yeSgmUGFja2V0LT5QYXlsb2FkLCBzaXplb2YgKFhFTlZJRl9QQUNLRVRfUEFZTE9BRCkp
OwogCiAgICAgWEVOQlVTX0NBQ0hFKFB1dCwKQEAgLTYyNiw3ICs2MjgsNyBAQCBfX1RyYW5zbWl0
dGVyUHV0RnJhZ21lbnQoCiAgICAgQVNTRVJUM1UoRnJhZ21lbnQtPlR5cGUsID09LCBYRU5WSUZf
VFJBTlNNSVRURVJfRlJBR01FTlRfVFlQRV9JTlZBTElEKTsKICAgICBBU1NFUlQzUChGcmFnbWVu
dC0+Q29udGV4dCwgPT0sIE5VTEwpOwogICAgIEFTU0VSVDNQKEZyYWdtZW50LT5FbnRyeSwgPT0s
IE5VTEwpOwotICAgIEFTU0VSVCghRnJhZ21lbnQtPkV4dHJhKTsKKyAgICBBU1NFUlQzVShGcmFn
bWVudC0+RXh0cmEsID09LCAwKTsKIAogICAgIFhFTkJVU19DQUNIRShQdXQsCiAgICAgICAgICAg
ICAgICAgICZUcmFuc21pdHRlci0+Q2FjaGVJbnRlcmZhY2UsCkBAIC0yMDQxLDYgKzIwNDMsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgUFhFTlZJRl9UUkFOU01JVFRF
Ul9TVEFURSAgICAgICBTdGF0ZTsKICAgICBQWEVOVklGX1RSQU5TTUlUVEVSX1BBQ0tFVCAgICAg
IFBhY2tldDsKICAgICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgICAgIE9mZmxvYWRPcHRp
b25zOworICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRT
aXplOworICAgIFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgSGFzaDsKICAgICBSSU5H
X0lEWCAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9wcm9kOwogICAgIFJJTkdfSURYICAgICAg
ICAgICAgICAgICAgICAgICAgcnNwX2NvbnM7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFeHRyYTsKQEAgLTIwNTYsMTAgKzIwNjAsMTUgQEAgX19UcmFuc21pdHRlclJpbmdQ
b3N0RnJhZ21lbnRzKAogICAgIFN0YXRlID0gJlJpbmctPlN0YXRlOwogICAgIFBhY2tldCA9IFN0
YXRlLT5QYWNrZXQ7CiAKLSAgICBpZiAoUGFja2V0ICE9IE5VTEwpCisgICAgaWYgKFBhY2tldCAh
PSBOVUxMKSB7CiAgICAgICAgIE9mZmxvYWRPcHRpb25zID0gUGFja2V0LT5PZmZsb2FkT3B0aW9u
czsKLSAgICBlbHNlCisgICAgICAgIE1heGltdW1TZWdtZW50U2l6ZSA9IFBhY2tldC0+TWF4aW11
bVNlZ21lbnRTaXplOworICAgICAgICBIYXNoID0gUGFja2V0LT5IYXNoOworICAgIH0gZWxzZSB7
CiAgICAgICAgIE9mZmxvYWRPcHRpb25zLlZhbHVlID0gMDsKKyAgICAgICAgTWF4aW11bVNlZ21l
bnRTaXplID0gMDsKKyAgICAgICAgUnRsWmVyb01lbW9yeSgmSGFzaCwgc2l6ZW9mIChIYXNoKSk7
CisgICAgfQogCiAgICAgQVNTRVJUKCFJc0xpc3RFbXB0eSgmU3RhdGUtPkxpc3QpKTsKICAgICBB
U1NFUlQoU3RhdGUtPkNvdW50ICE9IDApOwpAQCAtMjA3MywxMSArMjA4MiwyMCBAQCBfX1RyYW5z
bWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMaXN0RW50cnkpOwogCi0gICAgRXh0cmEgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9h
ZElwVmVyc2lvbjRMYXJnZVBhY2tldCB8fAotICAgICAgICAgICAgIE9mZmxvYWRPcHRpb25zLk9m
ZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQgfHwKLSAgICAgICAgICAgICBGcmFnbWVudC0+VHlw
ZSA9PSBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlRfVFlQRV9NVUxUSUNBU1RfQ09OVFJPTCkg
PwotICAgICAgICAgICAgMSA6Ci0gICAgICAgICAgICAwOworICAgIEV4dHJhID0gMDsKKworICAg
IGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExhcmdlUGFja2V0IHx8CisgICAg
ICAgIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQpCisgICAgICAg
IEV4dHJhKys7CisKKyAgICBpZiAoRnJhZ21lbnQtPlR5cGUgPT0gWEVOVklGX1RSQU5TTUlUVEVS
X0ZSQUdNRU5UX1RZUEVfTVVMVElDQVNUX0NPTlRST0wpIHsKKyAgICAgICAgQVNTRVJUKFRyYW5z
bWl0dGVyLT5NdWx0aWNhc3RDb250cm9sKTsKKyAgICAgICAgRXh0cmErKzsKKyAgICB9CisKKyAg
ICBpZiAoSGFzaC5BbGdvcml0aG0gPT0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQ
TElUWiAmJgorICAgICAgICBIYXNoLlR5cGUgIT0gWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfTk9O
RSkKKyAgICAgICAgRXh0cmErKzsKIAogICAgIEFTU0VSVDNVKFN0YXRlLT5Db3VudCArIEV4dHJh
LCA8PSwgUklOR19TSVpFKCZSaW5nLT5Gcm9udCkpOwogCkBAIC0yMTE1LDYgKzIxMzMsOCBAQCBf
X1RyYW5zbWl0dGVyUmluZ1Bvc3RGcmFnbWVudHMoCiAgICAgICAgIHJlcS0+ZmxhZ3MgPSBORVRU
WEZfbW9yZV9kYXRhOwogCiAgICAgICAgIGlmIChGaXJzdFJlcXVlc3QpIHsKKyAgICAgICAgICAg
IHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICpleHRyYSA9IE5VTEw7CisKICAgICAgICAgICAgIEZp
cnN0UmVxdWVzdCA9IEZBTFNFOwogCiAgICAgICAgICAgICBpZiAoT2ZmbG9hZE9wdGlvbnMuT2Zm
bG9hZElwVmVyc2lvbjRUY3BDaGVja3N1bSB8fApAQCAtMjEyNCw0OSArMjE0NCwxMDkgQEAgX19U
cmFuc21pdHRlclJpbmdQb3N0RnJhZ21lbnRzKAogICAgICAgICAgICAgICAgIHJlcS0+ZmxhZ3Mg
fD0gTkVUVFhGX2NzdW1fYmxhbmsgfCBORVRUWEZfZGF0YV92YWxpZGF0ZWQ7CiAKICAgICAgICAg
ICAgIGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExhcmdlUGFja2V0IHx8Ci0g
ICAgICAgICAgICAgICAgT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVyc2lvbjZMYXJnZVBhY2tl
dCB8fAotICAgICAgICAgICAgICAgIEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRF
Ul9GUkFHTUVOVF9UWVBFX01VTFRJQ0FTVF9DT05UUk9MKSB7Ci0gICAgICAgICAgICAgICAgc3Ry
dWN0IG5ldGlmX2V4dHJhX2luZm8gKmV4dHJhOworICAgICAgICAgICAgICAgIE9mZmxvYWRPcHRp
b25zLk9mZmxvYWRJcFZlcnNpb242TGFyZ2VQYWNrZXQpIHsKKyAgICAgICAgICAgICAgICBBU1NF
UlQocmVxLT5mbGFncyAmIChORVRUWEZfY3N1bV9ibGFuayB8IE5FVFRYRl9kYXRhX3ZhbGlkYXRl
ZCkpOwogCi0gICAgICAgICAgICAgICAgQVNTRVJUKEV4dHJhICE9IDApOwotICAgICAgICAgICAg
ICAgIEZyYWdtZW50LT5FeHRyYSA9IFRSVUU7CisgICAgICAgICAgICAgICAgRnJhZ21lbnQtPkV4
dHJhKys7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoIShyZXEtPmZsYWdzICYgTkVUVFhGX2V4
dHJhX2luZm8pKTsKKyAgICAgICAgICAgICAgICByZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9p
bmZvOwogCiAgICAgICAgICAgICAgICAgZXh0cmEgPSAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8g
KilSSU5HX0dFVF9SRVFVRVNUKCZSaW5nLT5Gcm9udCwgcmVxX3Byb2QpOwogICAgICAgICAgICAg
ICAgIHJlcV9wcm9kKys7CiAgICAgICAgICAgICAgICAgUmluZy0+UmVxdWVzdHNQb3N0ZWQrKzsK
IAotICAgICAgICAgICAgICAgIGlmIChPZmZsb2FkT3B0aW9ucy5PZmZsb2FkSXBWZXJzaW9uNExh
cmdlUGFja2V0IHx8Ci0gICAgICAgICAgICAgICAgICAgIE9mZmxvYWRPcHRpb25zLk9mZmxvYWRJ
cFZlcnNpb242TGFyZ2VQYWNrZXQpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKFBhY2tl
dC0+TWF4aW11bVNlZ21lbnRTaXplICE9IDApOworICAgICAgICAgICAgICAgIFJ0bFplcm9NZW1v
cnkoZXh0cmEsIHNpemVvZiAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8pKTsKKworICAgICAgICAg
ICAgICAgIGV4dHJhLT50eXBlID0gWEVOX05FVElGX0VYVFJBX1RZUEVfR1NPOworCisgICAgICAg
ICAgICAgICAgZXh0cmEtPnUuZ3NvLnR5cGUgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVy
c2lvbjRMYXJnZVBhY2tldCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOX05FVElGX0dTT19UWVBFX1RDUFY0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFhFTl9ORVRJRl9HU09fVFlQRV9UQ1BWNjsKKyAgICAgICAgICAgICAgICBleHRyYS0+
dS5nc28uc2l6ZSA9IE1heGltdW1TZWdtZW50U2l6ZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVF9U
WVBFX01VTFRJQ0FTVF9DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgUFhFTlZJRl9UUkFOU01J
VFRFUl9NVUxUSUNBU1RfQ09OVFJPTCAgIENvbnRyb2w7CisKKyAgICAgICAgICAgICAgICBGcmFn
bWVudC0+RXh0cmErKzsKKworICAgICAgICAgICAgICAgIGlmIChyZXEtPmZsYWdzICYgTkVUVFhG
X2V4dHJhX2luZm8pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGV4dHJhICE9IE5VTEwp
OworICAgICAgICAgICAgICAgICAgICBleHRyYS0+ZmxhZ3MgfD0gWEVOX05FVElGX0VYVFJBX0ZM
QUdfTU9SRTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBy
ZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9pbmZvOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGV4dHJhID0gKHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICopUklOR19HRVRf
UkVRVUVTVCgmUmluZy0+RnJvbnQsIHJlcV9wcm9kKTsKKyAgICAgICAgICAgICAgICByZXFfcHJv
ZCsrOworICAgICAgICAgICAgICAgIFJpbmctPlJlcXVlc3RzUG9zdGVkKys7CisKKyAgICAgICAg
ICAgICAgICBSdGxaZXJvTWVtb3J5KGV4dHJhLCBzaXplb2YgKHN0cnVjdCBuZXRpZl9leHRyYV9p
bmZvKSk7CisKKyAgICAgICAgICAgICAgICBDb250cm9sID0gRnJhZ21lbnQtPkNvbnRleHQ7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChDb250cm9sLT5UeXBlKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBYRU5WSUZfVFJBTlNNSVRURVJfTVVMVElDQVNUX0NPTlRST0xfVFlQRV9BREQ6CisgICAg
ICAgICAgICAgICAgICAgIGV4dHJhLT50eXBlID0gWEVOX05FVElGX0VYVFJBX1RZUEVfTUNBU1Rf
QUREOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Ug
WEVOVklGX1RSQU5TTUlUVEVSX01VTFRJQ0FTVF9DT05UUk9MX1RZUEVfUkVNT1ZFOgorICAgICAg
ICAgICAgICAgICAgICBleHRyYS0+dHlwZSA9IFhFTl9ORVRJRl9FWFRSQV9UWVBFX01DQVNUX0RF
TDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoRkFMU0UpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEt
PnR5cGUgPSBYRU5fTkVUSUZfRVhUUkFfVFlQRV9HU087Ci0gICAgICAgICAgICAgICAgICAgIGV4
dHJhLT5mbGFncyA9IDA7CisgICAgICAgICAgICAgICAgUnRsQ29weU1lbW9yeSgmZXh0cmEtPnUu
bWNhc3QuYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250cm9sLT5BZGRy
ZXNzLkJ5dGVbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVEhFUk5FVF9BRERS
RVNTX0xFTkdUSCk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEt
PnUuZ3NvLnR5cGUgPSAoT2ZmbG9hZE9wdGlvbnMuT2ZmbG9hZElwVmVyc2lvbjRMYXJnZVBhY2tl
dCkgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9H
U09fVFlQRV9UQ1BWNCA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOX05FVElGX0dTT19UWVBFX1RDUFY2OwotICAgICAgICAgICAgICAgICAgICBleHRyYS0+dS5n
c28uc2l6ZSA9IFBhY2tldC0+TWF4aW11bVNlZ21lbnRTaXplOwotICAgICAgICAgICAgICAgICAg
ICBleHRyYS0+dS5nc28ucGFkID0gMDsKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEtPnUuZ3Nv
LmZlYXR1cmVzID0gMDsKKyAgICAgICAgICAgIGlmIChIYXNoLkFsZ29yaXRobSA9PSBYRU5WSUZf
UEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaICYmCisgICAgICAgICAgICAgICAgSGFzaC5U
eXBlICE9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX05PTkUpIHsKIAotICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQocmVxLT5mbGFncyAmIChORVRUWEZfY3N1bV9ibGFuayB8IE5FVFRYRl9kYXRh
X3ZhbGlkYXRlZCkpOworICAgICAgICAgICAgICAgIGlmIChyZXEtPmZsYWdzICYgTkVUVFhGX2V4
dHJhX2luZm8pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGV4dHJhICE9IE5VTEwpOwor
ICAgICAgICAgICAgICAgICAgICBleHRyYS0+ZmxhZ3MgfD0gWEVOX05FVElGX0VYVFJBX0ZMQUdf
TU9SRTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBQWEVO
VklGX1RSQU5TTUlUVEVSX01VTFRJQ0FTVF9DT05UUk9MICAgQ29udHJvbDsKKyAgICAgICAgICAg
ICAgICAgICAgcmVxLT5mbGFncyB8PSBORVRUWEZfZXh0cmFfaW5mbzsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBGcmFnbWVudC0+RXh0cmErKzsKKworICAgICAgICAgICAg
ICAgIGV4dHJhID0gKHN0cnVjdCBuZXRpZl9leHRyYV9pbmZvICopUklOR19HRVRfUkVRVUVTVCgm
UmluZy0+RnJvbnQsIHJlcV9wcm9kKTsKKyAgICAgICAgICAgICAgICByZXFfcHJvZCsrOworICAg
ICAgICAgICAgICAgIFJpbmctPlJlcXVlc3RzUG9zdGVkKys7CiAKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKEZyYWdtZW50LT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9GUkFHTUVOVF9U
WVBFX01VTFRJQ0FTVF9DT05UUk9MKTsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJvbCA9IEZy
YWdtZW50LT5Db250ZXh0OworICAgICAgICAgICAgICAgIFJ0bFplcm9NZW1vcnkoZXh0cmEsIHNp
emVvZiAoc3RydWN0IG5ldGlmX2V4dHJhX2luZm8pKTsKIAotICAgICAgICAgICAgICAgICAgICBl
eHRyYS0+dHlwZSA9IChDb250cm9sLT5UeXBlID09IFhFTlZJRl9UUkFOU01JVFRFUl9NVUxUSUNB
U1RfQ09OVFJPTF9UWVBFX0FERCkgPwotICAgICAgICAgICAgICAgICAgICAgICAgWEVOX05FVElG
X0VYVFJBX1RZUEVfTUNBU1RfQUREIDoKLSAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJ
Rl9FWFRSQV9UWVBFX01DQVNUX0RFTDsKLSAgICAgICAgICAgICAgICAgICAgZXh0cmEtPmZsYWdz
ID0gMDsKKyAgICAgICAgICAgICAgICBleHRyYS0+dHlwZSA9IFhFTl9ORVRJRl9FWFRSQV9UWVBF
X0hBU0g7CiAKLSAgICAgICAgICAgICAgICAgICAgUnRsQ29weU1lbW9yeSgmZXh0cmEtPnUubWNh
c3QuYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbC0+QWRk
cmVzcy5CeXRlWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVUSEVSTkVU
X0FERFJFU1NfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKEhhc2guVHlwZSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNDoKKyAgICAg
ICAgICAgICAgICAgICAgZXh0cmEtPnUuaGFzaC50eXBlID0gX1hFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg
IGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNF9UQ1A6CisgICAgICAgICAgICAgICAg
ICAgIGV4dHJhLT51Lmhhc2gudHlwZSA9IF9YRU5fTkVUSUZfQ1RSTF9IQVNIX1RZUEVfSVBWNF9U
Q1A7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBY
RU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2OgorICAgICAgICAgICAgICAgICAgICBleHRyYS0+
dS5oYXNoLnR5cGUgPSBfWEVOX05FVElGX0NUUkxfSEFTSF9UWVBFX0lQVjY7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2X1RDUDoKKyAgICAgICAgICAgICAgICAgICAgZXh0cmEtPnUuaGFzaC50eXBl
ID0gX1hFTl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY2X1RDUDsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQoRkFMU0UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICByZXEtPmZsYWdzIHw9IE5FVFRYRl9leHRyYV9pbmZv
OworICAgICAgICAgICAgICAgICoodWludDMyX3QgKilleHRyYS0+dS5oYXNoLnZhbHVlID0gSGFz
aC5WYWx1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yMjQ1LDYgKzIzMjUsNyBA
QCBfX1RyYW5zbWl0dGVyUmluZ0Zha2VSZXNwb25zZXMoCiAgICAgZm9yIChpZCA9IDA7IGlkIDw9
IFhFTlZJRl9UUkFOU01JVFRFUl9NQVhJTVVNX0ZSQUdNRU5UX0lEOyBpZCsrKSB7CiAgICAgICAg
IFBYRU5WSUZfVFJBTlNNSVRURVJfRlJBR01FTlQgICAgRnJhZ21lbnQ7CiAgICAgICAgIG5ldGlm
X3R4X3Jlc3BvbnNlX3QgICAgICAgICAgICAgKnJzcDsKKyAgICAgICAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRyYTsKIAogICAgICAgICBGcmFnbWVudCA9IFJpbmctPlBlbmRp
bmdbaWRdOwogCkBAIC0yMjU4LDcgKzIzMzksNyBAQCBfX1RyYW5zbWl0dGVyUmluZ0Zha2VSZXNw
b25zZXMoCiAgICAgICAgIHJzcC0+aWQgPSBGcmFnbWVudC0+SWQ7CiAgICAgICAgIHJzcC0+c3Rh
dHVzID0gTkVUSUZfUlNQX0RST1BQRUQ7CiAKLSAgICAgICAgaWYgKEZyYWdtZW50LT5FeHRyYSkg
eworICAgICAgICBmb3IgKEV4dHJhID0gMDsgRXh0cmEgPCBGcmFnbWVudC0+RXh0cmE7IEV4dHJh
KyspIHsKICAgICAgICAgICAgIHJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZSaW5nLT5Gcm9udCwg
cnNwX3Byb2QpOwogICAgICAgICAgICAgcnNwX3Byb2QrKzsKICAgICAgICAgICAgIENvdW50Kys7
CkBAIC0yMzc0LDYgKzI0NTUsNyBAQCBUcmFuc21pdHRlclJpbmdQb2xsKAogICAgIGZvciAoOzsp
IHsKICAgICAgICAgUklOR19JRFggICAgcnNwX3Byb2Q7CiAgICAgICAgIFJJTkdfSURYICAgIHJz
cF9jb25zOworICAgICAgICBVTE9ORyAgICAgICBFeHRyYTsKIAogICAgICAgICBLZU1lbW9yeUJh
cnJpZXIoKTsKIApAQCAtMjM4NSw2ICsyNDY3LDcgQEAgVHJhbnNtaXR0ZXJSaW5nUG9sbCgKICAg
ICAgICAgaWYgKHJzcF9jb25zID09IHJzcF9wcm9kIHx8IFJldHJ5KQogICAgICAgICAgICAgYnJl
YWs7CiAKKyAgICAgICAgRXh0cmEgPSAwOwogICAgICAgICB3aGlsZSAocnNwX2NvbnMgIT0gcnNw
X3Byb2QgJiYgIVJldHJ5KSB7CiAgICAgICAgICAgICBuZXRpZl90eF9yZXNwb25zZV90ICAgICAg
ICAgICAgICpyc3A7CiAgICAgICAgICAgICB1aW50MTZfdCAgICAgICAgICAgICAgICAgICAgICAg
IGlkOwpAQCAtMjM5Nyw4ICsyNDgwLDEzIEBAIFRyYW5zbWl0dGVyUmluZ1BvbGwoCiAKICAgICAg
ICAgICAgIFJpbmctPlN0b3BwZWQgPSBGQUxTRTsKIAotICAgICAgICAgICAgaWYgKHJzcC0+c3Rh
dHVzID09IE5FVElGX1JTUF9OVUxMKQorICAgICAgICAgICAgaWYgKHJzcC0+c3RhdHVzID09IE5F
VElGX1JTUF9OVUxMKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKEV4dHJhICE9IDApOworICAg
ICAgICAgICAgICAgIC0tRXh0cmE7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEFTU0VSVDNVKEV4dHJhLCA9PSwgMCk7CiAKICAgICAgICAg
ICAgIGlkID0gcnNwLT5pZDsKIApAQCAtMjQ3NCw3ICsyNTYyLDggQEAgVHJhbnNtaXR0ZXJSaW5n
UG9sbCgKICAgICAgICAgICAgICAgICBGcmFnbWVudC0+RW50cnkgPSBOVUxMOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBGcmFnbWVudC0+RXh0cmEgPSBGQUxTRTsKKyAgICAgICAgICAg
IEV4dHJhID0gRnJhZ21lbnQtPkV4dHJhOworICAgICAgICAgICAgRnJhZ21lbnQtPkV4dHJhID0g
MDsKICAgICAgICAgICAgIF9fVHJhbnNtaXR0ZXJQdXRGcmFnbWVudChSaW5nLCBGcmFnbWVudCk7
CiAKICAgICAgICAgICAgIGlmIChQYWNrZXQgPT0gTlVMTCkKQEAgLTI1MTAsNiArMjU5OSw3IEBA
IFRyYW5zbWl0dGVyUmluZ1BvbGwoCiAgICAgICAgICAgICBpZiAocnNwX2NvbnMgLSBSaW5nLT5G
cm9udC5yc3BfY29ucyA+IFhFTlZJRl9UUkFOU01JVFRFUl9CQVRDSChSaW5nKSkKICAgICAgICAg
ICAgICAgICBSZXRyeSA9IFRSVUU7CiAgICAgICAgIH0KKyAgICAgICAgQVNTRVJUM1UoRXh0cmEs
ID09LCAwKTsKIAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIApAQCAtNDgxNyw2ICs0OTA3
LDcgQEAgVHJhbnNtaXR0ZXJRdWV1ZVBhY2tldCgKICAgICBQYWNrZXQtPk9mZmxvYWRPcHRpb25z
ID0gT2ZmbG9hZE9wdGlvbnM7CiAgICAgUGFja2V0LT5NYXhpbXVtU2VnbWVudFNpemUgPSBNYXhp
bXVtU2VnbWVudFNpemU7CiAgICAgUGFja2V0LT5UYWdDb250cm9sSW5mb3JtYXRpb24gPSBUYWdD
b250cm9sSW5mb3JtYXRpb247CisgICAgUGFja2V0LT5IYXNoID0gKkhhc2g7CiAgICAgUGFja2V0
LT5Db29raWUgPSBDb29raWU7CiAKICAgICBTdGFydFZhID0gUGFja2V0LT5IZWFkZXI7Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:09:54 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:09:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hZC-0006jg-8F; Tue, 17 May 2016 16:09:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hZB-0006ja-1g
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:09:53 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 DF/9A-04050-0524B375; Tue, 17 May 2016 16:09:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkqOvvZB1
 u0Pie1+LP4kQHRo/DH66wBDBGsWbmJeVXJLBmvDy3n7Xg1i/Gil+vbzI3MO7bytjFyMUhJDCb
 UWLZoXMsXYycHCwCl1gkDq7yAElICLxjkXh3v5MNJCEhECOx8edvJgi7WmLyy15WEFtIQFGi+
 doFdohJy5gklr9fBTaJTUBd4vb7xewQDXYSn2bdBLNFBFQlri0/BjaUWUBL4uGGeYwgtrCApk
 TXx5lsEFeoSpx/MR1sGa+Au8Sl1ZNZIObISeydvJplAiP/AkaGVYzqxalFZalFuiZ6SUWZ6Rk
 luYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiBIcQABDsYG784HWKU5GBSEuW9YGIdLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mC96UDUE6wKDU9tSItMwcYzDBpCQ4eJRHeVyBp3uKCxNzizHSI1
 ClGXY4tU++tZRJiycvPS5US5/0KUiQAUpRRmgc3AhZZlxhlpYR5GYGOEuIpSC3KzSxBlX/FKM
 7BqCTM+xFkCk9mXgncpldARzABHTHBzALkiJJEhJRUA6PGEa8Ngq/Xn1xy5FZG0OPpt/RO3rh
 9x896+/uOLOkTUl83TpmyJOddk+eSy2b6offk/cQXz+rmtwhtfsZ/pfTTObk7pUk/O87FZGid
 PdP3/VWjed+f6rNdenOdRFiLQhYLX7y3dZpuqzxXb9RlhZ5LtYdevrtl/q6m73nm4T+By1ZOZ
 +2z/PlZiaU4I9FQi7moOBEA8qFogacCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1463501390!23897747!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62168 invoked from network); 17 May 2016 16:09:51 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:09:51 -0000
Received: by mail-wm0-f65.google.com with SMTP id n129so5946786wmn.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:09:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Ub0hpf4zL4iS8HSf9td2w3Plgndd/5oJOYryCvtZiDs=;
 b=AaJ0JBdNHu4UkUk6M4e+RP95AcMzMoafW1q34Qq+PYRk4EItQ/TTUc+rfblxifLT/1
 RFVogFxGfurdlZole9cpMZ0won+zN8KpxfgmFneDjIJ2LRECtmKiJiJlBsj4BG36r09S
 DKagAy+2Na9gnSj7qo0chiTEeP8/CsinZr0Oh6Bx+GU0UPlS1T+ZZBt1fep6VcpkSbY4
 0J+hpS7kxsd04McrMzLKJa3P5OELgZFk4SNTFH4F/wrsHE8MHfMsmKY4v4mTxl58e/Ed
 /XC5Jm5/qBmyE0Sbi8i8YslUjlX1L3CDrQjIUEB+EpUSmc05zppEIf/ltqRgrk11l/sL
 9v1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Ub0hpf4zL4iS8HSf9td2w3Plgndd/5oJOYryCvtZiDs=;
 b=O3iwyE3QBbf9OREcA/hbgqItLOYk4QnHI3lblMqBGz4kVwyKtiIFBNMofS/gW/hNas
 GTHnJwX0g5QACSHxI3rmADD7FMqTD0VohEyaZKcIcwRXVwvD1eqzHvvEI23Kkx5Rz7gT
 Fd5kauLLBNGMi37XHveXjpPPVgETuefkOTBtAFhjH4lIFCh4ONVp0NbwVmJZxgIuIZyc
 vovv4pHxHBfozUcXXnciq5KlGm821BdcaynzNTdHvP+Ka6W7zthMFq4ELPVQbsMGupah
 gh1/AFw7k3yyj2HAbmRF2sK61wS9jhpQvFbMNZszakltcUCQUHVE/ScWrcwuvGTKWD/U
 /Hkg==
X-Gm-Message-State: AOPr4FVun6pNGioaz8WoJIvEftxnDstnjO7g1DV6tBJUVjcgqlu0tjadocJ2StMfG85R6A==
X-Received: by 10.28.148.202 with SMTP id w193mr24568912wmd.29.1463501390427; 
 Tue, 17 May 2016 09:09:50 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d23sm4388262wmd.1.2016.05.17.09.09.49
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:09:50 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:09:54 +0100
Message-Id: <1463501394-10248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Add support for NDIS RSS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXBkYXRlIHRvIFZJRiBpbnRlcmZhY2UgdmVyc2lvbiA2IGFuZCBtYWtlIHVzZSBvZiB0aGUgZXh0
cmEgZnVuY3Rpb25hbGl0eQpwcm92aWRlZCB0byBzdXBwb3J0IE5ESVMgUlNTLgoKU2lnbmVkLW9m
Zi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRl
L3ZpZl9pbnRlcmZhY2UuaCAgfCAxNDYgKysrKysrKysrKysrKysrKystCiBzcmMveGVubmV0Lmlu
ZiAgICAgICAgICAgfCAgMTQgKy0KIHNyYy94ZW5uZXQvYWRhcHRlci5jICAgICB8IDM3NiArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3hlbm5ldC9y
ZWNlaXZlci5jICAgIHwgIDQ0ICsrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5oICAgIHwgICAx
ICsKIHNyYy94ZW5uZXQvdHJhbnNtaXR0ZXIuYyB8ICAzMyArKysrLQogNiBmaWxlcyBjaGFuZ2Vk
LCA2MDMgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS92aWZfaW50ZXJmYWNlLmggYi9pbmNsdWRlL3ZpZl9pbnRlcmZhY2UuaAppbmRleCA1YTA2NGZk
Li44NTM1NTRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZpZl9pbnRlcmZhY2UuaAorKysgYi9pbmNs
dWRlL3ZpZl9pbnRlcmZhY2UuaApAQCAtNTAsMjAgKzUwLDQ0IEBAIHR5cGVkZWYgZW51bSBfWEVO
VklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSB7CiAgICAgLyohIE5vbmUgKHZhbHVlIHNob3VsZCBi
ZSBpZ25vcmVkKSAqLwogICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fTk9ORSA9IDAs
CiAgICAgLyohIFVuc3BlY2lmaWVkIGhhc2ggKHZhbHVlIGNhbiBiZSB1c2VkKSAqLwotICAgIFhF
TlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQKKyAgICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVELAorICAgIC8qISBUb2VwbGl0eiBoYXNoICovCisg
ICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQTElUWgogfSBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNLCAqUFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE07CiAKLS8qISBc
c3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEKK3R5cGVkZWYgZW51bSBfWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEUgeworICAgIC8qISBOb25lICh2YWx1ZSBzaG91bGQgYmUgaWdub3JlZCkgKi8K
KyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9OT05FID0gMCwKKyAgICAvKiEgSVB2NCBoZWFk
ZXIgb25seSAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjQsCisgICAgLyohIElQ
djQgYW5kIFRDUCBoZWFkZXJzICovCisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNF9U
Q1AsCisgICAgLyohIElQdjYgaGVhZGVyIG9ubHkgKi8KKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hf
VFlQRV9JUFY2LAorICAgIC8qISBJUHY2IGFuZCBUQ1AgaGVhZGVycyAqLworICAgIFhFTlZJRl9Q
QUNLRVRfSEFTSF9UWVBFX0lQVjZfVENQCit9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFLCAqUFhF
TlZJRl9QQUNLRVRfSEFTSF9UWVBFOworCitzdHJ1Y3QgX1hFTlZJRl9QQUNLRVRfSEFTSF9WMSB7
CisgICAgLyohIEhhc2ggYWxnb3JpdGhtIHVzZWQgdG8gY2FsY3VsYXRlIHZhbHVlICovCisgICAg
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG07CisgICAgLyohIENhbGN1
bGF0ZWQgdmFsdWUgKi8KKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
OworfTsKKworLyohIFxzdHJ1Y3QgX1hFTlZJRl9QQUNLRVRfSEFTSF9WMgogICAgIFxicmllZiBI
YXNoIGluZm9ybWF0aW9uCiAqLwotc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgeworc3Ry
dWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIgewogICAgIC8qISBIYXNoIGFsZ29yaXRobSB1c2Vk
IHRvIGNhbGN1bGF0ZSB2YWx1ZSAqLwogICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0g
ICAgQWxnb3JpdGhtOworICAgIC8qISBTY29wZSBvZiBoYXNoICovCisgICAgWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEUgICAgICAgICBUeXBlOwogICAgIC8qISBDYWxjdWxhdGVkIHZhbHVlICovCiAg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsKIH07CiAKLXR5cGVkZWYg
c3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgWEVOVklGX1BBQ0tFVF9IQVNILCAqUFhFTlZJ
Rl9QQUNLRVRfSEFTSDsKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIgWEVO
VklGX1BBQ0tFVF9IQVNILCAqUFhFTlZJRl9QQUNLRVRfSEFTSDsKIAogLyohIFxzdHJ1Y3QgX1hF
TlZJRl9QQUNLRVRfSEVBREVSX1YxCiAgICAgXGJyaWVmIFBhY2tldCBoZWFkZXIgaW5mb3JtYXRp
b24KQEAgLTM2Niw2ICszOTAsNyBAQCB0eXBlZGVmIFZPSUQKICAgICBccGFyYW0gTWF4aW11bVNl
Z21lbnRTaXplIFRoZSBUQ1AgTVNTICh1c2VkIG9ubHkgaWYgT2ZmbG9hZE9wdGlvbnMuT2ZmbG9h
ZElwVmVyc2lvbls0fDZdTGFyZ2VQYWNrZXQgaXMgc2V0KQogICAgIFxwYXJhbSBUYWdDb250cm9s
SW5mb3JtYXRpb24gVGhlIFZMQU4gVENJICh1c2VkIG9ubHkgaWYgT2ZmbG9hZE9wdGlvbnMuT2Zm
bG9hZFRhZ01hbmlwdWxhdGlvbiBpcyBzZXQpCiAgICAgXHBhcmFtIEluZm8gSGVhZGVyIGluZm9y
bWF0aW9uIGZvciB0aGUgcGFja2V0CisgICAgXHBhcmFtIEhhc2ggSGFzaCBpbmZvcm1hdGlvbiBm
b3IgdGhlIHBhY2tldAogICAgIFxwYXJhbSBDb29raWUgQ29va2llIHRoYXQgc2hvdWxkIGJlIHBh
c3NlZCB0byBYRU5WSUZfUkVDRUlWRVJfUkVUVVJOX1BBQ0tFVCBtZXRob2QKIAogICAgIFxiIFhF
TlZJRl9NQUNfU1RBVEVfQ0hBTkdFOgpAQCAtNDI3LDYgKzQ1MiwzNSBAQCB0eXBlZGVmIE5UU1RB
VFVTCiAgICAgT1VUIFBVTE9OR0xPTkcgICAgICAgICAgICAgIFZhbHVlCiAgICAgKTsKIAorLyoh
IFx0eXBlZGVmIFhFTlZJRl9WSUZfUVVFUllfUklOR19DT1VOVAorICAgIFxicmllZiBRdWVyeSB0
aGUgbnVtYmVyIG9mIHNoYXJlZCByaW5ncyBiZXR3ZWVuIGZyb250ZW5kCisgICAgYW5kIGJhY2tl
bmQKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFy
YW0gQ291bnQgQnVmZmVyIHRvIHJlY2VpdmUgdGhlIGNvdW50CisqLwordHlwZWRlZiBWT0lECiso
KlhFTlZJRl9WSUZfUVVFUllfUklOR19DT1VOVCkoCisgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVy
ZmFjZSwKKyAgICBPVVQgUFVMT05HICAgICAgQ291bnQKKyAgICApOworCisvKiEgXHR5cGVkZWYg
WEVOVklGX1ZJRl9VUERBVEVfSEFTSF9NQVBQSU5HCisgICAgXGJyaWVmIFVwZGF0ZSB0aGUgbWFw
cGluZyBvZiBoYXNoIHRvIHRyYW5zbWl0dGVyL3JlY2VpdmVyIHJpbmcKKworICAgIFRoZSBkZWZh
dWx0IG1hcHBpbmcgaXMgaGFzaCAlIG51bWJlci1vZi1yaW5ncworCisgICAgXHBhcmFtIEludGVy
ZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBNYXBwaW5nIFRoZSBtYXBwaW5n
IHRhYmxlCisgICAgXHBhcmFtIFNpemUgVGhlIHNpemUgb2YgdGhlIG1hcHBpbmcgdGFibGUKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfVVBEQVRFX0hBU0hfTUFQUElORykoCisg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBQUFJPQ0VTU09S
X05VTUJFUiAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAg
ICk7CisKIHR5cGVkZWYgVk9JRAogKCpYRU5WSUZfVklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVRT
X1YxKSgKICAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLApAQCAtNTc5LDYgKzYzMyw1MiBA
QCB0eXBlZGVmIFZPSUQKICAgICBPVVQgUFVMT05HICAgICAgU2l6ZQogICAgICk7CiAKKy8qISBc
dHlwZWRlZiBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9IQVNIX0FMR09SSVRITQorICAgIFxicmll
ZiBTZWxlY3QgYSBoYXNoIGFsb3JpdGhtCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRl
cmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIEFsZ29yaXRobSBUaGUgYWxnb3JpdGhtIHRvIGVuYWJs
ZSAob3IKKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUgdG8gZGlzYWJsZSBo
YXNoaW5nKQorKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOVklGX1ZJRl9SRUNFSVZFUl9TRVRf
SEFTSF9BTEdPUklUSE0pKAorICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAg
IEludGVyZmFjZSwKKyAgICBJTiAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdv
cml0aG0KKyAgICApOworCisvKiEgXHR5cGVkZWYgWEVOVklGX1ZJRl9SRUNFSVZFUl9RVUVSWV9I
QVNIX0NBUEFCSUxJVElFUworICAgIFxicmllZiBRdWVyeSBhbnkgYWxnb3JpdGhtLXNwZWNpZmlj
IGNhcGFiaWxpdGllcy4KKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFk
ZXIKKyAgICBccGFyYW0gLi4uIEFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHJlcG9ydGVkIGJ5IHRo
ZSBzZWxlY3RlZCBhbGdvcml0aG0KKworICAgIFxiIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklU
SE1fVE9FUExJVFo6CisgICAgXHBhcmFtIFR5cGVzIE1hc2sgb2YgaGFzaCB0eXBlcyBzdXBwb3J0
ZWQKKyovCit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfSEFT
SF9DQVBBQklMSVRJRVMpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAgLi4u
CisgICAgKTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZfUkVDRUlWRVJfVVBEQVRFX0hBU0hf
UEFSQU1FVEVSUworICAgIFxicmllZiBTZXQgcGFyYW1ldGVycyBvZiBjdXJyZW50bHkgc2VsZWN0
ZWQgYWxnb3JpdGhtLgorCisgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRl
cgorICAgIFxwYXJhbSAuLi4gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGJ5IHRoZSBz
ZWxlY3RlZCBhbGdvcml0aG0KKworICAgIFxiIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1f
VE9FUExJVFo6CisgICAgXHBhcmFtIFR5cGVzIE1hc2sgb2YgaGFzaCB0eXBlcyBlbmFibGVkCisg
ICAgXHBhcmFtIEtleSBQb2ludGVyIHRvIGEgNDAtYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBo
YXNoIGtleQorKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOVklGX1ZJRl9SRUNFSVZFUl9VUERB
VEVfSEFTSF9QQVJBTUVURVJTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLAorICAg
IC4uLgorICAgICk7CisKKyNkZWZpbmUgWEVOVklGX1ZJRl9IQVNIX0tFWV9TSVpFICAgIDQwCisK
IC8qISBcdHlwZWRlZiBYRU5WSUZfVklGX01BQ19RVUVSWV9TVEFURQogICAgIFxicmllZiBRdWVy
eSB0aGUgY3VycmVudCBNQUMgKGxpbmspIHN0YXRlCiAKQEAgLTgyMiw3ICs5MjIsNDEgQEAgc3Ry
dWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSB7CiAgICAgWEVOVklGX1ZJRl9NQUNfUVVFUllf
RklMVEVSX0xFVkVMICAgICAgICAgICAgICAgTWFjUXVlcnlGaWx0ZXJMZXZlbDsKIH07CiAKLXR5
cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSBYRU5WSUZfVklGX0lOVEVSRkFD
RSwgKlBYRU5WSUZfVklGX0lOVEVSRkFDRTsKKy8qISBcc3RydWN0IF9YRU5WSUZfVklGX0lOVEVS
RkFDRV9WNgorICAgIFxicmllZiBWSUYgaW50ZXJmYWNlIHZlcnNpb24gNgorICAgIFxpbmdyb3Vw
IGludGVyZmFjZXMKKyovCitzdHJ1Y3QgX1hFTlZJRl9WSUZfSU5URVJGQUNFX1Y2IHsKKyAgICBJ
TlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7
CisgICAgWEVOVklGX1ZJRl9BQ1FVSVJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNx
dWlyZTsKKyAgICBYRU5WSUZfVklGX1JFTEVBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZWxlYXNlOworICAgIFhFTlZJRl9WSUZfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVuYWJsZTsKKyAgICBYRU5WSUZfVklGX0RJU0FCTEUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEaXNhYmxlOworICAgIFhFTlZJRl9WSUZfUVVFUllfU1RBVElTVElDICAgICAg
ICAgICAgICAgICAgICAgIFF1ZXJ5U3RhdGlzdGljOworICAgIFhFTlZJRl9WSUZfUVVFUllfUklO
R19DT1VOVCAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5UmluZ0NvdW50OworICAgIFhFTlZJRl9W
SUZfVVBEQVRFX0hBU0hfTUFQUElORyAgICAgICAgICAgICAgICAgIFVwZGF0ZUhhc2hNYXBwaW5n
OworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfUkVUVVJOX1BBQ0tFVCAgICAgICAgICAgICAgIFJl
Y2VpdmVyUmV0dXJuUGFja2V0OworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX09GRkxPQURf
T1BUSU9OUyAgICAgICAgIFJlY2VpdmVyU2V0T2ZmbG9hZE9wdGlvbnM7CisgICAgWEVOVklGX1ZJ
Rl9SRUNFSVZFUl9TRVRfQkFDS0ZJTExfU0laRSAgICAgICAgICAgUmVjZWl2ZXJTZXRCYWNrZmls
bFNpemU7CisgICAgWEVOVklGX1ZJRl9SRUNFSVZFUl9RVUVSWV9SSU5HX1NJWkUgICAgICAgICAg
ICAgUmVjZWl2ZXJRdWVyeVJpbmdTaXplOworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX0hB
U0hfQUxHT1JJVEhNICAgICAgICAgIFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobTsKKyAgICBYRU5W
SUZfVklGX1JFQ0VJVkVSX1FVRVJZX0hBU0hfQ0FQQUJJTElUSUVTICAgICBSZWNlaXZlclF1ZXJ5
SGFzaENhcGFiaWxpdGllczsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1VQREFURV9IQVNIX1BB
UkFNRVRFUlMgICAgICBSZWNlaXZlclVwZGF0ZUhhc2hQYXJhbWV0ZXJzOworICAgIFhFTlZJRl9W
SUZfVFJBTlNNSVRURVJfUVVFVUVfUEFDS0VUICAgICAgICAgICAgIFRyYW5zbWl0dGVyUXVldWVQ
YWNrZXQ7CisgICAgWEVOVklGX1ZJRl9UUkFOU01JVFRFUl9RVUVSWV9PRkZMT0FEX09QVElPTlMg
ICAgVHJhbnNtaXR0ZXJRdWVyeU9mZmxvYWRPcHRpb25zOworICAgIFhFTlZJRl9WSUZfVFJBTlNN
SVRURVJfUVVFUllfTEFSR0VfUEFDS0VUX1NJWkUgIFRyYW5zbWl0dGVyUXVlcnlMYXJnZVBhY2tl
dFNpemU7CisgICAgWEVOVklGX1ZJRl9UUkFOU01JVFRFUl9RVUVSWV9SSU5HX1NJWkUgICAgICAg
ICAgVHJhbnNtaXR0ZXJRdWVyeVJpbmdTaXplOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX1NU
QVRFICAgICAgICAgICAgICAgICAgICAgIE1hY1F1ZXJ5U3RhdGU7CisgICAgWEVOVklGX1ZJRl9N
QUNfUVVFUllfTUFYSU1VTV9GUkFNRV9TSVpFICAgICAgICAgTWFjUXVlcnlNYXhpbXVtRnJhbWVT
aXplOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX1BFUk1BTkVOVF9BRERSRVNTICAgICAgICAg
IE1hY1F1ZXJ5UGVybWFuZW50QWRkcmVzczsKKyAgICBYRU5WSUZfVklGX01BQ19RVUVSWV9DVVJS
RU5UX0FERFJFU1MgICAgICAgICAgICBNYWNRdWVyeUN1cnJlbnRBZGRyZXNzOworICAgIFhFTlZJ
Rl9WSUZfTUFDX1FVRVJZX01VTFRJQ0FTVF9BRERSRVNTRVMgICAgICAgIE1hY1F1ZXJ5TXVsdGlj
YXN0QWRkcmVzc2VzOworICAgIFhFTlZJRl9WSUZfTUFDX1NFVF9NVUxUSUNBU1RfQUREUkVTU0VT
ICAgICAgICAgIE1hY1NldE11bHRpY2FzdEFkZHJlc3NlczsKKyAgICBYRU5WSUZfVklGX01BQ19T
RVRfRklMVEVSX0xFVkVMICAgICAgICAgICAgICAgICBNYWNTZXRGaWx0ZXJMZXZlbDsKKyAgICBY
RU5WSUZfVklGX01BQ19RVUVSWV9GSUxURVJfTEVWRUwgICAgICAgICAgICAgICBNYWNRdWVyeUZp
bHRlckxldmVsOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9WSUZfSU5URVJGQUNFX1Y2
IFhFTlZJRl9WSUZfSU5URVJGQUNFLCAqUFhFTlZJRl9WSUZfSU5URVJGQUNFOwogCiAvKiEgXGRl
ZiBYRU5WSUZfVklGCiAgICAgXGJyaWVmIE1hY3JvIGF0IGFzc2lzdCBpbiBtZXRob2QgaW52b2Nh
dGlvbgpAQCAtODMzLDYgKzk2Nyw2IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVS
RkFDRV9WNSBYRU5WSUZfVklGX0lOVEVSRkFDRSwgKlBYRU5WSUZfVklGX0lOVEVSCiAjZW5kaWYg
IC8vIF9XSU5ETEwKIAogI2RlZmluZSBYRU5WSUZfVklGX0lOVEVSRkFDRV9WRVJTSU9OX01JTiAg
ICAyCi0jZGVmaW5lIFhFTlZJRl9WSUZfSU5URVJGQUNFX1ZFUlNJT05fTUFYICAgIDUKKyNkZWZp
bmUgWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggICAgNgogCiAjZW5kaWYgIC8vIF9Y
RU5WSUZfSU5URVJGQUNFX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQuaW5mIGIvc3JjL3hlbm5l
dC5pbmYKaW5kZXggZWRlZTZmNi4uYjZlNjYyOCAxMDA2NDQKLS0tIGEvc3JjL3hlbm5ldC5pbmYK
KysrIGIvc3JjL3hlbm5ldC5pbmYKQEAgLTYxLDkgKzYxLDkgQEAgeGVubmV0X2NvaW5zdF9ATUFK
T1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVS
QC5kbGwKIDsgRGlzcGxheU5hbWUJCVNlY3Rpb24JCURldmljZUlECiA7IC0tLS0tLS0tLS0tCQkt
LS0tLS0tCQktLS0tLS0tLQogCi0lWGVuTmV0RGVzYyUJCT1YZW5OZXRfSW5zdCwJWEVOVklGXFZF
Tl9AVkVORE9SX1BSRUZJWEBAVkVORE9SX0RFVklDRV9JREAmREVWX05FVCZSRVZfMDgwMDAwMDkK
LSVYZW5OZXREZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5WSUZcVkVOX0BWRU5ET1JfUFJFRklYQDAw
MDEmREVWX05FVCZSRVZfMDgwMDAwMDkKLSVYZW5OZXREZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5W
SUZcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDImREVWX05FVCZSRVZfMDgwMDAwMDkKKyVYZW5OZXRE
ZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5WSUZcVkVOX0BWRU5ET1JfUFJFRklYQEBWRU5ET1JfREVW
SUNFX0lEQCZERVZfTkVUJlJFVl8wODAwMDAwQgorJVhlbk5ldERlc2MlCQk9WGVuTmV0X0luc3Qs
CVhFTlZJRlxWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfTkVUJlJFVl8wODAwMDAwQgorJVhl
bk5ldERlc2MlCQk9WGVuTmV0X0luc3QsCVhFTlZJRlxWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZE
RVZfTkVUJlJFVl8wODAwMDAwQgogCiBbWGVuTmV0X0luc3RdIAogQ2hhcmFjdGVyaXN0aWNzPTB4
ODQKQEAgLTE1OSw2ICsxNTksMTMgQEAgSEtSLCBOZGlccGFyYW1zXExST0lQdjYsICAgICAgICAg
ICAgICAgICAgICAgICAgICBPcHRpb25hbCwgICAwLCAiMCIKIEhLUiwgTmRpXHBhcmFtc1xMUk9J
UHY2XGVudW0sICAgICAgICAgICAgICAgICAgICAgIjAiLCAgICAgICAgMCwgJURpc2FibGVkJQog
SEtSLCBOZGlccGFyYW1zXExST0lQdjZcZW51bSwgICAgICAgICAgICAgICAgICAgICAiMSIsICAg
ICAgICAwLCAlRW5hYmxlZCUKIAorSEtSLCBOZGlccGFyYW1zXCpSU1MsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQYXJhbURlc2MsICAwLCAlUlNTJQorSEtSLCBOZGlccGFyYW1zXCpSU1Ms
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlLCAgICAgICAwLCAiZW51bSIKK0hLUiwg
TmRpXHBhcmFtc1wqUlNTLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCwgICAg
MCwgIjEiCitIS1IsIE5kaVxwYXJhbXNcKlJTUywgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE9wdGlvbmFsLCAgIDAsICIwIgorSEtSLCBOZGlccGFyYW1zXCpSU1NcZW51bSwgICAgICAgICAg
ICAgICAgICAgICAgICAiMCIsICAgICAgICAwLCAlRGlzYWJsZWQlCitIS1IsIE5kaVxwYXJhbXNc
KlJTU1xlbnVtLCAgICAgICAgICAgICAgICAgICAgICAgICIxIiwgICAgICAgIDAsICVFbmFibGVk
JQorCiBbWGVuTmV0X0luc3QuU2VydmljZXNdIAogQWRkU2VydmljZT14ZW5uZXQsMHgwMixYZW5O
ZXRfU2VydmljZSxYZW5OZXRfRXZlbnRMb2cKIApAQCAtMjAyLDYgKzIwOSw3IEBAIExTT1YySVB2
ND0iTGFyZ2UgU2VuZCBPZmZsb2FkIFYyIChJUHY0KSIKIExTT1YySVB2Nj0iTGFyZ2UgU2VuZCBP
ZmZsb2FkIFYyIChJUHY2KSIKIExST0lQdjQ9IkxhcmdlIFJlY2VpdmUgT2ZmbG9hZCAoSVB2NCki
CiBMUk9JUHY2PSJMYXJnZSBSZWNlaXZlIE9mZmxvYWQgKElQdjYpIgorUlNTPSJSZWNlaXZlIFNp
ZGUgU2NhbGluZyIKIEhlYWRlckRhdGFTcGxpdD0iSGVhZGVyIERhdGEgU3BsaXQiCiBEaXNhYmxl
ZD0iRGlzYWJsZWQiCiBFbmFibGVkPSJFbmFibGVkIgpkaWZmIC0tZ2l0IGEvc3JjL3hlbm5ldC9h
ZGFwdGVyLmMgYi9zcmMveGVubmV0L2FkYXB0ZXIuYwppbmRleCA0ZTJmN2ZhLi4zNjE0YWE3IDEw
MDY0NAotLS0gYS9zcmMveGVubmV0L2FkYXB0ZXIuYworKysgYi9zcmMveGVubmV0L2FkYXB0ZXIu
YwpAQCAtNjAsOCArNjAsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1BST1BFUlRJRVMgewogICAgIGlu
dCBsc292NjsKICAgICBpbnQgbHJvdjQ7CiAgICAgaW50IGxyb3Y2OworICAgIGludCByc3M7CiB9
IFBST1BFUlRJRVMsICpQUFJPUEVSVElFUzsKIAordHlwZWRlZiBzdHJ1Y3QgX1hFTk5FVF9SU1Mg
eworICAgIEJPT0xFQU4gU3VwcG9ydGVkOworICAgIEJPT0xFQU4gSGFzaEVuYWJsZWQ7CisgICAg
Qk9PTEVBTiBTY2FsZUVuYWJsZWQ7CisgICAgVUxPTkcgICBUeXBlczsKKyAgICBVQ0hBUiAgIEtl
eVtORElTX1JTU19IQVNIX1NFQ1JFVF9LRVlfTUFYX1NJWkVfUkVWSVNJT05fMV07Cit9IFhFTk5F
VF9SU1MsICpQWEVOTkVUX1JTUzsKKwogc3RydWN0IF9YRU5ORVRfQURBUFRFUiB7CiAgICAgWEVO
VklGX1ZJRl9JTlRFUkZBQ0UgICAgICAgIFZpZkludGVyZmFjZTsKICAgICBYRU5CVVNfU1RPUkVf
SU5URVJGQUNFICAgICAgU3RvcmVJbnRlcmZhY2U7CkBAIC03Nyw2ICs4Niw3IEBAIHN0cnVjdCBf
WEVOTkVUX0FEQVBURVIgewogICAgIE5ESVNfUE5QX0NBUEFCSUxJVElFUyAgICAgICBDYXBhYmls
aXRpZXM7CiAgICAgTkRJU19PRkZMT0FEICAgICAgICAgICAgICAgIE9mZmxvYWQ7CiAgICAgUFJP
UEVSVElFUyAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXM7CisgICAgWEVOTkVUX1JTUyAgICAg
ICAgICAgICAgICAgIFJzczsKIAogICAgIFBYRU5ORVRfUkVDRUlWRVIgICAgICAgICAgICBSZWNl
aXZlcjsKICAgICBQWEVOTkVUX1RSQU5TTUlUVEVSICAgICAgICAgVHJhbnNtaXR0ZXI7CkBAIC0x
MzgsNiArMTQ4LDggQEAgc3RhdGljIE5ESVNfT0lEIFhlbm5ldFN1cHBvcnRlZE9pZHNbXSA9CiAg
ICAgT0lEX1BOUF9DQVBBQklMSVRJRVMsCiAgICAgT0lEX1BOUF9RVUVSWV9QT1dFUiwKICAgICBP
SURfUE5QX1NFVF9QT1dFUiwKKyAgICBPSURfR0VOX1JFQ0VJVkVfU0NBTEVfUEFSQU1FVEVSUywK
KyAgICBPSURfR0VOX1JFQ0VJVkVfSEFTSCwKIH07CiAKICNkZWZpbmUgQURBUFRFUl9QT09MX1RB
RyAgICAnQXRlTicKQEAgLTIxMSw2ICsyMjMsNyBAQCBBZGFwdGVyVmlmQ2FsbGJhY2soCiAgICAg
ICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplOwog
ICAgICAgICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ0NvbnRyb2xJbmZvcm1h
dGlvbjsKICAgICAgICAgUFhFTlZJRl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvOworICAg
ICAgICBQWEVOVklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAgIEhhc2g7CiAgICAgICAgIFBWT0lE
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29va2llOwogCiAgICAgICAgIE1kbCA9IHZhX2Fy
ZyhBcmd1bWVudHMsIFBNREwpOwpAQCAtMjIwLDYgKzIzMyw3IEBAIEFkYXB0ZXJWaWZDYWxsYmFj
aygKICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplID0gdmFfYXJnKEFyZ3VtZW50cywgVVNIT1JU
KTsKICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uID0gdmFfYXJnKEFyZ3VtZW50cywgVVNI
T1JUKTsKICAgICAgICAgSW5mbyA9IHZhX2FyZyhBcmd1bWVudHMsIFBYRU5WSUZfUEFDS0VUX0lO
Rk8pOworICAgICAgICBIYXNoID0gdmFfYXJnKEFyZ3VtZW50cywgUFhFTlZJRl9QQUNLRVRfSEFT
SCk7CiAgICAgICAgIENvb2tpZSA9IHZhX2FyZyhBcmd1bWVudHMsIFBWT0lEKTsKIAogICAgICAg
ICBSZWNlaXZlclF1ZXVlUGFja2V0KEFkYXB0ZXItPlJlY2VpdmVyLApAQCAtMjMwLDYgKzI0NCw3
IEBAIEFkYXB0ZXJWaWZDYWxsYmFjaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhp
bXVtU2VnbWVudFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbElu
Zm9ybWF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSGFzaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29r
aWUpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC02NzIsNiArNjg3LDIzMiBAQCBpbnZhbGlk
X3BhcmFtZXRlcjoKICN1bmRlZiBUWF9FTkFCTEVECiAjdW5kZWYgQ0hBTkdFCiAKK3N0YXRpYyBW
T0lECitBZGFwdGVyRGlzYWJsZVJTU0hhc2goCisgICAgSU4gIFBYRU5ORVRfQURBUFRFUiBBZGFw
dGVyCisgICAgKQoreworICAgIEFkYXB0ZXItPlJzcy5TY2FsZUVuYWJsZWQgPSBGQUxTRTsKKyAg
ICBBZGFwdGVyLT5Sc3MuSGFzaEVuYWJsZWQgPSBGQUxTRTsKKworICAgIChWT0lEKSBYRU5WSUZf
VklGKFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSwKKyAgICAgICAgICAgICAgICAgICAgICAmQWRh
cHRlci0+VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE1fTk9ORSk7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRhcHRlclVw
ZGF0ZVJTU1RhYmxlKAorICAgIElOICBQWEVOTkVUX0FEQVBURVIgQWRhcHRlciwKKyAgICBJTiAg
UENDSEFSICAgICAgICAgIFRhYmxlLAorICAgIElOICBVTE9ORyAgICAgICAgICAgVGFibGVTaXpl
CisgICAgKQoreworICAgIFBST0NFU1NPUl9OVU1CRVIgICAgTWFwcGluZ1tORElTX1JTU19JTkRJ
UkVDVElPTl9UQUJMRV9NQVhfU0laRV9SRVZJU0lPTl8xXTsKKyAgICBVTE9ORyAgICAgICAgICAg
ICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAgaWYgKFRh
YmxlU2l6ZSA9PSAwKSB7CisgICAgICAgIEFkYXB0ZXJEaXNhYmxlUlNTSGFzaChBZGFwdGVyKTsK
KyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX1NVQ0NFU1M7CisgICAgfQorCisgICAgUnRsWmVy
b01lbW9yeShNYXBwaW5nLCBzaXplb2YgKE1hcHBpbmcpKTsKKyAgICBmb3IgKEluZGV4ID0gMDsg
SW5kZXggPCBUYWJsZVNpemU7IEluZGV4KyspIHsKKyAgICAgICAgTWFwcGluZ1tJbmRleF0uR3Jv
dXAgPSAwOworICAgICAgICBNYXBwaW5nW0luZGV4XS5OdW1iZXIgPSBUYWJsZVtJbmRleF07Cisg
ICAgfQorCisgICAgc3RhdHVzID0gWEVOVklGX1ZJRihVcGRhdGVIYXNoTWFwcGluZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICBNYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVTaXplKTsK
KworICAgIHJldHVybiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSA/IE5ESVNfU1RBVFVTX1NVQ0NFU1Mg
OiBORElTX1NUQVRVU19JTlZBTElEX0RBVEE7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRh
cHRlclVwZGF0ZVJTU0tleSgKKyAgICBJTiAgUFhFTk5FVF9BREFQVEVSIEFkYXB0ZXIsCisgICAg
SU4gIFBVQ0hBUiAgICAgICAgICBLZXksCisgICAgSU4gIFVMT05HICAgICAgICAgICBLZXlTaXpl
CisgICAgKQoreworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAgaWYgKEtl
eVNpemUgPT0gMCkgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRlcik7Cisg
ICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIFJ0bFplcm9N
ZW1vcnkoQWRhcHRlci0+UnNzLktleSwgTkRJU19SU1NfSEFTSF9TRUNSRVRfS0VZX01BWF9TSVpF
X1JFVklTSU9OXzEpOworICAgIFJ0bENvcHlNZW1vcnkoQWRhcHRlci0+UnNzLktleSwgS2V5LCBL
ZXlTaXplKTsKKworICAgIHN0YXR1cyA9IFhFTlZJRl9WSUYoUmVjZWl2ZXJVcGRhdGVIYXNoUGFy
YW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICBBZGFwdGVyLT5Sc3MuS2V5KTsKKworICAgIHJldHVybiAoTlRfU1VDQ0VT
UyhzdGF0dXMpKSA/IE5ESVNfU1RBVFVTX1NVQ0NFU1MgOiBORElTX1NUQVRVU19JTlZBTElEX0RB
VEE7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRhcHRlclVwZGF0ZVJTU0hhc2goCisgICAg
SU4gIFBYRU5ORVRfQURBUFRFUiBBZGFwdGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgSW5m
b3JtYXRpb24KKyAgICApCit7CisgICAgVUxPTkcgICAgICAgICAgICAgICBIYXNoVHlwZSA9IE5E
SVNfUlNTX0hBU0hfVFlQRV9GUk9NX0hBU0hfSU5GTyhJbmZvcm1hdGlvbik7CisgICAgVUxPTkcg
ICAgICAgICAgICAgICBIYXNoRnVuYyA9IE5ESVNfUlNTX0hBU0hfRlVOQ19GUk9NX0hBU0hfSU5G
TyhJbmZvcm1hdGlvbik7CisgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBp
ZiAoSGFzaEZ1bmMgPT0gMCkgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRl
cik7CisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIGlm
IChIYXNoRnVuYyAhPSBOZGlzSGFzaEZ1bmN0aW9uVG9lcGxpdHopCisgICAgICAgIHJldHVybiBO
RElTX1NUQVRVU19GQUlMVVJFOworCisgICAgaWYgKEhhc2hUeXBlID09IDApCisgICAgICAgIHJl
dHVybiBORElTX1NUQVRVU19GQUlMVVJFOworCisgICAgaWYgKEhhc2hUeXBlICYgfihORElTX0hB
U0hfVENQX0lQVjQgfAorICAgICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX0lQVjQgfAorICAg
ICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX1RDUF9JUFY2IHwKKyAgICAgICAgICAgICAgICAg
ICAgIE5ESVNfSEFTSF9JUFY2KSkKKyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX0ZBSUxVUkU7
CisKKyAgICBzdGF0dXMgPSBYRU5WSUZfVklGKFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaKTsKKyAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX0ZB
SUxVUkU7CisKKyAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgPSAwOworCisgICAgaWYgKEhhc2hUeXBl
ICYgTkRJU19IQVNIX1RDUF9JUFY0KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8
PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUDsKKworICAgIGlmIChIYXNoVHlwZSAm
IE5ESVNfSEFTSF9JUFY0KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5W
SUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0OworCisgICAgaWYgKEhhc2hUeXBlICYgTkRJU19IQVNI
X1RDUF9JUFY2KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFD
S0VUX0hBU0hfVFlQRV9JUFY2X1RDUDsKKworICAgIGlmIChIYXNoVHlwZSAmIE5ESVNfSEFTSF9J
UFY2KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2OworCisgICAgc3RhdHVzID0gWEVOVklGX1ZJRihSZWNlaXZlclVwZGF0ZUhh
c2hQYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgJkFkYXB0ZXItPlZpZkludGVy
ZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFkYXB0ZXItPlJzcy5UeXBlcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEFkYXB0ZXItPlJzcy5LZXkpOworCisgICAgcmV0dXJuIChOVF9T
VUNDRVNTKHN0YXR1cykpID8gTkRJU19TVEFUVVNfU1VDQ0VTUyA6IE5ESVNfU1RBVFVTX0lOVkFM
SURfREFUQTsKK30KKworc3RhdGljIE5ESVNfU1RBVFVTCitBZGFwdGVyR2V0UmVjZWl2ZVNjYWxl
UGFyYW1ldGVycygKKyAgICBJTiAgUFhFTk5FVF9BREFQVEVSICAgICAgICAgICAgICAgICBBZGFw
dGVyLAorICAgIElOICBQTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlMgIFBhcmFtZXRlcnMK
KyAgICApCit7CisgICAgTkRJU19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgbmRpc1N0
YXR1czsKKworICAgIEFTU0VSVDNVKFBhcmFtZXRlcnMtPkhlYWRlci5UeXBlLCA9PSwgTkRJU19P
QkpFQ1RfVFlQRV9SU1NfUEFSQU1FVEVSUyk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVh
ZGVyLlJldmlzaW9uLCA9PSwgTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlNfUkVWSVNJT05f
MSk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVhZGVyLlNpemUsID49LCBORElTX1NJWkVP
Rl9SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlNfUkVWSVNJT05fMSk7CisKKyAgICBpZiAoIUFkYXB0
ZXItPlJzcy5TdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19OT1RfU1VQUE9S
VEVEOworCisgICAgaWYgKCFBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcykKKyAgICAgICAgcmV0dXJu
IE5ESVNfU1RBVFVTX05PVF9TVVBQT1JURUQ7CisKKyAgICBpZiAoQWRhcHRlci0+UnNzLkhhc2hF
bmFibGVkKQorICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NVUFBPUlRFRDsKKworICAg
IGlmICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJU19SU1NfUEFSQU1fRkxBR19ESVNBQkxFX1JT
UykpIHsKKyAgICAgICAgQWRhcHRlci0+UnNzLlNjYWxlRW5hYmxlZCA9IFRSVUU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgQWRhcHRlckRpc2FibGVSU1NIYXNoKEFkYXB0ZXIpOworICAgICAgICBy
ZXR1cm4gTkRJU19TVEFUVVNfU1VDQ0VTUzsKKyAgICB9CisKKyAgICBpZiAoIShQYXJhbWV0ZXJz
LT5GbGFncyAmIE5ESVNfUlNTX1BBUkFNX0ZMQUdfSEFTSF9JTkZPX1VOQ0hBTkdFRCkpIHsKKyAg
ICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJVcGRhdGVSU1NIYXNoKEFkYXB0ZXIsIFBhcmFtZXRl
cnMtPkhhc2hJbmZvcm1hdGlvbik7CisgICAgICAgIGlmIChuZGlzU3RhdHVzICE9IE5ESVNfU1RB
VFVTX1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgaWYgKCEo
UGFyYW1ldGVycy0+RmxhZ3MgJiBORElTX1JTU19QQVJBTV9GTEFHX0hBU0hfS0VZX1VOQ0hBTkdF
RCkpIHsKKyAgICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJVcGRhdGVSU1NLZXkoQWRhcHRlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBVQ0hBUilQYXJhbWV0
ZXJzICsgUGFyYW1ldGVycy0+SGFzaFNlY3JldEtleU9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycy0+SGFzaFNlY3JldEtleVNpemUpOwor
ICAgICAgICBpZiAobmRpc1N0YXR1cyAhPSBORElTX1NUQVRVU19TVUNDRVNTKQorICAgICAgICAg
ICAgZ290byBmYWlsOworICAgIH0KKworICAgIGlmICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJ
U19SU1NfUEFSQU1fRkxBR19JVEFCTEVfVU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVz
ID0gQWRhcHRlclVwZGF0ZVJTU1RhYmxlKEFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFBDQ0hBUilQYXJhbWV0ZXJzICsgUGFyYW1ldGVycy0+SW5k
aXJlY3Rpb25UYWJsZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYXJhbWV0ZXJzLT5JbmRpcmVjdGlvblRhYmxlU2l6ZSk7CisgICAgICAgIGlmIChu
ZGlzU3RhdHVzICE9IE5ESVNfU1RBVFVTX1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7
CisgICAgfQorCisgICAgcmV0dXJuIE5ESVNfU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWw6CisgICAg
QWRhcHRlckRpc2FibGVSU1NIYXNoKEFkYXB0ZXIpOworICAgIHJldHVybiBuZGlzU3RhdHVzOwor
fQorCitzdGF0aWMgTkRJU19TVEFUVVMKK0FkYXB0ZXJHZXRSZWNlaXZlSGFzaFBhcmFtZXRlcnMo
CisgICAgSU4gIFBYRU5ORVRfQURBUFRFUiAgICAgICAgICAgICAgICAgQWRhcHRlciwKKyAgICBJ
TiAgUE5ESVNfUkVDRUlWRV9IQVNIX1BBUkFNRVRFUlMgICBQYXJhbWV0ZXJzCisgICAgKQorewor
ICAgIE5ESVNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgIG5kaXNTdGF0dXM7CisKKyAg
ICBBU1NFUlQzVShQYXJhbWV0ZXJzLT5IZWFkZXIuVHlwZSwgPT0sIE5ESVNfT0JKRUNUX1RZUEVf
REVGQVVMVCk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVhZGVyLlJldmlzaW9uLCA9PSwg
TkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xKTsKKyAgICBBU1NFUlQzVShQ
YXJhbWV0ZXJzLT5IZWFkZXIuU2l6ZSwgPj0sIE5ESVNfU0laRU9GX1JFQ0VJVkVfSEFTSF9QQVJB
TUVURVJTX1JFVklTSU9OXzEpOworCisgICAgaWYgKCFBZGFwdGVyLT5Sc3MuU3VwcG9ydGVkKQor
ICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NVUFBPUlRFRDsKKworICAgIGlmIChBZGFw
dGVyLT5Sc3MuU2NhbGVFbmFibGVkKQorICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NV
UFBPUlRFRDsKKworICAgIGlmIChQYXJhbWV0ZXJzLT5GbGFncyAmIE5ESVNfUkVDRUlWRV9IQVNI
X0ZMQUdfRU5BQkxFX0hBU0gpIHsKKyAgICAgICAgQWRhcHRlci0+UnNzLkhhc2hFbmFibGVkID0g
VFJVRTsKKyAgICB9IGVsc2UgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRl
cik7CisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIGlm
ICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJU19SRUNFSVZFX0hBU0hfRkxBR19IQVNIX0lORk9f
VU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVzID0gQWRhcHRlclVwZGF0ZVJTU0hhc2go
QWRhcHRlciwgUGFyYW1ldGVycy0+SGFzaEluZm9ybWF0aW9uKTsKKyAgICAgICAgaWYgKG5kaXNT
dGF0dXMgIT0gTkRJU19TVEFUVVNfU1VDQ0VTUykKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAg
ICB9CisKKyAgICBpZiAoIShQYXJhbWV0ZXJzLT5GbGFncyAmIE5ESVNfUkVDRUlWRV9IQVNIX0ZM
QUdfSEFTSF9LRVlfVU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVzID0gQWRhcHRlclVw
ZGF0ZVJTU0tleShBZGFwdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoUFVDSEFSKVBhcmFtZXRlcnMgKyBQYXJhbWV0ZXJzLT5IYXNoU2VjcmV0S2V5T2Zmc2V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzLT5I
YXNoU2VjcmV0S2V5U2l6ZSk7CisgICAgICAgIGlmIChuZGlzU3RhdHVzICE9IE5ESVNfU1RBVFVT
X1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgcmV0dXJuIE5E
SVNfU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWw6CisgICAgQWRhcHRlckRpc2FibGVSU1NIYXNoKEFk
YXB0ZXIpOworICAgIHJldHVybiBuZGlzU3RhdHVzOworfQorCiBzdGF0aWMgTkRJU19TVEFUVVMK
IEFkYXB0ZXJRdWVyeUdlbmVyYWxTdGF0aXN0aWNzKAogICAgIElOICBQWEVOTkVUX0FEQVBURVIg
ICAgIEFkYXB0ZXIsCkBAIC0xMDQ3LDYgKzEyODgsNTkgQEAgZmFpbDE6CiAgICAgcmV0dXJuIE5E
SVNfU1RBVFVTX0JVRkZFUl9UT09fU0hPUlQ7CiB9CiAKK3N0YXRpYyBGT1JDRUlOTElORSBORElT
X1NUQVRVUworQWRhcHRlclJlY2VpdmVIYXNoKAorICAgIElOICBQWEVOTkVUX0FEQVBURVIgICAg
ICAgICAgICAgICAgIEFkYXB0ZXIsCisgICAgSU4gIFBORElTX1JFQ0VJVkVfSEFTSF9QQVJBTUVU
RVJTICAgUGFyYW1zLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1
ZmZlckxlbmd0aCwKKyAgICBJTiBPVVQgUFVMT05HICAgICAgICAgICAgICAgICAgICAgICBCeXRl
c1dyaXR0ZW4KKyAgICApCit7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSGFzaFR5cGU7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFz
aEZ1bmM7CisKKyAgICBpZiAoQnVmZmVyTGVuZ3RoIDwgTkRJU19TSVpFT0ZfUkVDRUlWRV9IQVNI
X1BBUkFNRVRFUlNfUkVWSVNJT05fMSArCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAo
QWRhcHRlci0+UnNzLktleSkpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBQYXJhbXMtPkhl
YWRlci5UeXBlID0gTkRJU19PQkpFQ1RfVFlQRV9ERUZBVUxUOworICAgIFBhcmFtcy0+SGVhZGVy
LlJldmlzaW9uID0gTkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xOworICAg
IFBhcmFtcy0+SGVhZGVyLlNpemUgPSBORElTX1NJWkVPRl9SRUNFSVZFX0hBU0hfUEFSQU1FVEVS
U19SRVZJU0lPTl8xOworCisgICAgUGFyYW1zLT5GbGFncyA9IChBZGFwdGVyLT5Sc3MuSGFzaEVu
YWJsZWQpID8gTkRJU19SRUNFSVZFX0hBU0hfRkxBR19FTkFCTEVfSEFTSCA6IDA7CisKKyAgICBI
YXNoRnVuYyA9IE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0ejsKKyAgICBIYXNoVHlwZSA9IDA7CisK
KyAgICBpZiAoQWRhcHRlci0+UnNzLlR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZ
UEVfSVBWNF9UQ1ApKQorICAgICAgICBIYXNoVHlwZSB8PSBORElTX0hBU0hfVENQX0lQVjQ7CisK
KyAgICBpZiAoQWRhcHRlci0+UnNzLlR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZ
UEVfSVBWNCkpCisgICAgICAgIEhhc2hUeXBlIHw9IE5ESVNfSEFTSF9JUFY0OworCisgICAgaWYg
KEFkYXB0ZXItPlJzcy5UeXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjZf
VENQKSkKKyAgICAgICAgSGFzaFR5cGUgfD0gTkRJU19IQVNIX1RDUF9JUFY2OworCisgICAgaWYg
KEFkYXB0ZXItPlJzcy5UeXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjYp
KQorICAgICAgICBIYXNoVHlwZSB8PSBORElTX0hBU0hfSVBWNjsKKworICAgIFBhcmFtcy0+SGFz
aEluZm9ybWF0aW9uID0gTkRJU19SU1NfSEFTSF9JTkZPX0ZST01fVFlQRV9BTkRfRlVOQyhIYXNo
VHlwZSwgSGFzaEZ1bmMpOworICAgIFBhcmFtcy0+SGFzaFNlY3JldEtleVNpemUgPSBzaXplb2Yg
KEFkYXB0ZXItPlJzcy5LZXkpOworICAgIFBhcmFtcy0+SGFzaFNlY3JldEtleU9mZnNldCA9IE5E
SVNfU0laRU9GX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTX1JFVklTSU9OXzE7CisKKyAgICBSdGxD
b3B5TWVtb3J5KChQVUNIQVIpUGFyYW1zICsgUGFyYW1zLT5IYXNoU2VjcmV0S2V5T2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgQWRhcHRlci0+UnNzLktleSwKKyAgICAgICAgICAgICAgICAgIFBh
cmFtcy0+SGFzaFNlY3JldEtleVNpemUpOworCisgICAgKkJ5dGVzV3JpdHRlbiA9IE5ESVNfU0la
RU9GX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTX1JFVklTSU9OXzEgKworICAgICAgICAgICAgICAg
ICAgICBzaXplb2YgKEFkYXB0ZXItPlJzcy5LZXkpOworICAgIHJldHVybiBORElTX1NUQVRVU19T
VUNDRVNTOworCitmYWlsMToKKyAgICAqQnl0ZXNXcml0dGVuID0gMDsKKyAgICByZXR1cm4gTkRJ
U19TVEFUVVNfQlVGRkVSX1RPT19TSE9SVDsKK30KKwogTkRJU19IQU5ETEUKIEFkYXB0ZXJHZXRI
YW5kbGUoCiAgICAgSU4gIFBYRU5ORVRfQURBUFRFUiAgICAgQWRhcHRlcgpAQCAtMTY5Myw2ICsx
OTg3LDMwIEBAIEFkYXB0ZXJTZXRJbmZvcm1hdGlvbigKICAgICAgICAgfQogICAgICAgICBicmVh
azsKIAorICAgIGNhc2UgT0lEX0dFTl9SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlM6CisgICAgICAg
IEJ5dGVzTmVlZGVkID0gTkRJU19TSVpFT0ZfUkVDRUlWRV9TQ0FMRV9QQVJBTUVURVJTX1JFVklT
SU9OXzE7CisgICAgICAgIGlmIChCdWZmZXJMZW5ndGggPj0gQnl0ZXNOZWVkZWQpIHsKKyAgICAg
ICAgICAgIG5kaXNTdGF0dXMgPSBBZGFwdGVyR2V0UmVjZWl2ZVNjYWxlUGFyYW1ldGVycyhBZGFw
dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChQTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlMpQnVmZmVyKTsKKyAgICAgICAg
ICAgIGlmIChuZGlzU3RhdHVzID09IE5ESVNfU1RBVFVTX1NVQ0NFU1MpCisgICAgICAgICAgICAg
ICAgQnl0ZXNSZWFkID0gc2l6ZW9mKE5ESVNfUkVDRUlWRV9TQ0FMRV9QQVJBTUVURVJTKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5kaXNTdGF0dXMgPSBORElTX1NUQVRVU19JTlZB
TElEX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgT0lEX0dF
Tl9SRUNFSVZFX0hBU0g6CisgICAgICAgIEJ5dGVzTmVlZGVkID0gTkRJU19TSVpFT0ZfUkVDRUlW
RV9IQVNIX1BBUkFNRVRFUlNfUkVWSVNJT05fMTsKKyAgICAgICAgaWYgKEJ1ZmZlckxlbmd0aCA+
PSBCeXRlc05lZWRlZCkgeworICAgICAgICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJHZXRSZWNl
aXZlSGFzaFBhcmFtZXRlcnMoQWRhcHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQTkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVS
UylCdWZmZXIpOworICAgICAgICAgICAgaWYgKG5kaXNTdGF0dXMgPT0gTkRJU19TVEFUVVNfU1VD
Q0VTUykKKyAgICAgICAgICAgICAgICBCeXRlc1JlYWQgPSBzaXplb2YoTkRJU19SRUNFSVZFX0hB
U0hfUEFSQU1FVEVSUyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuZGlzU3RhdHVz
ID0gTkRJU19TVEFUVVNfSU5WQUxJRF9MRU5HVEg7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisKICAgICBjYXNlIE9JRF9HRU5fSU5URVJSVVBUX01PREVSQVRJT046CiAgICAgY2FzZSBPSURf
R0VOX01BQ0hJTkVfTkFNRToKICAgICAgICAgV2FybiA9IEZBTFNFOwpAQCAtMjIzOCw2ICsyNTU2
LDE1IEBAIEFkYXB0ZXJRdWVyeUluZm9ybWF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkJ5dGVzV3JpdHRlbik7CiAgICAgICAgIGJyZWFrOwog
CisgICAgY2FzZSBPSURfR0VOX1JFQ0VJVkVfSEFTSDoKKyAgICAgICAgQnl0ZXNOZWVkZWQgPSBO
RElTX1NJWkVPRl9SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xICsKKyAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YgKEFkYXB0ZXItPlJzcy5LZXkpOworICAgICAgICBuZGlzU3Rh
dHVzID0gQWRhcHRlclJlY2VpdmVIYXNoKEFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFBORElTX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTKUJ1ZmZlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJMZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkJ5dGVzV3JpdHRlbik7Cisg
ICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBPSURfSVA0X09GRkxPQURfU1RBVFM6CiAgICAgY2Fz
ZSBPSURfSVA2X09GRkxPQURfU1RBVFM6CiAgICAgY2FzZSBPSURfR0VOX1NVUFBPUlRFRF9HVUlE
UzoKQEAgLTIzODUsNiArMjcxMiw3IEBAIEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzKAogICAg
IFJFQURfUFJPUEVSVFkoQWRhcHRlci0+UHJvcGVydGllcy5scm92NCwgTCJMUk9JUHY0IiwgMSwg
SGFuZGxlKTsKICAgICBSRUFEX1BST1BFUlRZKEFkYXB0ZXItPlByb3BlcnRpZXMubHJvdjYsIEwi
TFJPSVB2NiIsIDEsIEhhbmRsZSk7CiAgICAgUkVBRF9QUk9QRVJUWShBZGFwdGVyLT5Qcm9wZXJ0
aWVzLm5lZWRfY3N1bV92YWx1ZSwgTCJOZWVkQ2hlY2tzdW1WYWx1ZSIsIDEsIEhhbmRsZSk7Cisg
ICAgUkVBRF9QUk9QRVJUWShBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcywgTCIqUlNTIiwgMSwgSGFu
ZGxlKTsKIAogICAgIE5kaXNDbG9zZUNvbmZpZ3VyYXRpb24oSGFuZGxlKTsKIApAQCAtMjQyOCw3
ICsyNzU2LDEwIEBAIEFkYXB0ZXJTZXRHZW5lcmFsQXR0cmlidXRlcygKICAgICApCiB7CiAgICAg
TkRJU19NSU5JUE9SVF9BREFQVEVSX0dFTkVSQUxfQVRUUklCVVRFUyAgICBBdHRyaWJzOworICAg
IFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM7CisgICAg
TkRJU19SRUNFSVZFX1NDQUxFX0NBUEFCSUxJVElFUyAgICAgICAgICAgICBSc3M7CiAgICAgTkRJ
U19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGlzU3RhdHVzOworICAg
IE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAg
ICAgUnRsWmVyb01lbW9yeSgmQXR0cmlicywgc2l6ZW9mKEF0dHJpYnMpKTsKICAgICBBdHRyaWJz
LkhlYWRlci5UeXBlID0gTkRJU19PQkpFQ1RfVFlQRV9NSU5JUE9SVF9BREFQVEVSX0dFTkVSQUxf
QVRUUklCVVRFUzsKQEAgLTI0NjIsNyArMjc5Myw2IEBAIEFkYXB0ZXJTZXRHZW5lcmFsQXR0cmli
dXRlcygKICAgICAgICAgICAgICAgIChQRVRIRVJORVRfQUREUkVTUykmQXR0cmlicy5DdXJyZW50
TWFjQWRkcmVzcyk7CiAKICAgICBBdHRyaWJzLlBoeXNpY2FsTWVkaXVtVHlwZSA9IE5kaXNQaHlz
aWNhbE1lZGl1bTgwMl8zOwotICAgIEF0dHJpYnMuUmVjdlNjYWxlQ2FwYWJpbGl0aWVzID0gTlVM
TDsKICAgICBBdHRyaWJzLkFjY2Vzc1R5cGUgPSBORVRfSUZfQUNDRVNTX0JST0FEQ0FTVDsKICAg
ICBBdHRyaWJzLkRpcmVjdGlvblR5cGUgPSBORVRfSUZfRElSRUNUSU9OX1NFTkRSRUNFSVZFOwog
ICAgIEF0dHJpYnMuQ29ubmVjdGlvblR5cGUgPSBORVRfSUZfQ09OTkVDVElPTl9ERURJQ0FURUQ7
CkBAIC0yNDg5LDYgKzI4MTksNTAgQEAgQWRhcHRlclNldEdlbmVyYWxBdHRyaWJ1dGVzKAogICAg
IEF0dHJpYnMuU3VwcG9ydGVkT2lkTGlzdCA9IFhlbm5ldFN1cHBvcnRlZE9pZHM7CiAgICAgQXR0
cmlicy5TdXBwb3J0ZWRPaWRMaXN0TGVuZ3RoID0gc2l6ZW9mKFhlbm5ldFN1cHBvcnRlZE9pZHMp
OwogCisgICAgQXR0cmlicy5SZWN2U2NhbGVDYXBhYmlsaXRpZXMgPSBOVUxMOworCisgICAgaWYg
KCFBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcykgeworICAgICAgICBJbmZvKCJSU1MgRElTQUJMRURc
biIpOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisgICAgc3RhdHVzID0gWEVOVklGX1ZJ
RihSZWNlaXZlclNldEhhc2hBbGdvcml0aG0sCisgICAgICAgICAgICAgICAgICAgICAgICAmQWRh
cHRlci0+VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BBQ0tF
VF9IQVNIX0FMR09SSVRITV9UT0VQTElUWik7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
CisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIHN0YXR1cyA9IFhFTlZJRl9WSUYoUmVjZWl2ZXJR
dWVyeUhhc2hDYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAmQWRhcHRlci0+
VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgJlR5cGVzKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBkb25lOworCisgICAgUnRsWmVyb01l
bW9yeSgmUnNzLCBzaXplb2YoUnNzKSk7CisgICAgUnNzLkhlYWRlci5UeXBlID0gTkRJU19PQkpF
Q1RfVFlQRV9SU1NfQ0FQQUJJTElUSUVTOworICAgIFJzcy5IZWFkZXIuUmV2aXNpb24gPSBORElT
X1JFQ0VJVkVfU0NBTEVfQ0FQQUJJTElUSUVTX1JFVklTSU9OXzE7CisgICAgUnNzLkhlYWRlci5T
aXplID0gTkRJU19TSVpFT0ZfUkVDRUlWRV9TQ0FMRV9DQVBBQklMSVRJRVNfUkVWSVNJT05fMTsK
KworICAgIFJzcy5DYXBhYmlsaXRpZXNGbGFncyA9IE5ESVNfUlNTX0NBUFNfTUVTU0FHRV9TSUdO
QUxFRF9JTlRFUlJVUFRTIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX1JTU19D
QVBTX0NMQVNTSUZJQ0FUSU9OX0FUX0lTUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TkRJU19SU1NfQ0FQU19DTEFTU0lGSUNBVElPTl9BVF9EUEMgfAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0ejsKKworICAgIGlmIChUeXBlcyAmICgx
IDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQKSkKKyAgICAgICAgUnNzLkNhcGFi
aWxpdGllc0ZsYWdzIHw9IE5ESVNfUlNTX0NBUFNfSEFTSF9UWVBFX1RDUF9JUFY0OworCisgICAg
aWYgKFR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1ApKQorICAg
ICAgICBSc3MuQ2FwYWJpbGl0aWVzRmxhZ3MgfD0gTkRJU19SU1NfQ0FQU19IQVNIX1RZUEVfVENQ
X0lQVjY7CisKKyAgICBYRU5WSUZfVklGKFF1ZXJ5UmluZ0NvdW50LAorICAgICAgICAgICAgICAg
JkFkYXB0ZXItPlZpZkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICZSc3MuTnVtYmVyT2ZSZWNl
aXZlUXVldWVzKTsKKyAgICBSc3MuTnVtYmVyT2ZJbnRlcnJ1cHRNZXNzYWdlcyA9IFJzcy5OdW1i
ZXJPZlJlY2VpdmVRdWV1ZXM7CisKKyAgICBBZGFwdGVyLT5Sc3MuU3VwcG9ydGVkID0gVFJVRTsK
KyAgICBBdHRyaWJzLlJlY3ZTY2FsZUNhcGFiaWxpdGllcyA9ICZSc3M7CisKK2RvbmU6CiAgICAg
bmRpc1N0YXR1cyA9IE5kaXNNU2V0TWluaXBvcnRBdHRyaWJ1dGVzKEFkYXB0ZXItPk5kaXNBZGFw
dGVySGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
UE5ESVNfTUlOSVBPUlRfQURBUFRFUl9BVFRSSUJVVEVTKSZBdHRyaWJzKTsKIApkaWZmIC0tZ2l0
IGEvc3JjL3hlbm5ldC9yZWNlaXZlci5jIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCmluZGV4IDc2
NDVhOGMuLjg0M2RmMmIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYworKysgYi9z
cmMveGVubmV0L3JlY2VpdmVyLmMKQEAgLTgzLDYgKzgzLDExIEBAIF9fUmVjZWl2ZXJBbGxvY2F0
ZU5ldEJ1ZmZlckxpc3QoCiAgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0ID0gTkVUX0JVRkZFUl9M
SVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpOwogICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVY
VF9OQkwoTmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCisgICAgICAgIE5FVF9CVUZGRVJfTElTVF9J
TkZPKE5ldEJ1ZmZlckxpc3QsIFRjcElwQ2hlY2tzdW1OZXRCdWZmZXJMaXN0SW5mbykgPSBOVUxM
OworICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBJZWVlODAyMVFO
ZXRCdWZmZXJMaXN0SW5mbykgPSBOVUxMOworICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhO
ZXRCdWZmZXJMaXN0LCBOZXRCdWZmZXJMaXN0SGFzaEluZm8pID0gTlVMTDsKKyAgICAgICAgTkVU
X0JVRkZFUl9MSVNUX0lORk8oTmV0QnVmZmVyTGlzdCwgTmV0QnVmZmVyTGlzdEhhc2hWYWx1ZSkg
PSBOVUxMOworCiAgICAgICAgIE5ldEJ1ZmZlciA9IE5FVF9CVUZGRVJfTElTVF9GSVJTVF9OQihO
ZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9GSVJTVF9NREwoTmV0QnVmZmVyKSA9
IE1kbDsKICAgICAgICAgTkVUX0JVRkZFUl9DVVJSRU5UX01ETChOZXRCdWZmZXIpID0gTWRsOwpA
QCAtMTc0LDYgKzE3OSw3IEBAIF9fUmVjZWl2ZXJSZWNlaXZlUGFja2V0KAogICAgIElOICBVU0hP
UlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAog
ICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJv
bEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAgICAg
ICAgICAgSW5mbywKKyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgICAg
ICAgIEhhc2gsCiAgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDb29raWUKICAgICApCiB7CkBAIC0yMjAsNiArMjI2LDQyIEBAIF9fUmVjZWl2ZXJSZWNlaXZl
UGFja2V0KAogICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBJZWVl
ODAyMVFOZXRCdWZmZXJMaXN0SW5mbykgPSBJZWVlODAyMVFJbmZvLlZhbHVlOwogICAgIH0KIAor
ICAgIHN3aXRjaCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hB
U0hfQUxHT1JJVEhNX1RPRVBMSVRaOgorICAgICAgICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hf
RlVOQ1RJT04oTmV0QnVmZmVyTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0eik7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoIChIYXNoLT5U
eXBlKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0OgorICAgICAgICBO
RVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVFlQRShOZXRCdWZmZXJMaXN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX0hBU0hfSVBWNCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUDoKKyAgICAgICAg
TkVUX0JVRkZFUl9MSVNUX1NFVF9IQVNIX1RZUEUoTmV0QnVmZmVyTGlzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX1RDUF9JUFY0KTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjY6CisgICAgICAg
IE5FVF9CVUZGRVJfTElTVF9TRVRfSEFTSF9UWVBFKE5ldEJ1ZmZlckxpc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ESVNfSEFTSF9JUFY2KTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjZfVENQOgorICAgICAg
ICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVFlQRShOZXRCdWZmZXJMaXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX0hBU0hfVENQX0lQVjYpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVkFMVUUoTmV0
QnVmZmVyTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaC0+VmFs
dWUpOworCisKICAgICByZXR1cm4gTmV0QnVmZmVyTGlzdDsKIAogZmFpbDI6CkBAIC0zODQsNiAr
NDI2LDcgQEAgUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemUsCiAgICAgSU4gIFVTSE9SVCAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklG
X1BBQ0tFVF9JTkZPICAgICAgICAgICAgIEluZm8sCisgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hB
U0ggICAgICAgICAgICAgSGFzaCwKICAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb29raWUKICAgICApCiB7CkBAIC00MDAsNiArNDQzLDcgQEAgUmVjZWl2ZXJRdWV1ZVBh
Y2tldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11
bVNlZ21lbnRTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUYWdDb250cm9sSW5mb3JtYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEhhc2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENvb2tpZSk7CiAKICAgICBpZiAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7CmRpZmYgLS1naXQg
YS9zcmMveGVubmV0L3JlY2VpdmVyLmggYi9zcmMveGVubmV0L3JlY2VpdmVyLmgKaW5kZXggZTZi
MmFmMS4uNzNmZmM3ZSAxMDA2NDQKLS0tIGEvc3JjL3hlbm5ldC9yZWNlaXZlci5oCisrKyBiL3Ny
Yy94ZW5uZXQvcmVjZWl2ZXIuaApAQCAtNjUsNiArNjUsNyBAQCBSZWNlaXZlclF1ZXVlUGFja2V0
KAogICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50
U2l6ZSwKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9s
SW5mb3JtYXRpb24sCiAgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgSW5m
bywKKyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICBIYXNoLAogICAgIElO
ICBQVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZQogICAgICk7CiAKZGlmZiAt
LWdpdCBhL3NyYy94ZW5uZXQvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW5uZXQvdHJhbnNtaXR0ZXIu
YwppbmRleCBlYWY1MjY3Li40MzIxOThjIDEwMDY0NAotLS0gYS9zcmMveGVubmV0L3RyYW5zbWl0
dGVyLmMKKysrIGIvc3JjL3hlbm5ldC90cmFuc21pdHRlci5jCkBAIC0yOTIsNyArMjkyLDM4IEBA
IFRyYW5zbWl0dGVyU2VuZE5ldEJ1ZmZlckxpc3RzKAogCiAgICAgICAgICAgICBfX1RyYW5zbWl0
dGVyR2V0TmV0QnVmZmVyTGlzdChUcmFuc21pdHRlciwgTmV0QnVmZmVyTGlzdCk7CiAKLSAgICAg
ICAgICAgIEhhc2guQWxnb3JpdGhtID0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05F
OworICAgICAgICAgICAgc3dpdGNoIChORVRfQlVGRkVSX0xJU1RfR0VUX0hBU0hfRlVOQ1RJT04o
TmV0QnVmZmVyTGlzdCkpIHsKKyAgICAgICAgICAgIGNhc2UgTmRpc0hhc2hGdW5jdGlvblRvZXBs
aXR6OgorICAgICAgICAgICAgICAgIEhhc2guQWxnb3JpdGhtID0gWEVOVklGX1BBQ0tFVF9IQVNI
X0FMR09SSVRITV9UT0VQTElUWjsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBIYXNoLkFsZ29yaXRobSA9IFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE1fTk9ORTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChORVRfQlVGRkVSX0xJU1RfR0VUX0hBU0hfVFlQ
RShOZXRCdWZmZXJMaXN0KSkgeworICAgICAgICAgICAgY2FzZSBORElTX0hBU0hfSVBWNDoKKyAg
ICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0Owor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE5ESVNfSEFTSF9UQ1Bf
SVBWNDoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQ
RV9JUFY0X1RDUDsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBO
RElTX0hBU0hfSVBWNjoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VU
X0hBU0hfVFlQRV9JUFY2OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBj
YXNlIE5ESVNfSEFTSF9UQ1BfSVBWNjoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5W
SUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2X1RDUDsKKyAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgSGFzaC5WYWx1ZSA9IE5FVF9CVUZGRVJfTElTVF9HRVRfSEFTSF9W
QUxVRShOZXRCdWZmZXJMaXN0KTsKIAogICAgICAgICAgICAgc3RhdHVzID0gWEVOVklGX1ZJRihU
cmFuc21pdHRlclF1ZXVlUGFja2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
ZGFwdGVyR2V0VmlmSW50ZXJmYWNlKFRyYW5zbWl0dGVyLT5BZGFwdGVyKSwKLS0gCjIuMS4xCgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 16:09:54 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 16:09:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2hZC-0006jg-8F; Tue, 17 May 2016 16:09:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b2hZB-0006ja-1g
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 16:09:53 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 DF/9A-04050-0524B375; Tue, 17 May 2016 16:09:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkqOvvZB1
 u0Pie1+LP4kQHRo/DH66wBDBGsWbmJeVXJLBmvDy3n7Xg1i/Gil+vbzI3MO7bytjFyMUhJDCb
 UWLZoXMsXYycHCwCl1gkDq7yAElICLxjkXh3v5MNJCEhECOx8edvJgi7WmLyy15WEFtIQFGi+
 doFdohJy5gklr9fBTaJTUBd4vb7xewQDXYSn2bdBLNFBFQlri0/BjaUWUBL4uGGeYwgtrCApk
 TXx5lsEFeoSpx/MR1sGa+Au8Sl1ZNZIObISeydvJplAiP/AkaGVYzqxalFZalFuiZ6SUWZ6Rk
 luYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiBIcQABDsYG784HWKU5GBSEuW9YGIdLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mC96UDUE6wKDU9tSItMwcYzDBpCQ4eJRHeVyBp3uKCxNzizHSI1
 ClGXY4tU++tZRJiycvPS5US5/0KUiQAUpRRmgc3AhZZlxhlpYR5GYGOEuIpSC3KzSxBlX/FKM
 7BqCTM+xFkCk9mXgncpldARzABHTHBzALkiJJEhJRUA6PGEa8Ngq/Xn1xy5FZG0OPpt/RO3rh
 9x896+/uOLOkTUl83TpmyJOddk+eSy2b6offk/cQXz+rmtwhtfsZ/pfTTObk7pUk/O87FZGid
 PdP3/VWjed+f6rNdenOdRFiLQhYLX7y3dZpuqzxXb9RlhZ5LtYdevrtl/q6m73nm4T+By1ZOZ
 +2z/PlZiaU4I9FQi7moOBEA8qFogacCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1463501390!23897747!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62168 invoked from network); 17 May 2016 16:09:51 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 May 2016 16:09:51 -0000
Received: by mail-wm0-f65.google.com with SMTP id n129so5946786wmn.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 09:09:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Ub0hpf4zL4iS8HSf9td2w3Plgndd/5oJOYryCvtZiDs=;
 b=AaJ0JBdNHu4UkUk6M4e+RP95AcMzMoafW1q34Qq+PYRk4EItQ/TTUc+rfblxifLT/1
 RFVogFxGfurdlZole9cpMZ0won+zN8KpxfgmFneDjIJ2LRECtmKiJiJlBsj4BG36r09S
 DKagAy+2Na9gnSj7qo0chiTEeP8/CsinZr0Oh6Bx+GU0UPlS1T+ZZBt1fep6VcpkSbY4
 0J+hpS7kxsd04McrMzLKJa3P5OELgZFk4SNTFH4F/wrsHE8MHfMsmKY4v4mTxl58e/Ed
 /XC5Jm5/qBmyE0Sbi8i8YslUjlX1L3CDrQjIUEB+EpUSmc05zppEIf/ltqRgrk11l/sL
 9v1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Ub0hpf4zL4iS8HSf9td2w3Plgndd/5oJOYryCvtZiDs=;
 b=O3iwyE3QBbf9OREcA/hbgqItLOYk4QnHI3lblMqBGz4kVwyKtiIFBNMofS/gW/hNas
 GTHnJwX0g5QACSHxI3rmADD7FMqTD0VohEyaZKcIcwRXVwvD1eqzHvvEI23Kkx5Rz7gT
 Fd5kauLLBNGMi37XHveXjpPPVgETuefkOTBtAFhjH4lIFCh4ONVp0NbwVmJZxgIuIZyc
 vovv4pHxHBfozUcXXnciq5KlGm821BdcaynzNTdHvP+Ka6W7zthMFq4ELPVQbsMGupah
 gh1/AFw7k3yyj2HAbmRF2sK61wS9jhpQvFbMNZszakltcUCQUHVE/ScWrcwuvGTKWD/U
 /Hkg==
X-Gm-Message-State: AOPr4FVun6pNGioaz8WoJIvEftxnDstnjO7g1DV6tBJUVjcgqlu0tjadocJ2StMfG85R6A==
X-Received: by 10.28.148.202 with SMTP id w193mr24568912wmd.29.1463501390427; 
 Tue, 17 May 2016 09:09:50 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d23sm4388262wmd.1.2016.05.17.09.09.49
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 17 May 2016 09:09:50 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 17 May 2016 17:09:54 +0100
Message-Id: <1463501394-10248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Add support for NDIS RSS
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXBkYXRlIHRvIFZJRiBpbnRlcmZhY2UgdmVyc2lvbiA2IGFuZCBtYWtlIHVzZSBvZiB0aGUgZXh0
cmEgZnVuY3Rpb25hbGl0eQpwcm92aWRlZCB0byBzdXBwb3J0IE5ESVMgUlNTLgoKU2lnbmVkLW9m
Zi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRl
L3ZpZl9pbnRlcmZhY2UuaCAgfCAxNDYgKysrKysrKysrKysrKysrKystCiBzcmMveGVubmV0Lmlu
ZiAgICAgICAgICAgfCAgMTQgKy0KIHNyYy94ZW5uZXQvYWRhcHRlci5jICAgICB8IDM3NiArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3hlbm5ldC9y
ZWNlaXZlci5jICAgIHwgIDQ0ICsrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5oICAgIHwgICAx
ICsKIHNyYy94ZW5uZXQvdHJhbnNtaXR0ZXIuYyB8ICAzMyArKysrLQogNiBmaWxlcyBjaGFuZ2Vk
LCA2MDMgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS92aWZfaW50ZXJmYWNlLmggYi9pbmNsdWRlL3ZpZl9pbnRlcmZhY2UuaAppbmRleCA1YTA2NGZk
Li44NTM1NTRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZpZl9pbnRlcmZhY2UuaAorKysgYi9pbmNs
dWRlL3ZpZl9pbnRlcmZhY2UuaApAQCAtNTAsMjAgKzUwLDQ0IEBAIHR5cGVkZWYgZW51bSBfWEVO
VklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSB7CiAgICAgLyohIE5vbmUgKHZhbHVlIHNob3VsZCBi
ZSBpZ25vcmVkKSAqLwogICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fTk9ORSA9IDAs
CiAgICAgLyohIFVuc3BlY2lmaWVkIGhhc2ggKHZhbHVlIGNhbiBiZSB1c2VkKSAqLwotICAgIFhF
TlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVU5TUEVDSUZJRUQKKyAgICBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVELAorICAgIC8qISBUb2VwbGl0eiBoYXNoICovCisg
ICAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQTElUWgogfSBYRU5WSUZfUEFDS0VU
X0hBU0hfQUxHT1JJVEhNLCAqUFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE07CiAKLS8qISBc
c3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEKK3R5cGVkZWYgZW51bSBfWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEUgeworICAgIC8qISBOb25lICh2YWx1ZSBzaG91bGQgYmUgaWdub3JlZCkgKi8K
KyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9OT05FID0gMCwKKyAgICAvKiEgSVB2NCBoZWFk
ZXIgb25seSAqLworICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjQsCisgICAgLyohIElQ
djQgYW5kIFRDUCBoZWFkZXJzICovCisgICAgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNF9U
Q1AsCisgICAgLyohIElQdjYgaGVhZGVyIG9ubHkgKi8KKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hf
VFlQRV9JUFY2LAorICAgIC8qISBJUHY2IGFuZCBUQ1AgaGVhZGVycyAqLworICAgIFhFTlZJRl9Q
QUNLRVRfSEFTSF9UWVBFX0lQVjZfVENQCit9IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFLCAqUFhF
TlZJRl9QQUNLRVRfSEFTSF9UWVBFOworCitzdHJ1Y3QgX1hFTlZJRl9QQUNLRVRfSEFTSF9WMSB7
CisgICAgLyohIEhhc2ggYWxnb3JpdGhtIHVzZWQgdG8gY2FsY3VsYXRlIHZhbHVlICovCisgICAg
WEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdvcml0aG07CisgICAgLyohIENhbGN1
bGF0ZWQgdmFsdWUgKi8KKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
OworfTsKKworLyohIFxzdHJ1Y3QgX1hFTlZJRl9QQUNLRVRfSEFTSF9WMgogICAgIFxicmllZiBI
YXNoIGluZm9ybWF0aW9uCiAqLwotc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgeworc3Ry
dWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIgewogICAgIC8qISBIYXNoIGFsZ29yaXRobSB1c2Vk
IHRvIGNhbGN1bGF0ZSB2YWx1ZSAqLwogICAgIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0g
ICAgQWxnb3JpdGhtOworICAgIC8qISBTY29wZSBvZiBoYXNoICovCisgICAgWEVOVklGX1BBQ0tF
VF9IQVNIX1RZUEUgICAgICAgICBUeXBlOwogICAgIC8qISBDYWxjdWxhdGVkIHZhbHVlICovCiAg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsKIH07CiAKLXR5cGVkZWYg
c3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjEgWEVOVklGX1BBQ0tFVF9IQVNILCAqUFhFTlZJ
Rl9QQUNLRVRfSEFTSDsKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfUEFDS0VUX0hBU0hfVjIgWEVO
VklGX1BBQ0tFVF9IQVNILCAqUFhFTlZJRl9QQUNLRVRfSEFTSDsKIAogLyohIFxzdHJ1Y3QgX1hF
TlZJRl9QQUNLRVRfSEVBREVSX1YxCiAgICAgXGJyaWVmIFBhY2tldCBoZWFkZXIgaW5mb3JtYXRp
b24KQEAgLTM2Niw2ICszOTAsNyBAQCB0eXBlZGVmIFZPSUQKICAgICBccGFyYW0gTWF4aW11bVNl
Z21lbnRTaXplIFRoZSBUQ1AgTVNTICh1c2VkIG9ubHkgaWYgT2ZmbG9hZE9wdGlvbnMuT2ZmbG9h
ZElwVmVyc2lvbls0fDZdTGFyZ2VQYWNrZXQgaXMgc2V0KQogICAgIFxwYXJhbSBUYWdDb250cm9s
SW5mb3JtYXRpb24gVGhlIFZMQU4gVENJICh1c2VkIG9ubHkgaWYgT2ZmbG9hZE9wdGlvbnMuT2Zm
bG9hZFRhZ01hbmlwdWxhdGlvbiBpcyBzZXQpCiAgICAgXHBhcmFtIEluZm8gSGVhZGVyIGluZm9y
bWF0aW9uIGZvciB0aGUgcGFja2V0CisgICAgXHBhcmFtIEhhc2ggSGFzaCBpbmZvcm1hdGlvbiBm
b3IgdGhlIHBhY2tldAogICAgIFxwYXJhbSBDb29raWUgQ29va2llIHRoYXQgc2hvdWxkIGJlIHBh
c3NlZCB0byBYRU5WSUZfUkVDRUlWRVJfUkVUVVJOX1BBQ0tFVCBtZXRob2QKIAogICAgIFxiIFhF
TlZJRl9NQUNfU1RBVEVfQ0hBTkdFOgpAQCAtNDI3LDYgKzQ1MiwzNSBAQCB0eXBlZGVmIE5UU1RB
VFVTCiAgICAgT1VUIFBVTE9OR0xPTkcgICAgICAgICAgICAgIFZhbHVlCiAgICAgKTsKIAorLyoh
IFx0eXBlZGVmIFhFTlZJRl9WSUZfUVVFUllfUklOR19DT1VOVAorICAgIFxicmllZiBRdWVyeSB0
aGUgbnVtYmVyIG9mIHNoYXJlZCByaW5ncyBiZXR3ZWVuIGZyb250ZW5kCisgICAgYW5kIGJhY2tl
bmQKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFy
YW0gQ291bnQgQnVmZmVyIHRvIHJlY2VpdmUgdGhlIGNvdW50CisqLwordHlwZWRlZiBWT0lECiso
KlhFTlZJRl9WSUZfUVVFUllfUklOR19DT1VOVCkoCisgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVy
ZmFjZSwKKyAgICBPVVQgUFVMT05HICAgICAgQ291bnQKKyAgICApOworCisvKiEgXHR5cGVkZWYg
WEVOVklGX1ZJRl9VUERBVEVfSEFTSF9NQVBQSU5HCisgICAgXGJyaWVmIFVwZGF0ZSB0aGUgbWFw
cGluZyBvZiBoYXNoIHRvIHRyYW5zbWl0dGVyL3JlY2VpdmVyIHJpbmcKKworICAgIFRoZSBkZWZh
dWx0IG1hcHBpbmcgaXMgaGFzaCAlIG51bWJlci1vZi1yaW5ncworCisgICAgXHBhcmFtIEludGVy
ZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBNYXBwaW5nIFRoZSBtYXBwaW5n
IHRhYmxlCisgICAgXHBhcmFtIFNpemUgVGhlIHNpemUgb2YgdGhlIG1hcHBpbmcgdGFibGUKKyov
Cit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfVVBEQVRFX0hBU0hfTUFQUElORykoCisg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBQUFJPQ0VTU09S
X05VTUJFUiAgIE1hcHBpbmcsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2l6ZQorICAg
ICk7CisKIHR5cGVkZWYgVk9JRAogKCpYRU5WSUZfVklGX1JFQ0VJVkVSX1JFVFVSTl9QQUNLRVRT
X1YxKSgKICAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLApAQCAtNTc5LDYgKzYzMyw1MiBA
QCB0eXBlZGVmIFZPSUQKICAgICBPVVQgUFVMT05HICAgICAgU2l6ZQogICAgICk7CiAKKy8qISBc
dHlwZWRlZiBYRU5WSUZfVklGX1JFQ0VJVkVSX1NFVF9IQVNIX0FMR09SSVRITQorICAgIFxicmll
ZiBTZWxlY3QgYSBoYXNoIGFsb3JpdGhtCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRl
cmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIEFsZ29yaXRobSBUaGUgYWxnb3JpdGhtIHRvIGVuYWJs
ZSAob3IKKyAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkUgdG8gZGlzYWJsZSBo
YXNoaW5nKQorKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOVklGX1ZJRl9SRUNFSVZFUl9TRVRf
SEFTSF9BTEdPUklUSE0pKAorICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAg
IEludGVyZmFjZSwKKyAgICBJTiAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAgICBBbGdv
cml0aG0KKyAgICApOworCisvKiEgXHR5cGVkZWYgWEVOVklGX1ZJRl9SRUNFSVZFUl9RVUVSWV9I
QVNIX0NBUEFCSUxJVElFUworICAgIFxicmllZiBRdWVyeSBhbnkgYWxnb3JpdGhtLXNwZWNpZmlj
IGNhcGFiaWxpdGllcy4KKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFk
ZXIKKyAgICBccGFyYW0gLi4uIEFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHJlcG9ydGVkIGJ5IHRo
ZSBzZWxlY3RlZCBhbGdvcml0aG0KKworICAgIFxiIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklU
SE1fVE9FUExJVFo6CisgICAgXHBhcmFtIFR5cGVzIE1hc2sgb2YgaGFzaCB0eXBlcyBzdXBwb3J0
ZWQKKyovCit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTlZJRl9WSUZfUkVDRUlWRVJfUVVFUllfSEFT
SF9DQVBBQklMSVRJRVMpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAgLi4u
CisgICAgKTsKKworLyohIFx0eXBlZGVmIFhFTlZJRl9WSUZfUkVDRUlWRVJfVVBEQVRFX0hBU0hf
UEFSQU1FVEVSUworICAgIFxicmllZiBTZXQgcGFyYW1ldGVycyBvZiBjdXJyZW50bHkgc2VsZWN0
ZWQgYWxnb3JpdGhtLgorCisgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRl
cgorICAgIFxwYXJhbSAuLi4gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGJ5IHRoZSBz
ZWxlY3RlZCBhbGdvcml0aG0KKworICAgIFxiIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1f
VE9FUExJVFo6CisgICAgXHBhcmFtIFR5cGVzIE1hc2sgb2YgaGFzaCB0eXBlcyBlbmFibGVkCisg
ICAgXHBhcmFtIEtleSBQb2ludGVyIHRvIGEgNDAtYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBo
YXNoIGtleQorKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOVklGX1ZJRl9SRUNFSVZFUl9VUERB
VEVfSEFTSF9QQVJBTUVURVJTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlLAorICAg
IC4uLgorICAgICk7CisKKyNkZWZpbmUgWEVOVklGX1ZJRl9IQVNIX0tFWV9TSVpFICAgIDQwCisK
IC8qISBcdHlwZWRlZiBYRU5WSUZfVklGX01BQ19RVUVSWV9TVEFURQogICAgIFxicmllZiBRdWVy
eSB0aGUgY3VycmVudCBNQUMgKGxpbmspIHN0YXRlCiAKQEAgLTgyMiw3ICs5MjIsNDEgQEAgc3Ry
dWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSB7CiAgICAgWEVOVklGX1ZJRl9NQUNfUVVFUllf
RklMVEVSX0xFVkVMICAgICAgICAgICAgICAgTWFjUXVlcnlGaWx0ZXJMZXZlbDsKIH07CiAKLXR5
cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVSRkFDRV9WNSBYRU5WSUZfVklGX0lOVEVSRkFD
RSwgKlBYRU5WSUZfVklGX0lOVEVSRkFDRTsKKy8qISBcc3RydWN0IF9YRU5WSUZfVklGX0lOVEVS
RkFDRV9WNgorICAgIFxicmllZiBWSUYgaW50ZXJmYWNlIHZlcnNpb24gNgorICAgIFxpbmdyb3Vw
IGludGVyZmFjZXMKKyovCitzdHJ1Y3QgX1hFTlZJRl9WSUZfSU5URVJGQUNFX1Y2IHsKKyAgICBJ
TlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7
CisgICAgWEVOVklGX1ZJRl9BQ1FVSVJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNx
dWlyZTsKKyAgICBYRU5WSUZfVklGX1JFTEVBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZWxlYXNlOworICAgIFhFTlZJRl9WSUZfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVuYWJsZTsKKyAgICBYRU5WSUZfVklGX0RJU0FCTEUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEaXNhYmxlOworICAgIFhFTlZJRl9WSUZfUVVFUllfU1RBVElTVElDICAgICAg
ICAgICAgICAgICAgICAgIFF1ZXJ5U3RhdGlzdGljOworICAgIFhFTlZJRl9WSUZfUVVFUllfUklO
R19DT1VOVCAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5UmluZ0NvdW50OworICAgIFhFTlZJRl9W
SUZfVVBEQVRFX0hBU0hfTUFQUElORyAgICAgICAgICAgICAgICAgIFVwZGF0ZUhhc2hNYXBwaW5n
OworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfUkVUVVJOX1BBQ0tFVCAgICAgICAgICAgICAgIFJl
Y2VpdmVyUmV0dXJuUGFja2V0OworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX09GRkxPQURf
T1BUSU9OUyAgICAgICAgIFJlY2VpdmVyU2V0T2ZmbG9hZE9wdGlvbnM7CisgICAgWEVOVklGX1ZJ
Rl9SRUNFSVZFUl9TRVRfQkFDS0ZJTExfU0laRSAgICAgICAgICAgUmVjZWl2ZXJTZXRCYWNrZmls
bFNpemU7CisgICAgWEVOVklGX1ZJRl9SRUNFSVZFUl9RVUVSWV9SSU5HX1NJWkUgICAgICAgICAg
ICAgUmVjZWl2ZXJRdWVyeVJpbmdTaXplOworICAgIFhFTlZJRl9WSUZfUkVDRUlWRVJfU0VUX0hB
U0hfQUxHT1JJVEhNICAgICAgICAgIFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobTsKKyAgICBYRU5W
SUZfVklGX1JFQ0VJVkVSX1FVRVJZX0hBU0hfQ0FQQUJJTElUSUVTICAgICBSZWNlaXZlclF1ZXJ5
SGFzaENhcGFiaWxpdGllczsKKyAgICBYRU5WSUZfVklGX1JFQ0VJVkVSX1VQREFURV9IQVNIX1BB
UkFNRVRFUlMgICAgICBSZWNlaXZlclVwZGF0ZUhhc2hQYXJhbWV0ZXJzOworICAgIFhFTlZJRl9W
SUZfVFJBTlNNSVRURVJfUVVFVUVfUEFDS0VUICAgICAgICAgICAgIFRyYW5zbWl0dGVyUXVldWVQ
YWNrZXQ7CisgICAgWEVOVklGX1ZJRl9UUkFOU01JVFRFUl9RVUVSWV9PRkZMT0FEX09QVElPTlMg
ICAgVHJhbnNtaXR0ZXJRdWVyeU9mZmxvYWRPcHRpb25zOworICAgIFhFTlZJRl9WSUZfVFJBTlNN
SVRURVJfUVVFUllfTEFSR0VfUEFDS0VUX1NJWkUgIFRyYW5zbWl0dGVyUXVlcnlMYXJnZVBhY2tl
dFNpemU7CisgICAgWEVOVklGX1ZJRl9UUkFOU01JVFRFUl9RVUVSWV9SSU5HX1NJWkUgICAgICAg
ICAgVHJhbnNtaXR0ZXJRdWVyeVJpbmdTaXplOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX1NU
QVRFICAgICAgICAgICAgICAgICAgICAgIE1hY1F1ZXJ5U3RhdGU7CisgICAgWEVOVklGX1ZJRl9N
QUNfUVVFUllfTUFYSU1VTV9GUkFNRV9TSVpFICAgICAgICAgTWFjUXVlcnlNYXhpbXVtRnJhbWVT
aXplOworICAgIFhFTlZJRl9WSUZfTUFDX1FVRVJZX1BFUk1BTkVOVF9BRERSRVNTICAgICAgICAg
IE1hY1F1ZXJ5UGVybWFuZW50QWRkcmVzczsKKyAgICBYRU5WSUZfVklGX01BQ19RVUVSWV9DVVJS
RU5UX0FERFJFU1MgICAgICAgICAgICBNYWNRdWVyeUN1cnJlbnRBZGRyZXNzOworICAgIFhFTlZJ
Rl9WSUZfTUFDX1FVRVJZX01VTFRJQ0FTVF9BRERSRVNTRVMgICAgICAgIE1hY1F1ZXJ5TXVsdGlj
YXN0QWRkcmVzc2VzOworICAgIFhFTlZJRl9WSUZfTUFDX1NFVF9NVUxUSUNBU1RfQUREUkVTU0VT
ICAgICAgICAgIE1hY1NldE11bHRpY2FzdEFkZHJlc3NlczsKKyAgICBYRU5WSUZfVklGX01BQ19T
RVRfRklMVEVSX0xFVkVMICAgICAgICAgICAgICAgICBNYWNTZXRGaWx0ZXJMZXZlbDsKKyAgICBY
RU5WSUZfVklGX01BQ19RVUVSWV9GSUxURVJfTEVWRUwgICAgICAgICAgICAgICBNYWNRdWVyeUZp
bHRlckxldmVsOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9WSUZfSU5URVJGQUNFX1Y2
IFhFTlZJRl9WSUZfSU5URVJGQUNFLCAqUFhFTlZJRl9WSUZfSU5URVJGQUNFOwogCiAvKiEgXGRl
ZiBYRU5WSUZfVklGCiAgICAgXGJyaWVmIE1hY3JvIGF0IGFzc2lzdCBpbiBtZXRob2QgaW52b2Nh
dGlvbgpAQCAtODMzLDYgKzk2Nyw2IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5WSUZfVklGX0lOVEVS
RkFDRV9WNSBYRU5WSUZfVklGX0lOVEVSRkFDRSwgKlBYRU5WSUZfVklGX0lOVEVSCiAjZW5kaWYg
IC8vIF9XSU5ETEwKIAogI2RlZmluZSBYRU5WSUZfVklGX0lOVEVSRkFDRV9WRVJTSU9OX01JTiAg
ICAyCi0jZGVmaW5lIFhFTlZJRl9WSUZfSU5URVJGQUNFX1ZFUlNJT05fTUFYICAgIDUKKyNkZWZp
bmUgWEVOVklGX1ZJRl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggICAgNgogCiAjZW5kaWYgIC8vIF9Y
RU5WSUZfSU5URVJGQUNFX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQuaW5mIGIvc3JjL3hlbm5l
dC5pbmYKaW5kZXggZWRlZTZmNi4uYjZlNjYyOCAxMDA2NDQKLS0tIGEvc3JjL3hlbm5ldC5pbmYK
KysrIGIvc3JjL3hlbm5ldC5pbmYKQEAgLTYxLDkgKzYxLDkgQEAgeGVubmV0X2NvaW5zdF9ATUFK
T1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVS
QC5kbGwKIDsgRGlzcGxheU5hbWUJCVNlY3Rpb24JCURldmljZUlECiA7IC0tLS0tLS0tLS0tCQkt
LS0tLS0tCQktLS0tLS0tLQogCi0lWGVuTmV0RGVzYyUJCT1YZW5OZXRfSW5zdCwJWEVOVklGXFZF
Tl9AVkVORE9SX1BSRUZJWEBAVkVORE9SX0RFVklDRV9JREAmREVWX05FVCZSRVZfMDgwMDAwMDkK
LSVYZW5OZXREZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5WSUZcVkVOX0BWRU5ET1JfUFJFRklYQDAw
MDEmREVWX05FVCZSRVZfMDgwMDAwMDkKLSVYZW5OZXREZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5W
SUZcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDImREVWX05FVCZSRVZfMDgwMDAwMDkKKyVYZW5OZXRE
ZXNjJQkJPVhlbk5ldF9JbnN0LAlYRU5WSUZcVkVOX0BWRU5ET1JfUFJFRklYQEBWRU5ET1JfREVW
SUNFX0lEQCZERVZfTkVUJlJFVl8wODAwMDAwQgorJVhlbk5ldERlc2MlCQk9WGVuTmV0X0luc3Qs
CVhFTlZJRlxWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfTkVUJlJFVl8wODAwMDAwQgorJVhl
bk5ldERlc2MlCQk9WGVuTmV0X0luc3QsCVhFTlZJRlxWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZE
RVZfTkVUJlJFVl8wODAwMDAwQgogCiBbWGVuTmV0X0luc3RdIAogQ2hhcmFjdGVyaXN0aWNzPTB4
ODQKQEAgLTE1OSw2ICsxNTksMTMgQEAgSEtSLCBOZGlccGFyYW1zXExST0lQdjYsICAgICAgICAg
ICAgICAgICAgICAgICAgICBPcHRpb25hbCwgICAwLCAiMCIKIEhLUiwgTmRpXHBhcmFtc1xMUk9J
UHY2XGVudW0sICAgICAgICAgICAgICAgICAgICAgIjAiLCAgICAgICAgMCwgJURpc2FibGVkJQog
SEtSLCBOZGlccGFyYW1zXExST0lQdjZcZW51bSwgICAgICAgICAgICAgICAgICAgICAiMSIsICAg
ICAgICAwLCAlRW5hYmxlZCUKIAorSEtSLCBOZGlccGFyYW1zXCpSU1MsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQYXJhbURlc2MsICAwLCAlUlNTJQorSEtSLCBOZGlccGFyYW1zXCpSU1Ms
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlLCAgICAgICAwLCAiZW51bSIKK0hLUiwg
TmRpXHBhcmFtc1wqUlNTLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCwgICAg
MCwgIjEiCitIS1IsIE5kaVxwYXJhbXNcKlJTUywgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE9wdGlvbmFsLCAgIDAsICIwIgorSEtSLCBOZGlccGFyYW1zXCpSU1NcZW51bSwgICAgICAgICAg
ICAgICAgICAgICAgICAiMCIsICAgICAgICAwLCAlRGlzYWJsZWQlCitIS1IsIE5kaVxwYXJhbXNc
KlJTU1xlbnVtLCAgICAgICAgICAgICAgICAgICAgICAgICIxIiwgICAgICAgIDAsICVFbmFibGVk
JQorCiBbWGVuTmV0X0luc3QuU2VydmljZXNdIAogQWRkU2VydmljZT14ZW5uZXQsMHgwMixYZW5O
ZXRfU2VydmljZSxYZW5OZXRfRXZlbnRMb2cKIApAQCAtMjAyLDYgKzIwOSw3IEBAIExTT1YySVB2
ND0iTGFyZ2UgU2VuZCBPZmZsb2FkIFYyIChJUHY0KSIKIExTT1YySVB2Nj0iTGFyZ2UgU2VuZCBP
ZmZsb2FkIFYyIChJUHY2KSIKIExST0lQdjQ9IkxhcmdlIFJlY2VpdmUgT2ZmbG9hZCAoSVB2NCki
CiBMUk9JUHY2PSJMYXJnZSBSZWNlaXZlIE9mZmxvYWQgKElQdjYpIgorUlNTPSJSZWNlaXZlIFNp
ZGUgU2NhbGluZyIKIEhlYWRlckRhdGFTcGxpdD0iSGVhZGVyIERhdGEgU3BsaXQiCiBEaXNhYmxl
ZD0iRGlzYWJsZWQiCiBFbmFibGVkPSJFbmFibGVkIgpkaWZmIC0tZ2l0IGEvc3JjL3hlbm5ldC9h
ZGFwdGVyLmMgYi9zcmMveGVubmV0L2FkYXB0ZXIuYwppbmRleCA0ZTJmN2ZhLi4zNjE0YWE3IDEw
MDY0NAotLS0gYS9zcmMveGVubmV0L2FkYXB0ZXIuYworKysgYi9zcmMveGVubmV0L2FkYXB0ZXIu
YwpAQCAtNjAsOCArNjAsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1BST1BFUlRJRVMgewogICAgIGlu
dCBsc292NjsKICAgICBpbnQgbHJvdjQ7CiAgICAgaW50IGxyb3Y2OworICAgIGludCByc3M7CiB9
IFBST1BFUlRJRVMsICpQUFJPUEVSVElFUzsKIAordHlwZWRlZiBzdHJ1Y3QgX1hFTk5FVF9SU1Mg
eworICAgIEJPT0xFQU4gU3VwcG9ydGVkOworICAgIEJPT0xFQU4gSGFzaEVuYWJsZWQ7CisgICAg
Qk9PTEVBTiBTY2FsZUVuYWJsZWQ7CisgICAgVUxPTkcgICBUeXBlczsKKyAgICBVQ0hBUiAgIEtl
eVtORElTX1JTU19IQVNIX1NFQ1JFVF9LRVlfTUFYX1NJWkVfUkVWSVNJT05fMV07Cit9IFhFTk5F
VF9SU1MsICpQWEVOTkVUX1JTUzsKKwogc3RydWN0IF9YRU5ORVRfQURBUFRFUiB7CiAgICAgWEVO
VklGX1ZJRl9JTlRFUkZBQ0UgICAgICAgIFZpZkludGVyZmFjZTsKICAgICBYRU5CVVNfU1RPUkVf
SU5URVJGQUNFICAgICAgU3RvcmVJbnRlcmZhY2U7CkBAIC03Nyw2ICs4Niw3IEBAIHN0cnVjdCBf
WEVOTkVUX0FEQVBURVIgewogICAgIE5ESVNfUE5QX0NBUEFCSUxJVElFUyAgICAgICBDYXBhYmls
aXRpZXM7CiAgICAgTkRJU19PRkZMT0FEICAgICAgICAgICAgICAgIE9mZmxvYWQ7CiAgICAgUFJP
UEVSVElFUyAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXM7CisgICAgWEVOTkVUX1JTUyAgICAg
ICAgICAgICAgICAgIFJzczsKIAogICAgIFBYRU5ORVRfUkVDRUlWRVIgICAgICAgICAgICBSZWNl
aXZlcjsKICAgICBQWEVOTkVUX1RSQU5TTUlUVEVSICAgICAgICAgVHJhbnNtaXR0ZXI7CkBAIC0x
MzgsNiArMTQ4LDggQEAgc3RhdGljIE5ESVNfT0lEIFhlbm5ldFN1cHBvcnRlZE9pZHNbXSA9CiAg
ICAgT0lEX1BOUF9DQVBBQklMSVRJRVMsCiAgICAgT0lEX1BOUF9RVUVSWV9QT1dFUiwKICAgICBP
SURfUE5QX1NFVF9QT1dFUiwKKyAgICBPSURfR0VOX1JFQ0VJVkVfU0NBTEVfUEFSQU1FVEVSUywK
KyAgICBPSURfR0VOX1JFQ0VJVkVfSEFTSCwKIH07CiAKICNkZWZpbmUgQURBUFRFUl9QT09MX1RB
RyAgICAnQXRlTicKQEAgLTIxMSw2ICsyMjMsNyBAQCBBZGFwdGVyVmlmQ2FsbGJhY2soCiAgICAg
ICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplOwog
ICAgICAgICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ0NvbnRyb2xJbmZvcm1h
dGlvbjsKICAgICAgICAgUFhFTlZJRl9QQUNLRVRfSU5GTyAgICAgICAgICAgICBJbmZvOworICAg
ICAgICBQWEVOVklGX1BBQ0tFVF9IQVNIICAgICAgICAgICAgIEhhc2g7CiAgICAgICAgIFBWT0lE
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29va2llOwogCiAgICAgICAgIE1kbCA9IHZhX2Fy
ZyhBcmd1bWVudHMsIFBNREwpOwpAQCAtMjIwLDYgKzIzMyw3IEBAIEFkYXB0ZXJWaWZDYWxsYmFj
aygKICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplID0gdmFfYXJnKEFyZ3VtZW50cywgVVNIT1JU
KTsKICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uID0gdmFfYXJnKEFyZ3VtZW50cywgVVNI
T1JUKTsKICAgICAgICAgSW5mbyA9IHZhX2FyZyhBcmd1bWVudHMsIFBYRU5WSUZfUEFDS0VUX0lO
Rk8pOworICAgICAgICBIYXNoID0gdmFfYXJnKEFyZ3VtZW50cywgUFhFTlZJRl9QQUNLRVRfSEFT
SCk7CiAgICAgICAgIENvb2tpZSA9IHZhX2FyZyhBcmd1bWVudHMsIFBWT0lEKTsKIAogICAgICAg
ICBSZWNlaXZlclF1ZXVlUGFja2V0KEFkYXB0ZXItPlJlY2VpdmVyLApAQCAtMjMwLDYgKzI0NCw3
IEBAIEFkYXB0ZXJWaWZDYWxsYmFjaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhp
bXVtU2VnbWVudFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbElu
Zm9ybWF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSGFzaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb29r
aWUpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC02NzIsNiArNjg3LDIzMiBAQCBpbnZhbGlk
X3BhcmFtZXRlcjoKICN1bmRlZiBUWF9FTkFCTEVECiAjdW5kZWYgQ0hBTkdFCiAKK3N0YXRpYyBW
T0lECitBZGFwdGVyRGlzYWJsZVJTU0hhc2goCisgICAgSU4gIFBYRU5ORVRfQURBUFRFUiBBZGFw
dGVyCisgICAgKQoreworICAgIEFkYXB0ZXItPlJzcy5TY2FsZUVuYWJsZWQgPSBGQUxTRTsKKyAg
ICBBZGFwdGVyLT5Sc3MuSGFzaEVuYWJsZWQgPSBGQUxTRTsKKworICAgIChWT0lEKSBYRU5WSUZf
VklGKFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSwKKyAgICAgICAgICAgICAgICAgICAgICAmQWRh
cHRlci0+VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9QQUNLRVRf
SEFTSF9BTEdPUklUSE1fTk9ORSk7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRhcHRlclVw
ZGF0ZVJTU1RhYmxlKAorICAgIElOICBQWEVOTkVUX0FEQVBURVIgQWRhcHRlciwKKyAgICBJTiAg
UENDSEFSICAgICAgICAgIFRhYmxlLAorICAgIElOICBVTE9ORyAgICAgICAgICAgVGFibGVTaXpl
CisgICAgKQoreworICAgIFBST0NFU1NPUl9OVU1CRVIgICAgTWFwcGluZ1tORElTX1JTU19JTkRJ
UkVDVElPTl9UQUJMRV9NQVhfU0laRV9SRVZJU0lPTl8xXTsKKyAgICBVTE9ORyAgICAgICAgICAg
ICAgIEluZGV4OworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAgaWYgKFRh
YmxlU2l6ZSA9PSAwKSB7CisgICAgICAgIEFkYXB0ZXJEaXNhYmxlUlNTSGFzaChBZGFwdGVyKTsK
KyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX1NVQ0NFU1M7CisgICAgfQorCisgICAgUnRsWmVy
b01lbW9yeShNYXBwaW5nLCBzaXplb2YgKE1hcHBpbmcpKTsKKyAgICBmb3IgKEluZGV4ID0gMDsg
SW5kZXggPCBUYWJsZVNpemU7IEluZGV4KyspIHsKKyAgICAgICAgTWFwcGluZ1tJbmRleF0uR3Jv
dXAgPSAwOworICAgICAgICBNYXBwaW5nW0luZGV4XS5OdW1iZXIgPSBUYWJsZVtJbmRleF07Cisg
ICAgfQorCisgICAgc3RhdHVzID0gWEVOVklGX1ZJRihVcGRhdGVIYXNoTWFwcGluZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICBNYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVTaXplKTsK
KworICAgIHJldHVybiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSA/IE5ESVNfU1RBVFVTX1NVQ0NFU1Mg
OiBORElTX1NUQVRVU19JTlZBTElEX0RBVEE7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRh
cHRlclVwZGF0ZVJTU0tleSgKKyAgICBJTiAgUFhFTk5FVF9BREFQVEVSIEFkYXB0ZXIsCisgICAg
SU4gIFBVQ0hBUiAgICAgICAgICBLZXksCisgICAgSU4gIFVMT05HICAgICAgICAgICBLZXlTaXpl
CisgICAgKQoreworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOworCisgICAgaWYgKEtl
eVNpemUgPT0gMCkgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRlcik7Cisg
ICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIFJ0bFplcm9N
ZW1vcnkoQWRhcHRlci0+UnNzLktleSwgTkRJU19SU1NfSEFTSF9TRUNSRVRfS0VZX01BWF9TSVpF
X1JFVklTSU9OXzEpOworICAgIFJ0bENvcHlNZW1vcnkoQWRhcHRlci0+UnNzLktleSwgS2V5LCBL
ZXlTaXplKTsKKworICAgIHN0YXR1cyA9IFhFTlZJRl9WSUYoUmVjZWl2ZXJVcGRhdGVIYXNoUGFy
YW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICBBZGFwdGVyLT5Sc3MuS2V5KTsKKworICAgIHJldHVybiAoTlRfU1VDQ0VT
UyhzdGF0dXMpKSA/IE5ESVNfU1RBVFVTX1NVQ0NFU1MgOiBORElTX1NUQVRVU19JTlZBTElEX0RB
VEE7Cit9CisKK3N0YXRpYyBORElTX1NUQVRVUworQWRhcHRlclVwZGF0ZVJTU0hhc2goCisgICAg
SU4gIFBYRU5ORVRfQURBUFRFUiBBZGFwdGVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgSW5m
b3JtYXRpb24KKyAgICApCit7CisgICAgVUxPTkcgICAgICAgICAgICAgICBIYXNoVHlwZSA9IE5E
SVNfUlNTX0hBU0hfVFlQRV9GUk9NX0hBU0hfSU5GTyhJbmZvcm1hdGlvbik7CisgICAgVUxPTkcg
ICAgICAgICAgICAgICBIYXNoRnVuYyA9IE5ESVNfUlNTX0hBU0hfRlVOQ19GUk9NX0hBU0hfSU5G
TyhJbmZvcm1hdGlvbik7CisgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBp
ZiAoSGFzaEZ1bmMgPT0gMCkgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRl
cik7CisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIGlm
IChIYXNoRnVuYyAhPSBOZGlzSGFzaEZ1bmN0aW9uVG9lcGxpdHopCisgICAgICAgIHJldHVybiBO
RElTX1NUQVRVU19GQUlMVVJFOworCisgICAgaWYgKEhhc2hUeXBlID09IDApCisgICAgICAgIHJl
dHVybiBORElTX1NUQVRVU19GQUlMVVJFOworCisgICAgaWYgKEhhc2hUeXBlICYgfihORElTX0hB
U0hfVENQX0lQVjQgfAorICAgICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX0lQVjQgfAorICAg
ICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX1RDUF9JUFY2IHwKKyAgICAgICAgICAgICAgICAg
ICAgIE5ESVNfSEFTSF9JUFY2KSkKKyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX0ZBSUxVUkU7
CisKKyAgICBzdGF0dXMgPSBYRU5WSUZfVklGKFJlY2VpdmVyU2V0SGFzaEFsZ29yaXRobSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5WaWZJbnRlcmZhY2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1RPRVBMSVRaKTsKKyAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIE5ESVNfU1RBVFVTX0ZB
SUxVUkU7CisKKyAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgPSAwOworCisgICAgaWYgKEhhc2hUeXBl
ICYgTkRJU19IQVNIX1RDUF9JUFY0KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8
PCBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUDsKKworICAgIGlmIChIYXNoVHlwZSAm
IE5ESVNfSEFTSF9JUFY0KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5W
SUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0OworCisgICAgaWYgKEhhc2hUeXBlICYgTkRJU19IQVNI
X1RDUF9JUFY2KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFD
S0VUX0hBU0hfVFlQRV9JUFY2X1RDUDsKKworICAgIGlmIChIYXNoVHlwZSAmIE5ESVNfSEFTSF9J
UFY2KQorICAgICAgICBBZGFwdGVyLT5Sc3MuVHlwZXMgfD0gMSA8PCBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2OworCisgICAgc3RhdHVzID0gWEVOVklGX1ZJRihSZWNlaXZlclVwZGF0ZUhh
c2hQYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgJkFkYXB0ZXItPlZpZkludGVy
ZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFkYXB0ZXItPlJzcy5UeXBlcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEFkYXB0ZXItPlJzcy5LZXkpOworCisgICAgcmV0dXJuIChOVF9T
VUNDRVNTKHN0YXR1cykpID8gTkRJU19TVEFUVVNfU1VDQ0VTUyA6IE5ESVNfU1RBVFVTX0lOVkFM
SURfREFUQTsKK30KKworc3RhdGljIE5ESVNfU1RBVFVTCitBZGFwdGVyR2V0UmVjZWl2ZVNjYWxl
UGFyYW1ldGVycygKKyAgICBJTiAgUFhFTk5FVF9BREFQVEVSICAgICAgICAgICAgICAgICBBZGFw
dGVyLAorICAgIElOICBQTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlMgIFBhcmFtZXRlcnMK
KyAgICApCit7CisgICAgTkRJU19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgbmRpc1N0
YXR1czsKKworICAgIEFTU0VSVDNVKFBhcmFtZXRlcnMtPkhlYWRlci5UeXBlLCA9PSwgTkRJU19P
QkpFQ1RfVFlQRV9SU1NfUEFSQU1FVEVSUyk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVh
ZGVyLlJldmlzaW9uLCA9PSwgTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlNfUkVWSVNJT05f
MSk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVhZGVyLlNpemUsID49LCBORElTX1NJWkVP
Rl9SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlNfUkVWSVNJT05fMSk7CisKKyAgICBpZiAoIUFkYXB0
ZXItPlJzcy5TdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19OT1RfU1VQUE9S
VEVEOworCisgICAgaWYgKCFBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcykKKyAgICAgICAgcmV0dXJu
IE5ESVNfU1RBVFVTX05PVF9TVVBQT1JURUQ7CisKKyAgICBpZiAoQWRhcHRlci0+UnNzLkhhc2hF
bmFibGVkKQorICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NVUFBPUlRFRDsKKworICAg
IGlmICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJU19SU1NfUEFSQU1fRkxBR19ESVNBQkxFX1JT
UykpIHsKKyAgICAgICAgQWRhcHRlci0+UnNzLlNjYWxlRW5hYmxlZCA9IFRSVUU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgQWRhcHRlckRpc2FibGVSU1NIYXNoKEFkYXB0ZXIpOworICAgICAgICBy
ZXR1cm4gTkRJU19TVEFUVVNfU1VDQ0VTUzsKKyAgICB9CisKKyAgICBpZiAoIShQYXJhbWV0ZXJz
LT5GbGFncyAmIE5ESVNfUlNTX1BBUkFNX0ZMQUdfSEFTSF9JTkZPX1VOQ0hBTkdFRCkpIHsKKyAg
ICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJVcGRhdGVSU1NIYXNoKEFkYXB0ZXIsIFBhcmFtZXRl
cnMtPkhhc2hJbmZvcm1hdGlvbik7CisgICAgICAgIGlmIChuZGlzU3RhdHVzICE9IE5ESVNfU1RB
VFVTX1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgaWYgKCEo
UGFyYW1ldGVycy0+RmxhZ3MgJiBORElTX1JTU19QQVJBTV9GTEFHX0hBU0hfS0VZX1VOQ0hBTkdF
RCkpIHsKKyAgICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJVcGRhdGVSU1NLZXkoQWRhcHRlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBVQ0hBUilQYXJhbWV0
ZXJzICsgUGFyYW1ldGVycy0+SGFzaFNlY3JldEtleU9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycy0+SGFzaFNlY3JldEtleVNpemUpOwor
ICAgICAgICBpZiAobmRpc1N0YXR1cyAhPSBORElTX1NUQVRVU19TVUNDRVNTKQorICAgICAgICAg
ICAgZ290byBmYWlsOworICAgIH0KKworICAgIGlmICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJ
U19SU1NfUEFSQU1fRkxBR19JVEFCTEVfVU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVz
ID0gQWRhcHRlclVwZGF0ZVJTU1RhYmxlKEFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFBDQ0hBUilQYXJhbWV0ZXJzICsgUGFyYW1ldGVycy0+SW5k
aXJlY3Rpb25UYWJsZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYXJhbWV0ZXJzLT5JbmRpcmVjdGlvblRhYmxlU2l6ZSk7CisgICAgICAgIGlmIChu
ZGlzU3RhdHVzICE9IE5ESVNfU1RBVFVTX1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7
CisgICAgfQorCisgICAgcmV0dXJuIE5ESVNfU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWw6CisgICAg
QWRhcHRlckRpc2FibGVSU1NIYXNoKEFkYXB0ZXIpOworICAgIHJldHVybiBuZGlzU3RhdHVzOwor
fQorCitzdGF0aWMgTkRJU19TVEFUVVMKK0FkYXB0ZXJHZXRSZWNlaXZlSGFzaFBhcmFtZXRlcnMo
CisgICAgSU4gIFBYRU5ORVRfQURBUFRFUiAgICAgICAgICAgICAgICAgQWRhcHRlciwKKyAgICBJ
TiAgUE5ESVNfUkVDRUlWRV9IQVNIX1BBUkFNRVRFUlMgICBQYXJhbWV0ZXJzCisgICAgKQorewor
ICAgIE5ESVNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgIG5kaXNTdGF0dXM7CisKKyAg
ICBBU1NFUlQzVShQYXJhbWV0ZXJzLT5IZWFkZXIuVHlwZSwgPT0sIE5ESVNfT0JKRUNUX1RZUEVf
REVGQVVMVCk7CisgICAgQVNTRVJUM1UoUGFyYW1ldGVycy0+SGVhZGVyLlJldmlzaW9uLCA9PSwg
TkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xKTsKKyAgICBBU1NFUlQzVShQ
YXJhbWV0ZXJzLT5IZWFkZXIuU2l6ZSwgPj0sIE5ESVNfU0laRU9GX1JFQ0VJVkVfSEFTSF9QQVJB
TUVURVJTX1JFVklTSU9OXzEpOworCisgICAgaWYgKCFBZGFwdGVyLT5Sc3MuU3VwcG9ydGVkKQor
ICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NVUFBPUlRFRDsKKworICAgIGlmIChBZGFw
dGVyLT5Sc3MuU2NhbGVFbmFibGVkKQorICAgICAgICByZXR1cm4gTkRJU19TVEFUVVNfTk9UX1NV
UFBPUlRFRDsKKworICAgIGlmIChQYXJhbWV0ZXJzLT5GbGFncyAmIE5ESVNfUkVDRUlWRV9IQVNI
X0ZMQUdfRU5BQkxFX0hBU0gpIHsKKyAgICAgICAgQWRhcHRlci0+UnNzLkhhc2hFbmFibGVkID0g
VFJVRTsKKyAgICB9IGVsc2UgeworICAgICAgICBBZGFwdGVyRGlzYWJsZVJTU0hhc2goQWRhcHRl
cik7CisgICAgICAgIHJldHVybiBORElTX1NUQVRVU19TVUNDRVNTOworICAgIH0KKworICAgIGlm
ICghKFBhcmFtZXRlcnMtPkZsYWdzICYgTkRJU19SRUNFSVZFX0hBU0hfRkxBR19IQVNIX0lORk9f
VU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVzID0gQWRhcHRlclVwZGF0ZVJTU0hhc2go
QWRhcHRlciwgUGFyYW1ldGVycy0+SGFzaEluZm9ybWF0aW9uKTsKKyAgICAgICAgaWYgKG5kaXNT
dGF0dXMgIT0gTkRJU19TVEFUVVNfU1VDQ0VTUykKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAg
ICB9CisKKyAgICBpZiAoIShQYXJhbWV0ZXJzLT5GbGFncyAmIE5ESVNfUkVDRUlWRV9IQVNIX0ZM
QUdfSEFTSF9LRVlfVU5DSEFOR0VEKSkgeworICAgICAgICBuZGlzU3RhdHVzID0gQWRhcHRlclVw
ZGF0ZVJTU0tleShBZGFwdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoUFVDSEFSKVBhcmFtZXRlcnMgKyBQYXJhbWV0ZXJzLT5IYXNoU2VjcmV0S2V5T2Zmc2V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzLT5I
YXNoU2VjcmV0S2V5U2l6ZSk7CisgICAgICAgIGlmIChuZGlzU3RhdHVzICE9IE5ESVNfU1RBVFVT
X1NVQ0NFU1MpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgcmV0dXJuIE5E
SVNfU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWw6CisgICAgQWRhcHRlckRpc2FibGVSU1NIYXNoKEFk
YXB0ZXIpOworICAgIHJldHVybiBuZGlzU3RhdHVzOworfQorCiBzdGF0aWMgTkRJU19TVEFUVVMK
IEFkYXB0ZXJRdWVyeUdlbmVyYWxTdGF0aXN0aWNzKAogICAgIElOICBQWEVOTkVUX0FEQVBURVIg
ICAgIEFkYXB0ZXIsCkBAIC0xMDQ3LDYgKzEyODgsNTkgQEAgZmFpbDE6CiAgICAgcmV0dXJuIE5E
SVNfU1RBVFVTX0JVRkZFUl9UT09fU0hPUlQ7CiB9CiAKK3N0YXRpYyBGT1JDRUlOTElORSBORElT
X1NUQVRVUworQWRhcHRlclJlY2VpdmVIYXNoKAorICAgIElOICBQWEVOTkVUX0FEQVBURVIgICAg
ICAgICAgICAgICAgIEFkYXB0ZXIsCisgICAgSU4gIFBORElTX1JFQ0VJVkVfSEFTSF9QQVJBTUVU
RVJTICAgUGFyYW1zLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1
ZmZlckxlbmd0aCwKKyAgICBJTiBPVVQgUFVMT05HICAgICAgICAgICAgICAgICAgICAgICBCeXRl
c1dyaXR0ZW4KKyAgICApCit7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSGFzaFR5cGU7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFz
aEZ1bmM7CisKKyAgICBpZiAoQnVmZmVyTGVuZ3RoIDwgTkRJU19TSVpFT0ZfUkVDRUlWRV9IQVNI
X1BBUkFNRVRFUlNfUkVWSVNJT05fMSArCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAo
QWRhcHRlci0+UnNzLktleSkpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBQYXJhbXMtPkhl
YWRlci5UeXBlID0gTkRJU19PQkpFQ1RfVFlQRV9ERUZBVUxUOworICAgIFBhcmFtcy0+SGVhZGVy
LlJldmlzaW9uID0gTkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xOworICAg
IFBhcmFtcy0+SGVhZGVyLlNpemUgPSBORElTX1NJWkVPRl9SRUNFSVZFX0hBU0hfUEFSQU1FVEVS
U19SRVZJU0lPTl8xOworCisgICAgUGFyYW1zLT5GbGFncyA9IChBZGFwdGVyLT5Sc3MuSGFzaEVu
YWJsZWQpID8gTkRJU19SRUNFSVZFX0hBU0hfRkxBR19FTkFCTEVfSEFTSCA6IDA7CisKKyAgICBI
YXNoRnVuYyA9IE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0ejsKKyAgICBIYXNoVHlwZSA9IDA7CisK
KyAgICBpZiAoQWRhcHRlci0+UnNzLlR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZ
UEVfSVBWNF9UQ1ApKQorICAgICAgICBIYXNoVHlwZSB8PSBORElTX0hBU0hfVENQX0lQVjQ7CisK
KyAgICBpZiAoQWRhcHRlci0+UnNzLlR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZ
UEVfSVBWNCkpCisgICAgICAgIEhhc2hUeXBlIHw9IE5ESVNfSEFTSF9JUFY0OworCisgICAgaWYg
KEFkYXB0ZXItPlJzcy5UeXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjZf
VENQKSkKKyAgICAgICAgSGFzaFR5cGUgfD0gTkRJU19IQVNIX1RDUF9JUFY2OworCisgICAgaWYg
KEFkYXB0ZXItPlJzcy5UeXBlcyAmICgxIDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjYp
KQorICAgICAgICBIYXNoVHlwZSB8PSBORElTX0hBU0hfSVBWNjsKKworICAgIFBhcmFtcy0+SGFz
aEluZm9ybWF0aW9uID0gTkRJU19SU1NfSEFTSF9JTkZPX0ZST01fVFlQRV9BTkRfRlVOQyhIYXNo
VHlwZSwgSGFzaEZ1bmMpOworICAgIFBhcmFtcy0+SGFzaFNlY3JldEtleVNpemUgPSBzaXplb2Yg
KEFkYXB0ZXItPlJzcy5LZXkpOworICAgIFBhcmFtcy0+SGFzaFNlY3JldEtleU9mZnNldCA9IE5E
SVNfU0laRU9GX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTX1JFVklTSU9OXzE7CisKKyAgICBSdGxD
b3B5TWVtb3J5KChQVUNIQVIpUGFyYW1zICsgUGFyYW1zLT5IYXNoU2VjcmV0S2V5T2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgQWRhcHRlci0+UnNzLktleSwKKyAgICAgICAgICAgICAgICAgIFBh
cmFtcy0+SGFzaFNlY3JldEtleVNpemUpOworCisgICAgKkJ5dGVzV3JpdHRlbiA9IE5ESVNfU0la
RU9GX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTX1JFVklTSU9OXzEgKworICAgICAgICAgICAgICAg
ICAgICBzaXplb2YgKEFkYXB0ZXItPlJzcy5LZXkpOworICAgIHJldHVybiBORElTX1NUQVRVU19T
VUNDRVNTOworCitmYWlsMToKKyAgICAqQnl0ZXNXcml0dGVuID0gMDsKKyAgICByZXR1cm4gTkRJ
U19TVEFUVVNfQlVGRkVSX1RPT19TSE9SVDsKK30KKwogTkRJU19IQU5ETEUKIEFkYXB0ZXJHZXRI
YW5kbGUoCiAgICAgSU4gIFBYRU5ORVRfQURBUFRFUiAgICAgQWRhcHRlcgpAQCAtMTY5Myw2ICsx
OTg3LDMwIEBAIEFkYXB0ZXJTZXRJbmZvcm1hdGlvbigKICAgICAgICAgfQogICAgICAgICBicmVh
azsKIAorICAgIGNhc2UgT0lEX0dFTl9SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlM6CisgICAgICAg
IEJ5dGVzTmVlZGVkID0gTkRJU19TSVpFT0ZfUkVDRUlWRV9TQ0FMRV9QQVJBTUVURVJTX1JFVklT
SU9OXzE7CisgICAgICAgIGlmIChCdWZmZXJMZW5ndGggPj0gQnl0ZXNOZWVkZWQpIHsKKyAgICAg
ICAgICAgIG5kaXNTdGF0dXMgPSBBZGFwdGVyR2V0UmVjZWl2ZVNjYWxlUGFyYW1ldGVycyhBZGFw
dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChQTkRJU19SRUNFSVZFX1NDQUxFX1BBUkFNRVRFUlMpQnVmZmVyKTsKKyAgICAgICAg
ICAgIGlmIChuZGlzU3RhdHVzID09IE5ESVNfU1RBVFVTX1NVQ0NFU1MpCisgICAgICAgICAgICAg
ICAgQnl0ZXNSZWFkID0gc2l6ZW9mKE5ESVNfUkVDRUlWRV9TQ0FMRV9QQVJBTUVURVJTKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5kaXNTdGF0dXMgPSBORElTX1NUQVRVU19JTlZB
TElEX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgT0lEX0dF
Tl9SRUNFSVZFX0hBU0g6CisgICAgICAgIEJ5dGVzTmVlZGVkID0gTkRJU19TSVpFT0ZfUkVDRUlW
RV9IQVNIX1BBUkFNRVRFUlNfUkVWSVNJT05fMTsKKyAgICAgICAgaWYgKEJ1ZmZlckxlbmd0aCA+
PSBCeXRlc05lZWRlZCkgeworICAgICAgICAgICAgbmRpc1N0YXR1cyA9IEFkYXB0ZXJHZXRSZWNl
aXZlSGFzaFBhcmFtZXRlcnMoQWRhcHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQTkRJU19SRUNFSVZFX0hBU0hfUEFSQU1FVEVS
UylCdWZmZXIpOworICAgICAgICAgICAgaWYgKG5kaXNTdGF0dXMgPT0gTkRJU19TVEFUVVNfU1VD
Q0VTUykKKyAgICAgICAgICAgICAgICBCeXRlc1JlYWQgPSBzaXplb2YoTkRJU19SRUNFSVZFX0hB
U0hfUEFSQU1FVEVSUyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuZGlzU3RhdHVz
ID0gTkRJU19TVEFUVVNfSU5WQUxJRF9MRU5HVEg7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisKICAgICBjYXNlIE9JRF9HRU5fSU5URVJSVVBUX01PREVSQVRJT046CiAgICAgY2FzZSBPSURf
R0VOX01BQ0hJTkVfTkFNRToKICAgICAgICAgV2FybiA9IEZBTFNFOwpAQCAtMjIzOCw2ICsyNTU2
LDE1IEBAIEFkYXB0ZXJRdWVyeUluZm9ybWF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkJ5dGVzV3JpdHRlbik7CiAgICAgICAgIGJyZWFrOwog
CisgICAgY2FzZSBPSURfR0VOX1JFQ0VJVkVfSEFTSDoKKyAgICAgICAgQnl0ZXNOZWVkZWQgPSBO
RElTX1NJWkVPRl9SRUNFSVZFX0hBU0hfUEFSQU1FVEVSU19SRVZJU0lPTl8xICsKKyAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YgKEFkYXB0ZXItPlJzcy5LZXkpOworICAgICAgICBuZGlzU3Rh
dHVzID0gQWRhcHRlclJlY2VpdmVIYXNoKEFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFBORElTX1JFQ0VJVkVfSEFTSF9QQVJBTUVURVJTKUJ1ZmZlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJMZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkJ5dGVzV3JpdHRlbik7Cisg
ICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBPSURfSVA0X09GRkxPQURfU1RBVFM6CiAgICAgY2Fz
ZSBPSURfSVA2X09GRkxPQURfU1RBVFM6CiAgICAgY2FzZSBPSURfR0VOX1NVUFBPUlRFRF9HVUlE
UzoKQEAgLTIzODUsNiArMjcxMiw3IEBAIEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzKAogICAg
IFJFQURfUFJPUEVSVFkoQWRhcHRlci0+UHJvcGVydGllcy5scm92NCwgTCJMUk9JUHY0IiwgMSwg
SGFuZGxlKTsKICAgICBSRUFEX1BST1BFUlRZKEFkYXB0ZXItPlByb3BlcnRpZXMubHJvdjYsIEwi
TFJPSVB2NiIsIDEsIEhhbmRsZSk7CiAgICAgUkVBRF9QUk9QRVJUWShBZGFwdGVyLT5Qcm9wZXJ0
aWVzLm5lZWRfY3N1bV92YWx1ZSwgTCJOZWVkQ2hlY2tzdW1WYWx1ZSIsIDEsIEhhbmRsZSk7Cisg
ICAgUkVBRF9QUk9QRVJUWShBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcywgTCIqUlNTIiwgMSwgSGFu
ZGxlKTsKIAogICAgIE5kaXNDbG9zZUNvbmZpZ3VyYXRpb24oSGFuZGxlKTsKIApAQCAtMjQyOCw3
ICsyNzU2LDEwIEBAIEFkYXB0ZXJTZXRHZW5lcmFsQXR0cmlidXRlcygKICAgICApCiB7CiAgICAg
TkRJU19NSU5JUE9SVF9BREFQVEVSX0dFTkVSQUxfQVRUUklCVVRFUyAgICBBdHRyaWJzOworICAg
IFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM7CisgICAg
TkRJU19SRUNFSVZFX1NDQUxFX0NBUEFCSUxJVElFUyAgICAgICAgICAgICBSc3M7CiAgICAgTkRJ
U19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGlzU3RhdHVzOworICAg
IE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAg
ICAgUnRsWmVyb01lbW9yeSgmQXR0cmlicywgc2l6ZW9mKEF0dHJpYnMpKTsKICAgICBBdHRyaWJz
LkhlYWRlci5UeXBlID0gTkRJU19PQkpFQ1RfVFlQRV9NSU5JUE9SVF9BREFQVEVSX0dFTkVSQUxf
QVRUUklCVVRFUzsKQEAgLTI0NjIsNyArMjc5Myw2IEBAIEFkYXB0ZXJTZXRHZW5lcmFsQXR0cmli
dXRlcygKICAgICAgICAgICAgICAgIChQRVRIRVJORVRfQUREUkVTUykmQXR0cmlicy5DdXJyZW50
TWFjQWRkcmVzcyk7CiAKICAgICBBdHRyaWJzLlBoeXNpY2FsTWVkaXVtVHlwZSA9IE5kaXNQaHlz
aWNhbE1lZGl1bTgwMl8zOwotICAgIEF0dHJpYnMuUmVjdlNjYWxlQ2FwYWJpbGl0aWVzID0gTlVM
TDsKICAgICBBdHRyaWJzLkFjY2Vzc1R5cGUgPSBORVRfSUZfQUNDRVNTX0JST0FEQ0FTVDsKICAg
ICBBdHRyaWJzLkRpcmVjdGlvblR5cGUgPSBORVRfSUZfRElSRUNUSU9OX1NFTkRSRUNFSVZFOwog
ICAgIEF0dHJpYnMuQ29ubmVjdGlvblR5cGUgPSBORVRfSUZfQ09OTkVDVElPTl9ERURJQ0FURUQ7
CkBAIC0yNDg5LDYgKzI4MTksNTAgQEAgQWRhcHRlclNldEdlbmVyYWxBdHRyaWJ1dGVzKAogICAg
IEF0dHJpYnMuU3VwcG9ydGVkT2lkTGlzdCA9IFhlbm5ldFN1cHBvcnRlZE9pZHM7CiAgICAgQXR0
cmlicy5TdXBwb3J0ZWRPaWRMaXN0TGVuZ3RoID0gc2l6ZW9mKFhlbm5ldFN1cHBvcnRlZE9pZHMp
OwogCisgICAgQXR0cmlicy5SZWN2U2NhbGVDYXBhYmlsaXRpZXMgPSBOVUxMOworCisgICAgaWYg
KCFBZGFwdGVyLT5Qcm9wZXJ0aWVzLnJzcykgeworICAgICAgICBJbmZvKCJSU1MgRElTQUJMRURc
biIpOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisgICAgc3RhdHVzID0gWEVOVklGX1ZJ
RihSZWNlaXZlclNldEhhc2hBbGdvcml0aG0sCisgICAgICAgICAgICAgICAgICAgICAgICAmQWRh
cHRlci0+VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BBQ0tF
VF9IQVNIX0FMR09SSVRITV9UT0VQTElUWik7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
CisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIHN0YXR1cyA9IFhFTlZJRl9WSUYoUmVjZWl2ZXJR
dWVyeUhhc2hDYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAmQWRhcHRlci0+
VmlmSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgJlR5cGVzKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBkb25lOworCisgICAgUnRsWmVyb01l
bW9yeSgmUnNzLCBzaXplb2YoUnNzKSk7CisgICAgUnNzLkhlYWRlci5UeXBlID0gTkRJU19PQkpF
Q1RfVFlQRV9SU1NfQ0FQQUJJTElUSUVTOworICAgIFJzcy5IZWFkZXIuUmV2aXNpb24gPSBORElT
X1JFQ0VJVkVfU0NBTEVfQ0FQQUJJTElUSUVTX1JFVklTSU9OXzE7CisgICAgUnNzLkhlYWRlci5T
aXplID0gTkRJU19TSVpFT0ZfUkVDRUlWRV9TQ0FMRV9DQVBBQklMSVRJRVNfUkVWSVNJT05fMTsK
KworICAgIFJzcy5DYXBhYmlsaXRpZXNGbGFncyA9IE5ESVNfUlNTX0NBUFNfTUVTU0FHRV9TSUdO
QUxFRF9JTlRFUlJVUFRTIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX1JTU19D
QVBTX0NMQVNTSUZJQ0FUSU9OX0FUX0lTUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TkRJU19SU1NfQ0FQU19DTEFTU0lGSUNBVElPTl9BVF9EUEMgfAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0ejsKKworICAgIGlmIChUeXBlcyAmICgx
IDw8IFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjRfVENQKSkKKyAgICAgICAgUnNzLkNhcGFi
aWxpdGllc0ZsYWdzIHw9IE5ESVNfUlNTX0NBUFNfSEFTSF9UWVBFX1RDUF9JUFY0OworCisgICAg
aWYgKFR5cGVzICYgKDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNl9UQ1ApKQorICAg
ICAgICBSc3MuQ2FwYWJpbGl0aWVzRmxhZ3MgfD0gTkRJU19SU1NfQ0FQU19IQVNIX1RZUEVfVENQ
X0lQVjY7CisKKyAgICBYRU5WSUZfVklGKFF1ZXJ5UmluZ0NvdW50LAorICAgICAgICAgICAgICAg
JkFkYXB0ZXItPlZpZkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICZSc3MuTnVtYmVyT2ZSZWNl
aXZlUXVldWVzKTsKKyAgICBSc3MuTnVtYmVyT2ZJbnRlcnJ1cHRNZXNzYWdlcyA9IFJzcy5OdW1i
ZXJPZlJlY2VpdmVRdWV1ZXM7CisKKyAgICBBZGFwdGVyLT5Sc3MuU3VwcG9ydGVkID0gVFJVRTsK
KyAgICBBdHRyaWJzLlJlY3ZTY2FsZUNhcGFiaWxpdGllcyA9ICZSc3M7CisKK2RvbmU6CiAgICAg
bmRpc1N0YXR1cyA9IE5kaXNNU2V0TWluaXBvcnRBdHRyaWJ1dGVzKEFkYXB0ZXItPk5kaXNBZGFw
dGVySGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
UE5ESVNfTUlOSVBPUlRfQURBUFRFUl9BVFRSSUJVVEVTKSZBdHRyaWJzKTsKIApkaWZmIC0tZ2l0
IGEvc3JjL3hlbm5ldC9yZWNlaXZlci5jIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCmluZGV4IDc2
NDVhOGMuLjg0M2RmMmIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYworKysgYi9z
cmMveGVubmV0L3JlY2VpdmVyLmMKQEAgLTgzLDYgKzgzLDExIEBAIF9fUmVjZWl2ZXJBbGxvY2F0
ZU5ldEJ1ZmZlckxpc3QoCiAgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0ID0gTkVUX0JVRkZFUl9M
SVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpOwogICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVY
VF9OQkwoTmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCisgICAgICAgIE5FVF9CVUZGRVJfTElTVF9J
TkZPKE5ldEJ1ZmZlckxpc3QsIFRjcElwQ2hlY2tzdW1OZXRCdWZmZXJMaXN0SW5mbykgPSBOVUxM
OworICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBJZWVlODAyMVFO
ZXRCdWZmZXJMaXN0SW5mbykgPSBOVUxMOworICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhO
ZXRCdWZmZXJMaXN0LCBOZXRCdWZmZXJMaXN0SGFzaEluZm8pID0gTlVMTDsKKyAgICAgICAgTkVU
X0JVRkZFUl9MSVNUX0lORk8oTmV0QnVmZmVyTGlzdCwgTmV0QnVmZmVyTGlzdEhhc2hWYWx1ZSkg
PSBOVUxMOworCiAgICAgICAgIE5ldEJ1ZmZlciA9IE5FVF9CVUZGRVJfTElTVF9GSVJTVF9OQihO
ZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9GSVJTVF9NREwoTmV0QnVmZmVyKSA9
IE1kbDsKICAgICAgICAgTkVUX0JVRkZFUl9DVVJSRU5UX01ETChOZXRCdWZmZXIpID0gTWRsOwpA
QCAtMTc0LDYgKzE3OSw3IEBAIF9fUmVjZWl2ZXJSZWNlaXZlUGFja2V0KAogICAgIElOICBVU0hP
UlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bVNlZ21lbnRTaXplLAog
ICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnQ29udHJv
bEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklGX1BBQ0tFVF9JTkZPICAgICAgICAgICAgICAg
ICAgICAgSW5mbywKKyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICAgICAg
ICAgIEhhc2gsCiAgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDb29raWUKICAgICApCiB7CkBAIC0yMjAsNiArMjI2LDQyIEBAIF9fUmVjZWl2ZXJSZWNlaXZl
UGFja2V0KAogICAgICAgICBORVRfQlVGRkVSX0xJU1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBJZWVl
ODAyMVFOZXRCdWZmZXJMaXN0SW5mbykgPSBJZWVlODAyMVFJbmZvLlZhbHVlOwogICAgIH0KIAor
ICAgIHN3aXRjaCAoSGFzaC0+QWxnb3JpdGhtKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hB
U0hfQUxHT1JJVEhNX1RPRVBMSVRaOgorICAgICAgICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hf
RlVOQ1RJT04oTmV0QnVmZmVyTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5kaXNIYXNoRnVuY3Rpb25Ub2VwbGl0eik7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoIChIYXNoLT5U
eXBlKSB7CisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0OgorICAgICAgICBO
RVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVFlQRShOZXRCdWZmZXJMaXN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX0hBU0hfSVBWNCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0X1RDUDoKKyAgICAgICAg
TkVUX0JVRkZFUl9MSVNUX1NFVF9IQVNIX1RZUEUoTmV0QnVmZmVyTGlzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTkRJU19IQVNIX1RDUF9JUFY0KTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjY6CisgICAgICAg
IE5FVF9CVUZGRVJfTElTVF9TRVRfSEFTSF9UWVBFKE5ldEJ1ZmZlckxpc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ESVNfSEFTSF9JUFY2KTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIFhFTlZJRl9QQUNLRVRfSEFTSF9UWVBFX0lQVjZfVENQOgorICAgICAg
ICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVFlQRShOZXRCdWZmZXJMaXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORElTX0hBU0hfVENQX0lQVjYpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBORVRfQlVGRkVSX0xJU1RfU0VUX0hBU0hfVkFMVUUoTmV0
QnVmZmVyTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaC0+VmFs
dWUpOworCisKICAgICByZXR1cm4gTmV0QnVmZmVyTGlzdDsKIAogZmFpbDI6CkBAIC0zODQsNiAr
NDI2LDcgQEAgUmVjZWl2ZXJRdWV1ZVBhY2tldCgKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYXhpbXVtU2VnbWVudFNpemUsCiAgICAgSU4gIFVTSE9SVCAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGFnQ29udHJvbEluZm9ybWF0aW9uLAogICAgIElOICBQWEVOVklG
X1BBQ0tFVF9JTkZPICAgICAgICAgICAgIEluZm8sCisgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0hB
U0ggICAgICAgICAgICAgSGFzaCwKICAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb29raWUKICAgICApCiB7CkBAIC00MDAsNiArNDQzLDcgQEAgUmVjZWl2ZXJRdWV1ZVBh
Y2tldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11
bVNlZ21lbnRTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUYWdDb250cm9sSW5mb3JtYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEhhc2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENvb2tpZSk7CiAKICAgICBpZiAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7CmRpZmYgLS1naXQg
YS9zcmMveGVubmV0L3JlY2VpdmVyLmggYi9zcmMveGVubmV0L3JlY2VpdmVyLmgKaW5kZXggZTZi
MmFmMS4uNzNmZmM3ZSAxMDA2NDQKLS0tIGEvc3JjL3hlbm5ldC9yZWNlaXZlci5oCisrKyBiL3Ny
Yy94ZW5uZXQvcmVjZWl2ZXIuaApAQCAtNjUsNiArNjUsNyBAQCBSZWNlaXZlclF1ZXVlUGFja2V0
KAogICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1TZWdtZW50
U2l6ZSwKICAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdDb250cm9s
SW5mb3JtYXRpb24sCiAgICAgSU4gIFBYRU5WSUZfUEFDS0VUX0lORk8gICAgICAgICAgICAgSW5m
bywKKyAgICBJTiAgUFhFTlZJRl9QQUNLRVRfSEFTSCAgICAgICAgICAgICBIYXNoLAogICAgIElO
ICBQVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZQogICAgICk7CiAKZGlmZiAt
LWdpdCBhL3NyYy94ZW5uZXQvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW5uZXQvdHJhbnNtaXR0ZXIu
YwppbmRleCBlYWY1MjY3Li40MzIxOThjIDEwMDY0NAotLS0gYS9zcmMveGVubmV0L3RyYW5zbWl0
dGVyLmMKKysrIGIvc3JjL3hlbm5ldC90cmFuc21pdHRlci5jCkBAIC0yOTIsNyArMjkyLDM4IEBA
IFRyYW5zbWl0dGVyU2VuZE5ldEJ1ZmZlckxpc3RzKAogCiAgICAgICAgICAgICBfX1RyYW5zbWl0
dGVyR2V0TmV0QnVmZmVyTGlzdChUcmFuc21pdHRlciwgTmV0QnVmZmVyTGlzdCk7CiAKLSAgICAg
ICAgICAgIEhhc2guQWxnb3JpdGhtID0gWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITV9OT05F
OworICAgICAgICAgICAgc3dpdGNoIChORVRfQlVGRkVSX0xJU1RfR0VUX0hBU0hfRlVOQ1RJT04o
TmV0QnVmZmVyTGlzdCkpIHsKKyAgICAgICAgICAgIGNhc2UgTmRpc0hhc2hGdW5jdGlvblRvZXBs
aXR6OgorICAgICAgICAgICAgICAgIEhhc2guQWxnb3JpdGhtID0gWEVOVklGX1BBQ0tFVF9IQVNI
X0FMR09SSVRITV9UT0VQTElUWjsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBIYXNoLkFsZ29yaXRobSA9IFhFTlZJRl9QQUNL
RVRfSEFTSF9BTEdPUklUSE1fTk9ORTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChORVRfQlVGRkVSX0xJU1RfR0VUX0hBU0hfVFlQ
RShOZXRCdWZmZXJMaXN0KSkgeworICAgICAgICAgICAgY2FzZSBORElTX0hBU0hfSVBWNDoKKyAg
ICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY0Owor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE5ESVNfSEFTSF9UQ1Bf
SVBWNDoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VUX0hBU0hfVFlQ
RV9JUFY0X1RDUDsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBO
RElTX0hBU0hfSVBWNjoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5WSUZfUEFDS0VU
X0hBU0hfVFlQRV9JUFY2OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBj
YXNlIE5ESVNfSEFTSF9UQ1BfSVBWNjoKKyAgICAgICAgICAgICAgICBIYXNoLlR5cGUgPSBYRU5W
SUZfUEFDS0VUX0hBU0hfVFlQRV9JUFY2X1RDUDsKKyAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgSGFzaC5WYWx1ZSA9IE5FVF9CVUZGRVJfTElTVF9HRVRfSEFTSF9W
QUxVRShOZXRCdWZmZXJMaXN0KTsKIAogICAgICAgICAgICAgc3RhdHVzID0gWEVOVklGX1ZJRihU
cmFuc21pdHRlclF1ZXVlUGFja2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
ZGFwdGVyR2V0VmlmSW50ZXJmYWNlKFRyYW5zbWl0dGVyLT5BZGFwdGVyKSwKLS0gCjIuMS4xCgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 17 22:57:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 22:57:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2nvM-0005Dm-2L; Tue, 17 May 2016 22:57:12 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <john.priest@oracle.com>) id 1b2nvK-0005Df-MN
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 22:57:10 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 42/01-21979-5C1AB375; Tue, 17 May 2016 22:57:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrNKsWRWlGSWpSXmKPExsUyZ7p8oO6Rhdb
 hBhMvmFn8WZzowOhx+MMVlgDGKNbMvKT8igTWjIWfbzEXnCis6F9ynbmB8W1OFyMXh5DABiaJ
 +TuWsUI485gk1h/4wgzh3GSUaFnVwNTFyMnBKyAocXLmExYI20piWu9hMJtFQFvi78MtYDVsA
 loSF/+/ZgSxhQV0JOZv2g1WIyKgKnFt+TE2iLiKxLrZt9lBbAkBXokZ7U9ZIOxIiXP/v4LVMA
 uESOxsuMkIETeW6JvVxzKBkW8WkjNmISmDsKMklu+6zQZha0nc+PeSCcLWlli28DUzhB0m8Xh
 lP1RcE2jdOmZMNboS0yccgapRlJjS/ZAdwjaR+DppAtR8HYkfJ08ywthL26axYVP/4tcCVpia
 y4s3si5gFFjFqFGcWlSWWqRraKGXVJSZnlGSm5iZo2toYKqXm1pcnJiempOYVKyXnJ+7iREYq
 QxAsIOxabvnIUZJDiYlUd4LJtbhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4ExYA5QSLUtNTK9
 Iyc4ApAyYtwcGjJML7Yj5Qmre4IDG3ODMdInWKUVFKnDcXpE8AJJFRmgfXBktTlxhlpYR5GYE
 OEeIpSC3KzSxBlX/FKM7BqCTMuwxkCk9mXgnc9FdAi5mAFk8wswBZXJKIkJJqYGQ8fXeuV+bV
 qmm8c77J/X70Nidy63uNzwY2di9YFioLLbE758nppx90oTdwuhmLyHfWJVISyevv/dYNyr/3f
 eHGNSslk+9JCphM++7eHTGN86DJm+9SFjMrc/Mz7ounbRJ1V46QE/h1+7W79+Hcea7Gu2bzb7
 gv+lhoWbVOuEj869iWlG2TdiixFGckGmoxFxUnAgCKRPjyTgMAAA==
X-Env-Sender: john.priest@oracle.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1463525826!39869926!1
X-Originating-IP: [156.151.31.81]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTU2LjE1MS4zMS44MSA9PiAyODgzMzk=\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25072 invoked from network); 17 May 2016 22:57:08 -0000
Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81)
 by server-6.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 17 May 2016 22:57:08 -0000
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233])
 by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id
 u4HMv5wF024724
 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:06 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u4HMv528020127
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:05 GMT
Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18])
 by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u4HMuxtS005417
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:05 GMT
MIME-Version: 1.0
Message-ID: <baa081a6-7835-4356-be28-38a12d4841b7@default>
Date: Tue, 17 May 2016 15:56:51 -0700 (PDT)
From: John Priest <john.priest@oracle.com>
To: win-pv-devel@lists.xenproject.org
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9  (901082) [OL
 14.0.7113.0 (x86)]
Content-Type: multipart/mixed;
 boundary="__1463525814365131823abhmp0012.oracle.com"
X-Source-IP: aserv0021.oracle.com [141.146.126.233]
Subject: [win-pv-devel] Win PV driver documentation
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--__1463525814365131823abhmp0012.oracle.com
Content-Type: multipart/alternative;
 boundary="__1463525814365131824abhmp0012.oracle.com"

--__1463525814365131824abhmp0012.oracle.com
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Hi,

=20

I am looking for any some documentation that (hopefully) exists for the sup=
port offered by the drivers.

I read through the material on the website and checked a few of the readme =
files on the driver source code but do not see a document that offers OS su=
pport, performance/capacity information and feature information.  Am I miss=
ing it or is this on the list of activities that need to be done?

=20

Regards,

John Priest | Oracle VM, Director Product Management
1 Oracle Drive | Nashua, NH 03062
Mobile: +1.508.202.2534 | Office: +1.603.897.3223

HYPERLINK "http://www.oracle.com/"Oracle

HYPERLINK "http://www.oracle.com/commitment"Green OracleOracle is committed=
 to developing practices and products that help protect the environment

=20

--__1463525814365131824abhmp0012.oracle.com
Content-Type: multipart/related;
 boundary="__1463525814365131825abhmp0012.oracle.com"

--__1463525814365131825abhmp0012.oracle.com
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dus-ascii"><meta name=3DGenerator content=3D"Micros=
oft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#def=
ault#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
=09{font-family:Verdana;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0in;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0in;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:"Tahoma","sans-serif";}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Calibri","sans-serif";
=09color:windowtext;}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:"Tahoma","sans-serif";}
.MsoChpDefault
=09{mso-style-type:export-only;
=09font-family:"Calibri","sans-serif";}
@page WordSection1
=09{size:8.5in 11.0in;
=09margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Hi,<o:p></o:p></=
p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>I am looki=
ng for any some documentation that (hopefully) exists for the support offer=
ed by the drivers.<o:p></o:p></p><p class=3DMsoNormal>I read through the ma=
terial on the website and checked a few of the readme files on the driver s=
ource code but do not see a document that offers OS support, performance/ca=
pacity information and feature information.&nbsp; Am I missing it or is thi=
s on the list of activities that need to be done?<o:p></o:p></p><p class=3D=
MsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-=
family:"Verdana","sans-serif";color:#595959'>Regards,<o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";c=
olor:#666666'>John Priest | </span><span style=3D'font-size:10.0pt;font-fam=
ily:"Verdana","sans-serif";color:red'>Oracle VM</span><span style=3D'font-s=
ize:10.0pt;font-family:"Verdana","sans-serif";color:#666666'>, Director Pro=
duct Management<br>1 Oracle Drive | Nashua, NH 03062<br>Mobile: +1.508.202.=
2534 | Office: +1.603.897.3223<o:p></o:p></span></p><p class=3DMsoNormal><a=
 href=3D"http://www.oracle.com/" target=3D"_blank"><span style=3D'font-fami=
ly:"Verdana","sans-serif";color:blue;text-decoration:none'><img border=3D0 =
width=3D114 height=3D26 id=3D"Picture_x0020_1" src=3D"cid:image001.jpg@01D1=
B038.EA870770" alt=3DOracle></span></a><o:p></o:p></p><p class=3DMsoNormal>=
<a href=3D"http://www.oracle.com/commitment" target=3D"_blank"><span style=
=3D'color:blue;text-decoration:none'><img border=3D0 width=3D44 height=3D28=
 id=3D"Picture_x0020_2" src=3D"cid:image002.gif@01D1B038.EA870770" alt=3D"G=
reen Oracle"></span></a><span style=3D'font-size:7.5pt;font-family:"Verdana=
","sans-serif";color:#4B7D42'>Oracle is committed to developing practices a=
nd products that help protect the environment</span><b><o:p></o:p></b></p><=
p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></body></html>
--__1463525814365131825abhmp0012.oracle.com
Content-Type: image/jpeg; name="image001.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="image001.jpg"
Content-ID: <image001.jpg@01D1B038.EA870770>

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAAEwgAADd8AABIgAAAWbv/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgAGgByAwERAAIR
AQMRAf/EAPAAAAIDAQEBAAAAAAAAAAAAAAAIBQYHBAIJAQACAgMBAQAAAAAAAAAAAAAABgQFAwcI
AgEQAAICAwEAAQQDAQAAAAAAAAQFAwYBAgcAFEATFhcSFQgYEQACAgEDAwIDBAYLAAAAAAACAwEE
BRESBgAhEzEUQSIHMjQVNmEjM9Q1lRBAQmKScyRUZKXVEgACAQIDAwcICAQHAAAAAAABAgMRBAAh
EjFRBfBBYXEyEwaBkaHRIiMzFBBAsUJSktI0Y5OjFfGCorLTNQcTAQEAAgICAQQCAgMAAAAAAAER
ACExQRBRYfBxgZFAocHRseHx/9oADAMBAAIRAxEAAAH6Io3U/J5kdvuNltW9S+ave155W+fqB1w1
bVoXD6TaHj56dNz5pzatc1yXdy3aasazbICWpnSzKMmlV5X9wcvjPgdDthiWHT1ajXWKU2zPoS/8
h4nS7M0SxT18X9vZbVvTtOvMbwO3MEXinVCIxW6Wvefn3i8Sff3zYZFRX49tAYLeUyQYfFY2ORTQ
mGzmc1bYpFOAAAAAAAAAAAAAAB//2gAIAQEAAQUCsXQ7a2tPx/8AQ3q70K3KrSgtHaLhK7snbaOD
HYFu1dq3bHZln6R0CKiLYv8AogvR896pTqRXzJmKHod5DoKAab/QzOEaPto6r5d98nej8h6D+8uW
+Zv4OtdB5kmaO61APan1l6GRNbntvV3t9V5bM+YRQd25hLD1O+VW583rvZ+ag1/rjxD0tOIFwcgb
kkvNRJvFhBsIfxGqeDBCXwiLwAMHp1DTIqlUDN7RUrjM2qlWk2iQo4BfxGqeAUqleJavWZ5AFCpX
9D//2gAIAQIAAQUCIYFSlfxsHh2BcRMBLkvMxDoLTE8fxxXU25LE/AMePyDb087QMKDfMkDA7UCD
XNgkxrh1rF/I70U+qk/+7Weknw1PWwyTDY1KnJYbZLnLjOnGyTPJjDxZnDQ4UxcO5W6Dtp4GUWui
LbVTlbrn22mm+PiC+000jxrppp7eGKX2sUWmffaixv8AFGz7EEONfiC+0iii9kYbOdIoovof/9oA
CAEDAAEFAk9Pr4CL73H/ADioV49E2R81ruixLzG0FbqDcOHvMlgyOmVLe1Gb/p4fZSqodjs7YeMN
rT6sRbG00fHwpJtuYyn/AGKp5iqm6HUf1de/AqZef1G7sgVjqWZCqS1CGOvq68dVVLyNIqE3l5Xe
Y5KJVH1bubjmt1Kb89VtaSxIJ6tFN0HS6zx+HJJEk/IX/iCiTJCCyi8isWAOJ2B5UXtjztxtX73X
G7VpLP8AkL/xR553o3ruLQpged9D/9oACAECAgY/AjZ8NUFl7THYOXIY2w8vJgWfElAZ+yw2HlyG
HNuYtCuRnj5i47poRtpj5k5RadXkpXANwumzlJCHq5Z4FBqnc0UY1e5Xo5Vw89wyd4CKUHTnhJG7
RUH0Y705scgN5xr90leY8jhy5jMtPZA9O7HZX4P9Tdt2ctWJlugRDK2oN5/Xj4n+lvViEWlTDC2o
t5vVypidYXMcvfGh9ePkOKTOg9DeX7PXhODWmUa01dAHN5Ptpj5MWtEXskMOb14ilcVuLRvbHPTL
P0UPkOKmSn+VvViQWzaqaa5Hf0jCI0ntBB91t3VgNZkuYsyAG2b8xipnnB3f4Jho7J3kc5mtf0gf
RpcAr04+HH+UY0oAF6MewAK7se8VW6xXGpFUMej6O8Cr3m+meM40/KMFAi6DzUGPhx/lGPdqq9Qp
ipjSvUMe7VV6hT6j/9oACAEDAgY/Ao/EnjaeWO3uPgQx9txvOR2jPLSAKEtVtOPhcU9H68SeJPBU
8kkFv8eGTtoN4yByGeeoEaiGqunFrHxiO+NzPbJL7tqjPrI564/s3Bzf2/E5Fbu2ehFVUtsq1cgT
T2agZMDhuBIuviAuDDQc7htH28+JF4PMZvE1jGj3CVrUMKmi0y/EnOVFDUsDiQSydxwu2TXNL+EZ
0ArlU0JqcgAT0HuR/cptP3xz9P3P9oxacJ4NFdiyZJTKZHoxIQlAtK0pSpPPsxc2kPwYriRB1K5A
x8hG3d26rrkk26VHmqSch59gODa14hclMu8XssejsecLTdXFtFapexWGpjM7k7Ap0qAus+0200yp
TnJHx5/+y07D+z/H8PtdPa/g44bccAZH4nw6HupICwU7EWoqQBXu6itAynbVaY/Y/wBa3/5ccTk8
QsqcS4lAYIoAwZuy66jpqMu8qaGgA26mAxwmbidrHeWJ4XEHRttNRzQ8zDpyOw7wPF3gThlvdSBW
BYGjwVGepM2y2OAVYKa9gk4uf/SvEPt3spYW6na7yE1frc1zGyPW2wjB8Stx8yXNwCZkeBxq156T
StNJpSmylB7OL/h1pKsfCPEMGq2kHYEulqx7qNrDxrlqXXGOzgotoHUHtCaGh6RqkU+cA9GLJ+NQ
iESrMF95ExNImrkjsct+zF1dQWVYJLmRlPewZhnJBzlrs34ki8SxR2sV+ojidpImBlWpC6UkJoQT
uFaLWrDDRxcJ4TLGDky0AbpAe6VvOBiC98T2lvaWqEoixNHQscydImkcmg29kDdXPHfWsjxy71JU
+cY/fXn86T9WO+u5Hll3sxY+c4U3UkkhVaDUxag3CuwdGCLKeaENt0Oy169JGFhuppZIU7Ks7MF5
sgTQZfQLN5pTZrsTW2gdS1pjSt7dhR/Fk/VhbqS5na5TsuZGLL1NWo8mP315/Ok/VgG+mlm07Nbs
1K7tRNMCOK8uljGwCVwB5NWB89PNNp2a3ZqV3aiafUf/2gAIAQEBBj8Cu8M+mmLo3beIiYzuayf3
Kk7XaSE/rlBBJb8kyXkIjgoFegyXX3/g/wDgb+5dUuG/UvFUqdrMRpgs3i9fY3nR28Df1rQkmn8k
SPjIDkYJehwXWcdx65xYKWKzdzFaZCtKnaoLcGmxLt8eIx76+vU8j5CvieWwlJ1ccjXpeRb4TZsK
rCQs8dcwKWuEYKPJtItZGY6VyhrvbYluITm5c6NJVRdUG7BGMazvhJ+kazM9o6pnyLHKxvCuUW71
Hjd0kSokOqPBCpda8hC8JM4W+dIEWnrEwIlHVOUUiyudzNn2WExQbv8AUOjxwxrPHBMJSScEbQ+c
zYIxprJQNiS4XjvLEH7NolJo1iJ2FsG7Gsf5hdcg5ByPIcfZkkWcSjFJx1Py11rfcWq42zLATJmY
tgQHT5dJnvr2wmQs7ZsXsRjbj5Adoy6zTS5u0f7I7znt1OWcj3tx7wp4zHwfjm3bOJL5jgTlaErG
SKdJ+EepR0F6FcQww2I8gY62BxYrgUbgFgx74gLSe4kzfHxiJ6zb71jjN3KwiqvB0aClwJuZaX7u
y91r2SR9vVidoyWhbpn1GBL+GYz8m+4+2v8AOX+y/iH3T+5+z/5PXNKnK0Wa+E5fkPxjF58Kz7Kt
PPdswlvgWbn+OMhIHsgjWwfs7T3dfmj/AKXkX/k9cIVxFD7WG4XlF53LZ19Z1av8tqlZGuobArdH
m/D4AYIYMyLXbtCS659Wwudu8eygc4yjad6qUeMmxWTEIurkD8lVkz32/OPrHxiWfT/6p83zGEUb
65qqvULKOd2NmUhXyG9NYBcYQSDMGLlg6aeUYHrC/RfiE+2xuPVUPkdhMkaaNDHrV4KRTuncugrZ
MiX2rEqDWJiel8LD6TrqU8QSV4bIU+QUne1KjPhGwmGiknhbRug9+knv3T83frieYyFB13kP0jyZ
1+TY1g63X4kLNOE5ORnczyVZpkiyzQvG2VtnsU6LYfIW1jMIIq78NmycmZjutk1sfYRJj8dhkP6e
uSK41kjyRUH4NluYxuVqrQLstXFW516jWTvZIzoMTunSe3brBUbXJPFap4bGVbKvwfPn4316SFOD
evFms9jAmNRmYnqlY4Xet55/FHuyOWp1MZl6rF4q1ClNtjYuY1aYYhqR7fMW2SPbIgXSXP5/z6g5
gCTKljzMdXKY7rYdPitmsUjPxAyjrKY3hOfzHIL1gAuXbGWrZKWpqomEqUNl2GxlJKvK6Zgf2hlM
+sDG3qa9+pWu15mClFtCrKZmPSZU4TDWNevyxx7+S439269vQp1aKImShFOuqsnWfWfGkQDWemjR
pVKUPbL3xUrJrQ5xfac2EgHkaWncp79LnJ4rHZGUwUJm/RrW5VB6b4XNhTNkFtjXT106dZpYzH07
NnX3FirTr13WNxeQvM1SwNup9+8z3/oZkV42gvIOiRdfCnXG40SgYkWWoXDziYCPWfh0RnxrAGZT
JEZYfHERTPrJFNfWZnp9FOGxSaVqYKzTVjqi6tiR02y+uKYU2R2x9qJ9Ovyxx7+S43926ZGMxuPx
0O2y6KFOvUhshu2eT26179m6dNfTXo3P47gnOYUmxrcRQYxhT6kZnXkiKf09M/DMZj8d5tvm9hSr
VPLs3bPJ7da9+zfOmvpr/Uf/2gAIAQEDAT8hcscbEDKWmU2LnDm2NwU77oBExOhc7ikhxuYWtZph
k2iaFmAA9zlmK9DRiPmEZiPhmCbnW/JNxFQECvBRUcxowaKHPQ8tpxLj3h4T1A66WAFRQMLAGYd0
dEm6GKqSbj+bj/iHAEBRgMCS6ktLBnFWUg1nh99DwR2pOOnDER8sNQqEZrxFrCpuOYewHtLM/QBt
dYFB2Y+UD5ieLAC4CYBQFS8uMvG+w9u5c6OLbsdwkEZHMoPU2QoeJXcrmcup0q3CMODj3k3KvkGI
Sfb9lh9WAFUU3k1AHu+2AmOuFKLFfR1p9S9OdlavciQkVVI8Di7LCRRCUZq+NA4VQNx5zuZXCR+m
DAAAGy5ziruKYNINgjReMv8Akt0qW13ub8+B/wB8PDUeoog9GOWGWVVNbld4g+tE7WvQVEevGhFa
kOoZExzGyc5veqO7XOcqVz6P+HajdsnL/B//2gAIAQIDAT8h+Sb5PRs4dd1s0ufTuPmM8T07eeNR
GXa4a1pKOvw9ZNy5PKKHx2zv7TFhqmnpf4MC1FCRUK3fr0XUBz848F9+4U0bVD5I+x26+ny4w6Sb
EYTx71nNA77oXIVu+kcHL+u80uX3B9PbfeQDZB3dlY0cH+gf7x9H6OMamxmpyowr0ZsTiN8dn9Qs
Q5ULvehSq8ROFrjh7hoev7P6WDSkE7dTQ32RL8AzRAKnEE/BPvDkw2WGinClli28284weQvK4/HZ
3GnOGUJOGh+kfpcUgnwYUzYGSVmp2gHKG2TLeDUdIe2VkHCD+crT42H6cB6VDYGgqIrxy/M1nxNo
Cfpz6Z/xnwloAfoy+HqsBX2zvJS4cQj9mO+QiAX7pz4EAFzCvzzi6rfo6wO3kEH7kjn0z/jLG45h
X3mKnX22/wCMubjmFfefwf/aAAgBAwMBPyFni/kk301RIyzH/pYMr/8A0zDZIOmY6WtwTHpsaR1N
4ATZsGAwAcTQIGfJiP3QPqeUA2wwJ2ik/qy4I1hmKPzcU+yADc3+wyshZKEnpXl/0ZBapQISklVy
AEbe8oLXcz2wK4Gv9RExooWAp2sTodUpBpVql4om0N47qM4m6u1IVDQ8XgDfxGYckpl8RLrJdhnQ
UYiXcyTF4odaD02SJ6XtQ1gjmI0DcWSu3gJpN6OJKLWopwEnBK/CV76i7t4zahD2xLaU0kFJDsCq
PwAp+iC9fODN9ftqyJUJURQtTNXqstJwCoYBOwcrMXHjPJVOhJWrUZFXQAH074zlYYCvYqR4INn4
ixcmufVR/vwA1QWax9VX+8CGp5Xxaw6GsnrCdSs5CVl4rnUtwiIsQ00GteHm5XRCxWKV4O33gMwQ
AgPQYI1aAU2jbtbRy+ADrNXrJewQs5h6wEkwGPQID4M7+D1kvYIWcw9fwf/aAAwDAQACEQMRAAAQ
cHkZhHfOM3zq5S4wD9HiCkAAAAAAAA//2gAIAQEDAT8Qc9MJucKIt4eNYXX6C1EgdxZuwT4TWlp6
1AJ+RUdm4IcFYvEiW9qpFjwDvABAh2sfUDTAiPArhPUWHhKnzBIzQmeRFRKIpZPGiQQEfrgTIIid
BDLylBKSOsqKksiw5zTqss0FIQ0LmCcaEBGR05kx5yPPG4fJ0e8/+pMCIfiunlu6MzAOoMsDnDEc
Ns3MY2DwdUcuv+inEkoiabIHoLYBDGifcZ1qVXjz5ZpLtBl6XrnJBnfkCM/ywhxy1s1A6NYlv8yn
5+UZEWpEhgjxWB0dFwcmocj7HZjG1iobVHBDor/DxHBVPCgKlBb1H1I0KO3w1RewGYV3Jo9xwHRc
Ln36AKBUMXpaB8oJzQkqIruUniHNz2C7t4N5UNoVnH40SDAvBrnjiqFO1xKArLnsTMFBImNRWlox
Dl2yxrVU5WAq5SFKjlz6e3XJ34bbP4H/2gAIAQIDAT8QPFf4gdBdhRgIPP8A4eAfg/xoFWjUGBz2
sCuKnFCjdN3WLAZ1ENRjFAISorrPhPiiBQ7rgquiuIA4FANiBUeBUgsTmgO9VUqQIQCVwnplsG10
w4f92RuRoQIpSgBNRVaSTrGCGkDoqwxpOoWKC7YoApHobGFAIoTN2CbjOSJ0B1hXEJwKOkk2jGrt
wP8AfphOTyS90QhcDWoRj5e3ayykQaQBBBkLkDPTpIGvudCXeDYUxGSi4iBYzIMMPUXIdW9liPLc
TFqqKh1SIQaEJSUW/MjRJBrWpa9JwsnFZT0t87g9Li7V9GDquUYDWLIObAkMQQoxiJRR6UxvNyEm
BK0BsVRGbQtS9pXT2h84KMHBxCwBOUroPB0rN2F7gn9eKOyLXZXuAf1hrAQqnMBV2u8QpTW6Sy0s
LOYZ2Xy7WsA072u9+DSjBEGUSUMOXo9Y0ZWqqr7XL4HEk5IjoQlHg8URAZPSlmksrLxX3j80qmn2
ra/LnRM9KWaSysvFff8AB//aAAgBAwMBPxA/hUZcKVejg0hZnvalDdt14yipNa2xwFlem2CB9gXC
zCauCBghBZEnwlGQoWvsHBQi0PSnwGesmHAk6gygqkUUr3myNUlLkg6RRmke2Rq36mSSkExi2T0L
2WIpsLjlr3girVJqqxP812BGdFdFUMIwlC0XOsBSIcgzoXhfAEguJc+1blVQjxCq6PXy0ZAD9kEr
gyFLR2BlIoKzzB2LIaWTCQyM3guisnRROEs+yZcUsBDvPjoMUzlIufyBDQHLA3cIDAE8wjcjWAhV
VWXqqco4ifvAsvrEtCoAgh5DUC8C1svnMS38EFgBzcLw4HbUkS9JBlWHfBwzAfKKC4oUIYevCdau
BOw4ScOjQ6xcrm1SpWpWEqw3iJvQOyGBMgqRCVwYtnoCRqB1NWteAXDRKJAccRRQ2qHvgcGgAADQ
ABkZ1ioCUQACdnL4Tm58pE0Lga+ORYgX3lo8ChdAB0Z9THHMPq5FifwP/9k=
--__1463525814365131825abhmp0012.oracle.com
Content-Type: image/gif; name="image002.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="image002.gif"
Content-ID: <image002.gif@01D1B038.EA870770>

R0lGODlhLAAcAMQAAP///0x9RHmec9Pf0aa+oleFULHGrmKNW+nv6I+uivT39N7n3W6VZ7zPuZu2
lsjXxYSmfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAsABwAQAXhICCOZGmeaDoaReC+sKAMR7GopIA6boIvLgPAVSAgALxjSYdrOp/Q6NPg
YqIEPkTBV2taTwgGbEw+PAZo3FfKbqMQQfeJ8DoY0Hg0wxhAKBgHCl5XLgMqDwFCAAIFPIYDgidr
OUQGkSh0cQMJAQyXOXKhoqOkpaanI2aoIwMErq+uCY0BMlANKpxkYwQGBH82TpMicD0pAgQACToD
AchqhAG3KQ4HIlQNnErG0IYqB9EAiEQvwEsozC43hy0CAeXMwsLDLS8MAvf497ruCZ+gOA0gfNt3
AIK0J/JWKVzIsEQIADs=
--__1463525814365131825abhmp0012.oracle.com--

--__1463525814365131824abhmp0012.oracle.com--

--__1463525814365131823abhmp0012.oracle.com
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--__1463525814365131823abhmp0012.oracle.com--


From win-pv-devel-bounces@lists.xenproject.org Tue May 17 22:57:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 May 2016 22:57:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2nvM-0005Dm-2L; Tue, 17 May 2016 22:57:12 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <john.priest@oracle.com>) id 1b2nvK-0005Df-MN
 for win-pv-devel@lists.xenproject.org; Tue, 17 May 2016 22:57:10 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 42/01-21979-5C1AB375; Tue, 17 May 2016 22:57:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrNKsWRWlGSWpSXmKPExsUyZ7p8oO6Rhdb
 hBhMvmFn8WZzowOhx+MMVlgDGKNbMvKT8igTWjIWfbzEXnCis6F9ynbmB8W1OFyMXh5DABiaJ
 +TuWsUI485gk1h/4wgzh3GSUaFnVwNTFyMnBKyAocXLmExYI20piWu9hMJtFQFvi78MtYDVsA
 loSF/+/ZgSxhQV0JOZv2g1WIyKgKnFt+TE2iLiKxLrZt9lBbAkBXokZ7U9ZIOxIiXP/v4LVMA
 uESOxsuMkIETeW6JvVxzKBkW8WkjNmISmDsKMklu+6zQZha0nc+PeSCcLWlli28DUzhB0m8Xh
 lP1RcE2jdOmZMNboS0yccgapRlJjS/ZAdwjaR+DppAtR8HYkfJ08ywthL26axYVP/4tcCVpia
 y4s3si5gFFjFqFGcWlSWWqRraKGXVJSZnlGSm5iZo2toYKqXm1pcnJiempOYVKyXnJ+7iREYq
 QxAsIOxabvnIUZJDiYlUd4LJtbhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4ExYA5QSLUtNTK9
 Iyc4ApAyYtwcGjJML7Yj5Qmre4IDG3ODMdInWKUVFKnDcXpE8AJJFRmgfXBktTlxhlpYR5GYE
 OEeIpSC3KzSxBlX/FKM7BqCTMuwxkCk9mXgnc9FdAi5mAFk8wswBZXJKIkJJqYGQ8fXeuV+bV
 qmm8c77J/X70Nidy63uNzwY2di9YFioLLbE758nppx90oTdwuhmLyHfWJVISyevv/dYNyr/3f
 eHGNSslk+9JCphM++7eHTGN86DJm+9SFjMrc/Mz7ounbRJ1V46QE/h1+7W79+Hcea7Gu2bzb7
 gv+lhoWbVOuEj869iWlG2TdiixFGckGmoxFxUnAgCKRPjyTgMAAA==
X-Env-Sender: john.priest@oracle.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1463525826!39869926!1
X-Originating-IP: [156.151.31.81]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTU2LjE1MS4zMS44MSA9PiAyODgzMzk=\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25072 invoked from network); 17 May 2016 22:57:08 -0000
Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81)
 by server-6.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 17 May 2016 22:57:08 -0000
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233])
 by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id
 u4HMv5wF024724
 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:06 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u4HMv528020127
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:05 GMT
Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18])
 by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u4HMuxtS005417
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 May 2016 22:57:05 GMT
MIME-Version: 1.0
Message-ID: <baa081a6-7835-4356-be28-38a12d4841b7@default>
Date: Tue, 17 May 2016 15:56:51 -0700 (PDT)
From: John Priest <john.priest@oracle.com>
To: win-pv-devel@lists.xenproject.org
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9  (901082) [OL
 14.0.7113.0 (x86)]
Content-Type: multipart/mixed;
 boundary="__1463525814365131823abhmp0012.oracle.com"
X-Source-IP: aserv0021.oracle.com [141.146.126.233]
Subject: [win-pv-devel] Win PV driver documentation
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--__1463525814365131823abhmp0012.oracle.com
Content-Type: multipart/alternative;
 boundary="__1463525814365131824abhmp0012.oracle.com"

--__1463525814365131824abhmp0012.oracle.com
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Hi,

=20

I am looking for any some documentation that (hopefully) exists for the sup=
port offered by the drivers.

I read through the material on the website and checked a few of the readme =
files on the driver source code but do not see a document that offers OS su=
pport, performance/capacity information and feature information.  Am I miss=
ing it or is this on the list of activities that need to be done?

=20

Regards,

John Priest | Oracle VM, Director Product Management
1 Oracle Drive | Nashua, NH 03062
Mobile: +1.508.202.2534 | Office: +1.603.897.3223

HYPERLINK "http://www.oracle.com/"Oracle

HYPERLINK "http://www.oracle.com/commitment"Green OracleOracle is committed=
 to developing practices and products that help protect the environment

=20

--__1463525814365131824abhmp0012.oracle.com
Content-Type: multipart/related;
 boundary="__1463525814365131825abhmp0012.oracle.com"

--__1463525814365131825abhmp0012.oracle.com
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dus-ascii"><meta name=3DGenerator content=3D"Micros=
oft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#def=
ault#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
=09{font-family:Verdana;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0in;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0in;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:"Tahoma","sans-serif";}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Calibri","sans-serif";
=09color:windowtext;}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:"Tahoma","sans-serif";}
.MsoChpDefault
=09{mso-style-type:export-only;
=09font-family:"Calibri","sans-serif";}
@page WordSection1
=09{size:8.5in 11.0in;
=09margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Hi,<o:p></o:p></=
p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>I am looki=
ng for any some documentation that (hopefully) exists for the support offer=
ed by the drivers.<o:p></o:p></p><p class=3DMsoNormal>I read through the ma=
terial on the website and checked a few of the readme files on the driver s=
ource code but do not see a document that offers OS support, performance/ca=
pacity information and feature information.&nbsp; Am I missing it or is thi=
s on the list of activities that need to be done?<o:p></o:p></p><p class=3D=
MsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-=
family:"Verdana","sans-serif";color:#595959'>Regards,<o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt=
:auto'><span style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";c=
olor:#666666'>John Priest | </span><span style=3D'font-size:10.0pt;font-fam=
ily:"Verdana","sans-serif";color:red'>Oracle VM</span><span style=3D'font-s=
ize:10.0pt;font-family:"Verdana","sans-serif";color:#666666'>, Director Pro=
duct Management<br>1 Oracle Drive | Nashua, NH 03062<br>Mobile: +1.508.202.=
2534 | Office: +1.603.897.3223<o:p></o:p></span></p><p class=3DMsoNormal><a=
 href=3D"http://www.oracle.com/" target=3D"_blank"><span style=3D'font-fami=
ly:"Verdana","sans-serif";color:blue;text-decoration:none'><img border=3D0 =
width=3D114 height=3D26 id=3D"Picture_x0020_1" src=3D"cid:image001.jpg@01D1=
B038.EA870770" alt=3DOracle></span></a><o:p></o:p></p><p class=3DMsoNormal>=
<a href=3D"http://www.oracle.com/commitment" target=3D"_blank"><span style=
=3D'color:blue;text-decoration:none'><img border=3D0 width=3D44 height=3D28=
 id=3D"Picture_x0020_2" src=3D"cid:image002.gif@01D1B038.EA870770" alt=3D"G=
reen Oracle"></span></a><span style=3D'font-size:7.5pt;font-family:"Verdana=
","sans-serif";color:#4B7D42'>Oracle is committed to developing practices a=
nd products that help protect the environment</span><b><o:p></o:p></b></p><=
p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></body></html>
--__1463525814365131825abhmp0012.oracle.com
Content-Type: image/jpeg; name="image001.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="image001.jpg"
Content-ID: <image001.jpg@01D1B038.EA870770>

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAAEwgAADd8AABIgAAAWbv/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgAGgByAwERAAIR
AQMRAf/EAPAAAAIDAQEBAAAAAAAAAAAAAAAIBQYHBAIJAQACAgMBAQAAAAAAAAAAAAAABgQFAwcI
AgEQAAICAwEAAQQDAQAAAAAAAAQFAwYBAgcAFEATFhcSFQgYEQACAgEDAwIDBAYLAAAAAAACAwEE
BRESBgAhEzEUQSIHMjQVNmEjM9Q1lRBAQmKScyRUZKXVEgACAQIDAwcICAQHAAAAAAABAgMRBAAh
EjFRBfBBYXEyEwaBkaHRIiMzFBBAsUJSktI0Y5OjFfGCorLTNQcTAQEAAgICAQQCAgMAAAAAAAER
ACExQRBRYfBxgZFAocHRseHx/9oADAMBAAIRAxEAAAH6Io3U/J5kdvuNltW9S+ave155W+fqB1w1
bVoXD6TaHj56dNz5pzatc1yXdy3aasazbICWpnSzKMmlV5X9wcvjPgdDthiWHT1ajXWKU2zPoS/8
h4nS7M0SxT18X9vZbVvTtOvMbwO3MEXinVCIxW6Wvefn3i8Sff3zYZFRX49tAYLeUyQYfFY2ORTQ
mGzmc1bYpFOAAAAAAAAAAAAAAB//2gAIAQEAAQUCsXQ7a2tPx/8AQ3q70K3KrSgtHaLhK7snbaOD
HYFu1dq3bHZln6R0CKiLYv8AogvR896pTqRXzJmKHod5DoKAab/QzOEaPto6r5d98nej8h6D+8uW
+Zv4OtdB5kmaO61APan1l6GRNbntvV3t9V5bM+YRQd25hLD1O+VW583rvZ+ag1/rjxD0tOIFwcgb
kkvNRJvFhBsIfxGqeDBCXwiLwAMHp1DTIqlUDN7RUrjM2qlWk2iQo4BfxGqeAUqleJavWZ5AFCpX
9D//2gAIAQIAAQUCIYFSlfxsHh2BcRMBLkvMxDoLTE8fxxXU25LE/AMePyDb087QMKDfMkDA7UCD
XNgkxrh1rF/I70U+qk/+7Weknw1PWwyTDY1KnJYbZLnLjOnGyTPJjDxZnDQ4UxcO5W6Dtp4GUWui
LbVTlbrn22mm+PiC+000jxrppp7eGKX2sUWmffaixv8AFGz7EEONfiC+0iii9kYbOdIoovof/9oA
CAEDAAEFAk9Pr4CL73H/ADioV49E2R81ruixLzG0FbqDcOHvMlgyOmVLe1Gb/p4fZSqodjs7YeMN
rT6sRbG00fHwpJtuYyn/AGKp5iqm6HUf1de/AqZef1G7sgVjqWZCqS1CGOvq68dVVLyNIqE3l5Xe
Y5KJVH1bubjmt1Kb89VtaSxIJ6tFN0HS6zx+HJJEk/IX/iCiTJCCyi8isWAOJ2B5UXtjztxtX73X
G7VpLP8AkL/xR553o3ruLQpged9D/9oACAECAgY/AjZ8NUFl7THYOXIY2w8vJgWfElAZ+yw2HlyG
HNuYtCuRnj5i47poRtpj5k5RadXkpXANwumzlJCHq5Z4FBqnc0UY1e5Xo5Vw89wyd4CKUHTnhJG7
RUH0Y705scgN5xr90leY8jhy5jMtPZA9O7HZX4P9Tdt2ctWJlugRDK2oN5/Xj4n+lvViEWlTDC2o
t5vVypidYXMcvfGh9ePkOKTOg9DeX7PXhODWmUa01dAHN5Ptpj5MWtEXskMOb14ilcVuLRvbHPTL
P0UPkOKmSn+VvViQWzaqaa5Hf0jCI0ntBB91t3VgNZkuYsyAG2b8xipnnB3f4Jho7J3kc5mtf0gf
RpcAr04+HH+UY0oAF6MewAK7se8VW6xXGpFUMej6O8Cr3m+meM40/KMFAi6DzUGPhx/lGPdqq9Qp
ipjSvUMe7VV6hT6j/9oACAEDAgY/Ao/EnjaeWO3uPgQx9txvOR2jPLSAKEtVtOPhcU9H68SeJPBU
8kkFv8eGTtoN4yByGeeoEaiGqunFrHxiO+NzPbJL7tqjPrI564/s3Bzf2/E5Fbu2ehFVUtsq1cgT
T2agZMDhuBIuviAuDDQc7htH28+JF4PMZvE1jGj3CVrUMKmi0y/EnOVFDUsDiQSydxwu2TXNL+EZ
0ArlU0JqcgAT0HuR/cptP3xz9P3P9oxacJ4NFdiyZJTKZHoxIQlAtK0pSpPPsxc2kPwYriRB1K5A
x8hG3d26rrkk26VHmqSch59gODa14hclMu8XssejsecLTdXFtFapexWGpjM7k7Ap0qAus+0200yp
TnJHx5/+y07D+z/H8PtdPa/g44bccAZH4nw6HupICwU7EWoqQBXu6itAynbVaY/Y/wBa3/5ccTk8
QsqcS4lAYIoAwZuy66jpqMu8qaGgA26mAxwmbidrHeWJ4XEHRttNRzQ8zDpyOw7wPF3gThlvdSBW
BYGjwVGepM2y2OAVYKa9gk4uf/SvEPt3spYW6na7yE1frc1zGyPW2wjB8Stx8yXNwCZkeBxq156T
StNJpSmylB7OL/h1pKsfCPEMGq2kHYEulqx7qNrDxrlqXXGOzgotoHUHtCaGh6RqkU+cA9GLJ+NQ
iESrMF95ExNImrkjsct+zF1dQWVYJLmRlPewZhnJBzlrs34ki8SxR2sV+ojidpImBlWpC6UkJoQT
uFaLWrDDRxcJ4TLGDky0AbpAe6VvOBiC98T2lvaWqEoixNHQscydImkcmg29kDdXPHfWsjxy71JU
+cY/fXn86T9WO+u5Hll3sxY+c4U3UkkhVaDUxag3CuwdGCLKeaENt0Oy169JGFhuppZIU7Ks7MF5
sgTQZfQLN5pTZrsTW2gdS1pjSt7dhR/Fk/VhbqS5na5TsuZGLL1NWo8mP315/Ok/VgG+mlm07Nbs
1K7tRNMCOK8uljGwCVwB5NWB89PNNp2a3ZqV3aiafUf/2gAIAQEBBj8Cu8M+mmLo3beIiYzuayf3
Kk7XaSE/rlBBJb8kyXkIjgoFegyXX3/g/wDgb+5dUuG/UvFUqdrMRpgs3i9fY3nR28Df1rQkmn8k
SPjIDkYJehwXWcdx65xYKWKzdzFaZCtKnaoLcGmxLt8eIx76+vU8j5CvieWwlJ1ccjXpeRb4TZsK
rCQs8dcwKWuEYKPJtItZGY6VyhrvbYluITm5c6NJVRdUG7BGMazvhJ+kazM9o6pnyLHKxvCuUW71
Hjd0kSokOqPBCpda8hC8JM4W+dIEWnrEwIlHVOUUiyudzNn2WExQbv8AUOjxwxrPHBMJSScEbQ+c
zYIxprJQNiS4XjvLEH7NolJo1iJ2FsG7Gsf5hdcg5ByPIcfZkkWcSjFJx1Py11rfcWq42zLATJmY
tgQHT5dJnvr2wmQs7ZsXsRjbj5Adoy6zTS5u0f7I7znt1OWcj3tx7wp4zHwfjm3bOJL5jgTlaErG
SKdJ+EepR0F6FcQww2I8gY62BxYrgUbgFgx74gLSe4kzfHxiJ6zb71jjN3KwiqvB0aClwJuZaX7u
y91r2SR9vVidoyWhbpn1GBL+GYz8m+4+2v8AOX+y/iH3T+5+z/5PXNKnK0Wa+E5fkPxjF58Kz7Kt
PPdswlvgWbn+OMhIHsgjWwfs7T3dfmj/AKXkX/k9cIVxFD7WG4XlF53LZ19Z1av8tqlZGuobArdH
m/D4AYIYMyLXbtCS659Wwudu8eygc4yjad6qUeMmxWTEIurkD8lVkz32/OPrHxiWfT/6p83zGEUb
65qqvULKOd2NmUhXyG9NYBcYQSDMGLlg6aeUYHrC/RfiE+2xuPVUPkdhMkaaNDHrV4KRTuncugrZ
MiX2rEqDWJiel8LD6TrqU8QSV4bIU+QUne1KjPhGwmGiknhbRug9+knv3T83frieYyFB13kP0jyZ
1+TY1g63X4kLNOE5ORnczyVZpkiyzQvG2VtnsU6LYfIW1jMIIq78NmycmZjutk1sfYRJj8dhkP6e
uSK41kjyRUH4NluYxuVqrQLstXFW516jWTvZIzoMTunSe3brBUbXJPFap4bGVbKvwfPn4316SFOD
evFms9jAmNRmYnqlY4Xet55/FHuyOWp1MZl6rF4q1ClNtjYuY1aYYhqR7fMW2SPbIgXSXP5/z6g5
gCTKljzMdXKY7rYdPitmsUjPxAyjrKY3hOfzHIL1gAuXbGWrZKWpqomEqUNl2GxlJKvK6Zgf2hlM
+sDG3qa9+pWu15mClFtCrKZmPSZU4TDWNevyxx7+S439269vQp1aKImShFOuqsnWfWfGkQDWemjR
pVKUPbL3xUrJrQ5xfac2EgHkaWncp79LnJ4rHZGUwUJm/RrW5VB6b4XNhTNkFtjXT106dZpYzH07
NnX3FirTr13WNxeQvM1SwNup9+8z3/oZkV42gvIOiRdfCnXG40SgYkWWoXDziYCPWfh0RnxrAGZT
JEZYfHERTPrJFNfWZnp9FOGxSaVqYKzTVjqi6tiR02y+uKYU2R2x9qJ9Ovyxx7+S43926ZGMxuPx
0O2y6KFOvUhshu2eT26179m6dNfTXo3P47gnOYUmxrcRQYxhT6kZnXkiKf09M/DMZj8d5tvm9hSr
VPLs3bPJ7da9+zfOmvpr/Uf/2gAIAQEDAT8hcscbEDKWmU2LnDm2NwU77oBExOhc7ikhxuYWtZph
k2iaFmAA9zlmK9DRiPmEZiPhmCbnW/JNxFQECvBRUcxowaKHPQ8tpxLj3h4T1A66WAFRQMLAGYd0
dEm6GKqSbj+bj/iHAEBRgMCS6ktLBnFWUg1nh99DwR2pOOnDER8sNQqEZrxFrCpuOYewHtLM/QBt
dYFB2Y+UD5ieLAC4CYBQFS8uMvG+w9u5c6OLbsdwkEZHMoPU2QoeJXcrmcup0q3CMODj3k3KvkGI
Sfb9lh9WAFUU3k1AHu+2AmOuFKLFfR1p9S9OdlavciQkVVI8Di7LCRRCUZq+NA4VQNx5zuZXCR+m
DAAAGy5ziruKYNINgjReMv8Akt0qW13ub8+B/wB8PDUeoog9GOWGWVVNbld4g+tE7WvQVEevGhFa
kOoZExzGyc5veqO7XOcqVz6P+HajdsnL/B//2gAIAQIDAT8h+Sb5PRs4dd1s0ufTuPmM8T07eeNR
GXa4a1pKOvw9ZNy5PKKHx2zv7TFhqmnpf4MC1FCRUK3fr0XUBz848F9+4U0bVD5I+x26+ny4w6Sb
EYTx71nNA77oXIVu+kcHL+u80uX3B9PbfeQDZB3dlY0cH+gf7x9H6OMamxmpyowr0ZsTiN8dn9Qs
Q5ULvehSq8ROFrjh7hoev7P6WDSkE7dTQ32RL8AzRAKnEE/BPvDkw2WGinClli28284weQvK4/HZ
3GnOGUJOGh+kfpcUgnwYUzYGSVmp2gHKG2TLeDUdIe2VkHCD+crT42H6cB6VDYGgqIrxy/M1nxNo
Cfpz6Z/xnwloAfoy+HqsBX2zvJS4cQj9mO+QiAX7pz4EAFzCvzzi6rfo6wO3kEH7kjn0z/jLG45h
X3mKnX22/wCMubjmFfefwf/aAAgBAwMBPyFni/kk301RIyzH/pYMr/8A0zDZIOmY6WtwTHpsaR1N
4ATZsGAwAcTQIGfJiP3QPqeUA2wwJ2ik/qy4I1hmKPzcU+yADc3+wyshZKEnpXl/0ZBapQISklVy
AEbe8oLXcz2wK4Gv9RExooWAp2sTodUpBpVql4om0N47qM4m6u1IVDQ8XgDfxGYckpl8RLrJdhnQ
UYiXcyTF4odaD02SJ6XtQ1gjmI0DcWSu3gJpN6OJKLWopwEnBK/CV76i7t4zahD2xLaU0kFJDsCq
PwAp+iC9fODN9ftqyJUJURQtTNXqstJwCoYBOwcrMXHjPJVOhJWrUZFXQAH074zlYYCvYqR4INn4
ixcmufVR/vwA1QWax9VX+8CGp5Xxaw6GsnrCdSs5CVl4rnUtwiIsQ00GteHm5XRCxWKV4O33gMwQ
AgPQYI1aAU2jbtbRy+ADrNXrJewQs5h6wEkwGPQID4M7+D1kvYIWcw9fwf/aAAwDAQACEQMRAAAQ
cHkZhHfOM3zq5S4wD9HiCkAAAAAAAA//2gAIAQEDAT8Qc9MJucKIt4eNYXX6C1EgdxZuwT4TWlp6
1AJ+RUdm4IcFYvEiW9qpFjwDvABAh2sfUDTAiPArhPUWHhKnzBIzQmeRFRKIpZPGiQQEfrgTIIid
BDLylBKSOsqKksiw5zTqss0FIQ0LmCcaEBGR05kx5yPPG4fJ0e8/+pMCIfiunlu6MzAOoMsDnDEc
Ns3MY2DwdUcuv+inEkoiabIHoLYBDGifcZ1qVXjz5ZpLtBl6XrnJBnfkCM/ywhxy1s1A6NYlv8yn
5+UZEWpEhgjxWB0dFwcmocj7HZjG1iobVHBDor/DxHBVPCgKlBb1H1I0KO3w1RewGYV3Jo9xwHRc
Ln36AKBUMXpaB8oJzQkqIruUniHNz2C7t4N5UNoVnH40SDAvBrnjiqFO1xKArLnsTMFBImNRWlox
Dl2yxrVU5WAq5SFKjlz6e3XJ34bbP4H/2gAIAQIDAT8QPFf4gdBdhRgIPP8A4eAfg/xoFWjUGBz2
sCuKnFCjdN3WLAZ1ENRjFAISorrPhPiiBQ7rgquiuIA4FANiBUeBUgsTmgO9VUqQIQCVwnplsG10
w4f92RuRoQIpSgBNRVaSTrGCGkDoqwxpOoWKC7YoApHobGFAIoTN2CbjOSJ0B1hXEJwKOkk2jGrt
wP8AfphOTyS90QhcDWoRj5e3ayykQaQBBBkLkDPTpIGvudCXeDYUxGSi4iBYzIMMPUXIdW9liPLc
TFqqKh1SIQaEJSUW/MjRJBrWpa9JwsnFZT0t87g9Li7V9GDquUYDWLIObAkMQQoxiJRR6UxvNyEm
BK0BsVRGbQtS9pXT2h84KMHBxCwBOUroPB0rN2F7gn9eKOyLXZXuAf1hrAQqnMBV2u8QpTW6Sy0s
LOYZ2Xy7WsA072u9+DSjBEGUSUMOXo9Y0ZWqqr7XL4HEk5IjoQlHg8URAZPSlmksrLxX3j80qmn2
ra/LnRM9KWaSysvFff8AB//aAAgBAwMBPxA/hUZcKVejg0hZnvalDdt14yipNa2xwFlem2CB9gXC
zCauCBghBZEnwlGQoWvsHBQi0PSnwGesmHAk6gygqkUUr3myNUlLkg6RRmke2Rq36mSSkExi2T0L
2WIpsLjlr3girVJqqxP812BGdFdFUMIwlC0XOsBSIcgzoXhfAEguJc+1blVQjxCq6PXy0ZAD9kEr
gyFLR2BlIoKzzB2LIaWTCQyM3guisnRROEs+yZcUsBDvPjoMUzlIufyBDQHLA3cIDAE8wjcjWAhV
VWXqqco4ifvAsvrEtCoAgh5DUC8C1svnMS38EFgBzcLw4HbUkS9JBlWHfBwzAfKKC4oUIYevCdau
BOw4ScOjQ6xcrm1SpWpWEqw3iJvQOyGBMgqRCVwYtnoCRqB1NWteAXDRKJAccRRQ2qHvgcGgAADQ
ABkZ1ioCUQACdnL4Tm58pE0Lga+ORYgX3lo8ChdAB0Z9THHMPq5FifwP/9k=
--__1463525814365131825abhmp0012.oracle.com
Content-Type: image/gif; name="image002.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="image002.gif"
Content-ID: <image002.gif@01D1B038.EA870770>

R0lGODlhLAAcAMQAAP///0x9RHmec9Pf0aa+oleFULHGrmKNW+nv6I+uivT39N7n3W6VZ7zPuZu2
lsjXxYSmfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAsABwAQAXhICCOZGmeaDoaReC+sKAMR7GopIA6boIvLgPAVSAgALxjSYdrOp/Q6NPg
YqIEPkTBV2taTwgGbEw+PAZo3FfKbqMQQfeJ8DoY0Hg0wxhAKBgHCl5XLgMqDwFCAAIFPIYDgidr
OUQGkSh0cQMJAQyXOXKhoqOkpaanI2aoIwMErq+uCY0BMlANKpxkYwQGBH82TpMicD0pAgQACToD
AchqhAG3KQ4HIlQNnErG0IYqB9EAiEQvwEsozC43hy0CAeXMwsLDLS8MAvf497ruCZ+gOA0gfNt3
AIK0J/JWKVzIsEQIADs=
--__1463525814365131825abhmp0012.oracle.com--

--__1463525814365131824abhmp0012.oracle.com--

--__1463525814365131823abhmp0012.oracle.com
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--__1463525814365131823abhmp0012.oracle.com--


From win-pv-devel-bounces@lists.xenproject.org Wed May 18 02:11:56 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 02:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2qxj-00015w-1z; Wed, 18 May 2016 02:11:51 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2qxh-00015l-Sh
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 02:11:49 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 5A/47-18833-56FCB375; Wed, 18 May 2016 02:11:49 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprGKsWRWlGSWpSXmKPExsVSPpHPSTflvHW
 4waoVqhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8Pua0wF3RoVu2+cYm9gPKHexcjFISRwilHi
 +LqnzBDOBkaJ+6d6gRxODjYBDYkvt4+xgNgiAr4SK1/2sYEUMQscYZLY9eMrO0hCWMBTovvNH
 zaIIl2JDXf3MUPYVhK/FnSCNbMIqEp8W78ErIZXIFTi/9ZOdoht5xklXm/ZADaIU8BD4vDjXj
 CbUUBWYtqj+0wgNrOAuMTcabNYQWwJAUGJRbP3MEPYYhL/dj1kg7CVJD7dXwFUwwFUrymxfpc
 +RKuixJTuh+wQewUlTs58wgJRLilxcMUNFpAbJEBuuPFkAdR8U4kP/3+wT2AUn4Vk9SyEsbOQ
 jJ2FZOwCRpZVjOrFqUVlqUW6hnpJRZnpGSW5iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIHxx
 QAEOxh3Pnc6xCjJwaQkynvBxDpciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvubNAOcGi1PTUir
 TMHGCkw6QlOHiURHjNQdK8xQWJucWZ6RCpU4yKUuK8m0ESAiCJjNI8uDZYcrnEKCslzMsIdIg
 QT0FqUW5mCar8K0ZxDkYlYd42kCk8mXklcNNfAS1mAlo8wcwCZHFJIkJKqoHRa1l0scXKBxGM
 d65qXP7K1l+jNfNq3ZTmNza/gqTb+GobIlkYfrh/5LhRqDo/qJJ/at73atOPcq+5Xvsk1sZ2Z
 /xzXGdz/HoWq9Ox44xdrtbRc97KbZ3ttIyjI/PEctX1TSXf4psPbDq46taUSbX71mx02xt69O
 lW0d+Xuf/+mqvBvZsx4QWbEktxRqKhFnNRcSIAQ3SMiCkDAAA=
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1463537500!14610668!1
X-Originating-IP: [119.145.14.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NiA9PiA4NTI3\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13871 invoked from network); 18 May 2016 02:11:47 -0000
Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com)
 (119.145.14.66)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 02:11:47 -0000
Received: from 172.24.1.36 (EHLO SZXEMI414-HUB.china.huawei.com)
 ([172.24.1.36])
 by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued)
 with ESMTP id CBV73856; Wed, 18 May 2016 10:09:55 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 SZXEMI414-HUB.china.huawei.com ([10.86.210.49]) with mapi id 14.03.0235.001;
 Wed, 18 May 2016 10:09:45 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIp+8t7aAgAE5PnA=
Date: Wed, 18 May 2016 02:09:44 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
In-Reply-To: <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A020203.573BCEF4.00F7, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: c181a8e3ff46fd2eb100d06fcdb8a11b
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: [win-pv-devel] =?utf-8?b?562U5aSNOiBYZW4gd2luZG93cyBQViBkcml2ZXIg?=
	=?utf-8?q?questions?=
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KDQpDb3VsZCB5b3UgcGxlYXNl
IGhlbHAgY2xhcmlmeSBhIGxpdHRsZSBtb3JlPyBDb3VsZCB5b3UgcGxlYXNlIHNlZSBpbmxpbmUg
YmVsb3c/DQoNCkFsc28gWGVuU2V2ZXIgUFYgY3VycmVudGx5IGRvIG5vdCBoYXZlIGFueSB1c2Vy
IG1vZGUgc2VydmljZT8gVm13YXJlIGhhcyBhIGxvdCBvZiB1c2VyIG1vZGUgc2VydmljZSB0byBp
bXByb3ZlIHRoZSB3aW5kb3dzIGV4cGVyaWVuY2UuDQpNYXkgSSBrbm93IGhvdyBBbWF6b24gYW5k
IEludmlzaWJsZSB0aGluZ3MgbGFicyBjby13b3JrIHdpdGggeW91IG9uIHRoaXMgcHJvamVjdD8g
RG8gd2UgaGF2ZSBkaXNjdXNzaW9uIG1lZXRpbmc/IEh1YXdlaSB3b3VsZCBsaWtlIGJ1aWxkIHRo
ZSBzYW1lIHJlbGF0aW9uc2hpcCB3aXRoIHlvdXIgdGVhbSBvbiB0aGlzIHByb2plY3QgYXMgQW1h
em9uIGFuZCBJbnZpc2libGUgdGhpbmdzIGxhYiBkaWQuDQoNCg0KDQoNCi0tLS0t6YKu5Lu25Y6f
5Lu2LS0tLS0NCuWPkeS7tuS6ujogUGF1bCBEdXJyYW50IFttYWlsdG86UGF1bC5EdXJyYW50QGNp
dHJpeC5jb21dIA0K5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQrmlLbku7bk
uro6IGdhb3dlaSAoWSk7IFBhdWwgRHVycmFudA0K5oqE6YCBOiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCuS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlv
bnMNCg0KRGUtaHRtbGluZy4uLg0KDQpGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86Z2Fvd2VpMTdA
aHVhd2VpLmNvbV0gDQpTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0KVG86IFBhdWwgRHVycmFudDsg
UGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJq
ZWN0OiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCkhlbGxvIFBhdWwNCsKgDQpU
aGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhh
dmUgY291cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5k
b3dzIFBWIGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJl
YWxseSBhcHByZWNpYXRlIHlvdXIgaGVscCF+DQrCoA0KMS4gTWF5IEkga25vdyBpZiB0aGUgbGF0
ZXN0IHdpbmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFzcyB0aGUgV0hDSyB0ZXN0cyB2
ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoNCj4gWWVzLiBUaGUgWGVuU2VydmVy
IFBWIGRyaXZlcnMgYXJlIGJhc2VkIG9uIHRoaXMgc291cmNlIHdpdGggb25seSBzbWFsbCBjb21w
YXRpYmlsaXR5IHBhdGNoZXMuDQoJV2F5bmU6IGRpZCBDaXRyaXggb3BlbiBzb3VyY2UgdGhlIHNt
YWxsIGNvbXBhdGliaWxpdHkgcGF0Y2hlcyB0aGF0IG1ha2UgdGhlIFhlblNlcnZlciBQViBkcml2
ZXJzIHBhc3MgdGhlIFdIQ0s/DQoNCjIuIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUg
aXMgYSBwbGFuIHRvIGpvaW4gaW4gd2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMg
aXMgZ29pbmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNo
IGlzIHRoYXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGlu
Ym94IGRyaXZlci4gRG8gd2UgaGF2ZSB0aGlzIHBsYW4/DQoNCj4gVGhlIFhlblNlcnZlciBicmFu
ZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmIHlv
dSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMg
d2lsbCBkb3dubG9hZCBhbmQgaW5zdGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2ls
bCBub3QgZ28gb250byBXaW5kb3dzIFVwZGF0ZS4NCglXYXluZTogWGVuU2VydmVyIGJyYW5kZWQg
ZHJpdmVycyB3aWxsIG5vdCBnbyBpbnRvIHdpbmRvd3MgaW5ib3ggcGxhbj8gQnV0IFhlblNlcnZl
ciBhbHJlYWR5IGpvaW4gaW4gdGhlIHdpbmRvd3MgdXBkYXRlIHBsYW4gc28gdGhhdCBhbnkgd2lu
ZG93cyBQViBkcml2ZXIgdXBkYXRlIGNhbiBnbyBhbG9uZyB3aXRoIHRoZSBzdGFuZGFyZCB3aW5k
b3dzIHVwZGF0ZSBwcm9jZXNzPw0KDQozLiBJIHNhdyBpbiBjdXJyZW50IHdpbiBQViBkcml2ZXIs
IHdlIGFkZCBvbmUgbmV3IGRyaXZlciB4ZW5jcnNoLnN5cyB0byBjb21wbGV0ZSB0aGUgZHVtcC4g
QnV0IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0IHJldXNlIHRoZSBvcmln
aW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAuIE1pY3Jv
c29mdCBzYW1wbGUgc3RvcmFjaGkgZHJpdmVyIGRpZCB0aGlzIHdheSB0b28uIE1heSBJIGtub3cg
d2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj8NCg0K
PiBUaGUgY3Jhc2gga2VybmVsIGVudmlyb25tZW50IGlzIHF1aXRlIGRpZmZlcmVudCB0byBhIG5v
cm1hbCBrZXJuZWwgZW52aXJvbm1lbnQuIFRoZSB4ZW5jcnNoIGRyaXZlciBpcyBhY3R1YWxseSBs
aW5rZWQgaW50byB0aGUgbm9ybWFsIHhlbnZiZCBzdG9ycG9ydCBkcml2ZXIgYnV0IG9ubHkgYWN0
aXZhdGVzIHdoZW4gaW4gdGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudC4gSXQgdGhlbiBhY3Rp
dmF0ZXMgYXMgdGhlIHN0b3JhZ2UgZHJpdmVyIGFuZCB1c2VzIGl0cyBvd24gcHJpdmF0ZSBpbnRl
cmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFuZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1h
bCB4ZW5idXMgcHJvdmlkZWQgQVBJcyBhcmUgbm90IGF2YWlsYWJsZSkuDQoNCjQuIEkgc2F3IHRo
ZXJlIGlzIG9uZSBzdG9yYWdlIGZpbHRlciBkcml2ZXIgdGhhdCBpcyBhYm92ZSB0aGUgc3RvcnBv
cnQuIE1pY3Jvc29mdCBXSENLIGRvY3VtZW50IHVzZWQgdG8gbWVudGlvbiBNUyBkbyBub3QgbGlr
ZSBhbnkgZmlsdGVyIGFib3ZlIHN0b3Jwb3J0LiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCBy
ZWFzb24gdGhhdCB3ZSBjaG9vc2UgYWRkIGZpbHRlciBkcml2ZXJzIGludG8gdGhlIGFyY2hpdGVj
dHVyZT8NCg0KPiBUaGVyZSBpcyBhIGZpbHRlciBkcml2ZXIgY2FsbGVkIHhlbmRpc2sgdGhhdCBz
aXRzIGFib3ZlIHRoZSBzdG9ycG9ydCBQRE9zLiBJdCBzZXJ2ZXMgb25seSB0byBpbnRlcmNlcHQg
dGhlIElSUHMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgdHJpbS9kaXNjYXJkLiBOZXdlciB2ZXJzaW9u
cyBvZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlIGRyaXZl
cnMgY2Fubm90IG1ha2UgdXNlIG9mIG5ld2VyIHN0b3Jwb3J0IGFzIHRoZXkgYXJlIGRlc2lnbmVk
IHRvIGZ1bmN0aW9uIG9uIG9sZGVyIHZlcnNpb25zIG9mIFdpbmRvd3MuDQrCoA0KQ3VycmVudGx5
LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkgSSBrbm93IGlmIEh1
YXdlaSBjYW4gY29udHJpYnV0ZSBvbiB0aGlzIHByb2plY3QgdG9vPw0KDQo+IEFic29sdXRlbHku
IENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gbWFkZSBieSBJbnZpc2libGUgVGhpbmdz
IExhYnMgYW5kIEFtYXpvbiBzbyBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMg
ZnJvbSBIdWF3ZWkuDQo+IENoZWVycywNCj4NCj4gICBQYXVsDQrCoA0KVGhhbmsgeW91IHNvIG11
Y2ggYWdhaW4gZm9yIHlvdXIgaGVscCF+DQrCoA0KwqANCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 02:11:56 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 02:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2qxj-00015w-1z; Wed, 18 May 2016 02:11:51 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2qxh-00015l-Sh
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 02:11:49 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 5A/47-18833-56FCB375; Wed, 18 May 2016 02:11:49 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprGKsWRWlGSWpSXmKPExsVSPpHPSTflvHW
 4waoVqhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8Pua0wF3RoVu2+cYm9gPKHexcjFISRwilHi
 +LqnzBDOBkaJ+6d6gRxODjYBDYkvt4+xgNgiAr4SK1/2sYEUMQscYZLY9eMrO0hCWMBTovvNH
 zaIIl2JDXf3MUPYVhK/FnSCNbMIqEp8W78ErIZXIFTi/9ZOdoht5xklXm/ZADaIU8BD4vDjXj
 CbUUBWYtqj+0wgNrOAuMTcabNYQWwJAUGJRbP3MEPYYhL/dj1kg7CVJD7dXwFUwwFUrymxfpc
 +RKuixJTuh+wQewUlTs58wgJRLilxcMUNFpAbJEBuuPFkAdR8U4kP/3+wT2AUn4Vk9SyEsbOQ
 jJ2FZOwCRpZVjOrFqUVlqUW6hnpJRZnpGSW5iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIHxx
 QAEOxh3Pnc6xCjJwaQkynvBxDpciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvubNAOcGi1PTUir
 TMHGCkw6QlOHiURHjNQdK8xQWJucWZ6RCpU4yKUuK8m0ESAiCJjNI8uDZYcrnEKCslzMsIdIg
 QT0FqUW5mCar8K0ZxDkYlYd42kCk8mXklcNNfAS1mAlo8wcwCZHFJIkJKqoHRa1l0scXKBxGM
 d65qXP7K1l+jNfNq3ZTmNza/gqTb+GobIlkYfrh/5LhRqDo/qJJ/at73atOPcq+5Xvsk1sZ2Z
 /xzXGdz/HoWq9Ox44xdrtbRc97KbZ3ttIyjI/PEctX1TSXf4psPbDq46taUSbX71mx02xt69O
 lW0d+Xuf/+mqvBvZsx4QWbEktxRqKhFnNRcSIAQ3SMiCkDAAA=
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1463537500!14610668!1
X-Originating-IP: [119.145.14.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NiA9PiA4NTI3\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13871 invoked from network); 18 May 2016 02:11:47 -0000
Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com)
 (119.145.14.66)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 02:11:47 -0000
Received: from 172.24.1.36 (EHLO SZXEMI414-HUB.china.huawei.com)
 ([172.24.1.36])
 by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued)
 with ESMTP id CBV73856; Wed, 18 May 2016 10:09:55 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 SZXEMI414-HUB.china.huawei.com ([10.86.210.49]) with mapi id 14.03.0235.001;
 Wed, 18 May 2016 10:09:45 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIp+8t7aAgAE5PnA=
Date: Wed, 18 May 2016 02:09:44 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
In-Reply-To: <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A020203.573BCEF4.00F7, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: c181a8e3ff46fd2eb100d06fcdb8a11b
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: [win-pv-devel] =?utf-8?b?562U5aSNOiBYZW4gd2luZG93cyBQViBkcml2ZXIg?=
	=?utf-8?q?questions?=
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KDQpDb3VsZCB5b3UgcGxlYXNl
IGhlbHAgY2xhcmlmeSBhIGxpdHRsZSBtb3JlPyBDb3VsZCB5b3UgcGxlYXNlIHNlZSBpbmxpbmUg
YmVsb3c/DQoNCkFsc28gWGVuU2V2ZXIgUFYgY3VycmVudGx5IGRvIG5vdCBoYXZlIGFueSB1c2Vy
IG1vZGUgc2VydmljZT8gVm13YXJlIGhhcyBhIGxvdCBvZiB1c2VyIG1vZGUgc2VydmljZSB0byBp
bXByb3ZlIHRoZSB3aW5kb3dzIGV4cGVyaWVuY2UuDQpNYXkgSSBrbm93IGhvdyBBbWF6b24gYW5k
IEludmlzaWJsZSB0aGluZ3MgbGFicyBjby13b3JrIHdpdGggeW91IG9uIHRoaXMgcHJvamVjdD8g
RG8gd2UgaGF2ZSBkaXNjdXNzaW9uIG1lZXRpbmc/IEh1YXdlaSB3b3VsZCBsaWtlIGJ1aWxkIHRo
ZSBzYW1lIHJlbGF0aW9uc2hpcCB3aXRoIHlvdXIgdGVhbSBvbiB0aGlzIHByb2plY3QgYXMgQW1h
em9uIGFuZCBJbnZpc2libGUgdGhpbmdzIGxhYiBkaWQuDQoNCg0KDQoNCi0tLS0t6YKu5Lu25Y6f
5Lu2LS0tLS0NCuWPkeS7tuS6ujogUGF1bCBEdXJyYW50IFttYWlsdG86UGF1bC5EdXJyYW50QGNp
dHJpeC5jb21dIA0K5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQrmlLbku7bk
uro6IGdhb3dlaSAoWSk7IFBhdWwgRHVycmFudA0K5oqE6YCBOiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCuS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlv
bnMNCg0KRGUtaHRtbGluZy4uLg0KDQpGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86Z2Fvd2VpMTdA
aHVhd2VpLmNvbV0gDQpTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0KVG86IFBhdWwgRHVycmFudDsg
UGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJq
ZWN0OiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCkhlbGxvIFBhdWwNCsKgDQpU
aGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhh
dmUgY291cGxlcyBvZiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5k
b3dzIFBWIGRyaXZlcnMuDQpDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJl
YWxseSBhcHByZWNpYXRlIHlvdXIgaGVscCF+DQrCoA0KMS4gTWF5IEkga25vdyBpZiB0aGUgbGF0
ZXN0IHdpbmRvd3MgUFYgb3BlbiBzb3VyY2UgY29kZSBjYW4gcGFzcyB0aGUgV0hDSyB0ZXN0cyB2
ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQoNCj4gWWVzLiBUaGUgWGVuU2VydmVy
IFBWIGRyaXZlcnMgYXJlIGJhc2VkIG9uIHRoaXMgc291cmNlIHdpdGggb25seSBzbWFsbCBjb21w
YXRpYmlsaXR5IHBhdGNoZXMuDQoJV2F5bmU6IGRpZCBDaXRyaXggb3BlbiBzb3VyY2UgdGhlIHNt
YWxsIGNvbXBhdGliaWxpdHkgcGF0Y2hlcyB0aGF0IG1ha2UgdGhlIFhlblNlcnZlciBQViBkcml2
ZXJzIHBhc3MgdGhlIFdIQ0s/DQoNCjIuIEZyb20gdGhlIGhvbWUgcGFnZSwgSSBzZWUgdGhlcmUg
aXMgYSBwbGFuIHRvIGpvaW4gaW4gd2luZG93cyB1cGRhdGUuIE1heSBJIGtub3cgaG93IHRoaXMg
aXMgZ29pbmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiBBbm90aGVyIGFwcHJvYWNo
IGlzIHRoYXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxpdmVyIGlu
Ym94IGRyaXZlci4gRG8gd2UgaGF2ZSB0aGlzIHBsYW4/DQoNCj4gVGhlIFhlblNlcnZlciBicmFu
ZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmIHlv
dSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMg
d2lsbCBkb3dubG9hZCBhbmQgaW5zdGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2ls
bCBub3QgZ28gb250byBXaW5kb3dzIFVwZGF0ZS4NCglXYXluZTogWGVuU2VydmVyIGJyYW5kZWQg
ZHJpdmVycyB3aWxsIG5vdCBnbyBpbnRvIHdpbmRvd3MgaW5ib3ggcGxhbj8gQnV0IFhlblNlcnZl
ciBhbHJlYWR5IGpvaW4gaW4gdGhlIHdpbmRvd3MgdXBkYXRlIHBsYW4gc28gdGhhdCBhbnkgd2lu
ZG93cyBQViBkcml2ZXIgdXBkYXRlIGNhbiBnbyBhbG9uZyB3aXRoIHRoZSBzdGFuZGFyZCB3aW5k
b3dzIHVwZGF0ZSBwcm9jZXNzPw0KDQozLiBJIHNhdyBpbiBjdXJyZW50IHdpbiBQViBkcml2ZXIs
IHdlIGFkZCBvbmUgbmV3IGRyaXZlciB4ZW5jcnNoLnN5cyB0byBjb21wbGV0ZSB0aGUgZHVtcC4g
QnV0IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0IHJldXNlIHRoZSBvcmln
aW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAuIE1pY3Jv
c29mdCBzYW1wbGUgc3RvcmFjaGkgZHJpdmVyIGRpZCB0aGlzIHdheSB0b28uIE1heSBJIGtub3cg
d2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj8NCg0K
PiBUaGUgY3Jhc2gga2VybmVsIGVudmlyb25tZW50IGlzIHF1aXRlIGRpZmZlcmVudCB0byBhIG5v
cm1hbCBrZXJuZWwgZW52aXJvbm1lbnQuIFRoZSB4ZW5jcnNoIGRyaXZlciBpcyBhY3R1YWxseSBs
aW5rZWQgaW50byB0aGUgbm9ybWFsIHhlbnZiZCBzdG9ycG9ydCBkcml2ZXIgYnV0IG9ubHkgYWN0
aXZhdGVzIHdoZW4gaW4gdGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudC4gSXQgdGhlbiBhY3Rp
dmF0ZXMgYXMgdGhlIHN0b3JhZ2UgZHJpdmVyIGFuZCB1c2VzIGl0cyBvd24gcHJpdmF0ZSBpbnRl
cmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFuZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1h
bCB4ZW5idXMgcHJvdmlkZWQgQVBJcyBhcmUgbm90IGF2YWlsYWJsZSkuDQoNCjQuIEkgc2F3IHRo
ZXJlIGlzIG9uZSBzdG9yYWdlIGZpbHRlciBkcml2ZXIgdGhhdCBpcyBhYm92ZSB0aGUgc3RvcnBv
cnQuIE1pY3Jvc29mdCBXSENLIGRvY3VtZW50IHVzZWQgdG8gbWVudGlvbiBNUyBkbyBub3QgbGlr
ZSBhbnkgZmlsdGVyIGFib3ZlIHN0b3Jwb3J0LiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCBy
ZWFzb24gdGhhdCB3ZSBjaG9vc2UgYWRkIGZpbHRlciBkcml2ZXJzIGludG8gdGhlIGFyY2hpdGVj
dHVyZT8NCg0KPiBUaGVyZSBpcyBhIGZpbHRlciBkcml2ZXIgY2FsbGVkIHhlbmRpc2sgdGhhdCBz
aXRzIGFib3ZlIHRoZSBzdG9ycG9ydCBQRE9zLiBJdCBzZXJ2ZXMgb25seSB0byBpbnRlcmNlcHQg
dGhlIElSUHMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgdHJpbS9kaXNjYXJkLiBOZXdlciB2ZXJzaW9u
cyBvZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlIGRyaXZl
cnMgY2Fubm90IG1ha2UgdXNlIG9mIG5ld2VyIHN0b3Jwb3J0IGFzIHRoZXkgYXJlIGRlc2lnbmVk
IHRvIGZ1bmN0aW9uIG9uIG9sZGVyIHZlcnNpb25zIG9mIFdpbmRvd3MuDQrCoA0KQ3VycmVudGx5
LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkgSSBrbm93IGlmIEh1
YXdlaSBjYW4gY29udHJpYnV0ZSBvbiB0aGlzIHByb2plY3QgdG9vPw0KDQo+IEFic29sdXRlbHku
IENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gbWFkZSBieSBJbnZpc2libGUgVGhpbmdz
IExhYnMgYW5kIEFtYXpvbiBzbyBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMg
ZnJvbSBIdWF3ZWkuDQo+IENoZWVycywNCj4NCj4gICBQYXVsDQrCoA0KVGhhbmsgeW91IHNvIG11
Y2ggYWdhaW4gZm9yIHlvdXIgaGVscCF+DQrCoA0KwqANCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 08:20:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 08:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2wia-0006Ql-KA; Wed, 18 May 2016 08:20:36 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2wiZ-0006Qf-FI
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 08:20:35 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 55/CD-02219-2D52C375; Wed, 18 May 2016 08:20:34 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvesqk2
 4wdFdehZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9o2lYIus4pvV26zNjBuMO1i5OSQEPCTeLj3
 LSuIzSagI7H06HwmEFtEwFNi0Z35QHEuDmaBeUwS06ZvASsSBirq/b2ZEaJIV2LD3X3MELaTx
 IFd54GaOThYBFQlXn81BAnzCrhLnPrYDjZHSGAWk8S9U8/ZQBKcAmESj+5NBOtlFJCV+NK4Gs
 xmFhCXuPUE4ggJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCsotZQFNi/S59iFZFiSndD9kh9gp
 KnJz5hAXEFhJQkdjy+ADUGG6JlZ//sExgFJ2FZNsshEmzkEyahWTSAkaWVYzqxalFZalFukZ6
 SUWZ6RkluYmZObqGBqZ6uanFxYnpqTmJScV6yfm5mxiBUcIABDsYv/9xOsQoycGkJMq7Vd4mX
 IgvKT+lMiOxOCO+qDQntfgQowwHh5IE7z0VoJxgUWp6akVaZg4wXmHSEhw8SiK8C0DSvMUFib
 nFmekQqVOMilLivMtBEgIgiYzSPLg2WIq4xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWHepSB
 TeDLzSuCmvwJazAS0+JYY2OKSRISUVAMjX5K/euZ6m4UffP5vW31abe+D7xG1SovuKgSKHSr7
 z2DfkTa16sTyiYEGb0XmmE4pzz1/Q3WpullXT0FMVBZjpuMFt5tzZRIuz/7wZeUX3SWy79/XT
 eCVZHJa/P2XQO9s4wBprzVPnAVnJni6p8q8DWdMbA57+GZnpmTI8uR/nx5OeMP8tbdGiaU4I9
 FQi7moOBEAyQ3rqAwDAAA=
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1463559629!27971614!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 48030 invoked from network); 18 May 2016 08:20:29 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 08:20:29 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; d="scan'208";a="22145171"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3QgACX4wCAAIYqEA==
Date: Wed, 18 May 2016 08:20:28 +0000
Message-ID: <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86
Z2Fvd2VpMTdAaHVhd2VpLmNvbV0NCj4gU2VudDogMTggTWF5IDIwMTYgMDM6MTANCj4gVG86IFBh
dWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmc7IExpdXlpbmdkb25nOyBMaW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkp
OyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiBTdWJqZWN0OiDnrZTlpI06IFhlbiB3
aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IFRoYW5rIHlvdSBzbyBtdWNoIGZvciB5
b3VyIGhlbHAgUGF1bC4NCj4gDQo+IENvdWxkIHlvdSBwbGVhc2UgaGVscCBjbGFyaWZ5IGEgbGl0
dGxlIG1vcmU/IENvdWxkIHlvdSBwbGVhc2Ugc2VlIGlubGluZQ0KPiBiZWxvdz8NCj4gDQo+IEFs
c28gWGVuU2V2ZXIgUFYgY3VycmVudGx5IGRvIG5vdCBoYXZlIGFueSB1c2VyIG1vZGUgc2Vydmlj
ZT8NCg0KWGVuU2VydmVyIGhhcyBhICdndWVzdCBhZ2VudCcgcnVubmluZyBpbiBlYWNoIFZNIHRv
IHByb3ZpZGUgbWV0cmljcywgY29udHJvbCBjZXJ0YWluIGZlYXR1cmVzLCBldGMuIFRoYXQgYWdl
bnQgaXMgWGVuU2VydmVyIHNwZWNpZmljLiBUaGVyZSBpcyBhbHNvIGFub3RoZXIgYWdlbnQgaW5z
dGFsbGVkIGFsb25nc2lkZSB0aGUgWEVOSUZBQ0UgZHJpdmVyIHdoaWNoIGlzIG5vdCBzcGVjaWZp
YyB0byBYZW5TZXJ2ZXIgYnJhbmRlZCBidWlsZHMuIFRoaXMgYWdlbnQgaXMgdGhlcmUgdG8gaGFu
ZGxlIHNodXRkb3duIHJlcXVlc3RzICh3aGljaCBjYW4gb25seSBiZSBpbml0aWF0ZWQgZnJvbSB1
c2VyIHNwYWNlIGluIFdpbmRvd3MpIGFuZCB0byByZXNldCB0aGUgVk0gdGltZSB3aGVuIGNvbWlu
ZyBiYWNrIGZyb20gc3VzcGVuZCAob3RoZXJ3aXNlIHRoZSBSVEMgd2lsbCBkcmlmdCkuDQoNCj4g
Vm13YXJlIGhhcw0KPiBhIGxvdCBvZiB1c2VyIG1vZGUgc2VydmljZSB0byBpbXByb3ZlIHRoZSB3
aW5kb3dzIGV4cGVyaWVuY2UuDQo+IE1heSBJIGtub3cgaG93IEFtYXpvbiBhbmQgSW52aXNpYmxl
IHRoaW5ncyBsYWJzIGNvLXdvcmsgd2l0aCB5b3Ugb24gdGhpcw0KPiBwcm9qZWN0PyBEbyB3ZSBo
YXZlIGRpc2N1c3Npb24gbWVldGluZz8gSHVhd2VpIHdvdWxkIGxpa2UgYnVpbGQgdGhlIHNhbWUN
Cj4gcmVsYXRpb25zaGlwIHdpdGggeW91ciB0ZWFtIG9uIHRoaXMgcHJvamVjdCBhcyBBbWF6b24g
YW5kIEludmlzaWJsZSB0aGluZ3MgbGFiDQo+IGRpZC4NCj4gDQoNClRoZSBwcm9qZWN0IGlzIG5v
dCBiaWcgZW5vdWdoIHRvIHdhcnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNvIGRpc2N1c3Np
b25zIGFyZSB2aWEgZW1haWwgdG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBDb250cmlidXRpb25z
IHNob3VsZCBiZSBtYWRlIHVzaW5nIHRoZSBzYW1lIG1vZGVsIGFzIGNvbnRyaWJ1dGlvbnMgdG8g
dGhlIGh5cGVydmlzb3IgKGkuZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBnaXQgc2VuZC1lbWFpbCku
DQpEbyB5b3UgaGF2ZSBhbnkgcGFydGljdWxhciBwcm9qZWN0cyBpbiBtaW5kIHRoYXQgeW91IHdv
dWxkIGxpa2UgdG8gd29yayBvbj8NCg0KQ2hlZXJzLA0KDQogICAgUGF1bA0KDQo+IA0KPiANCj4g
DQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21h
aWx0bzpQYXVsLkR1cnJhbnRAY2l0cml4LmNvbV0NCj4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0Neac
iDE35pelIDIzOjE2DQo+IOaUtuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQo+IOaK
hOmAgTogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IOS4u+mimDogUkU6IFhl
biB3aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IERlLWh0bWxpbmcuLi4NCj4gDQo+
IEZyb206IGdhb3dlaSAoWSkgW21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiBTZW50OiAx
NyBNYXkgMjAxNiAxMDoxMA0KPiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gQ2M6
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBYZW4gd2luZG93
cyBQViBkcml2ZXIgcXVlc3Rpb25zDQo+IA0KPiBIZWxsbyBQYXVsDQo+IA0KPiBUaGlzIGlzIFdh
eW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291cGxl
cyBvZg0KPiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5kb3dzIFBW
IGRyaXZlcnMuDQo+IENvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIHRpbWUgdG8gaGVscD8gUmVhbGx5
IGFwcHJlY2lhdGUgeW91ciBoZWxwIX4NCj4gDQo+IDEuIE1heSBJIGtub3cgaWYgdGhlIGxhdGVz
dCB3aW5kb3dzIFBWIG9wZW4gc291cmNlIGNvZGUgY2FuIHBhc3MgdGhlIFdIQ0sNCj4gdGVzdHMg
dmVyeSBzdGFibGUgYW5kIGdldCBkcml2ZXIgc2lnbmVkPw0KPiANCj4gPiBZZXMuIFRoZSBYZW5T
ZXJ2ZXIgUFYgZHJpdmVycyBhcmUgYmFzZWQgb24gdGhpcyBzb3VyY2Ugd2l0aCBvbmx5IHNtYWxs
DQo+IGNvbXBhdGliaWxpdHkgcGF0Y2hlcy4NCj4gCVdheW5lOiBkaWQgQ2l0cml4IG9wZW4gc291
cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5IHBhdGNoZXMgdGhhdA0KPiBtYWtlIHRoZSBYZW5T
ZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENLPw0KPiANCj4gMi4gRnJvbSB0aGUgaG9tZSBw
YWdlLCBJIHNlZSB0aGVyZSBpcyBhIHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzIHVwZGF0ZS4gTWF5
IEkNCj4ga25vdyBob3cgdGhpcyBpcyBnb2luZyBvbj8gQW55IHBsYW4gdG8gbWFrZSBpdCBoYXBw
ZW4uIEFub3RoZXIgYXBwcm9hY2ggaXMNCj4gdGhhdCBNaWNyb3NvZnQgYWxsb3cgc2VtaWNvbmR1
Y3RvciBjb21wYW55IGRlbGl2ZXIgaW5ib3ggZHJpdmVyLiBEbyB3ZQ0KPiBoYXZlIHRoaXMgcGxh
bj8NCj4gDQo+ID4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBs
aXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmDQo+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJp
YXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCBkb3dubG9hZA0KPiBhbmQgaW5z
dGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2lsbCBub3QgZ28gb250byBXaW5kb3dz
IFVwZGF0ZS4NCj4gCVdheW5lOiBYZW5TZXJ2ZXIgYnJhbmRlZCBkcml2ZXJzIHdpbGwgbm90IGdv
IGludG8gd2luZG93cyBpbmJveA0KPiBwbGFuPyBCdXQgWGVuU2VydmVyIGFscmVhZHkgam9pbiBp
biB0aGUgd2luZG93cyB1cGRhdGUgcGxhbiBzbyB0aGF0IGFueQ0KPiB3aW5kb3dzIFBWIGRyaXZl
ciB1cGRhdGUgY2FuIGdvIGFsb25nIHdpdGggdGhlIHN0YW5kYXJkIHdpbmRvd3MgdXBkYXRlDQo+
IHByb2Nlc3M/DQo+IA0KPiAzLiBJIHNhdyBpbiBjdXJyZW50IHdpbiBQViBkcml2ZXIsIHdlIGFk
ZCBvbmUgbmV3IGRyaXZlciB4ZW5jcnNoLnN5cyB0bw0KPiBjb21wbGV0ZSB0aGUgZHVtcC4gQnV0
IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0IHJldXNlIHRoZQ0KPiBvcmln
aW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAuIE1pY3Jv
c29mdCBzYW1wbGUNCj4gc3RvcmFjaGkgZHJpdmVyIGRpZCB0aGlzIHdheSB0b28uIE1heSBJIGtu
b3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlDQo+IGNob29zZSBhZGQgbmV3IGRyaXZl
cj8NCj4gDQo+ID4gVGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJl
bnQgdG8gYSBub3JtYWwga2VybmVsDQo+IGVudmlyb25tZW50LiBUaGUgeGVuY3JzaCBkcml2ZXIg
aXMgYWN0dWFsbHkgbGlua2VkIGludG8gdGhlIG5vcm1hbCB4ZW52YmQNCj4gc3RvcnBvcnQgZHJp
dmVyIGJ1dCBvbmx5IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwgZW52aXJvbm1l
bnQuIEl0DQo+IHRoZW4gYWN0aXZhdGVzIGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBp
dHMgb3duIHByaXZhdGUgaW50ZXJmYWNlcyB0byB0YWxrDQo+IHRvIFhlbiBhbmQgdGhlIFBWIGJh
Y2tlbmQgKHNpbmNlIHRoZSBub3JtYWwgeGVuYnVzIHByb3ZpZGVkIEFQSXMgYXJlIG5vdA0KPiBh
dmFpbGFibGUpLg0KPiANCj4gNC4gSSBzYXcgdGhlcmUgaXMgb25lIHN0b3JhZ2UgZmlsdGVyIGRy
aXZlciB0aGF0IGlzIGFib3ZlIHRoZSBzdG9ycG9ydC4gTWljcm9zb2Z0DQo+IFdIQ0sgZG9jdW1l
bnQgdXNlZCB0byBtZW50aW9uIE1TIGRvIG5vdCBsaWtlIGFueSBmaWx0ZXIgYWJvdmUgc3RvcnBv
cnQuDQo+IE1heSBJIGtub3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlIGNob29zZSBh
ZGQgZmlsdGVyIGRyaXZlcnMgaW50byB0aGUNCj4gYXJjaGl0ZWN0dXJlPw0KPiANCj4gPiBUaGVy
ZSBpcyBhIGZpbHRlciBkcml2ZXIgY2FsbGVkIHhlbmRpc2sgdGhhdCBzaXRzIGFib3ZlIHRoZSBz
dG9ycG9ydCBQRE9zLiBJdA0KPiBzZXJ2ZXMgb25seSB0byBpbnRlcmNlcHQgdGhlIElSUHMgbmVj
ZXNzYXJ5IHRvIHN1cHBvcnQgdHJpbS9kaXNjYXJkLiBOZXdlcg0KPiB2ZXJzaW9ucyBvZiBzdG9y
cG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlIGRyaXZlcnMgY2Fubm90
DQo+IG1ha2UgdXNlIG9mIG5ld2VyIHN0b3Jwb3J0IGFzIHRoZXkgYXJlIGRlc2lnbmVkIHRvIGZ1
bmN0aW9uIG9uIG9sZGVyDQo+IHZlcnNpb25zIG9mIFdpbmRvd3MuDQo+IA0KPiBDdXJyZW50bHks
IHdlIHNhdyBhbGwgZGV2ZWxvcGVycyBhcmUgZnJvbSBDaXRyaXguIE1heSBJIGtub3cgaWYgSHVh
d2VpIGNhbg0KPiBjb250cmlidXRlIG9uIHRoaXMgcHJvamVjdCB0b28/DQo+IA0KPiA+IEFic29s
dXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gbWFkZSBieSBJbnZpc2libGUg
VGhpbmdzIExhYnMNCj4gYW5kIEFtYXpvbiBzbyBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRy
aWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4gQ2hlZXJzLA0KPiA+DQo+ID4gICBQYXVsDQo+IA0K
PiBUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBmb3IgeW91ciBoZWxwIX4NCj4gDQo+IA0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 08:20:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 08:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2wia-0006Ql-KA; Wed, 18 May 2016 08:20:36 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2wiZ-0006Qf-FI
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 08:20:35 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 55/CD-02219-2D52C375; Wed, 18 May 2016 08:20:34 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvesqk2
 4wdFdehZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9o2lYIus4pvV26zNjBuMO1i5OSQEPCTeLj3
 LSuIzSagI7H06HwmEFtEwFNi0Z35QHEuDmaBeUwS06ZvASsSBirq/b2ZEaJIV2LD3X3MELaTx
 IFd54GaOThYBFQlXn81BAnzCrhLnPrYDjZHSGAWk8S9U8/ZQBKcAmESj+5NBOtlFJCV+NK4Gs
 xmFhCXuPUE4ggJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCsotZQFNi/S59iFZFiSndD9kh9gp
 KnJz5hAXEFhJQkdjy+ADUGG6JlZ//sExgFJ2FZNsshEmzkEyahWTSAkaWVYzqxalFZalFukZ6
 SUWZ6RkluYmZObqGBqZ6uanFxYnpqTmJScV6yfm5mxiBUcIABDsYv/9xOsQoycGkJMq7Vd4mX
 IgvKT+lMiOxOCO+qDQntfgQowwHh5IE7z0VoJxgUWp6akVaZg4wXmHSEhw8SiK8C0DSvMUFib
 nFmekQqVOMilLivMtBEgIgiYzSPLg2WIq4xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWHepSB
 TeDLzSuCmvwJazAS0+JYY2OKSRISUVAMjX5K/euZ6m4UffP5vW31abe+D7xG1SovuKgSKHSr7
 z2DfkTa16sTyiYEGb0XmmE4pzz1/Q3WpullXT0FMVBZjpuMFt5tzZRIuz/7wZeUX3SWy79/XT
 eCVZHJa/P2XQO9s4wBprzVPnAVnJni6p8q8DWdMbA57+GZnpmTI8uR/nx5OeMP8tbdGiaU4I9
 FQi7moOBEAyQ3rqAwDAAA=
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-206.messagelabs.com!1463559629!27971614!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 48030 invoked from network); 18 May 2016 08:20:29 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 08:20:29 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; d="scan'208";a="22145171"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3QgACX4wCAAIYqEA==
Date: Wed, 18 May 2016 08:20:28 +0000
Message-ID: <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86
Z2Fvd2VpMTdAaHVhd2VpLmNvbV0NCj4gU2VudDogMTggTWF5IDIwMTYgMDM6MTANCj4gVG86IFBh
dWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmc7IExpdXlpbmdkb25nOyBMaW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkp
OyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiBTdWJqZWN0OiDnrZTlpI06IFhlbiB3
aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IFRoYW5rIHlvdSBzbyBtdWNoIGZvciB5
b3VyIGhlbHAgUGF1bC4NCj4gDQo+IENvdWxkIHlvdSBwbGVhc2UgaGVscCBjbGFyaWZ5IGEgbGl0
dGxlIG1vcmU/IENvdWxkIHlvdSBwbGVhc2Ugc2VlIGlubGluZQ0KPiBiZWxvdz8NCj4gDQo+IEFs
c28gWGVuU2V2ZXIgUFYgY3VycmVudGx5IGRvIG5vdCBoYXZlIGFueSB1c2VyIG1vZGUgc2Vydmlj
ZT8NCg0KWGVuU2VydmVyIGhhcyBhICdndWVzdCBhZ2VudCcgcnVubmluZyBpbiBlYWNoIFZNIHRv
IHByb3ZpZGUgbWV0cmljcywgY29udHJvbCBjZXJ0YWluIGZlYXR1cmVzLCBldGMuIFRoYXQgYWdl
bnQgaXMgWGVuU2VydmVyIHNwZWNpZmljLiBUaGVyZSBpcyBhbHNvIGFub3RoZXIgYWdlbnQgaW5z
dGFsbGVkIGFsb25nc2lkZSB0aGUgWEVOSUZBQ0UgZHJpdmVyIHdoaWNoIGlzIG5vdCBzcGVjaWZp
YyB0byBYZW5TZXJ2ZXIgYnJhbmRlZCBidWlsZHMuIFRoaXMgYWdlbnQgaXMgdGhlcmUgdG8gaGFu
ZGxlIHNodXRkb3duIHJlcXVlc3RzICh3aGljaCBjYW4gb25seSBiZSBpbml0aWF0ZWQgZnJvbSB1
c2VyIHNwYWNlIGluIFdpbmRvd3MpIGFuZCB0byByZXNldCB0aGUgVk0gdGltZSB3aGVuIGNvbWlu
ZyBiYWNrIGZyb20gc3VzcGVuZCAob3RoZXJ3aXNlIHRoZSBSVEMgd2lsbCBkcmlmdCkuDQoNCj4g
Vm13YXJlIGhhcw0KPiBhIGxvdCBvZiB1c2VyIG1vZGUgc2VydmljZSB0byBpbXByb3ZlIHRoZSB3
aW5kb3dzIGV4cGVyaWVuY2UuDQo+IE1heSBJIGtub3cgaG93IEFtYXpvbiBhbmQgSW52aXNpYmxl
IHRoaW5ncyBsYWJzIGNvLXdvcmsgd2l0aCB5b3Ugb24gdGhpcw0KPiBwcm9qZWN0PyBEbyB3ZSBo
YXZlIGRpc2N1c3Npb24gbWVldGluZz8gSHVhd2VpIHdvdWxkIGxpa2UgYnVpbGQgdGhlIHNhbWUN
Cj4gcmVsYXRpb25zaGlwIHdpdGggeW91ciB0ZWFtIG9uIHRoaXMgcHJvamVjdCBhcyBBbWF6b24g
YW5kIEludmlzaWJsZSB0aGluZ3MgbGFiDQo+IGRpZC4NCj4gDQoNClRoZSBwcm9qZWN0IGlzIG5v
dCBiaWcgZW5vdWdoIHRvIHdhcnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNvIGRpc2N1c3Np
b25zIGFyZSB2aWEgZW1haWwgdG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBDb250cmlidXRpb25z
IHNob3VsZCBiZSBtYWRlIHVzaW5nIHRoZSBzYW1lIG1vZGVsIGFzIGNvbnRyaWJ1dGlvbnMgdG8g
dGhlIGh5cGVydmlzb3IgKGkuZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBnaXQgc2VuZC1lbWFpbCku
DQpEbyB5b3UgaGF2ZSBhbnkgcGFydGljdWxhciBwcm9qZWN0cyBpbiBtaW5kIHRoYXQgeW91IHdv
dWxkIGxpa2UgdG8gd29yayBvbj8NCg0KQ2hlZXJzLA0KDQogICAgUGF1bA0KDQo+IA0KPiANCj4g
DQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21h
aWx0bzpQYXVsLkR1cnJhbnRAY2l0cml4LmNvbV0NCj4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0Neac
iDE35pelIDIzOjE2DQo+IOaUtuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQo+IOaK
hOmAgTogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IOS4u+mimDogUkU6IFhl
biB3aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IERlLWh0bWxpbmcuLi4NCj4gDQo+
IEZyb206IGdhb3dlaSAoWSkgW21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiBTZW50OiAx
NyBNYXkgMjAxNiAxMDoxMA0KPiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gQ2M6
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBYZW4gd2luZG93
cyBQViBkcml2ZXIgcXVlc3Rpb25zDQo+IA0KPiBIZWxsbyBQYXVsDQo+IA0KPiBUaGlzIGlzIFdh
eW5lIEdhbyBmcm9tIEh1YXdlaS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291cGxl
cyBvZg0KPiB0ZWNobmljYWwgcXVlc3Rpb25zIHJlZ2FyZGluZyB3aXRoIFhlbiB3aW5kb3dzIFBW
IGRyaXZlcnMuDQo+IENvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIHRpbWUgdG8gaGVscD8gUmVhbGx5
IGFwcHJlY2lhdGUgeW91ciBoZWxwIX4NCj4gDQo+IDEuIE1heSBJIGtub3cgaWYgdGhlIGxhdGVz
dCB3aW5kb3dzIFBWIG9wZW4gc291cmNlIGNvZGUgY2FuIHBhc3MgdGhlIFdIQ0sNCj4gdGVzdHMg
dmVyeSBzdGFibGUgYW5kIGdldCBkcml2ZXIgc2lnbmVkPw0KPiANCj4gPiBZZXMuIFRoZSBYZW5T
ZXJ2ZXIgUFYgZHJpdmVycyBhcmUgYmFzZWQgb24gdGhpcyBzb3VyY2Ugd2l0aCBvbmx5IHNtYWxs
DQo+IGNvbXBhdGliaWxpdHkgcGF0Y2hlcy4NCj4gCVdheW5lOiBkaWQgQ2l0cml4IG9wZW4gc291
cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5IHBhdGNoZXMgdGhhdA0KPiBtYWtlIHRoZSBYZW5T
ZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENLPw0KPiANCj4gMi4gRnJvbSB0aGUgaG9tZSBw
YWdlLCBJIHNlZSB0aGVyZSBpcyBhIHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzIHVwZGF0ZS4gTWF5
IEkNCj4ga25vdyBob3cgdGhpcyBpcyBnb2luZyBvbj8gQW55IHBsYW4gdG8gbWFrZSBpdCBoYXBw
ZW4uIEFub3RoZXIgYXBwcm9hY2ggaXMNCj4gdGhhdCBNaWNyb3NvZnQgYWxsb3cgc2VtaWNvbmR1
Y3RvciBjb21wYW55IGRlbGl2ZXIgaW5ib3ggZHJpdmVyLiBEbyB3ZQ0KPiBoYXZlIHRoaXMgcGxh
bj8NCj4gDQo+ID4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBs
aXZlIG9uIFdpbmRvd3MgVXBkYXRlIHNvIGlmDQo+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJp
YXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCBkb3dubG9hZA0KPiBhbmQgaW5z
dGFsbC4gWGVuUHJvamVjdCBicmFuZGVkIGRyaXZlcnMgd2lsbCBub3QgZ28gb250byBXaW5kb3dz
IFVwZGF0ZS4NCj4gCVdheW5lOiBYZW5TZXJ2ZXIgYnJhbmRlZCBkcml2ZXJzIHdpbGwgbm90IGdv
IGludG8gd2luZG93cyBpbmJveA0KPiBwbGFuPyBCdXQgWGVuU2VydmVyIGFscmVhZHkgam9pbiBp
biB0aGUgd2luZG93cyB1cGRhdGUgcGxhbiBzbyB0aGF0IGFueQ0KPiB3aW5kb3dzIFBWIGRyaXZl
ciB1cGRhdGUgY2FuIGdvIGFsb25nIHdpdGggdGhlIHN0YW5kYXJkIHdpbmRvd3MgdXBkYXRlDQo+
IHByb2Nlc3M/DQo+IA0KPiAzLiBJIHNhdyBpbiBjdXJyZW50IHdpbiBQViBkcml2ZXIsIHdlIGFk
ZCBvbmUgbmV3IGRyaXZlciB4ZW5jcnNoLnN5cyB0bw0KPiBjb21wbGV0ZSB0aGUgZHVtcC4gQnV0
IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0IHJldXNlIHRoZQ0KPiBvcmln
aW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAuIE1pY3Jv
c29mdCBzYW1wbGUNCj4gc3RvcmFjaGkgZHJpdmVyIGRpZCB0aGlzIHdheSB0b28uIE1heSBJIGtu
b3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlDQo+IGNob29zZSBhZGQgbmV3IGRyaXZl
cj8NCj4gDQo+ID4gVGhlIGNyYXNoIGtlcm5lbCBlbnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJl
bnQgdG8gYSBub3JtYWwga2VybmVsDQo+IGVudmlyb25tZW50LiBUaGUgeGVuY3JzaCBkcml2ZXIg
aXMgYWN0dWFsbHkgbGlua2VkIGludG8gdGhlIG5vcm1hbCB4ZW52YmQNCj4gc3RvcnBvcnQgZHJp
dmVyIGJ1dCBvbmx5IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwgZW52aXJvbm1l
bnQuIEl0DQo+IHRoZW4gYWN0aXZhdGVzIGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBp
dHMgb3duIHByaXZhdGUgaW50ZXJmYWNlcyB0byB0YWxrDQo+IHRvIFhlbiBhbmQgdGhlIFBWIGJh
Y2tlbmQgKHNpbmNlIHRoZSBub3JtYWwgeGVuYnVzIHByb3ZpZGVkIEFQSXMgYXJlIG5vdA0KPiBh
dmFpbGFibGUpLg0KPiANCj4gNC4gSSBzYXcgdGhlcmUgaXMgb25lIHN0b3JhZ2UgZmlsdGVyIGRy
aXZlciB0aGF0IGlzIGFib3ZlIHRoZSBzdG9ycG9ydC4gTWljcm9zb2Z0DQo+IFdIQ0sgZG9jdW1l
bnQgdXNlZCB0byBtZW50aW9uIE1TIGRvIG5vdCBsaWtlIGFueSBmaWx0ZXIgYWJvdmUgc3RvcnBv
cnQuDQo+IE1heSBJIGtub3cgd2hhdCBpcyBzcGVjaWFsIHJlYXNvbiB0aGF0IHdlIGNob29zZSBh
ZGQgZmlsdGVyIGRyaXZlcnMgaW50byB0aGUNCj4gYXJjaGl0ZWN0dXJlPw0KPiANCj4gPiBUaGVy
ZSBpcyBhIGZpbHRlciBkcml2ZXIgY2FsbGVkIHhlbmRpc2sgdGhhdCBzaXRzIGFib3ZlIHRoZSBz
dG9ycG9ydCBQRE9zLiBJdA0KPiBzZXJ2ZXMgb25seSB0byBpbnRlcmNlcHQgdGhlIElSUHMgbmVj
ZXNzYXJ5IHRvIHN1cHBvcnQgdHJpbS9kaXNjYXJkLiBOZXdlcg0KPiB2ZXJzaW9ucyBvZiBzdG9y
cG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlIGRyaXZlcnMgY2Fubm90
DQo+IG1ha2UgdXNlIG9mIG5ld2VyIHN0b3Jwb3J0IGFzIHRoZXkgYXJlIGRlc2lnbmVkIHRvIGZ1
bmN0aW9uIG9uIG9sZGVyDQo+IHZlcnNpb25zIG9mIFdpbmRvd3MuDQo+IA0KPiBDdXJyZW50bHks
IHdlIHNhdyBhbGwgZGV2ZWxvcGVycyBhcmUgZnJvbSBDaXRyaXguIE1heSBJIGtub3cgaWYgSHVh
d2VpIGNhbg0KPiBjb250cmlidXRlIG9uIHRoaXMgcHJvamVjdCB0b28/DQo+IA0KPiA+IEFic29s
dXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gbWFkZSBieSBJbnZpc2libGUg
VGhpbmdzIExhYnMNCj4gYW5kIEFtYXpvbiBzbyBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRy
aWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4gQ2hlZXJzLA0KPiA+DQo+ID4gICBQYXVsDQo+IA0K
PiBUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBmb3IgeW91ciBoZWxwIX4NCj4gDQo+IA0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 08:29:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 08:29:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2wqn-0006ZP-AR; Wed, 18 May 2016 08:29:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2wql-0006ZJ-SS
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 08:29:03 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 2D/31-03281-FC72C375; Wed, 18 May 2016 08:29:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOKsWRWlGSWpSXmKPExsVSPpHPSfecuk2
 4Qcc6OYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMefWF5aCi84Vq08eZW5gfODUxcjFISRwilGi
 ZeMFVghnA6PE+g2vmboYOTnYBDQkvtw+xgJiiwj4Sqx82ccGUsQscIRJYtePr+wgCWEBT4nuN
 3/YIIp0JTbc3ccMYbtJ/Hw+AWwQi4CqxKHdm8HivAKhEnenH2GC2HadSWJ9ZwvYIE4BD4l/Tb
 MZQWxGAVmJaY/ugzUzC4hLzJ02ixXElhAQlFg0ew8zhC0m8W/XQzYIW0ni0/0VQDUcQPWaEut
 36UO0KkpM6X7IDrFXUOLkzCcsEOWSEgdX3GABuUFC4DyjRNuc34wQCVOJD/9/sE9gFJ+FZPUs
 hLGzkIydhWTsAkaWVYwaxalFZalFuoaGeklFmekZJbmJmTlAnolebmpxcWJ6ak5iUrFecn7uJ
 kZghDEAwQ7GMyucDzFKcjApifJulbcJF+JLyk+pzEgszogvKs1JLT7EKMPBoSTBa6AGlBMsSk
 1PrUjLzAHGOkxagoNHSYS3BiTNW1yQmFucmQ6ROsWoKCXOywWSEABJZJTmwbXB0sslRlkpYV5
 GoEOEeApSi3IzS1DlXzGKczAqCfO6g0zhycwrgZv+CmgxE9DiW2Jgi0sSEVJSDYwVLTdtfYvn
 XVjevF1SdX3U+QgX67Mx9VczxHu4Mp8USi6Vn6WxWUj5Wt53rse9X/XTVR5fNz681fOXubDG2
 avnl/05fCBtXV122lqOZJ4XXe1iW/hz5PU4dbrFE/ZLC76QlNiSuPfLfcZ41sdsR4Lv7XS4tf
 vn3syEZK5Hz9bOrFvrvXV20h8lluKMREMt5qLiRADIuU8mKgMAAA==
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1463560137!42247713!1
X-Originating-IP: [119.145.14.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NiA9PiA4NTI3\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 56703 invoked from network); 18 May 2016 08:29:01 -0000
Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com)
 (119.145.14.66)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 08:29:01 -0000
Received: from 172.24.1.60 (EHLO szxemi412-hub.china.huawei.com)
 ([172.24.1.60])
 by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued)
 with ESMTP id CBW18504; Wed, 18 May 2016 16:28:35 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 szxemi412-hub.china.huawei.com ([10.86.210.35]) with mapi id 14.03.0235.001;
 Wed, 18 May 2016 16:28:26 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIp+8t7aAgAE5PnD//+T9AIAAiD2w
Date: Wed, 18 May 2016 08:28:25 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
 <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
In-Reply-To: <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A090203.573C27B4.0063, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: c181a8e3ff46fd2eb100d06fcdb8a11b
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: [win-pv-devel] =?utf-8?b?562U5aSNOiBYZW4gd2luZG93cyBQViBkcml2ZXIg?=
	=?utf-8?q?questions?=
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91IHNvIG11Y2ghIEJ1ZGR5Lg0KDQpUaGVyZSBhcmUgc3RpbGwgdHdvIHF1ZXN0aW9u
cyBpbiBiZWxvdzogSSBhbSBzb3JyeSB0aGF0IEkgZGlkIG5vdCBtYWtlIGl0IHZlcnkgY2xlYXIu
DQoNCldheW5lOiBkaWQgQ2l0cml4IG9wZW4gc291cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5
IHBhdGNoZXMgdGhhdCBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENL
PyBDYW4gdGhlIG9wZW4gc291cmNlIGxhdGVzdCBjb2RlIHBhc3MgdGhlIFdIQ0sgZGlyZWN0bHkg
d2l0aG91dCBhbnkgQ2l0cml4IGludGVybmFsIHBhdGNoPyANCg0KV2F5bmU6IFhlblNlcnZlciBi
cmFuZGVkIGRyaXZlcnMgd2lsbCBub3QgZ28gaW50byB3aW5kb3dzIGluYm94IHBsYW4/IEJ1dCBY
ZW5TZXJ2ZXIgYWxyZWFkeSBqb2luIGluIHRoZSB3aW5kb3dzIHVwZGF0ZSBwbGFuIHNvIHRoYXQg
YW55IHdpbmRvd3MgUFYgZHJpdmVyIHVwZGF0ZSBjYW4gZ28gYWxvbmcgd2l0aCB0aGUgc3RhbmRh
cmQgd2luZG93cyB1cGRhdGUgcHJvY2Vzcz8gSSBhbSBzb3JyeSB0byBhc2sgZG91YmxlIGNvbmZp
cm0gc2luY2UgeW91ciBvcmlnaW5hbCBhbnN3ZXIgc2VlbXMgY29uZmxpY3QuDQoNCg0KPT15b3Vy
IG9yaWdpbmFsIGFuc3dlciBzZWVtcyBjb25mbGljdD09PQ0KPiA+IFRoZSBYZW5TZXJ2ZXIgYnJh
bmRlZCBkcml2ZXJzIGFyZSBjdXJyZW50bHkgbGl2ZSBvbiBXaW5kb3dzIFVwZGF0ZSANCj4gPiBz
byBpZg0KPiB5b3UncmUgVk0gaGFzIHRoZSBhcHByb3ByaWF0ZSBQViBkZXZpY2UgdGhlbiB0aGVz
ZSBkcml2ZXJzIHdpbGwgDQo+IGRvd25sb2FkIGFuZCBpbnN0YWxsLiBYZW5Qcm9qZWN0IGJyYW5k
ZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MgVXBkYXRlLg0KDQoNCg0KLS0tLS3p
gq7ku7bljp/ku7YtLS0tLQ0K5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21haWx0bzpQYXVsLkR1
cnJhbnRAY2l0cml4LmNvbV0gDQrlj5HpgIHml7bpl7Q6IDIwMTblubQ15pyIMTjml6UgMTY6MjAN
CuaUtuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQrmioTpgIE6IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgTGl1eWluZ2Rvbmc7IExpbnFpYW5nbWluOyBIYW53ZWlk
b25nIChSYW5keSk7IGxpeGlhbyAoSCk7IEh1YW5ncGVuZyAoUGV0ZXIpDQrkuLvpopg6IFJFOiBY
ZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS0NCj4gRnJvbTogZ2Fvd2VpIChZKSBbbWFpbHRvOmdhb3dlaTE3QGh1YXdlaS5jb21dDQo+
IFNlbnQ6IDE4IE1heSAyMDE2IDAzOjEwDQo+IFRvOiBQYXVsIER1cnJhbnQ7IFBhdWwgRHVycmFu
dA0KPiBDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBMaXV5aW5nZG9uZzsg
TGlucWlhbmdtaW47IA0KPiBIYW53ZWlkb25nIChSYW5keSk7IGxpeGlhbyAoSCk7IEh1YW5ncGVu
ZyAoUGV0ZXIpDQo+IFN1YmplY3Q6IOetlOWkjTogWGVuIHdpbmRvd3MgUFYgZHJpdmVyIHF1ZXN0
aW9ucw0KPiANCj4gVGhhbmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KPiANCj4g
Q291bGQgeW91IHBsZWFzZSBoZWxwIGNsYXJpZnkgYSBsaXR0bGUgbW9yZT8gQ291bGQgeW91IHBs
ZWFzZSBzZWUgDQo+IGlubGluZSBiZWxvdz8NCj4gDQo+IEFsc28gWGVuU2V2ZXIgUFYgY3VycmVu
dGx5IGRvIG5vdCBoYXZlIGFueSB1c2VyIG1vZGUgc2VydmljZT8NCg0KWGVuU2VydmVyIGhhcyBh
ICdndWVzdCBhZ2VudCcgcnVubmluZyBpbiBlYWNoIFZNIHRvIHByb3ZpZGUgbWV0cmljcywgY29u
dHJvbCBjZXJ0YWluIGZlYXR1cmVzLCBldGMuIFRoYXQgYWdlbnQgaXMgWGVuU2VydmVyIHNwZWNp
ZmljLiBUaGVyZSBpcyBhbHNvIGFub3RoZXIgYWdlbnQgaW5zdGFsbGVkIGFsb25nc2lkZSB0aGUg
WEVOSUZBQ0UgZHJpdmVyIHdoaWNoIGlzIG5vdCBzcGVjaWZpYyB0byBYZW5TZXJ2ZXIgYnJhbmRl
ZCBidWlsZHMuIFRoaXMgYWdlbnQgaXMgdGhlcmUgdG8gaGFuZGxlIHNodXRkb3duIHJlcXVlc3Rz
ICh3aGljaCBjYW4gb25seSBiZSBpbml0aWF0ZWQgZnJvbSB1c2VyIHNwYWNlIGluIFdpbmRvd3Mp
IGFuZCB0byByZXNldCB0aGUgVk0gdGltZSB3aGVuIGNvbWluZyBiYWNrIGZyb20gc3VzcGVuZCAo
b3RoZXJ3aXNlIHRoZSBSVEMgd2lsbCBkcmlmdCkuDQoNCj4gVm13YXJlIGhhcw0KPiBhIGxvdCBv
ZiB1c2VyIG1vZGUgc2VydmljZSB0byBpbXByb3ZlIHRoZSB3aW5kb3dzIGV4cGVyaWVuY2UuDQo+
IE1heSBJIGtub3cgaG93IEFtYXpvbiBhbmQgSW52aXNpYmxlIHRoaW5ncyBsYWJzIGNvLXdvcmsg
d2l0aCB5b3Ugb24gDQo+IHRoaXMgcHJvamVjdD8gRG8gd2UgaGF2ZSBkaXNjdXNzaW9uIG1lZXRp
bmc/IEh1YXdlaSB3b3VsZCBsaWtlIGJ1aWxkIA0KPiB0aGUgc2FtZSByZWxhdGlvbnNoaXAgd2l0
aCB5b3VyIHRlYW0gb24gdGhpcyBwcm9qZWN0IGFzIEFtYXpvbiBhbmQgDQo+IEludmlzaWJsZSB0
aGluZ3MgbGFiIGRpZC4NCj4gDQoNClRoZSBwcm9qZWN0IGlzIG5vdCBiaWcgZW5vdWdoIHRvIHdh
cnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNvIGRpc2N1c3Npb25zIGFyZSB2aWEgZW1haWwg
dG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBDb250cmlidXRpb25zIHNob3VsZCBiZSBtYWRlIHVz
aW5nIHRoZSBzYW1lIG1vZGVsIGFzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIGh5cGVydmlzb3IgKGku
ZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBnaXQgc2VuZC1lbWFpbCkuDQpEbyB5b3UgaGF2ZSBhbnkg
cGFydGljdWxhciBwcm9qZWN0cyBpbiBtaW5kIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gd29yayBv
bj8NCg0KQ2hlZXJzLA0KDQogICAgUGF1bA0KDQo+IA0KPiANCj4gDQo+IC0tLS0t6YKu5Lu25Y6f
5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21haWx0bzpQYXVsLkR1cnJhbnRA
Y2l0cml4LmNvbV0NCj4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQo+IOaU
tuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQo+IOaKhOmAgTogd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IOS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBWIGRyaXZl
ciBxdWVzdGlvbnMNCj4gDQo+IERlLWh0bWxpbmcuLi4NCj4gDQo+IEZyb206IGdhb3dlaSAoWSkg
W21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiBTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0K
PiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gQ2M6IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rp
b25zDQo+IA0KPiBIZWxsbyBQYXVsDQo+IA0KPiBUaGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdl
aS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291cGxlcyANCj4gb2YgdGVjaG5pY2Fs
IHF1ZXN0aW9ucyByZWdhcmRpbmcgd2l0aCBYZW4gd2luZG93cyBQViBkcml2ZXJzLg0KPiBDb3Vs
ZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJlYWxseSBhcHByZWNpYXRlIHlvdXIg
aGVscCF+DQo+IA0KPiAxLiBNYXkgSSBrbm93IGlmIHRoZSBsYXRlc3Qgd2luZG93cyBQViBvcGVu
IHNvdXJjZSBjb2RlIGNhbiBwYXNzIHRoZSANCj4gV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQg
Z2V0IGRyaXZlciBzaWduZWQ/DQo+IA0KPiA+IFllcy4gVGhlIFhlblNlcnZlciBQViBkcml2ZXJz
IGFyZSBiYXNlZCBvbiB0aGlzIHNvdXJjZSB3aXRoIG9ubHkgDQo+ID4gc21hbGwNCj4gY29tcGF0
aWJpbGl0eSBwYXRjaGVzLg0KPiAJV2F5bmU6IGRpZCBDaXRyaXggb3BlbiBzb3VyY2UgdGhlIHNt
YWxsIGNvbXBhdGliaWxpdHkgcGF0Y2hlcyB0aGF0IA0KPiBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYg
ZHJpdmVycyBwYXNzIHRoZSBXSENLPw0KPiANCj4gMi4gRnJvbSB0aGUgaG9tZSBwYWdlLCBJIHNl
ZSB0aGVyZSBpcyBhIHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzIA0KPiB1cGRhdGUuIE1heSBJIGtu
b3cgaG93IHRoaXMgaXMgZ29pbmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiANCj4g
QW5vdGhlciBhcHByb2FjaCBpcyB0aGF0IE1pY3Jvc29mdCBhbGxvdyBzZW1pY29uZHVjdG9yIGNv
bXBhbnkgZGVsaXZlciANCj4gaW5ib3ggZHJpdmVyLiBEbyB3ZSBoYXZlIHRoaXMgcGxhbj8NCj4g
DQo+ID4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9u
IFdpbmRvd3MgVXBkYXRlIA0KPiA+IHNvIGlmDQo+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJp
YXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCANCj4gZG93bmxvYWQgYW5kIGlu
c3RhbGwuIFhlblByb2plY3QgYnJhbmRlZCBkcml2ZXJzIHdpbGwgbm90IGdvIG9udG8gV2luZG93
cyBVcGRhdGUuDQo+IAlXYXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBn
byBpbnRvIHdpbmRvd3MgaW5ib3ggcGxhbj8gDQo+IEJ1dCBYZW5TZXJ2ZXIgYWxyZWFkeSBqb2lu
IGluIHRoZSB3aW5kb3dzIHVwZGF0ZSBwbGFuIHNvIHRoYXQgYW55IA0KPiB3aW5kb3dzIFBWIGRy
aXZlciB1cGRhdGUgY2FuIGdvIGFsb25nIHdpdGggdGhlIHN0YW5kYXJkIHdpbmRvd3MgdXBkYXRl
IA0KPiBwcm9jZXNzPw0KPiANCj4gMy4gSSBzYXcgaW4gY3VycmVudCB3aW4gUFYgZHJpdmVyLCB3
ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMgDQo+IHRvIGNvbXBsZXRlIHRoZSBkdW1w
LiBCdXQgd2luZG93cyBhY3R1YWxseSBoYXMgdGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgDQo+IHRo
ZSBvcmlnaW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAu
IE1pY3Jvc29mdCANCj4gc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQgdGhpcyB3YXkgdG9vLiBN
YXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCANCj4gcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBu
ZXcgZHJpdmVyPw0KPiANCj4gPiBUaGUgY3Jhc2gga2VybmVsIGVudmlyb25tZW50IGlzIHF1aXRl
IGRpZmZlcmVudCB0byBhIG5vcm1hbCBrZXJuZWwNCj4gZW52aXJvbm1lbnQuIFRoZSB4ZW5jcnNo
IGRyaXZlciBpcyBhY3R1YWxseSBsaW5rZWQgaW50byB0aGUgbm9ybWFsIA0KPiB4ZW52YmQgc3Rv
cnBvcnQgZHJpdmVyIGJ1dCBvbmx5IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwg
DQo+IGVudmlyb25tZW50LiBJdCB0aGVuIGFjdGl2YXRlcyBhcyB0aGUgc3RvcmFnZSBkcml2ZXIg
YW5kIHVzZXMgaXRzIG93biANCj4gcHJpdmF0ZSBpbnRlcmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFu
ZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1hbCANCj4geGVuYnVzIHByb3ZpZGVkIEFQ
SXMgYXJlIG5vdCBhdmFpbGFibGUpLg0KPiANCj4gNC4gSSBzYXcgdGhlcmUgaXMgb25lIHN0b3Jh
Z2UgZmlsdGVyIGRyaXZlciB0aGF0IGlzIGFib3ZlIHRoZSANCj4gc3RvcnBvcnQuIE1pY3Jvc29m
dCBXSENLIGRvY3VtZW50IHVzZWQgdG8gbWVudGlvbiBNUyBkbyBub3QgbGlrZSBhbnkgZmlsdGVy
IGFib3ZlIHN0b3Jwb3J0Lg0KPiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCByZWFzb24gdGhh
dCB3ZSBjaG9vc2UgYWRkIGZpbHRlciBkcml2ZXJzIA0KPiBpbnRvIHRoZSBhcmNoaXRlY3R1cmU/
DQo+IA0KPiA+IFRoZXJlIGlzIGEgZmlsdGVyIGRyaXZlciBjYWxsZWQgeGVuZGlzayB0aGF0IHNp
dHMgYWJvdmUgdGhlIHN0b3Jwb3J0IA0KPiA+IFBET3MuIEl0DQo+IHNlcnZlcyBvbmx5IHRvIGlu
dGVyY2VwdCB0aGUgSVJQcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCB0cmltL2Rpc2NhcmQuIA0KPiBO
ZXdlciB2ZXJzaW9ucyBvZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBi
dXQgdGhlIA0KPiBkcml2ZXJzIGNhbm5vdCBtYWtlIHVzZSBvZiBuZXdlciBzdG9ycG9ydCBhcyB0
aGV5IGFyZSBkZXNpZ25lZCB0byANCj4gZnVuY3Rpb24gb24gb2xkZXIgdmVyc2lvbnMgb2YgV2lu
ZG93cy4NCj4gDQo+IEN1cnJlbnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBmcm9tIENp
dHJpeC4gTWF5IEkga25vdyBpZiBIdWF3ZWkgDQo+IGNhbiBjb250cmlidXRlIG9uIHRoaXMgcHJv
amVjdCB0b28/DQo+IA0KPiA+IEFic29sdXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5
IGJlZW4gbWFkZSBieSBJbnZpc2libGUgVGhpbmdzIA0KPiA+IExhYnMNCj4gYW5kIEFtYXpvbiBz
byBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4g
Q2hlZXJzLA0KPiA+DQo+ID4gICBQYXVsDQo+IA0KPiBUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBm
b3IgeW91ciBoZWxwIX4NCj4gDQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 08:29:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 08:29:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2wqn-0006ZP-AR; Wed, 18 May 2016 08:29:05 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <gaowei17@huawei.com>) id 1b2wql-0006ZJ-SS
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 08:29:03 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 2D/31-03281-FC72C375; Wed, 18 May 2016 08:29:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOKsWRWlGSWpSXmKPExsVSPpHPSfecuk2
 4Qcc6OYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMefWF5aCi84Vq08eZW5gfODUxcjFISRwilGi
 ZeMFVghnA6PE+g2vmboYOTnYBDQkvtw+xgJiiwj4Sqx82ccGUsQscIRJYtePr+wgCWEBT4nuN
 3/YIIp0JTbc3ccMYbtJ/Hw+AWwQi4CqxKHdm8HivAKhEnenH2GC2HadSWJ9ZwvYIE4BD4l/Tb
 MZQWxGAVmJaY/ugzUzC4hLzJ02ixXElhAQlFg0ew8zhC0m8W/XQzYIW0ni0/0VQDUcQPWaEut
 36UO0KkpM6X7IDrFXUOLkzCcsEOWSEgdX3GABuUFC4DyjRNuc34wQCVOJD/9/sE9gFJ+FZPUs
 hLGzkIydhWTsAkaWVYwaxalFZalFuoaGeklFmekZJbmJmTlAnolebmpxcWJ6ak5iUrFecn7uJ
 kZghDEAwQ7GMyucDzFKcjApifJulbcJF+JLyk+pzEgszogvKs1JLT7EKMPBoSTBa6AGlBMsSk
 1PrUjLzAHGOkxagoNHSYS3BiTNW1yQmFucmQ6ROsWoKCXOywWSEABJZJTmwbXB0sslRlkpYV5
 GoEOEeApSi3IzS1DlXzGKczAqCfO6g0zhycwrgZv+CmgxE9DiW2Jgi0sSEVJSDYwVLTdtfYvn
 XVjevF1SdX3U+QgX67Mx9VczxHu4Mp8USi6Vn6WxWUj5Wt53rse9X/XTVR5fNz681fOXubDG2
 avnl/05fCBtXV122lqOZJ4XXe1iW/hz5PU4dbrFE/ZLC76QlNiSuPfLfcZ41sdsR4Lv7XS4tf
 vn3syEZK5Hz9bOrFvrvXV20h8lluKMREMt5qLiRADIuU8mKgMAAA==
X-Env-Sender: gaowei17@huawei.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1463560137!42247713!1
X-Originating-IP: [119.145.14.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NiA9PiA4NTI3\n
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 56703 invoked from network); 18 May 2016 08:29:01 -0000
Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com)
 (119.145.14.66)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 08:29:01 -0000
Received: from 172.24.1.60 (EHLO szxemi412-hub.china.huawei.com)
 ([172.24.1.60])
 by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued)
 with ESMTP id CBW18504; Wed, 18 May 2016 16:28:35 +0800 (CST)
Received: from SZXEMI506-MBX.china.huawei.com ([169.254.5.40]) by
 szxemi412-hub.china.huawei.com ([10.86.210.35]) with mapi id 14.03.0235.001;
 Wed, 18 May 2016 16:28:26 +0800
From: "gaowei (Y)" <gaowei17@huawei.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBvgF1Hb67RhQU+xk6/xn09YIp+8t7aAgAE5PnD//+T9AIAAiD2w
Date: Wed, 18 May 2016 08:28:25 +0000
Message-ID: <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
 <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
In-Reply-To: <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.177.218.184]
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0),
 refid=str=0001.0A090203.573C27B4.0063, ss=1, re=0.000, recu=0.000, reip=0.000,
 cl=1, cld=1, fgs=0, ip=169.254.5.40,
 so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: c181a8e3ff46fd2eb100d06fcdb8a11b
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: [win-pv-devel] =?utf-8?b?562U5aSNOiBYZW4gd2luZG93cyBQViBkcml2ZXIg?=
	=?utf-8?q?questions?=
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91IHNvIG11Y2ghIEJ1ZGR5Lg0KDQpUaGVyZSBhcmUgc3RpbGwgdHdvIHF1ZXN0aW9u
cyBpbiBiZWxvdzogSSBhbSBzb3JyeSB0aGF0IEkgZGlkIG5vdCBtYWtlIGl0IHZlcnkgY2xlYXIu
DQoNCldheW5lOiBkaWQgQ2l0cml4IG9wZW4gc291cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5
IHBhdGNoZXMgdGhhdCBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENL
PyBDYW4gdGhlIG9wZW4gc291cmNlIGxhdGVzdCBjb2RlIHBhc3MgdGhlIFdIQ0sgZGlyZWN0bHkg
d2l0aG91dCBhbnkgQ2l0cml4IGludGVybmFsIHBhdGNoPyANCg0KV2F5bmU6IFhlblNlcnZlciBi
cmFuZGVkIGRyaXZlcnMgd2lsbCBub3QgZ28gaW50byB3aW5kb3dzIGluYm94IHBsYW4/IEJ1dCBY
ZW5TZXJ2ZXIgYWxyZWFkeSBqb2luIGluIHRoZSB3aW5kb3dzIHVwZGF0ZSBwbGFuIHNvIHRoYXQg
YW55IHdpbmRvd3MgUFYgZHJpdmVyIHVwZGF0ZSBjYW4gZ28gYWxvbmcgd2l0aCB0aGUgc3RhbmRh
cmQgd2luZG93cyB1cGRhdGUgcHJvY2Vzcz8gSSBhbSBzb3JyeSB0byBhc2sgZG91YmxlIGNvbmZp
cm0gc2luY2UgeW91ciBvcmlnaW5hbCBhbnN3ZXIgc2VlbXMgY29uZmxpY3QuDQoNCg0KPT15b3Vy
IG9yaWdpbmFsIGFuc3dlciBzZWVtcyBjb25mbGljdD09PQ0KPiA+IFRoZSBYZW5TZXJ2ZXIgYnJh
bmRlZCBkcml2ZXJzIGFyZSBjdXJyZW50bHkgbGl2ZSBvbiBXaW5kb3dzIFVwZGF0ZSANCj4gPiBz
byBpZg0KPiB5b3UncmUgVk0gaGFzIHRoZSBhcHByb3ByaWF0ZSBQViBkZXZpY2UgdGhlbiB0aGVz
ZSBkcml2ZXJzIHdpbGwgDQo+IGRvd25sb2FkIGFuZCBpbnN0YWxsLiBYZW5Qcm9qZWN0IGJyYW5k
ZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MgVXBkYXRlLg0KDQoNCg0KLS0tLS3p
gq7ku7bljp/ku7YtLS0tLQ0K5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21haWx0bzpQYXVsLkR1
cnJhbnRAY2l0cml4LmNvbV0gDQrlj5HpgIHml7bpl7Q6IDIwMTblubQ15pyIMTjml6UgMTY6MjAN
CuaUtuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQrmioTpgIE6IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgTGl1eWluZ2Rvbmc7IExpbnFpYW5nbWluOyBIYW53ZWlk
b25nIChSYW5keSk7IGxpeGlhbyAoSCk7IEh1YW5ncGVuZyAoUGV0ZXIpDQrkuLvpopg6IFJFOiBY
ZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS0NCj4gRnJvbTogZ2Fvd2VpIChZKSBbbWFpbHRvOmdhb3dlaTE3QGh1YXdlaS5jb21dDQo+
IFNlbnQ6IDE4IE1heSAyMDE2IDAzOjEwDQo+IFRvOiBQYXVsIER1cnJhbnQ7IFBhdWwgRHVycmFu
dA0KPiBDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBMaXV5aW5nZG9uZzsg
TGlucWlhbmdtaW47IA0KPiBIYW53ZWlkb25nIChSYW5keSk7IGxpeGlhbyAoSCk7IEh1YW5ncGVu
ZyAoUGV0ZXIpDQo+IFN1YmplY3Q6IOetlOWkjTogWGVuIHdpbmRvd3MgUFYgZHJpdmVyIHF1ZXN0
aW9ucw0KPiANCj4gVGhhbmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KPiANCj4g
Q291bGQgeW91IHBsZWFzZSBoZWxwIGNsYXJpZnkgYSBsaXR0bGUgbW9yZT8gQ291bGQgeW91IHBs
ZWFzZSBzZWUgDQo+IGlubGluZSBiZWxvdz8NCj4gDQo+IEFsc28gWGVuU2V2ZXIgUFYgY3VycmVu
dGx5IGRvIG5vdCBoYXZlIGFueSB1c2VyIG1vZGUgc2VydmljZT8NCg0KWGVuU2VydmVyIGhhcyBh
ICdndWVzdCBhZ2VudCcgcnVubmluZyBpbiBlYWNoIFZNIHRvIHByb3ZpZGUgbWV0cmljcywgY29u
dHJvbCBjZXJ0YWluIGZlYXR1cmVzLCBldGMuIFRoYXQgYWdlbnQgaXMgWGVuU2VydmVyIHNwZWNp
ZmljLiBUaGVyZSBpcyBhbHNvIGFub3RoZXIgYWdlbnQgaW5zdGFsbGVkIGFsb25nc2lkZSB0aGUg
WEVOSUZBQ0UgZHJpdmVyIHdoaWNoIGlzIG5vdCBzcGVjaWZpYyB0byBYZW5TZXJ2ZXIgYnJhbmRl
ZCBidWlsZHMuIFRoaXMgYWdlbnQgaXMgdGhlcmUgdG8gaGFuZGxlIHNodXRkb3duIHJlcXVlc3Rz
ICh3aGljaCBjYW4gb25seSBiZSBpbml0aWF0ZWQgZnJvbSB1c2VyIHNwYWNlIGluIFdpbmRvd3Mp
IGFuZCB0byByZXNldCB0aGUgVk0gdGltZSB3aGVuIGNvbWluZyBiYWNrIGZyb20gc3VzcGVuZCAo
b3RoZXJ3aXNlIHRoZSBSVEMgd2lsbCBkcmlmdCkuDQoNCj4gVm13YXJlIGhhcw0KPiBhIGxvdCBv
ZiB1c2VyIG1vZGUgc2VydmljZSB0byBpbXByb3ZlIHRoZSB3aW5kb3dzIGV4cGVyaWVuY2UuDQo+
IE1heSBJIGtub3cgaG93IEFtYXpvbiBhbmQgSW52aXNpYmxlIHRoaW5ncyBsYWJzIGNvLXdvcmsg
d2l0aCB5b3Ugb24gDQo+IHRoaXMgcHJvamVjdD8gRG8gd2UgaGF2ZSBkaXNjdXNzaW9uIG1lZXRp
bmc/IEh1YXdlaSB3b3VsZCBsaWtlIGJ1aWxkIA0KPiB0aGUgc2FtZSByZWxhdGlvbnNoaXAgd2l0
aCB5b3VyIHRlYW0gb24gdGhpcyBwcm9qZWN0IGFzIEFtYXpvbiBhbmQgDQo+IEludmlzaWJsZSB0
aGluZ3MgbGFiIGRpZC4NCj4gDQoNClRoZSBwcm9qZWN0IGlzIG5vdCBiaWcgZW5vdWdoIHRvIHdh
cnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNvIGRpc2N1c3Npb25zIGFyZSB2aWEgZW1haWwg
dG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBDb250cmlidXRpb25zIHNob3VsZCBiZSBtYWRlIHVz
aW5nIHRoZSBzYW1lIG1vZGVsIGFzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIGh5cGVydmlzb3IgKGku
ZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBnaXQgc2VuZC1lbWFpbCkuDQpEbyB5b3UgaGF2ZSBhbnkg
cGFydGljdWxhciBwcm9qZWN0cyBpbiBtaW5kIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gd29yayBv
bj8NCg0KQ2hlZXJzLA0KDQogICAgUGF1bA0KDQo+IA0KPiANCj4gDQo+IC0tLS0t6YKu5Lu25Y6f
5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBQYXVsIER1cnJhbnQgW21haWx0bzpQYXVsLkR1cnJhbnRA
Y2l0cml4LmNvbV0NCj4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQo+IOaU
tuS7tuS6ujogZ2Fvd2VpIChZKTsgUGF1bCBEdXJyYW50DQo+IOaKhOmAgTogd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IOS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBWIGRyaXZl
ciBxdWVzdGlvbnMNCj4gDQo+IERlLWh0bWxpbmcuLi4NCj4gDQo+IEZyb206IGdhb3dlaSAoWSkg
W21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiBTZW50OiAxNyBNYXkgMjAxNiAxMDoxMA0K
PiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gQ2M6IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rp
b25zDQo+IA0KPiBIZWxsbyBQYXVsDQo+IA0KPiBUaGlzIGlzIFdheW5lIEdhbyBmcm9tIEh1YXdl
aS4gTmljZSB0byB0YWxrIHdpdGggeW91LiBJIGhhdmUgY291cGxlcyANCj4gb2YgdGVjaG5pY2Fs
IHF1ZXN0aW9ucyByZWdhcmRpbmcgd2l0aCBYZW4gd2luZG93cyBQViBkcml2ZXJzLg0KPiBDb3Vs
ZCB5b3UgcGxlYXNlIHRha2UgYSB0aW1lIHRvIGhlbHA/IFJlYWxseSBhcHByZWNpYXRlIHlvdXIg
aGVscCF+DQo+IA0KPiAxLiBNYXkgSSBrbm93IGlmIHRoZSBsYXRlc3Qgd2luZG93cyBQViBvcGVu
IHNvdXJjZSBjb2RlIGNhbiBwYXNzIHRoZSANCj4gV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQg
Z2V0IGRyaXZlciBzaWduZWQ/DQo+IA0KPiA+IFllcy4gVGhlIFhlblNlcnZlciBQViBkcml2ZXJz
IGFyZSBiYXNlZCBvbiB0aGlzIHNvdXJjZSB3aXRoIG9ubHkgDQo+ID4gc21hbGwNCj4gY29tcGF0
aWJpbGl0eSBwYXRjaGVzLg0KPiAJV2F5bmU6IGRpZCBDaXRyaXggb3BlbiBzb3VyY2UgdGhlIHNt
YWxsIGNvbXBhdGliaWxpdHkgcGF0Y2hlcyB0aGF0IA0KPiBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYg
ZHJpdmVycyBwYXNzIHRoZSBXSENLPw0KPiANCj4gMi4gRnJvbSB0aGUgaG9tZSBwYWdlLCBJIHNl
ZSB0aGVyZSBpcyBhIHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzIA0KPiB1cGRhdGUuIE1heSBJIGtu
b3cgaG93IHRoaXMgaXMgZ29pbmcgb24/IEFueSBwbGFuIHRvIG1ha2UgaXQgaGFwcGVuLiANCj4g
QW5vdGhlciBhcHByb2FjaCBpcyB0aGF0IE1pY3Jvc29mdCBhbGxvdyBzZW1pY29uZHVjdG9yIGNv
bXBhbnkgZGVsaXZlciANCj4gaW5ib3ggZHJpdmVyLiBEbyB3ZSBoYXZlIHRoaXMgcGxhbj8NCj4g
DQo+ID4gVGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9u
IFdpbmRvd3MgVXBkYXRlIA0KPiA+IHNvIGlmDQo+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJp
YXRlIFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbCANCj4gZG93bmxvYWQgYW5kIGlu
c3RhbGwuIFhlblByb2plY3QgYnJhbmRlZCBkcml2ZXJzIHdpbGwgbm90IGdvIG9udG8gV2luZG93
cyBVcGRhdGUuDQo+IAlXYXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBn
byBpbnRvIHdpbmRvd3MgaW5ib3ggcGxhbj8gDQo+IEJ1dCBYZW5TZXJ2ZXIgYWxyZWFkeSBqb2lu
IGluIHRoZSB3aW5kb3dzIHVwZGF0ZSBwbGFuIHNvIHRoYXQgYW55IA0KPiB3aW5kb3dzIFBWIGRy
aXZlciB1cGRhdGUgY2FuIGdvIGFsb25nIHdpdGggdGhlIHN0YW5kYXJkIHdpbmRvd3MgdXBkYXRl
IA0KPiBwcm9jZXNzPw0KPiANCj4gMy4gSSBzYXcgaW4gY3VycmVudCB3aW4gUFYgZHJpdmVyLCB3
ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMgDQo+IHRvIGNvbXBsZXRlIHRoZSBkdW1w
LiBCdXQgd2luZG93cyBhY3R1YWxseSBoYXMgdGhlIGZ1bmN0aW9uIGp1c3QgcmV1c2UgDQo+IHRo
ZSBvcmlnaW5hbCBzdG9ycG9ydCBtaW5pcG9ydCBkcml2ZXIgdG8gY29tcGxldGUgdGhlIGR1bXAu
IE1pY3Jvc29mdCANCj4gc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQgdGhpcyB3YXkgdG9vLiBN
YXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCANCj4gcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBu
ZXcgZHJpdmVyPw0KPiANCj4gPiBUaGUgY3Jhc2gga2VybmVsIGVudmlyb25tZW50IGlzIHF1aXRl
IGRpZmZlcmVudCB0byBhIG5vcm1hbCBrZXJuZWwNCj4gZW52aXJvbm1lbnQuIFRoZSB4ZW5jcnNo
IGRyaXZlciBpcyBhY3R1YWxseSBsaW5rZWQgaW50byB0aGUgbm9ybWFsIA0KPiB4ZW52YmQgc3Rv
cnBvcnQgZHJpdmVyIGJ1dCBvbmx5IGFjdGl2YXRlcyB3aGVuIGluIHRoZSBjcmFzaCBrZXJuZWwg
DQo+IGVudmlyb25tZW50LiBJdCB0aGVuIGFjdGl2YXRlcyBhcyB0aGUgc3RvcmFnZSBkcml2ZXIg
YW5kIHVzZXMgaXRzIG93biANCj4gcHJpdmF0ZSBpbnRlcmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFu
ZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1hbCANCj4geGVuYnVzIHByb3ZpZGVkIEFQ
SXMgYXJlIG5vdCBhdmFpbGFibGUpLg0KPiANCj4gNC4gSSBzYXcgdGhlcmUgaXMgb25lIHN0b3Jh
Z2UgZmlsdGVyIGRyaXZlciB0aGF0IGlzIGFib3ZlIHRoZSANCj4gc3RvcnBvcnQuIE1pY3Jvc29m
dCBXSENLIGRvY3VtZW50IHVzZWQgdG8gbWVudGlvbiBNUyBkbyBub3QgbGlrZSBhbnkgZmlsdGVy
IGFib3ZlIHN0b3Jwb3J0Lg0KPiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbCByZWFzb24gdGhh
dCB3ZSBjaG9vc2UgYWRkIGZpbHRlciBkcml2ZXJzIA0KPiBpbnRvIHRoZSBhcmNoaXRlY3R1cmU/
DQo+IA0KPiA+IFRoZXJlIGlzIGEgZmlsdGVyIGRyaXZlciBjYWxsZWQgeGVuZGlzayB0aGF0IHNp
dHMgYWJvdmUgdGhlIHN0b3Jwb3J0IA0KPiA+IFBET3MuIEl0DQo+IHNlcnZlcyBvbmx5IHRvIGlu
dGVyY2VwdCB0aGUgSVJQcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCB0cmltL2Rpc2NhcmQuIA0KPiBO
ZXdlciB2ZXJzaW9ucyBvZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBi
dXQgdGhlIA0KPiBkcml2ZXJzIGNhbm5vdCBtYWtlIHVzZSBvZiBuZXdlciBzdG9ycG9ydCBhcyB0
aGV5IGFyZSBkZXNpZ25lZCB0byANCj4gZnVuY3Rpb24gb24gb2xkZXIgdmVyc2lvbnMgb2YgV2lu
ZG93cy4NCj4gDQo+IEN1cnJlbnRseSwgd2Ugc2F3IGFsbCBkZXZlbG9wZXJzIGFyZSBmcm9tIENp
dHJpeC4gTWF5IEkga25vdyBpZiBIdWF3ZWkgDQo+IGNhbiBjb250cmlidXRlIG9uIHRoaXMgcHJv
amVjdCB0b28/DQo+IA0KPiA+IEFic29sdXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5
IGJlZW4gbWFkZSBieSBJbnZpc2libGUgVGhpbmdzIA0KPiA+IExhYnMNCj4gYW5kIEFtYXpvbiBz
byBJJ2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4g
Q2hlZXJzLA0KPiA+DQo+ID4gICBQYXVsDQo+IA0KPiBUaGFuayB5b3Ugc28gbXVjaCBhZ2FpbiBm
b3IgeW91ciBoZWxwIX4NCj4gDQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 09:26:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 09:26:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2xk5-0001uC-44; Wed, 18 May 2016 09:26:13 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2xk4-0001u6-H9
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 09:26:12 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 6A/88-09532-3353C375; Wed, 18 May 2016 09:26:11 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQtfI1Cb
 c4OILa4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfr1WdaCqUEV89ZdZmlg7AnsYuTkkBDwk7j/
 4h8jiM0moCOx9Oh8JhBbRMBTYtGd+axdjFwczALzmCSmTd/CCpIQBirq/b2ZEaJIV2LD3X3ME
 LafxKHFLexdjBwcLAKqEnvfKoOEeQXcJc6//sMGMkdIYBGzxP/u22C9nAJhEvfev2UBsRkFZC
 W+NK4Gm8MsIC5x6wnEERICAhJL9pxnhrBFJV4+/scKYRtIbF26jwVkF7OApsT6XfoQrYoSU7o
 fskPsFZQ4OfMJ2HghARWJLY8PQI3hllj5+Q/LBEbRWUi2zUKYNAvJpFlIJi1gZFnFqF6cWlSW
 WqRrrJdUlJmeUZKbmJmja2hgppebWlycmJ6ak5hUrJecn7uJERgnDECwg7Hjn9MhRkkOJiVR3
 q3yNuFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHjtTIBygkWp6akVaZk5wIiFSUtw8CiJ8MaDpH
 mLCxJzizPTIVKnGBWlxHl1QBICIImM0jy4NliSuMQoKyXMywh0iBBPQWpRbmYJqvwrRnEORiV
 h3kSQKTyZeSVw018BLWYCWnxLDGxxSSJCSqqBcXH+01nJPxjrV8/mmtbYfN0+n7HqSxPvQb0H
 pQbbNq/v+NW24FC0s4DUg/um1V/qz84Vn6JTelnRufb2iWfzOb8/DPnxubglkH2rbvLMM1OS7
 zsZBtYcYgwvOnfuqliGldcX93ciNtJRSw+8WvhhF9On2KDlcq+jO9ttd5zZ/Xe+edS24IObRZ
 VYijMSDbWYi4oTAYqw9i8NAwAA
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1463563570!14678643!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 55556 invoked from network); 18 May 2016 09:26:10 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 09:26:10 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; d="scan'208";a="22149899"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3QgACX4wCAAIYqEP//46SAgAAuDlA=
Date: Wed, 18 May 2016 09:25:57 +0000
Message-ID: <5c1f0fb000354b67b651e6a05e6f2796@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
 <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86
Z2Fvd2VpMTdAaHVhd2VpLmNvbV0NCj4gU2VudDogMTggTWF5IDIwMTYgMDk6MjgNCj4gVG86IFBh
dWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmc7IExpdXlpbmdkb25nOyBMaW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkp
OyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiBTdWJqZWN0OiDnrZTlpI06IFhlbiB3
aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IFRoYW5rIHlvdSBzbyBtdWNoISBCdWRk
eS4NCj4gDQo+IFRoZXJlIGFyZSBzdGlsbCB0d28gcXVlc3Rpb25zIGluIGJlbG93OiBJIGFtIHNv
cnJ5IHRoYXQgSSBkaWQgbm90IG1ha2UgaXQgdmVyeQ0KPiBjbGVhci4NCj4gDQo+IFdheW5lOiBk
aWQgQ2l0cml4IG9wZW4gc291cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5IHBhdGNoZXMgdGhh
dCBtYWtlIHRoZQ0KPiBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENLPyBDYW4gdGhl
IG9wZW4gc291cmNlIGxhdGVzdCBjb2RlIHBhc3MNCj4gdGhlIFdIQ0sgZGlyZWN0bHkgd2l0aG91
dCBhbnkgQ2l0cml4IGludGVybmFsIHBhdGNoPw0KPiANCg0KWWVzLiBUaGUgWGVuU2VydmVyIHBh
dGNoZXMgc2hvdWxkIG5vdCBhZmZlY3QgSENLIHRlc3RpbmcgaW4gYW55IHdheS4gVGhlIFhlblBy
b2plY3QgZHJpdmVycyBzaG91bGQgcGFzcyBsb2dvIHRlc3RzIHdpdGhvdXQgdGhlbS4NCg0KPiBX
YXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBpbnRvIHdpbmRvd3Mg
aW5ib3ggcGxhbj8gQnV0DQo+IFhlblNlcnZlciBhbHJlYWR5IGpvaW4gaW4gdGhlIHdpbmRvd3Mg
dXBkYXRlIHBsYW4gc28gdGhhdCBhbnkgd2luZG93cyBQVg0KPiBkcml2ZXIgdXBkYXRlIGNhbiBn
byBhbG9uZyB3aXRoIHRoZSBzdGFuZGFyZCB3aW5kb3dzIHVwZGF0ZSBwcm9jZXNzPyBJIGFtDQo+
IHNvcnJ5IHRvIGFzayBkb3VibGUgY29uZmlybSBzaW5jZSB5b3VyIG9yaWdpbmFsIGFuc3dlciBz
ZWVtcyBjb25mbGljdC4NCj4gDQoNCkdldHRpbmcgZHJpdmVycyBvbnRvIFdpbmRvd3MgVXBkYXRl
IGlzIGEgcHJlLXJlcXVpc2l0ZSB0byBnZXR0aW5nIHRoZW0gaW4tYm94IGFzIEkgdW5kZXJzdGFu
ZCBpdCBhbmQgWGVuU2VydmVyIGhhcyBub3cgbWFkZSB0aGF0IHN0ZXAuIElmIFhlblNlcnZlciBk
b2VzIGRlY2lkZSB0byBwdXJzdWUgZ2V0dGluZyB0aGUgZHJpdmVycyBpbi1ib3ggdGhvdWdoIHRo
ZW4gdGhhdCBpcyBhIGJ1c2luZXNzIGRlY2lzaW9uIGZvciBDaXRyaXggdG8gbWFrZSBhbmQgZG9l
cyBub3QgaGF2ZSBhbnkgYmVhcmluZyBvbiB0aGUgb3BlbiBzb3VyY2UgcHJvamVjdC4NCg0KPiAN
Cj4gPT15b3VyIG9yaWdpbmFsIGFuc3dlciBzZWVtcyBjb25mbGljdD09PQ0KPiA+ID4gVGhlIFhl
blNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBk
YXRlDQo+ID4gPiBzbyBpZg0KPiA+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRl
dmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbA0KPiA+IGRvd25sb2FkIGFuZCBpbnN0YWxsLiBY
ZW5Qcm9qZWN0IGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MNCj4gVXBk
YXRlLg0KPiANCg0KUmVtZW1iZXIgdGhhdCBYZW5TZXJ2ZXIgaGFzIGJyYW5kZWQgYnVpbGRzIG9m
IHRoZSBYZW4gUHJvamVjdCBkcml2ZXIgc291cmNlIGFuZCBpdCBpcyB0aG9zZSBicmFuZGVkIGJ1
aWxkcyB0aGF0IGFyZSBvbiBXaW5kb3dzIFVwZGF0ZS4gVGhlIFhlbiBQcm9qZWN0IGJyYW5kZWQg
YnVpbGRzIC0gaS5lLiB0aG9zZSBidWlsdCBieSB0aGUgdXBzdHJlYW0gYnVpbGQgVk0gLSBhcmUg
bm90IEhDSyB0ZXN0ZWQgYW5kIHRoZXJlZm9yZSBhcmUgbm90IGVsaWdpYmxlIGZvciBXaW5kb3dz
IFVwZGF0ZS4NCg0KRG9lcyB0aGF0IG1ha2UgbW9yZSBzZW5zZT8NCg0KICBQYXVsIA0KDQo+IA0K
PiANCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IFBhdWwgRHVycmFudCBb
bWFpbHRvOlBhdWwuRHVycmFudEBjaXRyaXguY29tXQ0KPiDlj5HpgIHml7bpl7Q6IDIwMTblubQ1
5pyIMTjml6UgMTY6MjANCj4g5pS25Lu25Lq6OiBnYW93ZWkgKFkpOyBQYXVsIER1cnJhbnQNCj4g
5oqE6YCBOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IExpdXlpbmdkb25nOyBM
aW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkpOyBsaXhpYW8gKEgpOyBIdWFuZ3Blbmcg
KFBldGVyKQ0KPiDkuLvpopg6IFJFOiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQo+
IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZ2Fvd2VpIChZKSBb
bWFpbHRvOmdhb3dlaTE3QGh1YXdlaS5jb21dDQo+ID4gU2VudDogMTggTWF5IDIwMTYgMDM6MTAN
Cj4gPiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gPiBDYzogd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnOyBMaXV5aW5nZG9uZzsgTGlucWlhbmdtaW47DQo+ID4gSGFu
d2VpZG9uZyAoUmFuZHkpOyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiA+IFN1Ympl
Y3Q6IOetlOWkjTogWGVuIHdpbmRvd3MgUFYgZHJpdmVyIHF1ZXN0aW9ucw0KPiA+DQo+ID4gVGhh
bmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KPiA+DQo+ID4gQ291bGQgeW91IHBs
ZWFzZSBoZWxwIGNsYXJpZnkgYSBsaXR0bGUgbW9yZT8gQ291bGQgeW91IHBsZWFzZSBzZWUNCj4g
PiBpbmxpbmUgYmVsb3c/DQo+ID4NCj4gPiBBbHNvIFhlblNldmVyIFBWIGN1cnJlbnRseSBkbyBu
b3QgaGF2ZSBhbnkgdXNlciBtb2RlIHNlcnZpY2U/DQo+IA0KPiBYZW5TZXJ2ZXIgaGFzIGEgJ2d1
ZXN0IGFnZW50JyBydW5uaW5nIGluIGVhY2ggVk0gdG8gcHJvdmlkZSBtZXRyaWNzLCBjb250cm9s
DQo+IGNlcnRhaW4gZmVhdHVyZXMsIGV0Yy4gVGhhdCBhZ2VudCBpcyBYZW5TZXJ2ZXIgc3BlY2lm
aWMuIFRoZXJlIGlzIGFsc28gYW5vdGhlcg0KPiBhZ2VudCBpbnN0YWxsZWQgYWxvbmdzaWRlIHRo
ZSBYRU5JRkFDRSBkcml2ZXIgd2hpY2ggaXMgbm90IHNwZWNpZmljIHRvDQo+IFhlblNlcnZlciBi
cmFuZGVkIGJ1aWxkcy4gVGhpcyBhZ2VudCBpcyB0aGVyZSB0byBoYW5kbGUgc2h1dGRvd24gcmVx
dWVzdHMNCj4gKHdoaWNoIGNhbiBvbmx5IGJlIGluaXRpYXRlZCBmcm9tIHVzZXIgc3BhY2UgaW4g
V2luZG93cykgYW5kIHRvIHJlc2V0IHRoZQ0KPiBWTSB0aW1lIHdoZW4gY29taW5nIGJhY2sgZnJv
bSBzdXNwZW5kIChvdGhlcndpc2UgdGhlIFJUQyB3aWxsIGRyaWZ0KS4NCj4gDQo+ID4gVm13YXJl
IGhhcw0KPiA+IGEgbG90IG9mIHVzZXIgbW9kZSBzZXJ2aWNlIHRvIGltcHJvdmUgdGhlIHdpbmRv
d3MgZXhwZXJpZW5jZS4NCj4gPiBNYXkgSSBrbm93IGhvdyBBbWF6b24gYW5kIEludmlzaWJsZSB0
aGluZ3MgbGFicyBjby13b3JrIHdpdGggeW91IG9uDQo+ID4gdGhpcyBwcm9qZWN0PyBEbyB3ZSBo
YXZlIGRpc2N1c3Npb24gbWVldGluZz8gSHVhd2VpIHdvdWxkIGxpa2UgYnVpbGQNCj4gPiB0aGUg
c2FtZSByZWxhdGlvbnNoaXAgd2l0aCB5b3VyIHRlYW0gb24gdGhpcyBwcm9qZWN0IGFzIEFtYXpv
biBhbmQNCj4gPiBJbnZpc2libGUgdGhpbmdzIGxhYiBkaWQuDQo+ID4NCj4gDQo+IFRoZSBwcm9q
ZWN0IGlzIG5vdCBiaWcgZW5vdWdoIHRvIHdhcnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNv
IGRpc2N1c3Npb25zDQo+IGFyZSB2aWEgZW1haWwgdG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBD
b250cmlidXRpb25zIHNob3VsZCBiZSBtYWRlIHVzaW5nIHRoZQ0KPiBzYW1lIG1vZGVsIGFzIGNv
bnRyaWJ1dGlvbnMgdG8gdGhlIGh5cGVydmlzb3IgKGkuZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBn
aXQNCj4gc2VuZC1lbWFpbCkuDQo+IERvIHlvdSBoYXZlIGFueSBwYXJ0aWN1bGFyIHByb2plY3Rz
IGluIG1pbmQgdGhhdCB5b3Ugd291bGQgbGlrZSB0byB3b3JrIG9uPw0KPiANCj4gQ2hlZXJzLA0K
PiANCj4gICAgIFBhdWwNCj4gDQo+ID4NCj4gPg0KPiA+DQo+ID4gLS0tLS3pgq7ku7bljp/ku7Yt
LS0tLQ0KPiA+IOWPkeS7tuS6ujogUGF1bCBEdXJyYW50IFttYWlsdG86UGF1bC5EdXJyYW50QGNp
dHJpeC5jb21dDQo+ID4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQo+ID4g
5pS25Lu25Lq6OiBnYW93ZWkgKFkpOyBQYXVsIER1cnJhbnQNCj4gPiDmioTpgIE6IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IOS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBW
IGRyaXZlciBxdWVzdGlvbnMNCj4gPg0KPiA+IERlLWh0bWxpbmcuLi4NCj4gPg0KPiA+IEZyb206
IGdhb3dlaSAoWSkgW21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiA+IFNlbnQ6IDE3IE1h
eSAyMDE2IDEwOjEwDQo+ID4gVG86IFBhdWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+ID4gQ2M6
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IFN1YmplY3Q6IFhlbiB3aW5k
b3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gPg0KPiA+IEhlbGxvIFBhdWwNCj4gPg0KPiA+IFRo
aXMgaXMgV2F5bmUgR2FvIGZyb20gSHVhd2VpLiBOaWNlIHRvIHRhbGsgd2l0aCB5b3UuIEkgaGF2
ZSBjb3VwbGVzDQo+ID4gb2YgdGVjaG5pY2FsIHF1ZXN0aW9ucyByZWdhcmRpbmcgd2l0aCBYZW4g
d2luZG93cyBQViBkcml2ZXJzLg0KPiA+IENvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIHRpbWUgdG8g
aGVscD8gUmVhbGx5IGFwcHJlY2lhdGUgeW91ciBoZWxwIX4NCj4gPg0KPiA+IDEuIE1heSBJIGtu
b3cgaWYgdGhlIGxhdGVzdCB3aW5kb3dzIFBWIG9wZW4gc291cmNlIGNvZGUgY2FuIHBhc3MgdGhl
DQo+ID4gV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQo+ID4N
Cj4gPiA+IFllcy4gVGhlIFhlblNlcnZlciBQViBkcml2ZXJzIGFyZSBiYXNlZCBvbiB0aGlzIHNv
dXJjZSB3aXRoIG9ubHkNCj4gPiA+IHNtYWxsDQo+ID4gY29tcGF0aWJpbGl0eSBwYXRjaGVzLg0K
PiA+IAlXYXluZTogZGlkIENpdHJpeCBvcGVuIHNvdXJjZSB0aGUgc21hbGwgY29tcGF0aWJpbGl0
eSBwYXRjaGVzIHRoYXQNCj4gPiBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRo
ZSBXSENLPw0KPiA+DQo+ID4gMi4gRnJvbSB0aGUgaG9tZSBwYWdlLCBJIHNlZSB0aGVyZSBpcyBh
IHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzDQo+ID4gdXBkYXRlLiBNYXkgSSBrbm93IGhvdyB0aGlz
IGlzIGdvaW5nIG9uPyBBbnkgcGxhbiB0byBtYWtlIGl0IGhhcHBlbi4NCj4gPiBBbm90aGVyIGFw
cHJvYWNoIGlzIHRoYXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxp
dmVyDQo+ID4gaW5ib3ggZHJpdmVyLiBEbyB3ZSBoYXZlIHRoaXMgcGxhbj8NCj4gPg0KPiA+ID4g
VGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRv
d3MgVXBkYXRlDQo+ID4gPiBzbyBpZg0KPiA+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRl
IFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbA0KPiA+IGRvd25sb2FkIGFuZCBpbnN0
YWxsLiBYZW5Qcm9qZWN0IGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MN
Cj4gVXBkYXRlLg0KPiA+IAlXYXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5v
dCBnbyBpbnRvIHdpbmRvd3MgaW5ib3gNCj4gcGxhbj8NCj4gPiBCdXQgWGVuU2VydmVyIGFscmVh
ZHkgam9pbiBpbiB0aGUgd2luZG93cyB1cGRhdGUgcGxhbiBzbyB0aGF0IGFueQ0KPiA+IHdpbmRv
d3MgUFYgZHJpdmVyIHVwZGF0ZSBjYW4gZ28gYWxvbmcgd2l0aCB0aGUgc3RhbmRhcmQgd2luZG93
cyB1cGRhdGUNCj4gPiBwcm9jZXNzPw0KPiA+DQo+ID4gMy4gSSBzYXcgaW4gY3VycmVudCB3aW4g
UFYgZHJpdmVyLCB3ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMNCj4gPiB0byBjb21w
bGV0ZSB0aGUgZHVtcC4gQnV0IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0
IHJldXNlDQo+ID4gdGhlIG9yaWdpbmFsIHN0b3Jwb3J0IG1pbmlwb3J0IGRyaXZlciB0byBjb21w
bGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0DQo+ID4gc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQg
dGhpcyB3YXkgdG9vLiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbA0KPiA+IHJlYXNvbiB0aGF0
IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj8NCj4gPg0KPiA+ID4gVGhlIGNyYXNoIGtlcm5lbCBl
bnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJlbnQgdG8gYSBub3JtYWwga2VybmVsDQo+ID4gZW52
aXJvbm1lbnQuIFRoZSB4ZW5jcnNoIGRyaXZlciBpcyBhY3R1YWxseSBsaW5rZWQgaW50byB0aGUg
bm9ybWFsDQo+ID4geGVudmJkIHN0b3Jwb3J0IGRyaXZlciBidXQgb25seSBhY3RpdmF0ZXMgd2hl
biBpbiB0aGUgY3Jhc2gga2VybmVsDQo+ID4gZW52aXJvbm1lbnQuIEl0IHRoZW4gYWN0aXZhdGVz
IGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBpdHMgb3duDQo+ID4gcHJpdmF0ZSBpbnRl
cmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFuZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1h
bA0KPiA+IHhlbmJ1cyBwcm92aWRlZCBBUElzIGFyZSBub3QgYXZhaWxhYmxlKS4NCj4gPg0KPiA+
IDQuIEkgc2F3IHRoZXJlIGlzIG9uZSBzdG9yYWdlIGZpbHRlciBkcml2ZXIgdGhhdCBpcyBhYm92
ZSB0aGUNCj4gPiBzdG9ycG9ydC4gTWljcm9zb2Z0IFdIQ0sgZG9jdW1lbnQgdXNlZCB0byBtZW50
aW9uIE1TIGRvIG5vdCBsaWtlIGFueQ0KPiBmaWx0ZXIgYWJvdmUgc3RvcnBvcnQuDQo+ID4gTWF5
IEkga25vdyB3aGF0IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIg
ZHJpdmVycw0KPiA+IGludG8gdGhlIGFyY2hpdGVjdHVyZT8NCj4gPg0KPiA+ID4gVGhlcmUgaXMg
YSBmaWx0ZXIgZHJpdmVyIGNhbGxlZCB4ZW5kaXNrIHRoYXQgc2l0cyBhYm92ZSB0aGUgc3RvcnBv
cnQNCj4gPiA+IFBET3MuIEl0DQo+ID4gc2VydmVzIG9ubHkgdG8gaW50ZXJjZXB0IHRoZSBJUlBz
IG5lY2Vzc2FyeSB0byBzdXBwb3J0IHRyaW0vZGlzY2FyZC4NCj4gPiBOZXdlciB2ZXJzaW9ucyBv
ZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlDQo+ID4gZHJp
dmVycyBjYW5ub3QgbWFrZSB1c2Ugb2YgbmV3ZXIgc3RvcnBvcnQgYXMgdGhleSBhcmUgZGVzaWdu
ZWQgdG8NCj4gPiBmdW5jdGlvbiBvbiBvbGRlciB2ZXJzaW9ucyBvZiBXaW5kb3dzLg0KPiA+DQo+
ID4gQ3VycmVudGx5LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkg
SSBrbm93IGlmIEh1YXdlaQ0KPiA+IGNhbiBjb250cmlidXRlIG9uIHRoaXMgcHJvamVjdCB0b28/
DQo+ID4NCj4gPiA+IEFic29sdXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4g
bWFkZSBieSBJbnZpc2libGUgVGhpbmdzDQo+ID4gPiBMYWJzDQo+ID4gYW5kIEFtYXpvbiBzbyBJ
J2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4gPiBD
aGVlcnMsDQo+ID4gPg0KPiA+ID4gICBQYXVsDQo+ID4NCj4gPiBUaGFuayB5b3Ugc28gbXVjaCBh
Z2FpbiBmb3IgeW91ciBoZWxwIX4NCj4gPg0KPiA+DQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 09:26:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 09:26:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2xk5-0001uC-44; Wed, 18 May 2016 09:26:13 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2xk4-0001u6-H9
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 09:26:12 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 6A/88-09532-3353C375; Wed, 18 May 2016 09:26:11 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQtfI1Cb
 c4OILa4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfr1WdaCqUEV89ZdZmlg7AnsYuTkkBDwk7j/
 4h8jiM0moCOx9Oh8JhBbRMBTYtGd+axdjFwczALzmCSmTd/CCpIQBirq/b2ZEaJIV2LD3X3ME
 LafxKHFLexdjBwcLAKqEnvfKoOEeQXcJc6//sMGMkdIYBGzxP/u22C9nAJhEvfev2UBsRkFZC
 W+NK4Gm8MsIC5x6wnEERICAhJL9pxnhrBFJV4+/scKYRtIbF26jwVkF7OApsT6XfoQrYoSU7o
 fskPsFZQ4OfMJ2HghARWJLY8PQI3hllj5+Q/LBEbRWUi2zUKYNAvJpFlIJi1gZFnFqF6cWlSW
 WqRrrJdUlJmeUZKbmJmja2hgppebWlycmJ6ak5hUrJecn7uJERgnDECwg7Hjn9MhRkkOJiVR3
 q3yNuFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHjtTIBygkWp6akVaZk5wIiFSUtw8CiJ8MaDpH
 mLCxJzizPTIVKnGBWlxHl1QBICIImM0jy4NliSuMQoKyXMywh0iBBPQWpRbmYJqvwrRnEORiV
 h3kSQKTyZeSVw018BLWYCWnxLDGxxSSJCSqqBcXH+01nJPxjrV8/mmtbYfN0+n7HqSxPvQb0H
 pQbbNq/v+NW24FC0s4DUg/um1V/qz84Vn6JTelnRufb2iWfzOb8/DPnxubglkH2rbvLMM1OS7
 zsZBtYcYgwvOnfuqliGldcX93ciNtJRSw+8WvhhF9On2KDlcq+jO9ttd5zZ/Xe+edS24IObRZ
 VYijMSDbWYi4oTAYqw9i8NAwAA
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1463563570!14678643!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
 MAILTO_TO_SPAM_ADDR,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 55556 invoked from network); 18 May 2016 09:26:10 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 09:26:10 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; d="scan'208";a="22149899"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "gaowei (Y)" <gaowei17@huawei.com>, Paul Durrant <pdurrant@gmail.com>
Thread-Topic: Xen windows PV driver questions
Thread-Index: AQHRsBxW+ZBsI21qTUa2zShFfh2M+p+9Ow3QgACX4wCAAIYqEP//46SAgAAuDlA=
Date: Wed, 18 May 2016 09:25:57 +0000
Message-ID: <5c1f0fb000354b67b651e6a05e6f2796@AMSPEX02CL03.citrite.net>
References: <1463046600-10940-1-git-send-email-paul.durrant@citrix.com>
 <1087C473D86967468DC48EEFC72AAC0220BB4411@SZXEMI506-MBX.china.huawei.com>
 <91c6337e74ea439d825e67c59033e62b@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB44E3@SZXEMI506-MBX.china.huawei.com>
 <9b4b354d932e4a9a892783dc31df61ae@AMSPEX02CL03.citrite.net>
 <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
In-Reply-To: <1087C473D86967468DC48EEFC72AAC0220BB46AB@SZXEMI506-MBX.china.huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "Hanweidong \(Randy\)" <hanweidong@huawei.com>,
 Linqiangmin <linqiangmin@huawei.com>,
 "Huangpeng \(Peter\)" <peter.huangpeng@huawei.com>,
 Liuyingdong <liuyingdong@huawei.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "lixiao \(H\)" <lixiao91@huawei.com>
Subject: Re: [win-pv-devel] Xen windows PV driver questions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW93ZWkgKFkpIFttYWlsdG86
Z2Fvd2VpMTdAaHVhd2VpLmNvbV0NCj4gU2VudDogMTggTWF5IDIwMTYgMDk6MjgNCj4gVG86IFBh
dWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmc7IExpdXlpbmdkb25nOyBMaW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkp
OyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiBTdWJqZWN0OiDnrZTlpI06IFhlbiB3
aW5kb3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gDQo+IFRoYW5rIHlvdSBzbyBtdWNoISBCdWRk
eS4NCj4gDQo+IFRoZXJlIGFyZSBzdGlsbCB0d28gcXVlc3Rpb25zIGluIGJlbG93OiBJIGFtIHNv
cnJ5IHRoYXQgSSBkaWQgbm90IG1ha2UgaXQgdmVyeQ0KPiBjbGVhci4NCj4gDQo+IFdheW5lOiBk
aWQgQ2l0cml4IG9wZW4gc291cmNlIHRoZSBzbWFsbCBjb21wYXRpYmlsaXR5IHBhdGNoZXMgdGhh
dCBtYWtlIHRoZQ0KPiBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRoZSBXSENLPyBDYW4gdGhl
IG9wZW4gc291cmNlIGxhdGVzdCBjb2RlIHBhc3MNCj4gdGhlIFdIQ0sgZGlyZWN0bHkgd2l0aG91
dCBhbnkgQ2l0cml4IGludGVybmFsIHBhdGNoPw0KPiANCg0KWWVzLiBUaGUgWGVuU2VydmVyIHBh
dGNoZXMgc2hvdWxkIG5vdCBhZmZlY3QgSENLIHRlc3RpbmcgaW4gYW55IHdheS4gVGhlIFhlblBy
b2plY3QgZHJpdmVycyBzaG91bGQgcGFzcyBsb2dvIHRlc3RzIHdpdGhvdXQgdGhlbS4NCg0KPiBX
YXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBpbnRvIHdpbmRvd3Mg
aW5ib3ggcGxhbj8gQnV0DQo+IFhlblNlcnZlciBhbHJlYWR5IGpvaW4gaW4gdGhlIHdpbmRvd3Mg
dXBkYXRlIHBsYW4gc28gdGhhdCBhbnkgd2luZG93cyBQVg0KPiBkcml2ZXIgdXBkYXRlIGNhbiBn
byBhbG9uZyB3aXRoIHRoZSBzdGFuZGFyZCB3aW5kb3dzIHVwZGF0ZSBwcm9jZXNzPyBJIGFtDQo+
IHNvcnJ5IHRvIGFzayBkb3VibGUgY29uZmlybSBzaW5jZSB5b3VyIG9yaWdpbmFsIGFuc3dlciBz
ZWVtcyBjb25mbGljdC4NCj4gDQoNCkdldHRpbmcgZHJpdmVycyBvbnRvIFdpbmRvd3MgVXBkYXRl
IGlzIGEgcHJlLXJlcXVpc2l0ZSB0byBnZXR0aW5nIHRoZW0gaW4tYm94IGFzIEkgdW5kZXJzdGFu
ZCBpdCBhbmQgWGVuU2VydmVyIGhhcyBub3cgbWFkZSB0aGF0IHN0ZXAuIElmIFhlblNlcnZlciBk
b2VzIGRlY2lkZSB0byBwdXJzdWUgZ2V0dGluZyB0aGUgZHJpdmVycyBpbi1ib3ggdGhvdWdoIHRo
ZW4gdGhhdCBpcyBhIGJ1c2luZXNzIGRlY2lzaW9uIGZvciBDaXRyaXggdG8gbWFrZSBhbmQgZG9l
cyBub3QgaGF2ZSBhbnkgYmVhcmluZyBvbiB0aGUgb3BlbiBzb3VyY2UgcHJvamVjdC4NCg0KPiAN
Cj4gPT15b3VyIG9yaWdpbmFsIGFuc3dlciBzZWVtcyBjb25mbGljdD09PQ0KPiA+ID4gVGhlIFhl
blNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRvd3MgVXBk
YXRlDQo+ID4gPiBzbyBpZg0KPiA+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRlIFBWIGRl
dmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbA0KPiA+IGRvd25sb2FkIGFuZCBpbnN0YWxsLiBY
ZW5Qcm9qZWN0IGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MNCj4gVXBk
YXRlLg0KPiANCg0KUmVtZW1iZXIgdGhhdCBYZW5TZXJ2ZXIgaGFzIGJyYW5kZWQgYnVpbGRzIG9m
IHRoZSBYZW4gUHJvamVjdCBkcml2ZXIgc291cmNlIGFuZCBpdCBpcyB0aG9zZSBicmFuZGVkIGJ1
aWxkcyB0aGF0IGFyZSBvbiBXaW5kb3dzIFVwZGF0ZS4gVGhlIFhlbiBQcm9qZWN0IGJyYW5kZWQg
YnVpbGRzIC0gaS5lLiB0aG9zZSBidWlsdCBieSB0aGUgdXBzdHJlYW0gYnVpbGQgVk0gLSBhcmUg
bm90IEhDSyB0ZXN0ZWQgYW5kIHRoZXJlZm9yZSBhcmUgbm90IGVsaWdpYmxlIGZvciBXaW5kb3dz
IFVwZGF0ZS4NCg0KRG9lcyB0aGF0IG1ha2UgbW9yZSBzZW5zZT8NCg0KICBQYXVsIA0KDQo+IA0K
PiANCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IFBhdWwgRHVycmFudCBb
bWFpbHRvOlBhdWwuRHVycmFudEBjaXRyaXguY29tXQ0KPiDlj5HpgIHml7bpl7Q6IDIwMTblubQ1
5pyIMTjml6UgMTY6MjANCj4g5pS25Lu25Lq6OiBnYW93ZWkgKFkpOyBQYXVsIER1cnJhbnQNCj4g
5oqE6YCBOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IExpdXlpbmdkb25nOyBM
aW5xaWFuZ21pbjsNCj4gSGFud2VpZG9uZyAoUmFuZHkpOyBsaXhpYW8gKEgpOyBIdWFuZ3Blbmcg
KFBldGVyKQ0KPiDkuLvpopg6IFJFOiBYZW4gd2luZG93cyBQViBkcml2ZXIgcXVlc3Rpb25zDQo+
IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZ2Fvd2VpIChZKSBb
bWFpbHRvOmdhb3dlaTE3QGh1YXdlaS5jb21dDQo+ID4gU2VudDogMTggTWF5IDIwMTYgMDM6MTAN
Cj4gPiBUbzogUGF1bCBEdXJyYW50OyBQYXVsIER1cnJhbnQNCj4gPiBDYzogd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnOyBMaXV5aW5nZG9uZzsgTGlucWlhbmdtaW47DQo+ID4gSGFu
d2VpZG9uZyAoUmFuZHkpOyBsaXhpYW8gKEgpOyBIdWFuZ3BlbmcgKFBldGVyKQ0KPiA+IFN1Ympl
Y3Q6IOetlOWkjTogWGVuIHdpbmRvd3MgUFYgZHJpdmVyIHF1ZXN0aW9ucw0KPiA+DQo+ID4gVGhh
bmsgeW91IHNvIG11Y2ggZm9yIHlvdXIgaGVscCBQYXVsLg0KPiA+DQo+ID4gQ291bGQgeW91IHBs
ZWFzZSBoZWxwIGNsYXJpZnkgYSBsaXR0bGUgbW9yZT8gQ291bGQgeW91IHBsZWFzZSBzZWUNCj4g
PiBpbmxpbmUgYmVsb3c/DQo+ID4NCj4gPiBBbHNvIFhlblNldmVyIFBWIGN1cnJlbnRseSBkbyBu
b3QgaGF2ZSBhbnkgdXNlciBtb2RlIHNlcnZpY2U/DQo+IA0KPiBYZW5TZXJ2ZXIgaGFzIGEgJ2d1
ZXN0IGFnZW50JyBydW5uaW5nIGluIGVhY2ggVk0gdG8gcHJvdmlkZSBtZXRyaWNzLCBjb250cm9s
DQo+IGNlcnRhaW4gZmVhdHVyZXMsIGV0Yy4gVGhhdCBhZ2VudCBpcyBYZW5TZXJ2ZXIgc3BlY2lm
aWMuIFRoZXJlIGlzIGFsc28gYW5vdGhlcg0KPiBhZ2VudCBpbnN0YWxsZWQgYWxvbmdzaWRlIHRo
ZSBYRU5JRkFDRSBkcml2ZXIgd2hpY2ggaXMgbm90IHNwZWNpZmljIHRvDQo+IFhlblNlcnZlciBi
cmFuZGVkIGJ1aWxkcy4gVGhpcyBhZ2VudCBpcyB0aGVyZSB0byBoYW5kbGUgc2h1dGRvd24gcmVx
dWVzdHMNCj4gKHdoaWNoIGNhbiBvbmx5IGJlIGluaXRpYXRlZCBmcm9tIHVzZXIgc3BhY2UgaW4g
V2luZG93cykgYW5kIHRvIHJlc2V0IHRoZQ0KPiBWTSB0aW1lIHdoZW4gY29taW5nIGJhY2sgZnJv
bSBzdXNwZW5kIChvdGhlcndpc2UgdGhlIFJUQyB3aWxsIGRyaWZ0KS4NCj4gDQo+ID4gVm13YXJl
IGhhcw0KPiA+IGEgbG90IG9mIHVzZXIgbW9kZSBzZXJ2aWNlIHRvIGltcHJvdmUgdGhlIHdpbmRv
d3MgZXhwZXJpZW5jZS4NCj4gPiBNYXkgSSBrbm93IGhvdyBBbWF6b24gYW5kIEludmlzaWJsZSB0
aGluZ3MgbGFicyBjby13b3JrIHdpdGggeW91IG9uDQo+ID4gdGhpcyBwcm9qZWN0PyBEbyB3ZSBo
YXZlIGRpc2N1c3Npb24gbWVldGluZz8gSHVhd2VpIHdvdWxkIGxpa2UgYnVpbGQNCj4gPiB0aGUg
c2FtZSByZWxhdGlvbnNoaXAgd2l0aCB5b3VyIHRlYW0gb24gdGhpcyBwcm9qZWN0IGFzIEFtYXpv
biBhbmQNCj4gPiBJbnZpc2libGUgdGhpbmdzIGxhYiBkaWQuDQo+ID4NCj4gDQo+IFRoZSBwcm9q
ZWN0IGlzIG5vdCBiaWcgZW5vdWdoIHRvIHdhcnJhbnQgYSByZWd1bGFyICdwaG9uZSBjYWxsIHNv
IGRpc2N1c3Npb25zDQo+IGFyZSB2aWEgZW1haWwgdG8gdGhlIHdpbi1wdi1kZXZlbCBsaXN0LiBD
b250cmlidXRpb25zIHNob3VsZCBiZSBtYWRlIHVzaW5nIHRoZQ0KPiBzYW1lIG1vZGVsIGFzIGNv
bnRyaWJ1dGlvbnMgdG8gdGhlIGh5cGVydmlzb3IgKGkuZS4gZ2l0IGZvcm1hdC1wYXRjaC4uLiBn
aXQNCj4gc2VuZC1lbWFpbCkuDQo+IERvIHlvdSBoYXZlIGFueSBwYXJ0aWN1bGFyIHByb2plY3Rz
IGluIG1pbmQgdGhhdCB5b3Ugd291bGQgbGlrZSB0byB3b3JrIG9uPw0KPiANCj4gQ2hlZXJzLA0K
PiANCj4gICAgIFBhdWwNCj4gDQo+ID4NCj4gPg0KPiA+DQo+ID4gLS0tLS3pgq7ku7bljp/ku7Yt
LS0tLQ0KPiA+IOWPkeS7tuS6ujogUGF1bCBEdXJyYW50IFttYWlsdG86UGF1bC5EdXJyYW50QGNp
dHJpeC5jb21dDQo+ID4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0NeaciDE35pelIDIzOjE2DQo+ID4g
5pS25Lu25Lq6OiBnYW93ZWkgKFkpOyBQYXVsIER1cnJhbnQNCj4gPiDmioTpgIE6IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IOS4u+mimDogUkU6IFhlbiB3aW5kb3dzIFBW
IGRyaXZlciBxdWVzdGlvbnMNCj4gPg0KPiA+IERlLWh0bWxpbmcuLi4NCj4gPg0KPiA+IEZyb206
IGdhb3dlaSAoWSkgW21haWx0bzpnYW93ZWkxN0BodWF3ZWkuY29tXQ0KPiA+IFNlbnQ6IDE3IE1h
eSAyMDE2IDEwOjEwDQo+ID4gVG86IFBhdWwgRHVycmFudDsgUGF1bCBEdXJyYW50DQo+ID4gQ2M6
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IFN1YmplY3Q6IFhlbiB3aW5k
b3dzIFBWIGRyaXZlciBxdWVzdGlvbnMNCj4gPg0KPiA+IEhlbGxvIFBhdWwNCj4gPg0KPiA+IFRo
aXMgaXMgV2F5bmUgR2FvIGZyb20gSHVhd2VpLiBOaWNlIHRvIHRhbGsgd2l0aCB5b3UuIEkgaGF2
ZSBjb3VwbGVzDQo+ID4gb2YgdGVjaG5pY2FsIHF1ZXN0aW9ucyByZWdhcmRpbmcgd2l0aCBYZW4g
d2luZG93cyBQViBkcml2ZXJzLg0KPiA+IENvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIHRpbWUgdG8g
aGVscD8gUmVhbGx5IGFwcHJlY2lhdGUgeW91ciBoZWxwIX4NCj4gPg0KPiA+IDEuIE1heSBJIGtu
b3cgaWYgdGhlIGxhdGVzdCB3aW5kb3dzIFBWIG9wZW4gc291cmNlIGNvZGUgY2FuIHBhc3MgdGhl
DQo+ID4gV0hDSyB0ZXN0cyB2ZXJ5IHN0YWJsZSBhbmQgZ2V0IGRyaXZlciBzaWduZWQ/DQo+ID4N
Cj4gPiA+IFllcy4gVGhlIFhlblNlcnZlciBQViBkcml2ZXJzIGFyZSBiYXNlZCBvbiB0aGlzIHNv
dXJjZSB3aXRoIG9ubHkNCj4gPiA+IHNtYWxsDQo+ID4gY29tcGF0aWJpbGl0eSBwYXRjaGVzLg0K
PiA+IAlXYXluZTogZGlkIENpdHJpeCBvcGVuIHNvdXJjZSB0aGUgc21hbGwgY29tcGF0aWJpbGl0
eSBwYXRjaGVzIHRoYXQNCj4gPiBtYWtlIHRoZSBYZW5TZXJ2ZXIgUFYgZHJpdmVycyBwYXNzIHRo
ZSBXSENLPw0KPiA+DQo+ID4gMi4gRnJvbSB0aGUgaG9tZSBwYWdlLCBJIHNlZSB0aGVyZSBpcyBh
IHBsYW4gdG8gam9pbiBpbiB3aW5kb3dzDQo+ID4gdXBkYXRlLiBNYXkgSSBrbm93IGhvdyB0aGlz
IGlzIGdvaW5nIG9uPyBBbnkgcGxhbiB0byBtYWtlIGl0IGhhcHBlbi4NCj4gPiBBbm90aGVyIGFw
cHJvYWNoIGlzIHRoYXQgTWljcm9zb2Z0IGFsbG93IHNlbWljb25kdWN0b3IgY29tcGFueSBkZWxp
dmVyDQo+ID4gaW5ib3ggZHJpdmVyLiBEbyB3ZSBoYXZlIHRoaXMgcGxhbj8NCj4gPg0KPiA+ID4g
VGhlIFhlblNlcnZlciBicmFuZGVkIGRyaXZlcnMgYXJlIGN1cnJlbnRseSBsaXZlIG9uIFdpbmRv
d3MgVXBkYXRlDQo+ID4gPiBzbyBpZg0KPiA+IHlvdSdyZSBWTSBoYXMgdGhlIGFwcHJvcHJpYXRl
IFBWIGRldmljZSB0aGVuIHRoZXNlIGRyaXZlcnMgd2lsbA0KPiA+IGRvd25sb2FkIGFuZCBpbnN0
YWxsLiBYZW5Qcm9qZWN0IGJyYW5kZWQgZHJpdmVycyB3aWxsIG5vdCBnbyBvbnRvIFdpbmRvd3MN
Cj4gVXBkYXRlLg0KPiA+IAlXYXluZTogWGVuU2VydmVyIGJyYW5kZWQgZHJpdmVycyB3aWxsIG5v
dCBnbyBpbnRvIHdpbmRvd3MgaW5ib3gNCj4gcGxhbj8NCj4gPiBCdXQgWGVuU2VydmVyIGFscmVh
ZHkgam9pbiBpbiB0aGUgd2luZG93cyB1cGRhdGUgcGxhbiBzbyB0aGF0IGFueQ0KPiA+IHdpbmRv
d3MgUFYgZHJpdmVyIHVwZGF0ZSBjYW4gZ28gYWxvbmcgd2l0aCB0aGUgc3RhbmRhcmQgd2luZG93
cyB1cGRhdGUNCj4gPiBwcm9jZXNzPw0KPiA+DQo+ID4gMy4gSSBzYXcgaW4gY3VycmVudCB3aW4g
UFYgZHJpdmVyLCB3ZSBhZGQgb25lIG5ldyBkcml2ZXIgeGVuY3JzaC5zeXMNCj4gPiB0byBjb21w
bGV0ZSB0aGUgZHVtcC4gQnV0IHdpbmRvd3MgYWN0dWFsbHkgaGFzIHRoZSBmdW5jdGlvbiBqdXN0
IHJldXNlDQo+ID4gdGhlIG9yaWdpbmFsIHN0b3Jwb3J0IG1pbmlwb3J0IGRyaXZlciB0byBjb21w
bGV0ZSB0aGUgZHVtcC4gTWljcm9zb2Z0DQo+ID4gc2FtcGxlIHN0b3JhY2hpIGRyaXZlciBkaWQg
dGhpcyB3YXkgdG9vLiBNYXkgSSBrbm93IHdoYXQgaXMgc3BlY2lhbA0KPiA+IHJlYXNvbiB0aGF0
IHdlIGNob29zZSBhZGQgbmV3IGRyaXZlcj8NCj4gPg0KPiA+ID4gVGhlIGNyYXNoIGtlcm5lbCBl
bnZpcm9ubWVudCBpcyBxdWl0ZSBkaWZmZXJlbnQgdG8gYSBub3JtYWwga2VybmVsDQo+ID4gZW52
aXJvbm1lbnQuIFRoZSB4ZW5jcnNoIGRyaXZlciBpcyBhY3R1YWxseSBsaW5rZWQgaW50byB0aGUg
bm9ybWFsDQo+ID4geGVudmJkIHN0b3Jwb3J0IGRyaXZlciBidXQgb25seSBhY3RpdmF0ZXMgd2hl
biBpbiB0aGUgY3Jhc2gga2VybmVsDQo+ID4gZW52aXJvbm1lbnQuIEl0IHRoZW4gYWN0aXZhdGVz
IGFzIHRoZSBzdG9yYWdlIGRyaXZlciBhbmQgdXNlcyBpdHMgb3duDQo+ID4gcHJpdmF0ZSBpbnRl
cmZhY2VzIHRvIHRhbGsgdG8gWGVuIGFuZCB0aGUgUFYgYmFja2VuZCAoc2luY2UgdGhlIG5vcm1h
bA0KPiA+IHhlbmJ1cyBwcm92aWRlZCBBUElzIGFyZSBub3QgYXZhaWxhYmxlKS4NCj4gPg0KPiA+
IDQuIEkgc2F3IHRoZXJlIGlzIG9uZSBzdG9yYWdlIGZpbHRlciBkcml2ZXIgdGhhdCBpcyBhYm92
ZSB0aGUNCj4gPiBzdG9ycG9ydC4gTWljcm9zb2Z0IFdIQ0sgZG9jdW1lbnQgdXNlZCB0byBtZW50
aW9uIE1TIGRvIG5vdCBsaWtlIGFueQ0KPiBmaWx0ZXIgYWJvdmUgc3RvcnBvcnQuDQo+ID4gTWF5
IEkga25vdyB3aGF0IGlzIHNwZWNpYWwgcmVhc29uIHRoYXQgd2UgY2hvb3NlIGFkZCBmaWx0ZXIg
ZHJpdmVycw0KPiA+IGludG8gdGhlIGFyY2hpdGVjdHVyZT8NCj4gPg0KPiA+ID4gVGhlcmUgaXMg
YSBmaWx0ZXIgZHJpdmVyIGNhbGxlZCB4ZW5kaXNrIHRoYXQgc2l0cyBhYm92ZSB0aGUgc3RvcnBv
cnQNCj4gPiA+IFBET3MuIEl0DQo+ID4gc2VydmVzIG9ubHkgdG8gaW50ZXJjZXB0IHRoZSBJUlBz
IG5lY2Vzc2FyeSB0byBzdXBwb3J0IHRyaW0vZGlzY2FyZC4NCj4gPiBOZXdlciB2ZXJzaW9ucyBv
ZiBzdG9ycG9ydCBzdXBwb3J0IHRyaW0vZGlzY2FyZCBkaXJlY3RseSBidXQgdGhlDQo+ID4gZHJp
dmVycyBjYW5ub3QgbWFrZSB1c2Ugb2YgbmV3ZXIgc3RvcnBvcnQgYXMgdGhleSBhcmUgZGVzaWdu
ZWQgdG8NCj4gPiBmdW5jdGlvbiBvbiBvbGRlciB2ZXJzaW9ucyBvZiBXaW5kb3dzLg0KPiA+DQo+
ID4gQ3VycmVudGx5LCB3ZSBzYXcgYWxsIGRldmVsb3BlcnMgYXJlIGZyb20gQ2l0cml4LiBNYXkg
SSBrbm93IGlmIEh1YXdlaQ0KPiA+IGNhbiBjb250cmlidXRlIG9uIHRoaXMgcHJvamVjdCB0b28/
DQo+ID4NCj4gPiA+IEFic29sdXRlbHkuIENvbnRyaWJ1dGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4g
bWFkZSBieSBJbnZpc2libGUgVGhpbmdzDQo+ID4gPiBMYWJzDQo+ID4gYW5kIEFtYXpvbiBzbyBJ
J2QgYmUgaGFwcHkgdG8gcmV2aWV3IGNvbnRyaWJ1dGlvbnMgZnJvbSBIdWF3ZWkuDQo+ID4gPiBD
aGVlcnMsDQo+ID4gPg0KPiA+ID4gICBQYXVsDQo+ID4NCj4gPiBUaGFuayB5b3Ugc28gbXVjaCBh
Z2FpbiBmb3IgeW91ciBoZWxwIX4NCj4gPg0KPiA+DQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed May 18 09:33:07 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 09:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2xqj-0002Sm-St; Wed, 18 May 2016 09:33:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2xqh-0002Sf-V4
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 09:33:04 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
 B8/D7-03294-FC63C375; Wed, 18 May 2016 09:33:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAJsWRWlGSWpSXmKPExsWyU9JRQvecmU2
 4wf3NTBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148fPdewFjaeYKjY9ncTWwPh5C1MXIyeHhECZ
 xJdHnSwgNpuAjsTSo/PB4iICRRJdu/8zdjFycAgLmEvc+JMBEbaQ2DD/EQuEbSSxb0IzM4jNI
 qAqMeXCX0YQm1fAXeLtuWtsILaQgJXEvVMnwGo4BawlJhydwQ5iMwrISnxpXA0WZxYQl7j1ZD
 7UOSISDy+eZoOwRSVePv7HCmEbSGxdug9oLxdQfQejxP9NXewQywQlTs58wgKxTEViy+MDzBA
 N3BIrP/9hmcAoPAvJjlnI+mch6YcoypV4860VytaRWLD7ExuErS2xbOFrZhj7zIHHTJjiuhLT
 JxyBiitKzF7+ihFi2WJGiV/PD7HBDF3efIIFpmhK90N2mPjStmlANRxg8a47ZRC9ixgldt2ZB
 lez4cltRmS9CxiFVjFqFKcWlaUW6Roa6yUVZaZnlOQmZuboGhoY6+WmFhcnpqfmJCYV6yXn52
 5iBKYUBiDYwbhtu+chRkkOJiVR3q3yNuFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHgLTIFygkW
 p6akVaZk5wOQGk5bg4FES4W0HSfMWFyTmFmemQ6ROMSpKifOqgCQEQBIZpXlwbbCEeolRVkqY
 lxHoECGegtSi3MwSVPlXjOIcjErCvCIgU3gy80rgpr8CWswEtPiWGNjikkSElFQD40zxHa8u6
 rbFlDX9CLNycNqWq2qfPD+v+Wfgko1Kh8u2FpY6X9wnt6U7McD7nrOg0eZoQ+0PB+qCPnxLK7
 K01lm7J6G75dP8vqu7DdNf/p+im3GHsVP7IfNrVwn3+3FsjnEMC+5nh63/ZMdWLRh3P4EhXof
 l7Q6Jzyubz4s1Fkbt8fnNM/GHEktxRqKhFnNRcSIAcTk2N6MDAAA=
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1463563981!36799395!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.4 required=7.0 tests=EXTRA_MPART_TYPE,
 HTML_90_100,HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44006 invoked from network); 18 May 2016 09:33:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 09:33:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; 
 d="gif'147?jpg'147,145?scan'147,145,208,217,147,145";a="22150334"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: John Priest <john.priest@oracle.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Win PV driver documentation
Thread-Index: AQHRsI+2ub3wiz5pqEa1ZrE/hvBZBp++bnZg
Date: Wed, 18 May 2016 09:33:00 +0000
Message-ID: <1030e4db93f04db4bb2bb9027783a527@AMSPEX02CL03.citrite.net>
References: <baa081a6-7835-4356-be28-38a12d4841b7@default>
In-Reply-To: <baa081a6-7835-4356-be28-38a12d4841b7@default>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Win PV driver documentation
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6247994083209667725=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============6247994083209667725==
Content-Language: en-US
Content-Type: multipart/related;
	boundary="_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_";
	type="multipart/alternative"

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: multipart/alternative;
	boundary="_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_"

--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

  I don't have any sort of feature list, although it would definitely be a =
good thing to have. The supported OS are somewhat down to how the drivers a=
re built though since the range of OS are dictated by the WDK used in the b=
uild. Currently drivers will build with either the 8.0 WDK or the 8.1 WDK.
  I'm not aware of any published performance analysis of the drivers. If an=
yone in the community can provide these then I would be happy to try to get=
 them linked from the project web page.

  Cheers,

    Paul


From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On Be=
half Of John Priest
Sent: 17 May 2016 23:57
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Win PV driver documentation

Hi,

I am looking for any some documentation that (hopefully) exists for the sup=
port offered by the drivers.
I read through the material on the website and checked a few of the readme =
files on the driver source code but do not see a document that offers OS su=
pport, performance/capacity information and feature information.  Am I miss=
ing it or is this on the list of activities that need to be done?

Regards,
John Priest | Oracle VM, Director Product Management
1 Oracle Drive | Nashua, NH 03062
Mobile: +1.508.202.2534 | Office: +1.603.897.3223
[Oracle]<http://www.oracle.com/>
[Green Oracle]<http://www.oracle.com/commitment>Oracle is committed to deve=
loping practices and products that help protect the environment


--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"ProgId" content=3D"Word.Document">
<meta name=3D"Generator" content=3D"Microsoft Word 14">
<meta name=3D"Originator" content=3D"Microsoft Word 14">
<link rel=3D"File-List" href=3D"cid:filelist.xml@01D1B0F0.AE6E0320"><link r=
el=3D"Edit-Time-Data" href=3D"cid:editdata.mso"><!--[if !mso]><style>v\:* {=
behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true" DefSemi=
Hidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99" LatentStyleCount=3D=
"267">
<w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D"c=
aption"/>
<w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
<w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph F=
ont"/>
<w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placehold=
er Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revision"=
/>
<w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D"T=
OC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-alt:"Times New Roman";
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1593833729 1073750107 16 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	text-decoration:underline;
	text-underline:single;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-fareast-font-family:Calibri;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";
	mso-ascii-font-family:Tahoma;
	mso-hansi-font-family:Tahoma;
	mso-bidi-font-family:Tahoma;}
span.EmailStyle19
	{mso-style-type:personal;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"blue" vlink=3D"purple" style=3D"tab-interval:3=
6.0pt">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D">Hi,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I don&#8217;t have any sort of feature list, although it would defin=
itely be a good thing to have. The supported OS are somewhat down to how th=
e drivers are built though since the range of OS are dictated by the WDK us=
ed in the build. Currently drivers will
 build with either the 8.0 WDK or the 8.1 WDK.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I&#8217;m not aware of any published performance analysis of the dri=
vers. If anyone in the community can provide these then I would be happy to=
 try to get them linked from the project web page.<o:p></o:p></span></font>=
</p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>Cheers,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;&nbsp;&nbsp;
</span>Paul<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;;mso-ansi-lang=
uage:EN-US;font-weight:bold">From:</span></font></b><font size=3D"2" face=
=3D"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quo=
t;Tahoma&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:&quot;Times N=
ew Roman&quot;;mso-ansi-language:EN-US">
 win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] <b><span s=
tyle=3D"font-weight:bold">On Behalf Of
</span></b>John Priest<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 17 May 2016 23:57<br>
<b><span style=3D"font-weight:bold">To:</span></b> win-pv-devel@lists.xenpr=
oject.org<br>
<b><span style=3D"font-weight:bold">Subject:</span></b> [win-pv-devel] Win =
PV driver documentation<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">Hi,<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">I am looking for any =
some documentation that (hopefully) exists for the support offered by the d=
rivers.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">I read through the ma=
terial on the website and checked a few of the readme files on the driver s=
ource code but do not see a document that
 offers OS support, performance/capacity information and feature informatio=
n.&nbsp; Am I missing it or is this on the list of activities that need to =
be done?<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><font size=3D"2" color=3D"#595959" face=3D"Verdana"><span lang=3D"=
EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans=
-serif&quot;;color:#595959;mso-ansi-language:EN-US">Regards,<o:p></o:p></sp=
an></font></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><font size=3D"2" color=3D"#666666" face=3D"Verdana"><span lang=3D"=
EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans=
-serif&quot;;color:#666666;mso-ansi-language:EN-US">John Priest |
</span></font><font size=3D"2" color=3D"red" face=3D"Verdana"><span lang=3D=
"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;san=
s-serif&quot;;color:red;mso-ansi-language:EN-US">Oracle VM</span></font><fo=
nt size=3D"2" color=3D"#666666" face=3D"Verdana"><span lang=3D"EN-US" style=
=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;=
;color:#666666;mso-ansi-language:EN-US">,
 Director Product Management<br>
1 Oracle Drive | Nashua, NH 03062<br>
Mobile: &#43;1.508.202.2534 | Office: &#43;1.603.897.3223<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><a href=3D"http://www=
.oracle.com/" target=3D"_blank"><font face=3D"Verdana"><span style=3D"font-=
family:&quot;Verdana&quot;,&quot;sans-serif&quot;;text-decoration:none;text=
-underline:none"><img border=3D"0" width=3D"114" height=3D"26" id=3D"Pictur=
e_x0020_1" src=3D"cid:image001.jpg@01D1B0F0.AE6E0320" alt=3D"Oracle"></span=
></font></a><o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><a href=3D"http://www=
.oracle.com/commitment" target=3D"_blank"><span style=3D"text-decoration:no=
ne;text-underline:none"><img border=3D"0" width=3D"44" height=3D"28" id=3D"=
Picture_x0020_2" src=3D"cid:image002.gif@01D1B0F0.AE6E0320" alt=3D"Green Or=
acle"></span></a></span></font><font size=3D"1" color=3D"#4b7d42" face=3D"V=
erdana"><span lang=3D"EN-US" style=3D"font-size:7.5pt;font-family:&quot;Ver=
dana&quot;,&quot;sans-serif&quot;;color:#4B7D42;mso-ansi-language:EN-US">Or=
acle
 is committed to developing practices and products that help protect the en=
vironment</span></font><b><span lang=3D"EN-US" style=3D"mso-ansi-language:E=
N-US;font-weight:bold"><o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
</div>
</div>
</body>
</html>

--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_--

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=5744;
	creation-date="Wed, 18 May 2016 09:33:00 GMT";
	modification-date="Wed, 18 May 2016 09:33:00 GMT"
Content-ID: <image001.jpg@01D1B0F0.AE6E0320>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAAEwgAADd8AABIgAAAWbv/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgAGgByAwERAAIR
AQMRAf/EAPAAAAIDAQEBAAAAAAAAAAAAAAAIBQYHBAIJAQACAgMBAQAAAAAAAAAAAAAABgQFAwcI
AgEQAAICAwEAAQQDAQAAAAAAAAQFAwYBAgcAFEATFhcSFQgYEQACAgEDAwIDBAYLAAAAAAACAwEE
BRESBgAhEzEUQSIHMjQVNmEjM9Q1lRBAQmKScyRUZKXVEgACAQIDAwcICAQHAAAAAAABAgMRBAAh
EjFRBfBBYXEyEwaBkaHRIiMzFBBAsUJSktI0Y5OjFfGCorLTNQcTAQEAAgICAQQCAgMAAAAAAAER
ACExQRBRYfBxgZFAocHRseHx/9oADAMBAAIRAxEAAAH6Io3U/J5kdvuNltW9S+ave155W+fqB1w1
bVoXD6TaHj56dNz5pzatc1yXdy3aasazbICWpnSzKMmlV5X9wcvjPgdDthiWHT1ajXWKU2zPoS/8
h4nS7M0SxT18X9vZbVvTtOvMbwO3MEXinVCIxW6Wvefn3i8Sff3zYZFRX49tAYLeUyQYfFY2ORTQ
mGzmc1bYpFOAAAAAAAAAAAAAAB//2gAIAQEAAQUCsXQ7a2tPx/8AQ3q70K3KrSgtHaLhK7snbaOD
HYFu1dq3bHZln6R0CKiLYv8AogvR896pTqRXzJmKHod5DoKAab/QzOEaPto6r5d98nej8h6D+8uW
+Zv4OtdB5kmaO61APan1l6GRNbntvV3t9V5bM+YRQd25hLD1O+VW583rvZ+ag1/rjxD0tOIFwcgb
kkvNRJvFhBsIfxGqeDBCXwiLwAMHp1DTIqlUDN7RUrjM2qlWk2iQo4BfxGqeAUqleJavWZ5AFCpX
9D//2gAIAQIAAQUCIYFSlfxsHh2BcRMBLkvMxDoLTE8fxxXU25LE/AMePyDb087QMKDfMkDA7UCD
XNgkxrh1rF/I70U+qk/+7Weknw1PWwyTDY1KnJYbZLnLjOnGyTPJjDxZnDQ4UxcO5W6Dtp4GUWui
LbVTlbrn22mm+PiC+000jxrppp7eGKX2sUWmffaixv8AFGz7EEONfiC+0iii9kYbOdIoovof/9oA
CAEDAAEFAk9Pr4CL73H/ADioV49E2R81ruixLzG0FbqDcOHvMlgyOmVLe1Gb/p4fZSqodjs7YeMN
rT6sRbG00fHwpJtuYyn/AGKp5iqm6HUf1de/AqZef1G7sgVjqWZCqS1CGOvq68dVVLyNIqE3l5Xe
Y5KJVH1bubjmt1Kb89VtaSxIJ6tFN0HS6zx+HJJEk/IX/iCiTJCCyi8isWAOJ2B5UXtjztxtX73X
G7VpLP8AkL/xR553o3ruLQpged9D/9oACAECAgY/AjZ8NUFl7THYOXIY2w8vJgWfElAZ+yw2HlyG
HNuYtCuRnj5i47poRtpj5k5RadXkpXANwumzlJCHq5Z4FBqnc0UY1e5Xo5Vw89wyd4CKUHTnhJG7
RUH0Y705scgN5xr90leY8jhy5jMtPZA9O7HZX4P9Tdt2ctWJlugRDK2oN5/Xj4n+lvViEWlTDC2o
t5vVypidYXMcvfGh9ePkOKTOg9DeX7PXhODWmUa01dAHN5Ptpj5MWtEXskMOb14ilcVuLRvbHPTL
P0UPkOKmSn+VvViQWzaqaa5Hf0jCI0ntBB91t3VgNZkuYsyAG2b8xipnnB3f4Jho7J3kc5mtf0gf
RpcAr04+HH+UY0oAF6MewAK7se8VW6xXGpFUMej6O8Cr3m+meM40/KMFAi6DzUGPhx/lGPdqq9Qp
ipjSvUMe7VV6hT6j/9oACAEDAgY/Ao/EnjaeWO3uPgQx9txvOR2jPLSAKEtVtOPhcU9H68SeJPBU
8kkFv8eGTtoN4yByGeeoEaiGqunFrHxiO+NzPbJL7tqjPrI564/s3Bzf2/E5Fbu2ehFVUtsq1cgT
T2agZMDhuBIuviAuDDQc7htH28+JF4PMZvE1jGj3CVrUMKmi0y/EnOVFDUsDiQSydxwu2TXNL+EZ
0ArlU0JqcgAT0HuR/cptP3xz9P3P9oxacJ4NFdiyZJTKZHoxIQlAtK0pSpPPsxc2kPwYriRB1K5A
x8hG3d26rrkk26VHmqSch59gODa14hclMu8XssejsecLTdXFtFapexWGpjM7k7Ap0qAus+0200yp
TnJHx5/+y07D+z/H8PtdPa/g44bccAZH4nw6HupICwU7EWoqQBXu6itAynbVaY/Y/wBa3/5ccTk8
QsqcS4lAYIoAwZuy66jpqMu8qaGgA26mAxwmbidrHeWJ4XEHRttNRzQ8zDpyOw7wPF3gThlvdSBW
BYGjwVGepM2y2OAVYKa9gk4uf/SvEPt3spYW6na7yE1frc1zGyPW2wjB8Stx8yXNwCZkeBxq156T
StNJpSmylB7OL/h1pKsfCPEMGq2kHYEulqx7qNrDxrlqXXGOzgotoHUHtCaGh6RqkU+cA9GLJ+NQ
iESrMF95ExNImrkjsct+zF1dQWVYJLmRlPewZhnJBzlrs34ki8SxR2sV+ojidpImBlWpC6UkJoQT
uFaLWrDDRxcJ4TLGDky0AbpAe6VvOBiC98T2lvaWqEoixNHQscydImkcmg29kDdXPHfWsjxy71JU
+cY/fXn86T9WO+u5Hll3sxY+c4U3UkkhVaDUxag3CuwdGCLKeaENt0Oy169JGFhuppZIU7Ks7MF5
sgTQZfQLN5pTZrsTW2gdS1pjSt7dhR/Fk/VhbqS5na5TsuZGLL1NWo8mP315/Ok/VgG+mlm07Nbs
1K7tRNMCOK8uljGwCVwB5NWB89PNNp2a3ZqV3aiafUf/2gAIAQEBBj8Cu8M+mmLo3beIiYzuayf3
Kk7XaSE/rlBBJb8kyXkIjgoFegyXX3/g/wDgb+5dUuG/UvFUqdrMRpgs3i9fY3nR28Df1rQkmn8k
SPjIDkYJehwXWcdx65xYKWKzdzFaZCtKnaoLcGmxLt8eIx76+vU8j5CvieWwlJ1ccjXpeRb4TZsK
rCQs8dcwKWuEYKPJtItZGY6VyhrvbYluITm5c6NJVRdUG7BGMazvhJ+kazM9o6pnyLHKxvCuUW71
Hjd0kSokOqPBCpda8hC8JM4W+dIEWnrEwIlHVOUUiyudzNn2WExQbv8AUOjxwxrPHBMJSScEbQ+c
zYIxprJQNiS4XjvLEH7NolJo1iJ2FsG7Gsf5hdcg5ByPIcfZkkWcSjFJx1Py11rfcWq42zLATJmY
tgQHT5dJnvr2wmQs7ZsXsRjbj5Adoy6zTS5u0f7I7znt1OWcj3tx7wp4zHwfjm3bOJL5jgTlaErG
SKdJ+EepR0F6FcQww2I8gY62BxYrgUbgFgx74gLSe4kzfHxiJ6zb71jjN3KwiqvB0aClwJuZaX7u
y91r2SR9vVidoyWhbpn1GBL+GYz8m+4+2v8AOX+y/iH3T+5+z/5PXNKnK0Wa+E5fkPxjF58Kz7Kt
PPdswlvgWbn+OMhIHsgjWwfs7T3dfmj/AKXkX/k9cIVxFD7WG4XlF53LZ19Z1av8tqlZGuobArdH
m/D4AYIYMyLXbtCS659Wwudu8eygc4yjad6qUeMmxWTEIurkD8lVkz32/OPrHxiWfT/6p83zGEUb
65qqvULKOd2NmUhXyG9NYBcYQSDMGLlg6aeUYHrC/RfiE+2xuPVUPkdhMkaaNDHrV4KRTuncugrZ
MiX2rEqDWJiel8LD6TrqU8QSV4bIU+QUne1KjPhGwmGiknhbRug9+knv3T83frieYyFB13kP0jyZ
1+TY1g63X4kLNOE5ORnczyVZpkiyzQvG2VtnsU6LYfIW1jMIIq78NmycmZjutk1sfYRJj8dhkP6e
uSK41kjyRUH4NluYxuVqrQLstXFW516jWTvZIzoMTunSe3brBUbXJPFap4bGVbKvwfPn4316SFOD
evFms9jAmNRmYnqlY4Xet55/FHuyOWp1MZl6rF4q1ClNtjYuY1aYYhqR7fMW2SPbIgXSXP5/z6g5
gCTKljzMdXKY7rYdPitmsUjPxAyjrKY3hOfzHIL1gAuXbGWrZKWpqomEqUNl2GxlJKvK6Zgf2hlM
+sDG3qa9+pWu15mClFtCrKZmPSZU4TDWNevyxx7+S439269vQp1aKImShFOuqsnWfWfGkQDWemjR
pVKUPbL3xUrJrQ5xfac2EgHkaWncp79LnJ4rHZGUwUJm/RrW5VB6b4XNhTNkFtjXT106dZpYzH07
NnX3FirTr13WNxeQvM1SwNup9+8z3/oZkV42gvIOiRdfCnXG40SgYkWWoXDziYCPWfh0RnxrAGZT
JEZYfHERTPrJFNfWZnp9FOGxSaVqYKzTVjqi6tiR02y+uKYU2R2x9qJ9Ovyxx7+S43926ZGMxuPx
0O2y6KFOvUhshu2eT26179m6dNfTXo3P47gnOYUmxrcRQYxhT6kZnXkiKf09M/DMZj8d5tvm9hSr
VPLs3bPJ7da9+zfOmvpr/Uf/2gAIAQEDAT8hcscbEDKWmU2LnDm2NwU77oBExOhc7ikhxuYWtZph
k2iaFmAA9zlmK9DRiPmEZiPhmCbnW/JNxFQECvBRUcxowaKHPQ8tpxLj3h4T1A66WAFRQMLAGYd0
dEm6GKqSbj+bj/iHAEBRgMCS6ktLBnFWUg1nh99DwR2pOOnDER8sNQqEZrxFrCpuOYewHtLM/QBt
dYFB2Y+UD5ieLAC4CYBQFS8uMvG+w9u5c6OLbsdwkEZHMoPU2QoeJXcrmcup0q3CMODj3k3KvkGI
Sfb9lh9WAFUU3k1AHu+2AmOuFKLFfR1p9S9OdlavciQkVVI8Di7LCRRCUZq+NA4VQNx5zuZXCR+m
DAAAGy5ziruKYNINgjReMv8Akt0qW13ub8+B/wB8PDUeoog9GOWGWVVNbld4g+tE7WvQVEevGhFa
kOoZExzGyc5veqO7XOcqVz6P+HajdsnL/B//2gAIAQIDAT8h+Sb5PRs4dd1s0ufTuPmM8T07eeNR
GXa4a1pKOvw9ZNy5PKKHx2zv7TFhqmnpf4MC1FCRUK3fr0XUBz848F9+4U0bVD5I+x26+ny4w6Sb
EYTx71nNA77oXIVu+kcHL+u80uX3B9PbfeQDZB3dlY0cH+gf7x9H6OMamxmpyowr0ZsTiN8dn9Qs
Q5ULvehSq8ROFrjh7hoev7P6WDSkE7dTQ32RL8AzRAKnEE/BPvDkw2WGinClli28284weQvK4/HZ
3GnOGUJOGh+kfpcUgnwYUzYGSVmp2gHKG2TLeDUdIe2VkHCD+crT42H6cB6VDYGgqIrxy/M1nxNo
Cfpz6Z/xnwloAfoy+HqsBX2zvJS4cQj9mO+QiAX7pz4EAFzCvzzi6rfo6wO3kEH7kjn0z/jLG45h
X3mKnX22/wCMubjmFfefwf/aAAgBAwMBPyFni/kk301RIyzH/pYMr/8A0zDZIOmY6WtwTHpsaR1N
4ATZsGAwAcTQIGfJiP3QPqeUA2wwJ2ik/qy4I1hmKPzcU+yADc3+wyshZKEnpXl/0ZBapQISklVy
AEbe8oLXcz2wK4Gv9RExooWAp2sTodUpBpVql4om0N47qM4m6u1IVDQ8XgDfxGYckpl8RLrJdhnQ
UYiXcyTF4odaD02SJ6XtQ1gjmI0DcWSu3gJpN6OJKLWopwEnBK/CV76i7t4zahD2xLaU0kFJDsCq
PwAp+iC9fODN9ftqyJUJURQtTNXqstJwCoYBOwcrMXHjPJVOhJWrUZFXQAH074zlYYCvYqR4INn4
ixcmufVR/vwA1QWax9VX+8CGp5Xxaw6GsnrCdSs5CVl4rnUtwiIsQ00GteHm5XRCxWKV4O33gMwQ
AgPQYI1aAU2jbtbRy+ADrNXrJewQs5h6wEkwGPQID4M7+D1kvYIWcw9fwf/aAAwDAQACEQMRAAAQ
cHkZhHfOM3zq5S4wD9HiCkAAAAAAAA//2gAIAQEDAT8Qc9MJucKIt4eNYXX6C1EgdxZuwT4TWlp6
1AJ+RUdm4IcFYvEiW9qpFjwDvABAh2sfUDTAiPArhPUWHhKnzBIzQmeRFRKIpZPGiQQEfrgTIIid
BDLylBKSOsqKksiw5zTqss0FIQ0LmCcaEBGR05kx5yPPG4fJ0e8/+pMCIfiunlu6MzAOoMsDnDEc
Ns3MY2DwdUcuv+inEkoiabIHoLYBDGifcZ1qVXjz5ZpLtBl6XrnJBnfkCM/ywhxy1s1A6NYlv8yn
5+UZEWpEhgjxWB0dFwcmocj7HZjG1iobVHBDor/DxHBVPCgKlBb1H1I0KO3w1RewGYV3Jo9xwHRc
Ln36AKBUMXpaB8oJzQkqIruUniHNz2C7t4N5UNoVnH40SDAvBrnjiqFO1xKArLnsTMFBImNRWlox
Dl2yxrVU5WAq5SFKjlz6e3XJ34bbP4H/2gAIAQIDAT8QPFf4gdBdhRgIPP8A4eAfg/xoFWjUGBz2
sCuKnFCjdN3WLAZ1ENRjFAISorrPhPiiBQ7rgquiuIA4FANiBUeBUgsTmgO9VUqQIQCVwnplsG10
w4f92RuRoQIpSgBNRVaSTrGCGkDoqwxpOoWKC7YoApHobGFAIoTN2CbjOSJ0B1hXEJwKOkk2jGrt
wP8AfphOTyS90QhcDWoRj5e3ayykQaQBBBkLkDPTpIGvudCXeDYUxGSi4iBYzIMMPUXIdW9liPLc
TFqqKh1SIQaEJSUW/MjRJBrWpa9JwsnFZT0t87g9Li7V9GDquUYDWLIObAkMQQoxiJRR6UxvNyEm
BK0BsVRGbQtS9pXT2h84KMHBxCwBOUroPB0rN2F7gn9eKOyLXZXuAf1hrAQqnMBV2u8QpTW6Sy0s
LOYZ2Xy7WsA072u9+DSjBEGUSUMOXo9Y0ZWqqr7XL4HEk5IjoQlHg8URAZPSlmksrLxX3j80qmn2
ra/LnRM9KWaSysvFff8AB//aAAgBAwMBPxA/hUZcKVejg0hZnvalDdt14yipNa2xwFlem2CB9gXC
zCauCBghBZEnwlGQoWvsHBQi0PSnwGesmHAk6gygqkUUr3myNUlLkg6RRmke2Rq36mSSkExi2T0L
2WIpsLjlr3girVJqqxP812BGdFdFUMIwlC0XOsBSIcgzoXhfAEguJc+1blVQjxCq6PXy0ZAD9kEr
gyFLR2BlIoKzzB2LIaWTCQyM3guisnRROEs+yZcUsBDvPjoMUzlIufyBDQHLA3cIDAE8wjcjWAhV
VWXqqco4ifvAsvrEtCoAgh5DUC8C1svnMS38EFgBzcLw4HbUkS9JBlWHfBwzAfKKC4oUIYevCdau
BOw4ScOjQ6xcrm1SpWpWEqw3iJvQOyGBMgqRCVwYtnoCRqB1NWteAXDRKJAccRRQ2qHvgcGgAADQ
ABkZ1ioCUQACdnL4Tm58pE0Lga+ORYgX3lo8ChdAB0Z9THHMPq5FifwP/9k=

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: image/gif; name="image002.gif"
Content-Description: image002.gif
Content-Disposition: inline; filename="image002.gif"; size=356;
	creation-date="Wed, 18 May 2016 09:33:00 GMT";
	modification-date="Wed, 18 May 2016 09:33:00 GMT"
Content-ID: <image002.gif@01D1B0F0.AE6E0320>
Content-Transfer-Encoding: base64

R0lGODlhLAAcAMQAAP///0x9RHmec9Pf0aa+oleFULHGrmKNW+nv6I+uivT39N7n3W6VZ7zPuZu2
lsjXxYSmfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAsABwAQAXhICCOZGmeaDoaReC+sKAMR7GopIA6boIvLgPAVSAgALxjSYdrOp/Q6NPg
YqIEPkTBV2taTwgGbEw+PAZo3FfKbqMQQfeJ8DoY0Hg0wxhAKBgHCl5XLgMqDwFCAAIFPIYDgidr
OUQGkSh0cQMJAQyXOXKhoqOkpaanI2aoIwMErq+uCY0BMlANKpxkYwQGBH82TpMicD0pAgQACToD
AchqhAG3KQ4HIlQNnErG0IYqB9EAiEQvwEsozC43hy0CAeXMwsLDLS8MAvf497ruCZ+gOA0gfNt3
AIK0J/JWKVzIsEQIADs=

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_--


--===============6247994083209667725==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============6247994083209667725==--


From win-pv-devel-bounces@lists.xenproject.org Wed May 18 09:33:07 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 May 2016 09:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b2xqj-0002Sm-St; Wed, 18 May 2016 09:33:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=93930de3f=Paul.Durrant@citrix.com>)
 id 1b2xqh-0002Sf-V4
 for win-pv-devel@lists.xenproject.org; Wed, 18 May 2016 09:33:04 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
 B8/D7-03294-FC63C375; Wed, 18 May 2016 09:33:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAJsWRWlGSWpSXmKPExsWyU9JRQvecmU2
 4wf3NTBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148fPdewFjaeYKjY9ncTWwPh5C1MXIyeHhECZ
 xJdHnSwgNpuAjsTSo/PB4iICRRJdu/8zdjFycAgLmEvc+JMBEbaQ2DD/EQuEbSSxb0IzM4jNI
 qAqMeXCX0YQm1fAXeLtuWtsILaQgJXEvVMnwGo4BawlJhydwQ5iMwrISnxpXA0WZxYQl7j1ZD
 7UOSISDy+eZoOwRSVePv7HCmEbSGxdug9oLxdQfQejxP9NXewQywQlTs58wgKxTEViy+MDzBA
 N3BIrP/9hmcAoPAvJjlnI+mch6YcoypV4860VytaRWLD7ExuErS2xbOFrZhj7zIHHTJjiuhLT
 JxyBiitKzF7+ihFi2WJGiV/PD7HBDF3efIIFpmhK90N2mPjStmlANRxg8a47ZRC9ixgldt2ZB
 lez4cltRmS9CxiFVjFqFKcWlaUW6Roa6yUVZaZnlOQmZuboGhoY6+WmFhcnpqfmJCYV6yXn52
 5iBKYUBiDYwbhtu+chRkkOJiVR3q3yNuFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHgLTIFygkW
 p6akVaZk5wOQGk5bg4FES4W0HSfMWFyTmFmemQ6ROMSpKifOqgCQEQBIZpXlwbbCEeolRVkqY
 lxHoECGegtSi3MwSVPlXjOIcjErCvCIgU3gy80rgpr8CWswEtPiWGNjikkSElFQD40zxHa8u6
 rbFlDX9CLNycNqWq2qfPD+v+Wfgko1Kh8u2FpY6X9wnt6U7McD7nrOg0eZoQ+0PB+qCPnxLK7
 K01lm7J6G75dP8vqu7DdNf/p+im3GHsVP7IfNrVwn3+3FsjnEMC+5nh63/ZMdWLRh3P4EhXof
 l7Q6Jzyubz4s1Fkbt8fnNM/GHEktxRqKhFnNRcSIAcTk2N6MDAAA=
X-Env-Sender: prvs=93930de3f=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1463563981!36799395!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=1.4 required=7.0 tests=EXTRA_MPART_TYPE,
 HTML_90_100,HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44006 invoked from network); 18 May 2016 09:33:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 18 May 2016 09:33:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,328,1459814400"; 
 d="gif'147?jpg'147,145?scan'147,145,208,217,147,145";a="22150334"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: John Priest <john.priest@oracle.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Win PV driver documentation
Thread-Index: AQHRsI+2ub3wiz5pqEa1ZrE/hvBZBp++bnZg
Date: Wed, 18 May 2016 09:33:00 +0000
Message-ID: <1030e4db93f04db4bb2bb9027783a527@AMSPEX02CL03.citrite.net>
References: <baa081a6-7835-4356-be28-38a12d4841b7@default>
In-Reply-To: <baa081a6-7835-4356-be28-38a12d4841b7@default>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Win PV driver documentation
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6247994083209667725=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============6247994083209667725==
Content-Language: en-US
Content-Type: multipart/related;
	boundary="_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_";
	type="multipart/alternative"

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: multipart/alternative;
	boundary="_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_"

--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

  I don't have any sort of feature list, although it would definitely be a =
good thing to have. The supported OS are somewhat down to how the drivers a=
re built though since the range of OS are dictated by the WDK used in the b=
uild. Currently drivers will build with either the 8.0 WDK or the 8.1 WDK.
  I'm not aware of any published performance analysis of the drivers. If an=
yone in the community can provide these then I would be happy to try to get=
 them linked from the project web page.

  Cheers,

    Paul


From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On Be=
half Of John Priest
Sent: 17 May 2016 23:57
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Win PV driver documentation

Hi,

I am looking for any some documentation that (hopefully) exists for the sup=
port offered by the drivers.
I read through the material on the website and checked a few of the readme =
files on the driver source code but do not see a document that offers OS su=
pport, performance/capacity information and feature information.  Am I miss=
ing it or is this on the list of activities that need to be done?

Regards,
John Priest | Oracle VM, Director Product Management
1 Oracle Drive | Nashua, NH 03062
Mobile: +1.508.202.2534 | Office: +1.603.897.3223
[Oracle]<http://www.oracle.com/>
[Green Oracle]<http://www.oracle.com/commitment>Oracle is committed to deve=
loping practices and products that help protect the environment


--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"ProgId" content=3D"Word.Document">
<meta name=3D"Generator" content=3D"Microsoft Word 14">
<meta name=3D"Originator" content=3D"Microsoft Word 14">
<link rel=3D"File-List" href=3D"cid:filelist.xml@01D1B0F0.AE6E0320"><link r=
el=3D"Edit-Time-Data" href=3D"cid:editdata.mso"><!--[if !mso]><style>v\:* {=
behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true" DefSemi=
Hidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99" LatentStyleCount=3D=
"267">
<w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D"c=
aption"/>
<w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
<w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph F=
ont"/>
<w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placehold=
er Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revision"=
/>
<w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D"T=
OC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-alt:"Times New Roman";
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1593833729 1073750107 16 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	text-decoration:underline;
	text-underline:single;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-fareast-font-family:Calibri;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";
	mso-ascii-font-family:Tahoma;
	mso-hansi-font-family:Tahoma;
	mso-bidi-font-family:Tahoma;}
span.EmailStyle19
	{mso-style-type:personal;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"blue" vlink=3D"purple" style=3D"tab-interval:3=
6.0pt">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D">Hi,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I don&#8217;t have any sort of feature list, although it would defin=
itely be a good thing to have. The supported OS are somewhat down to how th=
e drivers are built though since the range of OS are dictated by the WDK us=
ed in the build. Currently drivers will
 build with either the 8.0 WDK or the 8.1 WDK.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I&#8217;m not aware of any published performance analysis of the dri=
vers. If anyone in the community can provide these then I would be happy to=
 try to get them linked from the project web page.<o:p></o:p></span></font>=
</p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>Cheers,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;&nbsp;&nbsp;
</span>Paul<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;;mso-ansi-lang=
uage:EN-US;font-weight:bold">From:</span></font></b><font size=3D"2" face=
=3D"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quo=
t;Tahoma&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:&quot;Times N=
ew Roman&quot;;mso-ansi-language:EN-US">
 win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] <b><span s=
tyle=3D"font-weight:bold">On Behalf Of
</span></b>John Priest<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 17 May 2016 23:57<br>
<b><span style=3D"font-weight:bold">To:</span></b> win-pv-devel@lists.xenpr=
oject.org<br>
<b><span style=3D"font-weight:bold">Subject:</span></b> [win-pv-devel] Win =
PV driver documentation<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">Hi,<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">I am looking for any =
some documentation that (hopefully) exists for the support offered by the d=
rivers.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US">I read through the ma=
terial on the website and checked a few of the readme files on the driver s=
ource code but do not see a document that
 offers OS support, performance/capacity information and feature informatio=
n.&nbsp; Am I missing it or is this on the list of activities that need to =
be done?<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><font size=3D"2" color=3D"#595959" face=3D"Verdana"><span lang=3D"=
EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans=
-serif&quot;;color:#595959;mso-ansi-language:EN-US">Regards,<o:p></o:p></sp=
an></font></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><font size=3D"2" color=3D"#666666" face=3D"Verdana"><span lang=3D"=
EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans=
-serif&quot;;color:#666666;mso-ansi-language:EN-US">John Priest |
</span></font><font size=3D"2" color=3D"red" face=3D"Verdana"><span lang=3D=
"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;san=
s-serif&quot;;color:red;mso-ansi-language:EN-US">Oracle VM</span></font><fo=
nt size=3D"2" color=3D"#666666" face=3D"Verdana"><span lang=3D"EN-US" style=
=3D"font-size:10.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;=
;color:#666666;mso-ansi-language:EN-US">,
 Director Product Management<br>
1 Oracle Drive | Nashua, NH 03062<br>
Mobile: &#43;1.508.202.2534 | Office: &#43;1.603.897.3223<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><a href=3D"http://www=
.oracle.com/" target=3D"_blank"><font face=3D"Verdana"><span style=3D"font-=
family:&quot;Verdana&quot;,&quot;sans-serif&quot;;text-decoration:none;text=
-underline:none"><img border=3D"0" width=3D"114" height=3D"26" id=3D"Pictur=
e_x0020_1" src=3D"cid:image001.jpg@01D1B0F0.AE6E0320" alt=3D"Oracle"></span=
></font></a><o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><a href=3D"http://www=
.oracle.com/commitment" target=3D"_blank"><span style=3D"text-decoration:no=
ne;text-underline:none"><img border=3D"0" width=3D"44" height=3D"28" id=3D"=
Picture_x0020_2" src=3D"cid:image002.gif@01D1B0F0.AE6E0320" alt=3D"Green Or=
acle"></span></a></span></font><font size=3D"1" color=3D"#4b7d42" face=3D"V=
erdana"><span lang=3D"EN-US" style=3D"font-size:7.5pt;font-family:&quot;Ver=
dana&quot;,&quot;sans-serif&quot;;color:#4B7D42;mso-ansi-language:EN-US">Or=
acle
 is committed to developing practices and products that help protect the en=
vironment</span></font><b><span lang=3D"EN-US" style=3D"mso-ansi-language:E=
N-US;font-weight:bold"><o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span lang=3D"EN-U=
S" style=3D"font-size:11.0pt;mso-ansi-language:EN-US"><o:p>&nbsp;</o:p></sp=
an></font></p>
</div>
</div>
</body>
</html>

--_000_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_--

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=5744;
	creation-date="Wed, 18 May 2016 09:33:00 GMT";
	modification-date="Wed, 18 May 2016 09:33:00 GMT"
Content-ID: <image001.jpg@01D1B0F0.AE6E0320>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4AJkFkb2JlAGTAAAAAAQMA
FQQDBgoNAAAEwgAADd8AABIgAAAWbv/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgAGgByAwERAAIR
AQMRAf/EAPAAAAIDAQEBAAAAAAAAAAAAAAAIBQYHBAIJAQACAgMBAQAAAAAAAAAAAAAABgQFAwcI
AgEQAAICAwEAAQQDAQAAAAAAAAQFAwYBAgcAFEATFhcSFQgYEQACAgEDAwIDBAYLAAAAAAACAwEE
BRESBgAhEzEUQSIHMjQVNmEjM9Q1lRBAQmKScyRUZKXVEgACAQIDAwcICAQHAAAAAAABAgMRBAAh
EjFRBfBBYXEyEwaBkaHRIiMzFBBAsUJSktI0Y5OjFfGCorLTNQcTAQEAAgICAQQCAgMAAAAAAAER
ACExQRBRYfBxgZFAocHRseHx/9oADAMBAAIRAxEAAAH6Io3U/J5kdvuNltW9S+ave155W+fqB1w1
bVoXD6TaHj56dNz5pzatc1yXdy3aasazbICWpnSzKMmlV5X9wcvjPgdDthiWHT1ajXWKU2zPoS/8
h4nS7M0SxT18X9vZbVvTtOvMbwO3MEXinVCIxW6Wvefn3i8Sff3zYZFRX49tAYLeUyQYfFY2ORTQ
mGzmc1bYpFOAAAAAAAAAAAAAAB//2gAIAQEAAQUCsXQ7a2tPx/8AQ3q70K3KrSgtHaLhK7snbaOD
HYFu1dq3bHZln6R0CKiLYv8AogvR896pTqRXzJmKHod5DoKAab/QzOEaPto6r5d98nej8h6D+8uW
+Zv4OtdB5kmaO61APan1l6GRNbntvV3t9V5bM+YRQd25hLD1O+VW583rvZ+ag1/rjxD0tOIFwcgb
kkvNRJvFhBsIfxGqeDBCXwiLwAMHp1DTIqlUDN7RUrjM2qlWk2iQo4BfxGqeAUqleJavWZ5AFCpX
9D//2gAIAQIAAQUCIYFSlfxsHh2BcRMBLkvMxDoLTE8fxxXU25LE/AMePyDb087QMKDfMkDA7UCD
XNgkxrh1rF/I70U+qk/+7Weknw1PWwyTDY1KnJYbZLnLjOnGyTPJjDxZnDQ4UxcO5W6Dtp4GUWui
LbVTlbrn22mm+PiC+000jxrppp7eGKX2sUWmffaixv8AFGz7EEONfiC+0iii9kYbOdIoovof/9oA
CAEDAAEFAk9Pr4CL73H/ADioV49E2R81ruixLzG0FbqDcOHvMlgyOmVLe1Gb/p4fZSqodjs7YeMN
rT6sRbG00fHwpJtuYyn/AGKp5iqm6HUf1de/AqZef1G7sgVjqWZCqS1CGOvq68dVVLyNIqE3l5Xe
Y5KJVH1bubjmt1Kb89VtaSxIJ6tFN0HS6zx+HJJEk/IX/iCiTJCCyi8isWAOJ2B5UXtjztxtX73X
G7VpLP8AkL/xR553o3ruLQpged9D/9oACAECAgY/AjZ8NUFl7THYOXIY2w8vJgWfElAZ+yw2HlyG
HNuYtCuRnj5i47poRtpj5k5RadXkpXANwumzlJCHq5Z4FBqnc0UY1e5Xo5Vw89wyd4CKUHTnhJG7
RUH0Y705scgN5xr90leY8jhy5jMtPZA9O7HZX4P9Tdt2ctWJlugRDK2oN5/Xj4n+lvViEWlTDC2o
t5vVypidYXMcvfGh9ePkOKTOg9DeX7PXhODWmUa01dAHN5Ptpj5MWtEXskMOb14ilcVuLRvbHPTL
P0UPkOKmSn+VvViQWzaqaa5Hf0jCI0ntBB91t3VgNZkuYsyAG2b8xipnnB3f4Jho7J3kc5mtf0gf
RpcAr04+HH+UY0oAF6MewAK7se8VW6xXGpFUMej6O8Cr3m+meM40/KMFAi6DzUGPhx/lGPdqq9Qp
ipjSvUMe7VV6hT6j/9oACAEDAgY/Ao/EnjaeWO3uPgQx9txvOR2jPLSAKEtVtOPhcU9H68SeJPBU
8kkFv8eGTtoN4yByGeeoEaiGqunFrHxiO+NzPbJL7tqjPrI564/s3Bzf2/E5Fbu2ehFVUtsq1cgT
T2agZMDhuBIuviAuDDQc7htH28+JF4PMZvE1jGj3CVrUMKmi0y/EnOVFDUsDiQSydxwu2TXNL+EZ
0ArlU0JqcgAT0HuR/cptP3xz9P3P9oxacJ4NFdiyZJTKZHoxIQlAtK0pSpPPsxc2kPwYriRB1K5A
x8hG3d26rrkk26VHmqSch59gODa14hclMu8XssejsecLTdXFtFapexWGpjM7k7Ap0qAus+0200yp
TnJHx5/+y07D+z/H8PtdPa/g44bccAZH4nw6HupICwU7EWoqQBXu6itAynbVaY/Y/wBa3/5ccTk8
QsqcS4lAYIoAwZuy66jpqMu8qaGgA26mAxwmbidrHeWJ4XEHRttNRzQ8zDpyOw7wPF3gThlvdSBW
BYGjwVGepM2y2OAVYKa9gk4uf/SvEPt3spYW6na7yE1frc1zGyPW2wjB8Stx8yXNwCZkeBxq156T
StNJpSmylB7OL/h1pKsfCPEMGq2kHYEulqx7qNrDxrlqXXGOzgotoHUHtCaGh6RqkU+cA9GLJ+NQ
iESrMF95ExNImrkjsct+zF1dQWVYJLmRlPewZhnJBzlrs34ki8SxR2sV+ojidpImBlWpC6UkJoQT
uFaLWrDDRxcJ4TLGDky0AbpAe6VvOBiC98T2lvaWqEoixNHQscydImkcmg29kDdXPHfWsjxy71JU
+cY/fXn86T9WO+u5Hll3sxY+c4U3UkkhVaDUxag3CuwdGCLKeaENt0Oy169JGFhuppZIU7Ks7MF5
sgTQZfQLN5pTZrsTW2gdS1pjSt7dhR/Fk/VhbqS5na5TsuZGLL1NWo8mP315/Ok/VgG+mlm07Nbs
1K7tRNMCOK8uljGwCVwB5NWB89PNNp2a3ZqV3aiafUf/2gAIAQEBBj8Cu8M+mmLo3beIiYzuayf3
Kk7XaSE/rlBBJb8kyXkIjgoFegyXX3/g/wDgb+5dUuG/UvFUqdrMRpgs3i9fY3nR28Df1rQkmn8k
SPjIDkYJehwXWcdx65xYKWKzdzFaZCtKnaoLcGmxLt8eIx76+vU8j5CvieWwlJ1ccjXpeRb4TZsK
rCQs8dcwKWuEYKPJtItZGY6VyhrvbYluITm5c6NJVRdUG7BGMazvhJ+kazM9o6pnyLHKxvCuUW71
Hjd0kSokOqPBCpda8hC8JM4W+dIEWnrEwIlHVOUUiyudzNn2WExQbv8AUOjxwxrPHBMJSScEbQ+c
zYIxprJQNiS4XjvLEH7NolJo1iJ2FsG7Gsf5hdcg5ByPIcfZkkWcSjFJx1Py11rfcWq42zLATJmY
tgQHT5dJnvr2wmQs7ZsXsRjbj5Adoy6zTS5u0f7I7znt1OWcj3tx7wp4zHwfjm3bOJL5jgTlaErG
SKdJ+EepR0F6FcQww2I8gY62BxYrgUbgFgx74gLSe4kzfHxiJ6zb71jjN3KwiqvB0aClwJuZaX7u
y91r2SR9vVidoyWhbpn1GBL+GYz8m+4+2v8AOX+y/iH3T+5+z/5PXNKnK0Wa+E5fkPxjF58Kz7Kt
PPdswlvgWbn+OMhIHsgjWwfs7T3dfmj/AKXkX/k9cIVxFD7WG4XlF53LZ19Z1av8tqlZGuobArdH
m/D4AYIYMyLXbtCS659Wwudu8eygc4yjad6qUeMmxWTEIurkD8lVkz32/OPrHxiWfT/6p83zGEUb
65qqvULKOd2NmUhXyG9NYBcYQSDMGLlg6aeUYHrC/RfiE+2xuPVUPkdhMkaaNDHrV4KRTuncugrZ
MiX2rEqDWJiel8LD6TrqU8QSV4bIU+QUne1KjPhGwmGiknhbRug9+knv3T83frieYyFB13kP0jyZ
1+TY1g63X4kLNOE5ORnczyVZpkiyzQvG2VtnsU6LYfIW1jMIIq78NmycmZjutk1sfYRJj8dhkP6e
uSK41kjyRUH4NluYxuVqrQLstXFW516jWTvZIzoMTunSe3brBUbXJPFap4bGVbKvwfPn4316SFOD
evFms9jAmNRmYnqlY4Xet55/FHuyOWp1MZl6rF4q1ClNtjYuY1aYYhqR7fMW2SPbIgXSXP5/z6g5
gCTKljzMdXKY7rYdPitmsUjPxAyjrKY3hOfzHIL1gAuXbGWrZKWpqomEqUNl2GxlJKvK6Zgf2hlM
+sDG3qa9+pWu15mClFtCrKZmPSZU4TDWNevyxx7+S439269vQp1aKImShFOuqsnWfWfGkQDWemjR
pVKUPbL3xUrJrQ5xfac2EgHkaWncp79LnJ4rHZGUwUJm/RrW5VB6b4XNhTNkFtjXT106dZpYzH07
NnX3FirTr13WNxeQvM1SwNup9+8z3/oZkV42gvIOiRdfCnXG40SgYkWWoXDziYCPWfh0RnxrAGZT
JEZYfHERTPrJFNfWZnp9FOGxSaVqYKzTVjqi6tiR02y+uKYU2R2x9qJ9Ovyxx7+S43926ZGMxuPx
0O2y6KFOvUhshu2eT26179m6dNfTXo3P47gnOYUmxrcRQYxhT6kZnXkiKf09M/DMZj8d5tvm9hSr
VPLs3bPJ7da9+zfOmvpr/Uf/2gAIAQEDAT8hcscbEDKWmU2LnDm2NwU77oBExOhc7ikhxuYWtZph
k2iaFmAA9zlmK9DRiPmEZiPhmCbnW/JNxFQECvBRUcxowaKHPQ8tpxLj3h4T1A66WAFRQMLAGYd0
dEm6GKqSbj+bj/iHAEBRgMCS6ktLBnFWUg1nh99DwR2pOOnDER8sNQqEZrxFrCpuOYewHtLM/QBt
dYFB2Y+UD5ieLAC4CYBQFS8uMvG+w9u5c6OLbsdwkEZHMoPU2QoeJXcrmcup0q3CMODj3k3KvkGI
Sfb9lh9WAFUU3k1AHu+2AmOuFKLFfR1p9S9OdlavciQkVVI8Di7LCRRCUZq+NA4VQNx5zuZXCR+m
DAAAGy5ziruKYNINgjReMv8Akt0qW13ub8+B/wB8PDUeoog9GOWGWVVNbld4g+tE7WvQVEevGhFa
kOoZExzGyc5veqO7XOcqVz6P+HajdsnL/B//2gAIAQIDAT8h+Sb5PRs4dd1s0ufTuPmM8T07eeNR
GXa4a1pKOvw9ZNy5PKKHx2zv7TFhqmnpf4MC1FCRUK3fr0XUBz848F9+4U0bVD5I+x26+ny4w6Sb
EYTx71nNA77oXIVu+kcHL+u80uX3B9PbfeQDZB3dlY0cH+gf7x9H6OMamxmpyowr0ZsTiN8dn9Qs
Q5ULvehSq8ROFrjh7hoev7P6WDSkE7dTQ32RL8AzRAKnEE/BPvDkw2WGinClli28284weQvK4/HZ
3GnOGUJOGh+kfpcUgnwYUzYGSVmp2gHKG2TLeDUdIe2VkHCD+crT42H6cB6VDYGgqIrxy/M1nxNo
Cfpz6Z/xnwloAfoy+HqsBX2zvJS4cQj9mO+QiAX7pz4EAFzCvzzi6rfo6wO3kEH7kjn0z/jLG45h
X3mKnX22/wCMubjmFfefwf/aAAgBAwMBPyFni/kk301RIyzH/pYMr/8A0zDZIOmY6WtwTHpsaR1N
4ATZsGAwAcTQIGfJiP3QPqeUA2wwJ2ik/qy4I1hmKPzcU+yADc3+wyshZKEnpXl/0ZBapQISklVy
AEbe8oLXcz2wK4Gv9RExooWAp2sTodUpBpVql4om0N47qM4m6u1IVDQ8XgDfxGYckpl8RLrJdhnQ
UYiXcyTF4odaD02SJ6XtQ1gjmI0DcWSu3gJpN6OJKLWopwEnBK/CV76i7t4zahD2xLaU0kFJDsCq
PwAp+iC9fODN9ftqyJUJURQtTNXqstJwCoYBOwcrMXHjPJVOhJWrUZFXQAH074zlYYCvYqR4INn4
ixcmufVR/vwA1QWax9VX+8CGp5Xxaw6GsnrCdSs5CVl4rnUtwiIsQ00GteHm5XRCxWKV4O33gMwQ
AgPQYI1aAU2jbtbRy+ADrNXrJewQs5h6wEkwGPQID4M7+D1kvYIWcw9fwf/aAAwDAQACEQMRAAAQ
cHkZhHfOM3zq5S4wD9HiCkAAAAAAAA//2gAIAQEDAT8Qc9MJucKIt4eNYXX6C1EgdxZuwT4TWlp6
1AJ+RUdm4IcFYvEiW9qpFjwDvABAh2sfUDTAiPArhPUWHhKnzBIzQmeRFRKIpZPGiQQEfrgTIIid
BDLylBKSOsqKksiw5zTqss0FIQ0LmCcaEBGR05kx5yPPG4fJ0e8/+pMCIfiunlu6MzAOoMsDnDEc
Ns3MY2DwdUcuv+inEkoiabIHoLYBDGifcZ1qVXjz5ZpLtBl6XrnJBnfkCM/ywhxy1s1A6NYlv8yn
5+UZEWpEhgjxWB0dFwcmocj7HZjG1iobVHBDor/DxHBVPCgKlBb1H1I0KO3w1RewGYV3Jo9xwHRc
Ln36AKBUMXpaB8oJzQkqIruUniHNz2C7t4N5UNoVnH40SDAvBrnjiqFO1xKArLnsTMFBImNRWlox
Dl2yxrVU5WAq5SFKjlz6e3XJ34bbP4H/2gAIAQIDAT8QPFf4gdBdhRgIPP8A4eAfg/xoFWjUGBz2
sCuKnFCjdN3WLAZ1ENRjFAISorrPhPiiBQ7rgquiuIA4FANiBUeBUgsTmgO9VUqQIQCVwnplsG10
w4f92RuRoQIpSgBNRVaSTrGCGkDoqwxpOoWKC7YoApHobGFAIoTN2CbjOSJ0B1hXEJwKOkk2jGrt
wP8AfphOTyS90QhcDWoRj5e3ayykQaQBBBkLkDPTpIGvudCXeDYUxGSi4iBYzIMMPUXIdW9liPLc
TFqqKh1SIQaEJSUW/MjRJBrWpa9JwsnFZT0t87g9Li7V9GDquUYDWLIObAkMQQoxiJRR6UxvNyEm
BK0BsVRGbQtS9pXT2h84KMHBxCwBOUroPB0rN2F7gn9eKOyLXZXuAf1hrAQqnMBV2u8QpTW6Sy0s
LOYZ2Xy7WsA072u9+DSjBEGUSUMOXo9Y0ZWqqr7XL4HEk5IjoQlHg8URAZPSlmksrLxX3j80qmn2
ra/LnRM9KWaSysvFff8AB//aAAgBAwMBPxA/hUZcKVejg0hZnvalDdt14yipNa2xwFlem2CB9gXC
zCauCBghBZEnwlGQoWvsHBQi0PSnwGesmHAk6gygqkUUr3myNUlLkg6RRmke2Rq36mSSkExi2T0L
2WIpsLjlr3girVJqqxP812BGdFdFUMIwlC0XOsBSIcgzoXhfAEguJc+1blVQjxCq6PXy0ZAD9kEr
gyFLR2BlIoKzzB2LIaWTCQyM3guisnRROEs+yZcUsBDvPjoMUzlIufyBDQHLA3cIDAE8wjcjWAhV
VWXqqco4ifvAsvrEtCoAgh5DUC8C1svnMS38EFgBzcLw4HbUkS9JBlWHfBwzAfKKC4oUIYevCdau
BOw4ScOjQ6xcrm1SpWpWEqw3iJvQOyGBMgqRCVwYtnoCRqB1NWteAXDRKJAccRRQ2qHvgcGgAADQ
ABkZ1ioCUQACdnL4Tm58pE0Lga+ORYgX3lo8ChdAB0Z9THHMPq5FifwP/9k=

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_
Content-Type: image/gif; name="image002.gif"
Content-Description: image002.gif
Content-Disposition: inline; filename="image002.gif"; size=356;
	creation-date="Wed, 18 May 2016 09:33:00 GMT";
	modification-date="Wed, 18 May 2016 09:33:00 GMT"
Content-ID: <image002.gif@01D1B0F0.AE6E0320>
Content-Transfer-Encoding: base64

R0lGODlhLAAcAMQAAP///0x9RHmec9Pf0aa+oleFULHGrmKNW+nv6I+uivT39N7n3W6VZ7zPuZu2
lsjXxYSmfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAsABwAQAXhICCOZGmeaDoaReC+sKAMR7GopIA6boIvLgPAVSAgALxjSYdrOp/Q6NPg
YqIEPkTBV2taTwgGbEw+PAZo3FfKbqMQQfeJ8DoY0Hg0wxhAKBgHCl5XLgMqDwFCAAIFPIYDgidr
OUQGkSh0cQMJAQyXOXKhoqOkpaanI2aoIwMErq+uCY0BMlANKpxkYwQGBH82TpMicD0pAgQACToD
AchqhAG3KQ4HIlQNnErG0IYqB9EAiEQvwEsozC43hy0CAeXMwsLDLS8MAvf497ruCZ+gOA0gfNt3
AIK0J/JWKVzIsEQIADs=

--_005_1030e4db93f04db4bb2bb9027783a527AMSPEX02CL03citritenet_--


--===============6247994083209667725==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============6247994083209667725==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCZ-0003pz-7N; Thu, 19 May 2016 11:33:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCX-0003pj-Lq
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:13 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 38/54-04050-874AD375; Thu, 19 May 2016 11:33:12 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkoluxxDb
 c4P8WYYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8atpE1PBT/aKY0e/MTUwnmTrYuTkEBKYxSjR
 ut67i5GLg0XgJYvE9gOdbCCOhEA/q8SFXedYQKokBGIkLh5dzARhV0nM3ziRHaJbUaL52gV2k
 AYhgeVMEh9Pb2IFSbAJqEvcfr+YHaLBTuLTrJtgtoiAqsS15cfAVjMLaEk83DCPEcQWFgiUWH
 fhHVgvC1DN1w2HwOp5Bdwl7nxZAbVYTmLv5NVgB3EKeEgsn3GTFeIId4nzXw4yT2AUXMDIsIp
 RvTi1qCy1SNdCL6koMz2jJDcxM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMNwYgGAH44V250OM
 khxMSqK8fxpsw4X4kvJTKjMSizPii0pzUosPMcpwcChJ8LIsBsoJFqWmp1akZeYAAx8mLcHBo
 yTCywGS5i0uSMwtzkyHSJ1i1OXYMvXeWiYhlrz8vFQpcd7pIEUCIEUZpXlwI2BReIlRVkqYlx
 HoKCGegtSi3MwSVPlXjOIcjErCvAtBpvBk5pXAbXoFdAQT0BG3xGxAjihJREhJNTA2Vv7t0Dc
 S+l0Razzds7b6uO80X3EF/zP3Ntgd3BAQ8kv3c/RhsXTRlrspRsGBS/4qfK+xn8V0lMFQLufW
 pj8B8Us8pywVP1aZYHEpPOhLsIVIpe+PXMuOo5vnPzxzfWmN85RqrTe9PysPr+QRnm/rVS3KZ
 HFsybSXv10qV5qqN0+8cO5N3AslluKMREMt5qLiRACKJ0WnvQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1463657591!41006587!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31841 invoked from network); 19 May 2016 11:33:12 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:12 -0000
Received: by mail-wm0-f68.google.com with SMTP id s63so5648075wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=ctGYtqzx1+xNLCTAzsf/C4EwS7RXd4KSJckQDAZcTViAe1VRY6QzoDT7C9EWjutgHl
 McQ+qVVSh95oG4nWPOE/O1/sEC7k7DS0NRu4E3CQfdlLwdXdGC+0UdhZrvMBHVnkWCJg
 kc05CULySshhGabqv1QdsFWC+2MiZ/Q0KkKepsZU4dxpeArURVNAA7l88+1TSeUKVXQj
 CFvgIzy1lmmbzoBHVLUpXArK+QP8N1oEHzRQ9JS3REd0l43mk40vgIl1373/4fBcBdLE
 j9HnmL/9q+LMr2saD44pJktRRo7Jt3Q343vFP0y8OaXr8JE+uc0e2RDb9AcmxZ4YV0nJ
 VM3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=WP3Iv/RmMM5fzFxWkVjapk2EzxF3YBjE6BSyY0iMxDoWaJy3Zi7WUpg0hI4X0FmHPN
 9WUzj/3kK//wO53uwXVfk69BdYMjYvodUDXCjw/004e3NHDY5/s3LgoNc8lUQb4SATXM
 cX+3C0daOHOPsJgVeEpuipZR/e3wlXonEmre3y5oqvgc9v6GGI5Os+cMUrHB0jhxoJas
 ZBPBEmEy3qJZUPCqt2k1GrAccTutZp39G2N9b1Wv0dnwDcr9uwcDg7Kcxhp4eHOcACy9
 LMSrb/LcVzwxqEJ0DsF853adthc+IiFsSKfX4Yg2VDVbTMeb/oVkDW1jK/GUB4mKiWoV
 3l7Q==
X-Gm-Message-State: AOPr4FW1iSILJxeoBFU/KYMe51u1HZ1oyE2IO5xgkBhgyJmj9F/JTzr85ixUVx+0XW7cPQ==
X-Received: by 10.194.86.200 with SMTP id r8mr12567099wjz.158.1463657590654;
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.10
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:10 +0100
Message-Id: <1463657590-11968-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
References: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Defer transmit response event until the
	last possible moment
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiBzZW5kaW5nIHBhY2tldHMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW5hYmxlIGEgdHJhbnNt
aXQgcmVwb25zZQpldmVudCB1bnRpbCB0aGUgcmluZyBmaWxscyBvciB0aGVyZSBhcmUgbm8gbW9y
ZSBwYWNrZXRzIHRvIHNlbmQuCgpUaGlzIHBhdGNoIHRoZXJlZm9yZSBkZWZlcnMgYWR2YW5jaW5n
IHRoZSByaW5nIGV2ZW50IGNvdW50IHVudGlsIGp1c3QKYmVmb3JlIGEgYmF0Y2ggb2YgcGFja2V0
cyBhcmUgcHVzaGVkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCAzICsrLQogMSBmaWxl
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA5
NWMzNDc5Li5iNTVkYWEzIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKKysr
IGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0yNjA0LDcgKzI2MDQsNiBAQCBUcmFuc21p
dHRlclJpbmdQb2xsKAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIAogICAgICAgICBSaW5n
LT5Gcm9udC5yc3BfY29ucyA9IHJzcF9jb25zOwotICAgICAgICBSaW5nLT5TaGFyZWQtPnJzcF9l
dmVudCA9IHJzcF9jb25zICsgMTsKICAgICB9CiAKIGRvbmU6CkBAIC0yNjc4LDYgKzI2NzcsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1ZXN0cygKICNwcmFnbWEgd2FybmluZyAocHVzaCkK
ICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQogCisgICAgUmluZy0+U2hhcmVkLT5yc3Bf
ZXZlbnQgPSBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQ7CisKICAgICAvLyBNYWtlIHRoZSByZXF1
ZXN0cyB2aXNpYmxlIHRvIHRoZSBiYWNrZW5kCiAgICAgUklOR19QVVNIX1JFUVVFU1RTX0FORF9D
SEVDS19OT1RJRlkoJlJpbmctPkZyb250LCBOb3RpZnkpOwogCi0tIAoyLjEuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCW-0003pZ-5E; Thu, 19 May 2016 11:33:12 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCV-0003pM-5R
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:11 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 79/8A-29997-674AD375; Thu, 19 May 2016 11:33:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkolu6xDb
 c4MRmXYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WT7VLaC64IVxz5OYW1g3MPbxcjFISQwm1Gi
 uX0BK4jDInCJReLfrrOMII6EwDsWiedTfjB1MXICOTESB6dcZ4WwqyTmbtrGCGILCShKNF+7w
 A4xajmTxMv5T9lAEmwC6hK33y9mh2iwk/g06yaYLSKgKnFt+TGwGmYBLYmHG+aBDRIWMJD4u/
 UkM4jNAlSzZtUDsMW8Au4S27qWQS2Wk9g7eTXLBEb+BYwMqxjVi1OLylKLdE30kooy0zNKchM
 zc3QNDUz1clOLixPTU3MSk4r1kvNzNzECA4gBCHYw3upzPsQoycGkJMr7p8E2XIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IEL8tioJxgUWp6akVaZg4wlGHSEhw8SiK8HCBp3uKCxNzizHSI1ClGX
 Y4tU++tZRJiycvPS5US55UGKRIAKcoozYMbAYurS4yyUsK8jEBHCfEUpBblZpagyr9iFOdgVB
 LmXQgyhSczrwRu0yugI5iAjrglZgNyREkiQkqqgXHV/ZpFTxymnffV2uBuv+v3peyt3Ae7V15
 2m7urO+19+oovute/R3yta77JwSHx63Z0q0uzk9f8h1+XeRfXfC3k2HxaO8Dn/qP+g2LCvwp4
 L3Utvd9eduTqOru1Do27NluGmlfp7nsyLyyQze6j7RtuY9eJ4h9u8u2WufPx+Le8L/adzuy2z
 DxKLMUZiYZazEXFiQDJjOIqpgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1463657589!24454147!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25139 invoked from network); 19 May 2016 11:33:09 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:09 -0000
Received: by mail-wm0-f68.google.com with SMTP id r12so20224047wme.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=f0YpVIQ/7twGrFqrHBnDjqNJPaV9E61xgX3wul3ydn22aVxX7pbKT5xdkoRWR8Rjsw
 LujbVvoEwGGXbAXcPI2ZpeaUudeA9+08GC6YHa3hg8Bm3tSAkFU7Vogh246cBgZSNqH+
 oS/FHJt4A15xFZVwGb0qDFpuupmKvv2ewFEtjdcGfjo1Bqxw3TVEcHDI/BewcDipUja1
 SSbnRTCmvUqGaSmT1c58hXGWW6Q5p36PJYHlWlYGm6d88tjzgsyqwGdA5TJVBK1VkDYX
 Sel7Ab5dGiHYS2snvcXlqE9tGzrQeumxJswA24eiexvcv9XSVzy4UM1DbJJqYFSN/GXJ
 dJYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=klsUEwWSCfdLsL3bYf2Y7Dzzi1iul6dLTSfAPyJoKtZo6iKNkjBoCxmxUgItOg+/HG
 BEnKzOHdj0i8McMf7JEDwpJX8ujFZ9qEwip1rRD/TaI6gSmz9S/UYujkbLO5vnOVQKKc
 ACavxKgaEBXHB5p2m4pCu1E1sNlkZ1Hn4Cn1lT1rqB3avEI8WvWb2PMklE1e2LJI/oLD
 YG/HfqazcyU9QQzyT9gR4dJ7ntwgO7i2A1Ul6JOeGqGqBY8nNG4OqJCiJbx0/fRgBZNh
 blAl7Ey2LsjhHCiU3PXjp/pi7/YOJLbcSusHTrNsrDkXfk2b9Q8nvCAWkmqq7eoPOtrC
 cFLw==
X-Gm-Message-State: AOPr4FV9gnFJ488Qf+Vb+37RTRPYujUoH+hFxdN4tpYqbNtgMolsacSm4J3a1NAoA9nmPQ==
X-Received: by 10.195.11.197 with SMTP id ek5mr12921733wjd.58.1463657589222;
 Thu, 19 May 2016 04:33:09 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.08
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:08 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:08 +0100
Message-Id: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Affinitize watchdog threads
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VG8gYXZvaWQgYm91bmNpbmcgbG9ja3MgYmV0d2VlbiBDUFVzLCBhZmZpbml0aXplIHRoZSByaW5n
IHdhdGNoZG9nIHRocmVhZAp0byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwgYW5k
IERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+Ci0tLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgMTQgKysrKysrKysrKysrKysKIHNy
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3JlY2VpdmVyLmMg
Yi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggM2QzN2FkMi4uZjJkNTdiYSAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwpAQCAt
MjE3NCwxMiArMjE3NCwyNiBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICApCiB7CiAgICAg
UFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZyA9IENvbnRleHQ7CisgICAgUFJPQ0VTU09SX05V
TUJFUiAgICAgICAgUHJvY051bWJlcjsKKyAgICBHUk9VUF9BRkZJTklUWSAgICAgICAgICBBZmZp
bml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBUaW1lb3V0OwogICAgIFJJTkdfSURY
ICAgICAgICAgICAgICAgIHJzcF9wcm9kOwogICAgIFJJTkdfSURYICAgICAgICAgICAgICAgIHJz
cF9jb25zOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIFRyYWNl
KCI9PT09PlxuIik7CiAKKyAgICAvLworICAgIC8vIEFmZmluaXRpemUgdGhpcyB0aHJlYWQgdG8g
dGhlIHNhbWUgQ1BVIGFzIHRoZSBldmVudCBjaGFubmVsCisgICAgLy8gYW5kIERQQy4KKyAgICAv
LworICAgIHN0YXR1cyA9IEtlR2V0UHJvY2Vzc29yTnVtYmVyRnJvbUluZGV4KFJpbmctPkluZGV4
LCAmUHJvY051bWJlcik7CisgICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7CisKKyAgICBB
ZmZpbml0eS5Hcm91cCA9IFByb2NOdW1iZXIuR3JvdXA7CisgICAgQWZmaW5pdHkuTWFzayA9IChL
QUZGSU5JVFkpMSA8PCBQcm9jTnVtYmVyLk51bWJlcjsKKyAgICBLZVNldFN5c3RlbUdyb3VwQWZm
aW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKKwogICAgIFRpbWVvdXQuUXVhZFBhcnQgPSBU
SU1FX1JFTEFUSVZFKFRJTUVfUyhYRU5WSUZfUkVDRUlWRVJfV0FUQ0hET0dfUEVSSU9EKSk7CiAK
ICAgICByc3BfcHJvZCA9IDA7CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMg
Yi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMzU0MmEwOS4uMTk2MzZiMyAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0
ZXIuYwpAQCAtMzE2NCwxMSArMzE2NCwyNSBAQCBUcmFuc21pdHRlclJpbmdXYXRjaGRvZygKICAg
ICApCiB7CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcgPSBDb250ZXh0Owor
ICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9jTnVtYmVyOworICAgIEdST1VQX0FG
RklOSVRZICAgICAgICAgICAgICBBZmZpbml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAg
ICAgICAgVGltZW91dDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgUGFja2V0c1F1
ZXVlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgVHJh
Y2UoIj09PT0+XG4iKTsKIAorICAgIC8vCisgICAgLy8gQWZmaW5pdGl6ZSB0aGlzIHRocmVhZCB0
byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwKKyAgICAvLyBhbmQgRFBDLgorICAg
IC8vCisgICAgc3RhdHVzID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoUmluZy0+SW5k
ZXgsICZQcm9jTnVtYmVyKTsKKyAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKKworICAg
IEFmZmluaXR5Lkdyb3VwID0gUHJvY051bWJlci5Hcm91cDsKKyAgICBBZmZpbml0eS5NYXNrID0g
KEtBRkZJTklUWSkxIDw8IFByb2NOdW1iZXIuTnVtYmVyOworICAgIEtlU2V0U3lzdGVtR3JvdXBB
ZmZpbml0eVRocmVhZCgmQWZmaW5pdHksIE5VTEwpOworCiAgICAgVGltZW91dC5RdWFkUGFydCA9
IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9UUkFOU01JVFRFUl9XQVRDSERPR19QRVJJT0Qp
KTsKICAgICBQYWNrZXRzUXVldWVkID0gMDsKIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCZ-0003pz-7N; Thu, 19 May 2016 11:33:15 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCX-0003pj-Lq
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:13 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 38/54-04050-874AD375; Thu, 19 May 2016 11:33:12 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkoluxxDb
 c4P8WYYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8atpE1PBT/aKY0e/MTUwnmTrYuTkEBKYxSjR
 ut67i5GLg0XgJYvE9gOdbCCOhEA/q8SFXedYQKokBGIkLh5dzARhV0nM3ziRHaJbUaL52gV2k
 AYhgeVMEh9Pb2IFSbAJqEvcfr+YHaLBTuLTrJtgtoiAqsS15cfAVjMLaEk83DCPEcQWFgiUWH
 fhHVgvC1DN1w2HwOp5Bdwl7nxZAbVYTmLv5NVgB3EKeEgsn3GTFeIId4nzXw4yT2AUXMDIsIp
 RvTi1qCy1SNdCL6koMz2jJDcxM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMNwYgGAH44V250OM
 khxMSqK8fxpsw4X4kvJTKjMSizPii0pzUosPMcpwcChJ8LIsBsoJFqWmp1akZeYAAx8mLcHBo
 yTCywGS5i0uSMwtzkyHSJ1i1OXYMvXeWiYhlrz8vFQpcd7pIEUCIEUZpXlwI2BReIlRVkqYlx
 HoKCGegtSi3MwSVPlXjOIcjErCvAtBpvBk5pXAbXoFdAQT0BG3xGxAjihJREhJNTA2Vv7t0Dc
 S+l0Razzds7b6uO80X3EF/zP3Ntgd3BAQ8kv3c/RhsXTRlrspRsGBS/4qfK+xn8V0lMFQLufW
 pj8B8Us8pywVP1aZYHEpPOhLsIVIpe+PXMuOo5vnPzxzfWmN85RqrTe9PysPr+QRnm/rVS3KZ
 HFsybSXv10qV5qqN0+8cO5N3AslluKMREMt5qLiRACKJ0WnvQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1463657591!41006587!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31841 invoked from network); 19 May 2016 11:33:12 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-14.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:12 -0000
Received: by mail-wm0-f68.google.com with SMTP id s63so5648075wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=ctGYtqzx1+xNLCTAzsf/C4EwS7RXd4KSJckQDAZcTViAe1VRY6QzoDT7C9EWjutgHl
 McQ+qVVSh95oG4nWPOE/O1/sEC7k7DS0NRu4E3CQfdlLwdXdGC+0UdhZrvMBHVnkWCJg
 kc05CULySshhGabqv1QdsFWC+2MiZ/Q0KkKepsZU4dxpeArURVNAA7l88+1TSeUKVXQj
 CFvgIzy1lmmbzoBHVLUpXArK+QP8N1oEHzRQ9JS3REd0l43mk40vgIl1373/4fBcBdLE
 j9HnmL/9q+LMr2saD44pJktRRo7Jt3Q343vFP0y8OaXr8JE+uc0e2RDb9AcmxZ4YV0nJ
 VM3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=WP3Iv/RmMM5fzFxWkVjapk2EzxF3YBjE6BSyY0iMxDoWaJy3Zi7WUpg0hI4X0FmHPN
 9WUzj/3kK//wO53uwXVfk69BdYMjYvodUDXCjw/004e3NHDY5/s3LgoNc8lUQb4SATXM
 cX+3C0daOHOPsJgVeEpuipZR/e3wlXonEmre3y5oqvgc9v6GGI5Os+cMUrHB0jhxoJas
 ZBPBEmEy3qJZUPCqt2k1GrAccTutZp39G2N9b1Wv0dnwDcr9uwcDg7Kcxhp4eHOcACy9
 LMSrb/LcVzwxqEJ0DsF853adthc+IiFsSKfX4Yg2VDVbTMeb/oVkDW1jK/GUB4mKiWoV
 3l7Q==
X-Gm-Message-State: AOPr4FW1iSILJxeoBFU/KYMe51u1HZ1oyE2IO5xgkBhgyJmj9F/JTzr85ixUVx+0XW7cPQ==
X-Received: by 10.194.86.200 with SMTP id r8mr12567099wjz.158.1463657590654;
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.10
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:10 +0100
Message-Id: <1463657590-11968-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
References: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Defer transmit response event until the
	last possible moment
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiBzZW5kaW5nIHBhY2tldHMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW5hYmxlIGEgdHJhbnNt
aXQgcmVwb25zZQpldmVudCB1bnRpbCB0aGUgcmluZyBmaWxscyBvciB0aGVyZSBhcmUgbm8gbW9y
ZSBwYWNrZXRzIHRvIHNlbmQuCgpUaGlzIHBhdGNoIHRoZXJlZm9yZSBkZWZlcnMgYWR2YW5jaW5n
IHRoZSByaW5nIGV2ZW50IGNvdW50IHVudGlsIGp1c3QKYmVmb3JlIGEgYmF0Y2ggb2YgcGFja2V0
cyBhcmUgcHVzaGVkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCAzICsrLQogMSBmaWxl
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA5
NWMzNDc5Li5iNTVkYWEzIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKKysr
IGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0yNjA0LDcgKzI2MDQsNiBAQCBUcmFuc21p
dHRlclJpbmdQb2xsKAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIAogICAgICAgICBSaW5n
LT5Gcm9udC5yc3BfY29ucyA9IHJzcF9jb25zOwotICAgICAgICBSaW5nLT5TaGFyZWQtPnJzcF9l
dmVudCA9IHJzcF9jb25zICsgMTsKICAgICB9CiAKIGRvbmU6CkBAIC0yNjc4LDYgKzI2NzcsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1ZXN0cygKICNwcmFnbWEgd2FybmluZyAocHVzaCkK
ICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQogCisgICAgUmluZy0+U2hhcmVkLT5yc3Bf
ZXZlbnQgPSBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQ7CisKICAgICAvLyBNYWtlIHRoZSByZXF1
ZXN0cyB2aXNpYmxlIHRvIHRoZSBiYWNrZW5kCiAgICAgUklOR19QVVNIX1JFUVVFU1RTX0FORF9D
SEVDS19OT1RJRlkoJlJpbmctPkZyb250LCBOb3RpZnkpOwogCi0tIAoyLjEuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCW-0003pZ-5E; Thu, 19 May 2016 11:33:12 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCV-0003pM-5R
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:11 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 79/8A-29997-674AD375; Thu, 19 May 2016 11:33:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkolu6xDb
 c4MRmXYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WT7VLaC64IVxz5OYW1g3MPbxcjFISQwm1Gi
 uX0BK4jDInCJReLfrrOMII6EwDsWiedTfjB1MXICOTESB6dcZ4WwqyTmbtrGCGILCShKNF+7w
 A4xajmTxMv5T9lAEmwC6hK33y9mh2iwk/g06yaYLSKgKnFt+TGwGmYBLYmHG+aBDRIWMJD4u/
 UkM4jNAlSzZtUDsMW8Au4S27qWQS2Wk9g7eTXLBEb+BYwMqxjVi1OLylKLdE30kooy0zNKchM
 zc3QNDUz1clOLixPTU3MSk4r1kvNzNzECA4gBCHYw3upzPsQoycGkJMr7p8E2XIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IEL8tioJxgUWp6akVaZg4wlGHSEhw8SiK8HCBp3uKCxNzizHSI1ClGX
 Y4tU++tZRJiycvPS5US55UGKRIAKcoozYMbAYurS4yyUsK8jEBHCfEUpBblZpagyr9iFOdgVB
 LmXQgyhSczrwRu0yugI5iAjrglZgNyREkiQkqqgXHV/ZpFTxymnffV2uBuv+v3peyt3Ae7V15
 2m7urO+19+oovute/R3yta77JwSHx63Z0q0uzk9f8h1+XeRfXfC3k2HxaO8Dn/qP+g2LCvwp4
 L3Utvd9eduTqOru1Do27NluGmlfp7nsyLyyQze6j7RtuY9eJ4h9u8u2WufPx+Le8L/adzuy2z
 DxKLMUZiYZazEXFiQDJjOIqpgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1463657589!24454147!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25139 invoked from network); 19 May 2016 11:33:09 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:09 -0000
Received: by mail-wm0-f68.google.com with SMTP id r12so20224047wme.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=f0YpVIQ/7twGrFqrHBnDjqNJPaV9E61xgX3wul3ydn22aVxX7pbKT5xdkoRWR8Rjsw
 LujbVvoEwGGXbAXcPI2ZpeaUudeA9+08GC6YHa3hg8Bm3tSAkFU7Vogh246cBgZSNqH+
 oS/FHJt4A15xFZVwGb0qDFpuupmKvv2ewFEtjdcGfjo1Bqxw3TVEcHDI/BewcDipUja1
 SSbnRTCmvUqGaSmT1c58hXGWW6Q5p36PJYHlWlYGm6d88tjzgsyqwGdA5TJVBK1VkDYX
 Sel7Ab5dGiHYS2snvcXlqE9tGzrQeumxJswA24eiexvcv9XSVzy4UM1DbJJqYFSN/GXJ
 dJYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=klsUEwWSCfdLsL3bYf2Y7Dzzi1iul6dLTSfAPyJoKtZo6iKNkjBoCxmxUgItOg+/HG
 BEnKzOHdj0i8McMf7JEDwpJX8ujFZ9qEwip1rRD/TaI6gSmz9S/UYujkbLO5vnOVQKKc
 ACavxKgaEBXHB5p2m4pCu1E1sNlkZ1Hn4Cn1lT1rqB3avEI8WvWb2PMklE1e2LJI/oLD
 YG/HfqazcyU9QQzyT9gR4dJ7ntwgO7i2A1Ul6JOeGqGqBY8nNG4OqJCiJbx0/fRgBZNh
 blAl7Ey2LsjhHCiU3PXjp/pi7/YOJLbcSusHTrNsrDkXfk2b9Q8nvCAWkmqq7eoPOtrC
 cFLw==
X-Gm-Message-State: AOPr4FV9gnFJ488Qf+Vb+37RTRPYujUoH+hFxdN4tpYqbNtgMolsacSm4J3a1NAoA9nmPQ==
X-Received: by 10.195.11.197 with SMTP id ek5mr12921733wjd.58.1463657589222;
 Thu, 19 May 2016 04:33:09 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.08
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:08 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:08 +0100
Message-Id: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Affinitize watchdog threads
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VG8gYXZvaWQgYm91bmNpbmcgbG9ja3MgYmV0d2VlbiBDUFVzLCBhZmZpbml0aXplIHRoZSByaW5n
IHdhdGNoZG9nIHRocmVhZAp0byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwgYW5k
IERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+Ci0tLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgMTQgKysrKysrKysrKysrKysKIHNy
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3JlY2VpdmVyLmMg
Yi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggM2QzN2FkMi4uZjJkNTdiYSAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwpAQCAt
MjE3NCwxMiArMjE3NCwyNiBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICApCiB7CiAgICAg
UFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZyA9IENvbnRleHQ7CisgICAgUFJPQ0VTU09SX05V
TUJFUiAgICAgICAgUHJvY051bWJlcjsKKyAgICBHUk9VUF9BRkZJTklUWSAgICAgICAgICBBZmZp
bml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBUaW1lb3V0OwogICAgIFJJTkdfSURY
ICAgICAgICAgICAgICAgIHJzcF9wcm9kOwogICAgIFJJTkdfSURYICAgICAgICAgICAgICAgIHJz
cF9jb25zOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIFRyYWNl
KCI9PT09PlxuIik7CiAKKyAgICAvLworICAgIC8vIEFmZmluaXRpemUgdGhpcyB0aHJlYWQgdG8g
dGhlIHNhbWUgQ1BVIGFzIHRoZSBldmVudCBjaGFubmVsCisgICAgLy8gYW5kIERQQy4KKyAgICAv
LworICAgIHN0YXR1cyA9IEtlR2V0UHJvY2Vzc29yTnVtYmVyRnJvbUluZGV4KFJpbmctPkluZGV4
LCAmUHJvY051bWJlcik7CisgICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7CisKKyAgICBB
ZmZpbml0eS5Hcm91cCA9IFByb2NOdW1iZXIuR3JvdXA7CisgICAgQWZmaW5pdHkuTWFzayA9IChL
QUZGSU5JVFkpMSA8PCBQcm9jTnVtYmVyLk51bWJlcjsKKyAgICBLZVNldFN5c3RlbUdyb3VwQWZm
aW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKKwogICAgIFRpbWVvdXQuUXVhZFBhcnQgPSBU
SU1FX1JFTEFUSVZFKFRJTUVfUyhYRU5WSUZfUkVDRUlWRVJfV0FUQ0hET0dfUEVSSU9EKSk7CiAK
ICAgICByc3BfcHJvZCA9IDA7CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMg
Yi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMzU0MmEwOS4uMTk2MzZiMyAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0
ZXIuYwpAQCAtMzE2NCwxMSArMzE2NCwyNSBAQCBUcmFuc21pdHRlclJpbmdXYXRjaGRvZygKICAg
ICApCiB7CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcgPSBDb250ZXh0Owor
ICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9jTnVtYmVyOworICAgIEdST1VQX0FG
RklOSVRZICAgICAgICAgICAgICBBZmZpbml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAg
ICAgICAgVGltZW91dDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgUGFja2V0c1F1
ZXVlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgVHJh
Y2UoIj09PT0+XG4iKTsKIAorICAgIC8vCisgICAgLy8gQWZmaW5pdGl6ZSB0aGlzIHRocmVhZCB0
byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwKKyAgICAvLyBhbmQgRFBDLgorICAg
IC8vCisgICAgc3RhdHVzID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoUmluZy0+SW5k
ZXgsICZQcm9jTnVtYmVyKTsKKyAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKKworICAg
IEFmZmluaXR5Lkdyb3VwID0gUHJvY051bWJlci5Hcm91cDsKKyAgICBBZmZpbml0eS5NYXNrID0g
KEtBRkZJTklUWSkxIDw8IFByb2NOdW1iZXIuTnVtYmVyOworICAgIEtlU2V0U3lzdGVtR3JvdXBB
ZmZpbml0eVRocmVhZCgmQWZmaW5pdHksIE5VTEwpOworCiAgICAgVGltZW91dC5RdWFkUGFydCA9
IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9UUkFOU01JVFRFUl9XQVRDSERPR19QRVJJT0Qp
KTsKICAgICBQYWNrZXRzUXVldWVkID0gMDsKIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCX-0003pk-6I; Thu, 19 May 2016 11:33:13 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCV-0003pT-QH
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:11 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 97/F2-02833-774AD375; Thu, 19 May 2016 11:33:11 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkrFu2xDb
 c4NVdGYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacWr1UsaCvRwVqw8fZ2pg7GfvYuTiEBKYxSix
 e30TE4jDIvCSRaJncSMziCMh0M8q8aF9L0sXIyeQEyOxd85SVgi7UuLItX1gcSEBRYnmaxfYI
 ezlTBL/PkuA2GwC6hK33y9mh6i3k/g06yaYLSKgKnFt+TE2EJtZQEvi4YZ5jCC2sICFxOnrV8
 DiLEA1Mz9/BIvzCrhLNF/qg7pBTmLv5NVgNqeAh8TyGTdZIfa6S5z/cpB5AqPgAkaGVYzqxal
 FZalFukZ6SUWZ6RkluYmZObqGhiZ6uanFxYnpqTmJScV6yfm5mxiB4cYABDsYW+Y4H2KU5GBS
 EuX902AbLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCN30xUE6wKDU9tSItMwcY+DBpCQ4eJRFeD
 pA0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ80qDFAmAFGWU5sGNgEXhJUZZKWFeRqCjhH
 gKUotyM0tQ5V8xinMwKgnzJoNM4cnMK4Hb9AroCCagI26J2YAcUZKIkJJqYORQ/3FqKselDY+
 OPDfdtzthYfFWVkWtx5yVKnZNySc/dZ1QfdP18n7n6eaIFTf2rZd9UFTK72Y580X16SdKC2pv
 H/V8YsEmNfH7G+9VRrwR+kvCD5VZR7QavMq+f7Lr1KEklvqJ33im/3p2f3bXxXOcZdsuT23QS
 VvzhLMxVVBz0sxfR7Lr5/9QYinOSDTUYi4qTgQA4eDSML0CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1463657590!38859090!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32759 invoked from network); 19 May 2016 11:33:10 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:10 -0000
Received: by mail-wm0-f67.google.com with SMTP id s63so5648017wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=XBSJWi21c3NOI6PPxlY16WznbvivtN71VwLUt0r605ve9ARreoBnDSpbY9bjqNCSF8
 I4EKcUI1Du/js8wk5Rdu04FRmwWrglICCJ7N+GaMWXtYxB7zfNk9Ltqkt5ibnCo20pJC
 nomVu2JTyXxCA7LXlK8xjdKapuQ8BiJKhZxjJYf45/dEteeUGPMXjopJP3TpRJo5HEKa
 qtpsYb3GMk+cBwLBg3wtSVlyQYeukHICtTCJq5O34H8mfNmSOkRrUgoOL5F9Oue0QYJF
 zwUG65kkmHm2D8ay7CkvLxufoBwXVNB34kRKBkWKrt2xN7bzAK/A2lhkMuXSxRHttumj
 HCaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=Kzi2AAcCVrO28QtdJLkiH/GozLXDPt6AJMi7/K363EDHoVPB1IaFoK2QVg9HgJz/Ke
 UA/5sG58h4lOgkjo7/i+5YI1a6nkQ3gjmRhqLx82n5SBEfRRamkrItQwqf34R7gMjKuc
 skOp6sDpeahka5RWkfi2htF6f2jbzdpgmduT15DtXiNEj8n4OEX+4kj14vYfnaZaGpaS
 TBitaNiUMrXN8RjHvgmIr/9sokf2guwEKldSBkc/y+fxWGGgin3G7iZem5Pz7MLvAYoy
 QSr+Ey8IdmD9PX3CYwB/XAi3+BKUSFi+ykRydVczJFsCSn0Kv8PowWZuSY4CnimW9OBw
 8Prw==
X-Gm-Message-State: AOPr4FV9SZf1cpacIzwS1tJdBch1cjijjYG68tG+XEY9Jqq2AejFy9wThbzKseFKaCDqxw==
X-Received: by 10.28.132.68 with SMTP id g65mr13490087wmd.91.1463657590003;
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.09
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:09 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:09 +0100
Message-Id: <1463657590-11968-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
References: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Avoid transmitting on the wrong CPU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIHJpbmdzIGhhdmUgRFBDcyBhbmQgZXZlbnQgY2hhbm5l
bHMgYWZmaW5pdGl6ZWQKdG8gYSBwYXJ0aWN1bGFyIENQVS4gVGh1cywgd2hlbiBYRU5ORVQgcXVl
dWVzIGEgbmV3IHBhY2tldCBhdCB0aGUKdHJhbnNtaXQgc2lkZSwgbWFrZSBzdXJlIHRoZSBwYWNr
ZXQgaXMgcHJlcGFyZWQgYW5kIHBvc3RlZCBmcm9tIHRoZQpDUFUgdG8gd2hpY2ggdGhlIERQQyBh
bmQgZXZlbnQgY2hhbm5lbCBhcmUgYm91bmQgdG8gYXZvaWQgbG9jayBjb250ZW50aW9uLgoKU2ln
bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBz
cmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMTk2MzZiMy4uOTVjMzQ3OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJh
bnNtaXR0ZXIuYwpAQCAtNDAwNyw3ICs0MDA3LDkgQEAgX19UcmFuc21pdHRlclJpbmdRdWV1ZVBh
Y2tldCgKICAgICAvLyBncmFiIGl0IHRoZW4gdGhhdCdzIG9rIGJlY2F1c2Ugd2hpY2hldmVyIHRo
cmVhZCBpcyBob2xkaW5nIGl0IHdpbGwgaGF2ZSB0byBjYWxsCiAgICAgLy8gX19UcmFuc21pdHRl
clJpbmdSZWxlYXNlTG9jaygpIGFuZCB3aWxsIHRoZXJlZm9yZSBkcmFpbiB0aGUgYXRvbWljIHBh
Y2tldCBsaXN0LgogCi0gICAgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmlu
ZykpCisgICAgaWYgKFJpbmctPkluZGV4ICE9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4
KE5VTEwpKQorICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwp
OworICAgIGVsc2UgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmluZykpCiAg
ICAgICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CiB9CiAKLS0gCjIuMS4x
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:33:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MCX-0003pk-6I; Thu, 19 May 2016 11:33:13 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MCV-0003pT-QH
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:33:11 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 97/F2-02833-774AD375; Thu, 19 May 2016 11:33:11 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkrFu2xDb
 c4NVdGYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacWr1UsaCvRwVqw8fZ2pg7GfvYuTiEBKYxSix
 e30TE4jDIvCSRaJncSMziCMh0M8q8aF9L0sXIyeQEyOxd85SVgi7UuLItX1gcSEBRYnmaxfYI
 ezlTBL/PkuA2GwC6hK33y9mh6i3k/g06yaYLSKgKnFt+TE2EJtZQEvi4YZ5jCC2sICFxOnrV8
 DiLEA1Mz9/BIvzCrhLNF/qg7pBTmLv5NVgNqeAh8TyGTdZIfa6S5z/cpB5AqPgAkaGVYzqxal
 FZalFukZ6SUWZ6RkluYmZObqGhiZ6uanFxYnpqTmJScV6yfm5mxiB4cYABDsYW+Y4H2KU5GBS
 EuX902AbLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCN30xUE6wKDU9tSItMwcY+DBpCQ4eJRFeD
 pA0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ80qDFAmAFGWU5sGNgEXhJUZZKWFeRqCjhH
 gKUotyM0tQ5V8xinMwKgnzJoNM4cnMK4Hb9AroCCagI26J2YAcUZKIkJJqYORQ/3FqKselDY+
 OPDfdtzthYfFWVkWtx5yVKnZNySc/dZ1QfdP18n7n6eaIFTf2rZd9UFTK72Y580X16SdKC2pv
 H/V8YsEmNfH7G+9VRrwR+kvCD5VZR7QavMq+f7Lr1KEklvqJ33im/3p2f3bXxXOcZdsuT23QS
 VvzhLMxVVBz0sxfR7Lr5/9QYinOSDTUYi4qTgQA4eDSML0CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1463657590!38859090!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32759 invoked from network); 19 May 2016 11:33:10 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-8.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:33:10 -0000
Received: by mail-wm0-f67.google.com with SMTP id s63so5648017wme.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:33:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=XBSJWi21c3NOI6PPxlY16WznbvivtN71VwLUt0r605ve9ARreoBnDSpbY9bjqNCSF8
 I4EKcUI1Du/js8wk5Rdu04FRmwWrglICCJ7N+GaMWXtYxB7zfNk9Ltqkt5ibnCo20pJC
 nomVu2JTyXxCA7LXlK8xjdKapuQ8BiJKhZxjJYf45/dEteeUGPMXjopJP3TpRJo5HEKa
 qtpsYb3GMk+cBwLBg3wtSVlyQYeukHICtTCJq5O34H8mfNmSOkRrUgoOL5F9Oue0QYJF
 zwUG65kkmHm2D8ay7CkvLxufoBwXVNB34kRKBkWKrt2xN7bzAK/A2lhkMuXSxRHttumj
 HCaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=Kzi2AAcCVrO28QtdJLkiH/GozLXDPt6AJMi7/K363EDHoVPB1IaFoK2QVg9HgJz/Ke
 UA/5sG58h4lOgkjo7/i+5YI1a6nkQ3gjmRhqLx82n5SBEfRRamkrItQwqf34R7gMjKuc
 skOp6sDpeahka5RWkfi2htF6f2jbzdpgmduT15DtXiNEj8n4OEX+4kj14vYfnaZaGpaS
 TBitaNiUMrXN8RjHvgmIr/9sokf2guwEKldSBkc/y+fxWGGgin3G7iZem5Pz7MLvAYoy
 QSr+Ey8IdmD9PX3CYwB/XAi3+BKUSFi+ykRydVczJFsCSn0Kv8PowWZuSY4CnimW9OBw
 8Prw==
X-Gm-Message-State: AOPr4FV9SZf1cpacIzwS1tJdBch1cjijjYG68tG+XEY9Jqq2AejFy9wThbzKseFKaCDqxw==
X-Received: by 10.28.132.68 with SMTP id g65mr13490087wmd.91.1463657590003;
 Thu, 19 May 2016 04:33:10 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r5sm13883301wjy.37.2016.05.19.04.33.09
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:33:09 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:33:09 +0100
Message-Id: <1463657590-11968-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
References: <1463657590-11968-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Avoid transmitting on the wrong CPU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIHJpbmdzIGhhdmUgRFBDcyBhbmQgZXZlbnQgY2hhbm5l
bHMgYWZmaW5pdGl6ZWQKdG8gYSBwYXJ0aWN1bGFyIENQVS4gVGh1cywgd2hlbiBYRU5ORVQgcXVl
dWVzIGEgbmV3IHBhY2tldCBhdCB0aGUKdHJhbnNtaXQgc2lkZSwgbWFrZSBzdXJlIHRoZSBwYWNr
ZXQgaXMgcHJlcGFyZWQgYW5kIHBvc3RlZCBmcm9tIHRoZQpDUFUgdG8gd2hpY2ggdGhlIERQQyBh
bmQgZXZlbnQgY2hhbm5lbCBhcmUgYm91bmQgdG8gYXZvaWQgbG9jayBjb250ZW50aW9uLgoKU2ln
bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBz
cmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMTk2MzZiMy4uOTVjMzQ3OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJh
bnNtaXR0ZXIuYwpAQCAtNDAwNyw3ICs0MDA3LDkgQEAgX19UcmFuc21pdHRlclJpbmdRdWV1ZVBh
Y2tldCgKICAgICAvLyBncmFiIGl0IHRoZW4gdGhhdCdzIG9rIGJlY2F1c2Ugd2hpY2hldmVyIHRo
cmVhZCBpcyBob2xkaW5nIGl0IHdpbGwgaGF2ZSB0byBjYWxsCiAgICAgLy8gX19UcmFuc21pdHRl
clJpbmdSZWxlYXNlTG9jaygpIGFuZCB3aWxsIHRoZXJlZm9yZSBkcmFpbiB0aGUgYXRvbWljIHBh
Y2tldCBsaXN0LgogCi0gICAgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmlu
ZykpCisgICAgaWYgKFJpbmctPkluZGV4ICE9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4
KE5VTEwpKQorICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwp
OworICAgIGVsc2UgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmluZykpCiAg
ICAgICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CiB9CiAKLS0gCjIuMS4x
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:35:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MEG-00040a-8T; Thu, 19 May 2016 11:35:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MEE-00040C-MX
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:34:59 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 AD/FC-26599-1E4AD375; Thu, 19 May 2016 11:34:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXiVRvkpHt/iW2
 4wa03lhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y1rXWaaCxqOsFY0Xb7M0MC5az9LFyMUhJDCb
 UeLHqsVsIA6LwCUWiQcr14I5EgLvWCT657awdzFyAjkxEo+3nISyKyXmd89kBbGFBBQlmq9dY
 IcYtYJJ4u/2BYwgCTYBdYnb7xdDNdhJfJp1E8wWEVCVuLb8GBuIzSygJfFwwzywemEBW4mlm8
 +A2SxANbNmtwIt4ODgFXCX+PBACmKMnMTeyatZJjDyL2BkWMWoXpxaVJZapGuil1SUmZ5Rkpu
 YmaNraGCql5taXJyYnpqTmFSsl5yfu4kRGEIMQLCD8Vaf8yFGSQ4mJVHePw224UJ8SfkplRmJ
 xRnxRaU5qcWHGGU4OJQkeDWBISkkWJSanlqRlpkDDGaYtAQHj5IIrylImre4IDG3ODMdInWK0
 Zhjy4Iba5k4tky9t5ZJiCUvPy9VSpyXHaRUAKQ0ozQPbhAsyi4xykoJ8zICnSbEU5BalJtZgi
 r/ilGcg1FJmFcCZApPZl4J3L5XQKcwAZ1yS8wG5JSSRISUVANjtFwip1jOhjXFqYfidbsVfuR
 oc4eIWZzfttdWavqkvTc2SHQlX5E59zr0i3HO6UP1i8/HrGydVdvh9rZmz6cTK0VYTd77WQpE
 N7dsebX8+8aNvXY7fqzoZGDv3yE5RdpW97SHisnVvU7/O33kvjJnm3yd3zuvaZnQCV57hU+8l
 feNjP5E6WUrsRRnJBpqMRcVJwIAZW8Ufq0CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1463657695!36570816!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59792 invoked from network); 19 May 2016 11:34:55 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-13.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:34:55 -0000
Received: by mail-wm0-f66.google.com with SMTP id r12so20237646wme.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:34:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=oWHS2ZJeQteyMb3t/FSgv+q2damHU2YSBBkw5bnRaAT6+InNoGWPsTOii6mERUdtMn
 +3PblzQEY1EA2lN7UmhjSdufzZK0wQXeRvMzkJd2ePWQyVWEXVBvwixq8wWK3ME22UUQ
 0g858ehrw2dfYJydQ1ZAhKmgkGe4nLxMSO4caPtxL5WRRrWkRCBwnTtRa3bHdMGTfZX+
 nuNNqijzySLNIJ3Xvzmux/0d4lfDwuJbSwI9AUIkTqk/G4JYJ0oNWKzjiDvg7Dm3/D5m
 mptnTyXrES5vaPHejsSOEoqeSvNJgaJawNrLkf0NuAN/Y0I9wMw8OLBPVtzLtoQQ/F0M
 SMlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=EQzhXVDmXjVUI8AkUsiJIUh8LyOEwb5zJQU0nV9qBYdPnzdYYDgcjvlyujAUTax/H3
 scyNWQmP0sdYxGTpnq3lFGhQlXgUWveZJ6If/BEslwVL/PMTnSC/n5CRGykR3iMxZdtI
 QVl8GCY5D3ej+QgjlG+zE/A54Kc4LJHfgO1mgTqrUV3VDIuSHv28M3Te+ZdWOUFRjPls
 GXYeECFe5qL5O4Ucz2Ah+GvbJPKnT6T+xvWvh97hM29hSpN2rl4WrKWToU1KMdOr2URT
 +qKcVFY6qrL5Tk5DNq94C6vJ8JO/PEfL8tyS3tJhFa/yQFlTYgEjsnHsXxnT1htjUm6X
 o6eg==
X-Gm-Message-State: AOPr4FXyBkMsDxr7+yDg1aTDWD9XfVPS29vHNUHBWqkBJ7x2za+mVsUP75mTkB9KEp90wg==
X-Received: by 10.28.139.75 with SMTP id n72mr13502410wmd.28.1463657695287;
 Thu, 19 May 2016 04:34:55 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id pm4sm13860309wjb.35.2016.05.19.04.34.54
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:34:54 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:34:53 +0100
Message-Id: <1463657693-14860-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Avoid lock contention between receiving CPUs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHNpbmdsZSBQdXRMaXN0L0dldExpc3QgZm9yIGNhY2hlZCBORVRfQlVGRkVSX0xJU1Qgc3Ry
dWN0dXJlcyBpcwpjdXJyZW50bHkgYSBwb2ludCBvZiBjb250ZW50aW9uLiBUaGlzIHBhdGNoIGdl
dHMgcmlkIG9mIHRoZSBjb250ZW50aW9uCmJ5IGtlZXBpbmcgcGVyLUNQVSBHZXRMaXN0cy4KClRv
IGFjY2VzcyB0aGUgZGVmaW5pdGlvbiBvZiBIVk1fTUFYX1ZDUFVTLCB0aGUgaHZtX2luZm9fdGFi
bGUuaCBoZWFkZXIKbmVlZHMgdG8gYmUgcHVsbGVkIGluIHRoZSBmcm9tIHRoZSBYZW4gc291cmNl
IGJhc2UuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlCmFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBw
dWxsaW5nIGluIFhlbiBoZWFkZXJzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs
LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBnZXRfeGVuX2hlYWRlcnMucHkgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc0ICsrKwogaW5jbHVkZS94ZW4tdHlwZXMuaCAgICAgICAgICAgICAgICAg
ICAgICB8ICA1NSArKwogaW5jbHVkZS94ZW4tdmVyc2lvbi5oICAgICAgICAgICAgICAgICAgICB8
ICAzNyArKwogaW5jbHVkZS94ZW4td2FybmluZ3MuaCAgICAgICAgICAgICAgICAgICB8ICA0MiAr
KwogaW5jbHVkZS94ZW4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKwogaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCB8IDE2OSArKysrKysKIGluY2x1
ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggfCAyMDIgKysrKysrKwogaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oICAgICAgICB8IDMzOCArKysrKysrKysrKwogaW5j
bHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oICB8ICA3NCArKysKIGluY2x1ZGUv
eGVuL3B1YmxpYy94ZW4tY29tcGF0LmggICAgICAgICAgfCAgNDQgKysKIGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCA5OTUgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzOCAr
LQogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgMiArLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgNSArLQogMTQgZmlsZXMg
Y2hhbmdlZCwgMjA5OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBnZXRfeGVuX2hlYWRlcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi10eXBlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4tdmVyc2lvbi5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4td2FybmluZ3MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGluY2x1ZGUveGVuLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl8zMi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vcHVibGlj
L2FyY2gteDg2L3hlbi14ODZfNjQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy9hcmNoLXg4Ni94ZW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1Ymxp
Yy9odm0vaHZtX2luZm9fdGFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4tY29tcGF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMv
eGVuLmgKCmRpZmYgLS1naXQgYS9nZXRfeGVuX2hlYWRlcnMucHkgYi9nZXRfeGVuX2hlYWRlcnMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0ZDBmNgotLS0gL2Rldi9u
dWxsCisrKyBiL2dldF94ZW5faGVhZGVycy5weQpAQCAtMCwwICsxLDc0IEBACisjIXB5dGhvbiAt
dQorCitpbXBvcnQgb3MsIHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCByZQorCitkZWYgc2hlbGwoY29tbWFuZCwgZGlyID0gJy4nKToKKyAgICBwcmludCgiaW4g
JyVzJyBleGVjdXRlICclcyciICUgKGRpciwgJyAnLmpvaW4oY29tbWFuZCkpKQorICAgIHN5cy5z
dGRvdXQuZmx1c2goKQorCisgICAgc3ViID0gc3VicHJvY2Vzcy5Qb3BlbignICcuam9pbihjb21t
YW5kKSwgY3dkPWRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5T
VERPVVQpCisKKyAgICBmb3IgbGluZSBpbiBzdWIuc3Rkb3V0OgorICAgICAgICBwcmludChsaW5l
LmRlY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpLnJzdHJpcCgpKQorCisgICAgc3ViLndh
aXQoKQorCisgICAgcmV0dXJuIHN1Yi5yZXR1cm5jb2RlCisKK2RlZiBnZXRfcmVwbyh1cmwsIHdv
cmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2Nsb25lJywgJy0tbm8tY2hlY2tvdXQnLCB1cmws
IHdvcmtpbmddKQorCitkZWYgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpOgorICAgIHNoZWxsKFsn
Z2l0JywgJ2NoZWNrb3V0JywgJy1iJywgJ3RtcCcsIHRhZ10sIHdvcmtpbmcpCisKK2RlZiBwdXRf
YnJhbmNoKHdvcmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2NoZWNrb3V0JywgJ21hc3Rlcidd
LCB3b3JraW5nKQorICAgIHNoZWxsKFsnZ2l0JywgJ2JyYW5jaCcsICctZCcsICd0bXAnXSwgd29y
a2luZykKKworZGVmIGNvcHlfZmlsZSh3b3JraW5nLCBkaXIsIG5hbWUpOgorICAgIHRyeToKKyAg
ICAgICAgb3MubWFrZWRpcnMoJ2luY2x1ZGVcXHhlblxcJXMnICUgZGlyKQorICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgICBOb25lCisKKyAgICBzcmMgPSBvcGVuKCclc1xceGVuXFxpbmNsdWRl
XFwlc1xcJXMnICUgKHdvcmtpbmcsIGRpciwgbmFtZSksICdyJykKKyAgICBkc3QgPSBvcGVuKCdp
bmNsdWRlXFx4ZW5cXCVzXFwlcycgJSAoZGlyLCBuYW1lKSwgJ3cnLCBuZXdsaW5lPSdcbicpCisK
KyAgICBwcmludChuYW1lKQorCisgICAgZm9yIGxpbmUgaW4gc3JjOgorICAgICAgICBsaW5lID0g
cmUuc3ViKCcgdW5zaWduZWQgbG9uZycsICcgVUxPTkdfUFRSJywgbGluZSkKKyAgICAgICAgbGlu
ZSA9IHJlLnN1YignXCh1bnNpZ25lZCBsb25nJywgJyhVTE9OR19QVFInLCBsaW5lKQorICAgICAg
ICBsaW5lID0gcmUuc3ViKCcgbG9uZycsICcgTE9OR19QVFInLCBsaW5lKQorICAgICAgICBsaW5l
ID0gcmUuc3ViKCdcKGxvbmcnLCAnKExPTkdfUFRSJywgbGluZSkKKyAgICAgICAgZHN0LndyaXRl
KGxpbmUpCisKKyAgICBkc3QuY2xvc2UoKQorICAgIHNyYy5jbG9zZSgpCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdGFnID0gc3lzLmFyZ3ZbMV0KKyAgICB3b3JraW5nID0gc3lz
LmFyZ3ZbMl0KKworICAgIGdldF9yZXBvKCdnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcveGVuLmdpdCcs
IHdvcmtpbmcpCisgICAgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpCisKKyAgICBzaGVsbChbJ2dp
dCcsICdybScsICctcicsICctZicsICd4ZW4nXSwgJ2luY2x1ZGUnKQorCisgICAgY29weV9maWxl
KHdvcmtpbmcsICdwdWJsaWMnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVi
bGljJywgJ3hlbi1jb21wYXQuaCcpCisKKyAgICBjb3B5X2ZpbGUod29ya2luZywgJ3B1YmxpY1xc
YXJjaC14ODYnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxhcmNo
LXg4NicsICd4ZW4teDg2XzMyLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxh
cmNoLXg4NicsICd4ZW4teDg2XzY0LmgnKQorCisgICAgY29weV9maWxlKHdvcmtpbmcsICdwdWJs
aWNcXGh2bScsICdodm1faW5mb190YWJsZS5oJykKKworICAgIHB1dF9icmFuY2god29ya2luZykK
KworICAgIHNoZWxsKFsnZ2l0JywgJ2FkZCcsICd4ZW4nXSwgJ2luY2x1ZGUnKQpkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4tdHlwZXMuaCBiL2luY2x1ZGUveGVuLXR5cGVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVlZDYxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1
ZGUveGVuLXR5cGVzLmgKQEAgLTAsMCArMSw1NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5fVFlQ
RVNfSAorI2RlZmluZSBfWEVOX1RZUEVTX0gKKworI2luY2x1ZGUgPG50ZGRrLmg+CisKKy8vIERl
ZmluZSB0eXBlcyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVycworCit0eXBlZGVmIENI
QVIgICAgaW50OF90OwordHlwZWRlZiBTSE9SVCAgIGludDE2X3Q7Cit0eXBlZGVmIExPTkcgICAg
aW50MzJfdDsKK3R5cGVkZWYgTE9ORzY0ICBpbnQ2NF90OworCit0eXBlZGVmIFVDSEFSICAgdWlu
dDhfdDsKK3R5cGVkZWYgVVNIT1JUICB1aW50MTZfdDsKK3R5cGVkZWYgVUxPTkcgICB1aW50MzJf
dDsKK3R5cGVkZWYgVUxPTkc2NCB1aW50NjRfdDsKKworI2RlZmluZSBvZmZzZXRvZihfdHlwZSwg
X2ZpZWxkKSBGSUVMRF9PRkZTRVQoX3R5cGUsIF9maWVsZCkKKworI2RlZmluZSB4ZW5fbWIoKSAg
ICBLZU1lbW9yeUJhcnJpZXIoKQorI2RlZmluZSB4ZW5fd21iKCkgICBLZU1lbW9yeUJhcnJpZXIo
KQorI2RlZmluZSB4ZW5fcm1iKCkgICBLZW1lbW9yeUJhcnJpZXIoKQorCisjZW5kaWYgIC8vIF9Y
RU5fVFlQRVNfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4tdmVyc2lvbi5oIGIvaW5jbHVkZS94
ZW4tdmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYTgwN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi12ZXJzaW9uLmgKQEAgLTAsMCArMSwzNyBA
QAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIF9YRU5fVkVSU0lPTl9ICisjZGVmaW5lIF9YRU5fVkVSU0lPTl9I
CisKKyNkZWZpbmUgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBfX1hFTl9MQVRFU1RfSU5URVJG
QUNFX1ZFUlNJT05fXworCisjZW5kaWYgIC8vIF9YRU5fVkVSU0lPTl9ICmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi13YXJuaW5ncy5oIGIvaW5jbHVkZS94ZW4td2FybmluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGFlNmFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5j
bHVkZS94ZW4td2FybmluZ3MuaApAQCAtMCwwICsxLDQyIEBACisvKiBDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hF
Tl9XQVJOSU5HU19ICisjZGVmaW5lIF9YRU5fV0FSTklOR1NfSAorCisjaW5jbHVkZSA8bnRkZGsu
aD4KKworLy8gRGlzYWJsZSB3YXJuaW5ncyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVy
cworCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDIxNCkgLy8gbm9uc3RhbmRhcmQgZXh0ZW5z
aW9uIHVzZWQgOiBiaXQgZmllbGQgdHlwZXMgb3RoZXIgdGhhbiBpbnQKKyMgcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZTo0MjAwKSAvLyBub25zdGFuZGFyZCBleHRlbnNpb24gdXNlZCA6IHplcm8tc2l6
ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCisKKyNlbmRpZiAgLy8gX1hFTl9XQVJOSU5HU19ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi5oIGIvaW5jbHVkZS94ZW4uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yN2MxMTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94
ZW4uaApAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hFTl9ICisjZGVmaW5lIF9Y
RU5fSAorCisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHhlbi12ZXJzaW9uLmg+Cisj
aW5jbHVkZSA8eGVuLXR5cGVzLmg+CisjaW5jbHVkZSA8eGVuLXdhcm5pbmdzLmg+CisKKyNpbmNs
dWRlIDxwdWJsaWMvaHZtL2h2bV9pbmZvX3RhYmxlLmg+CisKKyNlbmRpZiAgLy8gX1hFTl9ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMjMzNDBiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v
cHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICogeGVuLXg4Nl8zMi5oCisgKgorICogR3Vlc3QgT1MgaW50ZXJmYWNl
IHRvIHg4NiAzMi1iaXQgWGVuLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQt
MjAwNywgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hF
Tl9YODZfMzJfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hf
XworCisvKgorICogSHlwZXJjYWxsIGludGVyZmFjZToKKyAqICBJbnB1dDogICVlYngsICVlY3gs
ICVlZHgsICVlc2ksICVlZGksICVlYnAgKGFyZ3VtZW50cyAxLTYpCisgKiAgT3V0cHV0OiAlZWF4
CisgKiBBY2Nlc3MgaXMgdmlhIGh5cGVyY2FsbCBwYWdlIChzZXQgdXAgYnkgZ3Vlc3QgbG9hZGVy
IG9yIHZpYSBhIFhlbiBNU1IpOgorICogIGNhbGwgaHlwZXJjYWxsX3BhZ2UgKyBoeXBlcmNhbGwt
bnVtYmVyICogMzIKKyAqIENsb2JiZXJlZDogQXJndW1lbnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFy
ZyBoeXBlcmNhbGwgY2xvYmJlcnMgJWVieCwlZWN4KQorICovCisKKy8qCisgKiBUaGVzZSBmbGF0
IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXByaXZhdGUgc2VjdGlvbiBvZiBldmVyeSBHRFQuIFNp
bmNlIHRoZXNlCisgKiBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBpbml0aWFsIEdEVCwgbWFueSBP
U2VzIHdpbGwgYmUgYWJsZSB0byBhdm9pZAorICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgor
ICovCisjZGVmaW5lIEZMQVRfUklORzFfQ1MgMHhlMDE5ICAgIC8qIEdEVCBpbmRleCAyNTkgKi8K
KyNkZWZpbmUgRkxBVF9SSU5HMV9EUyAweGUwMjEgICAgLyogR0RUIGluZGV4IDI2MCAqLworI2Rl
ZmluZSBGTEFUX1JJTkcxX1NTIDB4ZTAyMSAgICAvKiBHRFQgaW5kZXggMjYwICovCisjZGVmaW5l
IEZMQVRfUklORzNfQ1MgMHhlMDJiICAgIC8qIEdEVCBpbmRleCAyNjEgKi8KKyNkZWZpbmUgRkxB
VF9SSU5HM19EUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLworI2RlZmluZSBGTEFUX1JJ
TkczX1NTIDB4ZTAzMyAgICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfQ1MgRkxBVF9SSU5HMV9DUworI2RlZmluZSBGTEFUX0tFUk5FTF9EUyBGTEFUX1JJTkcxX0RT
CisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTIEZMQVRfUklORzFfU1MKKyNkZWZpbmUgRkxBVF9VU0VS
X0NTICAgIEZMQVRfUklORzNfQ1MKKyNkZWZpbmUgRkxBVF9VU0VSX0RTICAgIEZMQVRfUklORzNf
RFMKKyNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNfU1MKKworI2RlZmluZSBfX0hZ
UEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZU19WSVJU
X0VORF9QQUUgICAgICAgMHhGNjgwMDAwMAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlRf
UEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKKyNkZWZp
bmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAg
IHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCisKKy8qIE5vbi1QQUUgYm91
bmRzIGFyZSBvYnNvbGV0ZS4gKi8KKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9O
UEFFIDB4RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgIDB4
RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFICAgIDB4RkM0MDAw
MDAKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAgIFwKKyAgICB4ZW5fbWtf
dWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQorI2RlZmluZSBNQUNIMlBIWVNf
VklSVF9TVEFSVF9OT05QQUUgICAgXAorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X1NUQVJUX05PTlBBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBBRSAgICAgIFwK
KyAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFKQorCisjZGVmaW5l
IF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRQorI2Rl
ZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRQor
I2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUK
KworI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJU
X1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNlbmRpZgorCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9TVEFSVCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01B
Q0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQ
SFlTX1ZJUlRfRU5ELU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MikKKyNpZm5kZWYgbWFjaGluZV90
b19waHlzX21hcHBpbmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19Q
VFIgKilNQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNlbmRpZgorCisvKiAzMi0vNjQtYml0IGludmFy
aWFiaWxpdHkgZm9yIGNvbnRyb2wgaW50ZXJmYWNlcyAoZG9tY3RsL3N5c2N0bCkuICovCisjaWYg
ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisjdW5kZWYgX19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUKKyNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBl
ICpwOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX2d1ZXN0
X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0
eXBlZGVmIHN0cnVjdCB7IHVuaW9uIHsgdHlwZSAqcDsgdWludDY0X2FsaWduZWRfdCBxOyB9OyB9
ICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisjdW5kZWYgc2V0X3hlbl9n
dWVzdF9oYW5kbGVfcmF3CisjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZh
bCkgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDggKSAq
KHVpbnQ2NF90ICopJihobmQpID0gMDsgICBcCisgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoIDAgKQorI2Rl
ZmluZSAgaW50NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KQorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoOCkpKQorI2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19ndWVzdF9oYW5k
bGVfNjRfICMjIG5hbWUKKyNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hFTl9H
VUVTVF9IQU5ETEVfNjQobmFtZSkKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCitz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7CisgICAgdWludDMyX3QgZWJ4OworICAgIHVpbnQzMl90IGVj
eDsKKyAgICB1aW50MzJfdCBlZHg7CisgICAgdWludDMyX3QgZXNpOworICAgIHVpbnQzMl90IGVk
aTsKKyAgICB1aW50MzJfdCBlYnA7CisgICAgdWludDMyX3QgZWF4OworICAgIHVpbnQxNl90IGVy
cm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KKyAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7ICAv
KiBwcml2YXRlICovCisgICAgdWludDMyX3QgZWlwOworICAgIHVpbnQxNl90IGNzOworICAgIHVp
bnQ4X3QgIHNhdmVkX3VwY2FsbF9tYXNrOworICAgIHVpbnQ4X3QgIF9wYWQwOworICAgIHVpbnQz
Ml90IGVmbGFnczsgICAgICAgIC8qIGVmbGFncy5JRiA9PSAhc2F2ZWRfdXBjYWxsX21hc2sgKi8K
KyAgICB1aW50MzJfdCBlc3A7CisgICAgdWludDE2X3Qgc3MsIF9wYWQxOworICAgIHVpbnQxNl90
IGVzLCBfcGFkMjsKKyAgICB1aW50MTZfdCBkcywgX3BhZDM7CisgICAgdWludDE2X3QgZnMsIF9w
YWQ0OworICAgIHVpbnQxNl90IGdzLCBfcGFkNTsKK307Cit0eXBlZGVmIHN0cnVjdCBjcHVfdXNl
cl9yZWdzIGNwdV91c2VyX3JlZ3NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2Vy
X3JlZ3NfdCk7CisKKy8qCisgKiBQYWdlLWRpcmVjdG9yeSBhZGRyZXNzZXMgYWJvdmUgNEdCIGRv
IG5vdCBmaXQgaW50byBhcmNoaXRlY3R1cmFsICVjcjMuCisgKiBXaGVuIGFjY2Vzc2luZyAlY3Iz
LCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVfZ3Vlc3RfY29udGV4dCwgZ3Vlc3RzCisgKiBt
dXN0IHVzZSB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIG1hY3JvcyB0byBwYWNrL3VucGFjayB2YWxp
ZCBNRk5zLgorICovCisjZGVmaW5lIHhlbl9wZm5fdG9fY3IzKHBmbikgKCgodW5zaWduZWQpKHBm
bikgPDwgMTIpIHwgKCh1bnNpZ25lZCkocGZuKSA+PiAyMCkpCisjZGVmaW5lIHhlbl9jcjNfdG9f
cGZuKGNyMykgKCgodW5zaWduZWQpKGNyMykgPj4gMTIpIHwgKCh1bnNpZ25lZCkoY3IzKSA8PCAy
MCkpCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7CisgICAgVUxPTkdfUFRSIGNyMjsKKyAgICBV
TE9OR19QVFIgcGFkWzVdOyAvKiBzaXplb2YodmNwdV9pbmZvX3QpID09IDY0ICovCit9OwordHlw
ZWRlZiBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKKworc3RydWN0IHhl
bl9jYWxsYmFjayB7CisgICAgVUxPTkdfUFRSIGNzOworICAgIFVMT05HX1BUUiBlaXA7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2NhbGxiYWNrIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyog
IV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9Y
ODZfMzJfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj
LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0
CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVuL3B1Ymxp
Yy9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmY1M2Y2OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmgKQEAgLTAsMCArMSwyMDIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqIHhlbi14ODZfNjQuaAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgNjQtYml0
IFhlbi4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAq
IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ
TiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEsgQSBGcmFz
ZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0X0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX1g4Nl82NF9IX18KKworLyoKKyAqIEh5
cGVyY2FsbCBpbnRlcmZhY2U6CisgKiAgSW5wdXQ6ICAlcmRpLCAlcnNpLCAlcmR4LCAlcjEwLCAl
cjgsICVyOSAoYXJndW1lbnRzIDEtNikKKyAqICBPdXRwdXQ6ICVyYXgKKyAqIEFjY2VzcyBpcyB2
aWEgaHlwZXJjYWxsIHBhZ2UgKHNldCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1T
Uik6CisgKiAgY2FsbCBoeXBlcmNhbGxfcGFnZSArIGh5cGVyY2FsbC1udW1iZXIgKiAzMgorICog
Q2xvYmJlcmVkOiBhcmd1bWVudCByZWdpc3RlcnMgKGUuZy4sIDItYXJnIGh5cGVyY2FsbCBjbG9i
YmVycyAlcmRpLCVyc2kpCisgKi8KKworLyoKKyAqIDY0LWJpdCBzZWdtZW50IHNlbGVjdG9ycwor
ICogVGhlc2UgZmxhdCBzZWdtZW50cyBhcmUgaW4gdGhlIFhlbi1wcml2YXRlIHNlY3Rpb24gb2Yg
ZXZlcnkgR0RULiBTaW5jZSB0aGVzZQorICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUgaW5pdGlh
bCBHRFQsIG1hbnkgT1NlcyB3aWxsIGJlIGFibGUgdG8gYXZvaWQKKyAqIGluc3RhbGxpbmcgdGhl
aXIgb3duIEdEVC4KKyAqLworCisjZGVmaW5lIEZMQVRfUklORzNfQ1MzMiAweGUwMjMgIC8qIEdE
VCBpbmRleCAyNjAgKi8KKyNkZWZpbmUgRkxBVF9SSU5HM19DUzY0IDB4ZTAzMyAgLyogR0RUIGlu
ZGV4IDI2MSAqLworI2RlZmluZSBGTEFUX1JJTkczX0RTMzIgMHhlMDJiICAvKiBHRFQgaW5kZXgg
MjYyICovCisjZGVmaW5lIEZMQVRfUklORzNfRFM2NCAweDAwMDAgIC8qIE5VTEwgc2VsZWN0b3Ig
Ki8KKyNkZWZpbmUgRkxBVF9SSU5HM19TUzMyIDB4ZTAyYiAgLyogR0RUIGluZGV4IDI2MiAqLwor
I2RlZmluZSBGTEFUX1JJTkczX1NTNjQgMHhlMDJiICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNk
ZWZpbmUgRkxBVF9LRVJORUxfRFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfRFMzMiBGTEFUX1JJTkczX0RTMzIKKyNkZWZpbmUgRkxBVF9LRVJORUxfRFMgICBGTEFUX0tF
Uk5FTF9EUzY0CisjZGVmaW5lIEZMQVRfS0VSTkVMX0NTNjQgRkxBVF9SSU5HM19DUzY0CisjZGVm
aW5lIEZMQVRfS0VSTkVMX0NTMzIgRkxBVF9SSU5HM19DUzMyCisjZGVmaW5lIEZMQVRfS0VSTkVM
X0NTICAgRkxBVF9LRVJORUxfQ1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzY0IEZMQVRfUklO
RzNfU1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzMyIEZMQVRfUklORzNfU1MzMgorI2RlZmlu
ZSBGTEFUX0tFUk5FTF9TUyAgIEZMQVRfS0VSTkVMX1NTNjQKKworI2RlZmluZSBGTEFUX1VTRVJf
RFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9VU0VSX0RTMzIgRkxBVF9SSU5HM19E
UzMyCisjZGVmaW5lIEZMQVRfVVNFUl9EUyAgIEZMQVRfVVNFUl9EUzY0CisjZGVmaW5lIEZMQVRf
VVNFUl9DUzY0IEZMQVRfUklORzNfQ1M2NAorI2RlZmluZSBGTEFUX1VTRVJfQ1MzMiBGTEFUX1JJ
TkczX0NTMzIKKyNkZWZpbmUgRkxBVF9VU0VSX0NTICAgRkxBVF9VU0VSX0NTNjQKKyNkZWZpbmUg
RkxBVF9VU0VSX1NTNjQgRkxBVF9SSU5HM19TUzY0CisjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZM
QVRfUklORzNfU1MzMgorI2RlZmluZSBGTEFUX1VTRVJfU1MgICBGTEFUX1VTRVJfU1M2NAorCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAorI2RlZmlu
ZSBfX0hZUEVSVklTT1JfVklSVF9FTkQgICAweEZGRkY4ODAwMDAwMDAwMDAKKyNkZWZpbmUgX19N
QUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQ
SFlTX1ZJUlRfRU5EICAgIDB4RkZGRjgwNDAwMDAwMDAwMAorCisjaWZuZGVmIEhZUEVSVklTT1Jf
VklSVF9TVEFSVAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgeGVuX21rX3Vsb25nKF9f
SFlQRVJWSVNPUl9WSVJUX1NUQVJUKQorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfRU5EICAgeGVu
X21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNlbmRpZgorCisjZGVmaW5lIE1BQ0gy
UEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNk
ZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQSFlTX1ZJUlRfRU5E
LU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MykKKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBp
bmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19QVFIgKilIWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCisjZW5kaWYKKworLyoKKyAqIGludCBIWVBFUlZJU09SX3NldF9zZWdt
ZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCBVTE9OR19QVFIgYmFzZSkKKyAqICBAd2hpY2gg
PT0gU0VHQkFTRV8qICA7ICBAYmFzZSA9PSA2NC1iaXQgYmFzZSBhZGRyZXNzCisgKiBSZXR1cm5z
IDAgb24gc3VjY2Vzcy4KKyAqLworI2RlZmluZSBTRUdCQVNFX0ZTICAgICAgICAgIDAKKyNkZWZp
bmUgU0VHQkFTRV9HU19VU0VSICAgICAxCisjZGVmaW5lIFNFR0JBU0VfR1NfS0VSTkVMICAgMgor
I2RlZmluZSBTRUdCQVNFX0dTX1VTRVJfU0VMIDMgLyogU2V0IHVzZXIgJWdzIHNwZWNpZmllZCBp
biBiYXNlWzE1OjBdICovCisKKy8qCisgKiBpbnQgSFlQRVJWSVNPUl9pcmV0KHZvaWQpCisgKiBB
bGwgYXJndW1lbnRzIGFyZSBvbiB0aGUga2VybmVsIHN0YWNrLCBpbiB0aGUgZm9sbG93aW5nIGZv
cm1hdC4KKyAqIE5ldmVyIHJldHVybnMgaWYgc3VjY2Vzc2Z1bC4gQ3VycmVudCBrZXJuZWwgY29u
dGV4dCBpcyBsb3N0LgorICogVGhlIHNhdmVkIENTIGlzIG1hcHBlZCBhcyBmb2xsb3dzOgorICog
ICBSSU5HMCAtPiBSSU5HMyBrZXJuZWwgbW9kZS4KKyAqICAgUklORzEgLT4gUklORzMga2VybmVs
IG1vZGUuCisgKiAgIFJJTkcyIC0+IFJJTkczIGtlcm5lbCBtb2RlLgorICogICBSSU5HMyAtPiBS
SU5HMyB1c2VyIG1vZGUuCisgKiBIb3dldmVyIFJJTkcwIGluZGljYXRlcyB0aGF0IHRoZSBndWVz
dCBrZXJuZWwgc2hvdWxkIHJldHVybiB0byBpdGVzZWxmCisgKiBkaXJlY3RseSB3aXRoCisgKiAg
ICAgIG9yYiAgICQzLDEqOCglcnNwKQorICogICAgICBpcmV0cQorICogSWYgZmxhZ3MgY29udGFp
bnMgVkdDRl9pbl9zeXNjYWxsOgorICogICBSZXN0b3JlIFJBWCwgUklQLCBSRkxBR1MsIFJTUC4K
KyAqICAgRGlzY2FyZCBSMTEsIFJDWCwgQ1MsIFNTLgorICogT3RoZXJ3aXNlOgorICogICBSZXN0
b3JlIFJBWCwgUjExLCBSQ1gsIENTOlJJUCwgUkZMQUdTLCBTUzpSU1AuCisgKiBBbGwgb3RoZXIg
cmVnaXN0ZXJzIGFyZSBzYXZlZCBvbiBoeXBlcmNhbGwgZW50cnkgYW5kIHJlc3RvcmVkIHRvIHVz
ZXIuCisgKi8KKy8qIEd1ZXN0IGV4aXRlZCBpbiBTWVNDQUxMIGNvbnRleHQ/IFJldHVybiB0byBn
dWVzdCB3aXRoIFNZU1JFVD8gKi8KKyNkZWZpbmUgX1ZHQ0ZfaW5fc3lzY2FsbCA4CisjZGVmaW5l
IFZHQ0ZfaW5fc3lzY2FsbCAgKDE8PF9WR0NGX2luX3N5c2NhbGwpCisjZGVmaW5lIFZHQ0ZfSU5f
U1lTQ0FMTCAgVkdDRl9pbl9zeXNjYWxsCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3N0cnVj
dCBpcmV0X2NvbnRleHQgeworICAgIC8qIFRvcCBvZiBzdGFjayAoJXJzcCBhdCBwb2ludCBvZiBo
eXBlcmNhbGwpLiAqLworICAgIHVpbnQ2NF90IHJheCwgcjExLCByY3gsIGZsYWdzLCByaXAsIGNz
LCByZmxhZ3MsIHJzcCwgc3M7CisgICAgLyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICov
Cit9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9f
KQorLyogQW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2NC1iaXQgbmFtZXMg
KGUuZy4sIGVheC9yYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHKG5hbWUpIHVuaW9uIHsgXAor
ICAgIHVpbnQ2NF90IHIgIyMgbmFtZSwgZSAjIyBuYW1lOyBcCisgICAgdWludDMyX3QgX2UgIyMg
bmFtZTsgXAorfQorI2Vsc2UKKy8qIE5vbi1nY2Mgc291cmNlcyBtdXN0IGFsd2F5cyB1c2UgdGhl
IHByb3BlciA2NC1iaXQgbmFtZSAoZS5nLiwgcmF4KS4gKi8KKyNkZWZpbmUgX19ERUNMX1JFRyhu
YW1lKSB1aW50NjRfdCByICMjIG5hbWUKKyNlbmRpZgorCitzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7
CisgICAgdWludDY0X3QgcjE1OworICAgIHVpbnQ2NF90IHIxNDsKKyAgICB1aW50NjRfdCByMTM7
CisgICAgdWludDY0X3QgcjEyOworICAgIF9fREVDTF9SRUcoYnApOworICAgIF9fREVDTF9SRUco
YngpOworICAgIHVpbnQ2NF90IHIxMTsKKyAgICB1aW50NjRfdCByMTA7CisgICAgdWludDY0X3Qg
cjk7CisgICAgdWludDY0X3Qgcjg7CisgICAgX19ERUNMX1JFRyhheCk7CisgICAgX19ERUNMX1JF
RyhjeCk7CisgICAgX19ERUNMX1JFRyhkeCk7CisgICAgX19ERUNMX1JFRyhzaSk7CisgICAgX19E
RUNMX1JFRyhkaSk7CisgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwor
ICAgIHVpbnQzMl90IGVudHJ5X3ZlY3RvcjsgIC8qIHByaXZhdGUgKi8KKyAgICBfX0RFQ0xfUkVH
KGlwKTsKKyAgICB1aW50MTZfdCBjcywgX3BhZDBbMV07CisgICAgdWludDhfdCAgc2F2ZWRfdXBj
YWxsX21hc2s7CisgICAgdWludDhfdCAgX3BhZDFbM107CisgICAgX19ERUNMX1JFRyhmbGFncyk7
ICAgICAgLyogcmZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFzayAqLworICAgIF9fREVDTF9S
RUcoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsKKyAgICB1aW50MTZfdCBlcywgX3Bh
ZDNbM107CisgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOworICAgIHVpbnQxNl90IGZzLCBfcGFk
NVszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGZzX2Jhc2UuICAgICAq
LworICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgY3B1X3VzZXJfcmVnc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY3B1X3VzZXJfcmVn
c190KTsKKworI3VuZGVmIF9fREVDTF9SRUcKKworI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4p
ICgoVUxPTkdfUFRSKShwZm4pIDw8IDEyKQorI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMpICgo
VUxPTkdfUFRSKShjcjMpID4+IDEyKQorCitzdHJ1Y3QgYXJjaF92Y3B1X2luZm8geworICAgIFVM
T05HX1BUUiBjcjI7CisgICAgVUxPTkdfUFRSIHBhZDsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9
PSA2NCAqLworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZv
X3Q7CisKK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyogIV9f
QVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZf
NjRfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp
bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg
KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2
L3hlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZGI3N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKQEAgLTAsMCAr
MSwzMzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGFyY2gteDg2L3hlbi5oCisgKgor
ICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor
ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHly
aWdodCAoYykgMjAwNC0yMDA2LCBLIEEgRnJhc2VyCisgKi8KKworI2luY2x1ZGUgIi4uL3hlbi5o
IgorCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisjZGVmaW5lIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisKKy8qIFN0cnVjdHVyYWwgZ3Vlc3QgaGFuZGxlcyBp
bnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA+PSAweDAwMDMwMjAxCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0gX19ndWVzdF9oYW5kbGVf
ICMjIG5hbWUKKyNlbHNlCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHR5cGUgKiBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZQorI2Vu
ZGlmCisKKy8qCisgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVy
LCB3aGVuIHBhc3NlZCBhcyBhIGZpZWxkCisgKiBpbiBhIHN0cnVjdCBpbiBtZW1vcnkuCisgKiBY
RU5fR1VFU1RfSEFORExFX1BBUkFNIHJlcHJlc2VudCBhIGd1ZXN0IHBvaW50ZXIsIHdoZW4gcGFz
c2VkIGFzIGFuCisgKiBoeXBlcmNhbGwgYXJndW1lbnQuCisgKiBYRU5fR1VFU1RfSEFORExFX1BB
UkFNIGFuZCBYRU5fR1VFU1RfSEFORExFIGFyZSB0aGUgc2FtZSBvbiBYODYgYnV0CisgKiB0aGV5
IG1pZ2h0IG5vdCBiZSBvbiBvdGhlciBhcmNoaXRlY3R1cmVzLgorICovCisjZGVmaW5lIF9fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSkgXAorICAgIF9fX0RFRklORV9YRU5fR1VF
U1RfSEFORExFKG5hbWUsIHR5cGUpOyAgIFwKKyAgICBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShjb25zdF8jI25hbWUsIGNvbnN0IHR5cGUpCisjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFO
RExFKG5hbWUpICAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCBuYW1lKQorI2RlZmlu
ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1l
CisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFO
RExFKG5hbWUpCisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dV
RVNUX0hBTkRMRShuYW1lKQorI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2
YWwpICBkbyB7IChobmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNldF94ZW5fZ3Vl
c3RfaGFuZGxlKGhuZCwgdmFsKSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpCisK
KyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKKyNlbGlmIGRl
ZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCisjZW5kaWYKKworI2lm
bmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9wZm5fdDsKKyNkZWZpbmUg
UFJJX3hlbl9wZm4gImx4IgorI2VuZGlmCisKKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5U
UlkgMQorCisjZGVmaW5lIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLIDEKKworLyoKKyAqIGBpbmNv
bnRlbnRzIDIwMCBzZWdkZXNjIFNlZ21lbnQgRGVzY3JpcHRvciBUYWJsZXMKKyAqLworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfZ2R0KGNvbnN0IHhlbl9w
Zm5fdCBmcmFtZXNbXSwgdW5zaWduZWQgaW50IGVudHJpZXMpOworICogYAorICovCisvKgorICog
QSBudW1iZXIgb2YgR0RUIGVudHJpZXMgYXJlIHJlc2VydmVkIGJ5IFhlbi4gVGhlc2UgYXJlIG5v
dCBzaXR1YXRlZCBhdCB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBHRFQgYmVjYXVzZSBzb21lIHN0dXBp
ZCBPU2VzIGV4cG9ydCBoYXJkLWNvZGVkIHNlbGVjdG9yIHZhbHVlcworICogaW4gdGhlaXIgQUJJ
LiBUaGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRo
ZSBHRFQsCisgKiBzbyBYZW4gcGxhY2VzIGl0c2VsZiBvdXQgb2YgdGhlIHdheSwgYXQgdGhlIGZh
ciBlbmQgb2YgdGhlIEdEVC4KKyAqCisgKiBOQiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1V
RVhUX1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNPUl9tbXVleHRfb3AKKyAqLworI2RlZmluZSBGSVJT
VF9SRVNFUlZFRF9HRFRfUEFHRSAgMTQKKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUg
IChGSVJTVF9SRVNFUlZFRF9HRFRfUEFHRSAqIDQwOTYpCisjZGVmaW5lIEZJUlNUX1JFU0VSVkVE
X0dEVF9FTlRSWSAoRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgLyA4KQorCisKKy8qCisgKiBgIGVu
dW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBh
LCB1NjQgZGVzYyk7CisgKiBgCisgKiBgIEBwYSAgIFRoZSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJl
c3Mgb2YgdGhlIGRlc2NyaXB0b3IgdG8KKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhl
ciBhIGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KKyAqIGAgQGRlc2MgVGhlIGRlc2NyaXB0
b3IgdmFsdWUgdG8gdXBkYXRlLCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgYQorICogYCAgICAgICBu
YXRpdmUgZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4KKyAqLworCisvKiBNYXhpbXVtIG51bWJlciBv
ZiB2aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCisjZGVm
aW5lIFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3R5
cGVkZWYgVUxPTkdfUFRSIHhlbl91bG9uZ190OworI2RlZmluZSBQUklfeGVuX3Vsb25nICJseCIK
KworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zdGFja19zd2l0
Y2goVUxPTkdfUFRSIHNzLCBVTE9OR19QVFIgZXNwKTsKKyAqIGAKKyAqIFNldHMgdGhlIHN0YWNr
IHNlZ21lbnQgYW5kIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHZjcHUuCisgKi8KKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZShjb25z
dCBzdHJ1Y3QgdHJhcF9pbmZvIHRyYXBzW10pOworICogYAorICovCisvKgorICogU2VuZCBhbiBh
cnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX3NldF90cmFwX3RhYmxlKCkuCisgKiBUZXJtaW5h
dGUgdGhlIGFycmF5IHdpdGggYSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1tdLmFkZHJlc3M9
PTAuCisgKiBUaGUgcHJpdmlsZWdlIGxldmVsIHNwZWNpZmllcyB3aGljaCBtb2RlcyBtYXkgZW50
ZXIgYSB0cmFwIHZpYSBhIHNvZnR3YXJlCisgKiBpbnRlcnJ1cHQuIE9uIHg4Ni82NCwgc2luY2Ug
cmluZ3MgMSBhbmQgMiBhcmUgdW5hdmFpbGFibGUsIHdlIGFsbG9jYXRlCisgKiBwcml2aWxlZ2Ug
bGV2ZWxzIGFzIGZvbGxvd3M6CisgKiAgTGV2ZWwgPT0gMDogTm9vbmUgbWF5IGVudGVyCisgKiAg
TGV2ZWwgPT0gMTogS2VybmVsIG1heSBlbnRlcgorICogIExldmVsID09IDI6IEtlcm5lbCBtYXkg
ZW50ZXIKKyAqICBMZXZlbCA9PSAzOiBFdmVyeW9uZSBtYXkgZW50ZXIKKyAqLworI2RlZmluZSBU
SV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKKyNkZWZpbmUgVElfR0VUX0lG
KF90aSkgICAgICAgKChfdGkpLT5mbGFncyAmIDQpCisjZGVmaW5lIFRJX1NFVF9EUEwoX3RpLF9k
cGwpICgoX3RpKS0+ZmxhZ3MgfD0gKF9kcGwpKQorI2RlZmluZSBUSV9TRVRfSUYoX3RpLF9pZikg
ICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQorc3RydWN0IHRyYXBfaW5mbyB7Cisg
ICAgdWludDhfdCAgICAgICB2ZWN0b3I7ICAvKiBleGNlcHRpb24gdmVjdG9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAgICAgIGZsYWdzOyAgIC8qIDAtMzog
cHJpdmlsZWdlIGxldmVsOyA0OiBjbGVhciBldmVudCBlbmFibGU/ICAqLworICAgIHVpbnQxNl90
ICAgICAgY3M7ICAgICAgLyogY29kZSBzZWxlY3RvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgICAgVUxPTkdfUFRSIGFkZHJlc3M7IC8qIGNvZGUgb2Zmc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHRyYXBfaW5m
byB0cmFwX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb190KTsKKwor
dHlwZWRlZiB1aW50NjRfdCB0c2NfdGltZXN0YW1wX3Q7IC8qIFJEVFNDIHRpbWVzdGFtcCAqLwor
CisvKgorICogVGhlIGZvbGxvd2luZyBpcyBhbGwgQ1BVIGNvbnRleHQuIE5vdGUgdGhhdCB0aGUg
ZnB1X2N0eHQgYmxvY2sgaXMgZmlsbGVkCisgKiBpbiBieSBGWFNBVkUgaWYgdGhlIENQVSBoYXMg
ZmVhdHVyZSBGWFNSOyBvdGhlcndpc2UgRlNBVkUgaXMgdXNlZC4KKyAqCisgKiBBbHNvIG5vdGUg
dGhhdCB3aGVuIGNhbGxpbmcgRE9NQ1RMX3NldHZjcHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxp
c2UKKyAqIGZvciBIVk0gYW5kIFBWSCBndWVzdHMsIG5vdCBhbGwgaW5mb3JtYXRpb24gaW4gdGhp
cyBzdHJ1Y3R1cmUgaXMgdXBkYXRlZDoKKyAqCisgKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3Ry
dWN0dXJlcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0IChpZgorICogVkdDVF9JMzg3X1ZBTElEIGlz
IHNldCksIGZsYWdzLCB1c2VyX3JlZ3MsIGRlYnVncmVnWypdCisgKgorICogLSBQVkggZ3Vlc3Rz
IGFyZSB0aGUgc2FtZSBhcyBIVk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBjdHJscmVn
WzNdIHRvCisgKiBzZXQgY3IzLiBBbGwgb3RoZXIgZmllbGRzIG5vdCB1c2VkIHNob3VsZCBiZSBz
ZXQgdG8gMC4KKyAqLworc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCB7CisgICAgLyogRlBVIHJl
Z2lzdGVycyBjb21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFsaWduZWQgZm9yIEZYU0FWRS9GWFJT
VE9SLiAqLworICAgIHN0cnVjdCB7IGNoYXIgeFs1MTJdOyB9IGZwdV9jdHh0OyAgICAgICAvKiBV
c2VyLWxldmVsIEZQVSByZWdpc3RlcnMgICAgICovCisjZGVmaW5lIFZHQ0ZfSTM4N19WQUxJRCAg
ICAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgVkdDRl9JTl9LRVJORUwgICAgICAgICAgICAg
ICAgICgxPDwyKQorI2RlZmluZSBfVkdDRl9pMzg3X3ZhbGlkICAgICAgICAgICAgICAgMAorI2Rl
ZmluZSBWR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAgKDE8PF9WR0NGX2kzODdfdmFsaWQp
CisjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFZHQ0Zf
aW5fa2VybmVsICAgICAgICAgICAgICAgICAoMTw8X1ZHQ0ZfaW5fa2VybmVsKQorI2RlZmluZSBf
VkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgMworI2RlZmluZSBWR0NGX2ZhaWxzYWZlX2Rp
c2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cykKKyNkZWZp
bmUgX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgIDQKKyNkZWZpbmUgVkdDRl9zeXNjYWxs
X2Rpc2FibGVzX2V2ZW50cyAgICgxPDxfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cykKKyNk
ZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgVkdDRl9vbmxp
bmUgICAgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9vbmxpbmUpCisgICAgVUxPTkdfUFRSIGZs
YWdzOyAgICAgICAgICAgICAgICAgICAgLyogVkdDRl8qIGZsYWdzICAgICAgICAgICAgICAgICAq
LworICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHVzZXJfcmVnczsgICAgICAgICAvKiBVc2VyLWxl
dmVsIENQVSByZWdpc3RlcnMgICAgICovCisgICAgc3RydWN0IHRyYXBfaW5mbyB0cmFwX2N0eHRb
MjU2XTsgICAgICAgIC8qIFZpcnR1YWwgSURUICAgICAgICAgICAgICAgICAgKi8KKyAgICBVTE9O
R19QVFIgbGR0X2Jhc2UsIGxkdF9lbnRzOyAgICAgICAvKiBMRFQgKGxpbmVhciBhZGRyZXNzLCAj
IGVudHMpICovCisgICAgVUxPTkdfUFRSIGdkdF9mcmFtZXNbMTZdLCBnZHRfZW50czsgLyogR0RU
IChtYWNoaW5lIGZyYW1lcywgIyBlbnRzKSAqLworICAgIFVMT05HX1BUUiBrZXJuZWxfc3MsIGtl
cm5lbF9zcDsgICAgIC8qIFZpcnR1YWwgVFNTIChvbmx5IFNTMS9TUDEpICAgKi8KKyAgICAvKiBO
Qi4gVXNlciBwYWdldGFibGUgb24geDg2LzY0IGlzIHBsYWNlZCBpbiBjdHJscmVnWzFdLiAqLwor
ICAgIFVMT05HX1BUUiBjdHJscmVnWzhdOyAgICAgICAgICAgICAgIC8qIENSMC1DUjcgKGNvbnRy
b2wgcmVnaXN0ZXJzKSAgKi8KKyAgICBVTE9OR19QVFIgZGVidWdyZWdbOF07ICAgICAgICAgICAg
ICAvKiBEQjAtREI3IChkZWJ1ZyByZWdpc3RlcnMpICAgICovCisjaWZkZWYgX19pMzg2X18KKyAg
ICBVTE9OR19QVFIgZXZlbnRfY2FsbGJhY2tfY3M7ICAgICAgICAvKiBDUzpFSVAgb2YgZXZlbnQg
Y2FsbGJhY2sgICAgICovCisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBV
TE9OR19QVFIgZmFpbHNhZmVfY2FsbGJhY2tfY3M7ICAgICAvKiBDUzpFSVAgb2YgZmFpbHNhZmUg
Y2FsbGJhY2sgICovCisgICAgVUxPTkdfUFRSIGZhaWxzYWZlX2NhbGxiYWNrX2VpcDsKKyNlbHNl
CisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBVTE9OR19QVFIgZmFpbHNh
ZmVfY2FsbGJhY2tfZWlwOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiB7CisgICAgICAgIFVM
T05HX1BUUiBzeXNjYWxsX2NhbGxiYWNrX2VpcDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBldmVudF9jYWxsYmFja19jczsgICAgLyogY29tcGF0IENTIG9mIGV2
ZW50IGNiICAgICAqLworICAgICAgICAgICAgdW5zaWduZWQgaW50IGZhaWxzYWZlX2NhbGxiYWNr
X2NzOyAvKiBjb21wYXQgQ1Mgb2YgZmFpbHNhZmUgY2IgICovCisgICAgICAgIH07CisgICAgfTsK
KyNlbHNlCisgICAgVUxPTkdfUFRSIHN5c2NhbGxfY2FsbGJhY2tfZWlwOworI2VuZGlmCisjZW5k
aWYKKyAgICBVTE9OR19QVFIgdm1fYXNzaXN0OyAgICAgICAgICAgICAgICAvKiBWTUFTU1RfVFlQ
RV8qIGJpdG1hcCAqLworI2lmZGVmIF9feDg2XzY0X18KKyAgICAvKiBTZWdtZW50IGJhc2UgYWRk
cmVzc2VzLiAqLworICAgIHVpbnQ2NF90ICAgICAgZnNfYmFzZTsKKyAgICB1aW50NjRfdCAgICAg
IGdzX2Jhc2Vfa2VybmVsOworICAgIHVpbnQ2NF90ICAgICAgZ3NfYmFzZV91c2VyOworI2VuZGlm
Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0IHZjcHVfZ3Vlc3RfY29udGV4
dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOworCitz
dHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdmFsaWQg
ZW50cmllcyBpbiB0aGUgcDJtIHRhYmxlKHMpIGFuY2hvcmVkIGF0CisgICAgICogcGZuX3RvX21m
bl9mcmFtZV9saXN0X2xpc3QgYW5kL29yIHAybV92YWRkci4KKyAgICAgKi8KKyAgICBVTE9OR19Q
VFIgbWF4X3BmbjsKKyAgICAvKgorICAgICAqIEZyYW1lIGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5z
IGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5zIGNvbnRhaW5pbmcgcDJtLgorICAgICAqIEEgdmFsdWUg
b2YgMCBpbmRpY2F0ZXMgaXQgaGFzIG5vdCB5ZXQgYmVlbiBzZXQgdXAsIH4wIGluZGljYXRlcyBp
dCBoYXMKKyAgICAgKiBiZWVuIHNldCB0byBpbnZhbGlkIGUuZy4gZHVlIHRvIHRoZSBwMm0gYmVp
bmcgdG9vIGxhcmdlIGZvciB0aGUgMy1sZXZlbAorICAgICAqIHAybSB0cmVlLiBJbiB0aGlzIGNh
c2UgdGhlIGxpbmVhciBtYXBwZXIgcDJtIGxpc3QgYW5jaG9yZWQgYXQgcDJtX3ZhZGRyCisgICAg
ICogaXMgdG8gYmUgdXNlZC4KKyAgICAgKi8KKyAgICB4ZW5fcGZuX3QgICAgIHBmbl90b19tZm5f
ZnJhbWVfbGlzdF9saXN0OworICAgIFVMT05HX1BUUiBubWlfcmVhc29uOworICAgIC8qCisgICAg
ICogRm9sbG93aW5nIHRocmVlIGZpZWxkcyBhcmUgdmFsaWQgaWYgcDJtX2NyMyBjb250YWlucyBh
IHZhbHVlIGRpZmZlcmVudAorICAgICAqIGZyb20gMC4KKyAgICAgKiBwMm1fY3IzIGlzIHRoZSBy
b290IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHdoZXJlIHAybV92YWRkciBpcyB2YWxpZC4KKyAgICAg
KiBwMm1fY3IzIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBhIGNyMyB2YWx1ZSBpbiB0aGUgdmNw
dSByZWdpc3RlciBzdGF0ZQorICAgICAqIGFuZCBob2xkcyB0aGUgZm9sZGVkIG1hY2hpbmUgZnJh
bWUgbnVtYmVyICh2aWEgeGVuX3Bmbl90b19jcjMpIG9mIGEKKyAgICAgKiBMMyBvciBMNCBwYWdl
IHRhYmxlLgorICAgICAqIHAybV92YWRkciBob2xkcyB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRo
ZSBsaW5lYXIgcDJtIGxpc3QuIEFsbCBlbnRyaWVzCisgICAgICogaW4gdGhlIHJhbmdlIFswLi4u
bWF4X3BmblsgYXJlIGFjY2Vzc2libGUgdmlhIHRoaXMgcG9pbnRlci4KKyAgICAgKiBwMm1fZ2Vu
ZXJhdGlvbiB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoZSBndWVzdCBiZWZvcmUgYW5kIGFmdGVy
IGVhY2gKKyAgICAgKiBjaGFuZ2Ugb2YgdGhlIG1hcHBpbmdzIG9mIHRoZSBwMm0gbGlzdC4gcDJt
X2dlbmVyYXRpb24gc3RhcnRzIGF0IDAgYW5kCisgICAgICogYSB2YWx1ZSB3aXRoIHRoZSBsZWFz
dCBzaWduaWZpY2FudCBiaXQgc2V0IGluZGljYXRlcyB0aGF0IGEgbWFwcGluZworICAgICAqIHVw
ZGF0ZSBpcyBpbiBwcm9ncmVzcy4gVGhpcyBhbGxvd3MgZ3Vlc3QgZXh0ZXJuYWwgc29mdHdhcmUg
KGUuZy4gaW4gRG9tMCkKKyAgICAgKiB0byB2ZXJpZnkgdGhhdCByZWFkIG1hcHBpbmdzIGFyZSBj
b25zaXN0ZW50IGFuZCB3aGV0aGVyIHRoZXkgaGF2ZSBjaGFuZ2VkCisgICAgICogc2luY2UgdGhl
IGxhc3QgY2hlY2suCisgICAgICogTW9kaWZ5aW5nIGEgcDJtIGVsZW1lbnQgaW4gdGhlIGxpbmVh
ciBwMm0gbGlzdCBpcyBhbGxvd2VkIHZpYSBhbiBhdG9taWMKKyAgICAgKiB3cml0ZSBvbmx5Lgor
ICAgICAqLworICAgIFVMT05HX1BUUiBwMm1fY3IzOyAgICAgICAgIC8qIGNyMyB2YWx1ZSBvZiB0
aGUgcDJtIGFkZHJlc3Mgc3BhY2UgKi8KKyAgICBVTE9OR19QVFIgcDJtX3ZhZGRyOyAgICAgICAv
KiB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIHAybSBsaXN0ICovCisgICAgVUxPTkdfUFRSIHAybV9n
ZW5lcmF0aW9uOyAgLyogZ2VuZXJhdGlvbiBjb3VudCBvZiBwMm0gbWFwcGluZyAqLworI2lmZGVm
IF9faTM4Nl9fCisgICAgLyogVGhlcmUncyBubyByb29tIGZvciB0aGlzIGZpZWxkIGluIHRoZSBn
ZW5lcmljIHN0cnVjdHVyZS4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWNfaGk7CisjZW5kaWYKK307
Cit0eXBlZGVmIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2hfc2hhcmVkX2luZm9fdDsKKwor
I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyoKKyAqIHN0
cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RP
TUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KKyAqLworc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZp
ZyB7CisjZGVmaW5lIF9YRU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAwCisjZGVmaW5lIFhFTl9Y
ODZfRU1VX0xBUElDICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9MQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0hQRVQgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSFBFVCAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0hQRVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9Q
TSAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8
PF9YRU5fWDg2X0VNVV9QTSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1JUQyAgICAgICAgICAgIDMK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1JU
QykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfSU9BUElDICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX1BJQyAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1BJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1ZH
QSAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1ZHQSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lP
TU1VKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAgOAorI2RlZmluZSBYRU5f
WDg2X0VNVV9QSVQgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQorCisjZGVmaW5l
IFhFTl9YODZfRU1VX0FMTCAgICAgICAgICAgICAoWEVOX1g4Nl9FTVVfTEFQSUMgfCBYRU5fWDg2
X0VNVV9IUEVUIHwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
WDg2X0VNVV9QTSB8IFhFTl9YODZfRU1VX1JUQyB8ICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX0lPQVBJQyB8IFhFTl9YODZfRU1VX1BJQyB8
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfVkdB
IHwgWEVOX1g4Nl9FTVVfSU9NTVUgfCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5fWDg2X0VNVV9QSVQpCisgICAgdWludDMyX3QgZW11bGF0aW9uX2ZsYWdzOwor
fTsKKyNlbmRpZgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKgorICogYCBlbnVt
IG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpOwor
ICogYAorICogU2V0cyAoaWYgc2V0IT0wKSBvciBjbGVhcnMgKGlmIHNldD09MCkgQ1IwLlRTLgor
ICovCisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc2V0X2Rl
YnVncmVnKGludCByZWdubywgVUxPTkdfUFRSIHZhbHVlKTsKKyAqCisgKiBgIFVMT05HX1BUUgor
ICogYCBIWVBFUlZJU09SX2dldF9kZWJ1Z3JlZyhpbnQgcmVnbm8pOworICogRm9yIDA8PXJlZzw9
NywgcmV0dXJucyB0aGUgZGVidWcgcmVnaXN0ZXIgdmFsdWUuCisgKiBGb3Igb3RoZXIgdmFsdWVz
IG9mIHJlZywgcmV0dXJucyAoKFVMT05HX1BUUiktRUlOVkFMKS4KKyAqIChVbmZvcnR1bmF0ZWx5
LCB0aGlzIGludGVyZmFjZSBpcyBkZWZlY3RpdmUuKQorICovCisKKy8qCisgKiBQcmVmaXggZm9y
Y2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0cnVjdGlvbnMuCisgKiBDdXJy
ZW50bHkgb25seSBDUFVJRC4KKyAqLworI2lmZGVmIF9fQVNTRU1CTFlfXworI2RlZmluZSBYRU5f
RU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSwweDZlIDsKKyNkZWZpbmUg
WEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVpZAorI2Vsc2UKKyNkZWZp
bmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3OCwweDY1LDB4NmUgOyAi
CisjZGVmaW5lIFhFTl9DUFVJRCAgICAgICAgICBYRU5fRU1VTEFURV9QUkVGSVggImNwdWlkIgor
I2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9o
dm0vaHZtX2luZm9fdGFibGUuaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9odm0vaHZtX2luZm9fdGFi
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTJlOGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oCkBAIC0w
LDAgKzEsNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGh2bS9odm1faW5mb190YWJs
ZS5oCisgKgorICogSFZNIHBhcmFtZXRlciBhbmQgaW5mb3JtYXRpb24gdGFibGUsIHdyaXR0ZW4g
aW50byBndWVzdCBtZW1vcnkgbWFwLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK
KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw
MDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZP
X1RBQkxFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXwor
CisjZGVmaW5lIEhWTV9JTkZPX1BGTiAgICAgICAgIDB4MDlGCisjZGVmaW5lIEhWTV9JTkZPX09G
RlNFVCAgICAgIDB4ODAwCisjZGVmaW5lIEhWTV9JTkZPX1BBRERSICAgICAgICgoSFZNX0lORk9f
UEZOIDw8IDEyKSArIEhWTV9JTkZPX09GRlNFVCkKKworLyogTWF4aW11bSB3ZSBjYW4gc3VwcG9y
dCB3aXRoIGN1cnJlbnQgdkxBUElDIElEIG1hcHBpbmcuICovCisjZGVmaW5lIEhWTV9NQVhfVkNQ
VVMgICAgICAgIDEyOAorCitzdHJ1Y3QgaHZtX2luZm9fdGFibGUgeworICAgIGNoYXIgICAgICAg
IHNpZ25hdHVyZVs4XTsgLyogIkhWTSBJTkZPIiAqLworICAgIHVpbnQzMl90ICAgIGxlbmd0aDsK
KyAgICB1aW50OF90ICAgICBjaGVja3N1bTsKKworICAgIC8qIFNob3VsZCBmaXJtd2FyZSBidWls
ZCBBUElDIGRlc2NyaXB0b3JzIChBUElDIE1BRFQgLyBNUCBCSU9TKT8gKi8KKyAgICB1aW50OF90
ICAgICBhcGljX21vZGU7CisKKyAgICAvKiBIb3cgbWFueSBDUFVzIGRvZXMgdGhpcyBkb21haW4g
aGF2ZT8gKi8KKyAgICB1aW50MzJfdCAgICBucl92Y3B1czsKKworICAgIC8qCisgICAgICogTUVN
T1JZIE1BUCBwcm92aWRlZCBieSBIVk0gZG9tYWluIGJ1aWxkZXIuCisgICAgICogTm90ZXM6Cisg
ICAgICogIDEuIHBhZ2VfdG9fcGh5cyh4KSA9IHggPDwgMTIKKyAgICAgKiAgMi4gSWYgYSBmaWVs
ZCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyByYW5nZSBkb2VzIG5vdCBleGlzdC4KKyAgICAg
Ki8KKyAgICAvKgorICAgICAqICAweDAgdG8gcGFnZV90b19waHlzKGxvd19tZW1fcGdlbmQpLTE6
CisgICAgICogICAgUkFNIGJlbG93IDRHQiAoZXhjZXB0IGZvciBWR0EgaG9sZSAweEEwMDAwLTB4
QkZGRkYpCisgICAgICovCisgICAgdWludDMyX3QgICAgbG93X21lbV9wZ2VuZDsKKyAgICAvKgor
ICAgICAqICBwYWdlX3RvX3BoeXMocmVzZXJ2ZWRfbWVtX3Bnc3RhcnQpIHRvIDB4RkZGRkZGRkY6
CisgICAgICogICAgUmVzZXJ2ZWQgZm9yIHNwZWNpYWwgbWVtb3J5IG1hcHBpbmdzCisgICAgICov
CisgICAgdWludDMyX3QgICAgcmVzZXJ2ZWRfbWVtX3Bnc3RhcnQ7CisgICAgLyoKKyAgICAgKiAg
MHgxMDAwMDAwMDAgdG8gcGFnZV90b19waHlzKGhpZ2hfbWVtX3BnZW5kKS0xOgorICAgICAqICAg
IFJBTSBhYm92ZSA0R0IKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICBoaWdoX21lbV9wZ2VuZDsK
KworICAgIC8qIEJpdG1hcCBvZiB3aGljaCBDUFVzIGFyZSBvbmxpbmUgYXQgYm9vdCB0aW1lLiAq
LworICAgIHVpbnQ4X3QgICAgIHZjcHVfb25saW5lWyhIVk1fTUFYX1ZDUFVTICsgNykvOF07Cit9
OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fSU5GT19UQUJMRV9IX18gKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4tY29tcGF0LmggYi9pbmNsdWRlL3hlbi9w
dWJsaWMveGVuLWNvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl
ZWEwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHhlbi1jb21wYXQu
aAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVy
LgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVh
bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRI
RSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIENocmlzdGlhbiBMaW1wYWNo
CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KKyNkZWZpbmUgX19Y
RU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCisKKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFD
RV9WRVJTSU9OX18gMHgwMDA0MDcwMAorCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCisvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFu
ZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLworI2RlZmluZSBfX1hFTl9JTlRF
UkZBQ0VfVkVSU0lPTl9fIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fCisjZWxpZiAh
ZGVmaW5lZChfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKQorLyogR3Vlc3RzIHdoaWNoIGRvIG5v
dCBzcGVjaWZ5IGEgdmVyc2lvbiBnZXQgdGhlIGxlZ2FjeSBpbnRlcmZhY2UuICovCisjZGVmaW5l
IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDAwMDAwMAorI2VuZGlmCisKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fID4gX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18K
KyNlcnJvciAiVGhlc2UgaGVhZGVyIGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQg
aW50ZXJmYWNlIHZlcnNpb24uIgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVO
X0NPTVBBVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy94ZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yMDU3YjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oCkBA
IC0wLDAgKzEsOTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ZW4uaAorICoKKyAq
IEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQor
ICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAwNCwgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18KKworI2luY2x1ZGUgInhlbi1jb21wYXQuaCIK
KworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRl
ICJhcmNoLXg4Ni94ZW4uaCIKKyNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZCAoX19h
YXJjaDY0X18pCisjaW5jbHVkZSAiYXJjaC1hcm0uaCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9y
dGVkIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyogR3Vl
c3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICovCitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShjaGFyKTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWNoYXIsIHVuc2lnbmVkIGNo
YXIpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoaW50KTsKK19fREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodWludCwgIHVuc2lnbmVkIGludCk7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDAzMDAKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKExPTkdfUFRSKTsKK19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodWxvbmcsIFVMT05HX1BUUik7CisjZW5kaWYKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHZvaWQpOworCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRf
dCk7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBD
IHVuc2lnbmVkIChMT05HX1BUUikgY29uc3RhbnQuICovCisjZGVmaW5lIF9feGVuX21rX3VpbnQo
eCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCisjZGVmaW5lIHhl
bl9ta191aW50KHgpICAgIF9feGVuX21rX3VpbnQoeCkKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgp
ICAgX194ZW5fbWtfdWxvbmcoeCkKKworI2Vsc2UKKworLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBj
YW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4gKi8KKyNkZWZpbmUgeGVuX21r
X3VpbnQoeCkgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpIHgKKworI2VuZGlmCisKKy8qCisg
KiBIWVBFUkNBTExTCisgKi8KKworLyogYGluY29udGVudHMgMTAwIGhjYWxscyBMaXN0IG9mIGh5
cGVyY2FsbHMKKyAqIGAgZW51bSBoeXBlcmNhbGxfbnVtIHsgLy8gX19IWVBFUlZJU09SXyogPT4g
SFlQRVJWSVNPUl8qKCkKKyAqLworCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJs
ZSAgICAgICAgMAorI2RlZmluZSBfX0hZUEVSVklTT1JfbW11X3VwZGF0ZSAgICAgICAgICAgIDEK
KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zdGFja19zd2l0Y2ggICAgICAgICAgMworI2RlZmluZSBfX0hZUEVSVklTT1Jf
c2V0X2NhbGxiYWNrcyAgICAgICAgIDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90YXNrc3dp
dGNoICAgICAgICA1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zY2hlZF9vcF9jb21wYXQgICAgICAg
NiAvKiBjb21wYXQgc2luY2UgMHgwMDAzMDEwMSAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfcGxh
dGZvcm1fb3AgICAgICAgICAgIDcKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyAg
ICAgICAgICA4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9nZXRfZGVidWdyZWcgICAgICAgICAgOQor
I2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IgICAgMTAKKyNkZWZpbmUgX19I
WVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9t
dWx0aWNhbGwgICAgICAgICAgICAxMworI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX3ZhX21h
cHBpbmcgICAgMTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAgICAgIDE1
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wX2NvbXBhdCAxNiAvKiBjb21w
YXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVuX3ZlcnNpb24g
ICAgICAgICAgMTcKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2NvbXBhdCAgICAxOSAvKiBjb21wYXQg
c2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3Ag
ICAgICAgMjAKKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAgIDIxCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbiAyMgorI2Rl
ZmluZSBfX0hZUEVSVklTT1JfaXJldCAgICAgICAgICAgICAgICAgMjMgLyogeDg2IG9ubHkgKi8K
KyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlICAgICAyNSAvKiB4ODYvNjQgb25seSAqLworI2Rl
ZmluZSBfX0hZUEVSVklTT1JfbW11ZXh0X29wICAgICAgICAgICAgMjYKKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ubWlf
b3AgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgICAgICAg
ICAgICAgMjkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxiYWNrX29wICAgICAgICAgIDMwCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5vcHJvZl9vcCAgICAgICAgICAzMQorI2RlZmluZSBfX0hZ
UEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCAgICAgMzIKKyNkZWZpbmUgX19IWVBFUlZJU09SX3Bo
eXNkZXZfb3AgICAgICAgICAgIDMzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3AgICAgICAg
ICAgICAgICAzNAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc3lzY3RsICAgICAgICAgICAgICAgMzUK
KyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNworI2RlZmluZSBfX0hZUEVSVklTT1Jf
dG1lbV9vcCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVk
X29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisKKy8qIEFyY2hpdGVjdHVyZS1zcGVjaWZp
YyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAg
ICAgICAgICAgICAgICA0OAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8xICAgICAgICAgICAg
ICAgNDkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMiAgICAgICAgICAgICAgIDUwCisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9hcmNoXzMgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfX0hZUEVS
VklTT1JfYXJjaF80ICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hf
NSAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzYgICAgICAgICAg
ICAgICA1NAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF83ICAgICAgICAgICAgICAgNTUKKwor
LyogYCB9ICovCisKKy8qCisgKiBIWVBFUkNBTEwgQ09NUEFUSUJJTElUWS4KKyAqLworCisvKiBO
ZXcgc2NoZWRfb3AgaHlwZXJjYWxsIGludHJvZHVjZWQgaW4gMHgwMDAzMDEwMS4gKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDEwMQorI3VuZGVmIF9fSFlQRVJWSVNP
Ul9zY2hlZF9vcAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgX19IWVBFUlZJU09SX3Nj
aGVkX29wX2NvbXBhdAorI2VuZGlmCisKKy8qIE5ldyBldmVudC1jaGFubmVsIGFuZCBwaHlzZGV2
IGh5cGVyY2FsbHMgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAyLiAqLworI2lmIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPCAweDAwMDMwMjAyCisjdW5kZWYgX19IWVBFUlZJU09SX2V2ZW50X2No
YW5uZWxfb3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgX19IWVBFUlZJ
U09SX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0CisjdW5kZWYgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3BfY29tcGF0CisjZW5kaWYKKworLyogTmV3IHBsYXRmb3JtX29wIGh5cGVyY2FsbCBpbnRyb2R1
Y2VkIGluIDB4MDAwMzAyMDQuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwMzAyMDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbTBfb3AgX19IWVBFUlZJU09SX3BsYXRm
b3JtX29wCisjZW5kaWYKKworLyoKKyAqIFZJUlRVQUwgSU5URVJSVVBUUworICoKKyAqIFZpcnR1
YWwgaW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2VpdmUgZnJvbSBYZW4uCisgKgor
ICogSW4gdGhlIHNpZGUgY29tbWVudHMsICdWLicgZGVub3RlcyBhIHBlci1WQ1BVIFZJUlEgd2hp
bGUgJ0cuJyBkZW5vdGVzIGEKKyAqIGdsb2JhbCBWSVJRLiBUaGUgZm9ybWVyIGNhbiBiZSBib3Vu
ZCBvbmNlIHBlciBWQ1BVIGFuZCBjYW5ub3QgYmUgcmUtYm91bmQuCisgKiBUaGUgbGF0dGVyIGNh
biBiZSBhbGxvY2F0ZWQgb25seSBvbmNlIHBlciBndWVzdDogdGhleSBtdXN0IGluaXRpYWxseSBi
ZQorICogYWxsb2NhdGVkIHRvIFZDUFUwIGJ1dCBjYW4gc3Vic2VxdWVudGx5IGJlIHJlLWJvdW5k
LgorICovCisvKiBgIGVudW0gdmlycSB7ICovCisjZGVmaW5lIFZJUlFfVElNRVIgICAgICAwICAv
KiBWLiBUaW1lYmFzZSB1cGRhdGUsIGFuZC9vciByZXF1ZXN0ZWQgdGltZW91dC4gICovCisjZGVm
aW5lIFZJUlFfREVCVUcgICAgICAxICAvKiBWLiBSZXF1ZXN0IGd1ZXN0IHRvIGR1bXAgZGVidWcg
aW5mby4gICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfQ09OU09MRSAgICAyICAvKiBHLiAoRE9N
MCkgQnl0ZXMgcmVjZWl2ZWQgb24gZW1lcmdlbmN5IGNvbnNvbGUuICovCisjZGVmaW5lIFZJUlFf
RE9NX0VYQyAgICAzICAvKiBHLiAoRE9NMCkgRXhjZXB0aW9uYWwgZXZlbnQgZm9yIHNvbWUgZG9t
YWluLiAgICovCisjZGVmaW5lIFZJUlFfVEJVRiAgICAgICA0ICAvKiBHLiAoRE9NMCkgVHJhY2Ug
YnVmZmVyIGhhcyByZWNvcmRzIGF2YWlsYWJsZS4gICovCisjZGVmaW5lIFZJUlFfREVCVUdHRVIg
ICA2ICAvKiBHLiAoRE9NMCkgQSBkb21haW4gaGFzIHBhdXNlZCBmb3IgZGVidWdnaW5nLiAgICov
CisjZGVmaW5lIFZJUlFfWEVOT1BST0YgICA3ICAvKiBWLiBYZW5PcHJvZmlsZSBpbnRlcnJ1cHQ6
IG5ldyBzYW1wbGUgYXZhaWxhYmxlICovCisjZGVmaW5lIFZJUlFfQ09OX1JJTkcgICA4ICAvKiBH
LiAoRE9NMCkgQnl0ZXMgcmVjZWl2ZWQgb24gY29uc29sZSAgICAgICAgICAgICovCisjZGVmaW5l
IFZJUlFfUENQVV9TVEFURSA5ICAvKiBHLiAoRE9NMCkgUENQVSBzdGF0ZSBjaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfTUVNX0VWRU5UICAxMCAvKiBHLiAoRE9NMCkg
QSBtZW1vcnkgZXZlbnQgaGFzIG9jY3VyZWQgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfWENf
UkVTRVJWRUQgMTEgLyogRy4gUmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAgICAgICAgICAgICAgICAg
ICAgICovCisjZGVmaW5lIFZJUlFfRU5PTUVNICAgICAxMiAvKiBHLiAoRE9NMCkgTG93IG9uIGhl
YXAgbWVtb3J5ICAgICAgICovCisjZGVmaW5lIFZJUlFfWEVOUE1VICAgICAxMyAvKiBWLiAgUE1D
IGludGVycnVwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKy8qIEFyY2hpdGVj
dHVyZS1zcGVjaWZpYyBWSVJRIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBWSVJRX0FSQ0hfMCAg
ICAxNgorI2RlZmluZSBWSVJRX0FSQ0hfMSAgICAxNworI2RlZmluZSBWSVJRX0FSQ0hfMiAgICAx
OAorI2RlZmluZSBWSVJRX0FSQ0hfMyAgICAxOQorI2RlZmluZSBWSVJRX0FSQ0hfNCAgICAyMAor
I2RlZmluZSBWSVJRX0FSQ0hfNSAgICAyMQorI2RlZmluZSBWSVJRX0FSQ0hfNiAgICAyMgorI2Rl
ZmluZSBWSVJRX0FSQ0hfNyAgICAyMworLyogYCB9ICovCisKKyNkZWZpbmUgTlJfVklSUVMgICAg
ICAgMjQKKworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVf
dXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlIHJlcXNbXSwKKyAqIGAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCAqZG9uZV9vdXQsCisgKiBgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JlaWduZG9tKQorICogYAorICogQHJlcXMgaXMg
YW4gYXJyYXkgb2YgbW11X3VwZGF0ZV90IHN0cnVjdHVyZXMgKChwdHIsIHZhbCkgcGFpcnMpLgor
ICogQGNvdW50IGlzIHRoZSBsZW5ndGggb2YgdGhlIGFib3ZlIGFycmF5LgorICogQHBkb25lIGlz
IGFuIG91dHB1dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBudW1iZXIgb2YgY29tcGxldGVkIG9wZXJh
dGlvbnMKKyAqIEBmb3JlaWduZG9tWzE1OjBdOiBGRCwgdGhlIGV4cGVjdGVkIG93bmVyIG9mIGRh
dGEgcGFnZXMgcmVmZXJlbmNlZCBpbiB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgaHlwZXJj
YWxsIGludm9jYXRpb24uIENhbiBiZSBET01JRF9TRUxGLgorICogQGZvcmVpZ25kb21bMzE6MTZd
OiBQRkQsIHRoZSBleHBlY3RlZCBvd25lciBvZiBwYWdldGFibGUgcGFnZXMgcmVmZXJlbmNlZAor
ICogICAgICAgICAgICAgICAgICAgICBpbiB0aGlzIGh5cGVyY2FsbCBpbnZvY2F0aW9uLiBUaGUg
dmFsdWUgb2YgdGhpcyBmaWVsZAorICogICAgICAgICAgICAgICAgICAgICAoeCkgZW5jb2RlcyB0
aGUgUEZEIGFzIGZvbGxvd3M6CisgKiAgICAgICAgICAgICAgICAgICAgIHggPT0gMCA9PiBQRkQg
PT0gRE9NSURfU0VMRgorICogICAgICAgICAgICAgICAgICAgICB4ICE9IDAgPT4gUEZEID09IHgg
LSAxCisgKgorICogU3ViLWNvbW1hbmRzOiBwdHJbMTowXSBzcGVjaWZpZXMgdGhlIGFwcHJvcHJp
YXRlIE1NVV8qIGNvbW1hbmQuCisgKiAtLS0tLS0tLS0tLS0tCisgKiBwdHJbMTowXSA9PSBNTVVf
Tk9STUFMX1BUX1VQREFURToKKyAqIFVwZGF0ZXMgYW4gZW50cnkgaW4gYSBwYWdlIHRhYmxlIGJl
bG9uZ2luZyB0byBQRkQuIElmIHVwZGF0aW5nIGFuIEwxIHRhYmxlLAorICogYW5kIHRoZSBuZXcg
dGFibGUgZW50cnkgaXMgdmFsaWQvcHJlc2VudCwgdGhlIG1hcHBlZCBmcmFtZSBtdXN0IGJlbG9u
ZyB0bworICogRkQuIElmIGF0dGVtcHRpbmcgdG8gbWFwIGFuIEkvTyBwYWdlIHRoZW4gdGhlIGNh
bGxlciBhc3N1bWVzIHRoZSBwcml2aWxlZ2UKKyAqIG9mIHRoZSBGRC4KKyAqIEZEID09IERPTUlE
X0lPOiBQZXJtaXQgL29ubHkvIEkvTyBtYXBwaW5ncywgYXQgdGhlIHByaXYgbGV2ZWwgb2YgdGhl
IGNhbGxlci4KKyAqIEZEID09IERPTUlEX1hFTjogTWFwIHJlc3RyaWN0ZWQgYXJlYXMgb2YgWGVu
J3MgaGVhcCBzcGFjZS4KKyAqIHB0cls6Ml0gIC0tIE1hY2hpbmUgYWRkcmVzcyBvZiB0aGUgcGFn
ZS10YWJsZSBlbnRyeSB0byBtb2RpZnkuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZS4K
KyAqCisgKiBUaGVyZSBhbHNvIGNlcnRhaW4gaW1wbGljaXQgcmVxdWlyZW1lbnRzIHdoZW4gdXNp
bmcgdGhpcyBoeXBlcmNhbGwuIFRoZQorICogcGFnZXMgdGhhdCBtYWtlIHVwIGEgcGFnZXRhYmxl
IG11c3QgYmUgbWFwcGVkIHJlYWQtb25seSBpbiB0aGUgZ3Vlc3QuCisgKiBUaGlzIHByZXZlbnRz
IHVuY29udHJvbGxlZCBndWVzdCB1cGRhdGVzIHRvIHRoZSBwYWdldGFibGUuIFhlbiBzdHJpY3Rs
eQorICogZW5mb3JjZXMgdGhpcywgYW5kIHdpbGwgZGlzYWxsb3cgYW55IHBhZ2V0YWJsZSB1cGRh
dGUgd2hpY2ggd2lsbCBlbmQgdXAKKyAqIG1hcHBpbmcgcGFnZXRhYmxlIHBhZ2UgUlcsIGFuZCB3
aWxsIGRpc2FsbG93IHVzaW5nIGFueSB3cml0YWJsZSBwYWdlIGFzIGEKKyAqIHBhZ2V0YWJsZS4g
SW4gcHJhY3RpY2UgaXQgbWVhbnMgdGhhdCB3aGVuIGNvbnN0cnVjdGluZyBhIHBhZ2UgdGFibGUg
Zm9yIGEKKyAqIHByb2Nlc3MsIHRocmVhZCwgZXRjLCB3ZSBNVVNUIGJlIHZlcnkgZGlsbGlnaWVu
dCBpbiBmb2xsb3dpbmcgdGhlc2UgcnVsZXM6CisgKiAgMSkuIFN0YXJ0IHdpdGggdG9wLWxldmVs
IHBhZ2UgKFBHRCBvciBpbiBYZW4gbGFuZ3VhZ2U6IEw0KS4gRmlsbCBvdXQKKyAqICAgICAgdGhl
IGVudHJpZXMuCisgKiAgMikuIEtlZXAgb24gZ29pbmcsIGZpbGxpbmcgb3V0IHRoZSB1cHBlciAo
UFVEIG9yIEwzKSwgYW5kIG1pZGRsZSAoUE1ECisgKiAgICAgIG9yIEwyKS4KKyAqICAzKS4gU3Rh
cnQgZmlsbGluZyBvdXQgdGhlIFBURSB0YWJsZSAoTDEpIHdpdGggdGhlIFBURSBlbnRyaWVzLiBP
bmNlCisgKiAgCWRvbmUsIG1ha2Ugc3VyZSB0byBzZXQgZWFjaCBvZiB0aG9zZSBlbnRyaWVzIHRv
IFJPIChzbyB3cml0ZWFibGUgYml0CisgKiAgCWlzIHVuc2V0KS4gT25jZSB0aGF0IGhhcyBiZWVu
IGNvbXBsZXRlZCwgc2V0IHRoZSBQTUQgKEwyKSBmb3IgdGhpcworICogIAlQVEUgdGFibGUgYXMg
Uk8uCisgKiAgNCkuIFdoZW4gY29tcGxldGVkIHdpdGggYWxsIG9mIHRoZSBQTUQgKEwyKSBlbnRy
aWVzLCBhbmQgYWxsIG9mIHRoZW0gaGF2ZQorICogIAliZWVuIHNldCB0byBSTywgbWFrZSBzdXJl
IHRvIHNldCBSTyB0aGUgUFVEIChMMykuIERvIHRoZSBzYW1lCisgKiAgCW9wZXJhdGlvbiBvbiBQ
R0QgKEw0KSBwYWdldGFibGUgZW50cmllcyB0aGF0IGhhdmUgYSBQVUQgKEwzKSBlbnRyeS4KKyAq
ICA1KS4gTm93IGJlZm9yZSB5b3UgY2FuIHVzZSB0aG9zZSBwYWdlcyAoc28gc2V0dGluZyB0aGUg
Y3IzKSwgeW91IE1VU1QgYWxzbworICogICAgICBwaW4gdGhlbSBzbyB0aGF0IHRoZSBoeXBlcnZp
c29yIGNhbiB2ZXJpZnkgdGhlIGVudHJpZXMuIFRoaXMgaXMgZG9uZQorICogICAgICB2aWEgdGhl
IEhZUEVSVklTT1JfbW11ZXh0X29wKE1NVUVYVF9QSU5fTDRfVEFCTEUsIGd1ZXN0IHBoeXNpY2Fs
IGZyYW1lCisgKiAgICAgIG51bWJlciBvZiB0aGUgUEdEIChMNCkpLiBBbmQgdGhpcyBwb2ludCB0
aGUgSFlQRVJWSVNPUl9tbXVleHRfb3AoCisgKiAgICAgIE1NVUVYVF9ORVdfQkFTRVBUUiwgZ3Vl
c3QgcGh5c2ljYWwgZnJhbWUgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkgY2FuIGJlCisgKiAgICAg
IGlzc3VlZC4KKyAqIEZvciAzMi1iaXQgZ3Vlc3RzLCB0aGUgTDQgaXMgbm90IHVzZWQgKGFzIHRo
ZXJlIGlzIGxlc3MgcGFnZXRhYmxlcyksIHNvCisgKiBpbnN0ZWFkIHVzZSBMMy4KKyAqIEF0IHRo
aXMgcG9pbnQgdGhlIHBhZ2V0YWJsZXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBNTVVfTk9S
TUFMX1BUX1VQREFURQorICogaHlwZXJjYWxsLiBBbHNvIGlmIHNvIGRlc2lyZWQgdGhlIE9TIGNh
biBhbHNvIHRyeSB0byB3cml0ZSB0byB0aGUgUFRFCisgKiBhbmQgYmUgdHJhcHBlZCBieSB0aGUg
aHlwZXJ2aXNvciAoYXMgdGhlIFBURSBlbnRyeSBpcyBSTykuCisgKgorICogVG8gZGVhbGxvY2F0
ZSB0aGUgcGFnZXMsIHRoZSBvcGVyYXRpb25zIGFyZSB0aGUgcmV2ZXJzZSBvZiB0aGUgc3RlcHMK
KyAqIG1lbnRpb25lZCBhYm92ZS4gVGhlIGFyZ3VtZW50IGlzIE1NVUVYVF9VTlBJTl9UQUJMRSBm
b3IgYWxsIGxldmVscyBhbmQgdGhlCisgKiBwYWdldGFibGUgTVVTVCBub3QgYmUgaW4gdXNlICht
ZWFuaW5nIHRoYXQgdGhlIGNyMyBpcyBub3Qgc2V0IHRvIGl0KS4KKyAqCisgKiBwdHJbMTowXSA9
PSBNTVVfTUFDSFBIWVNfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiB0aGUgbWFjaGlu
ZS0+cHNldWRvLXBoeXNpY2FsIG1hcHBpbmcgdGFibGUuCisgKiBwdHJbOjJdICAtLSBNYWNoaW5l
IGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KKyAqICAg
ICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVj
aWZpZWQuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVu
dHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBB
cyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0
aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCisgKgorICogQHZhbCBpcyB1
c3VhbGx5IHRoZSBtYWNoaW5lIGZyYW1lIG51bWJlciBhbG9uZyB3aXRoIHNvbWUgYXR0cmlidXRl
cy4KKyAqIFRoZSBhdHRyaWJ1dGVzIGJ5IGRlZmF1bHQgZm9sbG93IHRoZSBhcmNoaXRlY3R1cmUg
ZGVmaW5lZCBiaXRzLiBNZWFuaW5nIHRoYXQKKyAqIGlmIHRoaXMgaXMgYSBYODZfNjQgbWFjaGlu
ZSBhbmQgZm91ciBwYWdlIHRhYmxlIGxheW91dCBpcyB1c2VkLCB0aGUgbGF5b3V0CisgKiBvZiB2
YWwgaXM6CisgKiAgLSA2MyBpZiBzZXQgbWVhbnMgTm8gZXhlY3V0ZSAoTlgpCisgKiAgLSA0Ni0x
MyB0aGUgbWFjaGluZSBmcmFtZSBudW1iZXIKKyAqICAtIDEyIGF2YWlsYWJsZSBmb3IgZ3Vlc3QK
KyAqICAtIDExIGF2YWlsYWJsZSBmb3IgZ3Vlc3QKKyAqICAtIDEwIGF2YWlsYWJsZSBmb3IgZ3Vl
c3QKKyAqICAtIDkgYXZhaWxhYmxlIGZvciBndWVzdAorICogIC0gOCBnbG9iYWwKKyAqICAtIDcg
UEFUIChQU0UgaXMgZGlzYWJsZWQsIG11c3QgdXNlIGh5cGVyY2FsbCB0byBtYWtlIDRNQiBvciAy
TUIgcGFnZXMpCisgKiAgLSA2IGRpcnR5CisgKiAgLSA1IGFjY2Vzc2VkCisgKiAgLSA0IHBhZ2Ug
Y2FjaGVkIGRpc2FibGVkCisgKiAgLSAzIHBhZ2Ugd3JpdGUgdGhyb3VnaAorICogIC0gMiB1c2Vy
c3BhY2UgYWNjZXNzaWJsZQorICogIC0gMSB3cml0ZWFibGUKKyAqICAtIDAgcHJlc2VudAorICoK
KyAqICBUaGUgb25lIGJpdHMgdGhhdCBkb2VzIG5vdCBmaXQgd2l0aCB0aGUgZGVmYXVsdCBsYXlv
dXQgaXMgdGhlIFBBR0VfUFNFCisgKiAgYWxzbyBjYWxsZWQgUEFHRV9QQVQpLiBUaGUgTU1VRVhU
X1tVTl1NQVJLX1NVUEVSIGFyZ3VtZW50cyB0byB0aGUKKyAqICBIWVBFUlZJU09SX21tdWV4dF9v
cCBzZXJ2ZSBhcyBtZWNoYW5pc20gdG8gc2V0IGEgcGFnZXRhYmxlIHRvIGJlIDRNQgorICogIChv
ciAyTUIpIGluc3RlYWQgb2YgdXNpbmcgdGhlIFBBR0VfUFNFIGJpdC4KKyAqCisgKiAgVGhlIHJl
YXNvbiB0aGF0IHRoZSBQQUdFX1BTRSAoYml0IDcpIGlzIG5vdCBiZWluZyB1dGlsaXplZCBpcyBk
dWUgdG8gWGVuCisgKiAgdXNpbmcgaXQgYXMgdGhlIFBhZ2UgQXR0cmlidXRlIFRhYmxlIChQQVQp
IGJpdCAtIGZvciBkZXRhaWxzIG9uIGl0IHBsZWFzZQorICogIHJlZmVyIHRvIEludGVsIFNETSAx
MC4xMi4gVGhlIFBBVCBhbGxvd3MgdG8gc2V0IHRoZSBjYWNoaW5nIGF0dHJpYnV0ZXMgb2YKKyAq
ICBwYWdlcyBpbnN0ZWFkIG9mIHVzaW5nIE1UUlJzLgorICoKKyAqICBUaGUgUEFUIE1TUiBpcyBh
cyBmb2xsb3dzIChpdCBpcyBhIDY0LWJpdCB2YWx1ZSwgZWFjaCBlbnRyeSBpcyA4IGJpdHMpOgor
ICogICAgICAgICAgICAgICAgICAgIFBBVDQgICAgICAgICAgICAgICAgIFBBVDAKKyAqICArLS0t
LS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKworICogIHwgVUMgIHwgVUMt
IHwgV0MgfCBXQiB8IFVDIHwgVUMtIHwgV0MgfCBXQiB8ICA8PSBMaW51eAorICogICstLS0tLSst
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisgKiAgfCBVQyAgfCBVQy0gfCBX
VCB8IFdCIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9IEJJT1MgKGRlZmF1bHQgd2hlbiBtYWNo
aW5lIGJvb3RzKQorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0t
LS0rCisgKiAgfCByc3YgfCByc3YgfCBXUCB8IFdDIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9
IFhlbgorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisg
KgorICogIFRoZSBsb29rdXAgb2YgdGhpcyBpbmRleCB0YWJsZSB0cmFuc2xhdGVzIHRvIGxvb2tp
bmcgdXAKKyAqICBCaXQgNywgQml0IDQsIGFuZCBCaXQgMyBvZiB2YWwgZW50cnk6CisgKgorICog
IFBBVC9QU0UgKGJpdCA3KSAuLi4gUENEIChiaXQgNCkgLi4gUFdUIChiaXQgMykuCisgKgorICog
IElmIGFsbCBiaXRzIGFyZSBvZmYsIHRoZW4gd2UgYXJlIHVzaW5nIFBBVDAuIElmIGJpdCAzIHR1
cm5lZCBvbiwKKyAqICB0aGVuIHdlIGFyZSB1c2luZyBQQVQxLCBpZiBiaXQgMyBhbmQgYml0IDQs
IHRoZW4gUEFUMi4uCisgKgorICogIEFzIHlvdSBjYW4gc2VlLCB0aGUgTGludXggUEFUMSB0cmFu
c2xhdGVzIHRvIFBBVDQgdW5kZXIgWGVuLiBXaGljaCBtZWFucworICogIHRoYXQgaWYgYSBndWVz
dCB0aGF0IGZvbGxvd3MgTGludXgncyBQQVQgc2V0dXAgYW5kIHdvdWxkIGxpa2UgdG8gc2V0IFdy
aXRlCisgKiAgQ29tYmluZWQgb24gcGFnZXMgaXQgTVVTVCB1c2UgUEFUNCBlbnRyeS4gTWVhbmlu
ZyB0aGF0IEJpdCA3IChQQUdFX1BBVCkgaXMKKyAqICBzZXQuIEZvciBleGFtcGxlLCB1bmRlciBM
aW51eCBpdCBvbmx5IHVzZXMgUEFUMCwgUEFUMSwgYW5kIFBBVDIgZm9yIHRoZQorICogIGNhY2hp
bmcgYXM6CisgKgorICogICBXQiA9IG5vbmUgKHNvIFBBVDApCisgKiAgIFdDID0gUFdUIChiaXQg
MyBvbikKKyAqICAgVUMgPSBQV1QgfCBQQ0QgKGJpdCAzIGFuZCA0IGFyZSBvbikuCisgKgorICog
VG8gbWFrZSBpdCB3b3JrIHdpdGggWGVuLCBpdCBuZWVkcyB0byB0cmFuc2xhdGUgdGhlIFdDIGJp
dCBhcyBzbzoKKyAqCisgKiAgUFdUIChzbyBiaXQgMyBvbikgLS0+IFBBVCAoc28gYml0IDcgaXMg
b24pIGFuZCBjbGVhciBiaXQgMworICoKKyAqIEFuZCB0byB0cmFuc2xhdGUgYmFjayBpdCB3b3Vs
ZDoKKyAqCisgKiBQQVQgKGJpdCA3IG9uKSAtLT4gUFdUIChiaXQgMyBvbikgYW5kIGNsZWFyIGJp
dCA3LgorICovCisjZGVmaW5lIE1NVV9OT1JNQUxfUFRfVVBEQVRFICAgICAgMCAvKiBjaGVja2Vk
ICcqcHRyID0gdmFsJy4gcHRyIGlzIE1BLiAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19V
UERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICov
CisjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5OiAqcHRy
ID0gdmFsIHwgKCpwdHImKEF8RCkpICovCisKKy8qCisgKiBNTVUgRVhURU5ERUQgT1BFUkFUSU9O
UworICoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVleHRfb3Ao
bW11ZXh0X29wX3QgdW9wc1tdLAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgY291bnQsCisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcGRvbmUs
CisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmb3JlaWduZG9tKQorICov
CisvKiBIWVBFUlZJU09SX21tdWV4dF9vcCgpIGFjY2VwdHMgYSBsaXN0IG9mIG1tdWV4dF9vcCBz
dHJ1Y3R1cmVzLgorICogQSBmb3JlaWduZG9tIChGRCkgY2FuIGJlIHNwZWNpZmllZCAob3IgRE9N
SURfU0VMRiBmb3Igbm9uZSkuCisgKiBXaGVyZSB0aGUgRkQgaGFzIHNvbWUgZWZmZWN0LCBpdCBp
cyBkZXNjcmliZWQgYmVsb3cuCisgKgorICogY21kOiBNTVVFWFRfKFVOKVBJTl8qX1RBQkxFCisg
KiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIHRvIGJlICh1bilwaW5uZWQgYXMgYSBwLnQuIHBh
Z2UuCisgKiAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBz
cGVjaWZpZWQuCisgKgorICogY21kOiBNTVVFWFRfTkVXX0JBU0VQVFIKKyAqIG1mbjogTWFjaGlu
ZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxsIGluIE1NVS4K
KyAqCisgKiBjbWQ6IE1NVUVYVF9ORVdfVVNFUl9CQVNFUFRSIFt4ODYvNjQgb25seV0KKyAqIG1m
bjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxs
IGluIE1NVQorICogICAgICB3aGVuIGluIHVzZXIgc3BhY2UuCisgKgorICogY21kOiBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gRmx1c2hlcyBsb2Nh
bCBUTEIuCisgKgorICogY21kOiBNTVVFWFRfSU5WTFBHX0xPQ0FMCisgKiBsaW5lYXJfYWRkcjog
TGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIHRoZSBsb2NhbCBUTEIuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX01VTFRJCisgKiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRt
YXAgb2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9JTlZMUEdfTVVM
VEkKKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkLgorICogdmNw
dW1hc2s6IFBvaW50ZXIgdG8gYml0bWFwIG9mIFZDUFVzIHRvIGJlIGZsdXNoZWQuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX0FMTAorICogTm8gYWRkaXRpb25hbCBhcmd1bWVudHMuIEZs
dXNoZXMgYWxsIFZDUFVzJyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0lOVkxQR19BTEwKKyAq
IGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkIGZyb20gYWxsIFZDUFVz
JyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NBQ0hFCisgKiBObyBhZGRpdGlvbmFs
IGFyZ3VtZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMuCisgKgor
ICogY21kOiBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xPQkFMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3Vt
ZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMKKyAqIG9uIGFsbCBD
UFVzIGluIHRoZSBzeXN0ZW0uCisgKgorICogY21kOiBNTVVFWFRfU0VUX0xEVAorICogbGluZWFy
X2FkZHI6IExpbmVhciBhZGRyZXNzIG9mIExEVCBiYXNlIChOQi4gbXVzdCBiZSBwYWdlLWFsaWdu
ZWQpLgorICogbnJfZW50czogTnVtYmVyIG9mIGVudHJpZXMgaW4gTERULgorICoKKyAqIGNtZDog
TU1VRVhUX0NMRUFSX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgY2xl
YXJlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9DT1BZX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFt
ZSBudW1iZXIgb2YgdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCisgKiBzcmNfbWZuOiBNYWNoaW5lIGZy
YW1lIG51bWJlciBvZiB0aGUgc291cmNlIHBhZ2UuCisgKgorICogY21kOiBNTVVFWFRfW1VOXU1B
UktfU1VQRVIKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgaGVhZCBvZiBzdXBlcnBh
Z2UgdG8gYmUgW3VuXW1hcmtlZC4KKyAqLworLyogYCBlbnVtIG1tdWV4dF9jbWQgeyAqLworI2Rl
ZmluZSBNTVVFWFRfUElOX0wxX1RBQkxFICAgICAgMAorI2RlZmluZSBNTVVFWFRfUElOX0wyX1RB
QkxFICAgICAgMQorI2RlZmluZSBNTVVFWFRfUElOX0wzX1RBQkxFICAgICAgMgorI2RlZmluZSBN
TVVFWFRfUElOX0w0X1RBQkxFICAgICAgMworI2RlZmluZSBNTVVFWFRfVU5QSU5fVEFCTEUgICAg
ICAgNAorI2RlZmluZSBNTVVFWFRfTkVXX0JBU0VQVFIgICAgICAgNQorI2RlZmluZSBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMICAgNgorI2RlZmluZSBNTVVFWFRfSU5WTFBHX0xPQ0FMICAgICAgNwor
I2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX01VTFRJICAgOAorI2RlZmluZSBNTVVFWFRfSU5WTFBH
X01VTFRJICAgICAgOQorI2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX0FMTCAgICAxMAorI2RlZmlu
ZSBNTVVFWFRfSU5WTFBHX0FMTCAgICAgICAxMQorI2RlZmluZSBNTVVFWFRfRkxVU0hfQ0FDSEUg
ICAgICAxMgorI2RlZmluZSBNTVVFWFRfU0VUX0xEVCAgICAgICAgICAxMworI2RlZmluZSBNTVVF
WFRfTkVXX1VTRVJfQkFTRVBUUiAxNQorI2RlZmluZSBNTVVFWFRfQ0xFQVJfUEFHRSAgICAgICAx
NgorI2RlZmluZSBNTVVFWFRfQ09QWV9QQUdFICAgICAgICAxNworI2RlZmluZSBNTVVFWFRfRkxV
U0hfQ0FDSEVfR0xPQkFMIDE4CisjZGVmaW5lIE1NVUVYVF9NQVJLX1NVUEVSICAgICAgIDE5Cisj
ZGVmaW5lIE1NVUVYVF9VTk1BUktfU1VQRVIgICAgIDIwCisvKiBgIH0gKi8KKworI2lmbmRlZiBf
X0FTU0VNQkxZX18KK3N0cnVjdCBtbXVleHRfb3AgeworICAgIHVuc2lnbmVkIGludCBjbWQ7IC8q
ID0+IGVudW0gbW11ZXh0X2NtZCAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLyogW1VOXVBJTl9U
QUJMRSwgTkVXX0JBU0VQVFIsIE5FV19VU0VSX0JBU0VQVFIKKyAgICAgICAgICogQ0xFQVJfUEFH
RSwgQ09QWV9QQUdFLCBbVU5dTUFSS19TVVBFUiAqLworICAgICAgICB4ZW5fcGZuX3QgICAgIG1m
bjsKKyAgICAgICAgLyogSU5WTFBHX0xPQ0FMLCBJTlZMUEdfQUxMLCBTRVRfTERUICovCisgICAg
ICAgIFVMT05HX1BUUiBsaW5lYXJfYWRkcjsKKyAgICB9IGFyZzE7CisgICAgdW5pb24geworICAg
ICAgICAvKiBTRVRfTERUICovCisgICAgICAgIHVuc2lnbmVkIGludCBucl9lbnRzOworICAgICAg
ICAvKiBUTEJfRkxVU0hfTVVMVEksIElOVkxQR19NVUxUSSAqLworI2lmIF9fWEVOX0lOVEVSRkFD
RV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwNQorICAgICAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0
X3ZvaWQpIHZjcHVtYXNrOworI2Vsc2UKKyAgICAgICAgY29uc3Qgdm9pZCAqdmNwdW1hc2s7Cisj
ZW5kaWYKKyAgICAgICAgLyogQ09QWV9QQUdFICovCisgICAgICAgIHhlbl9wZm5fdCBzcmNfbWZu
OworICAgIH0gYXJnMjsKK307Cit0eXBlZGVmIHN0cnVjdCBtbXVleHRfb3AgbW11ZXh0X29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CisjZW5kaWYKKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhV
TE9OR19QVFIgdmEsIHU2NCB2YWwsCisgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW51bSB1dm1fZmxhZ3MgZmxhZ3MpCisgKiBgCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBg
IEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oVUxPTkdfUFRSIHZhLCB1
NjQgdmFsLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dW0gdXZtX2ZsYWdzIGZsYWdzLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbWlkX3QgZG9taWQpCisgKiBgCisgKiBgIEB2YTogVGhlIHZpcnR1YWwgYWRk
cmVzcyB3aG9zZSBtYXBwaW5nIHdlIHdhbnQgdG8gY2hhbmdlCisgKiBgIEB2YWw6IFRoZSBuZXcg
cGFnZSB0YWJsZSBlbnRyeSwgbXVzdCBjb250YWluIGEgbWFjaGluZSBhZGRyZXNzCisgKiBgIEBm
bGFnczogQ29udHJvbCBUTEIgZmx1c2hlcworICovCisvKiBUaGVzZSBhcmUgcGFzc2VkIGFzICdm
bGFncycgdG8gdXBkYXRlX3ZhX21hcHBpbmcuIFRoZXkgY2FuIGJlIE9SZWQuICovCisvKiBXaGVu
IHNwZWNpZnlpbmcgVVZNRl9NVUxUSSwgYWxzbyBPUiBpbiBhIHBvaW50ZXIgdG8gYSBDUFUgYml0
bWFwLiAgICovCisvKiBVVk1GX0xPQ0FMIGlzIG1lcmVseSBVVk1GX01VTFRJIHdpdGggYSBOVUxM
IGJpdG1hcCBwb2ludGVyLiAgICAgICAgICovCisvKiBgIGVudW0gdXZtX2ZsYWdzIHsgKi8KKyNk
ZWZpbmUgVVZNRl9OT05FICAgICAgICAgICAoeGVuX21rX3Vsb25nKDApPDwwKSAvKiBObyBmbHVz
aGluZyBhdCBhbGwuICAgKi8KKyNkZWZpbmUgVVZNRl9UTEJfRkxVU0ggICAgICAoeGVuX21rX3Vs
b25nKDEpPDwwKSAvKiBGbHVzaCBlbnRpcmUgVExCKHMpLiAgKi8KKyNkZWZpbmUgVVZNRl9JTlZM
UEcgICAgICAgICAoeGVuX21rX3Vsb25nKDIpPDwwKSAvKiBGbHVzaCBvbmx5IG9uZSBlbnRyeS4g
Ki8KKyNkZWZpbmUgVVZNRl9GTFVTSFRZUEVfTUFTSyAoeGVuX21rX3Vsb25nKDMpPDwwKQorI2Rl
ZmluZSBVVk1GX01VTFRJICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDIpIC8qIEZsdXNoIHN1
YnNldCBvZiBUTEJzLiAqLworI2RlZmluZSBVVk1GX0xPQ0FMICAgICAgICAgICh4ZW5fbWtfdWxv
bmcoMCk8PDIpIC8qIEZsdXNoIGxvY2FsIFRMQi4gICAgICAqLworI2RlZmluZSBVVk1GX0FMTCAg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAq
LworLyogYCB9ICovCisKKy8qCisgKiBDb21tYW5kcyB0byBIWVBFUlZJU09SX2NvbnNvbGVfaW8o
KS4KKyAqLworI2RlZmluZSBDT05TT0xFSU9fd3JpdGUgICAgICAgICAwCisjZGVmaW5lIENPTlNP
TEVJT19yZWFkICAgICAgICAgIDEKKworLyoKKyAqIENvbW1hbmRzIHRvIEhZUEVSVklTT1Jfdm1f
YXNzaXN0KCkuCisgKi8KKyNkZWZpbmUgVk1BU1NUX0NNRF9lbmFibGUgICAgICAgICAgICAgICAg
MAorI2RlZmluZSBWTUFTU1RfQ01EX2Rpc2FibGUgICAgICAgICAgICAgICAxCisKKy8qIHg4Ni8z
MiBndWVzdHM6IHNpbXVsYXRlIGZ1bGwgNEdCIHNlZ21lbnQgbGltaXRzLiAqLworI2RlZmluZSBW
TUFTU1RfVFlQRV80Z2Jfc2VnbWVudHMgICAgICAgICAwCisKKy8qIHg4Ni8zMiBndWVzdHM6IHRy
YXAgKHZlY3RvciAxNSkgd2hlbmV2ZXIgYWJvdmUgdm1hc3Npc3QgaXMgdXNlZC4gKi8KKyNkZWZp
bmUgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzX25vdGlmeSAgMQorCisvKgorICogeDg2IGd1ZXN0
czogc3VwcG9ydCB3cml0ZXMgdG8gYm90dG9tLWxldmVsIFBURXMuCisgKiBOQjEuIFBhZ2UtZGly
ZWN0b3J5IGVudHJpZXMgY2Fubm90IGJlIHdyaXR0ZW4uCisgKiBOQjIuIEd1ZXN0IG11c3QgY29u
dGludWUgdG8gcmVtb3ZlIGFsbCB3cml0YWJsZSBtYXBwaW5ncyBvZiBQVEVzLgorICovCisjZGVm
aW5lIFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMgIDIKKworLyogeDg2L1BBRSBndWVz
dHM6IHN1cHBvcnQgUERQVHMgYWJvdmUgNEdCLiAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9wYWVf
ZXh0ZW5kZWRfY3IzICAgICAzCisKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJlaGF2aW91ciBm
b3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9tIGRvX2lyZXQo
KSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFt
ZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBmb3IgdGhlIHB1
cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0
dXJhbF9pb3BsICAgNAorCisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAg
ZnJvbSB1c2VyIG1vZGUuCisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNw
ZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVz
IGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5kIHdo
ZW5ldmVyIHRoZSBMNCB0YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNzaW5n
CisgKiAgIG1hcHBpbmcgZ2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBn
ZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAgYXMg
YmVmb3JlLCBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIgb25l
IHRoZQorICogICBtYXBwaW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBF
X20ycF9zdHJpY3QgICAgICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
IDwgMHgwMDA0MDYwMAorI2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAgICAz
CisjZW5kaWYKKworLyogRG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3Qg
YmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4gKi8KKyNkZWZpbmUgRE9NSURfRklSU1RfUkVT
RVJWRUQgeGVuX21rX3VpbnQoMHg3RkYwKQorCisvKiBET01JRF9TRUxGIGlzIHVzZWQgaW4gY2Vy
dGFpbiBjb250ZXh0cyB0byByZWZlciB0byBvbmVzZWxmLiAqLworI2RlZmluZSBET01JRF9TRUxG
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjApCisKKy8qCisgKiBET01JRF9JTyBpcyB1c2Vk
IHRvIHJlc3RyaWN0IHBhZ2UtdGFibGUgdXBkYXRlcyB0byBtYXBwaW5nIEkvTyBtZW1vcnkuCisg
KiBBbHRob3VnaCBubyBGb3JlaWduIERvbWFpbiBuZWVkIGJlIHNwZWNpZmllZCB0byBtYXAgSS9P
IHBhZ2VzLCBET01JRF9JTworICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdz
IHRvIHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKKyAqIGluc3RhbGxlZC4gKGUu
Zy4sIGluIExpbnV4IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwor
ICogYXJlbid0IGFkanVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgorICogVGhp
cyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQg
Y29udGV4dCBjYW4KKyAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKi8K
KyNkZWZpbmUgRE9NSURfSU8gICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYxKQorCisvKgor
ICogRE9NSURfWEVOIGlzIHVzZWQgdG8gYWxsb3cgcHJpdmlsZWdlZCBkb21haW5zIHRvIG1hcCBy
ZXN0cmljdGVkIHBhcnRzIG9mCisgKiBYZW4ncyBoZWFwIHNwYWNlIChlLmcuLCB0aGUgbWFjaGlu
ZV90b19waHlzIHRhYmxlKS4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VU
X0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgorICogdGhlIGNhbGxlciBpcyBw
cml2aWxlZ2VkLgorICovCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGMikKKworLyoKKyAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBzaGFy
YWJsZSBwYWdlcyAqLworI2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgw
eDdGRjMpCisKKy8qIERPTUlEX0lOVkFMSUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRo
IHVua25vd24gb3duZXIuICovCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGNCkKKworLyogSWRsZSBkb21haW4uICovCisjZGVmaW5lIERPTUlEX0lETEUgICAg
ICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlw
ZWRlZiB1aW50MTZfdCBkb21pZF90OworCisvKgorICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0
byBIWVBFUlZJU09SX21tdV91cGRhdGUoKS4KKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBuYXR1cmFs
IHBvaW50ZXIvYWRkcmVzcyBzaXplIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KKyAqLworc3RydWN0
IG1tdV91cGRhdGUgeworICAgIHVpbnQ2NF90IHB0cjsgICAgICAgLyogTWFjaGluZSBhZGRyZXNz
IG9mIFBURS4gKi8KKyAgICB1aW50NjRfdCB2YWw7ICAgICAgIC8qIE5ldyBjb250ZW50cyBvZiBQ
VEUuICAgICovCit9OwordHlwZWRlZiBzdHJ1Y3QgbW11X3VwZGF0ZSBtbXVfdXBkYXRlX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVfdXBkYXRlX3QpOworCisvKgorICogYCBlbnVtIG5l
Z19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX211bHRpY2FsbChtdWx0aWNhbGxfZW50cnlfdCBj
YWxsX2xpc3RbXSwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnJfY2FsbHMp
OworICoKKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBsb2dpY2FsbHkgdGhlIG5hdHVyYWwgcmVnaXN0
ZXIgc2l6ZSBmb3IgdGhpcworICogYXJjaGl0ZWN0dXJlLiBJbiBjYXNlcyB3aGVyZSB4ZW5fdWxv
bmdfdCBpcyBsYXJnZXIgdGhhbiB0aGlzIHRoZW4KKyAqIGFueSB1bnVzZWQgYml0cyBpbiB0aGUg
dXBwZXIgcG9ydGlvbiBtdXN0IGJlIHplcm8uCisgKi8KK3N0cnVjdCBtdWx0aWNhbGxfZW50cnkg
eworICAgIHhlbl91bG9uZ190IG9wLCByZXN1bHQ7CisgICAgeGVuX3Vsb25nX3QgYXJnc1s2XTsK
K307Cit0eXBlZGVmIHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgbXVsdGljYWxsX2VudHJ5X3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtdWx0aWNhbGxfZW50cnlfdCk7CisKKyNpZiBfX1hFTl9J
TlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDQwMAorLyoKKyAqIEV2ZW50IGNoYW5uZWwgZW5k
cG9pbnRzIHBlciBkb21haW4gKHdoZW4gdXNpbmcgdGhlIDItbGV2ZWwgQUJJKToKKyAqICAxMDI0
IGlmIGEgTE9OR19QVFIgaXMgMzIgYml0czsgNDA5NiBpZiBhIExPTkdfUFRSIGlzIDY0IGJpdHMu
CisgKi8KKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxTCisj
ZW5kaWYKKworc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKKyAgICAvKgorICAgICAqIFVwZGF0ZXMg
dG8gdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHByZWNlZGVkIGFuZCBmb2xsb3dlZCBieSBhbgor
ICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhlcmVmb3JlIGRl
dGVjdCB1cGRhdGVzIGJ5CisgICAgICogbG9va2luZyBmb3IgY2hhbmdlcyB0byAndmVyc2lvbicu
IElmIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YKKyAgICAgKiB0aGUgdmVyc2lvbiBudW1i
ZXIgaXMgc2V0IHRoZW4gYW4gdXBkYXRlIGlzIGluIHByb2dyZXNzIGFuZCB0aGUgZ3Vlc3QKKyAg
ICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9mIHZhbHVlcy4KKyAgICAg
KiBUaGUgY29ycmVjdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIgaXMg
c2ltaWxhciB0bworICAgICAqIExpbnV4J3Mgc2VxbG9jazogc2VlIHRoZSBpbXBsZW1lbnRhdGlv
bnMgb2YgcmVhZF9zZXFiZWdpbi9yZWFkX3NlcXJldHJ5LgorICAgICAqLworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgcGFkMDsKKyAgICB1aW50NjRfdCB0c2NfdGltZXN0YW1w
OyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZhbHMuICAqLworICAgIHVpbnQ2NF90
IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3NlY3MsIHNpbmNlIGJvb3QuICAgICov
CisgICAgLyoKKyAgICAgKiBDdXJyZW50IHN5c3RlbSB0aW1lOgorICAgICAqICAgc3lzdGVtX3Rp
bWUgKworICAgICAqICAgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkgKiB0
c2NfdG9fc3lzdGVtX211bCkgPj4gMzIpCisgICAgICogQ1BVIGZyZXF1ZW5jeSAoSHopOgorICAg
ICAqICAgKCgxMF45IDw8IDMyKSAvIHRzY190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQKKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211bDsKKyAgICBpbnQ4X3QgICB0c2Nf
c2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IDB4MDQwNjAwCisgICAgdWlu
dDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsKKyNlbHNlCisgICAgaW50OF90ICAg
cGFkMVszXTsKKyNlbmRpZgorfTsgLyogMzIgYnl0ZXMgKi8KK3R5cGVkZWYgc3RydWN0IHZjcHVf
dGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfVFNDX1NU
QUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9QVkNMT0NLX0dVRVNUX1NUT1BQRUQg
ICAgICAoMSA8PCAxKQorCitzdHJ1Y3QgdmNwdV9pbmZvIHsKKyAgICAvKgorICAgICAqICdldnRj
aG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGljYXRl
CisgICAgICogYSBwZW5kaW5nIG5vdGlmaWNhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIFZDUFUuIEl0
IGlzIHRoZW4gY2xlYXJlZAorICAgICAqIGJ5IHRoZSBndWVzdCBPUyAvYmVmb3JlLyBjaGVja2lu
ZyBmb3IgcGVuZGluZyB3b3JrLCB0aHVzIGF2b2lkaW5nCisgICAgICogYSBzZXQtYW5kLWNoZWNr
IHJhY2UuIE5vdGUgdGhhdCB0aGUgbWFzayBpcyBvbmx5IGFjY2Vzc2VkIGJ5IFhlbgorICAgICAq
IG9uIHRoZSBDUFUgdGhhdCBpcyBjdXJyZW50bHkgaG9zdGluZyB0aGUgVkNQVS4gVGhpcyBtZWFu
cyB0aGF0IHRoZQorICAgICAqIHBlbmRpbmcgYW5kIG1hc2sgZmxhZ3MgY2FuIGJlIHVwZGF0ZWQg
YnkgdGhlIGd1ZXN0IHdpdGhvdXQgc3BlY2lhbAorICAgICAqIHN5bmNocm9uaXNhdGlvbiAoaS5l
Liwgbm8gbmVlZCBmb3IgdGhlIHg4NiBMT0NLIHByZWZpeCkuCisgICAgICogVGhpcyBtYXkgc2Vl
bSBzdWJvcHRpbWFsIGJlY2F1c2UgaWYgdGhlIHBlbmRpbmcgZmxhZyBpcyBzZXQgYnkKKyAgICAg
KiBhIGRpZmZlcmVudCBDUFUgdGhlbiBhbiBJUEkgbWF5IGJlIHNjaGVkdWxlZCBldmVuIHdoZW4g
dGhlIG1hc2sKKyAgICAgKiBpcyBzZXQuIEhvd2V2ZXIsIG5vdGU6CisgICAgICogIDEuIFRoZSB0
YXNrIG9mICdpbnRlcnJ1cHQgaG9sZG9mZicgaXMgY292ZXJlZCBieSB0aGUgcGVyLWV2ZW50LQor
ICAgICAqICAgICBjaGFubmVsIG1hc2sgYml0cy4gQSAnbm9pc3knIGV2ZW50IHRoYXQgaXMgY29u
dGludWFsbHkgYmVpbmcKKyAgICAgKiAgICAgdHJpZ2dlcmVkIGNhbiBiZSBtYXNrZWQgYXQgc291
cmNlIGF0IHRoaXMgdmVyeSBwcmVjaXNlCisgICAgICogICAgIGdyYW51bGFyaXR5LgorICAgICAq
ICAyLiBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoZSBwZXItVkNQVSBtYXNrIGlzIHRoZXJlZm9yZSB0
byByZXN0cmljdAorICAgICAqICAgICByZWVudHJhbnQgZXhlY3V0aW9uOiB3aGV0aGVyIGZvciBj
b25jdXJyZW5jeSBjb250cm9sLCBvciB0bworICAgICAqICAgICBwcmV2ZW50IHVuYm91bmRlZCBz
dGFjayB1c2FnZS4gV2hhdGV2ZXIgdGhlIHB1cnBvc2UsIHdlIGV4cGVjdAorICAgICAqICAgICB0
aGF0IHRoZSBtYXNrIHdpbGwgYmUgYXNzZXJ0ZWQgb25seSBmb3Igc2hvcnQgcGVyaW9kcyBhdCBh
IHRpbWUsCisgICAgICogICAgIGFuZCBzbyB0aGUgbGlrZWxpaG9vZCBvZiBhICdzcHVyaW91cycg
SVBJIGlzIHN1aXRhYmx5IHNtYWxsLgorICAgICAqIFRoZSBtYXNrIGlzIHJlYWQgYmVmb3JlIG1h
a2luZyBhbiBldmVudCB1cGNhbGwgdG8gdGhlIGd1ZXN0OiBhCisgICAgICogbm9uLXplcm8gbWFz
ayB0aGVyZWZvcmUgZ3VhcmFudGVlcyB0aGF0IHRoZSBWQ1BVIHdpbGwgbm90IHJlY2VpdmUKKyAg
ICAgKiBhbiB1cGNhbGwgYWN0aXZhdGlvbi4gVGhlIG1hc2sgaXMgY2xlYXJlZCB3aGVuIHRoZSBW
Q1BVIHJlcXVlc3RzCisgICAgICogdG8gYmxvY2s6IHRoaXMgYXZvaWRzIHdha2V1cC13YWl0aW5n
IHJhY2VzLgorICAgICAqLworICAgIHVpbnQ4X3QgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nOworI2lm
ZGVmIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLCisgICAgdWludDhfdCBldnRjaG5fdXBjYWxsX21h
c2s7CisjZWxzZSAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHVpbnQ4X3QgcGFk
MDsKKyNlbmRpZiAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHhlbl91bG9uZ190
IGV2dGNobl9wZW5kaW5nX3NlbDsKKyAgICBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaDsKKyAg
ICBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gdGltZTsKK307IC8qIDY0IGJ5dGVzICh4ODYpICovCisj
aWZuZGVmIF9fWEVOX18KK3R5cGVkZWYgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2luZm9fdDsKKyNl
bmRpZgorCisvKgorICogYGluY29udGVudHMgMjAwIHN0YXJ0b2ZkYXlfc2hhcmVkIFN0YXJ0LW9m
LWRheSBzaGFyZWQgZGF0YSBzdHJ1Y3R1cmUKKyAqIFhlbi9rZXJuZWwgc2hhcmVkIGRhdGEgLS0g
cG9pbnRlciBwcm92aWRlZCBpbiBzdGFydF9pbmZvLgorICoKKyAqIFRoaXMgc3RydWN0dXJlIGlz
IGRlZmluZWQgdG8gYmUgYm90aCBzbWFsbGVyIHRoYW4gYSBwYWdlLCBhbmQgdGhlCisgKiBvbmx5
IGRhdGEgb24gdGhlIHNoYXJlZCBwYWdlLCBidXQgbWF5IHZhcnkgaW4gYWN0dWFsIHNpemUgZXZl
biB3aXRoaW4KKyAqIGNvbXBhdGlibGUgWGVuIHZlcnNpb25zOyBndWVzdHMgc2hvdWxkIG5vdCBy
ZWx5IG9uIHRoZSBzaXplCisgKiBvZiB0aGlzIHN0cnVjdHVyZSByZW1haW5pbmcgY29uc3RhbnQu
CisgKi8KK3N0cnVjdCBzaGFyZWRfaW5mbyB7CisgICAgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2lu
Zm9bWEVOX0xFR0FDWV9NQVhfVkNQVVNdOworCisgICAgLyoKKyAgICAgKiBBIGRvbWFpbiBjYW4g
Y3JlYXRlICJldmVudCBjaGFubmVscyIgb24gd2hpY2ggaXQgY2FuIHNlbmQgYW5kIHJlY2VpdmUK
KyAgICAgKiBhc3luY2hyb25vdXMgZXZlbnQgbm90aWZpY2F0aW9ucy4gVGhlcmUgYXJlIHRocmVl
IGNsYXNzZXMgb2YgZXZlbnQgdGhhdAorICAgICAqIGFyZSBkZWxpdmVyZWQgYnkgdGhpcyBtZWNo
YW5pc206CisgICAgICogIDEuIEJpLWRpcmVjdGlvbmFsIGludGVyLSBhbmQgaW50cmEtZG9tYWlu
IGNvbm5lY3Rpb25zLiBEb21haW5zIG11c3QKKyAgICAgKiAgICAgYXJyYW5nZSBvdXQtb2YtYmFu
ZCB0byBzZXQgdXAgYSBjb25uZWN0aW9uICh1c3VhbGx5IGJ5IGFsbG9jYXRpbmcKKyAgICAgKiAg
ICAgYW4gdW5ib3VuZCAnbGlzdGVuZXInIHBvcnQgYW5kIGF2ZXJ0aXNpbmcgdGhhdCB2aWEgYSBz
dG9yYWdlIHNlcnZpY2UKKyAgICAgKiAgICAgc3VjaCBhcyB4ZW5zdG9yZSkuCisgICAgICogIDIu
IFBoeXNpY2FsIGludGVycnVwdHMuIEEgZG9tYWluIHdpdGggc3VpdGFibGUgaGFyZHdhcmUtYWNj
ZXNzCisgICAgICogICAgIHByaXZpbGVnZXMgY2FuIGJpbmQgYW4gZXZlbnQtY2hhbm5lbCBwb3J0
IHRvIGEgcGh5c2ljYWwgaW50ZXJydXB0CisgICAgICogICAgIHNvdXJjZS4KKyAgICAgKiAgMy4g
VmlydHVhbCBpbnRlcnJ1cHRzICgnZXZlbnRzJykuIEEgZG9tYWluIGNhbiBiaW5kIGFuIGV2ZW50
LWNoYW5uZWwKKyAgICAgKiAgICAgcG9ydCB0byBhIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZSwg
c3VjaCBhcyB0aGUgdmlydHVhbC10aW1lcgorICAgICAqICAgICBkZXZpY2Ugb3IgdGhlIGVtZXJn
ZW5jeSBjb25zb2xlLgorICAgICAqCisgICAgICogRXZlbnQgY2hhbm5lbHMgYXJlIGFkZHJlc3Nl
ZCBieSBhICJwb3J0IGluZGV4Ii4gRWFjaCBjaGFubmVsIGlzCisgICAgICogYXNzb2NpYXRlZCB3
aXRoIHR3byBiaXRzIG9mIGluZm9ybWF0aW9uOgorICAgICAqICAxLiBQRU5ESU5HIC0tIG5vdGlm
aWVzIHRoZSBkb21haW4gdGhhdCB0aGVyZSBpcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uCisgICAg
ICogICAgIHRvIGJlIHByb2Nlc3NlZC4gVGhpcyBiaXQgaXMgY2xlYXJlZCBieSB0aGUgZ3Vlc3Qu
CisgICAgICogIDIuIE1BU0sgLS0gaWYgdGhpcyBiaXQgaXMgY2xlYXIgdGhlbiBhIDAtPjEgdHJh
bnNpdGlvbiBvZiBQRU5ESU5HCisgICAgICogICAgIHdpbGwgY2F1c2UgYW4gYXN5bmNocm9ub3Vz
IHVwY2FsbCB0byBiZSBzY2hlZHVsZWQuIFRoaXMgYml0IGlzIG9ubHkKKyAgICAgKiAgICAgdXBk
YXRlZCBieSB0aGUgZ3Vlc3QuIEl0IGlzIHJlYWQtb25seSB3aXRoaW4gWGVuLiBJZiBhIGNoYW5u
ZWwKKyAgICAgKiAgICAgYmVjb21lcyBwZW5kaW5nIHdoaWxlIHRoZSBjaGFubmVsIGlzIG1hc2tl
ZCB0aGVuIHRoZSAnZWRnZScgaXMgbG9zdAorICAgICAqICAgICAoaS5lLiwgd2hlbiB0aGUgY2hh
bm5lbCBpcyB1bm1hc2tlZCwgdGhlIGd1ZXN0IG11c3QgbWFudWFsbHkgaGFuZGxlCisgICAgICog
ICAgIHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhcyBubyB1cGNhbGwgd2lsbCBiZSBzY2hlZHVsZWQg
YnkgWGVuKS4KKyAgICAgKgorICAgICAqIFRvIGV4cGVkaXRlIHNjYW5uaW5nIG9mIHBlbmRpbmcg
bm90aWZpY2F0aW9ucywgYW55IDAtPjEgcGVuZGluZworICAgICAqIHRyYW5zaXRpb24gb24gYW4g
dW5tYXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCisgICAgICog
cGVyLXZjcHUgc2VsZWN0b3Igd29yZCB0byBiZSBzZXQuIEVhY2ggYml0IGluIHRoZSBzZWxlY3Rv
ciBjb3ZlcnMgYQorICAgICAqICdDIExPTkdfUFRSJyBpbiB0aGUgUEVORElORyBiaXRmaWVsZCBh
cnJheS4KKyAgICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBldnRjaG5fcGVuZGluZ1tzaXplb2YoeGVu
X3Vsb25nX3QpICogOF07CisgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX21hc2tbc2l6ZW9mKHhlbl91
bG9uZ190KSAqIDhdOworCisgICAgLyoKKyAgICAgKiBXYWxsY2xvY2sgdGltZTogdXBkYXRlZCBv
bmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQorICAgICAqIHRoZWly
IGdldHRpbWVvZmRheSgpIHN5c2NhbGwgb24gdGhpcyB3YWxsY2xvY2stYmFzZSB2YWx1ZS4KKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB3Y192ZXJzaW9uOyAgICAgIC8qIFZlcnNpb24gY291bnRlcjog
c2VlIHZjcHVfdGltZV9pbmZvX3QuICovCisgICAgdWludDMyX3Qgd2Nfc2VjOyAgICAgICAgICAv
KiBTZWNzICAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KKyAgICB1aW50MzJfdCB3Y19u
c2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworI2lm
ICFkZWZpbmVkKF9faTM4Nl9fKQorICAgIHVpbnQzMl90IHdjX3NlY19oaTsKKyMgZGVmaW5lIHhl
bl93Y19zZWNfaGkgd2Nfc2VjX2hpCisjZWxpZiAhZGVmaW5lZChfX1hFTl9fKSAmJiAhZGVmaW5l
ZChfX1hFTl9UT09MU19fKQorIyBkZWZpbmUgeGVuX3djX3NlY19oaSBhcmNoLndjX3NlY19oaQor
I2VuZGlmCisKKyAgICBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOworCit9OworI2lmbmRl
ZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCBzaGFyZWRfaW5mbyBzaGFyZWRfaW5mb190OworI2Vu
ZGlmCisKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheSBTdGFydC1vZi1kYXkgbWVt
b3J5IGxheW91dAorICoKKyAqICAxLiBUaGUgZG9tYWluIGlzIHN0YXJ0ZWQgd2l0aGluIGNvbnRp
Z3VvdXMgdmlydHVhbC1tZW1vcnkgcmVnaW9uLgorICogIDIuIFRoZSBjb250aWd1b3VzIHJlZ2lv
biBlbmRzIG9uIGFuIGFsaWduZWQgNE1CIGJvdW5kYXJ5LgorICogIDMuIFRoaXMgdGhlIG9yZGVy
IG9mIGJvb3RzdHJhcCBlbGVtZW50cyBpbiB0aGUgaW5pdGlhbCB2aXJ0dWFsIHJlZ2lvbjoKKyAq
ICAgICAgYS4gcmVsb2NhdGVkIGtlcm5lbCBpbWFnZQorICogICAgICBiLiBpbml0aWFsIHJhbSBk
aXNrICAgICAgICAgICAgICBbbW9kX3N0YXJ0LCBtb2RfbGVuXQorICogICAgICAgICAobWF5IGJl
IG9taXR0ZWQpCisgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2UgZnJhbWVzIFttZm5f
bGlzdCwgbnJfcGFnZXNdCisgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1ZSB0byBYRU5f
RUxGTk9URV9JTklUX1AyTSkKKyAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0cnVjdHVyZSAgICAg
ICAgW3JlZ2lzdGVyIEVTSSAoeDg2KV0KKyAqICAgICAgICAgaW4gY2FzZSBvZiBkb20wIHRoaXMg
cGFnZSBjb250YWlucyB0aGUgY29uc29sZSBpbmZvLCB0b28KKyAqICAgICAgZS4gdW5sZXNzIGRv
bTA6IHhlbnN0b3JlIHJpbmcgcGFnZQorICogICAgICBmLiB1bmxlc3MgZG9tMDogY29uc29sZSBy
aW5nIHBhZ2UKKyAqICAgICAgZy4gYm9vdHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jh
c2UgYW5kIENSMyAoeDg2KV0KKyAqICAgICAgaC4gYm9vdHN0cmFwIHN0YWNrICAgICAgICAgICAg
ICAgW3JlZ2lzdGVyIEVTUCAoeDg2KV0KKyAqICA0LiBCb290c3RyYXAgZWxlbWVudHMgYXJlIHBh
Y2tlZCB0b2dldGhlciwgYnV0IGVhY2ggaXMgNGtCLWFsaWduZWQuCisgKiAgNS4gVGhlIGxpc3Qg
b2YgcGFnZSBmcmFtZXMgZm9ybXMgYSBjb250aWd1b3VzICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9y
eQorICogICAgIGxheW91dCBmb3IgdGhlIGRvbWFpbi4gSW4gcGFydGljdWxhciwgdGhlIGJvb3Rz
dHJhcCB2aXJ0dWFsLW1lbW9yeQorICogICAgIHJlZ2lvbiBpcyBhIDE6MSBtYXBwaW5nIHRvIHRo
ZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWFwLgorICogIDYuIEFsbCBi
b290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3Qg
T1MuIFRoZQorICogICAgIG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJs
ZSwgd2hpY2ggaXMgbWFwcGVkIHJlYWQtb25seS4KKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVk
IHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBhZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCisgKiAgICAgYm9v
dHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vzc2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lv
biBpcworICogICAgIGV4dGVuZGVkIGJ5IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KKyAq
CisgKiBOb3RlOiBQcmlvciB0byAyNTgzMzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFk
anVzdCBEb20wIGluaXRpYWwgcGFnZQorICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRo
ZSBwdF9iYXNlICgzLmcgYWJvdmUpIGFuZCBjcjMgdG8gbm90IHBvaW50CisgKiB0byB0aGUgc3Rh
cnQgb2YgdGhlIGd1ZXN0IHBhZ2UgdGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcyku
CisgKiBUaGlzIG9ubHkgbWFuaWZlc3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxz
IGFuZCBub3QgMzItb24tNjQgZG9tVQorICogb3IgNjQtYml0IGtlcm5lbHMgb2YgYW55IGNvbG91
ci4gVGhlIHBhZ2UgdGFibGVzIGZvciBhIDMyLW9uLTY0IGRvbTAgZ290CisgKiBhbGxvY2F0ZWQg
aW4gdGhlIG9yZGVyOiAnZmlyc3QgTDEnLCdmaXJzdCBMMicsICdmaXJzdCBMMycsIHNvIHRoZSBv
ZmZzZXQKKyAqIHRvIHRoZSBwYWdlIHRhYmxlIGJhc2UgaXMgYnkgdHdvIHBhZ2VzIGJhY2suIFRo
ZSBpbml0aWFsIGRvbWFpbiBpZiBpdCBpcworICogMzItYml0IGFuZCBydW5zIHVuZGVyIGEgNjQt
Yml0IGh5cGVydmlzb3Igc2hvdWxkIF9OT1RfIHVzZSB0d28gb2YgdGhlCisgKiBwYWdlcyBwcmVj
ZWRpbmcgcHRfYmFzZSBhbmQgbWFyayB0aGVtIGFzIHJlc2VydmVkL3VudXNlZC4KKyAqLworI2lm
ZGVmIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZCitzdHJ1Y3Qgc3RhcnRfaW5mbyB7CisgICAgLyog
VEhFIEZPTExPV0lORyBBUkUgRklMTEVEIElOIEJPVEggT04gSU5JVElBTCBCT09UIEFORCBPTiBS
RVNVTUUuICAgICovCisgICAgY2hhciBtYWdpY1szMl07ICAgICAgICAgICAgIC8qICJ4ZW4tPHZl
cnNpb24+LTxwbGF0Zm9ybT4iLiAgICAgICAgICAgICovCisgICAgVUxPTkdfUFRSIG5yX3BhZ2Vz
OyAgICAgLyogVG90YWwgcGFnZXMgYWxsb2NhdGVkIHRvIHRoaXMgZG9tYWluLiAgKi8KKyAgICBV
TE9OR19QVFIgc2hhcmVkX2luZm87ICAvKiBNQUNISU5FIGFkZHJlc3Mgb2Ygc2hhcmVkIGluZm8g
c3RydWN0LiAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAvKiBTSUZfeHh4IGZs
YWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHhlbl9wZm5fdCBzdG9yZV9tZm47
ICAgICAgICAvKiBNQUNISU5FIHBhZ2UgbnVtYmVyIG9mIHNoYXJlZCBwYWdlLiAgICAqLworICAg
IHVpbnQzMl90IHN0b3JlX2V2dGNobjsgICAgICAvKiBFdmVudCBjaGFubmVsIGZvciBzdG9yZSBj
b21tdW5pY2F0aW9uLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHhlbl9wZm5fdCBtZm47ICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBjb25zb2xl
IHBhZ2UuICAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90ICBldnRjaG47ICAgLyogRXZlbnQgY2hh
bm5lbCBmb3IgY29uc29sZSBwYWdlLiAgICAgICAgKi8KKyAgICAgICAgfSBkb21VOworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgaW5mb19vZmY7ICAvKiBPZmZzZXQgb2Yg
Y29uc29sZV9pbmZvIHN0cnVjdC4gICAgICAgICAqLworICAgICAgICAgICAgdWludDMyX3QgaW5m
b19zaXplOyAvKiBTaXplIG9mIGNvbnNvbGVfaW5mbyBzdHJ1Y3QgZnJvbSBzdGFydC4qLworICAg
ICAgICB9IGRvbTA7CisgICAgfSBjb25zb2xlOworICAgIC8qIFRIRSBGT0xMT1dJTkcgQVJFIE9O
TFkgRklMTEVEIElOIE9OIElOSVRJQUwgQk9PVCAoTk9UIFJFU1VNRSkuICAgICAqLworICAgIFVM
T05HX1BUUiBwdF9iYXNlOyAgICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwYWdlIGRpcmVjdG9y
eS4gICAgICovCisgICAgVUxPTkdfUFRSIG5yX3B0X2ZyYW1lczsgLyogTnVtYmVyIG9mIGJvb3Rz
dHJhcCBwLnQuIGZyYW1lcy4gICAgICAgKi8KKyAgICBVTE9OR19QVFIgbWZuX2xpc3Q7ICAgICAv
KiBWSVJUVUFMIGFkZHJlc3Mgb2YgcGFnZS1mcmFtZSBsaXN0LiAgICAqLworICAgIFVMT05HX1BU
UiBtb2Rfc3RhcnQ7ICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwcmUtbG9hZGVkIG1vZHVsZSAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChQRk4gb2YgcHJlLWxvYWRl
ZCBtb2R1bGUgaWYgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICBTSUZfTU9EX1NUQVJUX1BGTiBzZXQgaW4gZmxhZ3MpLiAgICAgICovCisgICAgVUxPTkdf
UFRSIG1vZF9sZW47ICAgICAgLyogU2l6ZSAoYnl0ZXMpIG9mIHByZS1sb2FkZWQgbW9kdWxlLiAg
ICAgKi8KKyNkZWZpbmUgTUFYX0dVRVNUX0NNRExJTkUgMTAyNAorICAgIGludDhfdCBjbWRfbGlu
ZVtNQVhfR1VFU1RfQ01ETElORV07CisgICAgLyogVGhlIHBmbiByYW5nZSBoZXJlIGNvdmVycyBi
b3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFibGUgZnJhbWVzLiAgICovCisgICAgVUxPTkdfUFRS
IGZpcnN0X3AybV9wZm47LyogMXN0IHBmbiBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICAg
Ki8KKyAgICBVTE9OR19QVFIgbnJfcDJtX2ZyYW1lczsvKiAjIG9mIHBmbnMgZm9ybWluZyBpbml0
aWFsIFAtPk0gdGFibGUuICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3RhcnRf
aW5mb190OworCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1
ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQgcGh5
c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVzcyBm
aWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1hZ2lj
IHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAgICAg
fCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhpcyBz
dHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4K
KyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJRl94
eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxlcyAg
ICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJlc3Mg
b2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlvdXQg
b2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg
IHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUs
CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5n
LgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwgUGh5
c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRoZSBt
b2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUg
bW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAgICAg
IHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFu
ZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFTQ0lJ
IHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAgICAg
ICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQgc2l6
ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4KKyAq
CisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBkYXRh
IGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NUQVJU
X01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKworLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRvbTAg
aW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O
X18gPCAweDAwMDMwMjAzCisjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5tZm4K
KyNkZWZpbmUgY29uc29sZV9ldnRjaG4gY29uc29sZS5kb21VLmV2dGNobgorI2VuZGlmCisjZW5k
aWYgLyogWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkgKi8KKworLyogVGhlc2UgZmxhZ3MgYXJlIHBh
c3NlZCBpbiB0aGUgJ2ZsYWdzJyBmaWVsZCBvZiBzdGFydF9pbmZvX3QuICovCisjZGVmaW5lIFNJ
Rl9QUklWSUxFR0VEICAgICgxPDwwKSAgLyogSXMgdGhlIGRvbWFpbiBwcml2aWxlZ2VkPyAqLwor
I2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAoMTw8MSkgIC8qIElzIHRoaXMgdGhlIGluaXRpYWwg
Y29udHJvbCBkb21haW4/ICovCisjZGVmaW5lIFNJRl9NVUxUSUJPT1RfTU9EICgxPDwyKSAgLyog
SXMgbW9kX3N0YXJ0IGEgbXVsdGlib290IG1vZHVsZT8gKi8KKyNkZWZpbmUgU0lGX01PRF9TVEFS
VF9QRk4gKDE8PDMpICAvKiBJcyBtb2Rfc3RhcnQgYSBQRk4/ICovCisjZGVmaW5lIFNJRl9WSVJU
X1AyTV80VE9PTFMgKDE8PDQpIC8qIERvIFhlbiB0b29scyB1bmRlcnN0YW5kIGEgdmlydC4gbWFw
cGVkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFAtPk0gbWFraW5n
IHRoZSAzIGxldmVsIHRyZWUgb2Jzb2xldGU/ICovCisjZGVmaW5lIFNJRl9QTV9NQVNLICAgICAg
ICgweEZGPDw4KSAvKiByZXNlcnZlIDEgYnl0ZSBmb3IgeGVuLXBtIG9wdGlvbnMgKi8KKworLyoK
KyAqIEEgbXVsdGlib290IG1vZHVsZSBpcyBhIHBhY2thZ2UgY29udGFpbmluZyBtb2R1bGVzIHZl
cnkgc2ltaWxhciB0byBhCisgKiBtdWx0aWJvb3QgbW9kdWxlIGFycmF5LiBUaGUgb25seSBkaWZm
ZXJlbmNlcyBhcmU6CisgKiAtIHRoZSBhcnJheSBvZiBtb2R1bGUgZGVzY3JpcHRvcnMgaXMgYnkg
Y29udmVudGlvbiBzaW1wbHkgYXQgdGhlIGJlZ2lubmluZworICogICBvZiB0aGUgbXVsdGlib290
IG1vZHVsZSwKKyAqIC0gYWRkcmVzc2VzIGluIHRoZSBtb2R1bGUgZGVzY3JpcHRvcnMgYXJlIGJh
c2VkIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgKiAgIG11bHRpYm9vdCBtb2R1bGUsCisgKiAt
IHRoZSBudW1iZXIgb2YgbW9kdWxlcyBpcyBkZXRlcm1pbmVkIGJ5IGEgdGVybWluYXRpb24gZGVz
Y3JpcHRvciB0aGF0IGhhcworICogICBtb2Rfc3RhcnQgPT0gMC4KKyAqCisgKiBUaGlzIHBlcm1p
dHMgdG8gYm90aCBidWlsZCBpdCBzdGF0aWNhbGx5IGFuZCByZWZlcmVuY2UgaXQgaW4gYSBjb25m
aWd1cmF0aW9uCisgKiBmaWxlLCBhbmQgbGV0IHRoZSBQViBndWVzdCBlYXNpbHkgcmViYXNlIHRo
ZSBhZGRyZXNzZXMgdG8gdmlydHVhbCBhZGRyZXNzZXMKKyAqIGFuZCBhdCB0aGUgc2FtZSB0aW1l
IGNvdW50IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4KKyAqLworc3RydWN0IHhlbl9tdWx0aWJvb3Rf
bW9kX2xpc3QKK3sKKyAgICAvKiBBZGRyZXNzIG9mIGZpcnN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAq
LworICAgIHVpbnQzMl90IG1vZF9zdGFydDsKKyAgICAvKiBBZGRyZXNzIG9mIGxhc3QgYnl0ZSBv
ZiB0aGUgbW9kdWxlIChpbmNsdXNpdmUpICovCisgICAgdWludDMyX3QgbW9kX2VuZDsKKyAgICAv
KiBBZGRyZXNzIG9mIHplcm8tdGVybWluYXRlZCBjb21tYW5kIGxpbmUgKi8KKyAgICB1aW50MzJf
dCBjbWRsaW5lOworICAgIC8qIFVudXNlZCwgbXVzdCBiZSB6ZXJvICovCisgICAgdWludDMyX3Qg
cGFkOworfTsKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheV9kb20wX2NvbnNvbGUg
RG9tMF9jb25zb2xlCisgKgorICogVGhlIGNvbnNvbGUgc3RydWN0dXJlIGluIHN0YXJ0X2luZm8u
Y29uc29sZS5kb20wCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgaW5jbHVkZXMgYSB2YXJpZXR5IG9m
IGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvCisgKiBoYXZlIGEgd29ya2luZyBWR0EvVkVTQSBjb25z
b2xlLgorICovCit0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25zb2xlX2luZm8geworICAgIHVp
bnQ4X3QgdmlkZW9fdHlwZTsgLyogRE9NMF9WR0FfQ09OU09MRV8/Pz8gKi8KKyNkZWZpbmUgWEVO
X1ZHQVRZUEVfVEVYVF9NT0RFXzMgMHgwMworI2RlZmluZSBYRU5fVkdBVFlQRV9WRVNBX0xGQiAg
ICAweDIzCisjZGVmaW5lIFhFTl9WR0FUWVBFX0VGSV9MRkIgICAgIDB4NzAKKworICAgIHVuaW9u
IHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIEZvbnQgaGVpZ2h0LCBpbiBwaXhl
bHMuICovCisgICAgICAgICAgICB1aW50MTZfdCBmb250X2hlaWdodDsKKyAgICAgICAgICAgIC8q
IEN1cnNvciBsb2NhdGlvbiAoY29sdW1uLCByb3cpLiAqLworICAgICAgICAgICAgdWludDE2X3Qg
Y3Vyc29yX3gsIGN1cnNvcl95OworICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJvd3MgYW5kIGNv
bHVtbnMgKGRpbWVuc2lvbnMgaW4gY2hhcmFjdGVycykuICovCisgICAgICAgICAgICB1aW50MTZf
dCByb3dzLCBjb2x1bW5zOworICAgICAgICB9IHRleHRfbW9kZV8zOworCisgICAgICAgIHN0cnVj
dCB7CisgICAgICAgICAgICAvKiBXaWR0aCBhbmQgaGVpZ2h0LCBpbiBwaXhlbHMuICovCisgICAg
ICAgICAgICB1aW50MTZfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgLyogQnl0ZXMgcGVy
IHNjYW4gbGluZS4gKi8KKyAgICAgICAgICAgIHVpbnQxNl90IGJ5dGVzX3Blcl9saW5lOworICAg
ICAgICAgICAgLyogQml0cyBwZXIgcGl4ZWwuICovCisgICAgICAgICAgICB1aW50MTZfdCBiaXRz
X3Blcl9waXhlbDsKKyAgICAgICAgICAgIC8qIExGQiBwaHlzaWNhbCBhZGRyZXNzLCBhbmQgc2l6
ZSAoaW4gdW5pdHMgb2YgNjRrQikuICovCisgICAgICAgICAgICB1aW50MzJfdCBsZmJfYmFzZTsK
KyAgICAgICAgICAgIHVpbnQzMl90IGxmYl9zaXplOworICAgICAgICAgICAgLyogUkdCIG1hc2sg
b2Zmc2V0cyBhbmQgc2l6ZXMsIGFzIGRlZmluZWQgYnkgVkJFIDEuMisgKi8KKyAgICAgICAgICAg
IHVpbnQ4X3QgIHJlZF9wb3MsIHJlZF9zaXplOworICAgICAgICAgICAgdWludDhfdCAgZ3JlZW5f
cG9zLCBncmVlbl9zaXplOworICAgICAgICAgICAgdWludDhfdCAgYmx1ZV9wb3MsIGJsdWVfc2l6
ZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgIHJzdmRfcG9zLCByc3ZkX3NpemU7CisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA2CisgICAgICAgICAgICAvKiBWRVNBIGNh
cGFiaWxpdGllcyAob2Zmc2V0IDB4YSwgVkVTQSBjb21tYW5kIDB4NGYwMCkuICovCisgICAgICAg
ICAgICB1aW50MzJfdCBnYmxfY2FwczsKKyAgICAgICAgICAgIC8qIE1vZGUgYXR0cmlidXRlcyAo
b2Zmc2V0IDB4MCwgVkVTQSBjb21tYW5kIDB4NGYwMSkuICovCisgICAgICAgICAgICB1aW50MTZf
dCBtb2RlX2F0dHJzOworI2VuZGlmCisgICAgICAgIH0gdmVzYV9sZmI7CisgICAgfSB1OworfSBk
b20wX3ZnYV9jb25zb2xlX2luZm9fdDsKKyNkZWZpbmUgeGVuX3ZnYV9jb25zb2xlX2luZm8gZG9t
MF92Z2FfY29uc29sZV9pbmZvCisjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvX3QgZG9tMF92
Z2FfY29uc29sZV9pbmZvX3QKKwordHlwZWRlZiB1aW50OF90IHhlbl9kb21haW5faGFuZGxlX3Rb
MTZdOworCitfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ4LCAgdWludDhfdCk7CitfX0RF
RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwgdWludDE2X3QpOworX19ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0LCB1aW50NjRfdCk7CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKy8qIERl
ZmF1bHQgZGVmaW5pdGlvbnMgZm9yIG1hY3JvcyB1c2VkIGJ5IGRvbWN0bC9zeXNjdGwuICovCisj
aWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYg
aW50NjRfYWxpZ25lZF90CisjZGVmaW5lIGludDY0X2FsaWduZWRfdCBpbnQ2NF90CisjZW5kaWYK
KyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2
NF90CisjZW5kaWYKKyNpZm5kZWYgWEVOX0dVRVNUX0hBTkRMRV82NAorI2RlZmluZSBYRU5fR1VF
U1RfSEFORExFXzY0KG5hbWUpIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKKyNlbmRpZgorCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHhlbmN0bF9iaXRtYXAgeworICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQodWludDgpIGJpdG1hcDsKKyAgICB1aW50MzJfdCBucl9iaXRzOworfTsKKyNlbmRp
ZgorCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVOX0hfXyAqLworCisvKgorICogTG9jYWwg
dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp
Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYyBiL3NyYy94ZW5u
ZXQvcmVjZWl2ZXIuYwppbmRleCA4NDNkZjJiLi45NjRjYTkwIDEwMDY0NAotLS0gYS9zcmMveGVu
bmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlIDxuZGlzLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KKyNpbmNsdWRlIDx4
ZW4uaD4KIAogI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJyZWNlaXZlci5oIgpAQCAtNDIs
OCArNDMsNyBAQCBzdHJ1Y3QgX1hFTk5FVF9SRUNFSVZFUiB7CiAgICAgUFhFTk5FVF9BREFQVEVS
ICAgICAgICAgICAgIEFkYXB0ZXI7CiAgICAgTkRJU19IQU5ETEUgICAgICAgICAgICAgICAgIE5l
dEJ1ZmZlckxpc3RQb29sOwogICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBQdXRMaXN0
OwotICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBHZXRMaXN0OwotICAgIEtTUElOX0xP
Q0sgICAgICAgICAgICAgICAgICBMb2NrOworICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAg
ICBHZXRMaXN0W0hWTV9NQVhfVkNQVVNdOwogICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAg
ICBJbk5ESVM7CiAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIEluTkRJU01heDsKICAg
ICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgT2ZmbG9hZE9wdGlvbnM7CkBAIC02NywyMCAr
NjcsMjIgQEAgX19SZWNlaXZlckFsbG9jYXRlTmV0QnVmZmVyTGlzdCgKICAgICBJTiAgUFZPSUQg
ICAgICAgICAgICAgICAgICAgQ29va2llCiAgICAgKQogeworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKICAgICBQTkVUX0JVRkZFUl9MSVNUICAgICAgICAgICAgTmV0QnVm
ZmVyTGlzdDsKICAgICBQTkVUX0JVRkZFUl9MSVNUX1JFU0VSVkVEICAgTGlzdFJlc2VydmVkOwog
CiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVWRUwpOwot
ICAgIEtlQWNxdWlyZVNwaW5Mb2NrQXREcGNMZXZlbCgmUmVjZWl2ZXItPkxvY2spOwogCi0gICAg
aWYgKFJlY2VpdmVyLT5HZXRMaXN0ID09IE5VTEwpCi0gICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0
ID0gSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsK
KyAgICBJbmRleCA9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4KE5VTEwpOwogCi0gICAg
TmV0QnVmZmVyTGlzdCA9IFJlY2VpdmVyLT5HZXRMaXN0OworICAgIGlmIChSZWNlaXZlci0+R2V0
TGlzdFtJbmRleF0gPT0gTlVMTCkKKyAgICAgICAgUmVjZWl2ZXItPkdldExpc3RbSW5kZXhdID0g
SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsKKwor
ICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAgICAgaWYgKE5l
dEJ1ZmZlckxpc3QgIT0gTlVMTCkgewogICAgICAgICBQTkVUX0JVRkZFUiBOZXRCdWZmZXI7CiAK
LSAgICAgICAgUmVjZWl2ZXItPkdldExpc3QgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwoTmV0
QnVmZmVyTGlzdCk7CisgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0W0luZGV4XSA9IE5FVF9CVUZG
RVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9MSVNU
X05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsKIAogICAgICAgICBORVRfQlVGRkVSX0xJ
U1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBUY3BJcENoZWNrc3VtTmV0QnVmZmVyTGlzdEluZm8pID0g
TlVMTDsKQEAgLTEwNiw4ICsxMDgsNiBAQCBfX1JlY2VpdmVyQWxsb2NhdGVOZXRCdWZmZXJMaXN0
KAogICAgICAgICBBU1NFUlQoSU1QTFkoTmV0QnVmZmVyTGlzdCAhPSBOVUxMLCBORVRfQlVGRkVS
X0xJU1RfTkVYVF9OQkwoTmV0QnVmZmVyTGlzdCkgPT0gTlVMTCkpOwogICAgIH0KIAotICAgIEtl
UmVsZWFzZVNwaW5Mb2NrRnJvbURwY0xldmVsKCZSZWNlaXZlci0+TG9jayk7Ci0KICAgICBMaXN0
UmVzZXJ2ZWQgPSAoUE5FVF9CVUZGRVJfTElTVF9SRVNFUlZFRClORVRfQlVGRkVSX0xJU1RfTUlO
SVBPUlRfUkVTRVJWRUQoTmV0QnVmZmVyTGlzdCk7CiAgICAgQVNTRVJUM1AoTGlzdFJlc2VydmVk
LT5Db29raWUsID09LCBOVUxMKTsKICAgICBMaXN0UmVzZXJ2ZWQtPkNvb2tpZSA9IENvb2tpZTsK
QEAgLTM0NSw4ICszNDUsNiBAQCBSZWNlaXZlckluaXRpYWxpemUoCiAgICAgaWYgKCgqUmVjZWl2
ZXIpLT5OZXRCdWZmZXJMaXN0UG9vbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwyOwogCi0g
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJigqUmVjZWl2ZXIpLT5Mb2NrKTsKLQogICAgIHJldHVy
biBORElTX1NUQVRVU19TVUNDRVNTOwogCiBmYWlsMjoKQEAgLTM1OSwyMCArMzU3LDI0IEBAIFJl
Y2VpdmVyVGVhcmRvd24oCiAgICAgSU4gIFBYRU5ORVRfUkVDRUlWRVIgICAgUmVjZWl2ZXIKICAg
ICApCiB7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXg7CiAgICAgUE5FVF9CVUZG
RVJfTElTVCAgICAgICAgTmV0QnVmZmVyTGlzdDsKIAogICAgIEFTU0VSVChSZWNlaXZlciAhPSBO
VUxMKTsKIAotICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdDsKLSAgICB3aGls
ZSAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIFBORVRfQlVGRkVSX0xJU1QgICAg
TmV4dDsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBIVk1fTUFYX1ZDUFVTOyBJbmRleCsr
KSB7CisgICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAK
LSAgICAgICAgTmV4dCA9IE5FVF9CVUZGRVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsK
LSAgICAgICAgTkVUX0JVRkZFUl9MSVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsK
KyAgICAgICAgd2hpbGUgKE5ldEJ1ZmZlckxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgUE5F
VF9CVUZGRVJfTElTVCAgICBOZXh0OwogCi0gICAgICAgIE5kaXNGcmVlTmV0QnVmZmVyTGlzdChO
ZXRCdWZmZXJMaXN0KTsKKyAgICAgICAgICAgIE5leHQgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9O
QkwoTmV0QnVmZmVyTGlzdCk7CisgICAgICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwo
TmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCi0gICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBOZXh0Owor
ICAgICAgICAgICAgTmRpc0ZyZWVOZXRCdWZmZXJMaXN0KE5ldEJ1ZmZlckxpc3QpOworCisgICAg
ICAgICAgICBOZXRCdWZmZXJMaXN0ID0gTmV4dDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIE5l
dEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+UHV0TGlzdDsKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDA1
NGI0YTYuLmYwZTkwNzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjMsNyArMjMsNyBAQAogCTxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPiAK
IAogCTxQcm9wZXJ0eUdyb3VwPgotCQk8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1
ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CisJICAgICAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVk
ZTsuLlwuLlxpbmNsdWRlXHhlbjskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CiAJCTxSdW5D
b2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgogCQk8RW5hYmxlSW5mMmNhdD5mYWxz
ZTwvRW5hYmxlSW5mMmNhdD4KIAkJPEludERpcj4uLlwkKFByb2plY3ROYW1lKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDU4
ZjQwMzIuLmNiZTU3ZjUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjAsNyArMjAsNiBAQAogICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CiAgIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgogICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+CiAgICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+CiAgICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+CiAgICAgPEludERpcj4uLlwkKFBy
b2plY3ROYW1lKVwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KQEAg
LTI5LDExICsyOCwxNSBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxl
PgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJ
U19NSU5JUE9SVF9EUklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09Q
VElOPTE7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxp
bmNsdWRlXGttOy4uXC4uXGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwv
V2FybmluZ0xldmVsPgogICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0
ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8
L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRp
b24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQUkVmYXN0
PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29t
cGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhh
c1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxl
cnM+CiAgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5s
aWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:35:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MEG-00040a-8T; Thu, 19 May 2016 11:35:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1b3MEE-00040C-MX
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:34:59 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 AD/FC-26599-1E4AD375; Thu, 19 May 2016 11:34:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXiVRvkpHt/iW2
 4wa03lhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y1rXWaaCxqOsFY0Xb7M0MC5az9LFyMUhJDCb
 UeLHqsVsIA6LwCUWiQcr14I5EgLvWCT657awdzFyAjkxEo+3nISyKyXmd89kBbGFBBQlmq9dY
 IcYtYJJ4u/2BYwgCTYBdYnb7xdDNdhJfJp1E8wWEVCVuLb8GBuIzSygJfFwwzywemEBW4mlm8
 +A2SxANbNmtwIt4ODgFXCX+PBACmKMnMTeyatZJjDyL2BkWMWoXpxaVJZapGuil1SUmZ5Rkpu
 YmaNraGCql5taXJyYnpqTmFSsl5yfu4kRGEIMQLCD8Vaf8yFGSQ4mJVHePw224UJ8SfkplRmJ
 xRnxRaU5qcWHGGU4OJQkeDWBISkkWJSanlqRlpkDDGaYtAQHj5IIrylImre4IDG3ODMdInWK0
 Zhjy4Iba5k4tky9t5ZJiCUvPy9VSpyXHaRUAKQ0ozQPbhAsyi4xykoJ8zICnSbEU5BalJtZgi
 r/ilGcg1FJmFcCZApPZl4J3L5XQKcwAZ1yS8wG5JSSRISUVANjtFwip1jOhjXFqYfidbsVfuR
 oc4eIWZzfttdWavqkvTc2SHQlX5E59zr0i3HO6UP1i8/HrGydVdvh9rZmz6cTK0VYTd77WQpE
 N7dsebX8+8aNvXY7fqzoZGDv3yE5RdpW97SHisnVvU7/O33kvjJnm3yd3zuvaZnQCV57hU+8l
 feNjP5E6WUrsRRnJBpqMRcVJwIAZW8Ufq0CAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1463657695!36570816!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59792 invoked from network); 19 May 2016 11:34:55 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-13.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 May 2016 11:34:55 -0000
Received: by mail-wm0-f66.google.com with SMTP id r12so20237646wme.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 04:34:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=oWHS2ZJeQteyMb3t/FSgv+q2damHU2YSBBkw5bnRaAT6+InNoGWPsTOii6mERUdtMn
 +3PblzQEY1EA2lN7UmhjSdufzZK0wQXeRvMzkJd2ePWQyVWEXVBvwixq8wWK3ME22UUQ
 0g858ehrw2dfYJydQ1ZAhKmgkGe4nLxMSO4caPtxL5WRRrWkRCBwnTtRa3bHdMGTfZX+
 nuNNqijzySLNIJ3Xvzmux/0d4lfDwuJbSwI9AUIkTqk/G4JYJ0oNWKzjiDvg7Dm3/D5m
 mptnTyXrES5vaPHejsSOEoqeSvNJgaJawNrLkf0NuAN/Y0I9wMw8OLBPVtzLtoQQ/F0M
 SMlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=EQzhXVDmXjVUI8AkUsiJIUh8LyOEwb5zJQU0nV9qBYdPnzdYYDgcjvlyujAUTax/H3
 scyNWQmP0sdYxGTpnq3lFGhQlXgUWveZJ6If/BEslwVL/PMTnSC/n5CRGykR3iMxZdtI
 QVl8GCY5D3ej+QgjlG+zE/A54Kc4LJHfgO1mgTqrUV3VDIuSHv28M3Te+ZdWOUFRjPls
 GXYeECFe5qL5O4Ucz2Ah+GvbJPKnT6T+xvWvh97hM29hSpN2rl4WrKWToU1KMdOr2URT
 +qKcVFY6qrL5Tk5DNq94C6vJ8JO/PEfL8tyS3tJhFa/yQFlTYgEjsnHsXxnT1htjUm6X
 o6eg==
X-Gm-Message-State: AOPr4FXyBkMsDxr7+yDg1aTDWD9XfVPS29vHNUHBWqkBJ7x2za+mVsUP75mTkB9KEp90wg==
X-Received: by 10.28.139.75 with SMTP id n72mr13502410wmd.28.1463657695287;
 Thu, 19 May 2016 04:34:55 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id pm4sm13860309wjb.35.2016.05.19.04.34.54
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 19 May 2016 04:34:54 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 19 May 2016 12:34:53 +0100
Message-Id: <1463657693-14860-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Avoid lock contention between receiving CPUs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHNpbmdsZSBQdXRMaXN0L0dldExpc3QgZm9yIGNhY2hlZCBORVRfQlVGRkVSX0xJU1Qgc3Ry
dWN0dXJlcyBpcwpjdXJyZW50bHkgYSBwb2ludCBvZiBjb250ZW50aW9uLiBUaGlzIHBhdGNoIGdl
dHMgcmlkIG9mIHRoZSBjb250ZW50aW9uCmJ5IGtlZXBpbmcgcGVyLUNQVSBHZXRMaXN0cy4KClRv
IGFjY2VzcyB0aGUgZGVmaW5pdGlvbiBvZiBIVk1fTUFYX1ZDUFVTLCB0aGUgaHZtX2luZm9fdGFi
bGUuaCBoZWFkZXIKbmVlZHMgdG8gYmUgcHVsbGVkIGluIHRoZSBmcm9tIHRoZSBYZW4gc291cmNl
IGJhc2UuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlCmFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBw
dWxsaW5nIGluIFhlbiBoZWFkZXJzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs
LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBnZXRfeGVuX2hlYWRlcnMucHkgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc0ICsrKwogaW5jbHVkZS94ZW4tdHlwZXMuaCAgICAgICAgICAgICAgICAg
ICAgICB8ICA1NSArKwogaW5jbHVkZS94ZW4tdmVyc2lvbi5oICAgICAgICAgICAgICAgICAgICB8
ICAzNyArKwogaW5jbHVkZS94ZW4td2FybmluZ3MuaCAgICAgICAgICAgICAgICAgICB8ICA0MiAr
KwogaW5jbHVkZS94ZW4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKwogaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCB8IDE2OSArKysrKysKIGluY2x1
ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggfCAyMDIgKysrKysrKwogaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oICAgICAgICB8IDMzOCArKysrKysrKysrKwogaW5j
bHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oICB8ICA3NCArKysKIGluY2x1ZGUv
eGVuL3B1YmxpYy94ZW4tY29tcGF0LmggICAgICAgICAgfCAgNDQgKysKIGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCA5OTUgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzOCAr
LQogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgMiArLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgNSArLQogMTQgZmlsZXMg
Y2hhbmdlZCwgMjA5OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBnZXRfeGVuX2hlYWRlcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi10eXBlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4tdmVyc2lvbi5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4td2FybmluZ3MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGluY2x1ZGUveGVuLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl8zMi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vcHVibGlj
L2FyY2gteDg2L3hlbi14ODZfNjQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy9hcmNoLXg4Ni94ZW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1Ymxp
Yy9odm0vaHZtX2luZm9fdGFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4tY29tcGF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMv
eGVuLmgKCmRpZmYgLS1naXQgYS9nZXRfeGVuX2hlYWRlcnMucHkgYi9nZXRfeGVuX2hlYWRlcnMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0ZDBmNgotLS0gL2Rldi9u
dWxsCisrKyBiL2dldF94ZW5faGVhZGVycy5weQpAQCAtMCwwICsxLDc0IEBACisjIXB5dGhvbiAt
dQorCitpbXBvcnQgb3MsIHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCByZQorCitkZWYgc2hlbGwoY29tbWFuZCwgZGlyID0gJy4nKToKKyAgICBwcmludCgiaW4g
JyVzJyBleGVjdXRlICclcyciICUgKGRpciwgJyAnLmpvaW4oY29tbWFuZCkpKQorICAgIHN5cy5z
dGRvdXQuZmx1c2goKQorCisgICAgc3ViID0gc3VicHJvY2Vzcy5Qb3BlbignICcuam9pbihjb21t
YW5kKSwgY3dkPWRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5T
VERPVVQpCisKKyAgICBmb3IgbGluZSBpbiBzdWIuc3Rkb3V0OgorICAgICAgICBwcmludChsaW5l
LmRlY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpLnJzdHJpcCgpKQorCisgICAgc3ViLndh
aXQoKQorCisgICAgcmV0dXJuIHN1Yi5yZXR1cm5jb2RlCisKK2RlZiBnZXRfcmVwbyh1cmwsIHdv
cmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2Nsb25lJywgJy0tbm8tY2hlY2tvdXQnLCB1cmws
IHdvcmtpbmddKQorCitkZWYgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpOgorICAgIHNoZWxsKFsn
Z2l0JywgJ2NoZWNrb3V0JywgJy1iJywgJ3RtcCcsIHRhZ10sIHdvcmtpbmcpCisKK2RlZiBwdXRf
YnJhbmNoKHdvcmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2NoZWNrb3V0JywgJ21hc3Rlcidd
LCB3b3JraW5nKQorICAgIHNoZWxsKFsnZ2l0JywgJ2JyYW5jaCcsICctZCcsICd0bXAnXSwgd29y
a2luZykKKworZGVmIGNvcHlfZmlsZSh3b3JraW5nLCBkaXIsIG5hbWUpOgorICAgIHRyeToKKyAg
ICAgICAgb3MubWFrZWRpcnMoJ2luY2x1ZGVcXHhlblxcJXMnICUgZGlyKQorICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgICBOb25lCisKKyAgICBzcmMgPSBvcGVuKCclc1xceGVuXFxpbmNsdWRl
XFwlc1xcJXMnICUgKHdvcmtpbmcsIGRpciwgbmFtZSksICdyJykKKyAgICBkc3QgPSBvcGVuKCdp
bmNsdWRlXFx4ZW5cXCVzXFwlcycgJSAoZGlyLCBuYW1lKSwgJ3cnLCBuZXdsaW5lPSdcbicpCisK
KyAgICBwcmludChuYW1lKQorCisgICAgZm9yIGxpbmUgaW4gc3JjOgorICAgICAgICBsaW5lID0g
cmUuc3ViKCcgdW5zaWduZWQgbG9uZycsICcgVUxPTkdfUFRSJywgbGluZSkKKyAgICAgICAgbGlu
ZSA9IHJlLnN1YignXCh1bnNpZ25lZCBsb25nJywgJyhVTE9OR19QVFInLCBsaW5lKQorICAgICAg
ICBsaW5lID0gcmUuc3ViKCcgbG9uZycsICcgTE9OR19QVFInLCBsaW5lKQorICAgICAgICBsaW5l
ID0gcmUuc3ViKCdcKGxvbmcnLCAnKExPTkdfUFRSJywgbGluZSkKKyAgICAgICAgZHN0LndyaXRl
KGxpbmUpCisKKyAgICBkc3QuY2xvc2UoKQorICAgIHNyYy5jbG9zZSgpCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdGFnID0gc3lzLmFyZ3ZbMV0KKyAgICB3b3JraW5nID0gc3lz
LmFyZ3ZbMl0KKworICAgIGdldF9yZXBvKCdnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcveGVuLmdpdCcs
IHdvcmtpbmcpCisgICAgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpCisKKyAgICBzaGVsbChbJ2dp
dCcsICdybScsICctcicsICctZicsICd4ZW4nXSwgJ2luY2x1ZGUnKQorCisgICAgY29weV9maWxl
KHdvcmtpbmcsICdwdWJsaWMnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVi
bGljJywgJ3hlbi1jb21wYXQuaCcpCisKKyAgICBjb3B5X2ZpbGUod29ya2luZywgJ3B1YmxpY1xc
YXJjaC14ODYnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxhcmNo
LXg4NicsICd4ZW4teDg2XzMyLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxh
cmNoLXg4NicsICd4ZW4teDg2XzY0LmgnKQorCisgICAgY29weV9maWxlKHdvcmtpbmcsICdwdWJs
aWNcXGh2bScsICdodm1faW5mb190YWJsZS5oJykKKworICAgIHB1dF9icmFuY2god29ya2luZykK
KworICAgIHNoZWxsKFsnZ2l0JywgJ2FkZCcsICd4ZW4nXSwgJ2luY2x1ZGUnKQpkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4tdHlwZXMuaCBiL2luY2x1ZGUveGVuLXR5cGVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVlZDYxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1
ZGUveGVuLXR5cGVzLmgKQEAgLTAsMCArMSw1NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5fVFlQ
RVNfSAorI2RlZmluZSBfWEVOX1RZUEVTX0gKKworI2luY2x1ZGUgPG50ZGRrLmg+CisKKy8vIERl
ZmluZSB0eXBlcyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVycworCit0eXBlZGVmIENI
QVIgICAgaW50OF90OwordHlwZWRlZiBTSE9SVCAgIGludDE2X3Q7Cit0eXBlZGVmIExPTkcgICAg
aW50MzJfdDsKK3R5cGVkZWYgTE9ORzY0ICBpbnQ2NF90OworCit0eXBlZGVmIFVDSEFSICAgdWlu
dDhfdDsKK3R5cGVkZWYgVVNIT1JUICB1aW50MTZfdDsKK3R5cGVkZWYgVUxPTkcgICB1aW50MzJf
dDsKK3R5cGVkZWYgVUxPTkc2NCB1aW50NjRfdDsKKworI2RlZmluZSBvZmZzZXRvZihfdHlwZSwg
X2ZpZWxkKSBGSUVMRF9PRkZTRVQoX3R5cGUsIF9maWVsZCkKKworI2RlZmluZSB4ZW5fbWIoKSAg
ICBLZU1lbW9yeUJhcnJpZXIoKQorI2RlZmluZSB4ZW5fd21iKCkgICBLZU1lbW9yeUJhcnJpZXIo
KQorI2RlZmluZSB4ZW5fcm1iKCkgICBLZW1lbW9yeUJhcnJpZXIoKQorCisjZW5kaWYgIC8vIF9Y
RU5fVFlQRVNfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4tdmVyc2lvbi5oIGIvaW5jbHVkZS94
ZW4tdmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYTgwN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi12ZXJzaW9uLmgKQEAgLTAsMCArMSwzNyBA
QAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIF9YRU5fVkVSU0lPTl9ICisjZGVmaW5lIF9YRU5fVkVSU0lPTl9I
CisKKyNkZWZpbmUgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBfX1hFTl9MQVRFU1RfSU5URVJG
QUNFX1ZFUlNJT05fXworCisjZW5kaWYgIC8vIF9YRU5fVkVSU0lPTl9ICmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi13YXJuaW5ncy5oIGIvaW5jbHVkZS94ZW4td2FybmluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGFlNmFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5j
bHVkZS94ZW4td2FybmluZ3MuaApAQCAtMCwwICsxLDQyIEBACisvKiBDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hF
Tl9XQVJOSU5HU19ICisjZGVmaW5lIF9YRU5fV0FSTklOR1NfSAorCisjaW5jbHVkZSA8bnRkZGsu
aD4KKworLy8gRGlzYWJsZSB3YXJuaW5ncyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVy
cworCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDIxNCkgLy8gbm9uc3RhbmRhcmQgZXh0ZW5z
aW9uIHVzZWQgOiBiaXQgZmllbGQgdHlwZXMgb3RoZXIgdGhhbiBpbnQKKyMgcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZTo0MjAwKSAvLyBub25zdGFuZGFyZCBleHRlbnNpb24gdXNlZCA6IHplcm8tc2l6
ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCisKKyNlbmRpZiAgLy8gX1hFTl9XQVJOSU5HU19ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi5oIGIvaW5jbHVkZS94ZW4uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yN2MxMTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94
ZW4uaApAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hFTl9ICisjZGVmaW5lIF9Y
RU5fSAorCisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHhlbi12ZXJzaW9uLmg+Cisj
aW5jbHVkZSA8eGVuLXR5cGVzLmg+CisjaW5jbHVkZSA8eGVuLXdhcm5pbmdzLmg+CisKKyNpbmNs
dWRlIDxwdWJsaWMvaHZtL2h2bV9pbmZvX3RhYmxlLmg+CisKKyNlbmRpZiAgLy8gX1hFTl9ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMjMzNDBiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v
cHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICogeGVuLXg4Nl8zMi5oCisgKgorICogR3Vlc3QgT1MgaW50ZXJmYWNl
IHRvIHg4NiAzMi1iaXQgWGVuLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQt
MjAwNywgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hF
Tl9YODZfMzJfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hf
XworCisvKgorICogSHlwZXJjYWxsIGludGVyZmFjZToKKyAqICBJbnB1dDogICVlYngsICVlY3gs
ICVlZHgsICVlc2ksICVlZGksICVlYnAgKGFyZ3VtZW50cyAxLTYpCisgKiAgT3V0cHV0OiAlZWF4
CisgKiBBY2Nlc3MgaXMgdmlhIGh5cGVyY2FsbCBwYWdlIChzZXQgdXAgYnkgZ3Vlc3QgbG9hZGVy
IG9yIHZpYSBhIFhlbiBNU1IpOgorICogIGNhbGwgaHlwZXJjYWxsX3BhZ2UgKyBoeXBlcmNhbGwt
bnVtYmVyICogMzIKKyAqIENsb2JiZXJlZDogQXJndW1lbnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFy
ZyBoeXBlcmNhbGwgY2xvYmJlcnMgJWVieCwlZWN4KQorICovCisKKy8qCisgKiBUaGVzZSBmbGF0
IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXByaXZhdGUgc2VjdGlvbiBvZiBldmVyeSBHRFQuIFNp
bmNlIHRoZXNlCisgKiBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBpbml0aWFsIEdEVCwgbWFueSBP
U2VzIHdpbGwgYmUgYWJsZSB0byBhdm9pZAorICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgor
ICovCisjZGVmaW5lIEZMQVRfUklORzFfQ1MgMHhlMDE5ICAgIC8qIEdEVCBpbmRleCAyNTkgKi8K
KyNkZWZpbmUgRkxBVF9SSU5HMV9EUyAweGUwMjEgICAgLyogR0RUIGluZGV4IDI2MCAqLworI2Rl
ZmluZSBGTEFUX1JJTkcxX1NTIDB4ZTAyMSAgICAvKiBHRFQgaW5kZXggMjYwICovCisjZGVmaW5l
IEZMQVRfUklORzNfQ1MgMHhlMDJiICAgIC8qIEdEVCBpbmRleCAyNjEgKi8KKyNkZWZpbmUgRkxB
VF9SSU5HM19EUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLworI2RlZmluZSBGTEFUX1JJ
TkczX1NTIDB4ZTAzMyAgICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfQ1MgRkxBVF9SSU5HMV9DUworI2RlZmluZSBGTEFUX0tFUk5FTF9EUyBGTEFUX1JJTkcxX0RT
CisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTIEZMQVRfUklORzFfU1MKKyNkZWZpbmUgRkxBVF9VU0VS
X0NTICAgIEZMQVRfUklORzNfQ1MKKyNkZWZpbmUgRkxBVF9VU0VSX0RTICAgIEZMQVRfUklORzNf
RFMKKyNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNfU1MKKworI2RlZmluZSBfX0hZ
UEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZU19WSVJU
X0VORF9QQUUgICAgICAgMHhGNjgwMDAwMAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlRf
UEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKKyNkZWZp
bmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAg
IHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCisKKy8qIE5vbi1QQUUgYm91
bmRzIGFyZSBvYnNvbGV0ZS4gKi8KKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9O
UEFFIDB4RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgIDB4
RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFICAgIDB4RkM0MDAw
MDAKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAgIFwKKyAgICB4ZW5fbWtf
dWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQorI2RlZmluZSBNQUNIMlBIWVNf
VklSVF9TVEFSVF9OT05QQUUgICAgXAorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X1NUQVJUX05PTlBBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBBRSAgICAgIFwK
KyAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFKQorCisjZGVmaW5l
IF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRQorI2Rl
ZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRQor
I2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUK
KworI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJU
X1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNlbmRpZgorCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9TVEFSVCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01B
Q0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQ
SFlTX1ZJUlRfRU5ELU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MikKKyNpZm5kZWYgbWFjaGluZV90
b19waHlzX21hcHBpbmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19Q
VFIgKilNQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNlbmRpZgorCisvKiAzMi0vNjQtYml0IGludmFy
aWFiaWxpdHkgZm9yIGNvbnRyb2wgaW50ZXJmYWNlcyAoZG9tY3RsL3N5c2N0bCkuICovCisjaWYg
ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisjdW5kZWYgX19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUKKyNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBl
ICpwOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX2d1ZXN0
X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0
eXBlZGVmIHN0cnVjdCB7IHVuaW9uIHsgdHlwZSAqcDsgdWludDY0X2FsaWduZWRfdCBxOyB9OyB9
ICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisjdW5kZWYgc2V0X3hlbl9n
dWVzdF9oYW5kbGVfcmF3CisjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZh
bCkgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDggKSAq
KHVpbnQ2NF90ICopJihobmQpID0gMDsgICBcCisgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoIDAgKQorI2Rl
ZmluZSAgaW50NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KQorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoOCkpKQorI2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19ndWVzdF9oYW5k
bGVfNjRfICMjIG5hbWUKKyNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hFTl9H
VUVTVF9IQU5ETEVfNjQobmFtZSkKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCitz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7CisgICAgdWludDMyX3QgZWJ4OworICAgIHVpbnQzMl90IGVj
eDsKKyAgICB1aW50MzJfdCBlZHg7CisgICAgdWludDMyX3QgZXNpOworICAgIHVpbnQzMl90IGVk
aTsKKyAgICB1aW50MzJfdCBlYnA7CisgICAgdWludDMyX3QgZWF4OworICAgIHVpbnQxNl90IGVy
cm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KKyAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7ICAv
KiBwcml2YXRlICovCisgICAgdWludDMyX3QgZWlwOworICAgIHVpbnQxNl90IGNzOworICAgIHVp
bnQ4X3QgIHNhdmVkX3VwY2FsbF9tYXNrOworICAgIHVpbnQ4X3QgIF9wYWQwOworICAgIHVpbnQz
Ml90IGVmbGFnczsgICAgICAgIC8qIGVmbGFncy5JRiA9PSAhc2F2ZWRfdXBjYWxsX21hc2sgKi8K
KyAgICB1aW50MzJfdCBlc3A7CisgICAgdWludDE2X3Qgc3MsIF9wYWQxOworICAgIHVpbnQxNl90
IGVzLCBfcGFkMjsKKyAgICB1aW50MTZfdCBkcywgX3BhZDM7CisgICAgdWludDE2X3QgZnMsIF9w
YWQ0OworICAgIHVpbnQxNl90IGdzLCBfcGFkNTsKK307Cit0eXBlZGVmIHN0cnVjdCBjcHVfdXNl
cl9yZWdzIGNwdV91c2VyX3JlZ3NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2Vy
X3JlZ3NfdCk7CisKKy8qCisgKiBQYWdlLWRpcmVjdG9yeSBhZGRyZXNzZXMgYWJvdmUgNEdCIGRv
IG5vdCBmaXQgaW50byBhcmNoaXRlY3R1cmFsICVjcjMuCisgKiBXaGVuIGFjY2Vzc2luZyAlY3Iz
LCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVfZ3Vlc3RfY29udGV4dCwgZ3Vlc3RzCisgKiBt
dXN0IHVzZSB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIG1hY3JvcyB0byBwYWNrL3VucGFjayB2YWxp
ZCBNRk5zLgorICovCisjZGVmaW5lIHhlbl9wZm5fdG9fY3IzKHBmbikgKCgodW5zaWduZWQpKHBm
bikgPDwgMTIpIHwgKCh1bnNpZ25lZCkocGZuKSA+PiAyMCkpCisjZGVmaW5lIHhlbl9jcjNfdG9f
cGZuKGNyMykgKCgodW5zaWduZWQpKGNyMykgPj4gMTIpIHwgKCh1bnNpZ25lZCkoY3IzKSA8PCAy
MCkpCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7CisgICAgVUxPTkdfUFRSIGNyMjsKKyAgICBV
TE9OR19QVFIgcGFkWzVdOyAvKiBzaXplb2YodmNwdV9pbmZvX3QpID09IDY0ICovCit9OwordHlw
ZWRlZiBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKKworc3RydWN0IHhl
bl9jYWxsYmFjayB7CisgICAgVUxPTkdfUFRSIGNzOworICAgIFVMT05HX1BUUiBlaXA7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2NhbGxiYWNrIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyog
IV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9Y
ODZfMzJfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj
LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0
CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVuL3B1Ymxp
Yy9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmY1M2Y2OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmgKQEAgLTAsMCArMSwyMDIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqIHhlbi14ODZfNjQuaAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgNjQtYml0
IFhlbi4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAq
IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ
TiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEsgQSBGcmFz
ZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0X0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX1g4Nl82NF9IX18KKworLyoKKyAqIEh5
cGVyY2FsbCBpbnRlcmZhY2U6CisgKiAgSW5wdXQ6ICAlcmRpLCAlcnNpLCAlcmR4LCAlcjEwLCAl
cjgsICVyOSAoYXJndW1lbnRzIDEtNikKKyAqICBPdXRwdXQ6ICVyYXgKKyAqIEFjY2VzcyBpcyB2
aWEgaHlwZXJjYWxsIHBhZ2UgKHNldCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1T
Uik6CisgKiAgY2FsbCBoeXBlcmNhbGxfcGFnZSArIGh5cGVyY2FsbC1udW1iZXIgKiAzMgorICog
Q2xvYmJlcmVkOiBhcmd1bWVudCByZWdpc3RlcnMgKGUuZy4sIDItYXJnIGh5cGVyY2FsbCBjbG9i
YmVycyAlcmRpLCVyc2kpCisgKi8KKworLyoKKyAqIDY0LWJpdCBzZWdtZW50IHNlbGVjdG9ycwor
ICogVGhlc2UgZmxhdCBzZWdtZW50cyBhcmUgaW4gdGhlIFhlbi1wcml2YXRlIHNlY3Rpb24gb2Yg
ZXZlcnkgR0RULiBTaW5jZSB0aGVzZQorICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUgaW5pdGlh
bCBHRFQsIG1hbnkgT1NlcyB3aWxsIGJlIGFibGUgdG8gYXZvaWQKKyAqIGluc3RhbGxpbmcgdGhl
aXIgb3duIEdEVC4KKyAqLworCisjZGVmaW5lIEZMQVRfUklORzNfQ1MzMiAweGUwMjMgIC8qIEdE
VCBpbmRleCAyNjAgKi8KKyNkZWZpbmUgRkxBVF9SSU5HM19DUzY0IDB4ZTAzMyAgLyogR0RUIGlu
ZGV4IDI2MSAqLworI2RlZmluZSBGTEFUX1JJTkczX0RTMzIgMHhlMDJiICAvKiBHRFQgaW5kZXgg
MjYyICovCisjZGVmaW5lIEZMQVRfUklORzNfRFM2NCAweDAwMDAgIC8qIE5VTEwgc2VsZWN0b3Ig
Ki8KKyNkZWZpbmUgRkxBVF9SSU5HM19TUzMyIDB4ZTAyYiAgLyogR0RUIGluZGV4IDI2MiAqLwor
I2RlZmluZSBGTEFUX1JJTkczX1NTNjQgMHhlMDJiICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNk
ZWZpbmUgRkxBVF9LRVJORUxfRFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfRFMzMiBGTEFUX1JJTkczX0RTMzIKKyNkZWZpbmUgRkxBVF9LRVJORUxfRFMgICBGTEFUX0tF
Uk5FTF9EUzY0CisjZGVmaW5lIEZMQVRfS0VSTkVMX0NTNjQgRkxBVF9SSU5HM19DUzY0CisjZGVm
aW5lIEZMQVRfS0VSTkVMX0NTMzIgRkxBVF9SSU5HM19DUzMyCisjZGVmaW5lIEZMQVRfS0VSTkVM
X0NTICAgRkxBVF9LRVJORUxfQ1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzY0IEZMQVRfUklO
RzNfU1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzMyIEZMQVRfUklORzNfU1MzMgorI2RlZmlu
ZSBGTEFUX0tFUk5FTF9TUyAgIEZMQVRfS0VSTkVMX1NTNjQKKworI2RlZmluZSBGTEFUX1VTRVJf
RFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9VU0VSX0RTMzIgRkxBVF9SSU5HM19E
UzMyCisjZGVmaW5lIEZMQVRfVVNFUl9EUyAgIEZMQVRfVVNFUl9EUzY0CisjZGVmaW5lIEZMQVRf
VVNFUl9DUzY0IEZMQVRfUklORzNfQ1M2NAorI2RlZmluZSBGTEFUX1VTRVJfQ1MzMiBGTEFUX1JJ
TkczX0NTMzIKKyNkZWZpbmUgRkxBVF9VU0VSX0NTICAgRkxBVF9VU0VSX0NTNjQKKyNkZWZpbmUg
RkxBVF9VU0VSX1NTNjQgRkxBVF9SSU5HM19TUzY0CisjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZM
QVRfUklORzNfU1MzMgorI2RlZmluZSBGTEFUX1VTRVJfU1MgICBGTEFUX1VTRVJfU1M2NAorCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAorI2RlZmlu
ZSBfX0hZUEVSVklTT1JfVklSVF9FTkQgICAweEZGRkY4ODAwMDAwMDAwMDAKKyNkZWZpbmUgX19N
QUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQ
SFlTX1ZJUlRfRU5EICAgIDB4RkZGRjgwNDAwMDAwMDAwMAorCisjaWZuZGVmIEhZUEVSVklTT1Jf
VklSVF9TVEFSVAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgeGVuX21rX3Vsb25nKF9f
SFlQRVJWSVNPUl9WSVJUX1NUQVJUKQorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfRU5EICAgeGVu
X21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNlbmRpZgorCisjZGVmaW5lIE1BQ0gy
UEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNk
ZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQSFlTX1ZJUlRfRU5E
LU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MykKKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBp
bmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19QVFIgKilIWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCisjZW5kaWYKKworLyoKKyAqIGludCBIWVBFUlZJU09SX3NldF9zZWdt
ZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCBVTE9OR19QVFIgYmFzZSkKKyAqICBAd2hpY2gg
PT0gU0VHQkFTRV8qICA7ICBAYmFzZSA9PSA2NC1iaXQgYmFzZSBhZGRyZXNzCisgKiBSZXR1cm5z
IDAgb24gc3VjY2Vzcy4KKyAqLworI2RlZmluZSBTRUdCQVNFX0ZTICAgICAgICAgIDAKKyNkZWZp
bmUgU0VHQkFTRV9HU19VU0VSICAgICAxCisjZGVmaW5lIFNFR0JBU0VfR1NfS0VSTkVMICAgMgor
I2RlZmluZSBTRUdCQVNFX0dTX1VTRVJfU0VMIDMgLyogU2V0IHVzZXIgJWdzIHNwZWNpZmllZCBp
biBiYXNlWzE1OjBdICovCisKKy8qCisgKiBpbnQgSFlQRVJWSVNPUl9pcmV0KHZvaWQpCisgKiBB
bGwgYXJndW1lbnRzIGFyZSBvbiB0aGUga2VybmVsIHN0YWNrLCBpbiB0aGUgZm9sbG93aW5nIGZv
cm1hdC4KKyAqIE5ldmVyIHJldHVybnMgaWYgc3VjY2Vzc2Z1bC4gQ3VycmVudCBrZXJuZWwgY29u
dGV4dCBpcyBsb3N0LgorICogVGhlIHNhdmVkIENTIGlzIG1hcHBlZCBhcyBmb2xsb3dzOgorICog
ICBSSU5HMCAtPiBSSU5HMyBrZXJuZWwgbW9kZS4KKyAqICAgUklORzEgLT4gUklORzMga2VybmVs
IG1vZGUuCisgKiAgIFJJTkcyIC0+IFJJTkczIGtlcm5lbCBtb2RlLgorICogICBSSU5HMyAtPiBS
SU5HMyB1c2VyIG1vZGUuCisgKiBIb3dldmVyIFJJTkcwIGluZGljYXRlcyB0aGF0IHRoZSBndWVz
dCBrZXJuZWwgc2hvdWxkIHJldHVybiB0byBpdGVzZWxmCisgKiBkaXJlY3RseSB3aXRoCisgKiAg
ICAgIG9yYiAgICQzLDEqOCglcnNwKQorICogICAgICBpcmV0cQorICogSWYgZmxhZ3MgY29udGFp
bnMgVkdDRl9pbl9zeXNjYWxsOgorICogICBSZXN0b3JlIFJBWCwgUklQLCBSRkxBR1MsIFJTUC4K
KyAqICAgRGlzY2FyZCBSMTEsIFJDWCwgQ1MsIFNTLgorICogT3RoZXJ3aXNlOgorICogICBSZXN0
b3JlIFJBWCwgUjExLCBSQ1gsIENTOlJJUCwgUkZMQUdTLCBTUzpSU1AuCisgKiBBbGwgb3RoZXIg
cmVnaXN0ZXJzIGFyZSBzYXZlZCBvbiBoeXBlcmNhbGwgZW50cnkgYW5kIHJlc3RvcmVkIHRvIHVz
ZXIuCisgKi8KKy8qIEd1ZXN0IGV4aXRlZCBpbiBTWVNDQUxMIGNvbnRleHQ/IFJldHVybiB0byBn
dWVzdCB3aXRoIFNZU1JFVD8gKi8KKyNkZWZpbmUgX1ZHQ0ZfaW5fc3lzY2FsbCA4CisjZGVmaW5l
IFZHQ0ZfaW5fc3lzY2FsbCAgKDE8PF9WR0NGX2luX3N5c2NhbGwpCisjZGVmaW5lIFZHQ0ZfSU5f
U1lTQ0FMTCAgVkdDRl9pbl9zeXNjYWxsCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3N0cnVj
dCBpcmV0X2NvbnRleHQgeworICAgIC8qIFRvcCBvZiBzdGFjayAoJXJzcCBhdCBwb2ludCBvZiBo
eXBlcmNhbGwpLiAqLworICAgIHVpbnQ2NF90IHJheCwgcjExLCByY3gsIGZsYWdzLCByaXAsIGNz
LCByZmxhZ3MsIHJzcCwgc3M7CisgICAgLyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICov
Cit9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9f
KQorLyogQW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2NC1iaXQgbmFtZXMg
KGUuZy4sIGVheC9yYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHKG5hbWUpIHVuaW9uIHsgXAor
ICAgIHVpbnQ2NF90IHIgIyMgbmFtZSwgZSAjIyBuYW1lOyBcCisgICAgdWludDMyX3QgX2UgIyMg
bmFtZTsgXAorfQorI2Vsc2UKKy8qIE5vbi1nY2Mgc291cmNlcyBtdXN0IGFsd2F5cyB1c2UgdGhl
IHByb3BlciA2NC1iaXQgbmFtZSAoZS5nLiwgcmF4KS4gKi8KKyNkZWZpbmUgX19ERUNMX1JFRyhu
YW1lKSB1aW50NjRfdCByICMjIG5hbWUKKyNlbmRpZgorCitzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7
CisgICAgdWludDY0X3QgcjE1OworICAgIHVpbnQ2NF90IHIxNDsKKyAgICB1aW50NjRfdCByMTM7
CisgICAgdWludDY0X3QgcjEyOworICAgIF9fREVDTF9SRUcoYnApOworICAgIF9fREVDTF9SRUco
YngpOworICAgIHVpbnQ2NF90IHIxMTsKKyAgICB1aW50NjRfdCByMTA7CisgICAgdWludDY0X3Qg
cjk7CisgICAgdWludDY0X3Qgcjg7CisgICAgX19ERUNMX1JFRyhheCk7CisgICAgX19ERUNMX1JF
RyhjeCk7CisgICAgX19ERUNMX1JFRyhkeCk7CisgICAgX19ERUNMX1JFRyhzaSk7CisgICAgX19E
RUNMX1JFRyhkaSk7CisgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwor
ICAgIHVpbnQzMl90IGVudHJ5X3ZlY3RvcjsgIC8qIHByaXZhdGUgKi8KKyAgICBfX0RFQ0xfUkVH
KGlwKTsKKyAgICB1aW50MTZfdCBjcywgX3BhZDBbMV07CisgICAgdWludDhfdCAgc2F2ZWRfdXBj
YWxsX21hc2s7CisgICAgdWludDhfdCAgX3BhZDFbM107CisgICAgX19ERUNMX1JFRyhmbGFncyk7
ICAgICAgLyogcmZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFzayAqLworICAgIF9fREVDTF9S
RUcoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsKKyAgICB1aW50MTZfdCBlcywgX3Bh
ZDNbM107CisgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOworICAgIHVpbnQxNl90IGZzLCBfcGFk
NVszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGZzX2Jhc2UuICAgICAq
LworICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgY3B1X3VzZXJfcmVnc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY3B1X3VzZXJfcmVn
c190KTsKKworI3VuZGVmIF9fREVDTF9SRUcKKworI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4p
ICgoVUxPTkdfUFRSKShwZm4pIDw8IDEyKQorI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMpICgo
VUxPTkdfUFRSKShjcjMpID4+IDEyKQorCitzdHJ1Y3QgYXJjaF92Y3B1X2luZm8geworICAgIFVM
T05HX1BUUiBjcjI7CisgICAgVUxPTkdfUFRSIHBhZDsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9
PSA2NCAqLworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZv
X3Q7CisKK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyogIV9f
QVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZf
NjRfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp
bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg
KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2
L3hlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZGI3N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKQEAgLTAsMCAr
MSwzMzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGFyY2gteDg2L3hlbi5oCisgKgor
ICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor
ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHly
aWdodCAoYykgMjAwNC0yMDA2LCBLIEEgRnJhc2VyCisgKi8KKworI2luY2x1ZGUgIi4uL3hlbi5o
IgorCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisjZGVmaW5lIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisKKy8qIFN0cnVjdHVyYWwgZ3Vlc3QgaGFuZGxlcyBp
bnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA+PSAweDAwMDMwMjAxCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0gX19ndWVzdF9oYW5kbGVf
ICMjIG5hbWUKKyNlbHNlCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHR5cGUgKiBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZQorI2Vu
ZGlmCisKKy8qCisgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVy
LCB3aGVuIHBhc3NlZCBhcyBhIGZpZWxkCisgKiBpbiBhIHN0cnVjdCBpbiBtZW1vcnkuCisgKiBY
RU5fR1VFU1RfSEFORExFX1BBUkFNIHJlcHJlc2VudCBhIGd1ZXN0IHBvaW50ZXIsIHdoZW4gcGFz
c2VkIGFzIGFuCisgKiBoeXBlcmNhbGwgYXJndW1lbnQuCisgKiBYRU5fR1VFU1RfSEFORExFX1BB
UkFNIGFuZCBYRU5fR1VFU1RfSEFORExFIGFyZSB0aGUgc2FtZSBvbiBYODYgYnV0CisgKiB0aGV5
IG1pZ2h0IG5vdCBiZSBvbiBvdGhlciBhcmNoaXRlY3R1cmVzLgorICovCisjZGVmaW5lIF9fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSkgXAorICAgIF9fX0RFRklORV9YRU5fR1VF
U1RfSEFORExFKG5hbWUsIHR5cGUpOyAgIFwKKyAgICBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShjb25zdF8jI25hbWUsIGNvbnN0IHR5cGUpCisjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFO
RExFKG5hbWUpICAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCBuYW1lKQorI2RlZmlu
ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1l
CisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFO
RExFKG5hbWUpCisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dV
RVNUX0hBTkRMRShuYW1lKQorI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2
YWwpICBkbyB7IChobmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNldF94ZW5fZ3Vl
c3RfaGFuZGxlKGhuZCwgdmFsKSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpCisK
KyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKKyNlbGlmIGRl
ZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCisjZW5kaWYKKworI2lm
bmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9wZm5fdDsKKyNkZWZpbmUg
UFJJX3hlbl9wZm4gImx4IgorI2VuZGlmCisKKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5U
UlkgMQorCisjZGVmaW5lIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLIDEKKworLyoKKyAqIGBpbmNv
bnRlbnRzIDIwMCBzZWdkZXNjIFNlZ21lbnQgRGVzY3JpcHRvciBUYWJsZXMKKyAqLworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfZ2R0KGNvbnN0IHhlbl9w
Zm5fdCBmcmFtZXNbXSwgdW5zaWduZWQgaW50IGVudHJpZXMpOworICogYAorICovCisvKgorICog
QSBudW1iZXIgb2YgR0RUIGVudHJpZXMgYXJlIHJlc2VydmVkIGJ5IFhlbi4gVGhlc2UgYXJlIG5v
dCBzaXR1YXRlZCBhdCB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBHRFQgYmVjYXVzZSBzb21lIHN0dXBp
ZCBPU2VzIGV4cG9ydCBoYXJkLWNvZGVkIHNlbGVjdG9yIHZhbHVlcworICogaW4gdGhlaXIgQUJJ
LiBUaGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRo
ZSBHRFQsCisgKiBzbyBYZW4gcGxhY2VzIGl0c2VsZiBvdXQgb2YgdGhlIHdheSwgYXQgdGhlIGZh
ciBlbmQgb2YgdGhlIEdEVC4KKyAqCisgKiBOQiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1V
RVhUX1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNPUl9tbXVleHRfb3AKKyAqLworI2RlZmluZSBGSVJT
VF9SRVNFUlZFRF9HRFRfUEFHRSAgMTQKKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUg
IChGSVJTVF9SRVNFUlZFRF9HRFRfUEFHRSAqIDQwOTYpCisjZGVmaW5lIEZJUlNUX1JFU0VSVkVE
X0dEVF9FTlRSWSAoRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgLyA4KQorCisKKy8qCisgKiBgIGVu
dW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBh
LCB1NjQgZGVzYyk7CisgKiBgCisgKiBgIEBwYSAgIFRoZSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJl
c3Mgb2YgdGhlIGRlc2NyaXB0b3IgdG8KKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhl
ciBhIGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KKyAqIGAgQGRlc2MgVGhlIGRlc2NyaXB0
b3IgdmFsdWUgdG8gdXBkYXRlLCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgYQorICogYCAgICAgICBu
YXRpdmUgZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4KKyAqLworCisvKiBNYXhpbXVtIG51bWJlciBv
ZiB2aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCisjZGVm
aW5lIFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3R5
cGVkZWYgVUxPTkdfUFRSIHhlbl91bG9uZ190OworI2RlZmluZSBQUklfeGVuX3Vsb25nICJseCIK
KworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zdGFja19zd2l0
Y2goVUxPTkdfUFRSIHNzLCBVTE9OR19QVFIgZXNwKTsKKyAqIGAKKyAqIFNldHMgdGhlIHN0YWNr
IHNlZ21lbnQgYW5kIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHZjcHUuCisgKi8KKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZShjb25z
dCBzdHJ1Y3QgdHJhcF9pbmZvIHRyYXBzW10pOworICogYAorICovCisvKgorICogU2VuZCBhbiBh
cnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX3NldF90cmFwX3RhYmxlKCkuCisgKiBUZXJtaW5h
dGUgdGhlIGFycmF5IHdpdGggYSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1tdLmFkZHJlc3M9
PTAuCisgKiBUaGUgcHJpdmlsZWdlIGxldmVsIHNwZWNpZmllcyB3aGljaCBtb2RlcyBtYXkgZW50
ZXIgYSB0cmFwIHZpYSBhIHNvZnR3YXJlCisgKiBpbnRlcnJ1cHQuIE9uIHg4Ni82NCwgc2luY2Ug
cmluZ3MgMSBhbmQgMiBhcmUgdW5hdmFpbGFibGUsIHdlIGFsbG9jYXRlCisgKiBwcml2aWxlZ2Ug
bGV2ZWxzIGFzIGZvbGxvd3M6CisgKiAgTGV2ZWwgPT0gMDogTm9vbmUgbWF5IGVudGVyCisgKiAg
TGV2ZWwgPT0gMTogS2VybmVsIG1heSBlbnRlcgorICogIExldmVsID09IDI6IEtlcm5lbCBtYXkg
ZW50ZXIKKyAqICBMZXZlbCA9PSAzOiBFdmVyeW9uZSBtYXkgZW50ZXIKKyAqLworI2RlZmluZSBU
SV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKKyNkZWZpbmUgVElfR0VUX0lG
KF90aSkgICAgICAgKChfdGkpLT5mbGFncyAmIDQpCisjZGVmaW5lIFRJX1NFVF9EUEwoX3RpLF9k
cGwpICgoX3RpKS0+ZmxhZ3MgfD0gKF9kcGwpKQorI2RlZmluZSBUSV9TRVRfSUYoX3RpLF9pZikg
ICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQorc3RydWN0IHRyYXBfaW5mbyB7Cisg
ICAgdWludDhfdCAgICAgICB2ZWN0b3I7ICAvKiBleGNlcHRpb24gdmVjdG9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAgICAgIGZsYWdzOyAgIC8qIDAtMzog
cHJpdmlsZWdlIGxldmVsOyA0OiBjbGVhciBldmVudCBlbmFibGU/ICAqLworICAgIHVpbnQxNl90
ICAgICAgY3M7ICAgICAgLyogY29kZSBzZWxlY3RvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgICAgVUxPTkdfUFRSIGFkZHJlc3M7IC8qIGNvZGUgb2Zmc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHRyYXBfaW5m
byB0cmFwX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb190KTsKKwor
dHlwZWRlZiB1aW50NjRfdCB0c2NfdGltZXN0YW1wX3Q7IC8qIFJEVFNDIHRpbWVzdGFtcCAqLwor
CisvKgorICogVGhlIGZvbGxvd2luZyBpcyBhbGwgQ1BVIGNvbnRleHQuIE5vdGUgdGhhdCB0aGUg
ZnB1X2N0eHQgYmxvY2sgaXMgZmlsbGVkCisgKiBpbiBieSBGWFNBVkUgaWYgdGhlIENQVSBoYXMg
ZmVhdHVyZSBGWFNSOyBvdGhlcndpc2UgRlNBVkUgaXMgdXNlZC4KKyAqCisgKiBBbHNvIG5vdGUg
dGhhdCB3aGVuIGNhbGxpbmcgRE9NQ1RMX3NldHZjcHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxp
c2UKKyAqIGZvciBIVk0gYW5kIFBWSCBndWVzdHMsIG5vdCBhbGwgaW5mb3JtYXRpb24gaW4gdGhp
cyBzdHJ1Y3R1cmUgaXMgdXBkYXRlZDoKKyAqCisgKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3Ry
dWN0dXJlcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0IChpZgorICogVkdDVF9JMzg3X1ZBTElEIGlz
IHNldCksIGZsYWdzLCB1c2VyX3JlZ3MsIGRlYnVncmVnWypdCisgKgorICogLSBQVkggZ3Vlc3Rz
IGFyZSB0aGUgc2FtZSBhcyBIVk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBjdHJscmVn
WzNdIHRvCisgKiBzZXQgY3IzLiBBbGwgb3RoZXIgZmllbGRzIG5vdCB1c2VkIHNob3VsZCBiZSBz
ZXQgdG8gMC4KKyAqLworc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCB7CisgICAgLyogRlBVIHJl
Z2lzdGVycyBjb21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFsaWduZWQgZm9yIEZYU0FWRS9GWFJT
VE9SLiAqLworICAgIHN0cnVjdCB7IGNoYXIgeFs1MTJdOyB9IGZwdV9jdHh0OyAgICAgICAvKiBV
c2VyLWxldmVsIEZQVSByZWdpc3RlcnMgICAgICovCisjZGVmaW5lIFZHQ0ZfSTM4N19WQUxJRCAg
ICAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgVkdDRl9JTl9LRVJORUwgICAgICAgICAgICAg
ICAgICgxPDwyKQorI2RlZmluZSBfVkdDRl9pMzg3X3ZhbGlkICAgICAgICAgICAgICAgMAorI2Rl
ZmluZSBWR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAgKDE8PF9WR0NGX2kzODdfdmFsaWQp
CisjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFZHQ0Zf
aW5fa2VybmVsICAgICAgICAgICAgICAgICAoMTw8X1ZHQ0ZfaW5fa2VybmVsKQorI2RlZmluZSBf
VkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgMworI2RlZmluZSBWR0NGX2ZhaWxzYWZlX2Rp
c2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cykKKyNkZWZp
bmUgX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgIDQKKyNkZWZpbmUgVkdDRl9zeXNjYWxs
X2Rpc2FibGVzX2V2ZW50cyAgICgxPDxfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cykKKyNk
ZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgVkdDRl9vbmxp
bmUgICAgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9vbmxpbmUpCisgICAgVUxPTkdfUFRSIGZs
YWdzOyAgICAgICAgICAgICAgICAgICAgLyogVkdDRl8qIGZsYWdzICAgICAgICAgICAgICAgICAq
LworICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHVzZXJfcmVnczsgICAgICAgICAvKiBVc2VyLWxl
dmVsIENQVSByZWdpc3RlcnMgICAgICovCisgICAgc3RydWN0IHRyYXBfaW5mbyB0cmFwX2N0eHRb
MjU2XTsgICAgICAgIC8qIFZpcnR1YWwgSURUICAgICAgICAgICAgICAgICAgKi8KKyAgICBVTE9O
R19QVFIgbGR0X2Jhc2UsIGxkdF9lbnRzOyAgICAgICAvKiBMRFQgKGxpbmVhciBhZGRyZXNzLCAj
IGVudHMpICovCisgICAgVUxPTkdfUFRSIGdkdF9mcmFtZXNbMTZdLCBnZHRfZW50czsgLyogR0RU
IChtYWNoaW5lIGZyYW1lcywgIyBlbnRzKSAqLworICAgIFVMT05HX1BUUiBrZXJuZWxfc3MsIGtl
cm5lbF9zcDsgICAgIC8qIFZpcnR1YWwgVFNTIChvbmx5IFNTMS9TUDEpICAgKi8KKyAgICAvKiBO
Qi4gVXNlciBwYWdldGFibGUgb24geDg2LzY0IGlzIHBsYWNlZCBpbiBjdHJscmVnWzFdLiAqLwor
ICAgIFVMT05HX1BUUiBjdHJscmVnWzhdOyAgICAgICAgICAgICAgIC8qIENSMC1DUjcgKGNvbnRy
b2wgcmVnaXN0ZXJzKSAgKi8KKyAgICBVTE9OR19QVFIgZGVidWdyZWdbOF07ICAgICAgICAgICAg
ICAvKiBEQjAtREI3IChkZWJ1ZyByZWdpc3RlcnMpICAgICovCisjaWZkZWYgX19pMzg2X18KKyAg
ICBVTE9OR19QVFIgZXZlbnRfY2FsbGJhY2tfY3M7ICAgICAgICAvKiBDUzpFSVAgb2YgZXZlbnQg
Y2FsbGJhY2sgICAgICovCisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBV
TE9OR19QVFIgZmFpbHNhZmVfY2FsbGJhY2tfY3M7ICAgICAvKiBDUzpFSVAgb2YgZmFpbHNhZmUg
Y2FsbGJhY2sgICovCisgICAgVUxPTkdfUFRSIGZhaWxzYWZlX2NhbGxiYWNrX2VpcDsKKyNlbHNl
CisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBVTE9OR19QVFIgZmFpbHNh
ZmVfY2FsbGJhY2tfZWlwOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiB7CisgICAgICAgIFVM
T05HX1BUUiBzeXNjYWxsX2NhbGxiYWNrX2VpcDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBldmVudF9jYWxsYmFja19jczsgICAgLyogY29tcGF0IENTIG9mIGV2
ZW50IGNiICAgICAqLworICAgICAgICAgICAgdW5zaWduZWQgaW50IGZhaWxzYWZlX2NhbGxiYWNr
X2NzOyAvKiBjb21wYXQgQ1Mgb2YgZmFpbHNhZmUgY2IgICovCisgICAgICAgIH07CisgICAgfTsK
KyNlbHNlCisgICAgVUxPTkdfUFRSIHN5c2NhbGxfY2FsbGJhY2tfZWlwOworI2VuZGlmCisjZW5k
aWYKKyAgICBVTE9OR19QVFIgdm1fYXNzaXN0OyAgICAgICAgICAgICAgICAvKiBWTUFTU1RfVFlQ
RV8qIGJpdG1hcCAqLworI2lmZGVmIF9feDg2XzY0X18KKyAgICAvKiBTZWdtZW50IGJhc2UgYWRk
cmVzc2VzLiAqLworICAgIHVpbnQ2NF90ICAgICAgZnNfYmFzZTsKKyAgICB1aW50NjRfdCAgICAg
IGdzX2Jhc2Vfa2VybmVsOworICAgIHVpbnQ2NF90ICAgICAgZ3NfYmFzZV91c2VyOworI2VuZGlm
Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0IHZjcHVfZ3Vlc3RfY29udGV4
dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOworCitz
dHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdmFsaWQg
ZW50cmllcyBpbiB0aGUgcDJtIHRhYmxlKHMpIGFuY2hvcmVkIGF0CisgICAgICogcGZuX3RvX21m
bl9mcmFtZV9saXN0X2xpc3QgYW5kL29yIHAybV92YWRkci4KKyAgICAgKi8KKyAgICBVTE9OR19Q
VFIgbWF4X3BmbjsKKyAgICAvKgorICAgICAqIEZyYW1lIGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5z
IGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5zIGNvbnRhaW5pbmcgcDJtLgorICAgICAqIEEgdmFsdWUg
b2YgMCBpbmRpY2F0ZXMgaXQgaGFzIG5vdCB5ZXQgYmVlbiBzZXQgdXAsIH4wIGluZGljYXRlcyBp
dCBoYXMKKyAgICAgKiBiZWVuIHNldCB0byBpbnZhbGlkIGUuZy4gZHVlIHRvIHRoZSBwMm0gYmVp
bmcgdG9vIGxhcmdlIGZvciB0aGUgMy1sZXZlbAorICAgICAqIHAybSB0cmVlLiBJbiB0aGlzIGNh
c2UgdGhlIGxpbmVhciBtYXBwZXIgcDJtIGxpc3QgYW5jaG9yZWQgYXQgcDJtX3ZhZGRyCisgICAg
ICogaXMgdG8gYmUgdXNlZC4KKyAgICAgKi8KKyAgICB4ZW5fcGZuX3QgICAgIHBmbl90b19tZm5f
ZnJhbWVfbGlzdF9saXN0OworICAgIFVMT05HX1BUUiBubWlfcmVhc29uOworICAgIC8qCisgICAg
ICogRm9sbG93aW5nIHRocmVlIGZpZWxkcyBhcmUgdmFsaWQgaWYgcDJtX2NyMyBjb250YWlucyBh
IHZhbHVlIGRpZmZlcmVudAorICAgICAqIGZyb20gMC4KKyAgICAgKiBwMm1fY3IzIGlzIHRoZSBy
b290IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHdoZXJlIHAybV92YWRkciBpcyB2YWxpZC4KKyAgICAg
KiBwMm1fY3IzIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBhIGNyMyB2YWx1ZSBpbiB0aGUgdmNw
dSByZWdpc3RlciBzdGF0ZQorICAgICAqIGFuZCBob2xkcyB0aGUgZm9sZGVkIG1hY2hpbmUgZnJh
bWUgbnVtYmVyICh2aWEgeGVuX3Bmbl90b19jcjMpIG9mIGEKKyAgICAgKiBMMyBvciBMNCBwYWdl
IHRhYmxlLgorICAgICAqIHAybV92YWRkciBob2xkcyB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRo
ZSBsaW5lYXIgcDJtIGxpc3QuIEFsbCBlbnRyaWVzCisgICAgICogaW4gdGhlIHJhbmdlIFswLi4u
bWF4X3BmblsgYXJlIGFjY2Vzc2libGUgdmlhIHRoaXMgcG9pbnRlci4KKyAgICAgKiBwMm1fZ2Vu
ZXJhdGlvbiB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoZSBndWVzdCBiZWZvcmUgYW5kIGFmdGVy
IGVhY2gKKyAgICAgKiBjaGFuZ2Ugb2YgdGhlIG1hcHBpbmdzIG9mIHRoZSBwMm0gbGlzdC4gcDJt
X2dlbmVyYXRpb24gc3RhcnRzIGF0IDAgYW5kCisgICAgICogYSB2YWx1ZSB3aXRoIHRoZSBsZWFz
dCBzaWduaWZpY2FudCBiaXQgc2V0IGluZGljYXRlcyB0aGF0IGEgbWFwcGluZworICAgICAqIHVw
ZGF0ZSBpcyBpbiBwcm9ncmVzcy4gVGhpcyBhbGxvd3MgZ3Vlc3QgZXh0ZXJuYWwgc29mdHdhcmUg
KGUuZy4gaW4gRG9tMCkKKyAgICAgKiB0byB2ZXJpZnkgdGhhdCByZWFkIG1hcHBpbmdzIGFyZSBj
b25zaXN0ZW50IGFuZCB3aGV0aGVyIHRoZXkgaGF2ZSBjaGFuZ2VkCisgICAgICogc2luY2UgdGhl
IGxhc3QgY2hlY2suCisgICAgICogTW9kaWZ5aW5nIGEgcDJtIGVsZW1lbnQgaW4gdGhlIGxpbmVh
ciBwMm0gbGlzdCBpcyBhbGxvd2VkIHZpYSBhbiBhdG9taWMKKyAgICAgKiB3cml0ZSBvbmx5Lgor
ICAgICAqLworICAgIFVMT05HX1BUUiBwMm1fY3IzOyAgICAgICAgIC8qIGNyMyB2YWx1ZSBvZiB0
aGUgcDJtIGFkZHJlc3Mgc3BhY2UgKi8KKyAgICBVTE9OR19QVFIgcDJtX3ZhZGRyOyAgICAgICAv
KiB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIHAybSBsaXN0ICovCisgICAgVUxPTkdfUFRSIHAybV9n
ZW5lcmF0aW9uOyAgLyogZ2VuZXJhdGlvbiBjb3VudCBvZiBwMm0gbWFwcGluZyAqLworI2lmZGVm
IF9faTM4Nl9fCisgICAgLyogVGhlcmUncyBubyByb29tIGZvciB0aGlzIGZpZWxkIGluIHRoZSBn
ZW5lcmljIHN0cnVjdHVyZS4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWNfaGk7CisjZW5kaWYKK307
Cit0eXBlZGVmIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2hfc2hhcmVkX2luZm9fdDsKKwor
I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyoKKyAqIHN0
cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RP
TUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KKyAqLworc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZp
ZyB7CisjZGVmaW5lIF9YRU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAwCisjZGVmaW5lIFhFTl9Y
ODZfRU1VX0xBUElDICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9MQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0hQRVQgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSFBFVCAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0hQRVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9Q
TSAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8
PF9YRU5fWDg2X0VNVV9QTSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1JUQyAgICAgICAgICAgIDMK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1JU
QykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfSU9BUElDICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX1BJQyAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1BJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1ZH
QSAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1ZHQSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lP
TU1VKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAgOAorI2RlZmluZSBYRU5f
WDg2X0VNVV9QSVQgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQorCisjZGVmaW5l
IFhFTl9YODZfRU1VX0FMTCAgICAgICAgICAgICAoWEVOX1g4Nl9FTVVfTEFQSUMgfCBYRU5fWDg2
X0VNVV9IUEVUIHwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
WDg2X0VNVV9QTSB8IFhFTl9YODZfRU1VX1JUQyB8ICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX0lPQVBJQyB8IFhFTl9YODZfRU1VX1BJQyB8
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfVkdB
IHwgWEVOX1g4Nl9FTVVfSU9NTVUgfCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5fWDg2X0VNVV9QSVQpCisgICAgdWludDMyX3QgZW11bGF0aW9uX2ZsYWdzOwor
fTsKKyNlbmRpZgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKgorICogYCBlbnVt
IG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpOwor
ICogYAorICogU2V0cyAoaWYgc2V0IT0wKSBvciBjbGVhcnMgKGlmIHNldD09MCkgQ1IwLlRTLgor
ICovCisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc2V0X2Rl
YnVncmVnKGludCByZWdubywgVUxPTkdfUFRSIHZhbHVlKTsKKyAqCisgKiBgIFVMT05HX1BUUgor
ICogYCBIWVBFUlZJU09SX2dldF9kZWJ1Z3JlZyhpbnQgcmVnbm8pOworICogRm9yIDA8PXJlZzw9
NywgcmV0dXJucyB0aGUgZGVidWcgcmVnaXN0ZXIgdmFsdWUuCisgKiBGb3Igb3RoZXIgdmFsdWVz
IG9mIHJlZywgcmV0dXJucyAoKFVMT05HX1BUUiktRUlOVkFMKS4KKyAqIChVbmZvcnR1bmF0ZWx5
LCB0aGlzIGludGVyZmFjZSBpcyBkZWZlY3RpdmUuKQorICovCisKKy8qCisgKiBQcmVmaXggZm9y
Y2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0cnVjdGlvbnMuCisgKiBDdXJy
ZW50bHkgb25seSBDUFVJRC4KKyAqLworI2lmZGVmIF9fQVNTRU1CTFlfXworI2RlZmluZSBYRU5f
RU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSwweDZlIDsKKyNkZWZpbmUg
WEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVpZAorI2Vsc2UKKyNkZWZp
bmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3OCwweDY1LDB4NmUgOyAi
CisjZGVmaW5lIFhFTl9DUFVJRCAgICAgICAgICBYRU5fRU1VTEFURV9QUkVGSVggImNwdWlkIgor
I2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9o
dm0vaHZtX2luZm9fdGFibGUuaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9odm0vaHZtX2luZm9fdGFi
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTJlOGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oCkBAIC0w
LDAgKzEsNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGh2bS9odm1faW5mb190YWJs
ZS5oCisgKgorICogSFZNIHBhcmFtZXRlciBhbmQgaW5mb3JtYXRpb24gdGFibGUsIHdyaXR0ZW4g
aW50byBndWVzdCBtZW1vcnkgbWFwLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK
KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw
MDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZP
X1RBQkxFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXwor
CisjZGVmaW5lIEhWTV9JTkZPX1BGTiAgICAgICAgIDB4MDlGCisjZGVmaW5lIEhWTV9JTkZPX09G
RlNFVCAgICAgIDB4ODAwCisjZGVmaW5lIEhWTV9JTkZPX1BBRERSICAgICAgICgoSFZNX0lORk9f
UEZOIDw8IDEyKSArIEhWTV9JTkZPX09GRlNFVCkKKworLyogTWF4aW11bSB3ZSBjYW4gc3VwcG9y
dCB3aXRoIGN1cnJlbnQgdkxBUElDIElEIG1hcHBpbmcuICovCisjZGVmaW5lIEhWTV9NQVhfVkNQ
VVMgICAgICAgIDEyOAorCitzdHJ1Y3QgaHZtX2luZm9fdGFibGUgeworICAgIGNoYXIgICAgICAg
IHNpZ25hdHVyZVs4XTsgLyogIkhWTSBJTkZPIiAqLworICAgIHVpbnQzMl90ICAgIGxlbmd0aDsK
KyAgICB1aW50OF90ICAgICBjaGVja3N1bTsKKworICAgIC8qIFNob3VsZCBmaXJtd2FyZSBidWls
ZCBBUElDIGRlc2NyaXB0b3JzIChBUElDIE1BRFQgLyBNUCBCSU9TKT8gKi8KKyAgICB1aW50OF90
ICAgICBhcGljX21vZGU7CisKKyAgICAvKiBIb3cgbWFueSBDUFVzIGRvZXMgdGhpcyBkb21haW4g
aGF2ZT8gKi8KKyAgICB1aW50MzJfdCAgICBucl92Y3B1czsKKworICAgIC8qCisgICAgICogTUVN
T1JZIE1BUCBwcm92aWRlZCBieSBIVk0gZG9tYWluIGJ1aWxkZXIuCisgICAgICogTm90ZXM6Cisg
ICAgICogIDEuIHBhZ2VfdG9fcGh5cyh4KSA9IHggPDwgMTIKKyAgICAgKiAgMi4gSWYgYSBmaWVs
ZCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyByYW5nZSBkb2VzIG5vdCBleGlzdC4KKyAgICAg
Ki8KKyAgICAvKgorICAgICAqICAweDAgdG8gcGFnZV90b19waHlzKGxvd19tZW1fcGdlbmQpLTE6
CisgICAgICogICAgUkFNIGJlbG93IDRHQiAoZXhjZXB0IGZvciBWR0EgaG9sZSAweEEwMDAwLTB4
QkZGRkYpCisgICAgICovCisgICAgdWludDMyX3QgICAgbG93X21lbV9wZ2VuZDsKKyAgICAvKgor
ICAgICAqICBwYWdlX3RvX3BoeXMocmVzZXJ2ZWRfbWVtX3Bnc3RhcnQpIHRvIDB4RkZGRkZGRkY6
CisgICAgICogICAgUmVzZXJ2ZWQgZm9yIHNwZWNpYWwgbWVtb3J5IG1hcHBpbmdzCisgICAgICov
CisgICAgdWludDMyX3QgICAgcmVzZXJ2ZWRfbWVtX3Bnc3RhcnQ7CisgICAgLyoKKyAgICAgKiAg
MHgxMDAwMDAwMDAgdG8gcGFnZV90b19waHlzKGhpZ2hfbWVtX3BnZW5kKS0xOgorICAgICAqICAg
IFJBTSBhYm92ZSA0R0IKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICBoaWdoX21lbV9wZ2VuZDsK
KworICAgIC8qIEJpdG1hcCBvZiB3aGljaCBDUFVzIGFyZSBvbmxpbmUgYXQgYm9vdCB0aW1lLiAq
LworICAgIHVpbnQ4X3QgICAgIHZjcHVfb25saW5lWyhIVk1fTUFYX1ZDUFVTICsgNykvOF07Cit9
OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fSU5GT19UQUJMRV9IX18gKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4tY29tcGF0LmggYi9pbmNsdWRlL3hlbi9w
dWJsaWMveGVuLWNvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl
ZWEwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHhlbi1jb21wYXQu
aAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVy
LgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVh
bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRI
RSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIENocmlzdGlhbiBMaW1wYWNo
CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KKyNkZWZpbmUgX19Y
RU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCisKKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFD
RV9WRVJTSU9OX18gMHgwMDA0MDcwMAorCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCisvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFu
ZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLworI2RlZmluZSBfX1hFTl9JTlRF
UkZBQ0VfVkVSU0lPTl9fIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fCisjZWxpZiAh
ZGVmaW5lZChfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKQorLyogR3Vlc3RzIHdoaWNoIGRvIG5v
dCBzcGVjaWZ5IGEgdmVyc2lvbiBnZXQgdGhlIGxlZ2FjeSBpbnRlcmZhY2UuICovCisjZGVmaW5l
IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDAwMDAwMAorI2VuZGlmCisKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fID4gX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18K
KyNlcnJvciAiVGhlc2UgaGVhZGVyIGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQg
aW50ZXJmYWNlIHZlcnNpb24uIgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVO
X0NPTVBBVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy94ZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yMDU3YjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oCkBA
IC0wLDAgKzEsOTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ZW4uaAorICoKKyAq
IEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQor
ICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAwNCwgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18KKworI2luY2x1ZGUgInhlbi1jb21wYXQuaCIK
KworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRl
ICJhcmNoLXg4Ni94ZW4uaCIKKyNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZCAoX19h
YXJjaDY0X18pCisjaW5jbHVkZSAiYXJjaC1hcm0uaCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9y
dGVkIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyogR3Vl
c3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICovCitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShjaGFyKTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWNoYXIsIHVuc2lnbmVkIGNo
YXIpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoaW50KTsKK19fREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodWludCwgIHVuc2lnbmVkIGludCk7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDAzMDAKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKExPTkdfUFRSKTsKK19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodWxvbmcsIFVMT05HX1BUUik7CisjZW5kaWYKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHZvaWQpOworCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRf
dCk7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBD
IHVuc2lnbmVkIChMT05HX1BUUikgY29uc3RhbnQuICovCisjZGVmaW5lIF9feGVuX21rX3VpbnQo
eCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCisjZGVmaW5lIHhl
bl9ta191aW50KHgpICAgIF9feGVuX21rX3VpbnQoeCkKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgp
ICAgX194ZW5fbWtfdWxvbmcoeCkKKworI2Vsc2UKKworLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBj
YW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4gKi8KKyNkZWZpbmUgeGVuX21r
X3VpbnQoeCkgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpIHgKKworI2VuZGlmCisKKy8qCisg
KiBIWVBFUkNBTExTCisgKi8KKworLyogYGluY29udGVudHMgMTAwIGhjYWxscyBMaXN0IG9mIGh5
cGVyY2FsbHMKKyAqIGAgZW51bSBoeXBlcmNhbGxfbnVtIHsgLy8gX19IWVBFUlZJU09SXyogPT4g
SFlQRVJWSVNPUl8qKCkKKyAqLworCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJs
ZSAgICAgICAgMAorI2RlZmluZSBfX0hZUEVSVklTT1JfbW11X3VwZGF0ZSAgICAgICAgICAgIDEK
KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zdGFja19zd2l0Y2ggICAgICAgICAgMworI2RlZmluZSBfX0hZUEVSVklTT1Jf
c2V0X2NhbGxiYWNrcyAgICAgICAgIDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90YXNrc3dp
dGNoICAgICAgICA1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zY2hlZF9vcF9jb21wYXQgICAgICAg
NiAvKiBjb21wYXQgc2luY2UgMHgwMDAzMDEwMSAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfcGxh
dGZvcm1fb3AgICAgICAgICAgIDcKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyAg
ICAgICAgICA4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9nZXRfZGVidWdyZWcgICAgICAgICAgOQor
I2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IgICAgMTAKKyNkZWZpbmUgX19I
WVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9t
dWx0aWNhbGwgICAgICAgICAgICAxMworI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX3ZhX21h
cHBpbmcgICAgMTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAgICAgIDE1
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wX2NvbXBhdCAxNiAvKiBjb21w
YXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVuX3ZlcnNpb24g
ICAgICAgICAgMTcKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2NvbXBhdCAgICAxOSAvKiBjb21wYXQg
c2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3Ag
ICAgICAgMjAKKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAgIDIxCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbiAyMgorI2Rl
ZmluZSBfX0hZUEVSVklTT1JfaXJldCAgICAgICAgICAgICAgICAgMjMgLyogeDg2IG9ubHkgKi8K
KyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlICAgICAyNSAvKiB4ODYvNjQgb25seSAqLworI2Rl
ZmluZSBfX0hZUEVSVklTT1JfbW11ZXh0X29wICAgICAgICAgICAgMjYKKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ubWlf
b3AgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgICAgICAg
ICAgICAgMjkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxiYWNrX29wICAgICAgICAgIDMwCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5vcHJvZl9vcCAgICAgICAgICAzMQorI2RlZmluZSBfX0hZ
UEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCAgICAgMzIKKyNkZWZpbmUgX19IWVBFUlZJU09SX3Bo
eXNkZXZfb3AgICAgICAgICAgIDMzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3AgICAgICAg
ICAgICAgICAzNAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc3lzY3RsICAgICAgICAgICAgICAgMzUK
KyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNworI2RlZmluZSBfX0hZUEVSVklTT1Jf
dG1lbV9vcCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVk
X29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisKKy8qIEFyY2hpdGVjdHVyZS1zcGVjaWZp
YyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAg
ICAgICAgICAgICAgICA0OAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8xICAgICAgICAgICAg
ICAgNDkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMiAgICAgICAgICAgICAgIDUwCisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9hcmNoXzMgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfX0hZUEVS
VklTT1JfYXJjaF80ICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hf
NSAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzYgICAgICAgICAg
ICAgICA1NAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF83ICAgICAgICAgICAgICAgNTUKKwor
LyogYCB9ICovCisKKy8qCisgKiBIWVBFUkNBTEwgQ09NUEFUSUJJTElUWS4KKyAqLworCisvKiBO
ZXcgc2NoZWRfb3AgaHlwZXJjYWxsIGludHJvZHVjZWQgaW4gMHgwMDAzMDEwMS4gKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDEwMQorI3VuZGVmIF9fSFlQRVJWSVNP
Ul9zY2hlZF9vcAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgX19IWVBFUlZJU09SX3Nj
aGVkX29wX2NvbXBhdAorI2VuZGlmCisKKy8qIE5ldyBldmVudC1jaGFubmVsIGFuZCBwaHlzZGV2
IGh5cGVyY2FsbHMgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAyLiAqLworI2lmIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPCAweDAwMDMwMjAyCisjdW5kZWYgX19IWVBFUlZJU09SX2V2ZW50X2No
YW5uZWxfb3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgX19IWVBFUlZJ
U09SX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0CisjdW5kZWYgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3BfY29tcGF0CisjZW5kaWYKKworLyogTmV3IHBsYXRmb3JtX29wIGh5cGVyY2FsbCBpbnRyb2R1
Y2VkIGluIDB4MDAwMzAyMDQuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwMzAyMDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbTBfb3AgX19IWVBFUlZJU09SX3BsYXRm
b3JtX29wCisjZW5kaWYKKworLyoKKyAqIFZJUlRVQUwgSU5URVJSVVBUUworICoKKyAqIFZpcnR1
YWwgaW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2VpdmUgZnJvbSBYZW4uCisgKgor
ICogSW4gdGhlIHNpZGUgY29tbWVudHMsICdWLicgZGVub3RlcyBhIHBlci1WQ1BVIFZJUlEgd2hp
bGUgJ0cuJyBkZW5vdGVzIGEKKyAqIGdsb2JhbCBWSVJRLiBUaGUgZm9ybWVyIGNhbiBiZSBib3Vu
ZCBvbmNlIHBlciBWQ1BVIGFuZCBjYW5ub3QgYmUgcmUtYm91bmQuCisgKiBUaGUgbGF0dGVyIGNh
biBiZSBhbGxvY2F0ZWQgb25seSBvbmNlIHBlciBndWVzdDogdGhleSBtdXN0IGluaXRpYWxseSBi
ZQorICogYWxsb2NhdGVkIHRvIFZDUFUwIGJ1dCBjYW4gc3Vic2VxdWVudGx5IGJlIHJlLWJvdW5k
LgorICovCisvKiBgIGVudW0gdmlycSB7ICovCisjZGVmaW5lIFZJUlFfVElNRVIgICAgICAwICAv
KiBWLiBUaW1lYmFzZSB1cGRhdGUsIGFuZC9vciByZXF1ZXN0ZWQgdGltZW91dC4gICovCisjZGVm
aW5lIFZJUlFfREVCVUcgICAgICAxICAvKiBWLiBSZXF1ZXN0IGd1ZXN0IHRvIGR1bXAgZGVidWcg
aW5mby4gICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfQ09OU09MRSAgICAyICAvKiBHLiAoRE9N
MCkgQnl0ZXMgcmVjZWl2ZWQgb24gZW1lcmdlbmN5IGNvbnNvbGUuICovCisjZGVmaW5lIFZJUlFf
RE9NX0VYQyAgICAzICAvKiBHLiAoRE9NMCkgRXhjZXB0aW9uYWwgZXZlbnQgZm9yIHNvbWUgZG9t
YWluLiAgICovCisjZGVmaW5lIFZJUlFfVEJVRiAgICAgICA0ICAvKiBHLiAoRE9NMCkgVHJhY2Ug
YnVmZmVyIGhhcyByZWNvcmRzIGF2YWlsYWJsZS4gICovCisjZGVmaW5lIFZJUlFfREVCVUdHRVIg
ICA2ICAvKiBHLiAoRE9NMCkgQSBkb21haW4gaGFzIHBhdXNlZCBmb3IgZGVidWdnaW5nLiAgICov
CisjZGVmaW5lIFZJUlFfWEVOT1BST0YgICA3ICAvKiBWLiBYZW5PcHJvZmlsZSBpbnRlcnJ1cHQ6
IG5ldyBzYW1wbGUgYXZhaWxhYmxlICovCisjZGVmaW5lIFZJUlFfQ09OX1JJTkcgICA4ICAvKiBH
LiAoRE9NMCkgQnl0ZXMgcmVjZWl2ZWQgb24gY29uc29sZSAgICAgICAgICAgICovCisjZGVmaW5l
IFZJUlFfUENQVV9TVEFURSA5ICAvKiBHLiAoRE9NMCkgUENQVSBzdGF0ZSBjaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfTUVNX0VWRU5UICAxMCAvKiBHLiAoRE9NMCkg
QSBtZW1vcnkgZXZlbnQgaGFzIG9jY3VyZWQgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfWENf
UkVTRVJWRUQgMTEgLyogRy4gUmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAgICAgICAgICAgICAgICAg
ICAgICovCisjZGVmaW5lIFZJUlFfRU5PTUVNICAgICAxMiAvKiBHLiAoRE9NMCkgTG93IG9uIGhl
YXAgbWVtb3J5ICAgICAgICovCisjZGVmaW5lIFZJUlFfWEVOUE1VICAgICAxMyAvKiBWLiAgUE1D
IGludGVycnVwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKy8qIEFyY2hpdGVj
dHVyZS1zcGVjaWZpYyBWSVJRIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBWSVJRX0FSQ0hfMCAg
ICAxNgorI2RlZmluZSBWSVJRX0FSQ0hfMSAgICAxNworI2RlZmluZSBWSVJRX0FSQ0hfMiAgICAx
OAorI2RlZmluZSBWSVJRX0FSQ0hfMyAgICAxOQorI2RlZmluZSBWSVJRX0FSQ0hfNCAgICAyMAor
I2RlZmluZSBWSVJRX0FSQ0hfNSAgICAyMQorI2RlZmluZSBWSVJRX0FSQ0hfNiAgICAyMgorI2Rl
ZmluZSBWSVJRX0FSQ0hfNyAgICAyMworLyogYCB9ICovCisKKyNkZWZpbmUgTlJfVklSUVMgICAg
ICAgMjQKKworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVf
dXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlIHJlcXNbXSwKKyAqIGAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCAqZG9uZV9vdXQsCisgKiBgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JlaWduZG9tKQorICogYAorICogQHJlcXMgaXMg
YW4gYXJyYXkgb2YgbW11X3VwZGF0ZV90IHN0cnVjdHVyZXMgKChwdHIsIHZhbCkgcGFpcnMpLgor
ICogQGNvdW50IGlzIHRoZSBsZW5ndGggb2YgdGhlIGFib3ZlIGFycmF5LgorICogQHBkb25lIGlz
IGFuIG91dHB1dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBudW1iZXIgb2YgY29tcGxldGVkIG9wZXJh
dGlvbnMKKyAqIEBmb3JlaWduZG9tWzE1OjBdOiBGRCwgdGhlIGV4cGVjdGVkIG93bmVyIG9mIGRh
dGEgcGFnZXMgcmVmZXJlbmNlZCBpbiB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgaHlwZXJj
YWxsIGludm9jYXRpb24uIENhbiBiZSBET01JRF9TRUxGLgorICogQGZvcmVpZ25kb21bMzE6MTZd
OiBQRkQsIHRoZSBleHBlY3RlZCBvd25lciBvZiBwYWdldGFibGUgcGFnZXMgcmVmZXJlbmNlZAor
ICogICAgICAgICAgICAgICAgICAgICBpbiB0aGlzIGh5cGVyY2FsbCBpbnZvY2F0aW9uLiBUaGUg
dmFsdWUgb2YgdGhpcyBmaWVsZAorICogICAgICAgICAgICAgICAgICAgICAoeCkgZW5jb2RlcyB0
aGUgUEZEIGFzIGZvbGxvd3M6CisgKiAgICAgICAgICAgICAgICAgICAgIHggPT0gMCA9PiBQRkQg
PT0gRE9NSURfU0VMRgorICogICAgICAgICAgICAgICAgICAgICB4ICE9IDAgPT4gUEZEID09IHgg
LSAxCisgKgorICogU3ViLWNvbW1hbmRzOiBwdHJbMTowXSBzcGVjaWZpZXMgdGhlIGFwcHJvcHJp
YXRlIE1NVV8qIGNvbW1hbmQuCisgKiAtLS0tLS0tLS0tLS0tCisgKiBwdHJbMTowXSA9PSBNTVVf
Tk9STUFMX1BUX1VQREFURToKKyAqIFVwZGF0ZXMgYW4gZW50cnkgaW4gYSBwYWdlIHRhYmxlIGJl
bG9uZ2luZyB0byBQRkQuIElmIHVwZGF0aW5nIGFuIEwxIHRhYmxlLAorICogYW5kIHRoZSBuZXcg
dGFibGUgZW50cnkgaXMgdmFsaWQvcHJlc2VudCwgdGhlIG1hcHBlZCBmcmFtZSBtdXN0IGJlbG9u
ZyB0bworICogRkQuIElmIGF0dGVtcHRpbmcgdG8gbWFwIGFuIEkvTyBwYWdlIHRoZW4gdGhlIGNh
bGxlciBhc3N1bWVzIHRoZSBwcml2aWxlZ2UKKyAqIG9mIHRoZSBGRC4KKyAqIEZEID09IERPTUlE
X0lPOiBQZXJtaXQgL29ubHkvIEkvTyBtYXBwaW5ncywgYXQgdGhlIHByaXYgbGV2ZWwgb2YgdGhl
IGNhbGxlci4KKyAqIEZEID09IERPTUlEX1hFTjogTWFwIHJlc3RyaWN0ZWQgYXJlYXMgb2YgWGVu
J3MgaGVhcCBzcGFjZS4KKyAqIHB0cls6Ml0gIC0tIE1hY2hpbmUgYWRkcmVzcyBvZiB0aGUgcGFn
ZS10YWJsZSBlbnRyeSB0byBtb2RpZnkuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZS4K
KyAqCisgKiBUaGVyZSBhbHNvIGNlcnRhaW4gaW1wbGljaXQgcmVxdWlyZW1lbnRzIHdoZW4gdXNp
bmcgdGhpcyBoeXBlcmNhbGwuIFRoZQorICogcGFnZXMgdGhhdCBtYWtlIHVwIGEgcGFnZXRhYmxl
IG11c3QgYmUgbWFwcGVkIHJlYWQtb25seSBpbiB0aGUgZ3Vlc3QuCisgKiBUaGlzIHByZXZlbnRz
IHVuY29udHJvbGxlZCBndWVzdCB1cGRhdGVzIHRvIHRoZSBwYWdldGFibGUuIFhlbiBzdHJpY3Rs
eQorICogZW5mb3JjZXMgdGhpcywgYW5kIHdpbGwgZGlzYWxsb3cgYW55IHBhZ2V0YWJsZSB1cGRh
dGUgd2hpY2ggd2lsbCBlbmQgdXAKKyAqIG1hcHBpbmcgcGFnZXRhYmxlIHBhZ2UgUlcsIGFuZCB3
aWxsIGRpc2FsbG93IHVzaW5nIGFueSB3cml0YWJsZSBwYWdlIGFzIGEKKyAqIHBhZ2V0YWJsZS4g
SW4gcHJhY3RpY2UgaXQgbWVhbnMgdGhhdCB3aGVuIGNvbnN0cnVjdGluZyBhIHBhZ2UgdGFibGUg
Zm9yIGEKKyAqIHByb2Nlc3MsIHRocmVhZCwgZXRjLCB3ZSBNVVNUIGJlIHZlcnkgZGlsbGlnaWVu
dCBpbiBmb2xsb3dpbmcgdGhlc2UgcnVsZXM6CisgKiAgMSkuIFN0YXJ0IHdpdGggdG9wLWxldmVs
IHBhZ2UgKFBHRCBvciBpbiBYZW4gbGFuZ3VhZ2U6IEw0KS4gRmlsbCBvdXQKKyAqICAgICAgdGhl
IGVudHJpZXMuCisgKiAgMikuIEtlZXAgb24gZ29pbmcsIGZpbGxpbmcgb3V0IHRoZSB1cHBlciAo
UFVEIG9yIEwzKSwgYW5kIG1pZGRsZSAoUE1ECisgKiAgICAgIG9yIEwyKS4KKyAqICAzKS4gU3Rh
cnQgZmlsbGluZyBvdXQgdGhlIFBURSB0YWJsZSAoTDEpIHdpdGggdGhlIFBURSBlbnRyaWVzLiBP
bmNlCisgKiAgCWRvbmUsIG1ha2Ugc3VyZSB0byBzZXQgZWFjaCBvZiB0aG9zZSBlbnRyaWVzIHRv
IFJPIChzbyB3cml0ZWFibGUgYml0CisgKiAgCWlzIHVuc2V0KS4gT25jZSB0aGF0IGhhcyBiZWVu
IGNvbXBsZXRlZCwgc2V0IHRoZSBQTUQgKEwyKSBmb3IgdGhpcworICogIAlQVEUgdGFibGUgYXMg
Uk8uCisgKiAgNCkuIFdoZW4gY29tcGxldGVkIHdpdGggYWxsIG9mIHRoZSBQTUQgKEwyKSBlbnRy
aWVzLCBhbmQgYWxsIG9mIHRoZW0gaGF2ZQorICogIAliZWVuIHNldCB0byBSTywgbWFrZSBzdXJl
IHRvIHNldCBSTyB0aGUgUFVEIChMMykuIERvIHRoZSBzYW1lCisgKiAgCW9wZXJhdGlvbiBvbiBQ
R0QgKEw0KSBwYWdldGFibGUgZW50cmllcyB0aGF0IGhhdmUgYSBQVUQgKEwzKSBlbnRyeS4KKyAq
ICA1KS4gTm93IGJlZm9yZSB5b3UgY2FuIHVzZSB0aG9zZSBwYWdlcyAoc28gc2V0dGluZyB0aGUg
Y3IzKSwgeW91IE1VU1QgYWxzbworICogICAgICBwaW4gdGhlbSBzbyB0aGF0IHRoZSBoeXBlcnZp
c29yIGNhbiB2ZXJpZnkgdGhlIGVudHJpZXMuIFRoaXMgaXMgZG9uZQorICogICAgICB2aWEgdGhl
IEhZUEVSVklTT1JfbW11ZXh0X29wKE1NVUVYVF9QSU5fTDRfVEFCTEUsIGd1ZXN0IHBoeXNpY2Fs
IGZyYW1lCisgKiAgICAgIG51bWJlciBvZiB0aGUgUEdEIChMNCkpLiBBbmQgdGhpcyBwb2ludCB0
aGUgSFlQRVJWSVNPUl9tbXVleHRfb3AoCisgKiAgICAgIE1NVUVYVF9ORVdfQkFTRVBUUiwgZ3Vl
c3QgcGh5c2ljYWwgZnJhbWUgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkgY2FuIGJlCisgKiAgICAg
IGlzc3VlZC4KKyAqIEZvciAzMi1iaXQgZ3Vlc3RzLCB0aGUgTDQgaXMgbm90IHVzZWQgKGFzIHRo
ZXJlIGlzIGxlc3MgcGFnZXRhYmxlcyksIHNvCisgKiBpbnN0ZWFkIHVzZSBMMy4KKyAqIEF0IHRo
aXMgcG9pbnQgdGhlIHBhZ2V0YWJsZXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBNTVVfTk9S
TUFMX1BUX1VQREFURQorICogaHlwZXJjYWxsLiBBbHNvIGlmIHNvIGRlc2lyZWQgdGhlIE9TIGNh
biBhbHNvIHRyeSB0byB3cml0ZSB0byB0aGUgUFRFCisgKiBhbmQgYmUgdHJhcHBlZCBieSB0aGUg
aHlwZXJ2aXNvciAoYXMgdGhlIFBURSBlbnRyeSBpcyBSTykuCisgKgorICogVG8gZGVhbGxvY2F0
ZSB0aGUgcGFnZXMsIHRoZSBvcGVyYXRpb25zIGFyZSB0aGUgcmV2ZXJzZSBvZiB0aGUgc3RlcHMK
KyAqIG1lbnRpb25lZCBhYm92ZS4gVGhlIGFyZ3VtZW50IGlzIE1NVUVYVF9VTlBJTl9UQUJMRSBm
b3IgYWxsIGxldmVscyBhbmQgdGhlCisgKiBwYWdldGFibGUgTVVTVCBub3QgYmUgaW4gdXNlICht
ZWFuaW5nIHRoYXQgdGhlIGNyMyBpcyBub3Qgc2V0IHRvIGl0KS4KKyAqCisgKiBwdHJbMTowXSA9
PSBNTVVfTUFDSFBIWVNfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiB0aGUgbWFjaGlu
ZS0+cHNldWRvLXBoeXNpY2FsIG1hcHBpbmcgdGFibGUuCisgKiBwdHJbOjJdICAtLSBNYWNoaW5l
IGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KKyAqICAg
ICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVj
aWZpZWQuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVu
dHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBB
cyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0
aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCisgKgorICogQHZhbCBpcyB1
c3VhbGx5IHRoZSBtYWNoaW5lIGZyYW1lIG51bWJlciBhbG9uZyB3aXRoIHNvbWUgYXR0cmlidXRl
cy4KKyAqIFRoZSBhdHRyaWJ1dGVzIGJ5IGRlZmF1bHQgZm9sbG93IHRoZSBhcmNoaXRlY3R1cmUg
ZGVmaW5lZCBiaXRzLiBNZWFuaW5nIHRoYXQKKyAqIGlmIHRoaXMgaXMgYSBYODZfNjQgbWFjaGlu
ZSBhbmQgZm91ciBwYWdlIHRhYmxlIGxheW91dCBpcyB1c2VkLCB0aGUgbGF5b3V0CisgKiBvZiB2
YWwgaXM6CisgKiAgLSA2MyBpZiBzZXQgbWVhbnMgTm8gZXhlY3V0ZSAoTlgpCisgKiAgLSA0Ni0x
MyB0aGUgbWFjaGluZSBmcmFtZSBudW1iZXIKKyAqICAtIDEyIGF2YWlsYWJsZSBmb3IgZ3Vlc3QK
KyAqICAtIDExIGF2YWlsYWJsZSBmb3IgZ3Vlc3QKKyAqICAtIDEwIGF2YWlsYWJsZSBmb3IgZ3Vl
c3QKKyAqICAtIDkgYXZhaWxhYmxlIGZvciBndWVzdAorICogIC0gOCBnbG9iYWwKKyAqICAtIDcg
UEFUIChQU0UgaXMgZGlzYWJsZWQsIG11c3QgdXNlIGh5cGVyY2FsbCB0byBtYWtlIDRNQiBvciAy
TUIgcGFnZXMpCisgKiAgLSA2IGRpcnR5CisgKiAgLSA1IGFjY2Vzc2VkCisgKiAgLSA0IHBhZ2Ug
Y2FjaGVkIGRpc2FibGVkCisgKiAgLSAzIHBhZ2Ugd3JpdGUgdGhyb3VnaAorICogIC0gMiB1c2Vy
c3BhY2UgYWNjZXNzaWJsZQorICogIC0gMSB3cml0ZWFibGUKKyAqICAtIDAgcHJlc2VudAorICoK
KyAqICBUaGUgb25lIGJpdHMgdGhhdCBkb2VzIG5vdCBmaXQgd2l0aCB0aGUgZGVmYXVsdCBsYXlv
dXQgaXMgdGhlIFBBR0VfUFNFCisgKiAgYWxzbyBjYWxsZWQgUEFHRV9QQVQpLiBUaGUgTU1VRVhU
X1tVTl1NQVJLX1NVUEVSIGFyZ3VtZW50cyB0byB0aGUKKyAqICBIWVBFUlZJU09SX21tdWV4dF9v
cCBzZXJ2ZSBhcyBtZWNoYW5pc20gdG8gc2V0IGEgcGFnZXRhYmxlIHRvIGJlIDRNQgorICogIChv
ciAyTUIpIGluc3RlYWQgb2YgdXNpbmcgdGhlIFBBR0VfUFNFIGJpdC4KKyAqCisgKiAgVGhlIHJl
YXNvbiB0aGF0IHRoZSBQQUdFX1BTRSAoYml0IDcpIGlzIG5vdCBiZWluZyB1dGlsaXplZCBpcyBk
dWUgdG8gWGVuCisgKiAgdXNpbmcgaXQgYXMgdGhlIFBhZ2UgQXR0cmlidXRlIFRhYmxlIChQQVQp
IGJpdCAtIGZvciBkZXRhaWxzIG9uIGl0IHBsZWFzZQorICogIHJlZmVyIHRvIEludGVsIFNETSAx
MC4xMi4gVGhlIFBBVCBhbGxvd3MgdG8gc2V0IHRoZSBjYWNoaW5nIGF0dHJpYnV0ZXMgb2YKKyAq
ICBwYWdlcyBpbnN0ZWFkIG9mIHVzaW5nIE1UUlJzLgorICoKKyAqICBUaGUgUEFUIE1TUiBpcyBh
cyBmb2xsb3dzIChpdCBpcyBhIDY0LWJpdCB2YWx1ZSwgZWFjaCBlbnRyeSBpcyA4IGJpdHMpOgor
ICogICAgICAgICAgICAgICAgICAgIFBBVDQgICAgICAgICAgICAgICAgIFBBVDAKKyAqICArLS0t
LS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKworICogIHwgVUMgIHwgVUMt
IHwgV0MgfCBXQiB8IFVDIHwgVUMtIHwgV0MgfCBXQiB8ICA8PSBMaW51eAorICogICstLS0tLSst
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisgKiAgfCBVQyAgfCBVQy0gfCBX
VCB8IFdCIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9IEJJT1MgKGRlZmF1bHQgd2hlbiBtYWNo
aW5lIGJvb3RzKQorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0t
LS0rCisgKiAgfCByc3YgfCByc3YgfCBXUCB8IFdDIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9
IFhlbgorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisg
KgorICogIFRoZSBsb29rdXAgb2YgdGhpcyBpbmRleCB0YWJsZSB0cmFuc2xhdGVzIHRvIGxvb2tp
bmcgdXAKKyAqICBCaXQgNywgQml0IDQsIGFuZCBCaXQgMyBvZiB2YWwgZW50cnk6CisgKgorICog
IFBBVC9QU0UgKGJpdCA3KSAuLi4gUENEIChiaXQgNCkgLi4gUFdUIChiaXQgMykuCisgKgorICog
IElmIGFsbCBiaXRzIGFyZSBvZmYsIHRoZW4gd2UgYXJlIHVzaW5nIFBBVDAuIElmIGJpdCAzIHR1
cm5lZCBvbiwKKyAqICB0aGVuIHdlIGFyZSB1c2luZyBQQVQxLCBpZiBiaXQgMyBhbmQgYml0IDQs
IHRoZW4gUEFUMi4uCisgKgorICogIEFzIHlvdSBjYW4gc2VlLCB0aGUgTGludXggUEFUMSB0cmFu
c2xhdGVzIHRvIFBBVDQgdW5kZXIgWGVuLiBXaGljaCBtZWFucworICogIHRoYXQgaWYgYSBndWVz
dCB0aGF0IGZvbGxvd3MgTGludXgncyBQQVQgc2V0dXAgYW5kIHdvdWxkIGxpa2UgdG8gc2V0IFdy
aXRlCisgKiAgQ29tYmluZWQgb24gcGFnZXMgaXQgTVVTVCB1c2UgUEFUNCBlbnRyeS4gTWVhbmlu
ZyB0aGF0IEJpdCA3IChQQUdFX1BBVCkgaXMKKyAqICBzZXQuIEZvciBleGFtcGxlLCB1bmRlciBM
aW51eCBpdCBvbmx5IHVzZXMgUEFUMCwgUEFUMSwgYW5kIFBBVDIgZm9yIHRoZQorICogIGNhY2hp
bmcgYXM6CisgKgorICogICBXQiA9IG5vbmUgKHNvIFBBVDApCisgKiAgIFdDID0gUFdUIChiaXQg
MyBvbikKKyAqICAgVUMgPSBQV1QgfCBQQ0QgKGJpdCAzIGFuZCA0IGFyZSBvbikuCisgKgorICog
VG8gbWFrZSBpdCB3b3JrIHdpdGggWGVuLCBpdCBuZWVkcyB0byB0cmFuc2xhdGUgdGhlIFdDIGJp
dCBhcyBzbzoKKyAqCisgKiAgUFdUIChzbyBiaXQgMyBvbikgLS0+IFBBVCAoc28gYml0IDcgaXMg
b24pIGFuZCBjbGVhciBiaXQgMworICoKKyAqIEFuZCB0byB0cmFuc2xhdGUgYmFjayBpdCB3b3Vs
ZDoKKyAqCisgKiBQQVQgKGJpdCA3IG9uKSAtLT4gUFdUIChiaXQgMyBvbikgYW5kIGNsZWFyIGJp
dCA3LgorICovCisjZGVmaW5lIE1NVV9OT1JNQUxfUFRfVVBEQVRFICAgICAgMCAvKiBjaGVja2Vk
ICcqcHRyID0gdmFsJy4gcHRyIGlzIE1BLiAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19V
UERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICov
CisjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5OiAqcHRy
ID0gdmFsIHwgKCpwdHImKEF8RCkpICovCisKKy8qCisgKiBNTVUgRVhURU5ERUQgT1BFUkFUSU9O
UworICoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVleHRfb3Ao
bW11ZXh0X29wX3QgdW9wc1tdLAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgY291bnQsCisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcGRvbmUs
CisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmb3JlaWduZG9tKQorICov
CisvKiBIWVBFUlZJU09SX21tdWV4dF9vcCgpIGFjY2VwdHMgYSBsaXN0IG9mIG1tdWV4dF9vcCBz
dHJ1Y3R1cmVzLgorICogQSBmb3JlaWduZG9tIChGRCkgY2FuIGJlIHNwZWNpZmllZCAob3IgRE9N
SURfU0VMRiBmb3Igbm9uZSkuCisgKiBXaGVyZSB0aGUgRkQgaGFzIHNvbWUgZWZmZWN0LCBpdCBp
cyBkZXNjcmliZWQgYmVsb3cuCisgKgorICogY21kOiBNTVVFWFRfKFVOKVBJTl8qX1RBQkxFCisg
KiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIHRvIGJlICh1bilwaW5uZWQgYXMgYSBwLnQuIHBh
Z2UuCisgKiAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBz
cGVjaWZpZWQuCisgKgorICogY21kOiBNTVVFWFRfTkVXX0JBU0VQVFIKKyAqIG1mbjogTWFjaGlu
ZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxsIGluIE1NVS4K
KyAqCisgKiBjbWQ6IE1NVUVYVF9ORVdfVVNFUl9CQVNFUFRSIFt4ODYvNjQgb25seV0KKyAqIG1m
bjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxs
IGluIE1NVQorICogICAgICB3aGVuIGluIHVzZXIgc3BhY2UuCisgKgorICogY21kOiBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gRmx1c2hlcyBsb2Nh
bCBUTEIuCisgKgorICogY21kOiBNTVVFWFRfSU5WTFBHX0xPQ0FMCisgKiBsaW5lYXJfYWRkcjog
TGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIHRoZSBsb2NhbCBUTEIuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX01VTFRJCisgKiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRt
YXAgb2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9JTlZMUEdfTVVM
VEkKKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkLgorICogdmNw
dW1hc2s6IFBvaW50ZXIgdG8gYml0bWFwIG9mIFZDUFVzIHRvIGJlIGZsdXNoZWQuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX0FMTAorICogTm8gYWRkaXRpb25hbCBhcmd1bWVudHMuIEZs
dXNoZXMgYWxsIFZDUFVzJyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0lOVkxQR19BTEwKKyAq
IGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkIGZyb20gYWxsIFZDUFVz
JyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NBQ0hFCisgKiBObyBhZGRpdGlvbmFs
IGFyZ3VtZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMuCisgKgor
ICogY21kOiBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xPQkFMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3Vt
ZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMKKyAqIG9uIGFsbCBD
UFVzIGluIHRoZSBzeXN0ZW0uCisgKgorICogY21kOiBNTVVFWFRfU0VUX0xEVAorICogbGluZWFy
X2FkZHI6IExpbmVhciBhZGRyZXNzIG9mIExEVCBiYXNlIChOQi4gbXVzdCBiZSBwYWdlLWFsaWdu
ZWQpLgorICogbnJfZW50czogTnVtYmVyIG9mIGVudHJpZXMgaW4gTERULgorICoKKyAqIGNtZDog
TU1VRVhUX0NMRUFSX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgY2xl
YXJlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9DT1BZX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFt
ZSBudW1iZXIgb2YgdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCisgKiBzcmNfbWZuOiBNYWNoaW5lIGZy
YW1lIG51bWJlciBvZiB0aGUgc291cmNlIHBhZ2UuCisgKgorICogY21kOiBNTVVFWFRfW1VOXU1B
UktfU1VQRVIKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgaGVhZCBvZiBzdXBlcnBh
Z2UgdG8gYmUgW3VuXW1hcmtlZC4KKyAqLworLyogYCBlbnVtIG1tdWV4dF9jbWQgeyAqLworI2Rl
ZmluZSBNTVVFWFRfUElOX0wxX1RBQkxFICAgICAgMAorI2RlZmluZSBNTVVFWFRfUElOX0wyX1RB
QkxFICAgICAgMQorI2RlZmluZSBNTVVFWFRfUElOX0wzX1RBQkxFICAgICAgMgorI2RlZmluZSBN
TVVFWFRfUElOX0w0X1RBQkxFICAgICAgMworI2RlZmluZSBNTVVFWFRfVU5QSU5fVEFCTEUgICAg
ICAgNAorI2RlZmluZSBNTVVFWFRfTkVXX0JBU0VQVFIgICAgICAgNQorI2RlZmluZSBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMICAgNgorI2RlZmluZSBNTVVFWFRfSU5WTFBHX0xPQ0FMICAgICAgNwor
I2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX01VTFRJICAgOAorI2RlZmluZSBNTVVFWFRfSU5WTFBH
X01VTFRJICAgICAgOQorI2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX0FMTCAgICAxMAorI2RlZmlu
ZSBNTVVFWFRfSU5WTFBHX0FMTCAgICAgICAxMQorI2RlZmluZSBNTVVFWFRfRkxVU0hfQ0FDSEUg
ICAgICAxMgorI2RlZmluZSBNTVVFWFRfU0VUX0xEVCAgICAgICAgICAxMworI2RlZmluZSBNTVVF
WFRfTkVXX1VTRVJfQkFTRVBUUiAxNQorI2RlZmluZSBNTVVFWFRfQ0xFQVJfUEFHRSAgICAgICAx
NgorI2RlZmluZSBNTVVFWFRfQ09QWV9QQUdFICAgICAgICAxNworI2RlZmluZSBNTVVFWFRfRkxV
U0hfQ0FDSEVfR0xPQkFMIDE4CisjZGVmaW5lIE1NVUVYVF9NQVJLX1NVUEVSICAgICAgIDE5Cisj
ZGVmaW5lIE1NVUVYVF9VTk1BUktfU1VQRVIgICAgIDIwCisvKiBgIH0gKi8KKworI2lmbmRlZiBf
X0FTU0VNQkxZX18KK3N0cnVjdCBtbXVleHRfb3AgeworICAgIHVuc2lnbmVkIGludCBjbWQ7IC8q
ID0+IGVudW0gbW11ZXh0X2NtZCAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLyogW1VOXVBJTl9U
QUJMRSwgTkVXX0JBU0VQVFIsIE5FV19VU0VSX0JBU0VQVFIKKyAgICAgICAgICogQ0xFQVJfUEFH
RSwgQ09QWV9QQUdFLCBbVU5dTUFSS19TVVBFUiAqLworICAgICAgICB4ZW5fcGZuX3QgICAgIG1m
bjsKKyAgICAgICAgLyogSU5WTFBHX0xPQ0FMLCBJTlZMUEdfQUxMLCBTRVRfTERUICovCisgICAg
ICAgIFVMT05HX1BUUiBsaW5lYXJfYWRkcjsKKyAgICB9IGFyZzE7CisgICAgdW5pb24geworICAg
ICAgICAvKiBTRVRfTERUICovCisgICAgICAgIHVuc2lnbmVkIGludCBucl9lbnRzOworICAgICAg
ICAvKiBUTEJfRkxVU0hfTVVMVEksIElOVkxQR19NVUxUSSAqLworI2lmIF9fWEVOX0lOVEVSRkFD
RV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwNQorICAgICAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0
X3ZvaWQpIHZjcHVtYXNrOworI2Vsc2UKKyAgICAgICAgY29uc3Qgdm9pZCAqdmNwdW1hc2s7Cisj
ZW5kaWYKKyAgICAgICAgLyogQ09QWV9QQUdFICovCisgICAgICAgIHhlbl9wZm5fdCBzcmNfbWZu
OworICAgIH0gYXJnMjsKK307Cit0eXBlZGVmIHN0cnVjdCBtbXVleHRfb3AgbW11ZXh0X29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CisjZW5kaWYKKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhV
TE9OR19QVFIgdmEsIHU2NCB2YWwsCisgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW51bSB1dm1fZmxhZ3MgZmxhZ3MpCisgKiBgCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBg
IEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oVUxPTkdfUFRSIHZhLCB1
NjQgdmFsLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dW0gdXZtX2ZsYWdzIGZsYWdzLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbWlkX3QgZG9taWQpCisgKiBgCisgKiBgIEB2YTogVGhlIHZpcnR1YWwgYWRk
cmVzcyB3aG9zZSBtYXBwaW5nIHdlIHdhbnQgdG8gY2hhbmdlCisgKiBgIEB2YWw6IFRoZSBuZXcg
cGFnZSB0YWJsZSBlbnRyeSwgbXVzdCBjb250YWluIGEgbWFjaGluZSBhZGRyZXNzCisgKiBgIEBm
bGFnczogQ29udHJvbCBUTEIgZmx1c2hlcworICovCisvKiBUaGVzZSBhcmUgcGFzc2VkIGFzICdm
bGFncycgdG8gdXBkYXRlX3ZhX21hcHBpbmcuIFRoZXkgY2FuIGJlIE9SZWQuICovCisvKiBXaGVu
IHNwZWNpZnlpbmcgVVZNRl9NVUxUSSwgYWxzbyBPUiBpbiBhIHBvaW50ZXIgdG8gYSBDUFUgYml0
bWFwLiAgICovCisvKiBVVk1GX0xPQ0FMIGlzIG1lcmVseSBVVk1GX01VTFRJIHdpdGggYSBOVUxM
IGJpdG1hcCBwb2ludGVyLiAgICAgICAgICovCisvKiBgIGVudW0gdXZtX2ZsYWdzIHsgKi8KKyNk
ZWZpbmUgVVZNRl9OT05FICAgICAgICAgICAoeGVuX21rX3Vsb25nKDApPDwwKSAvKiBObyBmbHVz
aGluZyBhdCBhbGwuICAgKi8KKyNkZWZpbmUgVVZNRl9UTEJfRkxVU0ggICAgICAoeGVuX21rX3Vs
b25nKDEpPDwwKSAvKiBGbHVzaCBlbnRpcmUgVExCKHMpLiAgKi8KKyNkZWZpbmUgVVZNRl9JTlZM
UEcgICAgICAgICAoeGVuX21rX3Vsb25nKDIpPDwwKSAvKiBGbHVzaCBvbmx5IG9uZSBlbnRyeS4g
Ki8KKyNkZWZpbmUgVVZNRl9GTFVTSFRZUEVfTUFTSyAoeGVuX21rX3Vsb25nKDMpPDwwKQorI2Rl
ZmluZSBVVk1GX01VTFRJICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDIpIC8qIEZsdXNoIHN1
YnNldCBvZiBUTEJzLiAqLworI2RlZmluZSBVVk1GX0xPQ0FMICAgICAgICAgICh4ZW5fbWtfdWxv
bmcoMCk8PDIpIC8qIEZsdXNoIGxvY2FsIFRMQi4gICAgICAqLworI2RlZmluZSBVVk1GX0FMTCAg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAq
LworLyogYCB9ICovCisKKy8qCisgKiBDb21tYW5kcyB0byBIWVBFUlZJU09SX2NvbnNvbGVfaW8o
KS4KKyAqLworI2RlZmluZSBDT05TT0xFSU9fd3JpdGUgICAgICAgICAwCisjZGVmaW5lIENPTlNP
TEVJT19yZWFkICAgICAgICAgIDEKKworLyoKKyAqIENvbW1hbmRzIHRvIEhZUEVSVklTT1Jfdm1f
YXNzaXN0KCkuCisgKi8KKyNkZWZpbmUgVk1BU1NUX0NNRF9lbmFibGUgICAgICAgICAgICAgICAg
MAorI2RlZmluZSBWTUFTU1RfQ01EX2Rpc2FibGUgICAgICAgICAgICAgICAxCisKKy8qIHg4Ni8z
MiBndWVzdHM6IHNpbXVsYXRlIGZ1bGwgNEdCIHNlZ21lbnQgbGltaXRzLiAqLworI2RlZmluZSBW
TUFTU1RfVFlQRV80Z2Jfc2VnbWVudHMgICAgICAgICAwCisKKy8qIHg4Ni8zMiBndWVzdHM6IHRy
YXAgKHZlY3RvciAxNSkgd2hlbmV2ZXIgYWJvdmUgdm1hc3Npc3QgaXMgdXNlZC4gKi8KKyNkZWZp
bmUgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzX25vdGlmeSAgMQorCisvKgorICogeDg2IGd1ZXN0
czogc3VwcG9ydCB3cml0ZXMgdG8gYm90dG9tLWxldmVsIFBURXMuCisgKiBOQjEuIFBhZ2UtZGly
ZWN0b3J5IGVudHJpZXMgY2Fubm90IGJlIHdyaXR0ZW4uCisgKiBOQjIuIEd1ZXN0IG11c3QgY29u
dGludWUgdG8gcmVtb3ZlIGFsbCB3cml0YWJsZSBtYXBwaW5ncyBvZiBQVEVzLgorICovCisjZGVm
aW5lIFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMgIDIKKworLyogeDg2L1BBRSBndWVz
dHM6IHN1cHBvcnQgUERQVHMgYWJvdmUgNEdCLiAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9wYWVf
ZXh0ZW5kZWRfY3IzICAgICAzCisKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJlaGF2aW91ciBm
b3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9tIGRvX2lyZXQo
KSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFt
ZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBmb3IgdGhlIHB1
cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0
dXJhbF9pb3BsICAgNAorCisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAg
ZnJvbSB1c2VyIG1vZGUuCisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNw
ZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVz
IGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5kIHdo
ZW5ldmVyIHRoZSBMNCB0YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNzaW5n
CisgKiAgIG1hcHBpbmcgZ2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBn
ZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAgYXMg
YmVmb3JlLCBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIgb25l
IHRoZQorICogICBtYXBwaW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBF
X20ycF9zdHJpY3QgICAgICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
IDwgMHgwMDA0MDYwMAorI2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAgICAz
CisjZW5kaWYKKworLyogRG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3Qg
YmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4gKi8KKyNkZWZpbmUgRE9NSURfRklSU1RfUkVT
RVJWRUQgeGVuX21rX3VpbnQoMHg3RkYwKQorCisvKiBET01JRF9TRUxGIGlzIHVzZWQgaW4gY2Vy
dGFpbiBjb250ZXh0cyB0byByZWZlciB0byBvbmVzZWxmLiAqLworI2RlZmluZSBET01JRF9TRUxG
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjApCisKKy8qCisgKiBET01JRF9JTyBpcyB1c2Vk
IHRvIHJlc3RyaWN0IHBhZ2UtdGFibGUgdXBkYXRlcyB0byBtYXBwaW5nIEkvTyBtZW1vcnkuCisg
KiBBbHRob3VnaCBubyBGb3JlaWduIERvbWFpbiBuZWVkIGJlIHNwZWNpZmllZCB0byBtYXAgSS9P
IHBhZ2VzLCBET01JRF9JTworICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdz
IHRvIHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKKyAqIGluc3RhbGxlZC4gKGUu
Zy4sIGluIExpbnV4IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwor
ICogYXJlbid0IGFkanVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgorICogVGhp
cyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQg
Y29udGV4dCBjYW4KKyAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKi8K
KyNkZWZpbmUgRE9NSURfSU8gICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYxKQorCisvKgor
ICogRE9NSURfWEVOIGlzIHVzZWQgdG8gYWxsb3cgcHJpdmlsZWdlZCBkb21haW5zIHRvIG1hcCBy
ZXN0cmljdGVkIHBhcnRzIG9mCisgKiBYZW4ncyBoZWFwIHNwYWNlIChlLmcuLCB0aGUgbWFjaGlu
ZV90b19waHlzIHRhYmxlKS4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VU
X0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgorICogdGhlIGNhbGxlciBpcyBw
cml2aWxlZ2VkLgorICovCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGMikKKworLyoKKyAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBzaGFy
YWJsZSBwYWdlcyAqLworI2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgw
eDdGRjMpCisKKy8qIERPTUlEX0lOVkFMSUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRo
IHVua25vd24gb3duZXIuICovCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGNCkKKworLyogSWRsZSBkb21haW4uICovCisjZGVmaW5lIERPTUlEX0lETEUgICAg
ICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlw
ZWRlZiB1aW50MTZfdCBkb21pZF90OworCisvKgorICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0
byBIWVBFUlZJU09SX21tdV91cGRhdGUoKS4KKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBuYXR1cmFs
IHBvaW50ZXIvYWRkcmVzcyBzaXplIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KKyAqLworc3RydWN0
IG1tdV91cGRhdGUgeworICAgIHVpbnQ2NF90IHB0cjsgICAgICAgLyogTWFjaGluZSBhZGRyZXNz
IG9mIFBURS4gKi8KKyAgICB1aW50NjRfdCB2YWw7ICAgICAgIC8qIE5ldyBjb250ZW50cyBvZiBQ
VEUuICAgICovCit9OwordHlwZWRlZiBzdHJ1Y3QgbW11X3VwZGF0ZSBtbXVfdXBkYXRlX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVfdXBkYXRlX3QpOworCisvKgorICogYCBlbnVtIG5l
Z19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX211bHRpY2FsbChtdWx0aWNhbGxfZW50cnlfdCBj
YWxsX2xpc3RbXSwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnJfY2FsbHMp
OworICoKKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBsb2dpY2FsbHkgdGhlIG5hdHVyYWwgcmVnaXN0
ZXIgc2l6ZSBmb3IgdGhpcworICogYXJjaGl0ZWN0dXJlLiBJbiBjYXNlcyB3aGVyZSB4ZW5fdWxv
bmdfdCBpcyBsYXJnZXIgdGhhbiB0aGlzIHRoZW4KKyAqIGFueSB1bnVzZWQgYml0cyBpbiB0aGUg
dXBwZXIgcG9ydGlvbiBtdXN0IGJlIHplcm8uCisgKi8KK3N0cnVjdCBtdWx0aWNhbGxfZW50cnkg
eworICAgIHhlbl91bG9uZ190IG9wLCByZXN1bHQ7CisgICAgeGVuX3Vsb25nX3QgYXJnc1s2XTsK
K307Cit0eXBlZGVmIHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgbXVsdGljYWxsX2VudHJ5X3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtdWx0aWNhbGxfZW50cnlfdCk7CisKKyNpZiBfX1hFTl9J
TlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDQwMAorLyoKKyAqIEV2ZW50IGNoYW5uZWwgZW5k
cG9pbnRzIHBlciBkb21haW4gKHdoZW4gdXNpbmcgdGhlIDItbGV2ZWwgQUJJKToKKyAqICAxMDI0
IGlmIGEgTE9OR19QVFIgaXMgMzIgYml0czsgNDA5NiBpZiBhIExPTkdfUFRSIGlzIDY0IGJpdHMu
CisgKi8KKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxTCisj
ZW5kaWYKKworc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKKyAgICAvKgorICAgICAqIFVwZGF0ZXMg
dG8gdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHByZWNlZGVkIGFuZCBmb2xsb3dlZCBieSBhbgor
ICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhlcmVmb3JlIGRl
dGVjdCB1cGRhdGVzIGJ5CisgICAgICogbG9va2luZyBmb3IgY2hhbmdlcyB0byAndmVyc2lvbicu
IElmIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YKKyAgICAgKiB0aGUgdmVyc2lvbiBudW1i
ZXIgaXMgc2V0IHRoZW4gYW4gdXBkYXRlIGlzIGluIHByb2dyZXNzIGFuZCB0aGUgZ3Vlc3QKKyAg
ICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9mIHZhbHVlcy4KKyAgICAg
KiBUaGUgY29ycmVjdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIgaXMg
c2ltaWxhciB0bworICAgICAqIExpbnV4J3Mgc2VxbG9jazogc2VlIHRoZSBpbXBsZW1lbnRhdGlv
bnMgb2YgcmVhZF9zZXFiZWdpbi9yZWFkX3NlcXJldHJ5LgorICAgICAqLworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgcGFkMDsKKyAgICB1aW50NjRfdCB0c2NfdGltZXN0YW1w
OyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZhbHMuICAqLworICAgIHVpbnQ2NF90
IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3NlY3MsIHNpbmNlIGJvb3QuICAgICov
CisgICAgLyoKKyAgICAgKiBDdXJyZW50IHN5c3RlbSB0aW1lOgorICAgICAqICAgc3lzdGVtX3Rp
bWUgKworICAgICAqICAgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkgKiB0
c2NfdG9fc3lzdGVtX211bCkgPj4gMzIpCisgICAgICogQ1BVIGZyZXF1ZW5jeSAoSHopOgorICAg
ICAqICAgKCgxMF45IDw8IDMyKSAvIHRzY190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQKKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211bDsKKyAgICBpbnQ4X3QgICB0c2Nf
c2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IDB4MDQwNjAwCisgICAgdWlu
dDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsKKyNlbHNlCisgICAgaW50OF90ICAg
cGFkMVszXTsKKyNlbmRpZgorfTsgLyogMzIgYnl0ZXMgKi8KK3R5cGVkZWYgc3RydWN0IHZjcHVf
dGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfVFNDX1NU
QUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9QVkNMT0NLX0dVRVNUX1NUT1BQRUQg
ICAgICAoMSA8PCAxKQorCitzdHJ1Y3QgdmNwdV9pbmZvIHsKKyAgICAvKgorICAgICAqICdldnRj
aG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGljYXRl
CisgICAgICogYSBwZW5kaW5nIG5vdGlmaWNhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIFZDUFUuIEl0
IGlzIHRoZW4gY2xlYXJlZAorICAgICAqIGJ5IHRoZSBndWVzdCBPUyAvYmVmb3JlLyBjaGVja2lu
ZyBmb3IgcGVuZGluZyB3b3JrLCB0aHVzIGF2b2lkaW5nCisgICAgICogYSBzZXQtYW5kLWNoZWNr
IHJhY2UuIE5vdGUgdGhhdCB0aGUgbWFzayBpcyBvbmx5IGFjY2Vzc2VkIGJ5IFhlbgorICAgICAq
IG9uIHRoZSBDUFUgdGhhdCBpcyBjdXJyZW50bHkgaG9zdGluZyB0aGUgVkNQVS4gVGhpcyBtZWFu
cyB0aGF0IHRoZQorICAgICAqIHBlbmRpbmcgYW5kIG1hc2sgZmxhZ3MgY2FuIGJlIHVwZGF0ZWQg
YnkgdGhlIGd1ZXN0IHdpdGhvdXQgc3BlY2lhbAorICAgICAqIHN5bmNocm9uaXNhdGlvbiAoaS5l
Liwgbm8gbmVlZCBmb3IgdGhlIHg4NiBMT0NLIHByZWZpeCkuCisgICAgICogVGhpcyBtYXkgc2Vl
bSBzdWJvcHRpbWFsIGJlY2F1c2UgaWYgdGhlIHBlbmRpbmcgZmxhZyBpcyBzZXQgYnkKKyAgICAg
KiBhIGRpZmZlcmVudCBDUFUgdGhlbiBhbiBJUEkgbWF5IGJlIHNjaGVkdWxlZCBldmVuIHdoZW4g
dGhlIG1hc2sKKyAgICAgKiBpcyBzZXQuIEhvd2V2ZXIsIG5vdGU6CisgICAgICogIDEuIFRoZSB0
YXNrIG9mICdpbnRlcnJ1cHQgaG9sZG9mZicgaXMgY292ZXJlZCBieSB0aGUgcGVyLWV2ZW50LQor
ICAgICAqICAgICBjaGFubmVsIG1hc2sgYml0cy4gQSAnbm9pc3knIGV2ZW50IHRoYXQgaXMgY29u
dGludWFsbHkgYmVpbmcKKyAgICAgKiAgICAgdHJpZ2dlcmVkIGNhbiBiZSBtYXNrZWQgYXQgc291
cmNlIGF0IHRoaXMgdmVyeSBwcmVjaXNlCisgICAgICogICAgIGdyYW51bGFyaXR5LgorICAgICAq
ICAyLiBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoZSBwZXItVkNQVSBtYXNrIGlzIHRoZXJlZm9yZSB0
byByZXN0cmljdAorICAgICAqICAgICByZWVudHJhbnQgZXhlY3V0aW9uOiB3aGV0aGVyIGZvciBj
b25jdXJyZW5jeSBjb250cm9sLCBvciB0bworICAgICAqICAgICBwcmV2ZW50IHVuYm91bmRlZCBz
dGFjayB1c2FnZS4gV2hhdGV2ZXIgdGhlIHB1cnBvc2UsIHdlIGV4cGVjdAorICAgICAqICAgICB0
aGF0IHRoZSBtYXNrIHdpbGwgYmUgYXNzZXJ0ZWQgb25seSBmb3Igc2hvcnQgcGVyaW9kcyBhdCBh
IHRpbWUsCisgICAgICogICAgIGFuZCBzbyB0aGUgbGlrZWxpaG9vZCBvZiBhICdzcHVyaW91cycg
SVBJIGlzIHN1aXRhYmx5IHNtYWxsLgorICAgICAqIFRoZSBtYXNrIGlzIHJlYWQgYmVmb3JlIG1h
a2luZyBhbiBldmVudCB1cGNhbGwgdG8gdGhlIGd1ZXN0OiBhCisgICAgICogbm9uLXplcm8gbWFz
ayB0aGVyZWZvcmUgZ3VhcmFudGVlcyB0aGF0IHRoZSBWQ1BVIHdpbGwgbm90IHJlY2VpdmUKKyAg
ICAgKiBhbiB1cGNhbGwgYWN0aXZhdGlvbi4gVGhlIG1hc2sgaXMgY2xlYXJlZCB3aGVuIHRoZSBW
Q1BVIHJlcXVlc3RzCisgICAgICogdG8gYmxvY2s6IHRoaXMgYXZvaWRzIHdha2V1cC13YWl0aW5n
IHJhY2VzLgorICAgICAqLworICAgIHVpbnQ4X3QgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nOworI2lm
ZGVmIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLCisgICAgdWludDhfdCBldnRjaG5fdXBjYWxsX21h
c2s7CisjZWxzZSAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHVpbnQ4X3QgcGFk
MDsKKyNlbmRpZiAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHhlbl91bG9uZ190
IGV2dGNobl9wZW5kaW5nX3NlbDsKKyAgICBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaDsKKyAg
ICBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gdGltZTsKK307IC8qIDY0IGJ5dGVzICh4ODYpICovCisj
aWZuZGVmIF9fWEVOX18KK3R5cGVkZWYgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2luZm9fdDsKKyNl
bmRpZgorCisvKgorICogYGluY29udGVudHMgMjAwIHN0YXJ0b2ZkYXlfc2hhcmVkIFN0YXJ0LW9m
LWRheSBzaGFyZWQgZGF0YSBzdHJ1Y3R1cmUKKyAqIFhlbi9rZXJuZWwgc2hhcmVkIGRhdGEgLS0g
cG9pbnRlciBwcm92aWRlZCBpbiBzdGFydF9pbmZvLgorICoKKyAqIFRoaXMgc3RydWN0dXJlIGlz
IGRlZmluZWQgdG8gYmUgYm90aCBzbWFsbGVyIHRoYW4gYSBwYWdlLCBhbmQgdGhlCisgKiBvbmx5
IGRhdGEgb24gdGhlIHNoYXJlZCBwYWdlLCBidXQgbWF5IHZhcnkgaW4gYWN0dWFsIHNpemUgZXZl
biB3aXRoaW4KKyAqIGNvbXBhdGlibGUgWGVuIHZlcnNpb25zOyBndWVzdHMgc2hvdWxkIG5vdCBy
ZWx5IG9uIHRoZSBzaXplCisgKiBvZiB0aGlzIHN0cnVjdHVyZSByZW1haW5pbmcgY29uc3RhbnQu
CisgKi8KK3N0cnVjdCBzaGFyZWRfaW5mbyB7CisgICAgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2lu
Zm9bWEVOX0xFR0FDWV9NQVhfVkNQVVNdOworCisgICAgLyoKKyAgICAgKiBBIGRvbWFpbiBjYW4g
Y3JlYXRlICJldmVudCBjaGFubmVscyIgb24gd2hpY2ggaXQgY2FuIHNlbmQgYW5kIHJlY2VpdmUK
KyAgICAgKiBhc3luY2hyb25vdXMgZXZlbnQgbm90aWZpY2F0aW9ucy4gVGhlcmUgYXJlIHRocmVl
IGNsYXNzZXMgb2YgZXZlbnQgdGhhdAorICAgICAqIGFyZSBkZWxpdmVyZWQgYnkgdGhpcyBtZWNo
YW5pc206CisgICAgICogIDEuIEJpLWRpcmVjdGlvbmFsIGludGVyLSBhbmQgaW50cmEtZG9tYWlu
IGNvbm5lY3Rpb25zLiBEb21haW5zIG11c3QKKyAgICAgKiAgICAgYXJyYW5nZSBvdXQtb2YtYmFu
ZCB0byBzZXQgdXAgYSBjb25uZWN0aW9uICh1c3VhbGx5IGJ5IGFsbG9jYXRpbmcKKyAgICAgKiAg
ICAgYW4gdW5ib3VuZCAnbGlzdGVuZXInIHBvcnQgYW5kIGF2ZXJ0aXNpbmcgdGhhdCB2aWEgYSBz
dG9yYWdlIHNlcnZpY2UKKyAgICAgKiAgICAgc3VjaCBhcyB4ZW5zdG9yZSkuCisgICAgICogIDIu
IFBoeXNpY2FsIGludGVycnVwdHMuIEEgZG9tYWluIHdpdGggc3VpdGFibGUgaGFyZHdhcmUtYWNj
ZXNzCisgICAgICogICAgIHByaXZpbGVnZXMgY2FuIGJpbmQgYW4gZXZlbnQtY2hhbm5lbCBwb3J0
IHRvIGEgcGh5c2ljYWwgaW50ZXJydXB0CisgICAgICogICAgIHNvdXJjZS4KKyAgICAgKiAgMy4g
VmlydHVhbCBpbnRlcnJ1cHRzICgnZXZlbnRzJykuIEEgZG9tYWluIGNhbiBiaW5kIGFuIGV2ZW50
LWNoYW5uZWwKKyAgICAgKiAgICAgcG9ydCB0byBhIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZSwg
c3VjaCBhcyB0aGUgdmlydHVhbC10aW1lcgorICAgICAqICAgICBkZXZpY2Ugb3IgdGhlIGVtZXJn
ZW5jeSBjb25zb2xlLgorICAgICAqCisgICAgICogRXZlbnQgY2hhbm5lbHMgYXJlIGFkZHJlc3Nl
ZCBieSBhICJwb3J0IGluZGV4Ii4gRWFjaCBjaGFubmVsIGlzCisgICAgICogYXNzb2NpYXRlZCB3
aXRoIHR3byBiaXRzIG9mIGluZm9ybWF0aW9uOgorICAgICAqICAxLiBQRU5ESU5HIC0tIG5vdGlm
aWVzIHRoZSBkb21haW4gdGhhdCB0aGVyZSBpcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uCisgICAg
ICogICAgIHRvIGJlIHByb2Nlc3NlZC4gVGhpcyBiaXQgaXMgY2xlYXJlZCBieSB0aGUgZ3Vlc3Qu
CisgICAgICogIDIuIE1BU0sgLS0gaWYgdGhpcyBiaXQgaXMgY2xlYXIgdGhlbiBhIDAtPjEgdHJh
bnNpdGlvbiBvZiBQRU5ESU5HCisgICAgICogICAgIHdpbGwgY2F1c2UgYW4gYXN5bmNocm9ub3Vz
IHVwY2FsbCB0byBiZSBzY2hlZHVsZWQuIFRoaXMgYml0IGlzIG9ubHkKKyAgICAgKiAgICAgdXBk
YXRlZCBieSB0aGUgZ3Vlc3QuIEl0IGlzIHJlYWQtb25seSB3aXRoaW4gWGVuLiBJZiBhIGNoYW5u
ZWwKKyAgICAgKiAgICAgYmVjb21lcyBwZW5kaW5nIHdoaWxlIHRoZSBjaGFubmVsIGlzIG1hc2tl
ZCB0aGVuIHRoZSAnZWRnZScgaXMgbG9zdAorICAgICAqICAgICAoaS5lLiwgd2hlbiB0aGUgY2hh
bm5lbCBpcyB1bm1hc2tlZCwgdGhlIGd1ZXN0IG11c3QgbWFudWFsbHkgaGFuZGxlCisgICAgICog
ICAgIHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhcyBubyB1cGNhbGwgd2lsbCBiZSBzY2hlZHVsZWQg
YnkgWGVuKS4KKyAgICAgKgorICAgICAqIFRvIGV4cGVkaXRlIHNjYW5uaW5nIG9mIHBlbmRpbmcg
bm90aWZpY2F0aW9ucywgYW55IDAtPjEgcGVuZGluZworICAgICAqIHRyYW5zaXRpb24gb24gYW4g
dW5tYXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCisgICAgICog
cGVyLXZjcHUgc2VsZWN0b3Igd29yZCB0byBiZSBzZXQuIEVhY2ggYml0IGluIHRoZSBzZWxlY3Rv
ciBjb3ZlcnMgYQorICAgICAqICdDIExPTkdfUFRSJyBpbiB0aGUgUEVORElORyBiaXRmaWVsZCBh
cnJheS4KKyAgICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBldnRjaG5fcGVuZGluZ1tzaXplb2YoeGVu
X3Vsb25nX3QpICogOF07CisgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX21hc2tbc2l6ZW9mKHhlbl91
bG9uZ190KSAqIDhdOworCisgICAgLyoKKyAgICAgKiBXYWxsY2xvY2sgdGltZTogdXBkYXRlZCBv
bmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQorICAgICAqIHRoZWly
IGdldHRpbWVvZmRheSgpIHN5c2NhbGwgb24gdGhpcyB3YWxsY2xvY2stYmFzZSB2YWx1ZS4KKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB3Y192ZXJzaW9uOyAgICAgIC8qIFZlcnNpb24gY291bnRlcjog
c2VlIHZjcHVfdGltZV9pbmZvX3QuICovCisgICAgdWludDMyX3Qgd2Nfc2VjOyAgICAgICAgICAv
KiBTZWNzICAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KKyAgICB1aW50MzJfdCB3Y19u
c2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworI2lm
ICFkZWZpbmVkKF9faTM4Nl9fKQorICAgIHVpbnQzMl90IHdjX3NlY19oaTsKKyMgZGVmaW5lIHhl
bl93Y19zZWNfaGkgd2Nfc2VjX2hpCisjZWxpZiAhZGVmaW5lZChfX1hFTl9fKSAmJiAhZGVmaW5l
ZChfX1hFTl9UT09MU19fKQorIyBkZWZpbmUgeGVuX3djX3NlY19oaSBhcmNoLndjX3NlY19oaQor
I2VuZGlmCisKKyAgICBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOworCit9OworI2lmbmRl
ZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCBzaGFyZWRfaW5mbyBzaGFyZWRfaW5mb190OworI2Vu
ZGlmCisKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheSBTdGFydC1vZi1kYXkgbWVt
b3J5IGxheW91dAorICoKKyAqICAxLiBUaGUgZG9tYWluIGlzIHN0YXJ0ZWQgd2l0aGluIGNvbnRp
Z3VvdXMgdmlydHVhbC1tZW1vcnkgcmVnaW9uLgorICogIDIuIFRoZSBjb250aWd1b3VzIHJlZ2lv
biBlbmRzIG9uIGFuIGFsaWduZWQgNE1CIGJvdW5kYXJ5LgorICogIDMuIFRoaXMgdGhlIG9yZGVy
IG9mIGJvb3RzdHJhcCBlbGVtZW50cyBpbiB0aGUgaW5pdGlhbCB2aXJ0dWFsIHJlZ2lvbjoKKyAq
ICAgICAgYS4gcmVsb2NhdGVkIGtlcm5lbCBpbWFnZQorICogICAgICBiLiBpbml0aWFsIHJhbSBk
aXNrICAgICAgICAgICAgICBbbW9kX3N0YXJ0LCBtb2RfbGVuXQorICogICAgICAgICAobWF5IGJl
IG9taXR0ZWQpCisgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2UgZnJhbWVzIFttZm5f
bGlzdCwgbnJfcGFnZXNdCisgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1ZSB0byBYRU5f
RUxGTk9URV9JTklUX1AyTSkKKyAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0cnVjdHVyZSAgICAg
ICAgW3JlZ2lzdGVyIEVTSSAoeDg2KV0KKyAqICAgICAgICAgaW4gY2FzZSBvZiBkb20wIHRoaXMg
cGFnZSBjb250YWlucyB0aGUgY29uc29sZSBpbmZvLCB0b28KKyAqICAgICAgZS4gdW5sZXNzIGRv
bTA6IHhlbnN0b3JlIHJpbmcgcGFnZQorICogICAgICBmLiB1bmxlc3MgZG9tMDogY29uc29sZSBy
aW5nIHBhZ2UKKyAqICAgICAgZy4gYm9vdHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jh
c2UgYW5kIENSMyAoeDg2KV0KKyAqICAgICAgaC4gYm9vdHN0cmFwIHN0YWNrICAgICAgICAgICAg
ICAgW3JlZ2lzdGVyIEVTUCAoeDg2KV0KKyAqICA0LiBCb290c3RyYXAgZWxlbWVudHMgYXJlIHBh
Y2tlZCB0b2dldGhlciwgYnV0IGVhY2ggaXMgNGtCLWFsaWduZWQuCisgKiAgNS4gVGhlIGxpc3Qg
b2YgcGFnZSBmcmFtZXMgZm9ybXMgYSBjb250aWd1b3VzICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9y
eQorICogICAgIGxheW91dCBmb3IgdGhlIGRvbWFpbi4gSW4gcGFydGljdWxhciwgdGhlIGJvb3Rz
dHJhcCB2aXJ0dWFsLW1lbW9yeQorICogICAgIHJlZ2lvbiBpcyBhIDE6MSBtYXBwaW5nIHRvIHRo
ZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWFwLgorICogIDYuIEFsbCBi
b290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3Qg
T1MuIFRoZQorICogICAgIG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJs
ZSwgd2hpY2ggaXMgbWFwcGVkIHJlYWQtb25seS4KKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVk
IHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBhZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCisgKiAgICAgYm9v
dHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vzc2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lv
biBpcworICogICAgIGV4dGVuZGVkIGJ5IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KKyAq
CisgKiBOb3RlOiBQcmlvciB0byAyNTgzMzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFk
anVzdCBEb20wIGluaXRpYWwgcGFnZQorICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRo
ZSBwdF9iYXNlICgzLmcgYWJvdmUpIGFuZCBjcjMgdG8gbm90IHBvaW50CisgKiB0byB0aGUgc3Rh
cnQgb2YgdGhlIGd1ZXN0IHBhZ2UgdGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcyku
CisgKiBUaGlzIG9ubHkgbWFuaWZlc3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxz
IGFuZCBub3QgMzItb24tNjQgZG9tVQorICogb3IgNjQtYml0IGtlcm5lbHMgb2YgYW55IGNvbG91
ci4gVGhlIHBhZ2UgdGFibGVzIGZvciBhIDMyLW9uLTY0IGRvbTAgZ290CisgKiBhbGxvY2F0ZWQg
aW4gdGhlIG9yZGVyOiAnZmlyc3QgTDEnLCdmaXJzdCBMMicsICdmaXJzdCBMMycsIHNvIHRoZSBv
ZmZzZXQKKyAqIHRvIHRoZSBwYWdlIHRhYmxlIGJhc2UgaXMgYnkgdHdvIHBhZ2VzIGJhY2suIFRo
ZSBpbml0aWFsIGRvbWFpbiBpZiBpdCBpcworICogMzItYml0IGFuZCBydW5zIHVuZGVyIGEgNjQt
Yml0IGh5cGVydmlzb3Igc2hvdWxkIF9OT1RfIHVzZSB0d28gb2YgdGhlCisgKiBwYWdlcyBwcmVj
ZWRpbmcgcHRfYmFzZSBhbmQgbWFyayB0aGVtIGFzIHJlc2VydmVkL3VudXNlZC4KKyAqLworI2lm
ZGVmIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZCitzdHJ1Y3Qgc3RhcnRfaW5mbyB7CisgICAgLyog
VEhFIEZPTExPV0lORyBBUkUgRklMTEVEIElOIEJPVEggT04gSU5JVElBTCBCT09UIEFORCBPTiBS
RVNVTUUuICAgICovCisgICAgY2hhciBtYWdpY1szMl07ICAgICAgICAgICAgIC8qICJ4ZW4tPHZl
cnNpb24+LTxwbGF0Zm9ybT4iLiAgICAgICAgICAgICovCisgICAgVUxPTkdfUFRSIG5yX3BhZ2Vz
OyAgICAgLyogVG90YWwgcGFnZXMgYWxsb2NhdGVkIHRvIHRoaXMgZG9tYWluLiAgKi8KKyAgICBV
TE9OR19QVFIgc2hhcmVkX2luZm87ICAvKiBNQUNISU5FIGFkZHJlc3Mgb2Ygc2hhcmVkIGluZm8g
c3RydWN0LiAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAvKiBTSUZfeHh4IGZs
YWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHhlbl9wZm5fdCBzdG9yZV9tZm47
ICAgICAgICAvKiBNQUNISU5FIHBhZ2UgbnVtYmVyIG9mIHNoYXJlZCBwYWdlLiAgICAqLworICAg
IHVpbnQzMl90IHN0b3JlX2V2dGNobjsgICAgICAvKiBFdmVudCBjaGFubmVsIGZvciBzdG9yZSBj
b21tdW5pY2F0aW9uLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHhlbl9wZm5fdCBtZm47ICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBjb25zb2xl
IHBhZ2UuICAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90ICBldnRjaG47ICAgLyogRXZlbnQgY2hh
bm5lbCBmb3IgY29uc29sZSBwYWdlLiAgICAgICAgKi8KKyAgICAgICAgfSBkb21VOworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgaW5mb19vZmY7ICAvKiBPZmZzZXQgb2Yg
Y29uc29sZV9pbmZvIHN0cnVjdC4gICAgICAgICAqLworICAgICAgICAgICAgdWludDMyX3QgaW5m
b19zaXplOyAvKiBTaXplIG9mIGNvbnNvbGVfaW5mbyBzdHJ1Y3QgZnJvbSBzdGFydC4qLworICAg
ICAgICB9IGRvbTA7CisgICAgfSBjb25zb2xlOworICAgIC8qIFRIRSBGT0xMT1dJTkcgQVJFIE9O
TFkgRklMTEVEIElOIE9OIElOSVRJQUwgQk9PVCAoTk9UIFJFU1VNRSkuICAgICAqLworICAgIFVM
T05HX1BUUiBwdF9iYXNlOyAgICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwYWdlIGRpcmVjdG9y
eS4gICAgICovCisgICAgVUxPTkdfUFRSIG5yX3B0X2ZyYW1lczsgLyogTnVtYmVyIG9mIGJvb3Rz
dHJhcCBwLnQuIGZyYW1lcy4gICAgICAgKi8KKyAgICBVTE9OR19QVFIgbWZuX2xpc3Q7ICAgICAv
KiBWSVJUVUFMIGFkZHJlc3Mgb2YgcGFnZS1mcmFtZSBsaXN0LiAgICAqLworICAgIFVMT05HX1BU
UiBtb2Rfc3RhcnQ7ICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwcmUtbG9hZGVkIG1vZHVsZSAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChQRk4gb2YgcHJlLWxvYWRl
ZCBtb2R1bGUgaWYgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICBTSUZfTU9EX1NUQVJUX1BGTiBzZXQgaW4gZmxhZ3MpLiAgICAgICovCisgICAgVUxPTkdf
UFRSIG1vZF9sZW47ICAgICAgLyogU2l6ZSAoYnl0ZXMpIG9mIHByZS1sb2FkZWQgbW9kdWxlLiAg
ICAgKi8KKyNkZWZpbmUgTUFYX0dVRVNUX0NNRExJTkUgMTAyNAorICAgIGludDhfdCBjbWRfbGlu
ZVtNQVhfR1VFU1RfQ01ETElORV07CisgICAgLyogVGhlIHBmbiByYW5nZSBoZXJlIGNvdmVycyBi
b3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFibGUgZnJhbWVzLiAgICovCisgICAgVUxPTkdfUFRS
IGZpcnN0X3AybV9wZm47LyogMXN0IHBmbiBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICAg
Ki8KKyAgICBVTE9OR19QVFIgbnJfcDJtX2ZyYW1lczsvKiAjIG9mIHBmbnMgZm9ybWluZyBpbml0
aWFsIFAtPk0gdGFibGUuICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3RhcnRf
aW5mb190OworCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1
ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQgcGh5
c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVzcyBm
aWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1hZ2lj
IHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAgICAg
fCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhpcyBz
dHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4K
KyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJRl94
eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxlcyAg
ICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJlc3Mg
b2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlvdXQg
b2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg
IHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUs
CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5n
LgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwgUGh5
c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRoZSBt
b2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUg
bW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAgICAg
IHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFu
ZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFTQ0lJ
IHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAgICAg
ICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQgc2l6
ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4KKyAq
CisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBkYXRh
IGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NUQVJU
X01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKworLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRvbTAg
aW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O
X18gPCAweDAwMDMwMjAzCisjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5tZm4K
KyNkZWZpbmUgY29uc29sZV9ldnRjaG4gY29uc29sZS5kb21VLmV2dGNobgorI2VuZGlmCisjZW5k
aWYgLyogWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkgKi8KKworLyogVGhlc2UgZmxhZ3MgYXJlIHBh
c3NlZCBpbiB0aGUgJ2ZsYWdzJyBmaWVsZCBvZiBzdGFydF9pbmZvX3QuICovCisjZGVmaW5lIFNJ
Rl9QUklWSUxFR0VEICAgICgxPDwwKSAgLyogSXMgdGhlIGRvbWFpbiBwcml2aWxlZ2VkPyAqLwor
I2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAoMTw8MSkgIC8qIElzIHRoaXMgdGhlIGluaXRpYWwg
Y29udHJvbCBkb21haW4/ICovCisjZGVmaW5lIFNJRl9NVUxUSUJPT1RfTU9EICgxPDwyKSAgLyog
SXMgbW9kX3N0YXJ0IGEgbXVsdGlib290IG1vZHVsZT8gKi8KKyNkZWZpbmUgU0lGX01PRF9TVEFS
VF9QRk4gKDE8PDMpICAvKiBJcyBtb2Rfc3RhcnQgYSBQRk4/ICovCisjZGVmaW5lIFNJRl9WSVJU
X1AyTV80VE9PTFMgKDE8PDQpIC8qIERvIFhlbiB0b29scyB1bmRlcnN0YW5kIGEgdmlydC4gbWFw
cGVkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFAtPk0gbWFraW5n
IHRoZSAzIGxldmVsIHRyZWUgb2Jzb2xldGU/ICovCisjZGVmaW5lIFNJRl9QTV9NQVNLICAgICAg
ICgweEZGPDw4KSAvKiByZXNlcnZlIDEgYnl0ZSBmb3IgeGVuLXBtIG9wdGlvbnMgKi8KKworLyoK
KyAqIEEgbXVsdGlib290IG1vZHVsZSBpcyBhIHBhY2thZ2UgY29udGFpbmluZyBtb2R1bGVzIHZl
cnkgc2ltaWxhciB0byBhCisgKiBtdWx0aWJvb3QgbW9kdWxlIGFycmF5LiBUaGUgb25seSBkaWZm
ZXJlbmNlcyBhcmU6CisgKiAtIHRoZSBhcnJheSBvZiBtb2R1bGUgZGVzY3JpcHRvcnMgaXMgYnkg
Y29udmVudGlvbiBzaW1wbHkgYXQgdGhlIGJlZ2lubmluZworICogICBvZiB0aGUgbXVsdGlib290
IG1vZHVsZSwKKyAqIC0gYWRkcmVzc2VzIGluIHRoZSBtb2R1bGUgZGVzY3JpcHRvcnMgYXJlIGJh
c2VkIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgKiAgIG11bHRpYm9vdCBtb2R1bGUsCisgKiAt
IHRoZSBudW1iZXIgb2YgbW9kdWxlcyBpcyBkZXRlcm1pbmVkIGJ5IGEgdGVybWluYXRpb24gZGVz
Y3JpcHRvciB0aGF0IGhhcworICogICBtb2Rfc3RhcnQgPT0gMC4KKyAqCisgKiBUaGlzIHBlcm1p
dHMgdG8gYm90aCBidWlsZCBpdCBzdGF0aWNhbGx5IGFuZCByZWZlcmVuY2UgaXQgaW4gYSBjb25m
aWd1cmF0aW9uCisgKiBmaWxlLCBhbmQgbGV0IHRoZSBQViBndWVzdCBlYXNpbHkgcmViYXNlIHRo
ZSBhZGRyZXNzZXMgdG8gdmlydHVhbCBhZGRyZXNzZXMKKyAqIGFuZCBhdCB0aGUgc2FtZSB0aW1l
IGNvdW50IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4KKyAqLworc3RydWN0IHhlbl9tdWx0aWJvb3Rf
bW9kX2xpc3QKK3sKKyAgICAvKiBBZGRyZXNzIG9mIGZpcnN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAq
LworICAgIHVpbnQzMl90IG1vZF9zdGFydDsKKyAgICAvKiBBZGRyZXNzIG9mIGxhc3QgYnl0ZSBv
ZiB0aGUgbW9kdWxlIChpbmNsdXNpdmUpICovCisgICAgdWludDMyX3QgbW9kX2VuZDsKKyAgICAv
KiBBZGRyZXNzIG9mIHplcm8tdGVybWluYXRlZCBjb21tYW5kIGxpbmUgKi8KKyAgICB1aW50MzJf
dCBjbWRsaW5lOworICAgIC8qIFVudXNlZCwgbXVzdCBiZSB6ZXJvICovCisgICAgdWludDMyX3Qg
cGFkOworfTsKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheV9kb20wX2NvbnNvbGUg
RG9tMF9jb25zb2xlCisgKgorICogVGhlIGNvbnNvbGUgc3RydWN0dXJlIGluIHN0YXJ0X2luZm8u
Y29uc29sZS5kb20wCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgaW5jbHVkZXMgYSB2YXJpZXR5IG9m
IGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvCisgKiBoYXZlIGEgd29ya2luZyBWR0EvVkVTQSBjb25z
b2xlLgorICovCit0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25zb2xlX2luZm8geworICAgIHVp
bnQ4X3QgdmlkZW9fdHlwZTsgLyogRE9NMF9WR0FfQ09OU09MRV8/Pz8gKi8KKyNkZWZpbmUgWEVO
X1ZHQVRZUEVfVEVYVF9NT0RFXzMgMHgwMworI2RlZmluZSBYRU5fVkdBVFlQRV9WRVNBX0xGQiAg
ICAweDIzCisjZGVmaW5lIFhFTl9WR0FUWVBFX0VGSV9MRkIgICAgIDB4NzAKKworICAgIHVuaW9u
IHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIEZvbnQgaGVpZ2h0LCBpbiBwaXhl
bHMuICovCisgICAgICAgICAgICB1aW50MTZfdCBmb250X2hlaWdodDsKKyAgICAgICAgICAgIC8q
IEN1cnNvciBsb2NhdGlvbiAoY29sdW1uLCByb3cpLiAqLworICAgICAgICAgICAgdWludDE2X3Qg
Y3Vyc29yX3gsIGN1cnNvcl95OworICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJvd3MgYW5kIGNv
bHVtbnMgKGRpbWVuc2lvbnMgaW4gY2hhcmFjdGVycykuICovCisgICAgICAgICAgICB1aW50MTZf
dCByb3dzLCBjb2x1bW5zOworICAgICAgICB9IHRleHRfbW9kZV8zOworCisgICAgICAgIHN0cnVj
dCB7CisgICAgICAgICAgICAvKiBXaWR0aCBhbmQgaGVpZ2h0LCBpbiBwaXhlbHMuICovCisgICAg
ICAgICAgICB1aW50MTZfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgLyogQnl0ZXMgcGVy
IHNjYW4gbGluZS4gKi8KKyAgICAgICAgICAgIHVpbnQxNl90IGJ5dGVzX3Blcl9saW5lOworICAg
ICAgICAgICAgLyogQml0cyBwZXIgcGl4ZWwuICovCisgICAgICAgICAgICB1aW50MTZfdCBiaXRz
X3Blcl9waXhlbDsKKyAgICAgICAgICAgIC8qIExGQiBwaHlzaWNhbCBhZGRyZXNzLCBhbmQgc2l6
ZSAoaW4gdW5pdHMgb2YgNjRrQikuICovCisgICAgICAgICAgICB1aW50MzJfdCBsZmJfYmFzZTsK
KyAgICAgICAgICAgIHVpbnQzMl90IGxmYl9zaXplOworICAgICAgICAgICAgLyogUkdCIG1hc2sg
b2Zmc2V0cyBhbmQgc2l6ZXMsIGFzIGRlZmluZWQgYnkgVkJFIDEuMisgKi8KKyAgICAgICAgICAg
IHVpbnQ4X3QgIHJlZF9wb3MsIHJlZF9zaXplOworICAgICAgICAgICAgdWludDhfdCAgZ3JlZW5f
cG9zLCBncmVlbl9zaXplOworICAgICAgICAgICAgdWludDhfdCAgYmx1ZV9wb3MsIGJsdWVfc2l6
ZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgIHJzdmRfcG9zLCByc3ZkX3NpemU7CisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA2CisgICAgICAgICAgICAvKiBWRVNBIGNh
cGFiaWxpdGllcyAob2Zmc2V0IDB4YSwgVkVTQSBjb21tYW5kIDB4NGYwMCkuICovCisgICAgICAg
ICAgICB1aW50MzJfdCBnYmxfY2FwczsKKyAgICAgICAgICAgIC8qIE1vZGUgYXR0cmlidXRlcyAo
b2Zmc2V0IDB4MCwgVkVTQSBjb21tYW5kIDB4NGYwMSkuICovCisgICAgICAgICAgICB1aW50MTZf
dCBtb2RlX2F0dHJzOworI2VuZGlmCisgICAgICAgIH0gdmVzYV9sZmI7CisgICAgfSB1OworfSBk
b20wX3ZnYV9jb25zb2xlX2luZm9fdDsKKyNkZWZpbmUgeGVuX3ZnYV9jb25zb2xlX2luZm8gZG9t
MF92Z2FfY29uc29sZV9pbmZvCisjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvX3QgZG9tMF92
Z2FfY29uc29sZV9pbmZvX3QKKwordHlwZWRlZiB1aW50OF90IHhlbl9kb21haW5faGFuZGxlX3Rb
MTZdOworCitfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ4LCAgdWludDhfdCk7CitfX0RF
RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwgdWludDE2X3QpOworX19ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0LCB1aW50NjRfdCk7CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKy8qIERl
ZmF1bHQgZGVmaW5pdGlvbnMgZm9yIG1hY3JvcyB1c2VkIGJ5IGRvbWN0bC9zeXNjdGwuICovCisj
aWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYg
aW50NjRfYWxpZ25lZF90CisjZGVmaW5lIGludDY0X2FsaWduZWRfdCBpbnQ2NF90CisjZW5kaWYK
KyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2
NF90CisjZW5kaWYKKyNpZm5kZWYgWEVOX0dVRVNUX0hBTkRMRV82NAorI2RlZmluZSBYRU5fR1VF
U1RfSEFORExFXzY0KG5hbWUpIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKKyNlbmRpZgorCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHhlbmN0bF9iaXRtYXAgeworICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQodWludDgpIGJpdG1hcDsKKyAgICB1aW50MzJfdCBucl9iaXRzOworfTsKKyNlbmRp
ZgorCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVOX0hfXyAqLworCisvKgorICogTG9jYWwg
dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp
Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYyBiL3NyYy94ZW5u
ZXQvcmVjZWl2ZXIuYwppbmRleCA4NDNkZjJiLi45NjRjYTkwIDEwMDY0NAotLS0gYS9zcmMveGVu
bmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlIDxuZGlzLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KKyNpbmNsdWRlIDx4
ZW4uaD4KIAogI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJyZWNlaXZlci5oIgpAQCAtNDIs
OCArNDMsNyBAQCBzdHJ1Y3QgX1hFTk5FVF9SRUNFSVZFUiB7CiAgICAgUFhFTk5FVF9BREFQVEVS
ICAgICAgICAgICAgIEFkYXB0ZXI7CiAgICAgTkRJU19IQU5ETEUgICAgICAgICAgICAgICAgIE5l
dEJ1ZmZlckxpc3RQb29sOwogICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBQdXRMaXN0
OwotICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBHZXRMaXN0OwotICAgIEtTUElOX0xP
Q0sgICAgICAgICAgICAgICAgICBMb2NrOworICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAg
ICBHZXRMaXN0W0hWTV9NQVhfVkNQVVNdOwogICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAg
ICBJbk5ESVM7CiAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIEluTkRJU01heDsKICAg
ICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgT2ZmbG9hZE9wdGlvbnM7CkBAIC02NywyMCAr
NjcsMjIgQEAgX19SZWNlaXZlckFsbG9jYXRlTmV0QnVmZmVyTGlzdCgKICAgICBJTiAgUFZPSUQg
ICAgICAgICAgICAgICAgICAgQ29va2llCiAgICAgKQogeworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKICAgICBQTkVUX0JVRkZFUl9MSVNUICAgICAgICAgICAgTmV0QnVm
ZmVyTGlzdDsKICAgICBQTkVUX0JVRkZFUl9MSVNUX1JFU0VSVkVEICAgTGlzdFJlc2VydmVkOwog
CiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVWRUwpOwot
ICAgIEtlQWNxdWlyZVNwaW5Mb2NrQXREcGNMZXZlbCgmUmVjZWl2ZXItPkxvY2spOwogCi0gICAg
aWYgKFJlY2VpdmVyLT5HZXRMaXN0ID09IE5VTEwpCi0gICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0
ID0gSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsK
KyAgICBJbmRleCA9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4KE5VTEwpOwogCi0gICAg
TmV0QnVmZmVyTGlzdCA9IFJlY2VpdmVyLT5HZXRMaXN0OworICAgIGlmIChSZWNlaXZlci0+R2V0
TGlzdFtJbmRleF0gPT0gTlVMTCkKKyAgICAgICAgUmVjZWl2ZXItPkdldExpc3RbSW5kZXhdID0g
SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsKKwor
ICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAgICAgaWYgKE5l
dEJ1ZmZlckxpc3QgIT0gTlVMTCkgewogICAgICAgICBQTkVUX0JVRkZFUiBOZXRCdWZmZXI7CiAK
LSAgICAgICAgUmVjZWl2ZXItPkdldExpc3QgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwoTmV0
QnVmZmVyTGlzdCk7CisgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0W0luZGV4XSA9IE5FVF9CVUZG
RVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9MSVNU
X05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsKIAogICAgICAgICBORVRfQlVGRkVSX0xJ
U1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBUY3BJcENoZWNrc3VtTmV0QnVmZmVyTGlzdEluZm8pID0g
TlVMTDsKQEAgLTEwNiw4ICsxMDgsNiBAQCBfX1JlY2VpdmVyQWxsb2NhdGVOZXRCdWZmZXJMaXN0
KAogICAgICAgICBBU1NFUlQoSU1QTFkoTmV0QnVmZmVyTGlzdCAhPSBOVUxMLCBORVRfQlVGRkVS
X0xJU1RfTkVYVF9OQkwoTmV0QnVmZmVyTGlzdCkgPT0gTlVMTCkpOwogICAgIH0KIAotICAgIEtl
UmVsZWFzZVNwaW5Mb2NrRnJvbURwY0xldmVsKCZSZWNlaXZlci0+TG9jayk7Ci0KICAgICBMaXN0
UmVzZXJ2ZWQgPSAoUE5FVF9CVUZGRVJfTElTVF9SRVNFUlZFRClORVRfQlVGRkVSX0xJU1RfTUlO
SVBPUlRfUkVTRVJWRUQoTmV0QnVmZmVyTGlzdCk7CiAgICAgQVNTRVJUM1AoTGlzdFJlc2VydmVk
LT5Db29raWUsID09LCBOVUxMKTsKICAgICBMaXN0UmVzZXJ2ZWQtPkNvb2tpZSA9IENvb2tpZTsK
QEAgLTM0NSw4ICszNDUsNiBAQCBSZWNlaXZlckluaXRpYWxpemUoCiAgICAgaWYgKCgqUmVjZWl2
ZXIpLT5OZXRCdWZmZXJMaXN0UG9vbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwyOwogCi0g
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJigqUmVjZWl2ZXIpLT5Mb2NrKTsKLQogICAgIHJldHVy
biBORElTX1NUQVRVU19TVUNDRVNTOwogCiBmYWlsMjoKQEAgLTM1OSwyMCArMzU3LDI0IEBAIFJl
Y2VpdmVyVGVhcmRvd24oCiAgICAgSU4gIFBYRU5ORVRfUkVDRUlWRVIgICAgUmVjZWl2ZXIKICAg
ICApCiB7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXg7CiAgICAgUE5FVF9CVUZG
RVJfTElTVCAgICAgICAgTmV0QnVmZmVyTGlzdDsKIAogICAgIEFTU0VSVChSZWNlaXZlciAhPSBO
VUxMKTsKIAotICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdDsKLSAgICB3aGls
ZSAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIFBORVRfQlVGRkVSX0xJU1QgICAg
TmV4dDsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBIVk1fTUFYX1ZDUFVTOyBJbmRleCsr
KSB7CisgICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAK
LSAgICAgICAgTmV4dCA9IE5FVF9CVUZGRVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsK
LSAgICAgICAgTkVUX0JVRkZFUl9MSVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsK
KyAgICAgICAgd2hpbGUgKE5ldEJ1ZmZlckxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgUE5F
VF9CVUZGRVJfTElTVCAgICBOZXh0OwogCi0gICAgICAgIE5kaXNGcmVlTmV0QnVmZmVyTGlzdChO
ZXRCdWZmZXJMaXN0KTsKKyAgICAgICAgICAgIE5leHQgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9O
QkwoTmV0QnVmZmVyTGlzdCk7CisgICAgICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwo
TmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCi0gICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBOZXh0Owor
ICAgICAgICAgICAgTmRpc0ZyZWVOZXRCdWZmZXJMaXN0KE5ldEJ1ZmZlckxpc3QpOworCisgICAg
ICAgICAgICBOZXRCdWZmZXJMaXN0ID0gTmV4dDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIE5l
dEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+UHV0TGlzdDsKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDA1
NGI0YTYuLmYwZTkwNzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjMsNyArMjMsNyBAQAogCTxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPiAK
IAogCTxQcm9wZXJ0eUdyb3VwPgotCQk8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1
ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CisJICAgICAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVk
ZTsuLlwuLlxpbmNsdWRlXHhlbjskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CiAJCTxSdW5D
b2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgogCQk8RW5hYmxlSW5mMmNhdD5mYWxz
ZTwvRW5hYmxlSW5mMmNhdD4KIAkJPEludERpcj4uLlwkKFByb2plY3ROYW1lKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDU4
ZjQwMzIuLmNiZTU3ZjUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjAsNyArMjAsNiBAQAogICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CiAgIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgogICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+CiAgICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+CiAgICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+CiAgICAgPEludERpcj4uLlwkKFBy
b2plY3ROYW1lKVwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KQEAg
LTI5LDExICsyOCwxNSBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxl
PgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJ
U19NSU5JUE9SVF9EUklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09Q
VElOPTE7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxp
bmNsdWRlXGttOy4uXC4uXGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwv
V2FybmluZ0xldmVsPgogICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0
ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8
L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRp
b24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQUkVmYXN0
PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29t
cGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhh
c1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxl
cnM+CiAgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5s
aWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:50:01 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:50:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MSk-000630-OJ; Thu, 19 May 2016 11:49:58 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1b3MSj-00062p-2Z
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:49:58 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 A3/8A-03757-468AD375; Thu, 19 May 2016 11:49:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPKsWRWlGSWpSXmKPExsUSd3yrvG7yCtt
 wg/krxCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxq35k5kKpstVzJr1mKWB8bh0FyMXh5DANkaJ
 N78/MncxcnBICChJtDS7QcR3Mkp8+9rG2MXIycEi0MgssaYtBCQhIbCWUWLjjs+MEFUXGSWu9
 e5kQVXFySEskC0x99xKsLiIgKrEteXH2EBsIYFkiW1TbjGB2GwCxhKt55aDbeAXkJX4uHIiWJ
 xXQE2i6/BRJoiZqhJf9p9iArlOVCBcYs12d4gSQYmTM5+AjecU8JC4Nu042D3MAu2MEofbvoD
 tkhAQljiyfyfLBEbhWUh6ZiGrA0kwC3hLdP1rY5qF5KZZSO6eheSmWUh+m4Xkn1lIDoGYqS7x
 Z94lZghbW2LZwtdQtq3EunXvWSBsPYm3v3uhbEuJ9Ts+sS9g5FvFqF6cWlSWWqRrppdUlJmeU
 ZKbmJmja2hoopebWlycmJ6ak5hUrJecn7uJERjxDECwg/HvBOdDjJIcTEqivPOW2YYL8SXlp1
 RmJBZnxBeV5qQWH2KU4eBQkuD9ApITLEpNT61Iy8wBph6YtAQHj5II70yQNG9xQWJucWY6ROo
 Uo6KUOK/FcqCEAEgiozQPrg2W7i4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmJcPZApPZl4J
 3PRXQIuZgBbfErMBWVySiJCSamDUnnON/8jhMxcm5zb9d+13SqzvbGR8tG3nPeO57DKNSpqSh
 w6VrRX89qwytoztXbTQiw8XrJ+9F5dafee99Ib65DOq1z69U/+i2B97tUxfe2Hyu+XaccWRDd
 eMLixSWZS5+pRrm9G+0K8Tj3QlBqyZF7JEoNZxXhf7juqFt5ONbMPLrP/XeEYpsRRnJBpqMRc
 VJwIAXO7Wj3IDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-15.tower-27.messagelabs.com!1463658595!42575999!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57316 invoked from network); 19 May 2016 11:49:55 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-15.tower-27.messagelabs.com with SMTP; 19 May 2016 11:49:55 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 7FFC1403AED
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:54 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 8F2F6403AEE
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463658580; bh=hxyG6NDZvDc3dD0x0K05RZP4qjq88P1CiOQeYP/R/A0=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=IX/tMMlAjYnefoyC0FMBENHwLcDyh4DXl6YlQXTTg1+7qQyzcE4GKcTXZiqqU5+ms
 EL2kyEJwHTGleXYLuFUVEebMoFs5cGz19VCoA91Ug7ExHmZx82g+8Xg7nw3HvyixCj
 haAjEvMFNSfjiKF+C9ST/Xrhwk26Cn4ENBZHqGLg=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 66345403AED
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463658580; bh=hxyG6NDZvDc3dD0x0K05RZP4qjq88P1CiOQeYP/R/A0=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=IX/tMMlAjYnefoyC0FMBENHwLcDyh4DXl6YlQXTTg1+7qQyzcE4GKcTXZiqqU5+ms
 EL2kyEJwHTGleXYLuFUVEebMoFs5cGz19VCoA91Ug7ExHmZx82g+8Xg7nw3HvyixCj
 haAjEvMFNSfjiKF+C9ST/Xrhwk26Cn4ENBZHqGLg=
To: win-pv-devel@lists.xenproject.org
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <573DA854.7020006@etit.hu>
Date: Thu, 19 May 2016 13:49:40 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3699096208783281010=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============3699096208783281010==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA
Content-Type: multipart/mixed; boundary="9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <573DA854.7020006@etit.hu>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
In-Reply-To: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>

--9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.

>> It's more then a month now that the above information had been
>> distributed by Paul.
>>
>> Does anyone has any update on this? When seemes these discussions will=

>> end up in a resolution?
>>
>=20
> Unfortunately I have no meaningful update. Discussions with the Linux F=
oundation seem to have completely stalled. It is most frustrating.

Question: Should I give up the efforts I already made, or is there any
chance that the signed drivers will available in the forseenable future?
What really causes the problem? Is there a chance that the community can
help in the resolution?

>=20
>   Paul
>=20
>> Thx.
>>
>> --
>>
>>
>> =C3=89li=C3=A1s Tam=C3=A1s
>> Thomas Elias
>>
>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi =
specialista
>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>
>> Tel. HU: +36/30-497-1626
>> Tel. DE: +49/160-651-8723
>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>
>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>> Master of Science in Information Technology (MSC)
>>
>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>> Contact: http://etit.hu/index.php/en/contact
>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>=20
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03--

--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXPahUAAoJENWYes1C3s/CHmYP/1lzuxZX8Q/ZPiP1qHIMVPjV
1zUQXIDdeQXgnJBWYwJdmmHyuJZNVQHq0i8Epuek88gR8aSrvnpMtUbighuXPXw8
Dtb/QDs9lt9wJ7Xm66deXG2eMcrJS0zEdanWArrDCKFjWFgusvo/ygsQXH/WVztI
WzsXWDjUIin0SpcfOvDjAOzVmy3cSxakzSQ2QNwZb3xqMWo6jSkGnThECm6EBb4P
pJ/SWlmGMB02CJ4uTUbWyaqcufkrMjsDzj+amNnqLI36/ACVAmdmH85s1J4+eUFZ
Wjcy68qfL0umLPC3RJ+htt0HDQZLlFQMd9hfs3KHplpGJPhiVYq1mcZX8BvhI4Iw
d/3q7W4syQ79/BEABC3sLU80nMKjkbWYrofR6qT9+VxRKSilDP5c93p8njEPsAFV
IXcQqh478r2cgObqJ85AawIsr21VoAk9REdYB9DEZ69tZfYd9l/pe3YnquMEn4cR
huqqZBG8UU9biQ4YIyhhDqv9J8CWQp8jSfbM3c+VxNRpfkUby44wJpPRWWXH7N4p
B54qCk1vRqnEgHt1U9fnTadzYIst0aeDoY1y9paOjhfjH/sFHKZse44MkW9Uggu2
TARGpZqHXax3aBklTxWkjh35TLuQN8He7HI+/NtZCe+lG//ClBy0ii+EUWPyjGJ5
ORHl5a6aip6gsFfDUr2J
=1qru
-----END PGP SIGNATURE-----

--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA--


--===============3699096208783281010==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============3699096208783281010==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 19 11:50:01 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 11:50:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3MSk-000630-OJ; Thu, 19 May 2016 11:49:58 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1b3MSj-00062p-2Z
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 11:49:58 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 A3/8A-03757-468AD375; Thu, 19 May 2016 11:49:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPKsWRWlGSWpSXmKPExsUSd3yrvG7yCtt
 wg/krxCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxq35k5kKpstVzJr1mKWB8bh0FyMXh5DANkaJ
 N78/MncxcnBICChJtDS7QcR3Mkp8+9rG2MXIycEi0MgssaYtBCQhIbCWUWLjjs+MEFUXGSWu9
 e5kQVXFySEskC0x99xKsLiIgKrEteXH2EBsIYFkiW1TbjGB2GwCxhKt55aDbeAXkJX4uHIiWJ
 xXQE2i6/BRJoiZqhJf9p9iArlOVCBcYs12d4gSQYmTM5+AjecU8JC4Nu042D3MAu2MEofbvoD
 tkhAQljiyfyfLBEbhWUh6ZiGrA0kwC3hLdP1rY5qF5KZZSO6eheSmWUh+m4Xkn1lIDoGYqS7x
 Z94lZghbW2LZwtdQtq3EunXvWSBsPYm3v3uhbEuJ9Ts+sS9g5FvFqF6cWlSWWqRrppdUlJmeU
 ZKbmJmja2hoopebWlycmJ6ak5hUrJecn7uJERjxDECwg/HvBOdDjJIcTEqivPOW2YYL8SXlp1
 RmJBZnxBeV5qQWH2KU4eBQkuD9ApITLEpNT61Iy8wBph6YtAQHj5II70yQNG9xQWJucWY6ROo
 Uo6KUOK/FcqCEAEgiozQPrg2W7i4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmJcPZApPZl4J
 3PRXQIuZgBbfErMBWVySiJCSamDUnnON/8jhMxcm5zb9d+13SqzvbGR8tG3nPeO57DKNSpqSh
 w6VrRX89qwytoztXbTQiw8XrJ+9F5dafee99Ib65DOq1z69U/+i2B97tUxfe2Hyu+XaccWRDd
 eMLixSWZS5+pRrm9G+0K8Tj3QlBqyZF7JEoNZxXhf7juqFt5ONbMPLrP/XeEYpsRRnJBpqMRc
 VJwIAXO7Wj3IDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-15.tower-27.messagelabs.com!1463658595!42575999!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57316 invoked from network); 19 May 2016 11:49:55 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-15.tower-27.messagelabs.com with SMTP; 19 May 2016 11:49:55 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 7FFC1403AED
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:54 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 8F2F6403AEE
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463658580; bh=hxyG6NDZvDc3dD0x0K05RZP4qjq88P1CiOQeYP/R/A0=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=IX/tMMlAjYnefoyC0FMBENHwLcDyh4DXl6YlQXTTg1+7qQyzcE4GKcTXZiqqU5+ms
 EL2kyEJwHTGleXYLuFUVEebMoFs5cGz19VCoA91Ug7ExHmZx82g+8Xg7nw3HvyixCj
 haAjEvMFNSfjiKF+C9ST/Xrhwk26Cn4ENBZHqGLg=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 66345403AED
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 13:49:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463658580; bh=hxyG6NDZvDc3dD0x0K05RZP4qjq88P1CiOQeYP/R/A0=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=IX/tMMlAjYnefoyC0FMBENHwLcDyh4DXl6YlQXTTg1+7qQyzcE4GKcTXZiqqU5+ms
 EL2kyEJwHTGleXYLuFUVEebMoFs5cGz19VCoA91Ug7ExHmZx82g+8Xg7nw3HvyixCj
 haAjEvMFNSfjiKF+C9ST/Xrhwk26Cn4ENBZHqGLg=
To: win-pv-devel@lists.xenproject.org
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <573DA854.7020006@etit.hu>
Date: Thu, 19 May 2016 13:49:40 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3699096208783281010=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============3699096208783281010==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA
Content-Type: multipart/mixed; boundary="9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <573DA854.7020006@etit.hu>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
In-Reply-To: <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>

--9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.

>> It's more then a month now that the above information had been
>> distributed by Paul.
>>
>> Does anyone has any update on this? When seemes these discussions will=

>> end up in a resolution?
>>
>=20
> Unfortunately I have no meaningful update. Discussions with the Linux F=
oundation seem to have completely stalled. It is most frustrating.

Question: Should I give up the efforts I already made, or is there any
chance that the signed drivers will available in the forseenable future?
What really causes the problem? Is there a chance that the community can
help in the resolution?

>=20
>   Paul
>=20
>> Thx.
>>
>> --
>>
>>
>> =C3=89li=C3=A1s Tam=C3=A1s
>> Thomas Elias
>>
>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi =
specialista
>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>
>> Tel. HU: +36/30-497-1626
>> Tel. DE: +49/160-651-8723
>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>
>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>> Master of Science in Information Technology (MSC)
>>
>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>> Contact: http://etit.hu/index.php/en/contact
>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>=20
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--9bwotwbxWPqwrQGdMqRG6rIsQ8aX71D03--

--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXPahUAAoJENWYes1C3s/CHmYP/1lzuxZX8Q/ZPiP1qHIMVPjV
1zUQXIDdeQXgnJBWYwJdmmHyuJZNVQHq0i8Epuek88gR8aSrvnpMtUbighuXPXw8
Dtb/QDs9lt9wJ7Xm66deXG2eMcrJS0zEdanWArrDCKFjWFgusvo/ygsQXH/WVztI
WzsXWDjUIin0SpcfOvDjAOzVmy3cSxakzSQ2QNwZb3xqMWo6jSkGnThECm6EBb4P
pJ/SWlmGMB02CJ4uTUbWyaqcufkrMjsDzj+amNnqLI36/ACVAmdmH85s1J4+eUFZ
Wjcy68qfL0umLPC3RJ+htt0HDQZLlFQMd9hfs3KHplpGJPhiVYq1mcZX8BvhI4Iw
d/3q7W4syQ79/BEABC3sLU80nMKjkbWYrofR6qT9+VxRKSilDP5c93p8njEPsAFV
IXcQqh478r2cgObqJ85AawIsr21VoAk9REdYB9DEZ69tZfYd9l/pe3YnquMEn4cR
huqqZBG8UU9biQ4YIyhhDqv9J8CWQp8jSfbM3c+VxNRpfkUby44wJpPRWWXH7N4p
B54qCk1vRqnEgHt1U9fnTadzYIst0aeDoY1y9paOjhfjH/sFHKZse44MkW9Uggu2
TARGpZqHXax3aBklTxWkjh35TLuQN8He7HI+/NtZCe+lG//ClBy0ii+EUWPyjGJ5
ORHl5a6aip6gsFfDUr2J
=1qru
-----END PGP SIGNATURE-----

--3w6dAaxU7a1GMPamLm7GQkpXEXXGlj7lA--


--===============3699096208783281010==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============3699096208783281010==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 19 13:16:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 13:16:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3Nnx-0003Tj-A7; Thu, 19 May 2016 13:15:57 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940746c73=Paul.Durrant@citrix.com>)
 id 1b3Nnv-0003Td-Rf
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 13:15:55 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 B3/6F-18833-B8CBD375; Thu, 19 May 2016 13:15:55 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoodu1xzb
 c4Gy7pMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNWL13EnPBTZWKdQ2r2RoY56h0MXJySAj4SfR/
 mcgGYrMJ6EgsPTqfCcQWEaiW+NL3hBnEZhZQk1i1opUFxBYWyJaY824SK0RNjkTPqn8sELaTx
 O4TV8F6WQRUJSace80IYvMKuEs0fP0IVi8kUC9x6HUD2C5OAXWJt0c3g8UZBWQlvjSuhtolLn
 HrCcQNEgICEkv2nGeGsEUlXj7+xwphG0hsXboPaC8HUL2mxPpd+hCtihJTuh+yQ6wVlDg58wk
 LxFoViS2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahenFpUllqka6SXVJSZnlGS
 m5iZo2toYKaXm1pcnJiempOYVKyXnJ+7iREYJQxAsINx2V+nQ4ySHExKorxcG2zDhfiS8lMqM
 xKLM+KLSnNSiw8xynBwKEnwLtsNlBMsSk1PrUjLzAHGK0xagoNHSYT3O0iat7ggMbc4Mx0idY
 pRl+Pa5QdrmYRY8vLzUqXEeYtBigRAijJK8+BGwFLHJUZZKWFeRqCjhHgKUotyM0tQ5V8xinM
 wKgnztoJM4cnMK4Hb9AroCCagI26J2YAcUZKIkJJqYPRc6HH75zdT8ZyYrT9Xbrcvyj56ouec
 cN+3HT3eGRXLPigefxq64dLDg2fDq9hOrPufznHgSehWL122cx3rBLoNzu9mObcyNTo0RtniR
 1TU3DjJsxWZzm4ln5K1X642D2z9fv3lI/O92buuv1/H/nQZz+Z3Qi/2CJw9c3TC25cHduvx7J
 UUPR6txFKckWioxVxUnAgAz6XehBgDAAA=
X-Env-Sender: prvs=940746c73=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1463663754!14909216!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54289 invoked from network); 19 May 2016 13:15:54 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 13:15:54 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22280178"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMA==
Date: Thu, 19 May 2016 13:15:21 +0000
Message-ID: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
In-Reply-To: <573DA854.7020006@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Lars Kurth <lars.kurth@citrix.com>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDE5IE1heSAyMDE2IDEyOjUwDQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2
ZWxdIFNJR05FRCBXSU5QViBEUklWRVJTOiBBcmUgRGlzY3Vzc2lvbnMgc3RpbGwNCj4gb25nb2lu
ZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPw0KPiANCj4gSGkuDQo+IA0KPiA+PiBJdCdzIG1v
cmUgdGhlbiBhIG1vbnRoIG5vdyB0aGF0IHRoZSBhYm92ZSBpbmZvcm1hdGlvbiBoYWQgYmVlbg0K
PiA+PiBkaXN0cmlidXRlZCBieSBQYXVsLg0KPiA+Pg0KPiA+PiBEb2VzIGFueW9uZSBoYXMgYW55
IHVwZGF0ZSBvbiB0aGlzPyBXaGVuIHNlZW1lcyB0aGVzZSBkaXNjdXNzaW9ucyB3aWxsDQo+ID4+
IGVuZCB1cCBpbiBhIHJlc29sdXRpb24/DQo+ID4+DQo+ID4NCj4gPiBVbmZvcnR1bmF0ZWx5IEkg
aGF2ZSBubyBtZWFuaW5nZnVsIHVwZGF0ZS4gRGlzY3Vzc2lvbnMgd2l0aCB0aGUgTGludXgNCj4g
Rm91bmRhdGlvbiBzZWVtIHRvIGhhdmUgY29tcGxldGVseSBzdGFsbGVkLiBJdCBpcyBtb3N0IGZy
dXN0cmF0aW5nLg0KPiANCj4gUXVlc3Rpb246IFNob3VsZCBJIGdpdmUgdXAgdGhlIGVmZm9ydHMg
SSBhbHJlYWR5IG1hZGUsIG9yIGlzIHRoZXJlIGFueQ0KPiBjaGFuY2UgdGhhdCB0aGUgc2lnbmVk
IGRyaXZlcnMgd2lsbCBhdmFpbGFibGUgaW4gdGhlIGZvcnNlZW5hYmxlIGZ1dHVyZT8NCg0KSSBj
YW4gb25seSByZWxlYXNlIHNpZ24gZHJpdmVycy4gSSBhbSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0
byBnZXQgYSBNaWNyb3NvZnQgc2lnbmF0dXJlIGFuZCBzbyBXaW5kb3dzIDEwIHdpbGwgc3RpbGwg
bmVlZCB0byBiZSBpbiB0ZXN0c2lnbmluZyBtb2RlLg0KDQo+IFdoYXQgcmVhbGx5IGNhdXNlcyB0
aGUgcHJvYmxlbT8NCg0KQSBsYWNrIG9mIGFncmVlbWVudCBiZXR3ZWVuIHRoZSBMaW51eCBGb3Vu
ZGF0aW9uIGFuZCBNaWNyb3NvZnQuDQoNCj4gSXMgdGhlcmUgYSBjaGFuY2UgdGhhdCB0aGUgY29t
bXVuaXR5IGNhbg0KPiBoZWxwIGluIHRoZSByZXNvbHV0aW9uPw0KPiANCg0KSSB0aGluayB0aGlz
IGlzIGEgbWF0dGVyIGZvciB0aGUgWGVuIFByb2plY3QgYWR2aXNvcnkgYm9hcmQuIEkgZG9uJ3Qg
dGhpbmsgdGhlIGNvbW11bml0eSBjYW4gcmVhbGx5IGhlbHAgdW5sZXNzIHNvbWVvbmUgd2hvIGRv
ZXMgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBNaWNyb3NvZnQgd2FudHMgdG8gcHJvdmlkZSBhICdj
b21tdW5pdHkgcmVsZWFzZScgb2YgdGhlIGRyaXZlcnMgdXNpbmcgdGhlaXIgb3duIHNpZ25hdHVy
ZS4NCg0KQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdXNlIHRoZSBDaXRyaXggYnJhbmRlZCBkcml2
ZXJzIGZyb20gV2luZG93cyBVcGRhdGUuIFlvdSBjYW4gZ2V0IHRoZXNlIGJ5IGFkZGluZyB0aGUg
Q2l0cml4IFBWIGRldmljZSB0byB5b3VyIFZNIGNvbmZpZy4gVGhpcyBjYW4gYmUgZG9uZSBieSBh
ZGRpbmcgYSBsaW5lIG9mIHRoaXMgZm9ybSB0byB5b3UgeGwuY2ZnOg0KDQpkZXZpY2VfbW9kZWxf
YXJncz1bICItZGV2aWNlIiwgInhlbi1wdmRldmljZSxkZXZpY2UtaWQ9MHhjMDAwIiBdDQoNCihh
c3N1bWluZyB5b3UgYXJlIHVzaW5nIHVwc3RyZWFtIFFFTVUpDQoNClRoaXMgc2hvdWxkIGNhdXNl
IGFuIGVtdWxhdGVkIFBDSSBkZXZpY2Ugd2l0aCB2ZW5kb3IgaWQgMHg1ODUzIGFuZCBkZXZpY2Ug
aWQgMHhDMDAwIHRvIGFwcGVhciBpbiB5b3VyIFZNIGFuZCBXaW5kb3dzIHNob3VsZCB0aGVuIGJl
IGFibGUgdG8gZmV0Y2ggdGhlIENpdHJpeCBQViBkcml2ZXJzIGZyb20gV2luZG93cyBVcGRhdGUu
DQoNCiAgIFBhdWwNCg0KPiA+DQo+ID4gICBQYXVsDQo+ID4NCj4gPj4gVGh4Lg0KPiA+Pg0KPiA+
PiAtLQ0KPiA+Pg0KPiA+Pg0KPiA+PiDDiWxpw6FzIFRhbcOhcw0KPiA+PiBUaG9tYXMgRWxpYXMN
Cj4gPj4NCj4gPj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fsw7N6YXRiaXp0b25z
w6FnaSBzcGVjaWFsaXN0YQ0KPiA+PiBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwgTWFuYWdlci1O
ZXR3b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QNCj4gPj4NCj4gPj4gVGVsLiBIVTogKzM2LzMwLTQ5
Ny0xNjI2DQo+ID4+IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMNCj4gPj4gT3BlblBHUCBwdWJr
ZXk6IGh0dHA6Ly9ldGl0Lmh1L2RvYy9ldC1wdWIuYXNjDQo+ID4+DQo+ID4+IE9rbGV2ZWxlcyBt
w6lybsO2ay1pbmZvcm1hdGlrdXMgKE1TQykNCj4gPj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5m
b3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKQ0KPiA+Pg0KPiA+PiBLYXBjc29sYXQ6IGh0dHA6Ly9l
dGl0Lmh1L2luZGV4LnBocC9odS9rYXBjc29sYXQNCj4gPj4gSm9naSBueWlsYXRrb3phdDogaHR0
cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQNCj4gPj4gQ29udGFjdDogaHR0cDov
L2V0aXQuaHUvaW5kZXgucGhwL2VuL2NvbnRhY3QNCj4gPj4gRGlzY2xhaW1lcjogaHR0cDovL2V0
aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1lbi50eHQNCj4gPg0KPiA+DQo+ID4gX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwNCj4gPg0KPiANCj4gLS0NCj4gDQo+IA0KPiDDiWxpw6FzIFRhbcOhcw0KPiBUaG9tYXMg
RWxpYXMNCj4gDQo+IEVUSVRbbndwcm9dIEtGVCwgw5xneXZlemV0xZEtSMOhbMOzemF0Yml6dG9u
c8OhZ2kgc3BlY2lhbGlzdGENCj4gRVRJVFtud3Byb10gTHRkLCBHZW5lcmFsIE1hbmFnZXItTmV0
d29yayBzZWN1cml0eSBzcGVjaWFsaXN0DQo+IA0KPiBUZWwuIEhVOiArMzYvMzAtNDk3LTE2MjYN
Cj4gVGVsLiBERTogKzQ5LzE2MC02NTEtODcyMw0KPiBPcGVuUEdQIHB1YmtleTogaHR0cDovL2V0
aXQuaHUvZG9jL2V0LXB1Yi5hc2MNCj4gDQo+IE9rbGV2ZWxlcyBtw6lybsO2ay1pbmZvcm1hdGlr
dXMgKE1TQykNCj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAo
TVNDKQ0KPiANCj4gS2FwY3NvbGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3Nv
bGF0DQo+IEpvZ2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwt
aHUudHh0DQo+IENvbnRhY3Q6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBocC9lbi9jb250YWN0DQo+
IERpc2NsYWltZXI6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0DQoNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 13:16:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 13:16:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3Nnx-0003Tj-A7; Thu, 19 May 2016 13:15:57 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940746c73=Paul.Durrant@citrix.com>)
 id 1b3Nnv-0003Td-Rf
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 13:15:55 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 B3/6F-18833-B8CBD375; Thu, 19 May 2016 13:15:55 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoodu1xzb
 c4Gy7pMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNWL13EnPBTZWKdQ2r2RoY56h0MXJySAj4SfR/
 mcgGYrMJ6EgsPTqfCcQWEaiW+NL3hBnEZhZQk1i1opUFxBYWyJaY824SK0RNjkTPqn8sELaTx
 O4TV8F6WQRUJSace80IYvMKuEs0fP0IVi8kUC9x6HUD2C5OAXWJt0c3g8UZBWQlvjSuhtolLn
 HrCcQNEgICEkv2nGeGsEUlXj7+xwphG0hsXboPaC8HUL2mxPpd+hCtihJTuh+yQ6wVlDg58wk
 LxFoViS2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahenFpUllqka6SXVJSZnlGS
 m5iZo2toYKaXm1pcnJiempOYVKyXnJ+7iREYJQxAsINx2V+nQ4ySHExKorxcG2zDhfiS8lMqM
 xKLM+KLSnNSiw8xynBwKEnwLtsNlBMsSk1PrUjLzAHGK0xagoNHSYT3O0iat7ggMbc4Mx0idY
 pRl+Pa5QdrmYRY8vLzUqXEeYtBigRAijJK8+BGwFLHJUZZKWFeRqCjhHgKUotyM0tQ5V8xinM
 wKgnztoJM4cnMK4Hb9AroCCagI26J2YAcUZKIkJJqYPRc6HH75zdT8ZyYrT9Xbrcvyj56ouec
 cN+3HT3eGRXLPigefxq64dLDg2fDq9hOrPufznHgSehWL122cx3rBLoNzu9mObcyNTo0RtniR
 1TU3DjJsxWZzm4ln5K1X642D2z9fv3lI/O92buuv1/H/nQZz+Z3Qi/2CJw9c3TC25cHduvx7J
 UUPR6txFKckWioxVxUnAgAz6XehBgDAAA=
X-Env-Sender: prvs=940746c73=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1463663754!14909216!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54289 invoked from network); 19 May 2016 13:15:54 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 13:15:54 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22280178"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMA==
Date: Thu, 19 May 2016 13:15:21 +0000
Message-ID: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
In-Reply-To: <573DA854.7020006@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Lars Kurth <lars.kurth@citrix.com>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDE5IE1heSAyMDE2IDEyOjUwDQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2
ZWxdIFNJR05FRCBXSU5QViBEUklWRVJTOiBBcmUgRGlzY3Vzc2lvbnMgc3RpbGwNCj4gb25nb2lu
ZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPw0KPiANCj4gSGkuDQo+IA0KPiA+PiBJdCdzIG1v
cmUgdGhlbiBhIG1vbnRoIG5vdyB0aGF0IHRoZSBhYm92ZSBpbmZvcm1hdGlvbiBoYWQgYmVlbg0K
PiA+PiBkaXN0cmlidXRlZCBieSBQYXVsLg0KPiA+Pg0KPiA+PiBEb2VzIGFueW9uZSBoYXMgYW55
IHVwZGF0ZSBvbiB0aGlzPyBXaGVuIHNlZW1lcyB0aGVzZSBkaXNjdXNzaW9ucyB3aWxsDQo+ID4+
IGVuZCB1cCBpbiBhIHJlc29sdXRpb24/DQo+ID4+DQo+ID4NCj4gPiBVbmZvcnR1bmF0ZWx5IEkg
aGF2ZSBubyBtZWFuaW5nZnVsIHVwZGF0ZS4gRGlzY3Vzc2lvbnMgd2l0aCB0aGUgTGludXgNCj4g
Rm91bmRhdGlvbiBzZWVtIHRvIGhhdmUgY29tcGxldGVseSBzdGFsbGVkLiBJdCBpcyBtb3N0IGZy
dXN0cmF0aW5nLg0KPiANCj4gUXVlc3Rpb246IFNob3VsZCBJIGdpdmUgdXAgdGhlIGVmZm9ydHMg
SSBhbHJlYWR5IG1hZGUsIG9yIGlzIHRoZXJlIGFueQ0KPiBjaGFuY2UgdGhhdCB0aGUgc2lnbmVk
IGRyaXZlcnMgd2lsbCBhdmFpbGFibGUgaW4gdGhlIGZvcnNlZW5hYmxlIGZ1dHVyZT8NCg0KSSBj
YW4gb25seSByZWxlYXNlIHNpZ24gZHJpdmVycy4gSSBhbSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0
byBnZXQgYSBNaWNyb3NvZnQgc2lnbmF0dXJlIGFuZCBzbyBXaW5kb3dzIDEwIHdpbGwgc3RpbGwg
bmVlZCB0byBiZSBpbiB0ZXN0c2lnbmluZyBtb2RlLg0KDQo+IFdoYXQgcmVhbGx5IGNhdXNlcyB0
aGUgcHJvYmxlbT8NCg0KQSBsYWNrIG9mIGFncmVlbWVudCBiZXR3ZWVuIHRoZSBMaW51eCBGb3Vu
ZGF0aW9uIGFuZCBNaWNyb3NvZnQuDQoNCj4gSXMgdGhlcmUgYSBjaGFuY2UgdGhhdCB0aGUgY29t
bXVuaXR5IGNhbg0KPiBoZWxwIGluIHRoZSByZXNvbHV0aW9uPw0KPiANCg0KSSB0aGluayB0aGlz
IGlzIGEgbWF0dGVyIGZvciB0aGUgWGVuIFByb2plY3QgYWR2aXNvcnkgYm9hcmQuIEkgZG9uJ3Qg
dGhpbmsgdGhlIGNvbW11bml0eSBjYW4gcmVhbGx5IGhlbHAgdW5sZXNzIHNvbWVvbmUgd2hvIGRv
ZXMgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBNaWNyb3NvZnQgd2FudHMgdG8gcHJvdmlkZSBhICdj
b21tdW5pdHkgcmVsZWFzZScgb2YgdGhlIGRyaXZlcnMgdXNpbmcgdGhlaXIgb3duIHNpZ25hdHVy
ZS4NCg0KQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdXNlIHRoZSBDaXRyaXggYnJhbmRlZCBkcml2
ZXJzIGZyb20gV2luZG93cyBVcGRhdGUuIFlvdSBjYW4gZ2V0IHRoZXNlIGJ5IGFkZGluZyB0aGUg
Q2l0cml4IFBWIGRldmljZSB0byB5b3VyIFZNIGNvbmZpZy4gVGhpcyBjYW4gYmUgZG9uZSBieSBh
ZGRpbmcgYSBsaW5lIG9mIHRoaXMgZm9ybSB0byB5b3UgeGwuY2ZnOg0KDQpkZXZpY2VfbW9kZWxf
YXJncz1bICItZGV2aWNlIiwgInhlbi1wdmRldmljZSxkZXZpY2UtaWQ9MHhjMDAwIiBdDQoNCihh
c3N1bWluZyB5b3UgYXJlIHVzaW5nIHVwc3RyZWFtIFFFTVUpDQoNClRoaXMgc2hvdWxkIGNhdXNl
IGFuIGVtdWxhdGVkIFBDSSBkZXZpY2Ugd2l0aCB2ZW5kb3IgaWQgMHg1ODUzIGFuZCBkZXZpY2Ug
aWQgMHhDMDAwIHRvIGFwcGVhciBpbiB5b3VyIFZNIGFuZCBXaW5kb3dzIHNob3VsZCB0aGVuIGJl
IGFibGUgdG8gZmV0Y2ggdGhlIENpdHJpeCBQViBkcml2ZXJzIGZyb20gV2luZG93cyBVcGRhdGUu
DQoNCiAgIFBhdWwNCg0KPiA+DQo+ID4gICBQYXVsDQo+ID4NCj4gPj4gVGh4Lg0KPiA+Pg0KPiA+
PiAtLQ0KPiA+Pg0KPiA+Pg0KPiA+PiDDiWxpw6FzIFRhbcOhcw0KPiA+PiBUaG9tYXMgRWxpYXMN
Cj4gPj4NCj4gPj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fsw7N6YXRiaXp0b25z
w6FnaSBzcGVjaWFsaXN0YQ0KPiA+PiBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwgTWFuYWdlci1O
ZXR3b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QNCj4gPj4NCj4gPj4gVGVsLiBIVTogKzM2LzMwLTQ5
Ny0xNjI2DQo+ID4+IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMNCj4gPj4gT3BlblBHUCBwdWJr
ZXk6IGh0dHA6Ly9ldGl0Lmh1L2RvYy9ldC1wdWIuYXNjDQo+ID4+DQo+ID4+IE9rbGV2ZWxlcyBt
w6lybsO2ay1pbmZvcm1hdGlrdXMgKE1TQykNCj4gPj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5m
b3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKQ0KPiA+Pg0KPiA+PiBLYXBjc29sYXQ6IGh0dHA6Ly9l
dGl0Lmh1L2luZGV4LnBocC9odS9rYXBjc29sYXQNCj4gPj4gSm9naSBueWlsYXRrb3phdDogaHR0
cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQNCj4gPj4gQ29udGFjdDogaHR0cDov
L2V0aXQuaHUvaW5kZXgucGhwL2VuL2NvbnRhY3QNCj4gPj4gRGlzY2xhaW1lcjogaHR0cDovL2V0
aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1lbi50eHQNCj4gPg0KPiA+DQo+ID4gX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0
cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwNCj4gPg0KPiANCj4gLS0NCj4gDQo+IA0KPiDDiWxpw6FzIFRhbcOhcw0KPiBUaG9tYXMg
RWxpYXMNCj4gDQo+IEVUSVRbbndwcm9dIEtGVCwgw5xneXZlemV0xZEtSMOhbMOzemF0Yml6dG9u
c8OhZ2kgc3BlY2lhbGlzdGENCj4gRVRJVFtud3Byb10gTHRkLCBHZW5lcmFsIE1hbmFnZXItTmV0
d29yayBzZWN1cml0eSBzcGVjaWFsaXN0DQo+IA0KPiBUZWwuIEhVOiArMzYvMzAtNDk3LTE2MjYN
Cj4gVGVsLiBERTogKzQ5LzE2MC02NTEtODcyMw0KPiBPcGVuUEdQIHB1YmtleTogaHR0cDovL2V0
aXQuaHUvZG9jL2V0LXB1Yi5hc2MNCj4gDQo+IE9rbGV2ZWxlcyBtw6lybsO2ay1pbmZvcm1hdGlr
dXMgKE1TQykNCj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAo
TVNDKQ0KPiANCj4gS2FwY3NvbGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3Nv
bGF0DQo+IEpvZ2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwt
aHUudHh0DQo+IENvbnRhY3Q6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBocC9lbi9jb250YWN0DQo+
IERpc2NsYWltZXI6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0DQoNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:05:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:05:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3OZv-0007gl-Dx; Thu, 19 May 2016 14:05:31 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940b241d0=lars.kurth@citrix.com>)
 id 1b3ORE-0006oa-GQ
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 13:56:32 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 97/7F-17285-F06CD375; Thu, 19 May 2016 13:56:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFKsWRWlGSWpSXmKPExsWyU9JRQpf/mG2
 4wdplYhZ/Fic6MHoc/nCFJYAxijUzLym/IoE148/Bg4wFq9kqbt9YxtjAuICti5GTQ0LAT2LH
 7eOsIDabgIbEsYfNzF2MXBwiAksYJVa/XMkCkhAWyJaYew7CFhHIkehZ9Q/KdpO48mcKM4jNI
 qAqsfHgdEYQm1fASGLXlt9gC4QE9jBKbFqmDWJzCnhIfGy6xwRiMwrISnxpXA3WyywgLnHryX
 wmiIMEJJbsOc8MYYtKvHz8D+w4UQE9iXkPX0EdrSNx9voTRgjbQGLr0n1A93AAzdGUWL9LH2K
 kpcS+6bcZIWxFiSndD9khThOUODnzCVi5kICSxPbLxhBTuCVWfv7DMoFRfBaSg2YhDJ2FZOgs
 JENnIRm6gJF1FaNGcWpRWWqRrqGpXlJRZnpGSW5iZo6uoYGpXm5qcXFiempOYlKxXnJ+7iZGY
 LwxAMEOxobtnocYJTmYlER5Hx+yDRfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwfvwCFBOsCg1Pb
 UiLTMHGPkwaQkOHiUR3kUgad7igsTc4sx0iNQpRl2OBT9ur2USYsnLz0uVEuctAykSACnKKM2
 DGwFLQpcYZaWEeRmBjhLiKUgtys0sQZV/xSjOwagkzPsZZApPZl4J3KZXQEcwAR1xS8wG5IiS
 RISUVANj/8Pt0tcyxZz9JXKWf0lwLlFZEZxhczu6ul9V0W/P0eiOzoi7t1taPwfM3/WWp+4e9
 7tJPUxPRVhOVaxOPvNMz+3u9O1JOo7z3C3eblCKDP7dfCSi8Jz+pD2rl1V+7NvatOTereucve
 tnLPC5obf6oH9ixjsdz6Of1Rfvjjr15faptq1zGSeHKbEUZyQaajEXFScCAP0x0hk9AwAA
X-Env-Sender: prvs=940b241d0=lars.kurth@citrix.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1463666190!36608078!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42094 invoked from network); 19 May 2016 13:56:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 13:56:31 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22284277"
From: Lars Kurth <lars.kurth@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, =?utf-8?B?w4lsacOhcyBUYW3DoXM=?=
 <et@etit.hu>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMP///OAA
Date: Thu, 19 May 2016 13:55:06 +0000
Message-ID: <D363833E.29BC6%lars.kurth@citrix.com>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.4.5.141003
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
Content-ID: <FDBAFC2731A0C0439251AD241D1123BA@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
X-Mailman-Approved-At: Thu, 19 May 2016 14:05:30 +0000
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

DQoNCk9uIDE5LzA1LzIwMTYgMTQ6MTUsICJQYXVsIER1cnJhbnQiIDxQYXVsLkR1cnJhbnRAY2l0
cml4LmNvbT4gd3JvdGU6DQoNCj4+DQo+PiBXaGF0IHJlYWxseSBjYXVzZXMgdGhlIHByb2JsZW0/
DQo+DQo+QSBsYWNrIG9mIGFncmVlbWVudCBiZXR3ZWVuIHRoZSBMaW51eCBGb3VuZGF0aW9uIGFu
ZCBNaWNyb3NvZnQuDQoNCkluIGEgbnV0c2hlbGwsIHRoZSBMaW51eCBGb3VuZGF0aW9uIGNhbm5v
dCBzaWduIHRoZSBsZWdhbCBhZ3JlZW1lbnQgdGhhdA0KaXMgcmVxdWlyZWQgZm9yIHNpZ25pbmcg
V2luZG93cyBkcml2ZXJzLCBhcyB0aGUgYWdyZWVtZW50IHJlcXVpcmVkIHRvIGRvDQphdHRlc3Rh
dGlvbiBzaWduaW5nIGlzIG5vdCBvcGVuIHNvdXJjZSBjb21tdW5pdHkgZnJpZW5kbHkuIFdlIGFy
ZQ0KY3VycmVudGx5IGludmVzdGlnYXRpbmcgd2hldGhlciBNaWNyb3NvZnQgaXMgd2lsbGluZyB0
byBkbyBhIHNwZWNpYWwNCmFncmVlbWVudCB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uLCBidXQg
dGhpcyB3aWxsIHRha2Ugc29tZSB0aW1lLiBBbmQgaXQNCm1heSBub3QgbGVhZCB0byBhbnl0aGlu
Zy4NCg0KQmVzdCBSZWdhcmRzDQpMYXJzDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:05:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:05:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3OZv-0007gl-Dx; Thu, 19 May 2016 14:05:31 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940b241d0=lars.kurth@citrix.com>)
 id 1b3ORE-0006oa-GQ
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 13:56:32 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 97/7F-17285-F06CD375; Thu, 19 May 2016 13:56:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFKsWRWlGSWpSXmKPExsWyU9JRQpf/mG2
 4wdplYhZ/Fic6MHoc/nCFJYAxijUzLym/IoE148/Bg4wFq9kqbt9YxtjAuICti5GTQ0LAT2LH
 7eOsIDabgIbEsYfNzF2MXBwiAksYJVa/XMkCkhAWyJaYew7CFhHIkehZ9Q/KdpO48mcKM4jNI
 qAqsfHgdEYQm1fASGLXlt9gC4QE9jBKbFqmDWJzCnhIfGy6xwRiMwrISnxpXA3WyywgLnHryX
 wmiIMEJJbsOc8MYYtKvHz8D+w4UQE9iXkPX0EdrSNx9voTRgjbQGLr0n1A93AAzdGUWL9LH2K
 kpcS+6bcZIWxFiSndD9khThOUODnzCVi5kICSxPbLxhBTuCVWfv7DMoFRfBaSg2YhDJ2FZOgs
 JENnIRm6gJF1FaNGcWpRWWqRrqGpXlJRZnpGSW5iZo6uoYGpXm5qcXFiempOYlKxXnJ+7iZGY
 LwxAMEOxobtnocYJTmYlER5Hx+yDRfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwfvwCFBOsCg1Pb
 UiLTMHGPkwaQkOHiUR3kUgad7igsTc4sx0iNQpRl2OBT9ur2USYsnLz0uVEuctAykSACnKKM2
 DGwFLQpcYZaWEeRmBjhLiKUgtys0sQZV/xSjOwagkzPsZZApPZl4J3KZXQEcwAR1xS8wG5IiS
 RISUVANj/8Pt0tcyxZz9JXKWf0lwLlFZEZxhczu6ul9V0W/P0eiOzoi7t1taPwfM3/WWp+4e9
 7tJPUxPRVhOVaxOPvNMz+3u9O1JOo7z3C3eblCKDP7dfCSi8Jz+pD2rl1V+7NvatOTereucve
 tnLPC5obf6oH9ixjsdz6Of1Rfvjjr15faptq1zGSeHKbEUZyQaajEXFScCAP0x0hk9AwAA
X-Env-Sender: prvs=940b241d0=lars.kurth@citrix.com
X-Msg-Ref: server-13.tower-206.messagelabs.com!1463666190!36608078!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42094 invoked from network); 19 May 2016 13:56:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 13:56:31 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22284277"
From: Lars Kurth <lars.kurth@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, =?utf-8?B?w4lsacOhcyBUYW3DoXM=?=
 <et@etit.hu>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMP///OAA
Date: Thu, 19 May 2016 13:55:06 +0000
Message-ID: <D363833E.29BC6%lars.kurth@citrix.com>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.4.5.141003
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
Content-ID: <FDBAFC2731A0C0439251AD241D1123BA@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
X-Mailman-Approved-At: Thu, 19 May 2016 14:05:30 +0000
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

DQoNCk9uIDE5LzA1LzIwMTYgMTQ6MTUsICJQYXVsIER1cnJhbnQiIDxQYXVsLkR1cnJhbnRAY2l0
cml4LmNvbT4gd3JvdGU6DQoNCj4+DQo+PiBXaGF0IHJlYWxseSBjYXVzZXMgdGhlIHByb2JsZW0/
DQo+DQo+QSBsYWNrIG9mIGFncmVlbWVudCBiZXR3ZWVuIHRoZSBMaW51eCBGb3VuZGF0aW9uIGFu
ZCBNaWNyb3NvZnQuDQoNCkluIGEgbnV0c2hlbGwsIHRoZSBMaW51eCBGb3VuZGF0aW9uIGNhbm5v
dCBzaWduIHRoZSBsZWdhbCBhZ3JlZW1lbnQgdGhhdA0KaXMgcmVxdWlyZWQgZm9yIHNpZ25pbmcg
V2luZG93cyBkcml2ZXJzLCBhcyB0aGUgYWdyZWVtZW50IHJlcXVpcmVkIHRvIGRvDQphdHRlc3Rh
dGlvbiBzaWduaW5nIGlzIG5vdCBvcGVuIHNvdXJjZSBjb21tdW5pdHkgZnJpZW5kbHkuIFdlIGFy
ZQ0KY3VycmVudGx5IGludmVzdGlnYXRpbmcgd2hldGhlciBNaWNyb3NvZnQgaXMgd2lsbGluZyB0
byBkbyBhIHNwZWNpYWwNCmFncmVlbWVudCB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uLCBidXQg
dGhpcyB3aWxsIHRha2Ugc29tZSB0aW1lLiBBbmQgaXQNCm1heSBub3QgbGVhZCB0byBhbnl0aGlu
Zy4NCg0KQmVzdCBSZWdhcmRzDQpMYXJzDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:07:03 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:07:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3ObP-0007kC-Ig; Thu, 19 May 2016 14:07:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1b3ObN-0007k4-Ho
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 14:07:02 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
 7B/07-04060-488CD375; Thu, 19 May 2016 14:07:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrIKsWRWlGSWpSXmKPExsUSd3yrvG7zCdt
 wg5ZTUhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/nN46wF39UrenZfYGtgXKzSxcjFISSwjVHi
 wuvNLF2MHBwSAkoSLc1uEPGdjBJHj21kBXFYBBqZJQ4dm8sI4kgIrGWU2LjjMyNE2UVGiZ+/p
 zCiKePkEBbIlph7biULiC0ioCpxbfkxNhBbSGAPo8SmZdogNpuAsUTrueVg9fwCshIfV05kAr
 F5BdQkjs1tBrNZgHpv/L3GDnKfqEC4xJrt7hAlghInZz4BG88p4CHxsekeE8gNzALtjBINS9a
 DzZQQEJY4sn8nywRG4VlIemYhq5sFNJdZwFviQ3fZLCQnzUJy9iwkJ81C8tosJO/MQnIHiM0s
 oC7xZ94lZghbW2LZwtdQtq3EunXvWSBsPYm3v3uhbEuJ9Ts+sS9g5FvFqFGcWlSWWqRraKCXV
 JSZnlGSm5iZA+QZ6+WmFhcnpqfmJCYV6yXn525iBEZ9PQMD4w7GbV3OhxglOZiURHkfH7INF+
 JLyk+pzEgszogvKs1JLT7EKMPBoSTBu/Y4UE6wKDU9tSItMweYfmDSEhw8SiK8ZSBp3uKCxNz
 izHSI1ClGRSlx3iMgCQGQREZpHlwbLOVdYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTMKwwy
 hSczrwRu+iugxUxAi2+J2YAsLklESEk1MNqLVy8LYj/usFFfcvctBWW5pnOzt030V3N4o/vt9
 5PihaI6hZ9bjqsvKZw3ZXeOd+fXn00SlXd6L6qc270lzofVTrauLV8l961Y73u22SJTg0sbPS
 +2sX6pn6L2bGf51yVCmTazHd6+efaw+LLse/5acRl2/sqjgt4RVq9LvjxV3nbjk+CxLUosxRm
 JhlrMRcWJAJqKVCV0AwAA
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-6.tower-31.messagelabs.com!1463666819!14769938!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29057 invoked from network); 19 May 2016 14:06:59 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-6.tower-31.messagelabs.com with SMTP; 19 May 2016 14:06:59 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A99214040F1
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:06:58 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A9D06403D05
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:02:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463666543; bh=hk+eAZmfXdRBTbMreyr9srs7w/9NTY9nmlqHUaqiRXk=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=lJJ5/oH14N3/dJr2vuLLGFJ2TazOPeUNHDcEeqoEvoaNmckvYEf+Ibb/4VbEcmYCl
 GhCt9iYj6sUgnrZ0xOar/O3I4SIn9uuUzYFr3mzrZkoYZoqvzJBxOmgsgzuUYAA+Cq
 9ul6nUg1Xf4TzHA3xJ7f8U1DmLeyCBBIgPTiAirg=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 832354040FB
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:02:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463666543; bh=hk+eAZmfXdRBTbMreyr9srs7w/9NTY9nmlqHUaqiRXk=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=lJJ5/oH14N3/dJr2vuLLGFJ2TazOPeUNHDcEeqoEvoaNmckvYEf+Ibb/4VbEcmYCl
 GhCt9iYj6sUgnrZ0xOar/O3I4SIn9uuUzYFr3mzrZkoYZoqvzJBxOmgsgzuUYAA+Cq
 9ul6nUg1Xf4TzHA3xJ7f8U1DmLeyCBBIgPTiAirg=
To: win-pv-devel@lists.xenproject.org
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <573DC76F.7050909@etit.hu>
Date: Thu, 19 May 2016 16:02:23 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4943836122302148074=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4943836122302148074==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS
Content-Type: multipart/mixed; boundary="7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <573DC76F.7050909@etit.hu>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>

--7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.

> An alternative would be use the Citrix branded drivers from Windows Upd=
ate. You can get these by adding the Citrix PV device to your VM config. =
This can be done by adding a line of this form to you xl.cfg:
> device_model_args=3D[ "-device", "xen-pvdevice,device-id=3D0xc000" ]
> (assuming you are using upstream QEMU)
> This should cause an emulated PCI device with vendor id 0x5853 and devi=
ce id 0xC000 to appear in your VM and Windows should then be able to fetc=
h the Citrix PV drivers from Windows Update.

If this is such easy (I did not even thaught about such a solution yet),
I cannot understand why we fight with this "signing" issue.

Isn't it possible for Citrix to sign these community drivers too?

Is this has any legal/performance/security issues (assuming citrix
drivers are nearly the same as the community ones)?

>=20
>    Paul
>=20
>>>
>>>   Paul
>>>
>>>> Thx.
>>>>
>>>> --
>>>>
>>>>
>>>> =C3=89li=C3=A1s Tam=C3=A1s
>>>> Thomas Elias
>>>>
>>>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1g=
i specialista
>>>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>>>
>>>> Tel. HU: +36/30-497-1626
>>>> Tel. DE: +49/160-651-8723
>>>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>>>
>>>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>>>> Master of Science in Information Technology (MSC)
>>>>
>>>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>>>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>>>> Contact: http://etit.hu/index.php/en/contact
>>>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>>>
>>>
>>> _______________________________________________
>>> win-pv-devel mailing list
>>> win-pv-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>>>
>>
>> --
>>
>>
>> =C3=89li=C3=A1s Tam=C3=A1s
>> Thomas Elias
>>
>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi =
specialista
>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>
>> Tel. HU: +36/30-497-1626
>> Tel. DE: +49/160-651-8723
>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>
>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>> Master of Science in Information Technology (MSC)
>>
>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>> Contact: http://etit.hu/index.php/en/contact
>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ--

--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXPcdvAAoJENWYes1C3s/CKQIQAIAsJyyt4zZAaMo8JmX5iYpG
5omji0dq4p1kyOhegwBOs5GFqch3Jp5AShfZ/Ef2M4Jo9vXl3ODHzIHsHCx5yPuY
+d+ZtLMfNnRFMo5tpygPOucnPmiFR6naXxn7ssbP6r9hi/buvhkbKKC8sZnMD8LI
EXet9dAkDjve+Lx/v1CxXCzBxw3sw8Nol/vG3jqLlamxgwj1j5+6ajFpP8DG50nm
kzoYQUnGzWlsZ42gA1+yHgPj4pq587EytKn3TS+L2pijysu7M5gun+eQRvHTlsLd
2piQRcaSOAfXa3rgWzFDNyNO9Kbxq9zEUNwSybErHafRkemPt4oF9K/7hBEJEnaO
zMwzbv0qnKM1h9ul5YJu/W3KtAr5IME+eA0ZuirD0Ra15nGoEZvqhBuJ3igJ7Ydp
1kyq2lWqmaoiagwoiUkwIO443Cn65o60XEgUOHWSGKuHedi+6zQwCvIB6vsuGVVG
w05/pfsZ5wkErOh3vvEVwmKjC7YUY9WrDFtpZQsSsRXg4CZLWP07FVEc6u/mmUPC
2bGY0Y1/Oyqpijgct39YRq+ol8ZNo5NHqTYpNo+ILS76yFq/OevyrrUItcoUyXvW
4Nh2NG55jaa//JupTwTmRNjNleDYy2cxciaFl3GslZz2lZz6bdY05YhgopWYB9At
nbnMYtd2+hXBIfH2z3jt
=Z+rk
-----END PGP SIGNATURE-----

--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS--


--===============4943836122302148074==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============4943836122302148074==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:07:03 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:07:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3ObP-0007kC-Ig; Thu, 19 May 2016 14:07:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1b3ObN-0007k4-Ho
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 14:07:02 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
 7B/07-04060-488CD375; Thu, 19 May 2016 14:07:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrIKsWRWlGSWpSXmKPExsUSd3yrvG7zCdt
 wg5ZTUhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/nN46wF39UrenZfYGtgXKzSxcjFISSwjVHi
 wuvNLF2MHBwSAkoSLc1uEPGdjBJHj21kBXFYBBqZJQ4dm8sI4kgIrGWU2LjjMyNE2UVGiZ+/p
 zCiKePkEBbIlph7biULiC0ioCpxbfkxNhBbSGAPo8SmZdogNpuAsUTrueVg9fwCshIfV05kAr
 F5BdQkjs1tBrNZgHpv/L3GDnKfqEC4xJrt7hAlghInZz4BG88p4CHxsekeE8gNzALtjBINS9a
 DzZQQEJY4sn8nywRG4VlIemYhq5sFNJdZwFviQ3fZLCQnzUJy9iwkJ81C8tosJO/MQnIHiM0s
 oC7xZ94lZghbW2LZwtdQtq3EunXvWSBsPYm3v3uhbEuJ9Ts+sS9g5FvFqFGcWlSWWqRraKCXV
 JSZnlGSm5iZA+QZ6+WmFhcnpqfmJCYV6yXn525iBEZ9PQMD4w7GbV3OhxglOZiURHkfH7INF+
 JLyk+pzEgszogvKs1JLT7EKMPBoSTBu/Y4UE6wKDU9tSItMweYfmDSEhw8SiK8ZSBp3uKCxNz
 izHSI1ClGRSlx3iMgCQGQREZpHlwbLOVdYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTMKwwy
 hSczrwRu+iugxUxAi2+J2YAsLklESEk1MNqLVy8LYj/usFFfcvctBWW5pnOzt030V3N4o/vt9
 5PihaI6hZ9bjqsvKZw3ZXeOd+fXn00SlXd6L6qc270lzofVTrauLV8l961Y73u22SJTg0sbPS
 +2sX6pn6L2bGf51yVCmTazHd6+efaw+LLse/5acRl2/sqjgt4RVq9LvjxV3nbjk+CxLUosxRm
 JhlrMRcWJAJqKVCV0AwAA
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-6.tower-31.messagelabs.com!1463666819!14769938!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29057 invoked from network); 19 May 2016 14:06:59 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-6.tower-31.messagelabs.com with SMTP; 19 May 2016 14:06:59 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A99214040F1
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:06:58 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A9D06403D05
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:02:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463666543; bh=hk+eAZmfXdRBTbMreyr9srs7w/9NTY9nmlqHUaqiRXk=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=lJJ5/oH14N3/dJr2vuLLGFJ2TazOPeUNHDcEeqoEvoaNmckvYEf+Ibb/4VbEcmYCl
 GhCt9iYj6sUgnrZ0xOar/O3I4SIn9uuUzYFr3mzrZkoYZoqvzJBxOmgsgzuUYAA+Cq
 9ul6nUg1Xf4TzHA3xJ7f8U1DmLeyCBBIgPTiAirg=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 832354040FB
 for <win-pv-devel@lists.xenproject.org>; Thu, 19 May 2016 16:02:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1463666543; bh=hk+eAZmfXdRBTbMreyr9srs7w/9NTY9nmlqHUaqiRXk=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=lJJ5/oH14N3/dJr2vuLLGFJ2TazOPeUNHDcEeqoEvoaNmckvYEf+Ibb/4VbEcmYCl
 GhCt9iYj6sUgnrZ0xOar/O3I4SIn9uuUzYFr3mzrZkoYZoqvzJBxOmgsgzuUYAA+Cq
 9ul6nUg1Xf4TzHA3xJ7f8U1DmLeyCBBIgPTiAirg=
To: win-pv-devel@lists.xenproject.org
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <573DC76F.7050909@etit.hu>
Date: Thu, 19 May 2016 16:02:23 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4943836122302148074=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4943836122302148074==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS
Content-Type: multipart/mixed; boundary="7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <573DC76F.7050909@etit.hu>
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
In-Reply-To: <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>

--7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.

> An alternative would be use the Citrix branded drivers from Windows Upd=
ate. You can get these by adding the Citrix PV device to your VM config. =
This can be done by adding a line of this form to you xl.cfg:
> device_model_args=3D[ "-device", "xen-pvdevice,device-id=3D0xc000" ]
> (assuming you are using upstream QEMU)
> This should cause an emulated PCI device with vendor id 0x5853 and devi=
ce id 0xC000 to appear in your VM and Windows should then be able to fetc=
h the Citrix PV drivers from Windows Update.

If this is such easy (I did not even thaught about such a solution yet),
I cannot understand why we fight with this "signing" issue.

Isn't it possible for Citrix to sign these community drivers too?

Is this has any legal/performance/security issues (assuming citrix
drivers are nearly the same as the community ones)?

>=20
>    Paul
>=20
>>>
>>>   Paul
>>>
>>>> Thx.
>>>>
>>>> --
>>>>
>>>>
>>>> =C3=89li=C3=A1s Tam=C3=A1s
>>>> Thomas Elias
>>>>
>>>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1g=
i specialista
>>>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>>>
>>>> Tel. HU: +36/30-497-1626
>>>> Tel. DE: +49/160-651-8723
>>>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>>>
>>>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>>>> Master of Science in Information Technology (MSC)
>>>>
>>>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>>>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>>>> Contact: http://etit.hu/index.php/en/contact
>>>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>>>
>>>
>>> _______________________________________________
>>> win-pv-devel mailing list
>>> win-pv-devel@lists.xenproject.org
>>> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>>>
>>
>> --
>>
>>
>> =C3=89li=C3=A1s Tam=C3=A1s
>> Thomas Elias
>>
>> ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi =
specialista
>> ETIT[nwpro] Ltd, General Manager-Network security specialist
>>
>> Tel. HU: +36/30-497-1626
>> Tel. DE: +49/160-651-8723
>> OpenPGP pubkey: http://etit.hu/doc/et-pub.asc
>>
>> Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
>> Master of Science in Information Technology (MSC)
>>
>> Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
>> Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
>> Contact: http://etit.hu/index.php/en/contact
>> Disclaimer: http://etit.hu/disclaimer-email-en.txt
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--7xO1roO1HLmd5PKbkA4uSAcldTJDURcRJ--

--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXPcdvAAoJENWYes1C3s/CKQIQAIAsJyyt4zZAaMo8JmX5iYpG
5omji0dq4p1kyOhegwBOs5GFqch3Jp5AShfZ/Ef2M4Jo9vXl3ODHzIHsHCx5yPuY
+d+ZtLMfNnRFMo5tpygPOucnPmiFR6naXxn7ssbP6r9hi/buvhkbKKC8sZnMD8LI
EXet9dAkDjve+Lx/v1CxXCzBxw3sw8Nol/vG3jqLlamxgwj1j5+6ajFpP8DG50nm
kzoYQUnGzWlsZ42gA1+yHgPj4pq587EytKn3TS+L2pijysu7M5gun+eQRvHTlsLd
2piQRcaSOAfXa3rgWzFDNyNO9Kbxq9zEUNwSybErHafRkemPt4oF9K/7hBEJEnaO
zMwzbv0qnKM1h9ul5YJu/W3KtAr5IME+eA0ZuirD0Ra15nGoEZvqhBuJ3igJ7Ydp
1kyq2lWqmaoiagwoiUkwIO443Cn65o60XEgUOHWSGKuHedi+6zQwCvIB6vsuGVVG
w05/pfsZ5wkErOh3vvEVwmKjC7YUY9WrDFtpZQsSsRXg4CZLWP07FVEc6u/mmUPC
2bGY0Y1/Oyqpijgct39YRq+ol8ZNo5NHqTYpNo+ILS76yFq/OevyrrUItcoUyXvW
4Nh2NG55jaa//JupTwTmRNjNleDYy2cxciaFl3GslZz2lZz6bdY05YhgopWYB9At
nbnMYtd2+hXBIfH2z3jt
=Z+rk
-----END PGP SIGNATURE-----

--sFu7nDqmj2su1d2vdiCVQ6u5BmGTbvnmS--


--===============4943836122302148074==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============4943836122302148074==--


From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:35:29 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3P2p-0001dY-Im; Thu, 19 May 2016 14:35:23 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940746c73=Paul.Durrant@citrix.com>)
 id 1b3P2o-0001dL-SX
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 14:35:22 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 8D/AF-18833-A2FCD375; Thu, 19 May 2016 14:35:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQlftvG2
 4QfssFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacePDO8aCc5oV049vYG1g7NDsYuTkkBDwk1g9
 9xIriM0moCOx9Oh8JhBbRKBa4kvfE2YQW1ggW2LOu0msEPEciZ5V/1ggbD+JhssvwWwWAVWJn
 9u2g9XwCrhLvDnzAaiXi0NI4AajxNUJp9hBEpwC6hLHT20DW8AoICvxpXE12AJmAXGJW08gFk
 sICEgs2XOeGcIWlXj5+B8rhG0gsXXpPqBlHED1mhLrd+lDtCpKTOl+yA6xV1Di5MwnYPcICah
 IbHl8AGoMt8TKz39YJjCKzEKybRbCpFlIJs1CMmkBI8sqRvXi1KKy1CJdI72kosz0jJLcxMwc
 XUMDM73c1OLixPTUnMSkYr3k/NxNjMB4YACCHYzL/jodYpTkYFIS5XU/YxsuxJeUn1KZkVicE
 V9UmpNafIhRhoNDSYJ32lmgnGBRanpqRVpmDjAyYdISHDxKIrxTQNK8xQWJucWZ6RCpU4y6HN
 cuP1jLJMSSl5+XKiXOexakSACkKKM0D24ELElcYpSVEuZlBDpKiKcgtSg3swRV/hWjOAejkjD
 vI5ApPJl5JXCbXgEdwQR0xC0xG5AjShIRUlINjBmlevbLI80q+l0UkqW5GSyWSSiWpD6+w+zB
 O7UpeMWfFaEczDea/jTm3BFzlTW9OOvTPF3H5Ganx+y74zc+jrH397Twt3Ngs5irtZqzT2PBw
 UPb9f2nNdWs/xrSJH73ZWOUuWiVajXPT3c79rsmv2N//dVWiju957hQ+vR9kwO/vtH9Ju2mxF
 KckWioxVxUnAgANnQF5Q0DAAA=
X-Env-Sender: prvs=940746c73=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1463668517!14429374!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53287 invoked from network); 19 May 2016 14:35:18 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 14:35:18 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22289215"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMP//7iWAgAAmMXA=
Date: Thu, 19 May 2016 14:28:23 +0000
Message-ID: <3fcf2f411b714963ad8655f275f93ee9@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
 <573DC76F.7050909@etit.hu>
In-Reply-To: <573DC76F.7050909@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDE5IE1heSAyMDE2IDE1OjAyDQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2
ZWxdIFNJR05FRCBXSU5QViBEUklWRVJTOiBBcmUgRGlzY3Vzc2lvbnMgc3RpbGwNCj4gb25nb2lu
ZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPw0KPiANCj4gSGkuDQo+IA0KPiA+IEFuIGFsdGVy
bmF0aXZlIHdvdWxkIGJlIHVzZSB0aGUgQ2l0cml4IGJyYW5kZWQgZHJpdmVycyBmcm9tIFdpbmRv
d3MNCj4gVXBkYXRlLiBZb3UgY2FuIGdldCB0aGVzZSBieSBhZGRpbmcgdGhlIENpdHJpeCBQViBk
ZXZpY2UgdG8geW91ciBWTSBjb25maWcuDQo+IFRoaXMgY2FuIGJlIGRvbmUgYnkgYWRkaW5nIGEg
bGluZSBvZiB0aGlzIGZvcm0gdG8geW91IHhsLmNmZzoNCj4gPiBkZXZpY2VfbW9kZWxfYXJncz1b
ICItZGV2aWNlIiwgInhlbi1wdmRldmljZSxkZXZpY2UtaWQ9MHhjMDAwIiBdDQo+ID4gKGFzc3Vt
aW5nIHlvdSBhcmUgdXNpbmcgdXBzdHJlYW0gUUVNVSkNCj4gPiBUaGlzIHNob3VsZCBjYXVzZSBh
biBlbXVsYXRlZCBQQ0kgZGV2aWNlIHdpdGggdmVuZG9yIGlkIDB4NTg1MyBhbmQgZGV2aWNlDQo+
IGlkIDB4QzAwMCB0byBhcHBlYXIgaW4geW91ciBWTSBhbmQgV2luZG93cyBzaG91bGQgdGhlbiBi
ZSBhYmxlIHRvIGZldGNoDQo+IHRoZSBDaXRyaXggUFYgZHJpdmVycyBmcm9tIFdpbmRvd3MgVXBk
YXRlLg0KPiANCj4gSWYgdGhpcyBpcyBzdWNoIGVhc3kgKEkgZGlkIG5vdCBldmVuIHRoYXVnaHQg
YWJvdXQgc3VjaCBhIHNvbHV0aW9uIHlldCksDQo+IEkgY2Fubm90IHVuZGVyc3RhbmQgd2h5IHdl
IGZpZ2h0IHdpdGggdGhpcyAic2lnbmluZyIgaXNzdWUuDQo+IA0KPiBJc24ndCBpdCBwb3NzaWJs
ZSBmb3IgQ2l0cml4IHRvIHNpZ24gdGhlc2UgY29tbXVuaXR5IGRyaXZlcnMgdG9vPw0KPiANCg0K
SSBkb24ndCBoYXZlIHRoZSBhdXRob3JpdHkgdG8gZGVjaWRlIHRoYXQuDQoNCj4gSXMgdGhpcyBo
YXMgYW55IGxlZ2FsL3BlcmZvcm1hbmNlL3NlY3VyaXR5IGlzc3VlcyAoYXNzdW1pbmcgY2l0cml4
DQo+IGRyaXZlcnMgYXJlIG5lYXJseSB0aGUgc2FtZSBhcyB0aGUgY29tbXVuaXR5IG9uZXMpPw0K
PiANCg0KVGhlIEVVTEEgb24gdGhlIENpdHJpeCBkcml2ZXJzIGRvZXMgbm90IHJlcXVpcmUgdGhh
dCB0aGUgZHJpdmVycyBiZSBydW4gb24gYSBWTSBydW5uaW5nIG9uIFhlblNlcnZlciBhbmQgdGhl
IHNvdXJjZSBmcm9tIHdoaWNoIHRoZXkgd2VyZSBidWlsdCBpcyB2ZXJ5IGNsb3NlIHRvIHVwc3Ry
ZWFtIGJ1dCBub3QgaWRlbnRpY2FsLiANCg0KICBQYXVsDQoNCj4gPg0KPiA+ICAgIFBhdWwNCj4g
Pg0KPiA+Pj4NCj4gPj4+ICAgUGF1bA0KPiA+Pj4NCj4gPj4+PiBUaHguDQo+ID4+Pj4NCj4gPj4+
PiAtLQ0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiDDiWxpw6FzIFRhbcOhcw0KPiA+Pj4+IFRob21h
cyBFbGlhcw0KPiA+Pj4+DQo+ID4+Pj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fs
w7N6YXRiaXp0b25zw6FnaSBzcGVjaWFsaXN0YQ0KPiA+Pj4+IEVUSVRbbndwcm9dIEx0ZCwgR2Vu
ZXJhbCBNYW5hZ2VyLU5ldHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdA0KPiA+Pj4+DQo+ID4+Pj4g
VGVsLiBIVTogKzM2LzMwLTQ5Ny0xNjI2DQo+ID4+Pj4gVGVsLiBERTogKzQ5LzE2MC02NTEtODcy
Mw0KPiA+Pj4+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0K
PiA+Pj4+DQo+ID4+Pj4gT2tsZXZlbGVzIG3DqXJuw7ZrLWluZm9ybWF0aWt1cyAoTVNDKQ0KPiA+
Pj4+IE1hc3RlciBvZiBTY2llbmNlIGluIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4g
Pj4+Pg0KPiA+Pj4+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2h1L2thcGNz
b2xhdA0KPiA+Pj4+IEpvZ2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXIt
ZW1haWwtaHUudHh0DQo+ID4+Pj4gQ29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2Vu
L2NvbnRhY3QNCj4gPj4+PiBEaXNjbGFpbWVyOiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVyLWVt
YWlsLWVuLnR4dA0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0K
PiA+Pj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+PiBodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0K
PiA+Pj4NCj4gPj4NCj4gPj4gLS0NCj4gPj4NCj4gPj4NCj4gPj4gw4lsacOhcyBUYW3DoXMNCj4g
Pj4gVGhvbWFzIEVsaWFzDQo+ID4+DQo+ID4+IEVUSVRbbndwcm9dIEtGVCwgw5xneXZlemV0xZEt
SMOhbMOzemF0Yml6dG9uc8OhZ2kgc3BlY2lhbGlzdGENCj4gPj4gRVRJVFtud3Byb10gTHRkLCBH
ZW5lcmFsIE1hbmFnZXItTmV0d29yayBzZWN1cml0eSBzcGVjaWFsaXN0DQo+ID4+DQo+ID4+IFRl
bC4gSFU6ICszNi8zMC00OTctMTYyNg0KPiA+PiBUZWwuIERFOiArNDkvMTYwLTY1MS04NzIzDQo+
ID4+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0KPiA+Pg0K
PiA+PiBPa2xldmVsZXMgbcOpcm7DtmstaW5mb3JtYXRpa3VzIChNU0MpDQo+ID4+IE1hc3RlciBv
ZiBTY2llbmNlIGluIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4gPj4NCj4gPj4gS2Fw
Y3NvbGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0DQo+ID4+IEpvZ2kg
bnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtaHUudHh0DQo+ID4+
IENvbnRhY3Q6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBocC9lbi9jb250YWN0DQo+ID4+IERpc2Ns
YWltZXI6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0DQo+ID4NCj4gPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IHdpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcNCj4gPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbA0KPiA+DQo+IA0KPiAtLQ0KPiANCj4gDQo+IMOJbGnDoXMgVGFtw6Fz
DQo+IFRob21hcyBFbGlhcw0KPiANCj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fs
w7N6YXRiaXp0b25zw6FnaSBzcGVjaWFsaXN0YQ0KPiBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwg
TWFuYWdlci1OZXR3b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QNCj4gDQo+IFRlbC4gSFU6ICszNi8z
MC00OTctMTYyNg0KPiBUZWwuIERFOiArNDkvMTYwLTY1MS04NzIzDQo+IE9wZW5QR1AgcHVia2V5
OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0KPiANCj4gT2tsZXZlbGVzIG3DqXJuw7Zr
LWluZm9ybWF0aWt1cyAoTVNDKQ0KPiBNYXN0ZXIgb2YgU2NpZW5jZSBpbiBJbmZvcm1hdGlvbiBU
ZWNobm9sb2d5IChNU0MpDQo+IA0KPiBLYXBjc29sYXQ6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBo
cC9odS9rYXBjc29sYXQNCj4gSm9naSBueWlsYXRrb3phdDogaHR0cDovL2V0aXQuaHUvZGlzY2xh
aW1lci1lbWFpbC1odS50eHQNCj4gQ29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2Vu
L2NvbnRhY3QNCj4gRGlzY2xhaW1lcjogaHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1l
bi50eHQNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93
aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu May 19 14:35:29 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 19 May 2016 14:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b3P2p-0001dY-Im; Thu, 19 May 2016 14:35:23 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=940746c73=Paul.Durrant@citrix.com>)
 id 1b3P2o-0001dL-SX
 for win-pv-devel@lists.xenproject.org; Thu, 19 May 2016 14:35:22 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 8D/AF-18833-A2FCD375; Thu, 19 May 2016 14:35:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQlftvG2
 4QfssFos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacePDO8aCc5oV049vYG1g7NDsYuTkkBDwk1g9
 9xIriM0moCOx9Oh8JhBbRKBa4kvfE2YQW1ggW2LOu0msEPEciZ5V/1ggbD+JhssvwWwWAVWJn
 9u2g9XwCrhLvDnzAaiXi0NI4AajxNUJp9hBEpwC6hLHT20DW8AoICvxpXE12AJmAXGJW08gFk
 sICEgs2XOeGcIWlXj5+B8rhG0gsXXpPqBlHED1mhLrd+lDtCpKTOl+yA6xV1Di5MwnYPcICah
 IbHl8AGoMt8TKz39YJjCKzEKybRbCpFlIJs1CMmkBI8sqRvXi1KKy1CJdI72kosz0jJLcxMwc
 XUMDM73c1OLixPTUnMSkYr3k/NxNjMB4YACCHYzL/jodYpTkYFIS5XU/YxsuxJeUn1KZkVicE
 V9UmpNafIhRhoNDSYJ32lmgnGBRanpqRVpmDjAyYdISHDxKIrxTQNK8xQWJucWZ6RCpU4y6HN
 cuP1jLJMSSl5+XKiXOexakSACkKKM0D24ELElcYpSVEuZlBDpKiKcgtSg3swRV/hWjOAejkjD
 vI5ApPJl5JXCbXgEdwQR0xC0xG5AjShIRUlINjBmlevbLI80q+l0UkqW5GSyWSSiWpD6+w+zB
 O7UpeMWfFaEczDea/jTm3BFzlTW9OOvTPF3H5Ganx+y74zc+jrH397Twt3Ngs5irtZqzT2PBw
 UPb9f2nNdWs/xrSJH73ZWOUuWiVajXPT3c79rsmv2N//dVWiju957hQ+vR9kwO/vtH9Ju2mxF
 KckWioxVxUnAgANnQF5Q0DAAA=
X-Env-Sender: prvs=940746c73=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1463668517!14429374!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53287 invoked from network); 19 May 2016 14:35:18 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 19 May 2016 14:35:18 -0000
X-IronPort-AV: E=Sophos;i="5.26,334,1459814400"; d="scan'208";a="22289215"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
Thread-Index: AQHRpT3rXzJtYKuX3kuI/xQ1pmwH0Z+nbZGQgBiveQCAADbvMP//7iWAgAAmMXA=
Date: Thu, 19 May 2016 14:28:23 +0000
Message-ID: <3fcf2f411b714963ad8655f275f93ee9@AMSPEX02CL03.citrite.net>
References: <5728A468.2080708@etit.hu>
 <70128577a84f43689774a595bb11d49c@AMSPEX02CL03.citrite.net>
 <573DA854.7020006@etit.hu>
 <9e83ed5bb43348239bc743485eb5d615@AMSPEX02CL03.citrite.net>
 <573DC76F.7050909@etit.hu>
In-Reply-To: <573DC76F.7050909@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] SIGNED WINPV DRIVERS: Are Discussions still
 ongoing with the Linux Foundation?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDE5IE1heSAyMDE2IDE1OjAyDQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2
ZWxdIFNJR05FRCBXSU5QViBEUklWRVJTOiBBcmUgRGlzY3Vzc2lvbnMgc3RpbGwNCj4gb25nb2lu
ZyB3aXRoIHRoZSBMaW51eCBGb3VuZGF0aW9uPw0KPiANCj4gSGkuDQo+IA0KPiA+IEFuIGFsdGVy
bmF0aXZlIHdvdWxkIGJlIHVzZSB0aGUgQ2l0cml4IGJyYW5kZWQgZHJpdmVycyBmcm9tIFdpbmRv
d3MNCj4gVXBkYXRlLiBZb3UgY2FuIGdldCB0aGVzZSBieSBhZGRpbmcgdGhlIENpdHJpeCBQViBk
ZXZpY2UgdG8geW91ciBWTSBjb25maWcuDQo+IFRoaXMgY2FuIGJlIGRvbmUgYnkgYWRkaW5nIGEg
bGluZSBvZiB0aGlzIGZvcm0gdG8geW91IHhsLmNmZzoNCj4gPiBkZXZpY2VfbW9kZWxfYXJncz1b
ICItZGV2aWNlIiwgInhlbi1wdmRldmljZSxkZXZpY2UtaWQ9MHhjMDAwIiBdDQo+ID4gKGFzc3Vt
aW5nIHlvdSBhcmUgdXNpbmcgdXBzdHJlYW0gUUVNVSkNCj4gPiBUaGlzIHNob3VsZCBjYXVzZSBh
biBlbXVsYXRlZCBQQ0kgZGV2aWNlIHdpdGggdmVuZG9yIGlkIDB4NTg1MyBhbmQgZGV2aWNlDQo+
IGlkIDB4QzAwMCB0byBhcHBlYXIgaW4geW91ciBWTSBhbmQgV2luZG93cyBzaG91bGQgdGhlbiBi
ZSBhYmxlIHRvIGZldGNoDQo+IHRoZSBDaXRyaXggUFYgZHJpdmVycyBmcm9tIFdpbmRvd3MgVXBk
YXRlLg0KPiANCj4gSWYgdGhpcyBpcyBzdWNoIGVhc3kgKEkgZGlkIG5vdCBldmVuIHRoYXVnaHQg
YWJvdXQgc3VjaCBhIHNvbHV0aW9uIHlldCksDQo+IEkgY2Fubm90IHVuZGVyc3RhbmQgd2h5IHdl
IGZpZ2h0IHdpdGggdGhpcyAic2lnbmluZyIgaXNzdWUuDQo+IA0KPiBJc24ndCBpdCBwb3NzaWJs
ZSBmb3IgQ2l0cml4IHRvIHNpZ24gdGhlc2UgY29tbXVuaXR5IGRyaXZlcnMgdG9vPw0KPiANCg0K
SSBkb24ndCBoYXZlIHRoZSBhdXRob3JpdHkgdG8gZGVjaWRlIHRoYXQuDQoNCj4gSXMgdGhpcyBo
YXMgYW55IGxlZ2FsL3BlcmZvcm1hbmNlL3NlY3VyaXR5IGlzc3VlcyAoYXNzdW1pbmcgY2l0cml4
DQo+IGRyaXZlcnMgYXJlIG5lYXJseSB0aGUgc2FtZSBhcyB0aGUgY29tbXVuaXR5IG9uZXMpPw0K
PiANCg0KVGhlIEVVTEEgb24gdGhlIENpdHJpeCBkcml2ZXJzIGRvZXMgbm90IHJlcXVpcmUgdGhh
dCB0aGUgZHJpdmVycyBiZSBydW4gb24gYSBWTSBydW5uaW5nIG9uIFhlblNlcnZlciBhbmQgdGhl
IHNvdXJjZSBmcm9tIHdoaWNoIHRoZXkgd2VyZSBidWlsdCBpcyB2ZXJ5IGNsb3NlIHRvIHVwc3Ry
ZWFtIGJ1dCBub3QgaWRlbnRpY2FsLiANCg0KICBQYXVsDQoNCj4gPg0KPiA+ICAgIFBhdWwNCj4g
Pg0KPiA+Pj4NCj4gPj4+ICAgUGF1bA0KPiA+Pj4NCj4gPj4+PiBUaHguDQo+ID4+Pj4NCj4gPj4+
PiAtLQ0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiDDiWxpw6FzIFRhbcOhcw0KPiA+Pj4+IFRob21h
cyBFbGlhcw0KPiA+Pj4+DQo+ID4+Pj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fs
w7N6YXRiaXp0b25zw6FnaSBzcGVjaWFsaXN0YQ0KPiA+Pj4+IEVUSVRbbndwcm9dIEx0ZCwgR2Vu
ZXJhbCBNYW5hZ2VyLU5ldHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdA0KPiA+Pj4+DQo+ID4+Pj4g
VGVsLiBIVTogKzM2LzMwLTQ5Ny0xNjI2DQo+ID4+Pj4gVGVsLiBERTogKzQ5LzE2MC02NTEtODcy
Mw0KPiA+Pj4+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0K
PiA+Pj4+DQo+ID4+Pj4gT2tsZXZlbGVzIG3DqXJuw7ZrLWluZm9ybWF0aWt1cyAoTVNDKQ0KPiA+
Pj4+IE1hc3RlciBvZiBTY2llbmNlIGluIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4g
Pj4+Pg0KPiA+Pj4+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2h1L2thcGNz
b2xhdA0KPiA+Pj4+IEpvZ2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXIt
ZW1haWwtaHUudHh0DQo+ID4+Pj4gQ29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2Vu
L2NvbnRhY3QNCj4gPj4+PiBEaXNjbGFpbWVyOiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVyLWVt
YWlsLWVuLnR4dA0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0K
PiA+Pj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+PiBodHRwOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0K
PiA+Pj4NCj4gPj4NCj4gPj4gLS0NCj4gPj4NCj4gPj4NCj4gPj4gw4lsacOhcyBUYW3DoXMNCj4g
Pj4gVGhvbWFzIEVsaWFzDQo+ID4+DQo+ID4+IEVUSVRbbndwcm9dIEtGVCwgw5xneXZlemV0xZEt
SMOhbMOzemF0Yml6dG9uc8OhZ2kgc3BlY2lhbGlzdGENCj4gPj4gRVRJVFtud3Byb10gTHRkLCBH
ZW5lcmFsIE1hbmFnZXItTmV0d29yayBzZWN1cml0eSBzcGVjaWFsaXN0DQo+ID4+DQo+ID4+IFRl
bC4gSFU6ICszNi8zMC00OTctMTYyNg0KPiA+PiBUZWwuIERFOiArNDkvMTYwLTY1MS04NzIzDQo+
ID4+IE9wZW5QR1AgcHVia2V5OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0KPiA+Pg0K
PiA+PiBPa2xldmVsZXMgbcOpcm7DtmstaW5mb3JtYXRpa3VzIChNU0MpDQo+ID4+IE1hc3RlciBv
ZiBTY2llbmNlIGluIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4gPj4NCj4gPj4gS2Fw
Y3NvbGF0OiBodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0DQo+ID4+IEpvZ2kg
bnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtaHUudHh0DQo+ID4+
IENvbnRhY3Q6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBocC9lbi9jb250YWN0DQo+ID4+IERpc2Ns
YWltZXI6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0DQo+ID4NCj4gPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IHdpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcNCj4gPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbA0KPiA+DQo+IA0KPiAtLQ0KPiANCj4gDQo+IMOJbGnDoXMgVGFtw6Fz
DQo+IFRob21hcyBFbGlhcw0KPiANCj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fs
w7N6YXRiaXp0b25zw6FnaSBzcGVjaWFsaXN0YQ0KPiBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwg
TWFuYWdlci1OZXR3b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QNCj4gDQo+IFRlbC4gSFU6ICszNi8z
MC00OTctMTYyNg0KPiBUZWwuIERFOiArNDkvMTYwLTY1MS04NzIzDQo+IE9wZW5QR1AgcHVia2V5
OiBodHRwOi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYw0KPiANCj4gT2tsZXZlbGVzIG3DqXJuw7Zr
LWluZm9ybWF0aWt1cyAoTVNDKQ0KPiBNYXN0ZXIgb2YgU2NpZW5jZSBpbiBJbmZvcm1hdGlvbiBU
ZWNobm9sb2d5IChNU0MpDQo+IA0KPiBLYXBjc29sYXQ6IGh0dHA6Ly9ldGl0Lmh1L2luZGV4LnBo
cC9odS9rYXBjc29sYXQNCj4gSm9naSBueWlsYXRrb3phdDogaHR0cDovL2V0aXQuaHUvZGlzY2xh
aW1lci1lbWFpbC1odS50eHQNCj4gQ29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2Vu
L2NvbnRhY3QNCj4gRGlzY2xhaW1lcjogaHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1l
bi50eHQNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93
aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DCx-0000nf-2R; Tue, 24 May 2016 14:21:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCw-0000nT-1F
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:18 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 82/A6-26543-D5364475; Tue, 24 May 2016 14:21:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRWlGSWpSXmKPExsXitHRDpG5Msku
 4wd6Z5hZ/Fic6MHoc/nCFJYAxijUzLym/IoE148iFc0wFxzgrrr6+wtrAeJK9i5GTQ0LAX+Ll
 y3XMIDabgIbEjM7FLCC2iIC6xL7PW5lAbGYBNYnr+7tYQWxhAR+JlROuMILYLAKqEh+27ASL8
 wq4Suz8s50JYqaGxKaGGWwgNqeAm8S7D/fBZgoB1Xze9J0RwlaS+Lb4BTNEr6DEyZlPWCB2SU
 gcfAERlxDglrh9eirzBEa+WUjKZiEpW8DItIpRozi1qCy1SNfQUC+pKDM9oyQ3MTMHyDPRy00
 tLk5MT81JTCrWS87P3cQIDCkGINjBeGaF8yFGSQ4mJVFezkSXcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvHdBcoJFqempFWmZOcDghklLcPAoifD+AUnzFhck5hZnpkOkTjHqcsxafmctkxBLX
 n5eqpQ4r2ASUJEASFFGaR7cCFikXWKUlRLmZQQ6SoinILUoN7MEVf4VozgHo5IwLy/IFJ7MvB
 K4Ta+AjmACOsL/izPIESWJCCmpBkbXpguGSho5ZRd7V8/UPXTSxrmx9urxL5+ez/Zp+GohJGl
 tt/Z4QKSV0uI3j29+aDdjD3eQtFY24VqwUndO4GddtkOroroaKpvqps9Yxr3x7r3SQPvdyaJd
 C31l01dOsSzrublrn2C46I8S7bjW05yNp1k2v3fpdmCIc6xZ9fK1S4LklPtqDUosxRmJhlrMR
 cWJAH0dOgmvAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64267 invoked from network); 24 May 2016 14:21:16 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:16 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289451"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:43 +0100
Message-ID: <1464099660-12432-4-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 03/20] Add IRP_MJ_CLEANUP handler that calls
	XenIfaceCleanup
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy94ZW5pZmFjZS9mZG8uYyB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh
bmdlZCwgMjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9mZG8uYyBi
L3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCA2ZDE3MTg5Li4xOWU1MGZlIDEwMDY0NAotLS0gYS9z
cmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC0yMzAxLDYgKzIz
MDEsMjUgQEAgRmRvRGlzcGF0Y2hTeXN0ZW1Db250cm9sKAogICAgIHJldHVybiBzdGF0dXM7CiB9
CiAKK3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUworRmRvRGlzcGF0Y2hDbGVhbnVw
KAorICAgIElOICBQWEVOSUZBQ0VfRkRPICAgRmRvLAorICAgIElOICBQSVJQICAgICAgICAgICAg
SXJwCisgICAgKQoreworICAgIFBJT19TVEFDS19MT0NBVElPTiAgU3RhY2tMb2NhdGlvbjsKKyAg
ICBQRklMRV9PQkpFQ1QgICAgICAgIEZpbGVPYmplY3Q7CisKKyAgICBTdGFja0xvY2F0aW9uID0g
SW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJcnApOworICAgIEZpbGVPYmplY3QgPSBTdGFj
a0xvY2F0aW9uLT5GaWxlT2JqZWN0OworCisgICAgLy8gWGVuSWZhY2VDbGVhbnVwIHJlcXVpcmVz
IFBBU1NJVkVfTEVWRUwgYXMgaXQgY2FuIGNhbGwgS2VGbHVzaFF1ZXVlZERwY3MKKyAgICBBU1NF
UlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsKKyAgICBYZW5JZmFj
ZUNsZWFudXAoRmRvLCBGaWxlT2JqZWN0KTsKKworICAgIHJldHVybiBGZG9EaXNwYXRjaENvbXBs
ZXRlKEZkbywgSXJwKTsKK30KKwogTlRTVEFUVVMKIEZkb0Rpc3BhdGNoKAogICAgIElOICBQWEVO
SUZBQ0VfRkRPICAgRmRvLApAQCAtMjMyOSw2ICsyMzQ4LDEwIEBAIEZkb0Rpc3BhdGNoKAogICAg
ICAgICBzdGF0dXMgPSBGZG9EaXNwYXRjaFN5c3RlbUNvbnRyb2woRmRvLCBJcnApOwogICAgICAg
ICBicmVhazsKIAorICAgIGNhc2UgSVJQX01KX0NMRUFOVVA6CisgICAgICAgIHN0YXR1cyA9IEZk
b0Rpc3BhdGNoQ2xlYW51cChGZG8sIElycCk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBJ
UlBfTUpfQ1JFQVRFOgogICAgIGNhc2UgSVJQX01KX0NMT1NFOgogICAgIGNhc2UgSVJQX01KX1JF
QUQ6Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DCy-0000nr-3P; Tue, 24 May 2016 14:21:20 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCw-0000nV-J9
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:18 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
 75/6F-12888-D5364475; Tue, 24 May 2016 14:21:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRWlGSWpSXmKPExsXitHRDpG5ssku
 4Qd8+VYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WnqZvaC1fIVH751sDcwbpbsYuTkkBDwl5j4
 aAcriM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i6gGg4OYQE3iXcrEkDCLAKqEn3rP4OV8
 wq4SjSfXswOMVJDYlPDDDYQW0hASeLb4hfMEDWCEidnPmGBGCkhcfAFRFxCgFvi9umpzBMYeW
 YhKZuFpGwBI9MqRo3i1KKy1CJdQ0O9pKLM9IyS3MTMHCDPRC83tbg4MT01JzGpWC85P3cTIzB
 AGIBgB+OZFc6HGCU5mJREeTkTXcKF+JLyUyozEosz4otKc1KLDzHKcHAoSfDeBckJFqWmp1ak
 ZeYAQxUmLcHBoyTC+wckzVtckJhbnJkOkTrFqCglziuYBJQQAElklObBtcHi4xKjrJQwLyPQI
 UI8BalFuZklqPKvGMU5GJWEeXlBpvBk5pXATX8FtJgJaLH/F2eQxSWJCCmpBsYcW7YDe9tO2X
 hHhCXeDZgi4StesKzLQjR4oUuXhdTqAKUpFy7ff7AmfUHQ7rm/DZdOfbS8sDFDf2lXbsFF/gW
 OKV0FDy7umMDE4iPKGvWw8R1j5eNUjcqIFyd/TNUTibCIVr4ie/eeck9mrMCtmQfuda1b6XtR
 9GdHc8bF419jN68W23QnXUuJpTgj0VCLuag4EQDG5oTmigIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64309 invoked from network); 24 May 2016 14:21:17 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:17 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289452"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:40 +0100
Message-ID: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 00/20] Use IOCTL interface instead of WMI in
	liteagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIFdNSSBoYW5kbGVyIGluIHRoZSBsaXRlYWdlbnQgZG9lcyBub3QgcmVjb3ZlciBmcm9tIHhl
bmlmYWNlCmRpc2FibGUvZW5hYmxlLiBUaGUgbGl0ZWFnZW50IGFsc28gY29udGFpbnMgYSBuby1s
b25nZXItbmVjZXNzYXJ5Cm92ZXJ5IGNvbXBsaWNhdGVkIGRlc2lnbiwgaGF2aW5nIGV2b2x2ZWQg
ZnJvbSBhIFhlblNlcnZlciBhZ2VudC4KClRoZXNlIHBhdGNoZWQgYWRkIGV4dHJhIElPQ1RMcyB0
byBYZW5JZmFjZSwgYW5kIHJlcGxhY2UgdGhlIGxpdGVhZ2VudAp3aXRoIGEgc2ltcGxpZmllZCBQ
blAgYXdhcmUgc2VydmljZS4KCk93ZW4gU21pdGggKDIwKToKICBBZGQgU1VTUEVORCBpbnRlcmZh
Y2UgSU9DVExzCiAgQWRkIFNIQVJFRElORk8gaW50ZXJmYWNlIElPQ1RMCiAgQWRkIElSUF9NSl9D
TEVBTlVQIGhhbmRsZXIgdGhhdCBjYWxscyBYZW5JZmFjZUNsZWFudXAKICBSZW1vdmUgd2luMzJz
dHViYWdlbnQKICBBZGQgYmFzZSBkby1ub3RoaW5nIHNlcnZpY2UKICBBZGQgRGV2aWNlTGlzdAog
IFRyYWNrIGEgc2luZ2xlIGRldmljZSBpbiB0aGUgc2VydmljZS4KICBBZGQgWGVuSWZhY2VJdGYK
ICBSZXNvbHZlIGxpZmVjeWNsZSBidWdzCiAgQWRkIFNlcnZpY2VJbnN0YWxsIGFuZCBhZGRpdGlv
bmFsIGV2ZW50cwogIEFkZCBTZXR1cC90ZWFyZG93biBvZiBhY3RpdmUgZGV2aWNlIGFuZCBsb2dn
aW5nIHRvCiAgICBPblN1c3BlbmQvT25TaHV0ZG93bgogIEZpeCBwcmVjb21waWxlZCBoZWFkZXJz
IG9uIGNoZWNrZWQgYnVpbGRzCiAgQWRkIFNldFhlblRpbWUgZnVuY3Rpb25hbGl0eQogIFByb3Rl
Y3QgYWN0aXZlIGRldmljZSB3aXRoIGNyaXRpY2FsIHNlY3Rpb24KICBBZGQgT25TaHV0ZG93biBo
YW5kbGVyIHRvIHBvd2Vyb2ZmL2hhbHQvcmVib290L2hpYmVybmF0ZS9zMyBWTQogIE9ubHkgYWNr
bm93bGVkZ2UgdGhlIHNodXRkb3duIGlmIHR5cGUgaXMga25vd24KICBBZGQgZXZlbnQgbG9nIGVu
dHJpZXMgZm9yIHN1c3BlbmQgYW5kIGVycm9yCiAgQWRkIElPQ1RMX1hFTklGQUNFX0xPRyB0byBk
dW1wIGEgbG9nIG1lc3NhZ2UgdG8gRG9tMAogIER5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSBidWZm
ZXIgZm9yIGxvZ2dpbmcKICBJb2N0bExvZyBoYW5kbGVyIHNob3VsZG50IGJlIGluIHdpdGggdGhl
IHN0b3JlIElPQ1RMcywgYW5kIGRvbnQKICAgIGZhaWwgb24gL24vciBpbiBsb2cgbWVzc2FnZXMK
CiBpbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oICAgICAgICAgIHwgICA1NSArKwogc3JjL2xpdGVh
Z2VudC9EZXZpY2VMaXN0LmNwcCAgICAgICB8ICAzMDAgKysrKysrKysKIHNyYy9saXRlYWdlbnQv
RGV2aWNlTGlzdC5oICAgICAgICAgfCAgIDkzICsrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQu
Y3BwICAgICAgICB8ICA2MTggKysrKysrKysrKysrKysrKysKIHNyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmggICAgICAgICAgfCAgMTAwICsrKwogc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAg
ICAgICB8ICAxNTUgKysrKysKIHNyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaCAgICAgICAgfCAg
IDYzICsrCiBzcmMvbGl0ZWFnZW50L2xpdGVhZ2VudC5yYyAgICAgICAgIHwgICA2MCArKwogc3Jj
L2xpdGVhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYgKysKIHNyYy9saXRlYWdlbnQv
eGVuLmljbyAgICAgICAgICAgICAgfCAgQmluIDAgLT4gMjUyMTQgYnl0ZXMKIHNyYy93aW4zMnN0
dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAgfCAxMzMxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICB8ICAgODggLS0t
CiBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAgIHwgIDIzMCAtLS0tLS0tCiBzcmMv
d2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oICAgIHwgIDEyNiAtLS0tCiBzcmMvd2luMzJzdHVi
YWdlbnQvWFNlcnZpY2UuY3BwICAgIHwgMTA0NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaCAgICAgIHwgICA1NCAtLQogc3JjL3dpbjMy
c3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICB8ICAxMDIgLS0tCiBzcmMvd2luMzJzdHViYWdlbnQv
bWVzc2FnZXMubWMgICAgIHwgICA2NiAtLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHAg
ICAgICB8ICAgMzkgLS0KIHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCAgICAgICAgfCAgIDQz
IC0tCiBzcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjICAgIHwgICA2MCAtLQogc3JjL3dp
bjMyc3R1YmFnZW50L3hlbi5pY28gICAgICAgICB8ICBCaW4gMjUyMTQgLT4gMCBieXRlcwogc3Jj
L3hlbmlmYWNlL2Zkby5jICAgICAgICAgICAgICAgICB8ICAgMzUgKwogc3JjL3hlbmlmYWNlL2Zk
by5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL3hlbmlmYWNlL2lvY3RsX3NoYXJlZGlu
Zm8uYyAgICB8ICAgNzAgKysKIHNyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMgICAgICAgfCAg
MjIzICsrKysrKwogc3JjL3hlbmlmYWNlL2lvY3Rscy5jICAgICAgICAgICAgICB8ICAgOTEgKyst
CiBzcmMveGVuaWZhY2UvaW9jdGxzLmggICAgICAgICAgICAgIHwgICA2MyArKwogdnMyMDEyL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgNTAgKy0KIHZzMjAxMi94ZW5pZmFjZS94ZW5p
ZmFjZS52Y3hwcm9qICAgfCAgICAyICsKIHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2ogfCAgIDQ3ICstCiB2czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiAgIHwgICAgMiAr
CiAzMiBmaWxlcyBjaGFuZ2VkLCAyMDE3IGluc2VydGlvbnMoKyksIDMyNjIgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IHNyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saXRlYWdlbnQvWGVu
SWZhY2VJdGYuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0
Zi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9saXRlYWdlbnQucmMKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jCiBjcmVhdGUgbW9kZSAxMDA2
NDQgc3JjL2xpdGVhZ2VudC94ZW4uaWNvCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1
YmFnZW50L1dtaUFjY2Vzc29yLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC9XbWlBY2Nlc3Nvci5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50
L1hTQWNjZXNzb3IuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hT
QWNjZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2Vydmlj
ZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2VzLm1jCiBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz
cmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJz
dHViYWdlbnQvdzMyeGFnZW50LnJjCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFn
ZW50L3hlbi5pY28KIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuaWZhY2UvaW9jdGxfc2hhcmVk
aW5mby5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYwoK
LS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DCx-0000nf-2R; Tue, 24 May 2016 14:21:19 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCw-0000nT-1F
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:18 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 82/A6-26543-D5364475; Tue, 24 May 2016 14:21:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRWlGSWpSXmKPExsXitHRDpG5Msku
 4wd6Z5hZ/Fic6MHoc/nCFJYAxijUzLym/IoE148iFc0wFxzgrrr6+wtrAeJK9i5GTQ0LAX+Ll
 y3XMIDabgIbEjM7FLCC2iIC6xL7PW5lAbGYBNYnr+7tYQWxhAR+JlROuMILYLAKqEh+27ASL8
 wq4Suz8s50JYqaGxKaGGWwgNqeAm8S7D/fBZgoB1Xze9J0RwlaS+Lb4BTNEr6DEyZlPWCB2SU
 gcfAERlxDglrh9eirzBEa+WUjKZiEpW8DItIpRozi1qCy1SNfQUC+pKDM9oyQ3MTMHyDPRy00
 tLk5MT81JTCrWS87P3cQIDCkGINjBeGaF8yFGSQ4mJVFezkSXcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvHdBcoJFqempFWmZOcDghklLcPAoifD+AUnzFhck5hZnpkOkTjHqcsxafmctkxBLX
 n5eqpQ4r2ASUJEASFFGaR7cCFikXWKUlRLmZQQ6SoinILUoN7MEVf4VozgHo5IwLy/IFJ7MvB
 K4Ta+AjmACOsL/izPIESWJCCmpBkbXpguGSho5ZRd7V8/UPXTSxrmx9urxL5+ez/Zp+GohJGl
 tt/Z4QKSV0uI3j29+aDdjD3eQtFY24VqwUndO4GddtkOroroaKpvqps9Yxr3x7r3SQPvdyaJd
 C31l01dOsSzrublrn2C46I8S7bjW05yNp1k2v3fpdmCIc6xZ9fK1S4LklPtqDUosxRmJhlrMR
 cWJAH0dOgmvAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64267 invoked from network); 24 May 2016 14:21:16 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:16 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289451"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:43 +0100
Message-ID: <1464099660-12432-4-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 03/20] Add IRP_MJ_CLEANUP handler that calls
	XenIfaceCleanup
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy94ZW5pZmFjZS9mZG8uYyB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh
bmdlZCwgMjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9mZG8uYyBi
L3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCA2ZDE3MTg5Li4xOWU1MGZlIDEwMDY0NAotLS0gYS9z
cmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC0yMzAxLDYgKzIz
MDEsMjUgQEAgRmRvRGlzcGF0Y2hTeXN0ZW1Db250cm9sKAogICAgIHJldHVybiBzdGF0dXM7CiB9
CiAKK3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUworRmRvRGlzcGF0Y2hDbGVhbnVw
KAorICAgIElOICBQWEVOSUZBQ0VfRkRPICAgRmRvLAorICAgIElOICBQSVJQICAgICAgICAgICAg
SXJwCisgICAgKQoreworICAgIFBJT19TVEFDS19MT0NBVElPTiAgU3RhY2tMb2NhdGlvbjsKKyAg
ICBQRklMRV9PQkpFQ1QgICAgICAgIEZpbGVPYmplY3Q7CisKKyAgICBTdGFja0xvY2F0aW9uID0g
SW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJcnApOworICAgIEZpbGVPYmplY3QgPSBTdGFj
a0xvY2F0aW9uLT5GaWxlT2JqZWN0OworCisgICAgLy8gWGVuSWZhY2VDbGVhbnVwIHJlcXVpcmVz
IFBBU1NJVkVfTEVWRUwgYXMgaXQgY2FuIGNhbGwgS2VGbHVzaFF1ZXVlZERwY3MKKyAgICBBU1NF
UlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsKKyAgICBYZW5JZmFj
ZUNsZWFudXAoRmRvLCBGaWxlT2JqZWN0KTsKKworICAgIHJldHVybiBGZG9EaXNwYXRjaENvbXBs
ZXRlKEZkbywgSXJwKTsKK30KKwogTlRTVEFUVVMKIEZkb0Rpc3BhdGNoKAogICAgIElOICBQWEVO
SUZBQ0VfRkRPICAgRmRvLApAQCAtMjMyOSw2ICsyMzQ4LDEwIEBAIEZkb0Rpc3BhdGNoKAogICAg
ICAgICBzdGF0dXMgPSBGZG9EaXNwYXRjaFN5c3RlbUNvbnRyb2woRmRvLCBJcnApOwogICAgICAg
ICBicmVhazsKIAorICAgIGNhc2UgSVJQX01KX0NMRUFOVVA6CisgICAgICAgIHN0YXR1cyA9IEZk
b0Rpc3BhdGNoQ2xlYW51cChGZG8sIElycCk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBJ
UlBfTUpfQ1JFQVRFOgogICAgIGNhc2UgSVJQX01KX0NMT1NFOgogICAgIGNhc2UgSVJQX01KX1JF
QUQ6Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DCy-0000nr-3P; Tue, 24 May 2016 14:21:20 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCw-0000nV-J9
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:18 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
 75/6F-12888-D5364475; Tue, 24 May 2016 14:21:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRWlGSWpSXmKPExsXitHRDpG5ssku
 4Qd8+VYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WnqZvaC1fIVH751sDcwbpbsYuTkkBDwl5j4
 aAcriM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i6gGg4OYQE3iXcrEkDCLAKqEn3rP4OV8
 wq4SjSfXswOMVJDYlPDDDYQW0hASeLb4hfMEDWCEidnPmGBGCkhcfAFRFxCgFvi9umpzBMYeW
 YhKZuFpGwBI9MqRo3i1KKy1CJdQ0O9pKLM9IyS3MTMHCDPRC83tbg4MT01JzGpWC85P3cTIzB
 AGIBgB+OZFc6HGCU5mJREeTkTXcKF+JLyUyozEosz4otKc1KLDzHKcHAoSfDeBckJFqWmp1ak
 ZeYAQxUmLcHBoyTC+wckzVtckJhbnJkOkTrFqCglziuYBJQQAElklObBtcHi4xKjrJQwLyPQI
 UI8BalFuZklqPKvGMU5GJWEeXlBpvBk5pXATX8FtJgJaLH/F2eQxSWJCCmpBsYcW7YDe9tO2X
 hHhCXeDZgi4StesKzLQjR4oUuXhdTqAKUpFy7ff7AmfUHQ7rm/DZdOfbS8sDFDf2lXbsFF/gW
 OKV0FDy7umMDE4iPKGvWw8R1j5eNUjcqIFyd/TNUTibCIVr4ie/eeck9mrMCtmQfuda1b6XtR
 9GdHc8bF419jN68W23QnXUuJpTgj0VCLuag4EQDG5oTmigIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64309 invoked from network); 24 May 2016 14:21:17 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:17 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289452"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:40 +0100
Message-ID: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 00/20] Use IOCTL interface instead of WMI in
	liteagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIFdNSSBoYW5kbGVyIGluIHRoZSBsaXRlYWdlbnQgZG9lcyBub3QgcmVjb3ZlciBmcm9tIHhl
bmlmYWNlCmRpc2FibGUvZW5hYmxlLiBUaGUgbGl0ZWFnZW50IGFsc28gY29udGFpbnMgYSBuby1s
b25nZXItbmVjZXNzYXJ5Cm92ZXJ5IGNvbXBsaWNhdGVkIGRlc2lnbiwgaGF2aW5nIGV2b2x2ZWQg
ZnJvbSBhIFhlblNlcnZlciBhZ2VudC4KClRoZXNlIHBhdGNoZWQgYWRkIGV4dHJhIElPQ1RMcyB0
byBYZW5JZmFjZSwgYW5kIHJlcGxhY2UgdGhlIGxpdGVhZ2VudAp3aXRoIGEgc2ltcGxpZmllZCBQ
blAgYXdhcmUgc2VydmljZS4KCk93ZW4gU21pdGggKDIwKToKICBBZGQgU1VTUEVORCBpbnRlcmZh
Y2UgSU9DVExzCiAgQWRkIFNIQVJFRElORk8gaW50ZXJmYWNlIElPQ1RMCiAgQWRkIElSUF9NSl9D
TEVBTlVQIGhhbmRsZXIgdGhhdCBjYWxscyBYZW5JZmFjZUNsZWFudXAKICBSZW1vdmUgd2luMzJz
dHViYWdlbnQKICBBZGQgYmFzZSBkby1ub3RoaW5nIHNlcnZpY2UKICBBZGQgRGV2aWNlTGlzdAog
IFRyYWNrIGEgc2luZ2xlIGRldmljZSBpbiB0aGUgc2VydmljZS4KICBBZGQgWGVuSWZhY2VJdGYK
ICBSZXNvbHZlIGxpZmVjeWNsZSBidWdzCiAgQWRkIFNlcnZpY2VJbnN0YWxsIGFuZCBhZGRpdGlv
bmFsIGV2ZW50cwogIEFkZCBTZXR1cC90ZWFyZG93biBvZiBhY3RpdmUgZGV2aWNlIGFuZCBsb2dn
aW5nIHRvCiAgICBPblN1c3BlbmQvT25TaHV0ZG93bgogIEZpeCBwcmVjb21waWxlZCBoZWFkZXJz
IG9uIGNoZWNrZWQgYnVpbGRzCiAgQWRkIFNldFhlblRpbWUgZnVuY3Rpb25hbGl0eQogIFByb3Rl
Y3QgYWN0aXZlIGRldmljZSB3aXRoIGNyaXRpY2FsIHNlY3Rpb24KICBBZGQgT25TaHV0ZG93biBo
YW5kbGVyIHRvIHBvd2Vyb2ZmL2hhbHQvcmVib290L2hpYmVybmF0ZS9zMyBWTQogIE9ubHkgYWNr
bm93bGVkZ2UgdGhlIHNodXRkb3duIGlmIHR5cGUgaXMga25vd24KICBBZGQgZXZlbnQgbG9nIGVu
dHJpZXMgZm9yIHN1c3BlbmQgYW5kIGVycm9yCiAgQWRkIElPQ1RMX1hFTklGQUNFX0xPRyB0byBk
dW1wIGEgbG9nIG1lc3NhZ2UgdG8gRG9tMAogIER5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSBidWZm
ZXIgZm9yIGxvZ2dpbmcKICBJb2N0bExvZyBoYW5kbGVyIHNob3VsZG50IGJlIGluIHdpdGggdGhl
IHN0b3JlIElPQ1RMcywgYW5kIGRvbnQKICAgIGZhaWwgb24gL24vciBpbiBsb2cgbWVzc2FnZXMK
CiBpbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oICAgICAgICAgIHwgICA1NSArKwogc3JjL2xpdGVh
Z2VudC9EZXZpY2VMaXN0LmNwcCAgICAgICB8ICAzMDAgKysrKysrKysKIHNyYy9saXRlYWdlbnQv
RGV2aWNlTGlzdC5oICAgICAgICAgfCAgIDkzICsrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQu
Y3BwICAgICAgICB8ICA2MTggKysrKysrKysrKysrKysrKysKIHNyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmggICAgICAgICAgfCAgMTAwICsrKwogc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAg
ICAgICB8ICAxNTUgKysrKysKIHNyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaCAgICAgICAgfCAg
IDYzICsrCiBzcmMvbGl0ZWFnZW50L2xpdGVhZ2VudC5yYyAgICAgICAgIHwgICA2MCArKwogc3Jj
L2xpdGVhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYgKysKIHNyYy9saXRlYWdlbnQv
eGVuLmljbyAgICAgICAgICAgICAgfCAgQmluIDAgLT4gMjUyMTQgYnl0ZXMKIHNyYy93aW4zMnN0
dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAgfCAxMzMxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICB8ICAgODggLS0t
CiBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAgIHwgIDIzMCAtLS0tLS0tCiBzcmMv
d2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oICAgIHwgIDEyNiAtLS0tCiBzcmMvd2luMzJzdHVi
YWdlbnQvWFNlcnZpY2UuY3BwICAgIHwgMTA0NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaCAgICAgIHwgICA1NCAtLQogc3JjL3dpbjMy
c3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICB8ICAxMDIgLS0tCiBzcmMvd2luMzJzdHViYWdlbnQv
bWVzc2FnZXMubWMgICAgIHwgICA2NiAtLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHAg
ICAgICB8ICAgMzkgLS0KIHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCAgICAgICAgfCAgIDQz
IC0tCiBzcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjICAgIHwgICA2MCAtLQogc3JjL3dp
bjMyc3R1YmFnZW50L3hlbi5pY28gICAgICAgICB8ICBCaW4gMjUyMTQgLT4gMCBieXRlcwogc3Jj
L3hlbmlmYWNlL2Zkby5jICAgICAgICAgICAgICAgICB8ICAgMzUgKwogc3JjL3hlbmlmYWNlL2Zk
by5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL3hlbmlmYWNlL2lvY3RsX3NoYXJlZGlu
Zm8uYyAgICB8ICAgNzAgKysKIHNyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMgICAgICAgfCAg
MjIzICsrKysrKwogc3JjL3hlbmlmYWNlL2lvY3Rscy5jICAgICAgICAgICAgICB8ICAgOTEgKyst
CiBzcmMveGVuaWZhY2UvaW9jdGxzLmggICAgICAgICAgICAgIHwgICA2MyArKwogdnMyMDEyL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgNTAgKy0KIHZzMjAxMi94ZW5pZmFjZS94ZW5p
ZmFjZS52Y3hwcm9qICAgfCAgICAyICsKIHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2ogfCAgIDQ3ICstCiB2czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiAgIHwgICAgMiAr
CiAzMiBmaWxlcyBjaGFuZ2VkLCAyMDE3IGluc2VydGlvbnMoKyksIDMyNjIgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IHNyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saXRlYWdlbnQvWGVu
SWZhY2VJdGYuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0
Zi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9saXRlYWdlbnQucmMKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jCiBjcmVhdGUgbW9kZSAxMDA2
NDQgc3JjL2xpdGVhZ2VudC94ZW4uaWNvCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1
YmFnZW50L1dtaUFjY2Vzc29yLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC9XbWlBY2Nlc3Nvci5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50
L1hTQWNjZXNzb3IuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hT
QWNjZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2Vydmlj
ZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2VzLm1jCiBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz
cmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJz
dHViYWdlbnQvdzMyeGFnZW50LnJjCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFn
ZW50L3hlbi5pY28KIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuaWZhY2UvaW9jdGxfc2hhcmVk
aW5mby5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYwoK
LS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD0-0000p4-4X; Tue, 24 May 2016 14:21:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCy-0000o6-KD
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:20 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 65/FA-12657-F5364475; Tue, 24 May 2016 14:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcu2SX
 cYOUJG4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXLiFdaClbUVq9/sYG9gnJ7UxcjJISHgL3Hn
 1CU2EJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgLHE7c8LweIsAqoSf+ZOYwSxe
 QVcJa5P+8wCMVNDYlPDDLCZnAJuEu8+3AeLCwHVfN70nRHCVpL4tvgFM0SvoMTJmU9YIHZJSB
 x8ARLnAJrDLfG3234CI98sJFWzkFQtYGRaxahRnFpUllqka2iol1SUmZ5RkpuYmQPkmejlphY
 XJ6an5iQmFesl5+duYgQGFAMQ7GA8s8L5EKMkB5OSKC9noku4EF9SfkplRmJxRnxRaU5q8SFG
 GQ4OJQneuyA5waLU9NSKtMwcYGjDpCU4eJREeP+ApHmLCxJzizPTIVKnGBWlxHkFk4ASAiCJj
 NI8uDZYPF1ilJUS5mUEOkSIpyC1KDezBFX+FaM4B6OSMC8vyBSezLwSuOmvgBYzAS32/+IMsr
 gkESEl1QAMl6Lri2cL8Kyd+J6tuSyyiPWzK6vtP48VV3590PM64buq0fD+r0nuU0MKrK+150d
 ZO+1Unl7wrl1p4d3wSS4S617Z8W2VfGoqF8srGH3U6fWWfctc6ybx3rSK4uJiXJ/+btmpR3MW
 REis0496XZ6qerEy0cffVEByCYuPQ8Wzri/n7BdO3KHEUpyRaKjFXFScCABw2JgbogIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64361 invoked from network); 24 May 2016 14:21:18 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:18 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289455"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:41 +0100
Message-ID: <1464099660-12432-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 01/20] Add SUSPEND interface IOCTLs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBHZXRDb3VudCA6IHJldHVybnMgY3VycmVudCBzdXNwZW5kIGNvdW50LCBjaGFuZ2VzIG92ZXIg
c3VzcGVuZHMKKiBSZWdpc3RlciA6IHJlZ2lzdGVyIGFuIGV2ZW50IHRoYXQgaXMgc2V0IG9uIHJl
c3VtZSBmcm9tIHN1c3BlbmQKKiBEZXJlZ2lzdGVyOiBkZXJlZ2lzdGVyIHRoZSByZXN1bWUtZnJv
bS1zdXNwZW5kIGV2ZW50CgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNp
dHJpeC5jb20+Ci0tLQogaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMuaCAgICAgICAgfCAgMzcgKysr
KysrKwogc3JjL3hlbmlmYWNlL2Zkby5jICAgICAgICAgICAgICAgfCAgMTIgKysrCiBzcmMveGVu
aWZhY2UvZmRvLmggICAgICAgICAgICAgICB8ICAgMyArCiBzcmMveGVuaWZhY2UvaW9jdGxfc3Vz
cGVuZC5jICAgICB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
IHNyYy94ZW5pZmFjZS9pb2N0bHMuYyAgICAgICAgICAgIHwgIDM0ICsrKysrLQogc3JjL3hlbmlm
YWNlL2lvY3Rscy5oICAgICAgICAgICAgfCAgNDYgKysrKysrKysKIHZzMjAxMi94ZW5pZmFjZS94
ZW5pZmFjZS52Y3hwcm9qIHwgICAxICsKIHZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9q
IHwgICAxICsKIDggZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYwoKZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmggYi9pbmNsdWRlL3hlbmlmYWNlX2lv
Y3Rscy5oCmluZGV4IDE3YmVhYTEuLmRjNTNlNmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuaWZh
Y2VfaW9jdGxzLmgKKysrIGIvaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMuaApAQCAtMzIzLDQgKzMy
Myw0MSBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFH
RVNfSU4gewogICAgIFVMT05HIFJlcXVlc3RJZDsgLyohIFJlcXVlc3QgSUQgdXNlZCBpbiB0aGUg
Y29ycmVzcG9uZGluZyBJT0NUTF9YRU5JRkFDRV9HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgY2Fs
bCAqLwogfSBYRU5JRkFDRV9HTlRUQUJfVU5NQVBfRk9SRUlHTl9QQUdFU19JTiwgKlBYRU5JRkFD
RV9HTlRUQUJfVU5NQVBfRk9SRUlHTl9QQUdFU19JTjsKIAorLyohIFxicmllZiBHZXRzIHRoZSBj
dXJyZW50IHN1c3BlbmQgY291bnQuCisKKyAgICBJbnB1dDogTm9uZQorCisgICAgT3V0cHV0OiBV
TE9ORworKi8KKyNkZWZpbmUgSU9DVExfWEVOSUZBQ0VfU1VTUEVORF9HRVRfQ09VTlQgXAorICAg
IENUTF9DT0RFKEZJTEVfREVWSUNFX1VOS05PV04sIDB4ODMwLCBNRVRIT0RfQlVGRkVSRUQsIEZJ
TEVfQU5ZX0FDQ0VTUykKKworLyohIFxicmllZiBSZWdpc3RlcnMgYW4gZXZlbnQgd2hpY2ggaXMg
c2lnbmFsbGVkIG9uIHJlc3VtZS1mcm9tLXN1c3BlbmQKKworICAgIElucHV0OiBYRU5JRkFDRV9T
VVNQRU5EX1JFR0lTVEVSX0lOCisKKyAgICBPdXRwdXQ6IFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUCisqLworI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSIFwKKyAg
ICBDVExfQ09ERShGSUxFX0RFVklDRV9VTktOT1dOLCAweDgzMSwgTUVUSE9EX0JVRkZFUkVELCBG
SUxFX0FOWV9BQ0NFU1MpCisKKy8qISBcYnJpZWYgSW5wdXQgZm9yIElPQ1RMX1hFTklGQUNFX0dO
VFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTICovCit0eXBlZGVmIHN0cnVjdCBfWEVOSUZBQ0VfU1VT
UEVORF9SRUdJU1RFUl9JTiB7CisgICAgSEFORExFIEV2ZW50OyAvKiE8IEhhbmRsZSB0byBhbiBl
dmVudCBvYmplY3QgdGhhdCB3aWxsIHJlY2VpdmUgc3VzcGVuZCBub3RpZmljYXRpb25zICovCit9
IFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4sICpQWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RF
Ul9JTjsKKworLyohIFxicmllZiBJbnB1dCBmb3IgSU9DVExfWEVOSUZBQ0VfR05UVEFCX1VOTUFQ
X0ZPUkVJR05fUEFHRVMgKi8KK3R5cGVkZWYgc3RydWN0IF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lT
VEVSX09VVCB7CisgICAgUFZPSUQgQ29udGV4dDsgLyohPCBIYW5kbGUgdG8gdGhlIHN1c3BlbmQg
ZXZlbnQgKi8KK30gWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQsICpQWEVOSUZBQ0VfU1VT
UEVORF9SRUdJU1RFUl9PVVQ7CisKKy8qISBcYnJpZWYgRGVyZWdpc3RlcnMgYW4gZXZlbnQgd2hp
Y2ggaXMgc2lnbmFsbGVkIG9uIHJlc3VtZS1mcm9tLXN1c3BlbmQKKworICAgIElucHV0OiBYRU5J
RkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVAorCisgICAgT3V0cHV0OiBOb25lCisqLworI2RlZmlu
ZSBJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX0RFUkVHSVNURVIgXAorICAgIENUTF9DT0RFKEZJTEVf
REVWSUNFX1VOS05PV04sIDB4ODMyLCBNRVRIT0RfQlVGRkVSRUQsIEZJTEVfQU5ZX0FDQ0VTUykK
KwogI2VuZGlmIC8vIF9YRU5JRkFDRV9JT0NUTFNfSF8KZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFj
ZS9mZG8uYyBiL3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCBmYTE0YjViLi42ZDE3MTg5IDEwMDY0
NAotLS0gYS9zcmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC05
MDgsNiArOTA4LDcgQEAgRmRvU3VzcGVuZENhbGxiYWNrTGF0ZSgKICAgICBBU1NFUlQoTlRfU1VD
Q0VTUyhzdGF0dXMpKTsKIAogICAgIFdtaUZpcmVTdXNwZW5kRXZlbnQoRmRvKTsKKyAgICBTdXNw
ZW5kRXZlbnRGaXJlKEZkbyk7CiB9CiAKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRV
UwpAQCAtMjU3MCw2ICsyNTcxLDkgQEAgRmRvQ3JlYXRlKAogICAgIEtlSW5pdGlhbGl6ZVNwaW5M
b2NrKCZGZG8tPkV2dGNobkxvY2spOwogICAgIEluaXRpYWxpemVMaXN0SGVhZCgmRmRvLT5FdnRj
aG5MaXN0KTsKIAorICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZGZG8tPlN1c3BlbmRMb2NrKTsK
KyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkZkby0+U3VzcGVuZExpc3QpOworCiAgICAgS2VJbml0
aWFsaXplU3BpbkxvY2soJkZkby0+SXJwUXVldWVMb2NrKTsKICAgICBJbml0aWFsaXplTGlzdEhl
YWQoJkZkby0+SXJwTGlzdCk7CiAKQEAgLTI2MDIsNiArMjYwNiwxMCBAQCBmYWlsMTU6CiAgICAg
UnRsWmVyb01lbW9yeSgmRmRvLT5JcnBMaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBS
dGxaZXJvTWVtb3J5KCZGZG8tPklycFF1ZXVlTG9jaywgc2l6ZW9mIChLU1BJTl9MT0NLKSk7CiAK
KyAgICBBU1NFUlQoSXNMaXN0RW1wdHkoJkZkby0+U3VzcGVuZExpc3QpKTsKKyAgICBSdGxaZXJv
TWVtb3J5KCZGZG8tPlN1c3BlbmRMaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKKyAgICBSdGxa
ZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMb2NrLCBzaXplb2YgKEtTUElOX0xPQ0spKTsKKwogICAg
IEFTU0VSVChJc0xpc3RFbXB0eSgmRmRvLT5FdnRjaG5MaXN0KSk7CiAgICAgUnRsWmVyb01lbW9y
eSgmRmRvLT5FdnRjaG5MaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBSdGxaZXJvTWVt
b3J5KCZGZG8tPkV2dGNobkxvY2ssIHNpemVvZiAoS1NQSU5fTE9DSykpOwpAQCAtMjcyNCw2ICsy
NzMyLDEwIEBAIEZkb0Rlc3Ryb3koCiAgICAgUnRsWmVyb01lbW9yeSgmRmRvLT5JcnBRdWV1ZUxv
Y2ssIHNpemVvZiAoS1NQSU5fTE9DSykpOwogICAgIFJ0bFplcm9NZW1vcnkoJkZkby0+SXJwUXVl
dWUsIHNpemVvZiAoSU9fQ1NRKSk7CiAKKyAgICBBU1NFUlQoSXNMaXN0RW1wdHkoJkZkby0+U3Vz
cGVuZExpc3QpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMaXN0LCBzaXplb2Yg
KExJU1RfRU5UUlkpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMb2NrLCBzaXpl
b2YgKEtTUElOX0xPQ0spKTsKKwogICAgIEFTU0VSVChJc0xpc3RFbXB0eSgmRmRvLT5FdnRjaG5M
aXN0KSk7CiAgICAgUnRsWmVyb01lbW9yeSgmRmRvLT5FdnRjaG5MaXN0LCBzaXplb2YgKExJU1Rf
RU5UUlkpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPkV2dGNobkxvY2ssIHNpemVvZiAoS1NQ
SU5fTE9DSykpOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2Zkby5oIGIvc3JjL3hlbmlmYWNl
L2Zkby5oCmluZGV4IDZjZDYyOGMuLmM4MmQyYmYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5pZmFjZS9m
ZG8uaAorKysgYi9zcmMveGVuaWZhY2UvZmRvLmgKQEAgLTkyLDYgKzkyLDkgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1hFTklGQUNFX0ZETyB7CiAKICAgICBLU1BJTl9MT0NLICAgICAgICAgICAgICAgICAg
ICAgIEdudHRhYkNhY2hlTG9jazsKIAorICAgIEtTUElOX0xPQ0sgICAgICAgICAgICAgICAgICAg
ICAgU3VzcGVuZExvY2s7CisgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICBTdXNw
ZW5kTGlzdDsKKwogICAgIElPX0NTUSAgICAgICAgICAgICAgICAgICAgICAgICAgSXJwUXVldWU7
CiAgICAgS1NQSU5fTE9DSyAgICAgICAgICAgICAgICAgICAgICBJcnBRdWV1ZUxvY2s7CiAgICAg
TElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICBJcnBMaXN0OwpkaWZmIC0tZ2l0IGEvc3Jj
L3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2YTFhZAotLS0gL2Rldi9udWxs
CisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMKQEAgLTAsMCArMSwyMjMgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQ29weXJpZ2h0IChjKSBSYWZh
bCBXb2pkeWxhIDxvbWVnQGludmlzaWJsZXRoaW5nc2xhYi5jb20+CisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiZHJpdmVyLmgiCisjaW5jbHVkZSAiaW9jdGxzLmgiCisjaW5j
bHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiCisjaW5jbHVkZSAibG9nLmgiCisKK0RFQ0xTUEVDX05P
SU5MSU5FCitOVFNUQVRVUworSW9jdGxTdXNwZW5kR2V0Q291bnQoCisgICAgX19pbiAgUFhFTklG
QUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKKyAg
ICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2luICBVTE9ORyAgICAgICAg
ICAgICBPdXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAgICkKK3sK
KyAgICBOVFNUQVRVUyAgICBzdGF0dXM7CisgICAgUFVMT05HICAgICAgVmFsdWU7CisKKyAgICBz
dGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAgICBpZiAoSW5MZW4gIT0gMCkK
KyAgICAgICAgZ290byBmYWlsMTsKKworICAgIGlmIChPdXRMZW4gIT0gc2l6ZW9mKFVMT05HKSkK
KyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFZhbHVlID0gKFBVTE9ORylCdWZmZXI7CisgICAg
KlZhbHVlID0gWEVOQlVTX1NVU1BFTkQoR2V0Q291bnQsICZGZG8tPlN1c3BlbmRJbnRlcmZhY2Up
OyAKKyAgICAqSW5mbyA9IChVTE9OR19QVFIpc2l6ZW9mKFVMT05HKTsKKyAgICBzdGF0dXMgPSBT
VEFUVVNfU1VDQ0VTUzsKKworICAgIHJldHVybiBzdGF0dXM7CisKK2ZhaWwyOgorICAgIFhlbklm
YWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4iKTsKK2ZhaWwxOgorICAgIFhlbklmYWNlRGVi
dWdQcmludChFUlJPUiwgIkZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3Rh
dHVzOworfQorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsU3VzcGVuZFJlZ2lz
dGVyKAorICAgIF9faW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQVk9JRCAg
ICAgICAgICAgICBCdWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisg
ICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgT3V0TGVuLAorICAgIF9faW4gIFBGSUxFX09CSkVD
VCAgICAgIEZpbGVPYmplY3QsCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAg
ICkKK3sKKyAgICBOVFNUQVRVUyBzdGF0dXM7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfSU4gSW4gPSBCdWZmZXI7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfT1VUIE91
dCA9IEJ1ZmZlcjsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05URVhUIENvbnRleHQ7CisKKyAg
ICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAgICBpZiAoSW5MZW4gIT0g
c2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4pIHx8CisgICAgICAgIE91dExlbiAh
PSBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpKSB7CisgICAgICAgIGdvdG8g
ZmFpbDE7CisgICAgfQorCisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsKKyAgICBDb250
ZXh0ID0gRXhBbGxvY2F0ZVBvb2xXaXRoVGFnKE5vblBhZ2VkUG9vbCwgc2l6ZW9mKFhFTklGQUNF
X1NVU1BFTkRfQ09OVEVYVCksIFhFTklGQUNFX1BPT0xfVEFHKTsKKyAgICBpZiAoQ29udGV4dCA9
PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgUnRsWmVyb01lbW9yeShDb250ZXh0
LCBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9DT05URVhUKSk7CisKKyAgICBDb250ZXh0LT5GaWxl
T2JqZWN0ID0gRmlsZU9iamVjdDsKKworICAgIHN0YXR1cyA9IE9iUmVmZXJlbmNlT2JqZWN0QnlI
YW5kbGUoSW4tPkV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVZFTlRfTU9ESUZZX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKkV4RXZlbnRPYmplY3RUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVXNlck1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
Q29udGV4dC0+RXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsK
KworICAgIFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIj4gU3VzcGVuZCBFdmVudCAlcCwgRk8g
JXBcbiIsIEluLT5FdmVudCwgRmlsZU9iamVjdCk7CisgICAgRXhJbnRlcmxvY2tlZEluc2VydFRh
aWxMaXN0KCZGZG8tPlN1c3BlbmRMaXN0LCAmQ29udGV4dC0+RW50cnksICZGZG8tPlN1c3BlbmRM
b2NrKTsKKworICAgIE91dC0+Q29udGV4dCA9IENvbnRleHQ7CisgICAgKkluZm8gPSBzaXplb2Yo
WEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpOworCisgICAgcmV0dXJuIHN0YXR1czsKKwor
ZmFpbDM6CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDNcbiIpOworICAgIFJ0
bFplcm9NZW1vcnkoQ29udGV4dCwgc2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCkpOwor
ICAgIEV4RnJlZVBvb2xXaXRoVGFnKENvbnRleHQsIFhFTklGQUNFX1BPT0xfVEFHKTsKKworZmFp
bDI6CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOworCitmYWlsMToK
KyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworX0lSUUxfcmVxdWlyZXNfbWF4XyhESVNQQVRDSF9M
RVZFTCkKK1ZPSUQKK1N1c3BlbmRGcmVlRXZlbnQoCisgICAgX19pbiAgICAgUFhFTklGQUNFX0ZE
TyBGZG8sCisgICAgX19pbm91dCAgUFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCBDb250ZXh0Cisg
ICAgKQoreworICAgIFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIkNvbnRleHQgJXAsIEZPICVw
XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb250ZXh0LCBDb250ZXh0LT5GaWxlT2JqZWN0
KTsKKworICAgIE9iRGVyZWZlcmVuY2VPYmplY3QoQ29udGV4dC0+RXZlbnQpOworICAgIFJ0bFpl
cm9NZW1vcnkoQ29udGV4dCwgc2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCkpOworICAg
IEV4RnJlZVBvb2xXaXRoVGFnKENvbnRleHQsIFhFTklGQUNFX1BPT0xfVEFHKTsKK30KKworREVD
TFNQRUNfTk9JTkxJTkUKK05UU1RBVFVTCitJb2N0bFN1c3BlbmREZXJlZ2lzdGVyKAorICAgIF9f
aW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQVk9JRCAgICAgICAgICAgICBC
dWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAgVUxP
TkcgICAgICAgICAgICAgT3V0TGVuLAorICAgIF9faW4gIFBGSUxFX09CSkVDVCAgICAgIEZpbGVP
YmplY3QKKyAgICApCit7CisgICAgTlRTVEFUVVMgc3RhdHVzOworICAgIFBYRU5JRkFDRV9TVVNQ
RU5EX1JFR0lTVEVSX09VVCBJbiA9IEJ1ZmZlcjsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05U
RVhUIENvbnRleHQgPSBOVUxMOworICAgIEtJUlFMIElycWw7CisgICAgUExJU1RfRU5UUlkgTm9k
ZTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZFUl9TSVpFOworICAgIGlmIChJ
bkxlbiAhPSBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpIHx8CisgICAgICAg
IE91dExlbiAhPSAwKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgWGVuSWZh
Y2VEZWJ1Z1ByaW50KFRSQUNFLCAiPiBDb250ZXh0ICVwLCBGTyAlcFxuIiwgSW4tPkNvbnRleHQs
IEZpbGVPYmplY3QpOworCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ss
ICZJcnFsKTsKKyAgICBOb2RlID0gRmRvLT5TdXNwZW5kTGlzdC5GbGluazsKKyAgICB3aGlsZSAo
Tm9kZS0+RmxpbmsgIT0gRmRvLT5TdXNwZW5kTGlzdC5GbGluaykgeworICAgICAgICBDb250ZXh0
ID0gQ09OVEFJTklOR19SRUNPUkQoTm9kZSwgWEVOSUZBQ0VfU1VTUEVORF9DT05URVhULCBFbnRy
eSk7CisKKyAgICAgICAgTm9kZSA9IE5vZGUtPkZsaW5rOworICAgICAgICBpZiAoQ29udGV4dCAh
PSBJbi0+Q29udGV4dCB8fAorICAgICAgICAgICAgQ29udGV4dC0+RmlsZU9iamVjdCAhPSBGaWxl
T2JqZWN0KSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIFJl
bW92ZUVudHJ5TGlzdCgmQ29udGV4dC0+RW50cnkpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ssIElycWwpOworCisgICAgc3Rh
dHVzID0gU1RBVFVTX05PVF9GT1VORDsKKyAgICBpZiAoQ29udGV4dCA9PSBOVUxMIHx8IENvbnRl
eHQgIT0gSW4tPkNvbnRleHQpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBTdXNwZW5kRnJl
ZUV2ZW50KEZkbywgQ29udGV4dCk7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2Zh
aWwyOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4iKTsKKworZmFpbDE6
CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMp
OworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK1ZPSUQKK1N1c3BlbmRFdmVudEZpcmUoCisgICAg
X19pbiAgICBQWEVOSUZBQ0VfRkRPICAgRmRvCisgICAgKQoreworICAgIEtJUlFMICAgICAgIEly
cWw7CisgICAgUExJU1RfRU5UUlkgTm9kZTsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05URVhU
IENvbnRleHQ7CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRmRvLT5TdXNwZW5kTG9jaywgJkly
cWwpOworICAgIE5vZGUgPSBGZG8tPlN1c3BlbmRMaXN0LkZsaW5rOworICAgIHdoaWxlIChOb2Rl
LT5GbGluayAhPSBGZG8tPlN1c3BlbmRMaXN0LkZsaW5rKSB7CisgICAgICAgIENvbnRleHQgPSBD
T05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsIEVudHJ5KTsK
KworICAgICAgICBLZVNldEV2ZW50KENvbnRleHQtPkV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZB
TFNFKTsKKworICAgICAgICBOb2RlID0gTm9kZS0+Rmxpbms7CisgICAgfQorICAgIEtlUmVsZWFz
ZVNwaW5Mb2NrKCZGZG8tPlN1c3BlbmRMb2NrLCBJcnFsKTsKK30KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZh
Y2UvaW9jdGxzLmMKaW5kZXggYThhNTUzOC4uYzZkNDcxZCAxMDA2NDQKLS0tIGEvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwpAQCAtOTQsMTEgKzk0LDI4
IEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICApCiB7CiAgICAgUExJU1RfRU5UUlkgTm9kZTsKLSAg
ICBQWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCBTdG9yZUNvbnRleHQ7Ci0gICAgUFhFTklGQUNFX0VW
VENITl9DT05URVhUIEV2dGNobkNvbnRleHQ7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfQ09OVEVY
VCBTdXNwZW5kQ29udGV4dDsKKyAgICBQWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCAgIFN0b3JlQ29u
dGV4dDsKKyAgICBQWEVOSUZBQ0VfRVZUQ0hOX0NPTlRFWFQgIEV2dGNobkNvbnRleHQ7CiAgICAg
S0lSUUwgSXJxbDsKICAgICBMSVNUX0VOVFJZIFRvRnJlZTsKIAorICAgIC8vIHN1c3BlbmQgZXZl
bnRzCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ssICZJcnFsKTsKKyAg
ICBOb2RlID0gRmRvLT5TdXNwZW5kTGlzdC5GbGluazsKKyAgICB3aGlsZSAoTm9kZS0+Rmxpbmsg
IT0gRmRvLT5TdXNwZW5kTGlzdC5GbGluaykgeworICAgICAgICBTdXNwZW5kQ29udGV4dCA9IENP
TlRBSU5JTkdfUkVDT1JEKE5vZGUsIFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCwgRW50cnkpOwor
CisgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsKKyAgICAgICAgaWYgKFN1c3BlbmRDb250ZXh0
LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBYZW5JZmFjZURlYnVnUHJpbnQoVFJBQ0UsICJTdXNwZW5kIGNvbnRleHQgJXBcbiIsIFN1
c3BlbmRDb250ZXh0KTsKKyAgICAgICAgUmVtb3ZlRW50cnlMaXN0KCZTdXNwZW5kQ29udGV4dC0+
RW50cnkpOworICAgICAgICBTdXNwZW5kRnJlZUV2ZW50KEZkbywgU3VzcGVuZENvbnRleHQpOwor
ICAgIH0KKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRmRvLT5TdXNwZW5kTG9jaywgSXJxbCk7CisK
ICAgICAvLyBzdG9yZSB3YXRjaGVzCiAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3RvcmVX
YXRjaExvY2ssICZJcnFsKTsKICAgICBOb2RlID0gRmRvLT5TdG9yZVdhdGNoTGlzdC5GbGluazsK
QEAgLTIyNyw2ICsyNDQsMTkgQEAgWGVuSWZhY2VJb2N0bCgKICAgICAgICAgc3RhdHVzID0gSW9j
dGxHbnR0YWJVbm1hcEZvcmVpZ25QYWdlcyhGZG8sIEJ1ZmZlciwgSW5MZW4sIE91dExlbik7CiAg
ICAgICAgIGJyZWFrOwogCisgICAgICAgIC8vIHN1c3BlbmQKKyAgICBjYXNlIElPQ1RMX1hFTklG
QUNFX1NVU1BFTkRfR0VUX0NPVU5UOgorICAgICAgICBzdGF0dXMgPSBJb2N0bFN1c3BlbmRHZXRD
b3VudChGZG8sIEJ1ZmZlciwgSW5MZW4sIE91dExlbiwgJklycC0+SW9TdGF0dXMuSW5mb3JtYXRp
b24pOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSU9DVExfWEVOSUZBQ0VfU1VTUEVORF9S
RUdJU1RFUjoKKyAgICAgICAgc3RhdHVzID0gSW9jdGxTdXNwZW5kUmVnaXN0ZXIoRmRvLCBCdWZm
ZXIsIEluTGVuLCBPdXRMZW4sIFN0YWNrLT5GaWxlT2JqZWN0LCAmSXJwLT5Jb1N0YXR1cy5JbmZv
cm1hdGlvbik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJT0NUTF9YRU5JRkFDRV9TVVNQ
RU5EX0RFUkVHSVNURVI6CisgICAgICAgIHN0YXR1cyA9IElvY3RsU3VzcGVuZERlcmVnaXN0ZXIo
RmRvLCBCdWZmZXIsIEluTGVuLCBPdXRMZW4sIFN0YWNrLT5GaWxlT2JqZWN0KTsKKyAgICAgICAg
YnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9E
RVZJQ0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2Uv
aW9jdGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXggZGEyNzNjZS4uMDA1YWVhNSAx
MDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0
bHMuaApAQCAtOTEsNiArOTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTklGQUNFX01BUF9DT05U
RVhUIHsKICAgICBQTURMICAgICAgICAgICAgICAgICAgICAgICBNZGw7CiB9IFhFTklGQUNFX01B
UF9DT05URVhULCAqUFhFTklGQUNFX01BUF9DT05URVhUOwogCit0eXBlZGVmIHN0cnVjdCBfWEVO
SUZBQ0VfU1VTUEVORF9DT05URVhUIHsKKyAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBFbnRy
eTsKKyAgICBQS0VWRU5UICAgICAgICAgICAgICAgICBFdmVudDsKKyAgICBQVk9JRCAgICAgICAg
ICAgICAgICAgICBGaWxlT2JqZWN0OworfSBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsICpQWEVO
SUZBQ0VfU1VTUEVORF9DT05URVhUOworCiBOVFNUQVRVUwogX19DYXB0dXJlVXNlckJ1ZmZlcigK
ICAgICBfX2luICBQVk9JRCBCdWZmZXIsCkBAIC0zNjMsNSArMzY5LDQ1IEBAIEdudHRhYkZyZWVN
YXAoCiAgICAgX19pbm91dCAgUFhFTklGQUNFX01BUF9DT05URVhUIENvbnRleHQKICAgICApOwog
CitOVFNUQVRVUworSW9jdGxTdXNwZW5kR2V0Q291bnQoCisgICAgX19pbiAgUFhFTklGQUNFX0ZE
TyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKKyAgICBfX2lu
ICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBP
dXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAgICk7CisKK05UU1RB
VFVTCitJb2N0bFN1c3BlbmRSZWdpc3RlcigKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBG
ZG8sCisgICAgX19pbiAgUFZPSUQgICAgICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05H
ICAgICAgICAgICAgIEluTGVuLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbiwK
KyAgICBfX2luICBQRklMRV9PQkpFQ1QgICAgICBGaWxlT2JqZWN0LAorICAgIF9fb3V0IFBVTE9O
R19QVFIgICAgICAgIEluZm8KKyAgICApOworCitOVFNUQVRVUworSW9jdGxTdXNwZW5kRGVyZWdp
c3RlcigKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCisgICAgX19pbiAgUFZPSUQg
ICAgICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIEluTGVuLAor
ICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbiwKKyAgICBfX2luICBQRklMRV9PQkpF
Q1QgICAgICBGaWxlT2JqZWN0CisgICAgKTsKKworVk9JRAorU3VzcGVuZEV2ZW50RmlyZSgKKyAg
ICBfX2luICAgIFBYRU5JRkFDRV9GRE8gICBGZG8KKyAgICApOworCitfSVJRTF9yZXF1aXJlc19t
YXhfKERJU1BBVENIX0xFVkVMKQorVk9JRAorU3VzcGVuZEZyZWVFdmVudCgKKyAgICBfX2luICAg
ICBQWEVOSUZBQ0VfRkRPIEZkbywKKyAgICBfX2lub3V0ICBQWEVOSUZBQ0VfU1VTUEVORF9DT05U
RVhUIENvbnRleHQKKyAgICApOworCiAjZW5kaWYgLy8gX0lPQ1RMU19IXwogCmRpZmYgLS1naXQg
YS92czIwMTIveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5p
ZmFjZS52Y3hwcm9qCmluZGV4IGM1N2UyYTIuLmFlYzM1MzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94
ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52
Y3hwcm9qCkBAIC04Miw2ICs4Miw3IEBACiAJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmlmYWNlXGlvY3RsX2V2dGNobi5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5pZmFjZVxpb2N0bF9nbnR0YWIuYyIgLz4KIAkJPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlwuLlxzcmNceGVuaWZhY2VcaW9jdGxfc3RvcmUuYyIgLz4KKwkJPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNceGVuaWZhY2VcaW9jdGxfc3VzcGVuZC5jIiAvPgogCQk8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpcnBfcXVldWUuYyIgLz4KIAk8L0l0ZW1Hcm91cD4K
ICAgICAgICAgPEl0ZW1Hcm91cD4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFj
ZS52Y3hwcm9qIGIvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKaW5kZXggMDhhYzNh
MS4uYjMyNGQ5YyAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKQEAgLTEzNCw2ICsxMzQsNyBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX2V2dGNo
bi5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3Rs
X2dudHRhYi5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNl
XGlvY3RsX3N0b3JlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVu
aWZhY2VcaW9jdGxfc3VzcGVuZC5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHhlbmlmYWNlXGlycF9xdWV1ZS5jIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91
cD4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD0-0000p4-4X; Tue, 24 May 2016 14:21:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCy-0000o6-KD
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:20 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 65/FA-12657-F5364475; Tue, 24 May 2016 14:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcu2SX
 cYOUJG4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXLiFdaClbUVq9/sYG9gnJ7UxcjJISHgL3Hn
 1CU2EJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgLHE7c8LweIsAqoSf+ZOYwSxe
 QVcJa5P+8wCMVNDYlPDDLCZnAJuEu8+3AeLCwHVfN70nRHCVpL4tvgFM0SvoMTJmU9YIHZJSB
 x8ARLnAJrDLfG3234CI98sJFWzkFQtYGRaxahRnFpUllqka2iol1SUmZ5RkpuYmQPkmejlphY
 XJ6an5iQmFesl5+duYgQGFAMQ7GA8s8L5EKMkB5OSKC9noku4EF9SfkplRmJxRnxRaU5q8SFG
 GQ4OJQneuyA5waLU9NSKtMwcYGjDpCU4eJREeP+ApHmLCxJzizPTIVKnGBWlxHkFk4ASAiCJj
 NI8uDZYPF1ilJUS5mUEOkSIpyC1KDezBFX+FaM4B6OSMC8vyBSezLwSuOmvgBYzAS32/+IMsr
 gkESEl1QAMl6Lri2cL8Kyd+J6tuSyyiPWzK6vtP48VV3590PM64buq0fD+r0nuU0MKrK+150d
 ZO+1Unl7wrl1p4d3wSS4S617Z8W2VfGoqF8srGH3U6fWWfctc6ybx3rSK4uJiXJ/+btmpR3MW
 REis0496XZ6qerEy0cffVEByCYuPQ8Wzri/n7BdO3KHEUpyRaKjFXFScCABw2JgbogIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64361 invoked from network); 24 May 2016 14:21:18 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:18 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289455"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:41 +0100
Message-ID: <1464099660-12432-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 01/20] Add SUSPEND interface IOCTLs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBHZXRDb3VudCA6IHJldHVybnMgY3VycmVudCBzdXNwZW5kIGNvdW50LCBjaGFuZ2VzIG92ZXIg
c3VzcGVuZHMKKiBSZWdpc3RlciA6IHJlZ2lzdGVyIGFuIGV2ZW50IHRoYXQgaXMgc2V0IG9uIHJl
c3VtZSBmcm9tIHN1c3BlbmQKKiBEZXJlZ2lzdGVyOiBkZXJlZ2lzdGVyIHRoZSByZXN1bWUtZnJv
bS1zdXNwZW5kIGV2ZW50CgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNp
dHJpeC5jb20+Ci0tLQogaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMuaCAgICAgICAgfCAgMzcgKysr
KysrKwogc3JjL3hlbmlmYWNlL2Zkby5jICAgICAgICAgICAgICAgfCAgMTIgKysrCiBzcmMveGVu
aWZhY2UvZmRvLmggICAgICAgICAgICAgICB8ICAgMyArCiBzcmMveGVuaWZhY2UvaW9jdGxfc3Vz
cGVuZC5jICAgICB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
IHNyYy94ZW5pZmFjZS9pb2N0bHMuYyAgICAgICAgICAgIHwgIDM0ICsrKysrLQogc3JjL3hlbmlm
YWNlL2lvY3Rscy5oICAgICAgICAgICAgfCAgNDYgKysrKysrKysKIHZzMjAxMi94ZW5pZmFjZS94
ZW5pZmFjZS52Y3hwcm9qIHwgICAxICsKIHZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9q
IHwgICAxICsKIDggZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYwoKZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmggYi9pbmNsdWRlL3hlbmlmYWNlX2lv
Y3Rscy5oCmluZGV4IDE3YmVhYTEuLmRjNTNlNmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuaWZh
Y2VfaW9jdGxzLmgKKysrIGIvaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMuaApAQCAtMzIzLDQgKzMy
Myw0MSBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFH
RVNfSU4gewogICAgIFVMT05HIFJlcXVlc3RJZDsgLyohIFJlcXVlc3QgSUQgdXNlZCBpbiB0aGUg
Y29ycmVzcG9uZGluZyBJT0NUTF9YRU5JRkFDRV9HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgY2Fs
bCAqLwogfSBYRU5JRkFDRV9HTlRUQUJfVU5NQVBfRk9SRUlHTl9QQUdFU19JTiwgKlBYRU5JRkFD
RV9HTlRUQUJfVU5NQVBfRk9SRUlHTl9QQUdFU19JTjsKIAorLyohIFxicmllZiBHZXRzIHRoZSBj
dXJyZW50IHN1c3BlbmQgY291bnQuCisKKyAgICBJbnB1dDogTm9uZQorCisgICAgT3V0cHV0OiBV
TE9ORworKi8KKyNkZWZpbmUgSU9DVExfWEVOSUZBQ0VfU1VTUEVORF9HRVRfQ09VTlQgXAorICAg
IENUTF9DT0RFKEZJTEVfREVWSUNFX1VOS05PV04sIDB4ODMwLCBNRVRIT0RfQlVGRkVSRUQsIEZJ
TEVfQU5ZX0FDQ0VTUykKKworLyohIFxicmllZiBSZWdpc3RlcnMgYW4gZXZlbnQgd2hpY2ggaXMg
c2lnbmFsbGVkIG9uIHJlc3VtZS1mcm9tLXN1c3BlbmQKKworICAgIElucHV0OiBYRU5JRkFDRV9T
VVNQRU5EX1JFR0lTVEVSX0lOCisKKyAgICBPdXRwdXQ6IFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUCisqLworI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSIFwKKyAg
ICBDVExfQ09ERShGSUxFX0RFVklDRV9VTktOT1dOLCAweDgzMSwgTUVUSE9EX0JVRkZFUkVELCBG
SUxFX0FOWV9BQ0NFU1MpCisKKy8qISBcYnJpZWYgSW5wdXQgZm9yIElPQ1RMX1hFTklGQUNFX0dO
VFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTICovCit0eXBlZGVmIHN0cnVjdCBfWEVOSUZBQ0VfU1VT
UEVORF9SRUdJU1RFUl9JTiB7CisgICAgSEFORExFIEV2ZW50OyAvKiE8IEhhbmRsZSB0byBhbiBl
dmVudCBvYmplY3QgdGhhdCB3aWxsIHJlY2VpdmUgc3VzcGVuZCBub3RpZmljYXRpb25zICovCit9
IFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4sICpQWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RF
Ul9JTjsKKworLyohIFxicmllZiBJbnB1dCBmb3IgSU9DVExfWEVOSUZBQ0VfR05UVEFCX1VOTUFQ
X0ZPUkVJR05fUEFHRVMgKi8KK3R5cGVkZWYgc3RydWN0IF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lT
VEVSX09VVCB7CisgICAgUFZPSUQgQ29udGV4dDsgLyohPCBIYW5kbGUgdG8gdGhlIHN1c3BlbmQg
ZXZlbnQgKi8KK30gWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQsICpQWEVOSUZBQ0VfU1VT
UEVORF9SRUdJU1RFUl9PVVQ7CisKKy8qISBcYnJpZWYgRGVyZWdpc3RlcnMgYW4gZXZlbnQgd2hp
Y2ggaXMgc2lnbmFsbGVkIG9uIHJlc3VtZS1mcm9tLXN1c3BlbmQKKworICAgIElucHV0OiBYRU5J
RkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVAorCisgICAgT3V0cHV0OiBOb25lCisqLworI2RlZmlu
ZSBJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX0RFUkVHSVNURVIgXAorICAgIENUTF9DT0RFKEZJTEVf
REVWSUNFX1VOS05PV04sIDB4ODMyLCBNRVRIT0RfQlVGRkVSRUQsIEZJTEVfQU5ZX0FDQ0VTUykK
KwogI2VuZGlmIC8vIF9YRU5JRkFDRV9JT0NUTFNfSF8KZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFj
ZS9mZG8uYyBiL3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCBmYTE0YjViLi42ZDE3MTg5IDEwMDY0
NAotLS0gYS9zcmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC05
MDgsNiArOTA4LDcgQEAgRmRvU3VzcGVuZENhbGxiYWNrTGF0ZSgKICAgICBBU1NFUlQoTlRfU1VD
Q0VTUyhzdGF0dXMpKTsKIAogICAgIFdtaUZpcmVTdXNwZW5kRXZlbnQoRmRvKTsKKyAgICBTdXNw
ZW5kRXZlbnRGaXJlKEZkbyk7CiB9CiAKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRV
UwpAQCAtMjU3MCw2ICsyNTcxLDkgQEAgRmRvQ3JlYXRlKAogICAgIEtlSW5pdGlhbGl6ZVNwaW5M
b2NrKCZGZG8tPkV2dGNobkxvY2spOwogICAgIEluaXRpYWxpemVMaXN0SGVhZCgmRmRvLT5FdnRj
aG5MaXN0KTsKIAorICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZGZG8tPlN1c3BlbmRMb2NrKTsK
KyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkZkby0+U3VzcGVuZExpc3QpOworCiAgICAgS2VJbml0
aWFsaXplU3BpbkxvY2soJkZkby0+SXJwUXVldWVMb2NrKTsKICAgICBJbml0aWFsaXplTGlzdEhl
YWQoJkZkby0+SXJwTGlzdCk7CiAKQEAgLTI2MDIsNiArMjYwNiwxMCBAQCBmYWlsMTU6CiAgICAg
UnRsWmVyb01lbW9yeSgmRmRvLT5JcnBMaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBS
dGxaZXJvTWVtb3J5KCZGZG8tPklycFF1ZXVlTG9jaywgc2l6ZW9mIChLU1BJTl9MT0NLKSk7CiAK
KyAgICBBU1NFUlQoSXNMaXN0RW1wdHkoJkZkby0+U3VzcGVuZExpc3QpKTsKKyAgICBSdGxaZXJv
TWVtb3J5KCZGZG8tPlN1c3BlbmRMaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKKyAgICBSdGxa
ZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMb2NrLCBzaXplb2YgKEtTUElOX0xPQ0spKTsKKwogICAg
IEFTU0VSVChJc0xpc3RFbXB0eSgmRmRvLT5FdnRjaG5MaXN0KSk7CiAgICAgUnRsWmVyb01lbW9y
eSgmRmRvLT5FdnRjaG5MaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBSdGxaZXJvTWVt
b3J5KCZGZG8tPkV2dGNobkxvY2ssIHNpemVvZiAoS1NQSU5fTE9DSykpOwpAQCAtMjcyNCw2ICsy
NzMyLDEwIEBAIEZkb0Rlc3Ryb3koCiAgICAgUnRsWmVyb01lbW9yeSgmRmRvLT5JcnBRdWV1ZUxv
Y2ssIHNpemVvZiAoS1NQSU5fTE9DSykpOwogICAgIFJ0bFplcm9NZW1vcnkoJkZkby0+SXJwUXVl
dWUsIHNpemVvZiAoSU9fQ1NRKSk7CiAKKyAgICBBU1NFUlQoSXNMaXN0RW1wdHkoJkZkby0+U3Vz
cGVuZExpc3QpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMaXN0LCBzaXplb2Yg
KExJU1RfRU5UUlkpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPlN1c3BlbmRMb2NrLCBzaXpl
b2YgKEtTUElOX0xPQ0spKTsKKwogICAgIEFTU0VSVChJc0xpc3RFbXB0eSgmRmRvLT5FdnRjaG5M
aXN0KSk7CiAgICAgUnRsWmVyb01lbW9yeSgmRmRvLT5FdnRjaG5MaXN0LCBzaXplb2YgKExJU1Rf
RU5UUlkpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZGZG8tPkV2dGNobkxvY2ssIHNpemVvZiAoS1NQ
SU5fTE9DSykpOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2Zkby5oIGIvc3JjL3hlbmlmYWNl
L2Zkby5oCmluZGV4IDZjZDYyOGMuLmM4MmQyYmYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5pZmFjZS9m
ZG8uaAorKysgYi9zcmMveGVuaWZhY2UvZmRvLmgKQEAgLTkyLDYgKzkyLDkgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1hFTklGQUNFX0ZETyB7CiAKICAgICBLU1BJTl9MT0NLICAgICAgICAgICAgICAgICAg
ICAgIEdudHRhYkNhY2hlTG9jazsKIAorICAgIEtTUElOX0xPQ0sgICAgICAgICAgICAgICAgICAg
ICAgU3VzcGVuZExvY2s7CisgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICBTdXNw
ZW5kTGlzdDsKKwogICAgIElPX0NTUSAgICAgICAgICAgICAgICAgICAgICAgICAgSXJwUXVldWU7
CiAgICAgS1NQSU5fTE9DSyAgICAgICAgICAgICAgICAgICAgICBJcnBRdWV1ZUxvY2s7CiAgICAg
TElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICBJcnBMaXN0OwpkaWZmIC0tZ2l0IGEvc3Jj
L3hlbmlmYWNlL2lvY3RsX3N1c3BlbmQuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2YTFhZAotLS0gL2Rldi9udWxs
CisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9zdXNwZW5kLmMKQEAgLTAsMCArMSwyMjMgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQ29weXJpZ2h0IChjKSBSYWZh
bCBXb2pkeWxhIDxvbWVnQGludmlzaWJsZXRoaW5nc2xhYi5jb20+CisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiZHJpdmVyLmgiCisjaW5jbHVkZSAiaW9jdGxzLmgiCisjaW5j
bHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiCisjaW5jbHVkZSAibG9nLmgiCisKK0RFQ0xTUEVDX05P
SU5MSU5FCitOVFNUQVRVUworSW9jdGxTdXNwZW5kR2V0Q291bnQoCisgICAgX19pbiAgUFhFTklG
QUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKKyAg
ICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2luICBVTE9ORyAgICAgICAg
ICAgICBPdXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAgICkKK3sK
KyAgICBOVFNUQVRVUyAgICBzdGF0dXM7CisgICAgUFVMT05HICAgICAgVmFsdWU7CisKKyAgICBz
dGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAgICBpZiAoSW5MZW4gIT0gMCkK
KyAgICAgICAgZ290byBmYWlsMTsKKworICAgIGlmIChPdXRMZW4gIT0gc2l6ZW9mKFVMT05HKSkK
KyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFZhbHVlID0gKFBVTE9ORylCdWZmZXI7CisgICAg
KlZhbHVlID0gWEVOQlVTX1NVU1BFTkQoR2V0Q291bnQsICZGZG8tPlN1c3BlbmRJbnRlcmZhY2Up
OyAKKyAgICAqSW5mbyA9IChVTE9OR19QVFIpc2l6ZW9mKFVMT05HKTsKKyAgICBzdGF0dXMgPSBT
VEFUVVNfU1VDQ0VTUzsKKworICAgIHJldHVybiBzdGF0dXM7CisKK2ZhaWwyOgorICAgIFhlbklm
YWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4iKTsKK2ZhaWwxOgorICAgIFhlbklmYWNlRGVi
dWdQcmludChFUlJPUiwgIkZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3Rh
dHVzOworfQorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsU3VzcGVuZFJlZ2lz
dGVyKAorICAgIF9faW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQVk9JRCAg
ICAgICAgICAgICBCdWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisg
ICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgT3V0TGVuLAorICAgIF9faW4gIFBGSUxFX09CSkVD
VCAgICAgIEZpbGVPYmplY3QsCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAg
ICkKK3sKKyAgICBOVFNUQVRVUyBzdGF0dXM7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfSU4gSW4gPSBCdWZmZXI7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfT1VUIE91
dCA9IEJ1ZmZlcjsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05URVhUIENvbnRleHQ7CisKKyAg
ICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAgICBpZiAoSW5MZW4gIT0g
c2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4pIHx8CisgICAgICAgIE91dExlbiAh
PSBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpKSB7CisgICAgICAgIGdvdG8g
ZmFpbDE7CisgICAgfQorCisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsKKyAgICBDb250
ZXh0ID0gRXhBbGxvY2F0ZVBvb2xXaXRoVGFnKE5vblBhZ2VkUG9vbCwgc2l6ZW9mKFhFTklGQUNF
X1NVU1BFTkRfQ09OVEVYVCksIFhFTklGQUNFX1BPT0xfVEFHKTsKKyAgICBpZiAoQ29udGV4dCA9
PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgUnRsWmVyb01lbW9yeShDb250ZXh0
LCBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9DT05URVhUKSk7CisKKyAgICBDb250ZXh0LT5GaWxl
T2JqZWN0ID0gRmlsZU9iamVjdDsKKworICAgIHN0YXR1cyA9IE9iUmVmZXJlbmNlT2JqZWN0QnlI
YW5kbGUoSW4tPkV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVZFTlRfTU9ESUZZX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKkV4RXZlbnRPYmplY3RUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVXNlck1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
Q29udGV4dC0+RXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsK
KworICAgIFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIj4gU3VzcGVuZCBFdmVudCAlcCwgRk8g
JXBcbiIsIEluLT5FdmVudCwgRmlsZU9iamVjdCk7CisgICAgRXhJbnRlcmxvY2tlZEluc2VydFRh
aWxMaXN0KCZGZG8tPlN1c3BlbmRMaXN0LCAmQ29udGV4dC0+RW50cnksICZGZG8tPlN1c3BlbmRM
b2NrKTsKKworICAgIE91dC0+Q29udGV4dCA9IENvbnRleHQ7CisgICAgKkluZm8gPSBzaXplb2Yo
WEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpOworCisgICAgcmV0dXJuIHN0YXR1czsKKwor
ZmFpbDM6CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDNcbiIpOworICAgIFJ0
bFplcm9NZW1vcnkoQ29udGV4dCwgc2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCkpOwor
ICAgIEV4RnJlZVBvb2xXaXRoVGFnKENvbnRleHQsIFhFTklGQUNFX1BPT0xfVEFHKTsKKworZmFp
bDI6CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOworCitmYWlsMToK
KyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworX0lSUUxfcmVxdWlyZXNfbWF4XyhESVNQQVRDSF9M
RVZFTCkKK1ZPSUQKK1N1c3BlbmRGcmVlRXZlbnQoCisgICAgX19pbiAgICAgUFhFTklGQUNFX0ZE
TyBGZG8sCisgICAgX19pbm91dCAgUFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCBDb250ZXh0Cisg
ICAgKQoreworICAgIFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIkNvbnRleHQgJXAsIEZPICVw
XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBDb250ZXh0LCBDb250ZXh0LT5GaWxlT2JqZWN0
KTsKKworICAgIE9iRGVyZWZlcmVuY2VPYmplY3QoQ29udGV4dC0+RXZlbnQpOworICAgIFJ0bFpl
cm9NZW1vcnkoQ29udGV4dCwgc2l6ZW9mKFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCkpOworICAg
IEV4RnJlZVBvb2xXaXRoVGFnKENvbnRleHQsIFhFTklGQUNFX1BPT0xfVEFHKTsKK30KKworREVD
TFNQRUNfTk9JTkxJTkUKK05UU1RBVFVTCitJb2N0bFN1c3BlbmREZXJlZ2lzdGVyKAorICAgIF9f
aW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQVk9JRCAgICAgICAgICAgICBC
dWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAgVUxP
TkcgICAgICAgICAgICAgT3V0TGVuLAorICAgIF9faW4gIFBGSUxFX09CSkVDVCAgICAgIEZpbGVP
YmplY3QKKyAgICApCit7CisgICAgTlRTVEFUVVMgc3RhdHVzOworICAgIFBYRU5JRkFDRV9TVVNQ
RU5EX1JFR0lTVEVSX09VVCBJbiA9IEJ1ZmZlcjsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05U
RVhUIENvbnRleHQgPSBOVUxMOworICAgIEtJUlFMIElycWw7CisgICAgUExJU1RfRU5UUlkgTm9k
ZTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZFUl9TSVpFOworICAgIGlmIChJ
bkxlbiAhPSBzaXplb2YoWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQpIHx8CisgICAgICAg
IE91dExlbiAhPSAwKSB7CisgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQorCisgICAgWGVuSWZh
Y2VEZWJ1Z1ByaW50KFRSQUNFLCAiPiBDb250ZXh0ICVwLCBGTyAlcFxuIiwgSW4tPkNvbnRleHQs
IEZpbGVPYmplY3QpOworCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ss
ICZJcnFsKTsKKyAgICBOb2RlID0gRmRvLT5TdXNwZW5kTGlzdC5GbGluazsKKyAgICB3aGlsZSAo
Tm9kZS0+RmxpbmsgIT0gRmRvLT5TdXNwZW5kTGlzdC5GbGluaykgeworICAgICAgICBDb250ZXh0
ID0gQ09OVEFJTklOR19SRUNPUkQoTm9kZSwgWEVOSUZBQ0VfU1VTUEVORF9DT05URVhULCBFbnRy
eSk7CisKKyAgICAgICAgTm9kZSA9IE5vZGUtPkZsaW5rOworICAgICAgICBpZiAoQ29udGV4dCAh
PSBJbi0+Q29udGV4dCB8fAorICAgICAgICAgICAgQ29udGV4dC0+RmlsZU9iamVjdCAhPSBGaWxl
T2JqZWN0KSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIFJl
bW92ZUVudHJ5TGlzdCgmQ29udGV4dC0+RW50cnkpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgS2VSZWxlYXNlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ssIElycWwpOworCisgICAgc3Rh
dHVzID0gU1RBVFVTX05PVF9GT1VORDsKKyAgICBpZiAoQ29udGV4dCA9PSBOVUxMIHx8IENvbnRl
eHQgIT0gSW4tPkNvbnRleHQpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBTdXNwZW5kRnJl
ZUV2ZW50KEZkbywgQ29udGV4dCk7CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2Zh
aWwyOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4iKTsKKworZmFpbDE6
CisgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMp
OworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK1ZPSUQKK1N1c3BlbmRFdmVudEZpcmUoCisgICAg
X19pbiAgICBQWEVOSUZBQ0VfRkRPICAgRmRvCisgICAgKQoreworICAgIEtJUlFMICAgICAgIEly
cWw7CisgICAgUExJU1RfRU5UUlkgTm9kZTsKKyAgICBQWEVOSUZBQ0VfU1VTUEVORF9DT05URVhU
IENvbnRleHQ7CisKKyAgICBLZUFjcXVpcmVTcGluTG9jaygmRmRvLT5TdXNwZW5kTG9jaywgJkly
cWwpOworICAgIE5vZGUgPSBGZG8tPlN1c3BlbmRMaXN0LkZsaW5rOworICAgIHdoaWxlIChOb2Rl
LT5GbGluayAhPSBGZG8tPlN1c3BlbmRMaXN0LkZsaW5rKSB7CisgICAgICAgIENvbnRleHQgPSBD
T05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsIEVudHJ5KTsK
KworICAgICAgICBLZVNldEV2ZW50KENvbnRleHQtPkV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZB
TFNFKTsKKworICAgICAgICBOb2RlID0gTm9kZS0+Rmxpbms7CisgICAgfQorICAgIEtlUmVsZWFz
ZVNwaW5Mb2NrKCZGZG8tPlN1c3BlbmRMb2NrLCBJcnFsKTsKK30KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZh
Y2UvaW9jdGxzLmMKaW5kZXggYThhNTUzOC4uYzZkNDcxZCAxMDA2NDQKLS0tIGEvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwpAQCAtOTQsMTEgKzk0LDI4
IEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICApCiB7CiAgICAgUExJU1RfRU5UUlkgTm9kZTsKLSAg
ICBQWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCBTdG9yZUNvbnRleHQ7Ci0gICAgUFhFTklGQUNFX0VW
VENITl9DT05URVhUIEV2dGNobkNvbnRleHQ7CisgICAgUFhFTklGQUNFX1NVU1BFTkRfQ09OVEVY
VCBTdXNwZW5kQ29udGV4dDsKKyAgICBQWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCAgIFN0b3JlQ29u
dGV4dDsKKyAgICBQWEVOSUZBQ0VfRVZUQ0hOX0NPTlRFWFQgIEV2dGNobkNvbnRleHQ7CiAgICAg
S0lSUUwgSXJxbDsKICAgICBMSVNUX0VOVFJZIFRvRnJlZTsKIAorICAgIC8vIHN1c3BlbmQgZXZl
bnRzCisgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3VzcGVuZExvY2ssICZJcnFsKTsKKyAg
ICBOb2RlID0gRmRvLT5TdXNwZW5kTGlzdC5GbGluazsKKyAgICB3aGlsZSAoTm9kZS0+Rmxpbmsg
IT0gRmRvLT5TdXNwZW5kTGlzdC5GbGluaykgeworICAgICAgICBTdXNwZW5kQ29udGV4dCA9IENP
TlRBSU5JTkdfUkVDT1JEKE5vZGUsIFhFTklGQUNFX1NVU1BFTkRfQ09OVEVYVCwgRW50cnkpOwor
CisgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsKKyAgICAgICAgaWYgKFN1c3BlbmRDb250ZXh0
LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBYZW5JZmFjZURlYnVnUHJpbnQoVFJBQ0UsICJTdXNwZW5kIGNvbnRleHQgJXBcbiIsIFN1
c3BlbmRDb250ZXh0KTsKKyAgICAgICAgUmVtb3ZlRW50cnlMaXN0KCZTdXNwZW5kQ29udGV4dC0+
RW50cnkpOworICAgICAgICBTdXNwZW5kRnJlZUV2ZW50KEZkbywgU3VzcGVuZENvbnRleHQpOwor
ICAgIH0KKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRmRvLT5TdXNwZW5kTG9jaywgSXJxbCk7CisK
ICAgICAvLyBzdG9yZSB3YXRjaGVzCiAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZkby0+U3RvcmVX
YXRjaExvY2ssICZJcnFsKTsKICAgICBOb2RlID0gRmRvLT5TdG9yZVdhdGNoTGlzdC5GbGluazsK
QEAgLTIyNyw2ICsyNDQsMTkgQEAgWGVuSWZhY2VJb2N0bCgKICAgICAgICAgc3RhdHVzID0gSW9j
dGxHbnR0YWJVbm1hcEZvcmVpZ25QYWdlcyhGZG8sIEJ1ZmZlciwgSW5MZW4sIE91dExlbik7CiAg
ICAgICAgIGJyZWFrOwogCisgICAgICAgIC8vIHN1c3BlbmQKKyAgICBjYXNlIElPQ1RMX1hFTklG
QUNFX1NVU1BFTkRfR0VUX0NPVU5UOgorICAgICAgICBzdGF0dXMgPSBJb2N0bFN1c3BlbmRHZXRD
b3VudChGZG8sIEJ1ZmZlciwgSW5MZW4sIE91dExlbiwgJklycC0+SW9TdGF0dXMuSW5mb3JtYXRp
b24pOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSU9DVExfWEVOSUZBQ0VfU1VTUEVORF9S
RUdJU1RFUjoKKyAgICAgICAgc3RhdHVzID0gSW9jdGxTdXNwZW5kUmVnaXN0ZXIoRmRvLCBCdWZm
ZXIsIEluTGVuLCBPdXRMZW4sIFN0YWNrLT5GaWxlT2JqZWN0LCAmSXJwLT5Jb1N0YXR1cy5JbmZv
cm1hdGlvbik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJT0NUTF9YRU5JRkFDRV9TVVNQ
RU5EX0RFUkVHSVNURVI6CisgICAgICAgIHN0YXR1cyA9IElvY3RsU3VzcGVuZERlcmVnaXN0ZXIo
RmRvLCBCdWZmZXIsIEluTGVuLCBPdXRMZW4sIFN0YWNrLT5GaWxlT2JqZWN0KTsKKyAgICAgICAg
YnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9E
RVZJQ0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2Uv
aW9jdGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXggZGEyNzNjZS4uMDA1YWVhNSAx
MDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0
bHMuaApAQCAtOTEsNiArOTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTklGQUNFX01BUF9DT05U
RVhUIHsKICAgICBQTURMICAgICAgICAgICAgICAgICAgICAgICBNZGw7CiB9IFhFTklGQUNFX01B
UF9DT05URVhULCAqUFhFTklGQUNFX01BUF9DT05URVhUOwogCit0eXBlZGVmIHN0cnVjdCBfWEVO
SUZBQ0VfU1VTUEVORF9DT05URVhUIHsKKyAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBFbnRy
eTsKKyAgICBQS0VWRU5UICAgICAgICAgICAgICAgICBFdmVudDsKKyAgICBQVk9JRCAgICAgICAg
ICAgICAgICAgICBGaWxlT2JqZWN0OworfSBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsICpQWEVO
SUZBQ0VfU1VTUEVORF9DT05URVhUOworCiBOVFNUQVRVUwogX19DYXB0dXJlVXNlckJ1ZmZlcigK
ICAgICBfX2luICBQVk9JRCBCdWZmZXIsCkBAIC0zNjMsNSArMzY5LDQ1IEBAIEdudHRhYkZyZWVN
YXAoCiAgICAgX19pbm91dCAgUFhFTklGQUNFX01BUF9DT05URVhUIENvbnRleHQKICAgICApOwog
CitOVFNUQVRVUworSW9jdGxTdXNwZW5kR2V0Q291bnQoCisgICAgX19pbiAgUFhFTklGQUNFX0ZE
TyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKKyAgICBfX2lu
ICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBP
dXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAgICAgICAgSW5mbworICAgICk7CisKK05UU1RB
VFVTCitJb2N0bFN1c3BlbmRSZWdpc3RlcigKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBG
ZG8sCisgICAgX19pbiAgUFZPSUQgICAgICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05H
ICAgICAgICAgICAgIEluTGVuLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbiwK
KyAgICBfX2luICBQRklMRV9PQkpFQ1QgICAgICBGaWxlT2JqZWN0LAorICAgIF9fb3V0IFBVTE9O
R19QVFIgICAgICAgIEluZm8KKyAgICApOworCitOVFNUQVRVUworSW9jdGxTdXNwZW5kRGVyZWdp
c3RlcigKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCisgICAgX19pbiAgUFZPSUQg
ICAgICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIEluTGVuLAor
ICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbiwKKyAgICBfX2luICBQRklMRV9PQkpF
Q1QgICAgICBGaWxlT2JqZWN0CisgICAgKTsKKworVk9JRAorU3VzcGVuZEV2ZW50RmlyZSgKKyAg
ICBfX2luICAgIFBYRU5JRkFDRV9GRE8gICBGZG8KKyAgICApOworCitfSVJRTF9yZXF1aXJlc19t
YXhfKERJU1BBVENIX0xFVkVMKQorVk9JRAorU3VzcGVuZEZyZWVFdmVudCgKKyAgICBfX2luICAg
ICBQWEVOSUZBQ0VfRkRPIEZkbywKKyAgICBfX2lub3V0ICBQWEVOSUZBQ0VfU1VTUEVORF9DT05U
RVhUIENvbnRleHQKKyAgICApOworCiAjZW5kaWYgLy8gX0lPQ1RMU19IXwogCmRpZmYgLS1naXQg
YS92czIwMTIveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5p
ZmFjZS52Y3hwcm9qCmluZGV4IGM1N2UyYTIuLmFlYzM1MzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94
ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52
Y3hwcm9qCkBAIC04Miw2ICs4Miw3IEBACiAJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmlmYWNlXGlvY3RsX2V2dGNobi5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5pZmFjZVxpb2N0bF9nbnR0YWIuYyIgLz4KIAkJPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlwuLlxzcmNceGVuaWZhY2VcaW9jdGxfc3RvcmUuYyIgLz4KKwkJPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNceGVuaWZhY2VcaW9jdGxfc3VzcGVuZC5jIiAvPgogCQk8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpcnBfcXVldWUuYyIgLz4KIAk8L0l0ZW1Hcm91cD4K
ICAgICAgICAgPEl0ZW1Hcm91cD4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFj
ZS52Y3hwcm9qIGIvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKaW5kZXggMDhhYzNh
MS4uYjMyNGQ5YyAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbmlmYWNlL3hlbmlmYWNlLnZjeHByb2oKQEAgLTEzNCw2ICsxMzQsNyBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX2V2dGNo
bi5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3Rs
X2dudHRhYi5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNl
XGlvY3RsX3N0b3JlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVu
aWZhY2VcaW9jdGxfc3VzcGVuZC5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHhlbmlmYWNlXGlycF9xdWV1ZS5jIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91
cD4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD0-0000pM-5Z; Tue, 24 May 2016 14:21:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o9-4X
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 5F/27-05497-06364475; Tue, 24 May 2016 14:21:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjc+2SX
 coP+gmcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOL6wg7Hgh3LFvAlLWBsYZ8h0MXJySAj4Syz/
 8ZQNxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxcriC0soCvxf9JPRhCbRUBVYt2ubrBeX
 gE3iennVjJDzNSQ2NQwAyzOCRR/9+E+2EwhAVeJz5u+M0LYShLfFr9ghugVlDg58wkLxC4JiY
 MvQOIcQHO4Jf52209g5JuFpGoWkqoFjEyrGDWKU4vKUot0DQ31kooy0zNKchMzc4A8E73c1OL
 ixPTUnMSkYr3k/NxNjMCAYgCCHYxnVjgfYpTkYFIS5eVMdAkX4kvKT6nMSCzOiC8qzUktPsQo
 w8GhJMF7FyQnWJSanlqRlpkDDG2YtAQHj5II7x+QNG9xQWJucWY6ROoUo6KUOK9gElBCACSRU
 ZoH1waLp0uMslLCvIxAhwjxFKQW5WaWoMq/YhTnYFQS5uUFmcKTmVcCN/0V0GImoMX+X5xBFp
 ckIqSkGhgFN93fHucdfuCowP56KTn9HxZ353/olcg5+GE+/7tkIXmzhKervCXqPY9lNdiyWBn
 orWsNmt63M9E1ZHWlgy3vilcFrjqKJn1XShStfvwutW98t1jx78ZV365Mm6x+4NPhL69OPdHT
 un2Y2z3+f+/JS/fCvP5cqXnDUJAs+i4gj8/1+f6GJeeUWIozEg21mIuKEwF7YzULogIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64550 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289459"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:49 +0100
Message-ID: <1464099660-12432-10-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 09/20] Resolve lifecycle bugs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBtYWtlIENEZXZpY2UgZGVzdHJ1Y3RvciB2aXJ0dWFsCiogY2FsbCBJRGV2aWNlQ3JlYXRvcjo6
T25EZXZpY2VSZW1vdmVkIHdoZW4gY2xlYW5pbmcgdXAgZGV2aWNlIGxpc3QKICBvbiBzZXJ2aWNl
IHN0b3AKKiBhZGQgbG9nZ2luZyB0byBPdXRwdXREZWJ1Z1N0cmluZwoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy9saXRlYWdlbnQvRGV2
aWNlTGlzdC5jcHAgfCAxMCArKysrKysrKy0tCiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaCAg
IHwgIDIgKy0KIHNyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgfCAxOSArKysrKysrKysrKysr
KysrLS0tCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgIHwgIDQgKysrLQogNCBmaWxlcyBj
aGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAgYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3Bw
CmluZGV4IDNmYzlhODUuLmNlMGNjZDIgMTAwNjQ0Ci0tLSBhL3NyYy9saXRlYWdlbnQvRGV2aWNl
TGlzdC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNwcApAQCAtNTUsNyArNTUs
NyBAQCBDRGV2aWNlOjpDRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDoKIHsKIH0KIAotQ0Rl
dmljZTo6fkNEZXZpY2UoKQorLyp2aXJ0dWFsKi8gQ0RldmljZTo6fkNEZXZpY2UoKQogewogICAg
IENsb3NlKCk7CiB9CkBAIC0xOTUsNiArMTk1LDggQEAgdm9pZCBDRGV2aWNlTGlzdDo6U3RvcCgp
CiAgICAgZm9yIChEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmJlZ2luKCk7CiAgICAg
ICAgICAgICBpdCAhPSBtX2RldnMuZW5kKCk7CiAgICAgICAgICAgICArK2l0KSB7CisgICAgICAg
IGlmIChtX2ltcGwpCisgICAgICAgICAgICBtX2ltcGwtPk9uRGV2aWNlUmVtb3ZlZChpdC0+c2Vj
b25kKTsKICAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CiAgICAgfQogICAgIG1fZGV2cy5jbGVh
cigpOwpAQCAtMjc3LDYgKzI3OSw5IEBAIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUXVlcnlS
ZW1vdmUoSEFORExFIGhhbmRsZSkKICAgICAgICAgcmV0dXJuOyAvLyBzcHVyaW91cyBldmVudD8K
IAogICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7CisgICAgaWYgKGRldiA9PSBOVUxMKQor
ICAgICAgICByZXR1cm47IC8vIGJhZCBtYXAgZW50cnkKKwogICAgIGlmIChtX2ltcGwpCiAgICAg
ICAgIG1faW1wbC0+T25EZXZpY2VSZW1vdmVkKGRldik7CiAgICAgZGV2LT5DbG9zZSgpOwpAQCAt
Mjg5LDYgKzI5NCw3IEBAIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUmVtb3ZlZChIQU5ETEUg
aGFuZGxlKQogICAgICAgICByZXR1cm47IC8vIHNwdXJpb3VzIGV2ZW50PwogCiAgICAgQ0Rldmlj
ZSogZGV2ID0gaXQtPnNlY29uZDsKLSAgICBkZWxldGUgZGV2OworICAgIGlmIChkZXYpCisgICAg
ICAgIGRlbGV0ZSBkZXY7CiAgICAgbV9kZXZzLmVyYXNlKGl0KTsKIH0KZGlmZiAtLWdpdCBhL3Ny
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmgKaW5k
ZXggNmExYjBiNC4uNmM4YjZjYiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0
LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xh
c3MgQ0RldmljZQogewogcHVibGljOgogICAgIENEZXZpY2UoY29uc3Qgd2NoYXJfdCogcGF0aCk7
Ci0gICAgfkNEZXZpY2UoKTsKKyAgICB2aXJ0dWFsIH5DRGV2aWNlKCk7CiAKICAgICBIQU5ETEUg
T3BlbihIQU5ETEUgc3ZjKTsKICAgICB2b2lkIENsb3NlKCk7CmRpZmYgLS1naXQgYS9zcmMvbGl0
ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXgg
OTA4YzBjOS4uYmE0OGZjMCAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3Bw
CisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAj
ZGVmaW5lIElOSVRHVUlECiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+
CiAKICNpbmNsdWRlICJMaXRlQWdlbnQuaCIKICNpbmNsdWRlICJ4ZW5pZmFjZV9pb2N0bHMuaCIK
QEAgLTUwLDYgKzUxLDE0IEBAIHN0YXRpYyBDTGl0ZUFnZW50IHNfc2VydmljZTsKIAogLypzdGF0
aWMqLyB2b2lkIENMaXRlQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQsIC4uLikKIHsKKyAgICBj
aGFyIG1lc3NhZ2VbMjU2XTsKKyAgICB2YV9saXN0IGFyZ3M7CisKKyAgICB2YV9zdGFydChhcmdz
LCBmbXQpOworICAgIHZzbnByaW50Zl9zKG1lc3NhZ2UsIHNpemVvZihtZXNzYWdlKSwgc2l6ZW9m
KG1lc3NhZ2UpL3NpemVvZihtZXNzYWdlWzBdKSAtIDEsIGZtdCwgYXJncyk7CisgICAgdmFfZW5k
KGFyZ3MpOworCisgICAgT3V0cHV0RGVidWdTdHJpbmcobWVzc2FnZSk7CiB9CiAKIC8qc3RhdGlj
Ki8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkKQEAgLTEyNywxMSArMTM2LDE1IEBA
IENMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMoR1VJRF9J
TlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RlCiAgICAgbV9zdGF0dXMuZHdXYWl0SGludCAgICAgICAg
ICAgPSAwOwogCiAgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9zaHV0ZG93biA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9zdXNwZW5kICA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7IAogfQogCiBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiB7CiAgICAgQ2xvc2VI
YW5kbGUobV9zdmNfc3RvcCk7CisgICAgQ2xvc2VIYW5kbGUobV9zaHV0ZG93bik7CisgICAgQ2xv
c2VIYW5kbGUobV9zdXNwZW5kKTsKIH0KIAogLyp2aXJ0dWFsKi8gQ0RldmljZSogQ0xpdGVBZ2Vu
dDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCkBAIC0xNDYsNiArMTU5LDcgQEAgQ0xpdGVB
Z2VudDo6fkNMaXRlQWdlbnQoKQogICAgIGlmIChtX2RldiA9PSBOVUxMKSB7CiAgICAgICAgIG1f
ZGV2ID0gKENYZW5JZmFjZUl0ZiopZGV2OwogICAgICAgICAvLyBzZXR0aW5nIGFjdGl2ZSBkZXZp
Y2UKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTdGFydGluZyBBY3RpdmUgRGV2aWNlXG4iKTsK
ICAgICB9CiB9CiAKQEAgLTE1NCw3ICsxNjgsOCBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgp
CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQoJXdzKVxuIiwgZGV2LT5QYXRo
KCkpOwogICAgIGlmICgoQ1hlbklmYWNlSXRmKilkZXYgPT0gbV9kZXYpIHsKICAgICAgICAgbV9k
ZXYgPSBOVUxMOwotICAgICAgICAvLyBhY3RpdmUgZGV2aWNlCisgICAgICAgIC8vIGFjdGl2ZSBk
ZXZpY2UgcmVtb3ZlZAorICAgICAgICBDTGl0ZUFnZW50OjpMb2coIkFjdGl2ZSBEZXZpY2UgUmVt
b3ZlZFxuIik7CiAgICAgfQogfQogCkBAIC0xNzIsNyArMTg3LDYgQEAgdm9pZCBDTGl0ZUFnZW50
OjpPblNlcnZpY2VTdG9wKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpPbkRldmljZUV2ZW50KERXT1JE
IGV2dCwgTFBWT0lEIGRhdGEpCiB7Ci0gICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZUV2ZW50
KClcbiIpOwogICAgIG1fZGV2cy5PbkRldmljZUV2ZW50KGV2dCwgZGF0YSk7CiB9CiAKQEAgLTIy
MCw3ICsyMzQsNiBAQCBEV09SRCBXSU5BUEkgQ0xpdGVBZ2VudDo6X19TZXJ2aWNlQ29udHJvbEhh
bmRsZXJFeChEV09SRCByZXEsIERXT1JEIGV2dCwgTFBWT0lECiAgICAgICAgIHJldHVybiBOT19F
UlJPUjsKIAogICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX0RFVklDRUVWRU5UOgotICAgICAgICBD
TGl0ZUFnZW50OjpMb2coIlNFUlZJQ0VfQ09OVFJPTF9ERVZJQ0VFVkVOVFxuIik7CiAgICAgICAg
IFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKICAgICAgICAgT25EZXZpY2VFdmVu
dChldnQsIGRhdGEpOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCAz
NjgwYWZkLi4yZWMxZjU1IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTc2LDcgKzc2LDkgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgU0VSVklDRV9TVEFUVVMgICAgICAgICAgbV9zdGF0dXM7
CiAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7CiAgICAgSEFORExFICAgICAg
ICAgICAgICAgICAgbV9zdmNfc3RvcDsKLSAgICAKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAg
ICBtX3NodXRkb3duOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3VzcGVuZDsKKwog
ICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2czsKICAgICBDWGVuSWZhY2VJdGYqICAg
ICAgICAgICBtX2RldjsKIH07Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD0-0000pM-5Z; Tue, 24 May 2016 14:21:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o9-4X
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 5F/27-05497-06364475; Tue, 24 May 2016 14:21:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjc+2SX
 coP+gmcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOL6wg7Hgh3LFvAlLWBsYZ8h0MXJySAj4Syz/
 8ZQNxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxcriC0soCvxf9JPRhCbRUBVYt2ubrBeX
 gE3iennVjJDzNSQ2NQwAyzOCRR/9+E+2EwhAVeJz5u+M0LYShLfFr9ghugVlDg58wkLxC4JiY
 MvQOIcQHO4Jf52209g5JuFpGoWkqoFjEyrGDWKU4vKUot0DQ31kooy0zNKchMzc4A8E73c1OL
 ixPTUnMSkYr3k/NxNjMCAYgCCHYxnVjgfYpTkYFIS5eVMdAkX4kvKT6nMSCzOiC8qzUktPsQo
 w8GhJMF7FyQnWJSanlqRlpkDDG2YtAQHj5II7x+QNG9xQWJucWY6ROoUo6KUOK9gElBCACSRU
 ZoH1waLp0uMslLCvIxAhwjxFKQW5WaWoMq/YhTnYFQS5uUFmcKTmVcCN/0V0GImoMX+X5xBFp
 ckIqSkGhgFN93fHucdfuCowP56KTn9HxZ353/olcg5+GE+/7tkIXmzhKervCXqPY9lNdiyWBn
 orWsNmt63M9E1ZHWlgy3vilcFrjqKJn1XShStfvwutW98t1jx78ZV365Mm6x+4NPhL69OPdHT
 un2Y2z3+f+/JS/fCvP5cqXnDUJAs+i4gj8/1+f6GJeeUWIozEg21mIuKEwF7YzULogIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64550 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289459"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:49 +0100
Message-ID: <1464099660-12432-10-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 09/20] Resolve lifecycle bugs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBtYWtlIENEZXZpY2UgZGVzdHJ1Y3RvciB2aXJ0dWFsCiogY2FsbCBJRGV2aWNlQ3JlYXRvcjo6
T25EZXZpY2VSZW1vdmVkIHdoZW4gY2xlYW5pbmcgdXAgZGV2aWNlIGxpc3QKICBvbiBzZXJ2aWNl
IHN0b3AKKiBhZGQgbG9nZ2luZyB0byBPdXRwdXREZWJ1Z1N0cmluZwoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy9saXRlYWdlbnQvRGV2
aWNlTGlzdC5jcHAgfCAxMCArKysrKysrKy0tCiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaCAg
IHwgIDIgKy0KIHNyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgfCAxOSArKysrKysrKysrKysr
KysrLS0tCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgIHwgIDQgKysrLQogNCBmaWxlcyBj
aGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAgYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3Bw
CmluZGV4IDNmYzlhODUuLmNlMGNjZDIgMTAwNjQ0Ci0tLSBhL3NyYy9saXRlYWdlbnQvRGV2aWNl
TGlzdC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNwcApAQCAtNTUsNyArNTUs
NyBAQCBDRGV2aWNlOjpDRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDoKIHsKIH0KIAotQ0Rl
dmljZTo6fkNEZXZpY2UoKQorLyp2aXJ0dWFsKi8gQ0RldmljZTo6fkNEZXZpY2UoKQogewogICAg
IENsb3NlKCk7CiB9CkBAIC0xOTUsNiArMTk1LDggQEAgdm9pZCBDRGV2aWNlTGlzdDo6U3RvcCgp
CiAgICAgZm9yIChEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmJlZ2luKCk7CiAgICAg
ICAgICAgICBpdCAhPSBtX2RldnMuZW5kKCk7CiAgICAgICAgICAgICArK2l0KSB7CisgICAgICAg
IGlmIChtX2ltcGwpCisgICAgICAgICAgICBtX2ltcGwtPk9uRGV2aWNlUmVtb3ZlZChpdC0+c2Vj
b25kKTsKICAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CiAgICAgfQogICAgIG1fZGV2cy5jbGVh
cigpOwpAQCAtMjc3LDYgKzI3OSw5IEBAIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUXVlcnlS
ZW1vdmUoSEFORExFIGhhbmRsZSkKICAgICAgICAgcmV0dXJuOyAvLyBzcHVyaW91cyBldmVudD8K
IAogICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7CisgICAgaWYgKGRldiA9PSBOVUxMKQor
ICAgICAgICByZXR1cm47IC8vIGJhZCBtYXAgZW50cnkKKwogICAgIGlmIChtX2ltcGwpCiAgICAg
ICAgIG1faW1wbC0+T25EZXZpY2VSZW1vdmVkKGRldik7CiAgICAgZGV2LT5DbG9zZSgpOwpAQCAt
Mjg5LDYgKzI5NCw3IEBAIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUmVtb3ZlZChIQU5ETEUg
aGFuZGxlKQogICAgICAgICByZXR1cm47IC8vIHNwdXJpb3VzIGV2ZW50PwogCiAgICAgQ0Rldmlj
ZSogZGV2ID0gaXQtPnNlY29uZDsKLSAgICBkZWxldGUgZGV2OworICAgIGlmIChkZXYpCisgICAg
ICAgIGRlbGV0ZSBkZXY7CiAgICAgbV9kZXZzLmVyYXNlKGl0KTsKIH0KZGlmZiAtLWdpdCBhL3Ny
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmgKaW5k
ZXggNmExYjBiNC4uNmM4YjZjYiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0
LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xh
c3MgQ0RldmljZQogewogcHVibGljOgogICAgIENEZXZpY2UoY29uc3Qgd2NoYXJfdCogcGF0aCk7
Ci0gICAgfkNEZXZpY2UoKTsKKyAgICB2aXJ0dWFsIH5DRGV2aWNlKCk7CiAKICAgICBIQU5ETEUg
T3BlbihIQU5ETEUgc3ZjKTsKICAgICB2b2lkIENsb3NlKCk7CmRpZmYgLS1naXQgYS9zcmMvbGl0
ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXgg
OTA4YzBjOS4uYmE0OGZjMCAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3Bw
CisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAj
ZGVmaW5lIElOSVRHVUlECiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+
CiAKICNpbmNsdWRlICJMaXRlQWdlbnQuaCIKICNpbmNsdWRlICJ4ZW5pZmFjZV9pb2N0bHMuaCIK
QEAgLTUwLDYgKzUxLDE0IEBAIHN0YXRpYyBDTGl0ZUFnZW50IHNfc2VydmljZTsKIAogLypzdGF0
aWMqLyB2b2lkIENMaXRlQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQsIC4uLikKIHsKKyAgICBj
aGFyIG1lc3NhZ2VbMjU2XTsKKyAgICB2YV9saXN0IGFyZ3M7CisKKyAgICB2YV9zdGFydChhcmdz
LCBmbXQpOworICAgIHZzbnByaW50Zl9zKG1lc3NhZ2UsIHNpemVvZihtZXNzYWdlKSwgc2l6ZW9m
KG1lc3NhZ2UpL3NpemVvZihtZXNzYWdlWzBdKSAtIDEsIGZtdCwgYXJncyk7CisgICAgdmFfZW5k
KGFyZ3MpOworCisgICAgT3V0cHV0RGVidWdTdHJpbmcobWVzc2FnZSk7CiB9CiAKIC8qc3RhdGlj
Ki8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkKQEAgLTEyNywxMSArMTM2LDE1IEBA
IENMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMoR1VJRF9J
TlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RlCiAgICAgbV9zdGF0dXMuZHdXYWl0SGludCAgICAgICAg
ICAgPSAwOwogCiAgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9zaHV0ZG93biA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9zdXNwZW5kICA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7IAogfQogCiBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiB7CiAgICAgQ2xvc2VI
YW5kbGUobV9zdmNfc3RvcCk7CisgICAgQ2xvc2VIYW5kbGUobV9zaHV0ZG93bik7CisgICAgQ2xv
c2VIYW5kbGUobV9zdXNwZW5kKTsKIH0KIAogLyp2aXJ0dWFsKi8gQ0RldmljZSogQ0xpdGVBZ2Vu
dDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCkBAIC0xNDYsNiArMTU5LDcgQEAgQ0xpdGVB
Z2VudDo6fkNMaXRlQWdlbnQoKQogICAgIGlmIChtX2RldiA9PSBOVUxMKSB7CiAgICAgICAgIG1f
ZGV2ID0gKENYZW5JZmFjZUl0ZiopZGV2OwogICAgICAgICAvLyBzZXR0aW5nIGFjdGl2ZSBkZXZp
Y2UKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTdGFydGluZyBBY3RpdmUgRGV2aWNlXG4iKTsK
ICAgICB9CiB9CiAKQEAgLTE1NCw3ICsxNjgsOCBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgp
CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQoJXdzKVxuIiwgZGV2LT5QYXRo
KCkpOwogICAgIGlmICgoQ1hlbklmYWNlSXRmKilkZXYgPT0gbV9kZXYpIHsKICAgICAgICAgbV9k
ZXYgPSBOVUxMOwotICAgICAgICAvLyBhY3RpdmUgZGV2aWNlCisgICAgICAgIC8vIGFjdGl2ZSBk
ZXZpY2UgcmVtb3ZlZAorICAgICAgICBDTGl0ZUFnZW50OjpMb2coIkFjdGl2ZSBEZXZpY2UgUmVt
b3ZlZFxuIik7CiAgICAgfQogfQogCkBAIC0xNzIsNyArMTg3LDYgQEAgdm9pZCBDTGl0ZUFnZW50
OjpPblNlcnZpY2VTdG9wKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpPbkRldmljZUV2ZW50KERXT1JE
IGV2dCwgTFBWT0lEIGRhdGEpCiB7Ci0gICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZUV2ZW50
KClcbiIpOwogICAgIG1fZGV2cy5PbkRldmljZUV2ZW50KGV2dCwgZGF0YSk7CiB9CiAKQEAgLTIy
MCw3ICsyMzQsNiBAQCBEV09SRCBXSU5BUEkgQ0xpdGVBZ2VudDo6X19TZXJ2aWNlQ29udHJvbEhh
bmRsZXJFeChEV09SRCByZXEsIERXT1JEIGV2dCwgTFBWT0lECiAgICAgICAgIHJldHVybiBOT19F
UlJPUjsKIAogICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX0RFVklDRUVWRU5UOgotICAgICAgICBD
TGl0ZUFnZW50OjpMb2coIlNFUlZJQ0VfQ09OVFJPTF9ERVZJQ0VFVkVOVFxuIik7CiAgICAgICAg
IFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKICAgICAgICAgT25EZXZpY2VFdmVu
dChldnQsIGRhdGEpOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCAz
NjgwYWZkLi4yZWMxZjU1IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTc2LDcgKzc2LDkgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgU0VSVklDRV9TVEFUVVMgICAgICAgICAgbV9zdGF0dXM7
CiAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7CiAgICAgSEFORExFICAgICAg
ICAgICAgICAgICAgbV9zdmNfc3RvcDsKLSAgICAKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAg
ICBtX3NodXRkb3duOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3VzcGVuZDsKKwog
ICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2czsKICAgICBDWGVuSWZhY2VJdGYqICAg
ICAgICAgICBtX2RldjsKIH07Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000qO-7K; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000oM-NL
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
 B3/8D-22300-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjch2SX
 coGMhv8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNePPtEEvBpqqK9UvOsTQwTo3tYuTkkBDwl7g4
 6zo7iM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYQFXiYksLG4jNAmRfOL0KqIaDg
 1fAVWJOvw/ESA2JTQ0zwEo4Bdwk3n24DzZSCKjk86bvjBC2ksS3xS+YQWxeAUGJkzOfsECskp
 A4+AIkzgE0h1vib7f9BEa+WUiqZiGpWsDItIpRozi1qCy1SNfQWC+pKDM9oyQ3MTNH19DQRC8
 3tbg4MT01JzGpWC85P3cTIzCc6hkYGHcw7trueYhRkoNJSZS3IMklXIgvKT+lMiOxOCO+qDQn
 tfgQowwHh5IEry9ITrAoNT21Ii0zBxjYMGkJDh4lEd4/iUBp3uKCxNzizHSI1ClGRSlxXkGQP
 gGQREZpHlwbLJouMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLmDQcZz5OZVwI3/RXQYiagxf
 5fnEEWlyQipKQaGNP0Um539yc+UZU8rTPzrH93t07/t/3L7d/Eca1s81T/cvve8ri0TXLXmZk
 8PfYd6VJW3bSxWzc7MXVGgOs+AxvzkCOi7UdM9P6LXN2/Kbbisu7SR7YLr3fkx/25wHhHtcHY
 4Jjbur59849Gzj9l+u2J8/eHhk+uBiW5iuonTo6984h7xvyeH0osxRmJhlrMRcWJAJToxCehA
 gAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1534 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289461"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:46 +0100
Message-ID: <1464099660-12432-7-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 06/20] Add DeviceList
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Q0RldmljZUxpc3QgbWFuYWdlcyB0aGUgZGV2aWNlIGNoYW5nZSBub3RpZmljYXRpb25zLCBhbmQK
U2V0dXBBcGkgZW51bWVyYXRpb24uIEFkZCBhIGNsYXNzIGluaGVyaXRlZCBmcm9tIENEZXZpY2Ug
YW5kIAppbXBsZW1lbnQgSURldmljZUNyZWF0b3IgdG8gYWRkIHNwZWNpZmljIGZ1bmN0aW9uYWxp
dHkKClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0t
CiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwICAgICAgIHwgMjc5ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oICAgICAg
ICAgfCAgODkgKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgICAgICAg
IHwgIDEyICstCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgICAgICAgIHwgICA5ICstCiB2
czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgICAyICsKIHZzMjAxMy9saXRlYWdl
bnQvTGl0ZUFnZW50LnZjeHByb2ogfCAgIDIgKwogNiBmaWxlcyBjaGFuZ2VkLCAzOTEgaW5zZXJ0
aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50
L0RldmljZUxpc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9EZXZpY2VM
aXN0LmgKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xp
dGVhZ2VudC9EZXZpY2VMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xY2IzYmY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNw
cApAQCAtMCwwICsxLDI3OSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
IDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHNldHVwYXBpLmg+Cisj
cHJhZ21hIGNvbW1lbnQgKGxpYiAsICJzZXR1cGFwaS5saWIiICkKKworI2luY2x1ZGUgIkRldmlj
ZUxpc3QuaCIKKworLy8gZGVhbCB3aXRoIFNldHVwQXBpIGFuZCBSZWdpc3RlckRldmljZU5vdGlm
aWNhdGlvbiB1c2luZyBkaWZmZXJlbnQgc3RyaW5nIHR5cGVzCitzdGF0aWMgc3RkOjp3c3RyaW5n
IENvbnZlcnQoY29uc3QgY2hhciogc3RyKQoreworICAgIHN0ZDo6d3N0cmluZyB3c3RyOworICAg
IHdzdHIucmVzZXJ2ZShzdHJsZW4oc3RyKSArIDEpOworICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIo
Q1BfQUNQLCAwLCBzdHIsIC0xLCAoTFBXU1RSKXdzdHIuZGF0YSgpLCAoaW50KXdzdHIuY2FwYWNp
dHkoKSk7CisgICAgcmV0dXJuIHdzdHI7Cit9CisKK3N0YXRpYyBzdGQ6OndzdHJpbmcgQ29udmVy
dChjb25zdCB3Y2hhcl90KiB3c3RyKQoreworICAgIHJldHVybiBzdGQ6OndzdHJpbmcod3N0cik7
Cit9CisKK0NEZXZpY2U6OkNEZXZpY2UoY29uc3Qgd2NoYXJfdCogcGF0aCkgOgorICAgIG1faGFu
ZGxlKElOVkFMSURfSEFORExFX1ZBTFVFKSwgbV9wYXRoKHBhdGgpLCBtX25vdGlmeShOVUxMKQor
eworfQorCitDRGV2aWNlOjp+Q0RldmljZSgpCit7CisgICAgQ2xvc2UoKTsKK30KKworSEFORExF
IENEZXZpY2U6Ok9wZW4oSEFORExFIHN2YykKK3sKKyAgICBDbG9zZSgpOworCisgICAgbV9oYW5k
bGUgPSBDcmVhdGVGaWxlVyhtX3BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGSUxFX1NIQVJFX1JFQUQgfCBGSUxFX1NIQVJFX1dSSVRFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5fRVhJU1RJ
TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQor
ICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisKKyAgICBERVZfQlJPQURDQVNU
X0hBTkRMRSBkZXZoZGwgPSB7IDAgfTsKKyAgICBkZXZoZGwuZGJjaF9zaXplID0gc2l6ZW9mKGRl
dmhkbCk7CisgICAgZGV2aGRsLmRiY2hfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfSEFORExFOwor
ICAgIGRldmhkbC5kYmNoX2hhbmRsZSA9IG1faGFuZGxlOworCisgICAgbV9ub3RpZnkgPSBSZWdp
c3RlckRldmljZU5vdGlmaWNhdGlvbihzdmMsICZkZXZoZGwsIERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOworICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKSB7CisgICAgICAgIENsb3NlKCk7
CisgICAgICAgIHJldHVybiBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9oYW5kbGU7Cit9CisKK3ZvaWQgQ0RldmljZTo6Q2xvc2UoKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworICAgIENsb3Nl
SGFuZGxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwor
fQorCitib29sIENEZXZpY2U6OklvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5z
eiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKCFEZXZpY2VJb0NvbnRyb2wobV9oYW5kbGUsIGlvY3RsLCBpbiwgaW5zeiwgb3V0LCBv
dXRzeiwgYnl0ZXMsIE5VTEwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworQ0RldmljZUxpc3Q6OkNEZXZpY2VMaXN0KGNvbnN0IEdVSUQmIGl0ZikgOgor
ICAgIG1fZ3VpZChpdGYpLCBtX25vdGlmeShOVUxMKSwgbV9oYW5kbGUoTlVMTCksIG1faW1wbChO
VUxMKQoreworfQorCitDRGV2aWNlTGlzdDo6fkNEZXZpY2VMaXN0KCkKK3sKKyAgICBTdG9wKCk7
Cit9CisKK2Jvb2wgQ0RldmljZUxpc3Q6OlN0YXJ0KEhBTkRMRSBoYW5kbGUsIElEZXZpY2VDcmVh
dG9yKiBpbXBsKQoreworICAgIFN0b3AoKTsKKworICAgIG1faGFuZGxlID0gaGFuZGxlOworICAg
IG1faW1wbCA9IGltcGw7CisKKyAgICBERVZfQlJPQURDQVNUX0RFVklDRUlOVEVSRkFDRSBkZXYg
PSB7IDAgfTsKKyAgICBkZXYuZGJjY19zaXplID0gc2l6ZW9mKGRldik7CisgICAgZGV2LmRiY2Nf
ZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFOworICAgIGRldi5kYmNjX2Ns
YXNzZ3VpZCA9IG1fZ3VpZDsKKworICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJEZXZpY2VOb3RpZmlj
YXRpb25BKGhhbmRsZSwgJmRldiwgREVWSUNFX05PVElGWV9TRVJWSUNFX0hBTkRMRSk7CisgICAg
aWYgKG1fbm90aWZ5ID09IE5VTEwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEhERVZJ
TkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm87CisgICAgU1BfREVWSUNFX0lOVEVS
RkFDRV9EQVRBICAgICAgICAgICAgaXRmOworICAgIFBTUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJ
TF9EQVRBICAgIGRldGFpbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZHg7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuOworCisg
ICAgaW5mbyA9IFNldHVwRGlHZXRDbGFzc0RldnMoJm1fZ3VpZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElHQ0ZfUFJFU0VOVCB8IERJR0NGX0RF
VklDRUlOVEVSRkFDRSk7CisgICAgaWYgKGluZm8gPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIAor
ICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3NpbmcgYWxyZWFkeSBw
cmVzZW50IGRldmljZShzKQorCisgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9ERVZJQ0VfSU5U
RVJGQUNFX0RBVEEpOworICAgIGZvciAoaWR4ID0gMDsgCisgICAgICAgIFNldHVwRGlFbnVtRGV2
aWNlSW50ZXJmYWNlcyhpbmZvLCBOVUxMLCAmbV9ndWlkLCBpZHgsICZpdGYpOyAKKyAgICAgICAg
KytpZHgpIHsKKyAgICAgICAgU2V0dXBEaUdldERldmljZUludGVyZmFjZURldGFpbChpbmZvLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdGYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCk7CisgICAgICAgIGRldGFpbCA9IChQU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSlu
ZXcgQllURVtsZW5dOworICAgICAgICBpZiAoZGV0YWlsID09IE5VTEwpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgZGV0YWlsLT5jYlNpemUgPSBzaXplb2YoU1BfREVWSUNFX0lOVEVS
RkFDRV9ERVRBSUxfREFUQSk7CisgICAgICAgIGlmIChTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNl
RGV0YWlsKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZpdGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFp
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkgeworICAgICAgICAgICAg
T25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCBjaGFyKilkZXRhaWwtPkRldmljZVBhdGgpKTsK
KyAgICAgICAgfQorICAgICAgICBkZWxldGUgW10gZGV0YWlsOworICAgICAgICBpdGYuY2JTaXpl
ID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSk7CisgICAgfQorICAgIFNldHVwRGlE
ZXN0cm95RGV2aWNlSW5mb0xpc3QoaW5mbyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
Q0RldmljZUxpc3Q6OlN0b3AoKQoreworICAgIGlmIChtX25vdGlmeSAhPSBOVUxMKQorICAgICAg
ICBVbnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKG1fbm90aWZ5KTsKKyAgICBtX25vdGlmeSA9
IE5VTEw7CisKKyAgICBmb3IgKERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4o
KTsKKyAgICAgICAgICAgIGl0ICE9IG1fZGV2cy5lbmQoKTsKKyAgICAgICAgICAgICsraXQpIHsK
KyAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CisgICAgfQorICAgIG1fZGV2cy5jbGVhcigpOwor
fQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRh
dGEpCit7CisgICAgUERFVl9CUk9BRENBU1RfSERSICAgICAgICAgICAgICBoZHI7CisgICAgUERF
Vl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFICBpdGY7CisgICAgUERFVl9CUk9BRENBU1RfSEFO
RExFICAgICAgICAgICBoZGw7CisKKyAgICBoZHIgPSAoUERFVl9CUk9BRENBU1RfSERSKWRhdGE7
CisgICAgc3dpdGNoIChldnQpIHsKKyAgICBjYXNlIERCVF9ERVZJQ0VBUlJJVkFMOgorICAgICAg
ICBpZiAoaGRyLT5kYmNoX2RldmljZXR5cGUgPT0gREJUX0RFVlRZUF9ERVZJQ0VJTlRFUkZBQ0Up
IHsKKyAgICAgICAgICAgIGl0ZiA9IChQREVWX0JST0FEQ0FTVF9ERVZJQ0VJTlRFUkZBQ0UpaGRy
OworICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCB3Y2hhcl90KilpdGYt
PmRiY2NfbmFtZSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEQlRf
REVWSUNFUVVFUllSRU1PVkU6CisgICAgICAgIGlmIChoZHItPmRiY2hfZGV2aWNldHlwZSA9PSBE
QlRfREVWVFlQX0hBTkRMRSkgeworICAgICAgICAgICAgaGRsID0gKFBERVZfQlJPQURDQVNUX0hB
TkRMRSloZHI7CisgICAgICAgICAgICBPbkRldmljZVF1ZXJ5UmVtb3ZlKGhkbC0+ZGJjaF9oYW5k
bGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEQlRfREVWSUNFUkVN
T1ZFUEVORElORzoKKyAgICAgICAgaWYgKGhkci0+ZGJjaF9kZXZpY2V0eXBlID09IERCVF9ERVZU
WVBfSEFORExFKSB7CisgICAgICAgICAgICBoZGwgPSAoUERFVl9CUk9BRENBU1RfSEFORExFKWhk
cjsKKyAgICAgICAgICAgIFVucmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24oaGRsLT5kYmNoX2hk
ZXZub3RpZnkpOworICAgICAgICAgICAgT25EZXZpY2VSZW1vdmVkKGhkbC0+ZGJjaF9oYW5kbGUp
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCitDRGV2aWNlKiBDRGV2aWNlTGlzdDo6R2V0Rmlyc3REZXZpY2UoKQor
eworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4oKTsKKyAgICBpZiAo
aXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gaXQt
PnNlY29uZDsKK30KKwordm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VBZGRlZChjb25zdCBzdGQ6
OndzdHJpbmcmIHBhdGgpCit7CisgICAgQ0RldmljZSogZGV2OworICAgIGlmIChtX2ltcGwgPT0g
TlVMTCkKKyAgICAgICAgZGV2ID0gbmV3IENEZXZpY2UocGF0aC5jX3N0cigpKTsKKyAgICBlbHNl
CisgICAgICAgIGRldiA9IG1faW1wbC0+Q3JlYXRlKHBhdGguY19zdHIoKSk7CisgICAgaWYgKGRl
diA9PSBOVUxMKQorICAgICAgICByZXR1cm47IC8vIGNyZWF0ZSBmYWlsZWQKKworICAgIEhBTkRM
RSBoYW5kbGUgPSBkZXYtPk9wZW4obV9oYW5kbGUpOworICAgIGlmIChoYW5kbGUgPT0gSU5WQUxJ
RF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOyAv
LyBvcGVuIGZhaWxlZAorICAgIH0KKworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2Rl
dnMuZmluZChoYW5kbGUpOworICAgIGlmIChpdCAhPSBtX2RldnMuZW5kKCkpIHsKKyAgICAgICAg
ZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV2c1toYW5kbGVd
ID0gZGV2OworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVF1ZXJ5UmVtb3ZlKEhBTkRM
RSBoYW5kbGUpCit7CisgICAgRGV2aWNlTWFwOjppdGVyYXRvciBpdCA9IG1fZGV2cy5maW5kKGhh
bmRsZSk7CisgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOyAvLyBz
cHVyaW91cyBldmVudD8KKworICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7CisgICAgZGV2
LT5DbG9zZSgpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVJlbW92ZWQoSEFORExF
IGhhbmRsZSkKK3sKKyAgICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFu
ZGxlKTsKKyAgICBpZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm47IC8vIHNw
dXJpb3VzIGV2ZW50PworCisgICAgQ0RldmljZSogZGV2ID0gaXQtPnNlY29uZDsKKyAgICBkZWxl
dGUgZGV2OworICAgIG1fZGV2cy5lcmFzZShpdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFn
ZW50L0RldmljZUxpc3QuaCBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZGY1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv
bGl0ZWFnZW50L0RldmljZUxpc3QuaApAQCAtMCwwICsxLDg5IEBACisvKiBDb3B5cmlnaHQgKGMp
IENpdHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCisgKiB3aXRo
IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAorICogdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCisgKiAgICAgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCisgKiBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKKyAqIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCAKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIAorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBfREVWSUNFTElTVF9IXworI2RlZmluZSBfREVWSUNFTElTVF9I
XworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPGRidC5oPgorI2luY2x1ZGUgPG1h
cD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK2NsYXNzIENEZXZpY2UKK3sKK3B1YmxpYzoKKyAgICBD
RGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOworICAgIH5DRGV2aWNlKCk7CisKKyAgICBIQU5E
TEUgT3BlbihIQU5ETEUgc3ZjKTsKKyAgICB2b2lkIENsb3NlKCk7CisKK3Byb3RlY3RlZDoKKyAg
ICBib29sIElvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5zeiwgdm9pZCogb3V0
LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKTsKKworcHJpdmF0ZToKKyAgICBzdGQ6OndzdHJp
bmcgICAgbV9wYXRoOworICAgIEhBTkRMRSAgICAgICAgICBtX2hhbmRsZTsKKyAgICBIREVWTk9U
SUZZICAgICAgbV9ub3RpZnk7Cit9OworCitpbnRlcmZhY2UgSURldmljZUNyZWF0b3IKK3sKKyAg
ICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKSA9IDA7Cit9Owor
CitjbGFzcyBDRGV2aWNlTGlzdAoreworcHVibGljOgorICAgIENEZXZpY2VMaXN0KGNvbnN0IEdV
SUQmIGl0Zik7CisgICAgfkNEZXZpY2VMaXN0KCk7CisKKyAgICBib29sIFN0YXJ0KEhBTkRMRSBz
dmMsIElEZXZpY2VDcmVhdG9yKiBpbXBsKTsKKyAgICB2b2lkIFN0b3AoKTsKKyAgICB2b2lkIE9u
RGV2aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSk7CisgICAgQ0RldmljZSogR2V0Rmly
c3REZXZpY2UoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIE9uRGV2aWNlQWRkZWQoY29uc3Qgc3Rk
Ojp3c3RyaW5nJiBwYXRoKTsKKyAgICB2b2lkIE9uRGV2aWNlUXVlcnlSZW1vdmUoSEFORExFIGhh
bmRsZSk7CisgICAgdm9pZCBPbkRldmljZVJlbW92ZWQoSEFORExFIGRldik7CisKKyAgICB0eXBl
ZGVmIHN0ZDo6bWFwPCBIQU5ETEUsIENEZXZpY2UqID4gRGV2aWNlTWFwOworCisgICAgR1VJRCAg
ICAgICAgbV9ndWlkOworICAgIERldmljZU1hcCAgIG1fZGV2czsKKyAgICBIREVWTk9USUZZICBt
X25vdGlmeTsKKyAgICBIQU5ETEUgICAgICBtX2hhbmRsZTsKKyAgICBJRGV2aWNlQ3JlYXRvciog
bV9pbXBsOworfTsKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAppbmRleCA3OTIwZTliLi4xZWVj
ODdlIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d2luZG93
cy5oPgogCiAjaW5jbHVkZSAiTGl0ZUFnZW50LmgiCisjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxz
LmgiCiAKIGludCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFO
Q0UgaWdub3JlLCBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKIHsKQEAgLTg3LDYgKzg4
LDcgQEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogICAgIERlbGV0ZVNlcnZpY2Uoc3Zj
KTsKICAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3ZjKTsKICAgICBDbG9zZVNlcnZpY2VIYW5kbGUo
bWdyKTsKKyAgICByZXR1cm4gMDsKIH0KIAogLypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2Vy
dmljZUVudHJ5KCkKQEAgLTExNCw3ICsxMTYsNyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZp
Y2U7CiAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwg
ZXZ0LCBkYXRhLCBjdHh0KTsKIH0KIAotQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5k
bGUoTlVMTCkKK0NMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2Rl
dnMoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpCiB7CiAgICAgbV9zdGF0dXMuZHdTZXJ2aWNlVHlw
ZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAg
ICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsgCkBAIC0xMzIsMTkgKzEzNCwyNyBAQCBDTGl0
ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiB9CiAK
Ky8qdmlydHVhbCovIENEZXZpY2UqIENMaXRlQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90KiBw
YXRoKQoreworICAgIHJldHVybiBuZXcgQ0RldmljZShwYXRoKTsKK30KKwogdm9pZCBDTGl0ZUFn
ZW50OjpPblNlcnZpY2VTdGFydCgpCiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblNlcnZpY2VT
dGFydCgpXG4iKTsKKyAgICBtX2RldnMuU3RhcnQobV9oYW5kbGUsIHRoaXMpOwogfQogCiB2b2lk
IENMaXRlQWdlbnQ6Ok9uU2VydmljZVN0b3AoKQogewogICAgIENMaXRlQWdlbnQ6OkxvZygiT25T
ZXJ2aWNlU3RvcCgpXG4iKTsKKyAgICBtX2RldnMuU3RvcCgpOwogfQogCiB2b2lkIENMaXRlQWdl
bnQ6Ok9uRGV2aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSkKIHsKICAgICBDTGl0ZUFn
ZW50OjpMb2coIk9uRGV2aWNlRXZlbnQoKVxuIik7CisgICAgbV9kZXZzLk9uRGV2aWNlRXZlbnQo
ZXZ0LCBkYXRhKTsKIH0KIAogYm9vbCBDTGl0ZUFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQpkaWZm
IC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmgKaW5kZXggYWIxOTJlZi4uNTdlZDllNyAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9M
aXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC0zOCw3ICszOCw5
IEBACiAjZGVmaW5lIFNWQ19ESVNQTEFZTkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZh
Y2UgU2VydmljZSIKICNkZWZpbmUgU1ZDX0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJp
b3VzIG1ldHJpY3MgdG8gWGVuU3RvcmUiCiAKLWNsYXNzIENMaXRlQWdlbnQKKyNpbmNsdWRlICJE
ZXZpY2VMaXN0LmgiCisKK2NsYXNzIENMaXRlQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0b3IK
IHsKIHB1YmxpYzogLy8gc3RhdGljcwogICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBm
bXQsIC4uLik7CkBAIC01NCw2ICs1Niw5IEBAIHB1YmxpYzogLy8gY3Rvci9kdG9yCiAgICAgQ0xp
dGVBZ2VudCgpOwogICAgIH5DTGl0ZUFnZW50KCk7CiAKK3B1YmxpYzogLy8gSURldmljZUNyZWF0
b3IKKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKTsKKwog
cHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMKICAgICB2b2lkIE9uU2VydmljZVN0YXJ0KCk7CiAg
ICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7CkBAIC02OCw2ICs3Myw4IEBAIHByaXZhdGU6IC8vIHNl
cnZpY2Ugc3VwcG9ydAogICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAgIG1fc3RhdHVzOwogICAg
IFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOwogICAgIEhBTkRMRSAgICAgICAgICAg
ICAgICAgIG1fc3ZjX3N0b3A7CisgICAgCisgICAgQ0RldmljZUxpc3QgICAgICAgICAgICAgbV9k
ZXZzOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA5Njdh
M2ExLi44NGI1MTEzIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qCisrKyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5NCw5ICsx
OTQsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAvPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmNw
cCIgLz4KIAk8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcTGl0ZUFnZW50LmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XERldmljZUxpc3QuaCIgLz4KIAk8L0l0ZW1Hcm91
cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3JjXGxp
dGVhZ2VudFxtZXNzYWdlcy5tYyI+CmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBj
MWI1YzVkLi42YTNjNzg3IDEwMDY0NAotLS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52
Y3hwcm9qCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5OCw5
ICsxOTgsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAv
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0
LmNwcCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExpdGVBZ2VudC5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmgiIC8+CiAgIDwvSXRl
bUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxz
cmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1jIj4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000qO-7K; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000oM-NL
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
 B3/8D-22300-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjch2SX
 coGMhv8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNePPtEEvBpqqK9UvOsTQwTo3tYuTkkBDwl7g4
 6zo7iM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYQFXiYksLG4jNAmRfOL0KqIaDg
 1fAVWJOvw/ESA2JTQ0zwEo4Bdwk3n24DzZSCKjk86bvjBC2ksS3xS+YQWxeAUGJkzOfsECskp
 A4+AIkzgE0h1vib7f9BEa+WUiqZiGpWsDItIpRozi1qCy1SNfQWC+pKDM9oyQ3MTNH19DQRC8
 3tbg4MT01JzGpWC85P3cTIzCc6hkYGHcw7trueYhRkoNJSZS3IMklXIgvKT+lMiOxOCO+qDQn
 tfgQowwHh5IEry9ITrAoNT21Ii0zBxjYMGkJDh4lEd4/iUBp3uKCxNzizHSI1ClGRSlxXkGQP
 gGQREZpHlwbLJouMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLmDQcZz5OZVwI3/RXQYiagxf
 5fnEEWlyQipKQaGNP0Um539yc+UZU8rTPzrH93t07/t/3L7d/Eca1s81T/cvve8ri0TXLXmZk
 8PfYd6VJW3bSxWzc7MXVGgOs+AxvzkCOi7UdM9P6LXN2/Kbbisu7SR7YLr3fkx/25wHhHtcHY
 4Jjbur59849Gzj9l+u2J8/eHhk+uBiW5iuonTo6984h7xvyeH0osxRmJhlrMRcWJAJToxCehA
 gAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1534 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289461"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:46 +0100
Message-ID: <1464099660-12432-7-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 06/20] Add DeviceList
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Q0RldmljZUxpc3QgbWFuYWdlcyB0aGUgZGV2aWNlIGNoYW5nZSBub3RpZmljYXRpb25zLCBhbmQK
U2V0dXBBcGkgZW51bWVyYXRpb24uIEFkZCBhIGNsYXNzIGluaGVyaXRlZCBmcm9tIENEZXZpY2Ug
YW5kIAppbXBsZW1lbnQgSURldmljZUNyZWF0b3IgdG8gYWRkIHNwZWNpZmljIGZ1bmN0aW9uYWxp
dHkKClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0t
CiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwICAgICAgIHwgMjc5ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oICAgICAg
ICAgfCAgODkgKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgICAgICAg
IHwgIDEyICstCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgICAgICAgIHwgICA5ICstCiB2
czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgICAyICsKIHZzMjAxMy9saXRlYWdl
bnQvTGl0ZUFnZW50LnZjeHByb2ogfCAgIDIgKwogNiBmaWxlcyBjaGFuZ2VkLCAzOTEgaW5zZXJ0
aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50
L0RldmljZUxpc3QuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9EZXZpY2VM
aXN0LmgKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xp
dGVhZ2VudC9EZXZpY2VMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xY2IzYmY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmNw
cApAQCAtMCwwICsxLDI3OSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
IDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHNldHVwYXBpLmg+Cisj
cHJhZ21hIGNvbW1lbnQgKGxpYiAsICJzZXR1cGFwaS5saWIiICkKKworI2luY2x1ZGUgIkRldmlj
ZUxpc3QuaCIKKworLy8gZGVhbCB3aXRoIFNldHVwQXBpIGFuZCBSZWdpc3RlckRldmljZU5vdGlm
aWNhdGlvbiB1c2luZyBkaWZmZXJlbnQgc3RyaW5nIHR5cGVzCitzdGF0aWMgc3RkOjp3c3RyaW5n
IENvbnZlcnQoY29uc3QgY2hhciogc3RyKQoreworICAgIHN0ZDo6d3N0cmluZyB3c3RyOworICAg
IHdzdHIucmVzZXJ2ZShzdHJsZW4oc3RyKSArIDEpOworICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIo
Q1BfQUNQLCAwLCBzdHIsIC0xLCAoTFBXU1RSKXdzdHIuZGF0YSgpLCAoaW50KXdzdHIuY2FwYWNp
dHkoKSk7CisgICAgcmV0dXJuIHdzdHI7Cit9CisKK3N0YXRpYyBzdGQ6OndzdHJpbmcgQ29udmVy
dChjb25zdCB3Y2hhcl90KiB3c3RyKQoreworICAgIHJldHVybiBzdGQ6OndzdHJpbmcod3N0cik7
Cit9CisKK0NEZXZpY2U6OkNEZXZpY2UoY29uc3Qgd2NoYXJfdCogcGF0aCkgOgorICAgIG1faGFu
ZGxlKElOVkFMSURfSEFORExFX1ZBTFVFKSwgbV9wYXRoKHBhdGgpLCBtX25vdGlmeShOVUxMKQor
eworfQorCitDRGV2aWNlOjp+Q0RldmljZSgpCit7CisgICAgQ2xvc2UoKTsKK30KKworSEFORExF
IENEZXZpY2U6Ok9wZW4oSEFORExFIHN2YykKK3sKKyAgICBDbG9zZSgpOworCisgICAgbV9oYW5k
bGUgPSBDcmVhdGVGaWxlVyhtX3BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGSUxFX1NIQVJFX1JFQUQgfCBGSUxFX1NIQVJFX1dSSVRFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5fRVhJU1RJ
TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQor
ICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisKKyAgICBERVZfQlJPQURDQVNU
X0hBTkRMRSBkZXZoZGwgPSB7IDAgfTsKKyAgICBkZXZoZGwuZGJjaF9zaXplID0gc2l6ZW9mKGRl
dmhkbCk7CisgICAgZGV2aGRsLmRiY2hfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfSEFORExFOwor
ICAgIGRldmhkbC5kYmNoX2hhbmRsZSA9IG1faGFuZGxlOworCisgICAgbV9ub3RpZnkgPSBSZWdp
c3RlckRldmljZU5vdGlmaWNhdGlvbihzdmMsICZkZXZoZGwsIERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOworICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKSB7CisgICAgICAgIENsb3NlKCk7
CisgICAgICAgIHJldHVybiBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9oYW5kbGU7Cit9CisKK3ZvaWQgQ0RldmljZTo6Q2xvc2UoKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworICAgIENsb3Nl
SGFuZGxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwor
fQorCitib29sIENEZXZpY2U6OklvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5z
eiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKCFEZXZpY2VJb0NvbnRyb2wobV9oYW5kbGUsIGlvY3RsLCBpbiwgaW5zeiwgb3V0LCBv
dXRzeiwgYnl0ZXMsIE5VTEwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworQ0RldmljZUxpc3Q6OkNEZXZpY2VMaXN0KGNvbnN0IEdVSUQmIGl0ZikgOgor
ICAgIG1fZ3VpZChpdGYpLCBtX25vdGlmeShOVUxMKSwgbV9oYW5kbGUoTlVMTCksIG1faW1wbChO
VUxMKQoreworfQorCitDRGV2aWNlTGlzdDo6fkNEZXZpY2VMaXN0KCkKK3sKKyAgICBTdG9wKCk7
Cit9CisKK2Jvb2wgQ0RldmljZUxpc3Q6OlN0YXJ0KEhBTkRMRSBoYW5kbGUsIElEZXZpY2VDcmVh
dG9yKiBpbXBsKQoreworICAgIFN0b3AoKTsKKworICAgIG1faGFuZGxlID0gaGFuZGxlOworICAg
IG1faW1wbCA9IGltcGw7CisKKyAgICBERVZfQlJPQURDQVNUX0RFVklDRUlOVEVSRkFDRSBkZXYg
PSB7IDAgfTsKKyAgICBkZXYuZGJjY19zaXplID0gc2l6ZW9mKGRldik7CisgICAgZGV2LmRiY2Nf
ZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFOworICAgIGRldi5kYmNjX2Ns
YXNzZ3VpZCA9IG1fZ3VpZDsKKworICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJEZXZpY2VOb3RpZmlj
YXRpb25BKGhhbmRsZSwgJmRldiwgREVWSUNFX05PVElGWV9TRVJWSUNFX0hBTkRMRSk7CisgICAg
aWYgKG1fbm90aWZ5ID09IE5VTEwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEhERVZJ
TkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm87CisgICAgU1BfREVWSUNFX0lOVEVS
RkFDRV9EQVRBICAgICAgICAgICAgaXRmOworICAgIFBTUF9ERVZJQ0VfSU5URVJGQUNFX0RFVEFJ
TF9EQVRBICAgIGRldGFpbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZHg7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuOworCisg
ICAgaW5mbyA9IFNldHVwRGlHZXRDbGFzc0RldnMoJm1fZ3VpZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElHQ0ZfUFJFU0VOVCB8IERJR0NGX0RF
VklDRUlOVEVSRkFDRSk7CisgICAgaWYgKGluZm8gPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIAor
ICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3NpbmcgYWxyZWFkeSBw
cmVzZW50IGRldmljZShzKQorCisgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9ERVZJQ0VfSU5U
RVJGQUNFX0RBVEEpOworICAgIGZvciAoaWR4ID0gMDsgCisgICAgICAgIFNldHVwRGlFbnVtRGV2
aWNlSW50ZXJmYWNlcyhpbmZvLCBOVUxMLCAmbV9ndWlkLCBpZHgsICZpdGYpOyAKKyAgICAgICAg
KytpZHgpIHsKKyAgICAgICAgU2V0dXBEaUdldERldmljZUludGVyZmFjZURldGFpbChpbmZvLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdGYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCk7CisgICAgICAgIGRldGFpbCA9IChQU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSlu
ZXcgQllURVtsZW5dOworICAgICAgICBpZiAoZGV0YWlsID09IE5VTEwpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgZGV0YWlsLT5jYlNpemUgPSBzaXplb2YoU1BfREVWSUNFX0lOVEVS
RkFDRV9ERVRBSUxfREFUQSk7CisgICAgICAgIGlmIChTZXR1cERpR2V0RGV2aWNlSW50ZXJmYWNl
RGV0YWlsKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZpdGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFp
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkgeworICAgICAgICAgICAg
T25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCBjaGFyKilkZXRhaWwtPkRldmljZVBhdGgpKTsK
KyAgICAgICAgfQorICAgICAgICBkZWxldGUgW10gZGV0YWlsOworICAgICAgICBpdGYuY2JTaXpl
ID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSk7CisgICAgfQorICAgIFNldHVwRGlE
ZXN0cm95RGV2aWNlSW5mb0xpc3QoaW5mbyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
Q0RldmljZUxpc3Q6OlN0b3AoKQoreworICAgIGlmIChtX25vdGlmeSAhPSBOVUxMKQorICAgICAg
ICBVbnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKG1fbm90aWZ5KTsKKyAgICBtX25vdGlmeSA9
IE5VTEw7CisKKyAgICBmb3IgKERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4o
KTsKKyAgICAgICAgICAgIGl0ICE9IG1fZGV2cy5lbmQoKTsKKyAgICAgICAgICAgICsraXQpIHsK
KyAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CisgICAgfQorICAgIG1fZGV2cy5jbGVhcigpOwor
fQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRh
dGEpCit7CisgICAgUERFVl9CUk9BRENBU1RfSERSICAgICAgICAgICAgICBoZHI7CisgICAgUERF
Vl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFICBpdGY7CisgICAgUERFVl9CUk9BRENBU1RfSEFO
RExFICAgICAgICAgICBoZGw7CisKKyAgICBoZHIgPSAoUERFVl9CUk9BRENBU1RfSERSKWRhdGE7
CisgICAgc3dpdGNoIChldnQpIHsKKyAgICBjYXNlIERCVF9ERVZJQ0VBUlJJVkFMOgorICAgICAg
ICBpZiAoaGRyLT5kYmNoX2RldmljZXR5cGUgPT0gREJUX0RFVlRZUF9ERVZJQ0VJTlRFUkZBQ0Up
IHsKKyAgICAgICAgICAgIGl0ZiA9IChQREVWX0JST0FEQ0FTVF9ERVZJQ0VJTlRFUkZBQ0UpaGRy
OworICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCB3Y2hhcl90KilpdGYt
PmRiY2NfbmFtZSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEQlRf
REVWSUNFUVVFUllSRU1PVkU6CisgICAgICAgIGlmIChoZHItPmRiY2hfZGV2aWNldHlwZSA9PSBE
QlRfREVWVFlQX0hBTkRMRSkgeworICAgICAgICAgICAgaGRsID0gKFBERVZfQlJPQURDQVNUX0hB
TkRMRSloZHI7CisgICAgICAgICAgICBPbkRldmljZVF1ZXJ5UmVtb3ZlKGhkbC0+ZGJjaF9oYW5k
bGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEQlRfREVWSUNFUkVN
T1ZFUEVORElORzoKKyAgICAgICAgaWYgKGhkci0+ZGJjaF9kZXZpY2V0eXBlID09IERCVF9ERVZU
WVBfSEFORExFKSB7CisgICAgICAgICAgICBoZGwgPSAoUERFVl9CUk9BRENBU1RfSEFORExFKWhk
cjsKKyAgICAgICAgICAgIFVucmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24oaGRsLT5kYmNoX2hk
ZXZub3RpZnkpOworICAgICAgICAgICAgT25EZXZpY2VSZW1vdmVkKGhkbC0+ZGJjaF9oYW5kbGUp
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCitDRGV2aWNlKiBDRGV2aWNlTGlzdDo6R2V0Rmlyc3REZXZpY2UoKQor
eworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4oKTsKKyAgICBpZiAo
aXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gaXQt
PnNlY29uZDsKK30KKwordm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VBZGRlZChjb25zdCBzdGQ6
OndzdHJpbmcmIHBhdGgpCit7CisgICAgQ0RldmljZSogZGV2OworICAgIGlmIChtX2ltcGwgPT0g
TlVMTCkKKyAgICAgICAgZGV2ID0gbmV3IENEZXZpY2UocGF0aC5jX3N0cigpKTsKKyAgICBlbHNl
CisgICAgICAgIGRldiA9IG1faW1wbC0+Q3JlYXRlKHBhdGguY19zdHIoKSk7CisgICAgaWYgKGRl
diA9PSBOVUxMKQorICAgICAgICByZXR1cm47IC8vIGNyZWF0ZSBmYWlsZWQKKworICAgIEhBTkRM
RSBoYW5kbGUgPSBkZXYtPk9wZW4obV9oYW5kbGUpOworICAgIGlmIChoYW5kbGUgPT0gSU5WQUxJ
RF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOyAv
LyBvcGVuIGZhaWxlZAorICAgIH0KKworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2Rl
dnMuZmluZChoYW5kbGUpOworICAgIGlmIChpdCAhPSBtX2RldnMuZW5kKCkpIHsKKyAgICAgICAg
ZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV2c1toYW5kbGVd
ID0gZGV2OworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVF1ZXJ5UmVtb3ZlKEhBTkRM
RSBoYW5kbGUpCit7CisgICAgRGV2aWNlTWFwOjppdGVyYXRvciBpdCA9IG1fZGV2cy5maW5kKGhh
bmRsZSk7CisgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOyAvLyBz
cHVyaW91cyBldmVudD8KKworICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7CisgICAgZGV2
LT5DbG9zZSgpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVJlbW92ZWQoSEFORExF
IGhhbmRsZSkKK3sKKyAgICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFu
ZGxlKTsKKyAgICBpZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm47IC8vIHNw
dXJpb3VzIGV2ZW50PworCisgICAgQ0RldmljZSogZGV2ID0gaXQtPnNlY29uZDsKKyAgICBkZWxl
dGUgZGV2OworICAgIG1fZGV2cy5lcmFzZShpdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFn
ZW50L0RldmljZUxpc3QuaCBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZGY1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv
bGl0ZWFnZW50L0RldmljZUxpc3QuaApAQCAtMCwwICsxLDg5IEBACisvKiBDb3B5cmlnaHQgKGMp
IENpdHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCisgKiB3aXRo
IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAorICogdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCisgKiAgICAgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCisgKiBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKKyAqIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCAKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIAorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBfREVWSUNFTElTVF9IXworI2RlZmluZSBfREVWSUNFTElTVF9I
XworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPGRidC5oPgorI2luY2x1ZGUgPG1h
cD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK2NsYXNzIENEZXZpY2UKK3sKK3B1YmxpYzoKKyAgICBD
RGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOworICAgIH5DRGV2aWNlKCk7CisKKyAgICBIQU5E
TEUgT3BlbihIQU5ETEUgc3ZjKTsKKyAgICB2b2lkIENsb3NlKCk7CisKK3Byb3RlY3RlZDoKKyAg
ICBib29sIElvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5zeiwgdm9pZCogb3V0
LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKTsKKworcHJpdmF0ZToKKyAgICBzdGQ6OndzdHJp
bmcgICAgbV9wYXRoOworICAgIEhBTkRMRSAgICAgICAgICBtX2hhbmRsZTsKKyAgICBIREVWTk9U
SUZZICAgICAgbV9ub3RpZnk7Cit9OworCitpbnRlcmZhY2UgSURldmljZUNyZWF0b3IKK3sKKyAg
ICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKSA9IDA7Cit9Owor
CitjbGFzcyBDRGV2aWNlTGlzdAoreworcHVibGljOgorICAgIENEZXZpY2VMaXN0KGNvbnN0IEdV
SUQmIGl0Zik7CisgICAgfkNEZXZpY2VMaXN0KCk7CisKKyAgICBib29sIFN0YXJ0KEhBTkRMRSBz
dmMsIElEZXZpY2VDcmVhdG9yKiBpbXBsKTsKKyAgICB2b2lkIFN0b3AoKTsKKyAgICB2b2lkIE9u
RGV2aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSk7CisgICAgQ0RldmljZSogR2V0Rmly
c3REZXZpY2UoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIE9uRGV2aWNlQWRkZWQoY29uc3Qgc3Rk
Ojp3c3RyaW5nJiBwYXRoKTsKKyAgICB2b2lkIE9uRGV2aWNlUXVlcnlSZW1vdmUoSEFORExFIGhh
bmRsZSk7CisgICAgdm9pZCBPbkRldmljZVJlbW92ZWQoSEFORExFIGRldik7CisKKyAgICB0eXBl
ZGVmIHN0ZDo6bWFwPCBIQU5ETEUsIENEZXZpY2UqID4gRGV2aWNlTWFwOworCisgICAgR1VJRCAg
ICAgICAgbV9ndWlkOworICAgIERldmljZU1hcCAgIG1fZGV2czsKKyAgICBIREVWTk9USUZZICBt
X25vdGlmeTsKKyAgICBIQU5ETEUgICAgICBtX2hhbmRsZTsKKyAgICBJRGV2aWNlQ3JlYXRvciog
bV9pbXBsOworfTsKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAppbmRleCA3OTIwZTliLi4xZWVj
ODdlIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d2luZG93
cy5oPgogCiAjaW5jbHVkZSAiTGl0ZUFnZW50LmgiCisjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxz
LmgiCiAKIGludCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFO
Q0UgaWdub3JlLCBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKIHsKQEAgLTg3LDYgKzg4
LDcgQEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogICAgIERlbGV0ZVNlcnZpY2Uoc3Zj
KTsKICAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3ZjKTsKICAgICBDbG9zZVNlcnZpY2VIYW5kbGUo
bWdyKTsKKyAgICByZXR1cm4gMDsKIH0KIAogLypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2Vy
dmljZUVudHJ5KCkKQEAgLTExNCw3ICsxMTYsNyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZp
Y2U7CiAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwg
ZXZ0LCBkYXRhLCBjdHh0KTsKIH0KIAotQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5k
bGUoTlVMTCkKK0NMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2Rl
dnMoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpCiB7CiAgICAgbV9zdGF0dXMuZHdTZXJ2aWNlVHlw
ZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAg
ICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsgCkBAIC0xMzIsMTkgKzEzNCwyNyBAQCBDTGl0
ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiB9CiAK
Ky8qdmlydHVhbCovIENEZXZpY2UqIENMaXRlQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90KiBw
YXRoKQoreworICAgIHJldHVybiBuZXcgQ0RldmljZShwYXRoKTsKK30KKwogdm9pZCBDTGl0ZUFn
ZW50OjpPblNlcnZpY2VTdGFydCgpCiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblNlcnZpY2VT
dGFydCgpXG4iKTsKKyAgICBtX2RldnMuU3RhcnQobV9oYW5kbGUsIHRoaXMpOwogfQogCiB2b2lk
IENMaXRlQWdlbnQ6Ok9uU2VydmljZVN0b3AoKQogewogICAgIENMaXRlQWdlbnQ6OkxvZygiT25T
ZXJ2aWNlU3RvcCgpXG4iKTsKKyAgICBtX2RldnMuU3RvcCgpOwogfQogCiB2b2lkIENMaXRlQWdl
bnQ6Ok9uRGV2aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSkKIHsKICAgICBDTGl0ZUFn
ZW50OjpMb2coIk9uRGV2aWNlRXZlbnQoKVxuIik7CisgICAgbV9kZXZzLk9uRGV2aWNlRXZlbnQo
ZXZ0LCBkYXRhKTsKIH0KIAogYm9vbCBDTGl0ZUFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQpkaWZm
IC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFn
ZW50LmgKaW5kZXggYWIxOTJlZi4uNTdlZDllNyAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9M
aXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC0zOCw3ICszOCw5
IEBACiAjZGVmaW5lIFNWQ19ESVNQTEFZTkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZh
Y2UgU2VydmljZSIKICNkZWZpbmUgU1ZDX0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJp
b3VzIG1ldHJpY3MgdG8gWGVuU3RvcmUiCiAKLWNsYXNzIENMaXRlQWdlbnQKKyNpbmNsdWRlICJE
ZXZpY2VMaXN0LmgiCisKK2NsYXNzIENMaXRlQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0b3IK
IHsKIHB1YmxpYzogLy8gc3RhdGljcwogICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBm
bXQsIC4uLik7CkBAIC01NCw2ICs1Niw5IEBAIHB1YmxpYzogLy8gY3Rvci9kdG9yCiAgICAgQ0xp
dGVBZ2VudCgpOwogICAgIH5DTGl0ZUFnZW50KCk7CiAKK3B1YmxpYzogLy8gSURldmljZUNyZWF0
b3IKKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKTsKKwog
cHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMKICAgICB2b2lkIE9uU2VydmljZVN0YXJ0KCk7CiAg
ICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7CkBAIC02OCw2ICs3Myw4IEBAIHByaXZhdGU6IC8vIHNl
cnZpY2Ugc3VwcG9ydAogICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAgIG1fc3RhdHVzOwogICAg
IFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOwogICAgIEhBTkRMRSAgICAgICAgICAg
ICAgICAgIG1fc3ZjX3N0b3A7CisgICAgCisgICAgQ0RldmljZUxpc3QgICAgICAgICAgICAgbV9k
ZXZzOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA5Njdh
M2ExLi44NGI1MTEzIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qCisrKyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5NCw5ICsx
OTQsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAvPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmNw
cCIgLz4KIAk8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcTGl0ZUFnZW50LmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XERldmljZUxpc3QuaCIgLz4KIAk8L0l0ZW1Hcm91
cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3JjXGxp
dGVhZ2VudFxtZXNzYWdlcy5tYyI+CmRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBj
MWI1YzVkLi42YTNjNzg3IDEwMDY0NAotLS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52
Y3hwcm9qCisrKyBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5OCw5
ICsxOTgsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAv
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0
LmNwcCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExpdGVBZ2VudC5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmgiIC8+CiAgIDwvSXRl
bUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxz
cmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1jIj4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000ql-8O; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o5-SZ
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
 B1/D4-30272-F5364475; Tue, 24 May 2016 14:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUjc+2SX
 c4MksCYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMeUFb8FB3YqFly4wNzDOVO1i5OSQEPCXOPbt
 DQuIzSagITGjczGYLSKgLrHv81YmEJtZQE3i+v4uVhBbWMBUYlnHJzCbRUBVYtfzaUA1HBy8A
 q4S62ZaQIzUkNjUMIMNxOYUcJN49+E+2EghoJLPm74zQthKEt8Wv2AGsXkFBCVOznzCArFKQu
 LgC5A4B9Acbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNjvaSizPSMktzEzBxdQ0MTvdz
 U4uLE9NScxKRiveT83E2MwGCqZ2Bg3MG4a7vnIUZJDiYlUd6CJJdwIb6k/JTKjMTijPii0pzU
 4kOMMhwcShK8viA5waLU9NSKtMwcYFjDpCU4eJREeP8kAqV5iwsSc4sz0yFSpxgVpcR5BUH6B
 EASGaV5cG2wWLrEKCslzMvIwMAgxFOQWpSbWYIq/4pRnINRSZg3HGQ8T2ZeCdz0V0CLmYAW+3
 9xBllckoiQkmpgjHZes1Va/3Bez17e9gzN3f2tSpdbBW/cU1F+X/nspKfjp10NC7zr9j/7kvT
 1Wljop10KW7PjNwvOk326TDFDou+C4xK5rybTu/LF1KQ0E+qTlobo5MYE9Om28fh8MGL5Kj/j
 quQrCS4/l7eschsb7j9e4XfDaOt9ETNBweviE4xuffR4Jv9WiaU4I9FQi7moOBEAYZ3/sqACA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1397 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289457"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:42 +0100
Message-ID: <1464099660-12432-3-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 02/20] Add SHAREDINFO interface IOCTL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBHZXRUaW1lIDogcmV0dXJucyB0aGUgWGVuIHdhbGxjbG9jayB0aW1lCgpTaWduZWQtb2ZmLWJ5
OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogaW5jbHVkZS94ZW5pZmFj
ZV9pb2N0bHMuaCAgICAgICAgfCAgOSArKysrKysKIHNyYy94ZW5pZmFjZS9pb2N0bF9zaGFyZWRp
bmZvLmMgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj
L3hlbmlmYWNlL2lvY3Rscy5jICAgICAgICAgICAgfCAgNSArKysKIHNyYy94ZW5pZmFjZS9pb2N0
bHMuaCAgICAgICAgICAgIHwgIDkgKysrKysrCiB2czIwMTIveGVuaWZhY2UveGVuaWZhY2UudmN4
cHJvaiB8ICAxICsKIHZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qIHwgIDEgKwogNiBm
aWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hl
bmlmYWNlL2lvY3RsX3NoYXJlZGluZm8uYwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuaWZhY2Vf
aW9jdGxzLmggYi9pbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oCmluZGV4IGRjNTNlNmIuLmIyNjMx
ZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmgKKysrIGIvaW5jbHVkZS94
ZW5pZmFjZV9pb2N0bHMuaApAQCAtMzYwLDQgKzM2MCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVO
SUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQgewogI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TVVNQ
RU5EX0RFUkVHSVNURVIgXAogICAgIENUTF9DT0RFKEZJTEVfREVWSUNFX1VOS05PV04sIDB4ODMy
LCBNRVRIT0RfQlVGRkVSRUQsIEZJTEVfQU5ZX0FDQ0VTUykKIAorLyohIFxicmllZiBHZXRzIHRo
ZSBjdXJyZW50IHRpbWUuCisKKyAgICBJbnB1dDogTm9uZQorCisgICAgT3V0cHV0OiBMQVJHRV9J
TlRFR0VSCisqLworI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TSEFSRURJTkZPX0dFVF9USU1FIFwK
KyAgICBDVExfQ09ERShGSUxFX0RFVklDRV9VTktOT1dOLCAweDg0MCwgTUVUSE9EX0JVRkZFUkVE
LCBGSUxFX0FOWV9BQ0NFU1MpCisKICNlbmRpZiAvLyBfWEVOSUZBQ0VfSU9DVExTX0hfCmRpZmYg
LS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxfc2hhcmVkaW5mby5jIGIvc3JjL3hlbmlmYWNlL2lv
Y3RsX3NoYXJlZGluZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjQ1
MmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3RsX3NoYXJlZGluZm8uYwpA
QCAtMCwwICsxLDcwIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KKyAq
IENvcHlyaWdodCAoYykgUmFmYWwgV29qZHlsYSA8b21lZ0BpbnZpc2libGV0aGluZ3NsYWIuY29t
PgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICog
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImRyaXZlci5oIgorI2luY2x1
ZGUgImlvY3Rscy5oIgorI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgorI2luY2x1ZGUgImxv
Zy5oIgorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsU2hhcmVkSW5mb0dldFRp
bWUoCisgICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAg
ICAgICAgICAgIEJ1ZmZlciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAg
ICBfX2luICBVTE9ORyAgICAgICAgICAgICBPdXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAg
ICAgICAgSW5mbworICAgICkKK3sKKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOworICAgIFBM
QVJHRV9JTlRFR0VSICBWYWx1ZTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZF
Ul9TSVpFOworICAgIGlmIChJbkxlbiAhPSAwKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAg
aWYgKE91dExlbiAhPSBzaXplb2YoTEFSR0VfSU5URUdFUikpCisgICAgICAgIGdvdG8gZmFpbDI7
CisKKyAgICBWYWx1ZSA9IChQTEFSR0VfSU5URUdFUilCdWZmZXI7CisgICAgKlZhbHVlID0gWEVO
QlVTX1NIQVJFRF9JTkZPKEdldFRpbWUsICZGZG8tPlNoYXJlZEluZm9JbnRlcmZhY2UpOyAKKyAg
ICAqSW5mbyA9IChVTE9OR19QVFIpc2l6ZW9mKExBUkdFX0lOVEVHRVIpOworICAgIHN0YXR1cyA9
IFNUQVRVU19TVUNDRVNTOworCisgICAgcmV0dXJuIHN0YXR1czsKKworZmFpbDI6CisgICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOworZmFpbDE6CisgICAgWGVuSWZhY2VE
ZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworICAgIHJldHVybiBz
dGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZh
Y2UvaW9jdGxzLmMKaW5kZXggYzZkNDcxZC4uOTI4YzJiZSAxMDA2NDQKLS0tIGEvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwpAQCAtMjU3LDYgKzI1Nywx
MSBAQCBYZW5JZmFjZUlvY3RsKAogICAgICAgICBzdGF0dXMgPSBJb2N0bFN1c3BlbmREZXJlZ2lz
dGVyKEZkbywgQnVmZmVyLCBJbkxlbiwgT3V0TGVuLCBTdGFjay0+RmlsZU9iamVjdCk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgICAgIC8vIHNoYXJlZGluZm8KKyAgICBjYXNlIElPQ1RMX1hFTklG
QUNFX1NIQVJFRElORk9fR0VUX1RJTUU6CisgICAgICAgIHN0YXR1cyA9IElvY3RsU2hhcmVkSW5m
b0dldFRpbWUoRmRvLCBCdWZmZXIsIEluTGVuLCBPdXRMZW4sICZJcnAtPklvU3RhdHVzLkluZm9y
bWF0aW9uKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMg
PSBTVEFUVVNfSU5WQUxJRF9ERVZJQ0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXgg
MDA1YWVhNS4uYzFkN2MwZiAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBi
L3NyYy94ZW5pZmFjZS9pb2N0bHMuaApAQCAtNDA5LDUgKzQwOSwxNCBAQCBTdXNwZW5kRnJlZUV2
ZW50KAogICAgIF9faW5vdXQgIFBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQgQ29udGV4dAogICAg
ICk7CiAKK05UU1RBVFVTCitJb2N0bFNoYXJlZEluZm9HZXRUaW1lKAorICAgIF9faW4gIFBYRU5J
RkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQQ0hBUiAgICAgICAgICAgICBCdWZmZXIsCisg
ICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAgVUxPTkcgICAgICAg
ICAgICAgT3V0TGVuLAorICAgIF9fb3V0IFBVTE9OR19QVFIgICAgICAgIEluZm8KKyAgICApOwor
CiAjZW5kaWYgLy8gX0lPQ1RMU19IXwogCmRpZmYgLS1naXQgYS92czIwMTIveGVuaWZhY2UveGVu
aWZhY2UudmN4cHJvaiBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCmluZGV4IGFl
YzM1MzMuLjQwMTBkODIgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hw
cm9qCisrKyBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCkBAIC04Myw2ICs4Myw3
IEBACiAJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX2dudHRh
Yi5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9z
dG9yZS5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0
bF9zdXNwZW5kLmMiIC8+CisJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNl
XGlvY3RsX3NoYXJlZGluZm8uYyIgLz4KIAkJPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
eGVuaWZhY2VcaXJwX3F1ZXVlLmMiIC8+CiAJPC9JdGVtR3JvdXA+CiAgICAgICAgIDxJdGVtR3Jv
dXA+CmRpZmYgLS1naXQgYS92czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiBiL3ZzMjAx
My94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCmluZGV4IGIzMjRkOWMuLjk3MzFhM2IgMTAwNjQ0
Ci0tLSBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCisrKyBiL3ZzMjAxMy94ZW5p
ZmFjZS94ZW5pZmFjZS52Y3hwcm9qCkBAIC0xMzUsNiArMTM1LDcgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9nbnR0YWIuYyIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9zdG9yZS5jIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX3N1c3BlbmQuYyIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9zaGFy
ZWRpbmZvLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuaWZhY2Vc
aXJwX3F1ZXVlLmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000ql-8O; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o5-SZ
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
 B1/D4-30272-F5364475; Tue, 24 May 2016 14:21:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUjc+2SX
 c4MksCYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMeUFb8FB3YqFly4wNzDOVO1i5OSQEPCXOPbt
 DQuIzSagITGjczGYLSKgLrHv81YmEJtZQE3i+v4uVhBbWMBUYlnHJzCbRUBVYtfzaUA1HBy8A
 q4S62ZaQIzUkNjUMIMNxOYUcJN49+E+2EghoJLPm74zQthKEt8Wv2AGsXkFBCVOznzCArFKQu
 LgC5A4B9Acbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNjvaSizPSMktzEzBxdQ0MTvdz
 U4uLE9NScxKRiveT83E2MwGCqZ2Bg3MG4a7vnIUZJDiYlUd6CJJdwIb6k/JTKjMTijPii0pzU
 4kOMMhwcShK8viA5waLU9NSKtMwcYFjDpCU4eJREeP8kAqV5iwsSc4sz0yFSpxgVpcR5BUH6B
 EASGaV5cG2wWLrEKCslzMvIwMAgxFOQWpSbWYIq/4pRnINRSZg3HGQ8T2ZeCdz0V0CLmYAW+3
 9xBllckoiQkmpgjHZes1Va/3Bez17e9gzN3f2tSpdbBW/cU1F+X/nspKfjp10NC7zr9j/7kvT
 1Wljop10KW7PjNwvOk326TDFDou+C4xK5rybTu/LF1KQ0E+qTlobo5MYE9Om28fh8MGL5Kj/j
 quQrCS4/l7eschsb7j9e4XfDaOt9ETNBweviE4xuffR4Jv9WiaU4I9FQi7moOBEAYZ3/sqACA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1397 invoked from network); 24 May 2016 14:21:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289457"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:42 +0100
Message-ID: <1464099660-12432-3-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 02/20] Add SHAREDINFO interface IOCTL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBHZXRUaW1lIDogcmV0dXJucyB0aGUgWGVuIHdhbGxjbG9jayB0aW1lCgpTaWduZWQtb2ZmLWJ5
OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogaW5jbHVkZS94ZW5pZmFj
ZV9pb2N0bHMuaCAgICAgICAgfCAgOSArKysrKysKIHNyYy94ZW5pZmFjZS9pb2N0bF9zaGFyZWRp
bmZvLmMgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj
L3hlbmlmYWNlL2lvY3Rscy5jICAgICAgICAgICAgfCAgNSArKysKIHNyYy94ZW5pZmFjZS9pb2N0
bHMuaCAgICAgICAgICAgIHwgIDkgKysrKysrCiB2czIwMTIveGVuaWZhY2UveGVuaWZhY2UudmN4
cHJvaiB8ICAxICsKIHZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qIHwgIDEgKwogNiBm
aWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hl
bmlmYWNlL2lvY3RsX3NoYXJlZGluZm8uYwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuaWZhY2Vf
aW9jdGxzLmggYi9pbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oCmluZGV4IGRjNTNlNmIuLmIyNjMx
ZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmgKKysrIGIvaW5jbHVkZS94
ZW5pZmFjZV9pb2N0bHMuaApAQCAtMzYwLDQgKzM2MCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVO
SUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQgewogI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TVVNQ
RU5EX0RFUkVHSVNURVIgXAogICAgIENUTF9DT0RFKEZJTEVfREVWSUNFX1VOS05PV04sIDB4ODMy
LCBNRVRIT0RfQlVGRkVSRUQsIEZJTEVfQU5ZX0FDQ0VTUykKIAorLyohIFxicmllZiBHZXRzIHRo
ZSBjdXJyZW50IHRpbWUuCisKKyAgICBJbnB1dDogTm9uZQorCisgICAgT3V0cHV0OiBMQVJHRV9J
TlRFR0VSCisqLworI2RlZmluZSBJT0NUTF9YRU5JRkFDRV9TSEFSRURJTkZPX0dFVF9USU1FIFwK
KyAgICBDVExfQ09ERShGSUxFX0RFVklDRV9VTktOT1dOLCAweDg0MCwgTUVUSE9EX0JVRkZFUkVE
LCBGSUxFX0FOWV9BQ0NFU1MpCisKICNlbmRpZiAvLyBfWEVOSUZBQ0VfSU9DVExTX0hfCmRpZmYg
LS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxfc2hhcmVkaW5mby5jIGIvc3JjL3hlbmlmYWNlL2lv
Y3RsX3NoYXJlZGluZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjQ1
MmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3RsX3NoYXJlZGluZm8uYwpA
QCAtMCwwICsxLDcwIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KKyAq
IENvcHlyaWdodCAoYykgUmFmYWwgV29qZHlsYSA8b21lZ0BpbnZpc2libGV0aGluZ3NsYWIuY29t
PgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICog
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImRyaXZlci5oIgorI2luY2x1
ZGUgImlvY3Rscy5oIgorI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgorI2luY2x1ZGUgImxv
Zy5oIgorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsU2hhcmVkSW5mb0dldFRp
bWUoCisgICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAg
ICAgICAgICAgIEJ1ZmZlciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAg
ICBfX2luICBVTE9ORyAgICAgICAgICAgICBPdXRMZW4sCisgICAgX19vdXQgUFVMT05HX1BUUiAg
ICAgICAgSW5mbworICAgICkKK3sKKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOworICAgIFBM
QVJHRV9JTlRFR0VSICBWYWx1ZTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZF
Ul9TSVpFOworICAgIGlmIChJbkxlbiAhPSAwKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAg
aWYgKE91dExlbiAhPSBzaXplb2YoTEFSR0VfSU5URUdFUikpCisgICAgICAgIGdvdG8gZmFpbDI7
CisKKyAgICBWYWx1ZSA9IChQTEFSR0VfSU5URUdFUilCdWZmZXI7CisgICAgKlZhbHVlID0gWEVO
QlVTX1NIQVJFRF9JTkZPKEdldFRpbWUsICZGZG8tPlNoYXJlZEluZm9JbnRlcmZhY2UpOyAKKyAg
ICAqSW5mbyA9IChVTE9OR19QVFIpc2l6ZW9mKExBUkdFX0lOVEVHRVIpOworICAgIHN0YXR1cyA9
IFNUQVRVU19TVUNDRVNTOworCisgICAgcmV0dXJuIHN0YXR1czsKKworZmFpbDI6CisgICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOworZmFpbDE6CisgICAgWGVuSWZhY2VE
ZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworICAgIHJldHVybiBz
dGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZh
Y2UvaW9jdGxzLmMKaW5kZXggYzZkNDcxZC4uOTI4YzJiZSAxMDA2NDQKLS0tIGEvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwpAQCAtMjU3LDYgKzI1Nywx
MSBAQCBYZW5JZmFjZUlvY3RsKAogICAgICAgICBzdGF0dXMgPSBJb2N0bFN1c3BlbmREZXJlZ2lz
dGVyKEZkbywgQnVmZmVyLCBJbkxlbiwgT3V0TGVuLCBTdGFjay0+RmlsZU9iamVjdCk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgICAgIC8vIHNoYXJlZGluZm8KKyAgICBjYXNlIElPQ1RMX1hFTklG
QUNFX1NIQVJFRElORk9fR0VUX1RJTUU6CisgICAgICAgIHN0YXR1cyA9IElvY3RsU2hhcmVkSW5m
b0dldFRpbWUoRmRvLCBCdWZmZXIsIEluTGVuLCBPdXRMZW4sICZJcnAtPklvU3RhdHVzLkluZm9y
bWF0aW9uKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMg
PSBTVEFUVVNfSU5WQUxJRF9ERVZJQ0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXgg
MDA1YWVhNS4uYzFkN2MwZiAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBi
L3NyYy94ZW5pZmFjZS9pb2N0bHMuaApAQCAtNDA5LDUgKzQwOSwxNCBAQCBTdXNwZW5kRnJlZUV2
ZW50KAogICAgIF9faW5vdXQgIFBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQgQ29udGV4dAogICAg
ICk7CiAKK05UU1RBVFVTCitJb2N0bFNoYXJlZEluZm9HZXRUaW1lKAorICAgIF9faW4gIFBYRU5J
RkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQQ0hBUiAgICAgICAgICAgICBCdWZmZXIsCisg
ICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAgVUxPTkcgICAgICAg
ICAgICAgT3V0TGVuLAorICAgIF9fb3V0IFBVTE9OR19QVFIgICAgICAgIEluZm8KKyAgICApOwor
CiAjZW5kaWYgLy8gX0lPQ1RMU19IXwogCmRpZmYgLS1naXQgYS92czIwMTIveGVuaWZhY2UveGVu
aWZhY2UudmN4cHJvaiBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCmluZGV4IGFl
YzM1MzMuLjQwMTBkODIgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hw
cm9qCisrKyBiL3ZzMjAxMi94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCkBAIC04Myw2ICs4Myw3
IEBACiAJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX2dudHRh
Yi5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9z
dG9yZS5jIiAvPgogCQk8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0
bF9zdXNwZW5kLmMiIC8+CisJCTxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNl
XGlvY3RsX3NoYXJlZGluZm8uYyIgLz4KIAkJPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
eGVuaWZhY2VcaXJwX3F1ZXVlLmMiIC8+CiAJPC9JdGVtR3JvdXA+CiAgICAgICAgIDxJdGVtR3Jv
dXA+CmRpZmYgLS1naXQgYS92czIwMTMveGVuaWZhY2UveGVuaWZhY2UudmN4cHJvaiBiL3ZzMjAx
My94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCmluZGV4IGIzMjRkOWMuLjk3MzFhM2IgMTAwNjQ0
Ci0tLSBhL3ZzMjAxMy94ZW5pZmFjZS94ZW5pZmFjZS52Y3hwcm9qCisrKyBiL3ZzMjAxMy94ZW5p
ZmFjZS94ZW5pZmFjZS52Y3hwcm9qCkBAIC0xMzUsNiArMTM1LDcgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9nbnR0YWIuYyIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9zdG9yZS5jIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmlmYWNlXGlvY3RsX3N1c3BlbmQuYyIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5pZmFjZVxpb2N0bF9zaGFy
ZWRpbmZvLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuaWZhY2Vc
aXJwX3F1ZXVlLmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000r9-9X; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o9-Sk
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 F7/37-05497-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcx2SX
 cYM8eJos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacf9zG2PBZNmKc4vnsTUw3hTvYuTkkBDwl/je
 sZEdxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxcriC0sYCNx5thfsHoWAVWJRVM+g8V5B
 Vwlvry+yQoxU0NiU8MMNhCbU8BN4t2H+2AzhYBqPm/6zghhK0l8W/yCGaJXUOLkzCcsELskJA
 6+AIlzAM3hlvjbbT+BkW8WkqpZSKoWMDKtYtQoTi0qSy3SNTTWSyrKTM8oyU3MzNE1NDTRy00
 tLk5MT81JTCrWS87P3cQIDKh6BgbGHYy7tnseYpTkYFIS5S1IcgkX4kvKT6nMSCzOiC8qzUkt
 PsQow8GhJMHrC5ITLEpNT61Iy8wBhjZMWoKDR0mE908iUJq3uCAxtzgzHSJ1ilFRSpxXEKRPA
 CSRUZoH1waLp0uMslLCvIwMDAxCPAWpRbmZJajyrxjFORiVhHnDQcbzZOaVwE1/BbSYCWix/x
 dnkMUliQgpqQZGka23dt1dHO7mtbTy0O3U9rSTHnsFM9V/GPzjv8/CsWFtCzN3HPfrd98iSpb
 IZsUEruiqffJTebvkOUWdqY5rbzt0BXn0y2Svcgv0DGZPMO8yUsj+Fl/QsnX5aqMXWXrKhqGl
 J/YEHIzuF057XZ9le/Tj62xnA3bm+fx/OSX77n0VWVia9U6JpTgj0VCLuag4EQD88EnNogIAA
 A==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1712 invoked from network); 24 May 2016 14:21:20 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:20 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289469"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:47 +0100
Message-ID: <1464099660-12432-8-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 07/20] Track a single device in the service.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAgfCAgOSArKysrKysrKysKIHNyYy9saXRlYWdlbnQv
RGV2aWNlTGlzdC5oICAgfCAgNCArKysrCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgIHwg
MjEgKysrKysrKysrKysrKysrKysrKystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgIHwg
IDMgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK
CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xpdGVhZ2Vu
dC9EZXZpY2VMaXN0LmNwcAppbmRleCAxY2IzYmY2Li45MDMzNDA3IDEwMDY0NAotLS0gYS9zcmMv
bGl0ZWFnZW50L0RldmljZUxpc3QuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5j
cHAKQEAgLTk2LDYgKzk2LDExIEBAIHZvaWQgQ0RldmljZTo6Q2xvc2UoKQogICAgIG1faGFuZGxl
ID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CiB9CiAKK2NvbnN0IHdjaGFyX3QqIENEZXZpY2U6OlBh
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhdGguY19zdHIoKTsKK30KKwogYm9vbCBDRGV2
aWNlOjpJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwg
RFdPUkQgb3V0c3osIERXT1JEKiBieXRlcykKIHsKICAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJ
RF9IQU5ETEVfVkFMVUUpCkBAIC0yNTUsNiArMjYwLDggQEAgdm9pZCBDRGV2aWNlTGlzdDo6T25E
ZXZpY2VBZGRlZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpCiAgICAgfQogCiAgICAgbV9kZXZz
W2hhbmRsZV0gPSBkZXY7CisgICAgaWYgKG1faW1wbCkKKyAgICAgICAgbV9pbXBsLT5PbkRldmlj
ZUFkZGVkKGRldik7CiB9CiAKIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUXVlcnlSZW1vdmUo
SEFORExFIGhhbmRsZSkKQEAgLTI2NCw2ICsyNzEsOCBAQCB2b2lkIENEZXZpY2VMaXN0OjpPbkRl
dmljZVF1ZXJ5UmVtb3ZlKEhBTkRMRSBoYW5kbGUpCiAgICAgICAgIHJldHVybjsgLy8gc3B1cmlv
dXMgZXZlbnQ/CiAKICAgICBDRGV2aWNlKiBkZXYgPSBpdC0+c2Vjb25kOworICAgIGlmIChtX2lt
cGwpCisgICAgICAgIG1faW1wbC0+T25EZXZpY2VSZW1vdmVkKGRldik7CiAgICAgZGV2LT5DbG9z
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaCBiL3NyYy9s
aXRlYWdlbnQvRGV2aWNlTGlzdC5oCmluZGV4IDEwZGY1NDYuLjQ1N2EwOTkgMTAwNjQ0Ci0tLSBh
L3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlz
dC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICBIQU5ETEUgT3BlbihIQU5ETEUgc3Zj
KTsKICAgICB2b2lkIENsb3NlKCk7CiAKKyAgICBjb25zdCB3Y2hhcl90KiBQYXRoKCkgY29uc3Q7
CisKIHByb3RlY3RlZDoKICAgICBib29sIElvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdP
UkQgaW5zeiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKTsKIApAQCAtNTgs
NiArNjAsOCBAQCBwcml2YXRlOgogaW50ZXJmYWNlIElEZXZpY2VDcmVhdG9yCiB7CiAgICAgdmly
dHVhbCBDRGV2aWNlKiBDcmVhdGUoY29uc3Qgd2NoYXJfdCogcGF0aCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBPbkRldmljZVJlbW92ZWQoQ0RldmljZSogZGV2KSA9IDA7CiB9OwogCiBjbGFzcyBDRGV2aWNl
TGlzdApkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwCmluZGV4IDFlZWM4N2UuLmE3OTg3ZGMgMTAwNjQ0Ci0tLSBhL3Ny
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5j
cHAKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CiAgICAg
cmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwgZXZ0LCBkYXRh
LCBjdHh0KTsKIH0KIAotQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5kbGUoTlVMTCks
IG1fZGV2cyhHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSkKK0NMaXRlQWdlbnQ6OkNMaXRlQWdlbnQo
KSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2Rl
dihOVUxMKQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9X
SU4zMjsgCiAgICAgbV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgICAgICAgPSBTRVJWSUNFX1NUQVJU
X1BFTkRJTkc7IApAQCAtMTM2LDkgKzEzNiwyOCBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgp
CiAKIC8qdmlydHVhbCovIENEZXZpY2UqIENMaXRlQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90
KiBwYXRoKQogeworICAgIC8vIGNyZWF0ZSBzdWJjbGFzcyBvZiBDRGV2aWNlCiAgICAgcmV0dXJu
IG5ldyBDRGV2aWNlKHBhdGgpOwogfQogCisvKnZpcnR1YWwqLyB2b2lkIENMaXRlQWdlbnQ6Ok9u
RGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25EZXZp
Y2VBZGRlZCgld3MpXG4iLCBkZXYtPlBhdGgoKSk7CisgICAgaWYgKG1fZGV2ID09IE5VTEwpIHsK
KyAgICAgICAgbV9kZXYgPSBkZXY7CisgICAgICAgIC8vIHNldHRpbmcgYWN0aXZlIGRldmljZQor
ICAgIH0KK30KKworLyp2aXJ0dWFsKi8gdm9pZCBDTGl0ZUFnZW50OjpPbkRldmljZVJlbW92ZWQo
Q0RldmljZSogZGV2KQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3
cylcbiIsIGRldi0+UGF0aCgpKTsKKyAgICBpZiAoZGV2ID09IG1fZGV2KSB7CisgICAgICAgIG1f
ZGV2ID0gTlVMTDsKKyAgICAgICAgLy8gYWN0aXZlIGRldmljZQorICAgIH0KK30KKwogdm9pZCBD
TGl0ZUFnZW50OjpPblNlcnZpY2VTdGFydCgpCiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblNl
cnZpY2VTdGFydCgpXG4iKTsKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50Lmgg
Yi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IDU3ZWQ5ZTcuLjI2MWU3MzcgMTAwNjQ0
Ci0tLSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRl
QWdlbnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6IC8vIGN0b3IvZHRvcgogCiBwdWJsaWM6
IC8vIElEZXZpY2VDcmVhdG9yCiAgICAgdmlydHVhbCBDRGV2aWNlKiBDcmVhdGUoY29uc3Qgd2No
YXJfdCogcGF0aCk7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2
KTsKKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldik7CiAKIHBy
aXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPblNlcnZpY2VTdGFydCgpOwpAQCAt
NzUsNiArNzcsNyBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQKICAgICBIQU5ETEUgICAg
ICAgICAgICAgICAgICBtX3N2Y19zdG9wOwogICAgIAogICAgIENEZXZpY2VMaXN0ICAgICAgICAg
ICAgIG1fZGV2czsKKyAgICBDRGV2aWNlKiAgICAgICAgICAgICAgICBtX2RldjsKIH07CiAKICNl
bmRpZgotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD1-0000r9-9X; Tue, 24 May 2016 14:21:23 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DCz-0000o9-Sk
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:21 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 F7/37-05497-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcx2SX
 cYM8eJos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacf9zG2PBZNmKc4vnsTUw3hTvYuTkkBDwl/je
 sZEdxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxcriC0sYCNx5thfsHoWAVWJRVM+g8V5B
 Vwlvry+yQoxU0NiU8MMNhCbU8BN4t2H+2AzhYBqPm/6zghhK0l8W/yCGaJXUOLkzCcsELskJA
 6+AIlzAM3hlvjbbT+BkW8WkqpZSKoWMDKtYtQoTi0qSy3SNTTWSyrKTM8oyU3MzNE1NDTRy00
 tLk5MT81JTCrWS87P3cQIDKh6BgbGHYy7tnseYpTkYFIS5S1IcgkX4kvKT6nMSCzOiC8qzUkt
 PsQow8GhJMHrC5ITLEpNT61Iy8wBhjZMWoKDR0mE908iUJq3uCAxtzgzHSJ1ilFRSpxXEKRPA
 CSRUZoH1waLp0uMslLCvIwMDAxCPAWpRbmZJajyrxjFORiVhHnDQcbzZOaVwE1/BbSYCWix/x
 dnkMUliQgpqQZGka23dt1dHO7mtbTy0O3U9rSTHnsFM9V/GPzjv8/CsWFtCzN3HPfrd98iSpb
 IZsUEruiqffJTebvkOUWdqY5rbzt0BXn0y2Svcgv0DGZPMO8yUsj+Fl/QsnX5aqMXWXrKhqGl
 J/YEHIzuF057XZ9le/Tj62xnA3bm+fx/OSX77n0VWVia9U6JpTgj0VCLuag4EQD88EnNogIAA
 A==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1712 invoked from network); 24 May 2016 14:21:20 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:20 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289469"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:47 +0100
Message-ID: <1464099660-12432-8-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 07/20] Track a single device in the service.
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAgfCAgOSArKysrKysrKysKIHNyYy9saXRlYWdlbnQv
RGV2aWNlTGlzdC5oICAgfCAgNCArKysrCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgIHwg
MjEgKysrKysrKysrKysrKysrKysrKystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgIHwg
IDMgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK
CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xpdGVhZ2Vu
dC9EZXZpY2VMaXN0LmNwcAppbmRleCAxY2IzYmY2Li45MDMzNDA3IDEwMDY0NAotLS0gYS9zcmMv
bGl0ZWFnZW50L0RldmljZUxpc3QuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5j
cHAKQEAgLTk2LDYgKzk2LDExIEBAIHZvaWQgQ0RldmljZTo6Q2xvc2UoKQogICAgIG1faGFuZGxl
ID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CiB9CiAKK2NvbnN0IHdjaGFyX3QqIENEZXZpY2U6OlBh
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhdGguY19zdHIoKTsKK30KKwogYm9vbCBDRGV2
aWNlOjpJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwg
RFdPUkQgb3V0c3osIERXT1JEKiBieXRlcykKIHsKICAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJ
RF9IQU5ETEVfVkFMVUUpCkBAIC0yNTUsNiArMjYwLDggQEAgdm9pZCBDRGV2aWNlTGlzdDo6T25E
ZXZpY2VBZGRlZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpCiAgICAgfQogCiAgICAgbV9kZXZz
W2hhbmRsZV0gPSBkZXY7CisgICAgaWYgKG1faW1wbCkKKyAgICAgICAgbV9pbXBsLT5PbkRldmlj
ZUFkZGVkKGRldik7CiB9CiAKIHZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUXVlcnlSZW1vdmUo
SEFORExFIGhhbmRsZSkKQEAgLTI2NCw2ICsyNzEsOCBAQCB2b2lkIENEZXZpY2VMaXN0OjpPbkRl
dmljZVF1ZXJ5UmVtb3ZlKEhBTkRMRSBoYW5kbGUpCiAgICAgICAgIHJldHVybjsgLy8gc3B1cmlv
dXMgZXZlbnQ/CiAKICAgICBDRGV2aWNlKiBkZXYgPSBpdC0+c2Vjb25kOworICAgIGlmIChtX2lt
cGwpCisgICAgICAgIG1faW1wbC0+T25EZXZpY2VSZW1vdmVkKGRldik7CiAgICAgZGV2LT5DbG9z
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaCBiL3NyYy9s
aXRlYWdlbnQvRGV2aWNlTGlzdC5oCmluZGV4IDEwZGY1NDYuLjQ1N2EwOTkgMTAwNjQ0Ci0tLSBh
L3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5oCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlz
dC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICBIQU5ETEUgT3BlbihIQU5ETEUgc3Zj
KTsKICAgICB2b2lkIENsb3NlKCk7CiAKKyAgICBjb25zdCB3Y2hhcl90KiBQYXRoKCkgY29uc3Q7
CisKIHByb3RlY3RlZDoKICAgICBib29sIElvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdP
UkQgaW5zeiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzKTsKIApAQCAtNTgs
NiArNjAsOCBAQCBwcml2YXRlOgogaW50ZXJmYWNlIElEZXZpY2VDcmVhdG9yCiB7CiAgICAgdmly
dHVhbCBDRGV2aWNlKiBDcmVhdGUoY29uc3Qgd2NoYXJfdCogcGF0aCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBPbkRldmljZVJlbW92ZWQoQ0RldmljZSogZGV2KSA9IDA7CiB9OwogCiBjbGFzcyBDRGV2aWNl
TGlzdApkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwCmluZGV4IDFlZWM4N2UuLmE3OTg3ZGMgMTAwNjQ0Ci0tLSBhL3Ny
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5j
cHAKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CiAgICAg
cmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwgZXZ0LCBkYXRh
LCBjdHh0KTsKIH0KIAotQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5kbGUoTlVMTCks
IG1fZGV2cyhHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSkKK0NMaXRlQWdlbnQ6OkNMaXRlQWdlbnQo
KSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2Rl
dihOVUxMKQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9X
SU4zMjsgCiAgICAgbV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgICAgICAgPSBTRVJWSUNFX1NUQVJU
X1BFTkRJTkc7IApAQCAtMTM2LDkgKzEzNiwyOCBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgp
CiAKIC8qdmlydHVhbCovIENEZXZpY2UqIENMaXRlQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90
KiBwYXRoKQogeworICAgIC8vIGNyZWF0ZSBzdWJjbGFzcyBvZiBDRGV2aWNlCiAgICAgcmV0dXJu
IG5ldyBDRGV2aWNlKHBhdGgpOwogfQogCisvKnZpcnR1YWwqLyB2b2lkIENMaXRlQWdlbnQ6Ok9u
RGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25EZXZp
Y2VBZGRlZCgld3MpXG4iLCBkZXYtPlBhdGgoKSk7CisgICAgaWYgKG1fZGV2ID09IE5VTEwpIHsK
KyAgICAgICAgbV9kZXYgPSBkZXY7CisgICAgICAgIC8vIHNldHRpbmcgYWN0aXZlIGRldmljZQor
ICAgIH0KK30KKworLyp2aXJ0dWFsKi8gdm9pZCBDTGl0ZUFnZW50OjpPbkRldmljZVJlbW92ZWQo
Q0RldmljZSogZGV2KQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3
cylcbiIsIGRldi0+UGF0aCgpKTsKKyAgICBpZiAoZGV2ID09IG1fZGV2KSB7CisgICAgICAgIG1f
ZGV2ID0gTlVMTDsKKyAgICAgICAgLy8gYWN0aXZlIGRldmljZQorICAgIH0KK30KKwogdm9pZCBD
TGl0ZUFnZW50OjpPblNlcnZpY2VTdGFydCgpCiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblNl
cnZpY2VTdGFydCgpXG4iKTsKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50Lmgg
Yi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IDU3ZWQ5ZTcuLjI2MWU3MzcgMTAwNjQ0
Ci0tLSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRl
QWdlbnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6IC8vIGN0b3IvZHRvcgogCiBwdWJsaWM6
IC8vIElEZXZpY2VDcmVhdG9yCiAgICAgdmlydHVhbCBDRGV2aWNlKiBDcmVhdGUoY29uc3Qgd2No
YXJfdCogcGF0aCk7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2
KTsKKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldik7CiAKIHBy
aXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPblNlcnZpY2VTdGFydCgpOwpAQCAt
NzUsNiArNzcsNyBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQKICAgICBIQU5ETEUgICAg
ICAgICAgICAgICAgICBtX3N2Y19zdG9wOwogICAgIAogICAgIENEZXZpY2VMaXN0ICAgICAgICAg
ICAgIG1fZGV2czsKKyAgICBDRGV2aWNlKiAgICAgICAgICAgICAgICBtX2RldjsKIH07CiAKICNl
bmRpZgotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD2-0000s8-BE; Tue, 24 May 2016 14:21:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD0-0000p3-Es
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:22 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
 98/8A-26457-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHRDpG5Csku
 4wdzL1hZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/jH+0wFr54xVrzYO4OlgfHmOcYuRk4OCQF/
 iaf3HzKD2GwCGhIzOhezgNgiAuoS+z5vZQKxmQXUJK7v72IFsYUFjCTaDy0AqufgYBFQlbi7t
 xIkzCvgKrFs5mKokRoSmxpmsIHYnAJuEu8+3AcbKQRU83nTd0YIW0ni2+IXzBC9ghInZz5hgV
 glIXHwxQuw8RIC3BJ/u+0nMPLNQlI1C0nVAkamVYwaxalFZalFuoaGeklFmekZJbmJmTlAnol
 ebmpxcWJ6ak5iUrFecn7uJkZgSDEAwQ7GMyucDzFKcjApifJyJrqEC/El5adUZiQWZ8QXleak
 Fh9ilOHgUJLgvQuSEyxKTU+tSMvMAQY3TFqCg0dJhPcPSJq3uCAxtzgzHSJ1ilFRSpxXMAkoI
 QCSyCjNg2uDRdQlRlkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfPygkzhycwrgZv+CmgxE9Bi/y
 /OIItLEhFSUg2MG9+ZHZdwdZRaJtCrc+foQUef46fk0z9fjq4/0/3U8bDfnC0OZ5MVQ1NTSor
 l/T/wT9Ipm+37LNp4dmvm9reuC/I9DoufPHR6Xcj209NTFKpqvLlZqny7xVw7PGTO8nmGFp4I
 Wq8Y8WLf7hyjnb2Z30q3rH/6T67W5MC76YJKk83a9UzUPT8osRRnJBpqMRcVJwIA+eg8maMCA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!5
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64612 invoked from network); 24 May 2016 14:21:20 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:20 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289466"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:45 +0100
Message-ID: <1464099660-12432-6-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 05/20] Add base do-nothing service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgICAgICAgfCAyMDkgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgICAgICAgICB8
ICA3MyArKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L2xpdGVhZ2VudC5yYyAgICAgICAgIHwg
IDYwICsrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jICAgICAgICAgIHwgIDY2
ICsrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC94ZW4uaWNvICAgICAgICAgICAgICB8IEJpbiAw
IC0+IDI1MjE0IGJ5dGVzCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgIDEy
ICsrLQogdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgOCArLQogNyBmaWxl
cyBjaGFuZ2VkLCA0MjAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2Vu
dC9saXRlYWdlbnQucmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L21lc3NhZ2Vz
Lm1jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC94ZW4uaWNvCgpkaWZmIC0tZ2l0
IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MjBlOWIKLS0tIC9kZXYv
bnVsbAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKQEAgLTAsMCArMSwyMDkgQEAK
Ky8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAq
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIElOSVRHVUlECisjaW5jbHVkZSA8
d2luZG93cy5oPgorCisjaW5jbHVkZSAiTGl0ZUFnZW50LmgiCisKK2ludCBfX3N0ZGNhbGwgV2lu
TWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFOQ0UgaWdub3JlLCBMUFNUUiBscENtZExp
bmUsIGludCBuQ21kU2hvdykKK3sKKyAgICBpZiAoc3RybGVuKGxwQ21kTGluZSkgIT0gMCkgewor
ICAgICAgICBpZiAoIXN0cmNtcChscENtZExpbmUsICItaSIpIHx8ICFzdHJjbXAobHBDbWRMaW5l
LCAiXCItaVwiIikpCisgICAgICAgICAgICByZXR1cm4gQ0xpdGVBZ2VudDo6U2VydmljZUluc3Rh
bGwoKTsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBDbWRMaW5lLCAiLXUiKSB8fCAhc3RyY21wKGxw
Q21kTGluZSwgIlwiLXVcIiIpKQorICAgICAgICAgICAgcmV0dXJuIENMaXRlQWdlbnQ6OlNlcnZp
Y2VVbmluc3RhbGwoKTsKKyAgICB9CisgICAgcmV0dXJuIENMaXRlQWdlbnQ6OlNlcnZpY2VFbnRy
eSgpOworfQorCitzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CisKKy8qc3RhdGljKi8gdm9p
ZCBDTGl0ZUFnZW50OjpMb2coY29uc3QgY2hhciogZm10LCAuLi4pCit7Cit9CisKKy8qc3RhdGlj
Ki8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkKK3sKKyAgICByZXR1cm4gLTE7Cit9
CisKKy8qc3RhdGljKi8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VVbmluc3RhbGwoKQoreworICAg
IFNDX0hBTkRMRSAgIHN2YywgbWdyOworICAgIAorICAgIG1nciA9IE9wZW5TQ01hbmFnZXIoTlVM
TCwgTlVMTCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKyAgICBpZiAobWdyID09IE5VTEwpCisg
ICAgICAgIHJldHVybiAtMTsKKworICAgIHN2YyA9IE9wZW5TZXJ2aWNlKG1nciwgU1ZDX05BTUUs
IFNFUlZJQ0VfQUxMX0FDQ0VTUyk7CisgICAgaWYgKHN2YyA9PSBOVUxMKSB7CisgICAgICAgIENs
b3NlU2VydmljZUhhbmRsZShtZ3IpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAg
Ly8gdHJ5IHRvIHN0b3AgdGhlIHNlcnZpY2UKKyAgICBpZiAoQ29udHJvbFNlcnZpY2Uoc3ZjLCBT
RVJWSUNFX0NPTlRST0xfU1RPUCwgJnNfc2VydmljZS5tX3N0YXR1cykpCisgICAgeworICAgICAg
ICBTbGVlcCggMTAwMCApOworCisgICAgICAgIHdoaWxlIChRdWVyeVNlcnZpY2VTdGF0dXMoc3Zj
LCAmc19zZXJ2aWNlLm1fc3RhdHVzKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHNfc2Vy
dmljZS5tX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAhPSBTRVJWSUNFX1NUT1BfUEVORElORykKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFNsZWVwKDEwMDApOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gbm93IHJlbW92ZSB0aGUgc2VydmljZQorICAgIERlbGV0ZVNlcnZp
Y2Uoc3ZjKTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3ZjKTsKKyAgICBDbG9zZVNlcnZpY2VI
YW5kbGUobWdyKTsKK30KKworLypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZUVudHJ5
KCkKK3sKKyAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJsZVsyXSA9IAorICAgIHsK
KyAgICAgICAgeyBTVkNfTkFNRSwgKExQU0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWlu
IH0sCisgICAgICAgIHsgTlVMTCwgTlVMTCB9CisgICAgfTsKKworICAgIGlmICghU3RhcnRTZXJ2
aWNlQ3RybERpc3BhdGNoZXIoU2VydmljZVRhYmxlKSkgeworICAgICAgICBDTGl0ZUFnZW50OjpM
b2coIkZhaWxlZCB0byBzdGFydCBkaXNwYXRjaGVyXG4iKTsKKyAgICAgICAgcmV0dXJuIEdldExh
c3RFcnJvcigpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworLypzdGF0aWMqLyB2b2lkIFdJ
TkFQSSBDTGl0ZUFnZW50OjpTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgc19zZXJ2aWNlLl9fU2VydmljZU1haW4oYXJnYywgYXJndik7Cit9CisKKy8qc3RhdGljKi8g
RFdPUkQgV0lOQVBJIENMaXRlQWdlbnQ6OlNlcnZpY2VDb250cm9sSGFuZGxlckV4KERXT1JEIHJl
cSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwgTFBWT0lEIGN0eHQpCit7CisgICAgcmV0dXJuIHNf
c2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsK
K30KKworQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5kbGUoTlVMTCkKK3sKKyAgICBt
X3N0YXR1cy5kd1NlcnZpY2VUeXBlICAgICAgICA9IFNFUlZJQ0VfV0lOMzI7IAorICAgIG1fc3Rh
dHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAKKyAgICBt
X3N0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgICA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJW
SUNFX0FDQ0VQVF9TSFVURE9XTjsKKyAgICBtX3N0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9
IDA7IAorICAgIG1fc3RhdHVzLmR3U2VydmljZVNwZWNpZmljRXhpdENvZGUgPSAwOyAKKyAgICBt
X3N0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7IAorICAgIG1fc3RhdHVzLmR3V2FpdEhp
bnQgICAgICAgICAgID0gMDsKKworICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwg
TlVMTCwgTlVMTCwgRkFMU0UpOworfQorCitDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCit7Cisg
ICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TZXJ2
aWNlU3RhcnQoKQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQoKVxuIik7
Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TZXJ2aWNlU3RvcCgpCit7CisgICAgQ0xpdGVBZ2Vu
dDo6TG9nKCJPblNlcnZpY2VTdG9wKClcbiIpOworfQorCit2b2lkIENMaXRlQWdlbnQ6Ok9uRGV2
aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSkKK3sKKyAgICBDTGl0ZUFnZW50OjpMb2co
Ik9uRGV2aWNlRXZlbnQoKVxuIik7Cit9CisKK2Jvb2wgQ0xpdGVBZ2VudDo6U2VydmljZU1haW5M
b29wKCkKK3sKKyAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6U2V0U2VydmljZVN0YXR1
cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0gMCovLCBEV09SRCBoaW50IC8qPSAwKi8pCit7
CisgICAgbV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgPSBzdGF0ZTsKKyAgICBtX3N0YXR1cy5kd1dp
bjMyRXhpdENvZGUgPSBleGl0OworICAgIG1fc3RhdHVzLmR3V2FpdEhpbnQgPSBoaW50OworICAg
IDo6U2V0U2VydmljZVN0YXR1cyhtX2hhbmRsZSwgJm1fc3RhdHVzKTsKK30KKwordm9pZCBXSU5B
UEkgQ0xpdGVBZ2VudDo6X19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgbV9oYW5kbGUgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlckV4KFNWQ19OQU1FLCBTZXJ2
aWNlQ29udHJvbEhhbmRsZXJFeCwgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IE5VTEwpCisg
ICAgICAgIHJldHVybjsKKworICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsK
KyAgICBPblNlcnZpY2VTdGFydCgpOworICAgIHdoaWxlIChTZXJ2aWNlTWFpbkxvb3AoKSkgOwor
ICAgIE9uU2VydmljZVN0b3AoKTsKKyAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUFBF
RCk7Cit9CisKK0RXT1JEIFdJTkFQSSBDTGl0ZUFnZW50OjpfX1NlcnZpY2VDb250cm9sSGFuZGxl
ckV4KERXT1JEIHJlcSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwgTFBWT0lEIGN0eHQpCit7Cisg
ICAgc3dpdGNoIChyZXEpIAorICAgIHsgCisgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDog
CisgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiU0VSVklDRV9DT05UUk9MX1NUT1BcbiIpOworICAg
ICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsKKyAgICAgICAgU2V0
RXZlbnQobV9zdmNfc3RvcCk7CisgICAgICAgIHJldHVybiBOT19FUlJPUjsKKyAKKyAgICBjYXNl
IFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjogCisgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiU0VS
VklDRV9DT05UUk9MX1NIVVRET1dOXG4iKTsKKyAgICAgICAgU2V0U2VydmljZVN0YXR1cyhTRVJW
SUNFX1NUT1BfUEVORElORyk7CisgICAgICAgIFNldEV2ZW50KG1fc3ZjX3N0b3ApOworICAgICAg
ICByZXR1cm4gTk9fRVJST1I7CisKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9ERVZJQ0VFVkVO
VDoKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTRVJWSUNFX0NPTlRST0xfREVWSUNFRVZFTlRc
biIpOworICAgICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CisgICAgICAg
IE9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRhKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisg
ICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfSU5URVJST0dBVEU6CisgICAgICAgIFNldFNlcnZpY2VT
dGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfSAKKworICAgIFNldFNlcnZpY2VTdGF0dXMo
U0VSVklDRV9SVU5OSU5HKTsKKyAgICByZXR1cm4gRVJST1JfQ0FMTF9OT1RfSU1QTEVNRU5URUQ7
Cit9CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjE5MmVm
Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaApAQCAtMCwwICsx
LDczIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3JtcywgCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1l
dDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCisgKiAg
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAq
ICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgCisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCAKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAorICogQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKKyAqIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAK
KyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIAorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBfTElURUFHRU5UX0hf
CisjZGVmaW5lIF9MSVRFQUdFTlRfSF8KKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2RlZmlu
ZSBTVkNfTkFNRSAieGVuc3ZjIgorI2RlZmluZSBTVkNfRElTUExBWU5BTUUgUFJPRFVDVF9OQU1F
X1NUUiAjIyAiSW50ZXJmYWNlIFNlcnZpY2UiCisjZGVmaW5lIFNWQ19ERVNDICJNb25pdG9ycyBh
bmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhlblN0b3JlIgorCitjbGFzcyBDTGl0ZUFn
ZW50Cit7CitwdWJsaWM6IC8vIHN0YXRpY3MKKyAgICBzdGF0aWMgdm9pZCBMb2coY29uc3QgY2hh
ciogZm10LCAuLi4pOworCisgICAgc3RhdGljIGludCBTZXJ2aWNlSW5zdGFsbCgpOworICAgIHN0
YXRpYyBpbnQgU2VydmljZVVuaW5zdGFsbCgpOworICAgIHN0YXRpYyBpbnQgU2VydmljZUVudHJ5
KCk7CisKKyAgICBzdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KTsKKyAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlckV4
KERXT1JELCBEV09SRCwgTFBWT0lELCBMUFZPSUQpOworCitwdWJsaWM6IC8vIGN0b3IvZHRvcgor
ICAgIENMaXRlQWdlbnQoKTsKKyAgICB+Q0xpdGVBZ2VudCgpOworCitwcml2YXRlOiAvLyBzZXJ2
aWNlIGV2ZW50cworICAgIHZvaWQgT25TZXJ2aWNlU3RhcnQoKTsKKyAgICB2b2lkIE9uU2Vydmlj
ZVN0b3AoKTsKKyAgICB2b2lkIE9uRGV2aWNlRXZlbnQoRFdPUkQsIExQVk9JRCk7CisgICAgYm9v
bCBTZXJ2aWNlTWFpbkxvb3AoKTsKKworcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0CisgICAg
dm9pZCBTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0ID0gMCwgRFdPUkQg
aGludCA9IDApOworICAgIHZvaWQgV0lOQVBJIF9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KTsKKyAgICBEV09SRCBXSU5BUEkgX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09S
RCwgRFdPUkQsIExQVk9JRCwgTFBWT0lEKTsKKworICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAg
IG1fc3RhdHVzOworICAgIFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOworICAgIEhB
TkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7Cit9OworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL3NyYy9saXRlYWdlbnQvbGl0ZWFnZW50LnJjIGIvc3JjL2xpdGVhZ2VudC9saXRlYWdlbnQu
cmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlNWNjNwotLS0gL2Rldi9u
dWxsCisrKyBiL3NyYy9saXRlYWdlbnQvbGl0ZWFnZW50LnJjCkBAIC0wLDAgKzEsNjAgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVk
ZSA8bnR2ZXJwLmg+CisKKyN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCisjdW5kZWYgVkVSX1BS
T0RVQ1ROQU1FX1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgorI3VuZGVmIFZFUl9QUk9E
VUNUVkVSU0lPTl9TVFIKKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2RlZmluZSBWRVJfQ09N
UEFOWU5BTUVfU1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCisjZGVmaW5lIFZFUl9MRUdBTENP
UFlSSUdIVF9TVFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuIgorCisj
ZGVmaW5lIFZFUl9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0UiCisjZGVmaW5lIFZF
Ul9QUk9EVUNUVkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9SX1ZFUlNJT04sTUlD
Uk9fVkVSU0lPTixCVUlMRF9OVU1CRVIKKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUiAg
ICAgIE1BSk9SX1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVS
U0lPTl9TVFIgIi4iIEJVSUxEX05VTUJFUl9TVFIKKworI2RlZmluZSBWRVJfSU5URVJOQUxOQU1F
X1NUUiAJICAgICJ3MzJ4YWdlbnQuZXhlIgorI2RlZmluZSBWRVJfRklMRVZFUlNJT05fU1RSIAkg
ICAgIjEuMCIKKyNkZWZpbmUgVkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJ3MzJhZ2VudCIK
KyNkZWZpbmUgVkVSX09SSUdJTkFMRklMRU5BTUVfU1RSICAgICJ3MzJ4YWdlbnQuZXhlIgorI2Rl
ZmluZSBWRVJfRklMRVRZUEUgVkZUX0FQUAorI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMAorCit4
ZW5faWNvbiBJQ09OICJ4ZW4uaWNvIgorCisjaW5jbHVkZSAiY29tbW9uLnZlciIKKyNpbmNsdWRl
ICJtZXNzYWdlcy5yYyIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z
cmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jIGIvc3JjL2xpdGVhZ2VudC9tZXNzYWdlcy5tYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjg5YzQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL2xpdGVhZ2VudC9tZXNzYWdlcy5tYwpAQCAtMCwwICsxLDY2IEBACitTZXZlcml0eU5h
bWVzPShJbmZvcm1hdGlvbmFsPTB4MSkKK0ZhY2lsaXR5TmFtZXM9KFhlblVzZXI9MHhkNjApCisK
K01lc3NhZ2VJZD0weDAwMDEKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1BPV0VST0ZGCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24u
CisuCisKK01lc3NhZ2VJZD0weDAwMDIKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVAorTGFuZ3VhZ2U9RW5n
bGlzaAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuCisuCisK
K01lc3NhZ2VJZD0weDAwMDMKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVSTkFURQorTGFuZ3VhZ2U9RW5nbGlz
aAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBoaWJlcm5hdGUgaXRzZWxm
LgorLgorCitNZXNzYWdlSWQ9MHgwMDA0CitGYWNpbGl0eT1YZW5Vc2VyCitTZXZlcml0eT1JbmZv
cm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TMworTGFuZ3VhZ2U9RW5nbGlz
aAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0
ZSBTMy4KKy4KKworTWVzc2FnZUlkPTB4MDAwNQorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9
SW5mb3JtYXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01JCitMYW5ndWFnZT1F
bmdsaXNoCitUaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNhbWUgbm9uLWZ1bmN0aW9uYWwu
CisuCisKK01lc3NhZ2VJZD0weDAwMDYKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1NUQVJURUQKK0xhbmd1YWdlPUVu
Z2xpc2gKK1RoZSB0b29scyBpbml0aWF0ZWQuCisuCisKK01lc3NhZ2VJZD0weDAwMDcKK0ZhY2ls
aXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9Y
RU5VU0VSX1VOU1VTUEVOREVECitMYW5ndWFnZT1FbmdsaXNoCitUaGUgdG9vbHMgcmV0dXJuZWQg
ZnJvbSBzdXNwZW5kLgorLgorCitNZXNzYWdlSWQ9MHgwMDA4CitGYWNpbGl0eT1YZW5Vc2VyCitT
ZXZlcml0eT1JbmZvcm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9VTkVYUEVD
VEVECitMYW5ndWFnZT1FbmdsaXNoCitUaGUgdG9vbHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3Rl
ZCBlcnJvci4KKy4KZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQveGVuLmljbyBiL3NyYy9saXRl
YWdlbnQveGVuLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDRjOTkzYmEyOTBlNTA1NWE4OTAwY2E4Nzg2ZWEw
ZTAzMTEzOGE2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNTIxNAp6Y21lSHYzMHpnaGB9ZVJm
RHl4YnAlTFBQMFAqRCY7S3V8ISpDNzBDUCU2JktZbCoqRks1PjNTbzE+RTtGX1hUJH0KenZfI3l1
KG8jZm94MiU0Wm1ITkVUY2d7Sk5kb04oeHJ7RFgmfElmZUNAMHBvcm9eOTRNWFVAM0BWSjdURVhz
OHAlCnptU1RYbDVPYWtQSS1RY2dWPWx4cXJhM3QmYDlMIXZacktVdTd0QylmKTtJe15QITlaUi1k
MmQ2PyUtR1ExRlZGMgp6KF51b3lpOGNPMDkxWU87SW5SN1VUV1Mwe0Z+Q3hZJTVNcjAkVWQrTShT
cmZNNUtAJiRyajBNRFQqI0V2UjMram8KekNtRT9DSCNlNkhOZDZaQE5ITz55TlZ4b0V1byprSDZy
UW5UUV98QUxqdmExWFdIVUFgWkRMfCNUR31MSW5VdTd8CnojRmhtR2lIWFQraDd2WHQ2QVA0KG1w
R3xkbFRDXzdFLTEpTEY0bU1YayMlU3hQcGA/d2tqekZqTyRKJlpsJFdmUwp6SGV1SGIqaTYoXnQ4
dCM5RDVhJGR5K0E0fHArOzN5TEplRG5xTGh9V3hWPnBBbCU9WilDfVE9WEtWfnUqNVdAaH0Kelhh
YWdWRTBYRn0wWXA+NXVoRkhac2UxTmV4K0pBKj84UzVgcGpRTEJUM1pOa2tsc2ojdntxMEdxKld1
anRkcnRSCnpEZkUoaDZuOyUwZEFRYldVI2Y8czElMTdnQ2V3UlZPcWNBXkNrUGJOUVAoRiohKllR
c1Q/KCpJT2pqeF8pdnk5cAp6bGlEd2UpaEEzPnk5amo2UUJjKFlIQjRgKjwrVjZiNGpgQE5HXipA
Z0ROc3oyRFhGRnVNVCMyc3cwS3M0VW1NUysKem1Oai0zRm0kUFN6S0Y4czdpLWM/N3xsbzRSUW1p
Q1d6QmFYTj8jdV4kQm93JHJNc35mSiZzZT5Cdzs0dyQzbnptCnpqZH49Nkh7d0RlOTEqN3FWUyQp
Nm5lcFdyJEgrV0VKWUVQRVc1TUU+I2FWJDZnQF8lQzw2UHV6Z3dXenQ8U2xzMwp6e0VIYUh5ZFcj
I0lkTGpEVU8tPGlfemU2Z01CY3pwJjQxSCtZNHozVyZyS2xQTCpHOEVOVmI+T2VwLTh5K1AtUmcK
ejwzNktmIzUxKH1qTnA0LT1ePDVWQWlsM35pb3lSdDs+K0s9JmxyeWQ4fDl3RG53NX5FKylJWTUq
fDhIN1RqQ3h2CnpOZz4jemFTa0NfUFA1fGFwLWM+ZWQ3MXxYKTRidWRsPE9fZXtpeXs3eWI/QFIq
OSN0K1E/Vmp3Pmp4KHZWPEZKOwp6TlQqMzVIWHprODBtWWMlR0xQaiVVQzxTQz1fVGBXMn5fI3pH
NlZzMkohRSFQcTRAKmY8ZUR+Pj9WJm5jXzVfIzUKellNJDl5bVRnWXQzWSpsZ01FeTxNIT9nV2BZ
NU5NM19RJEZxQEFYPiRAWFZIYjA9MnNrNzU2ViVNaD59RDMhZEkpCnojTiY1N2g5cmgoQXJEbWBt
anpPSikpKyE0dmtmeSU1NXNiI2I2S3VYKWQ3OWIzO2xBYSF5WWQhODBTdDU5WVkpRQp6c2hsbzdx
KylQbVVASCt7SXIpTylvYT5BaHVeRkExKm8rZ1NUaz8ybUNUdXczI0JlUGhlZD0qUmBqZGlZcVlM
T1UKel9hZXZLa3ArbUVBWTw5dnBnJWM5UT00Z1dUQ0N+UytkKjVpeHlNLVJZPE9NNitRVGdkbG9o
bWNASW5UJSNge2lOCnpNVT9sdWBrP2chNlokZFVzXlRMMGdAdVdKe3JaWFY8SHc2Qjl6dngxU2Mh
Q2hkb2puKU93MTF1Vm5NTEEkZiNMQwp6T2I+RHZ2dWpycCk5WlNQYEVefUhXYHZobVJaRURxYiVm
WVpTQk5kKUxnWWw1aUh6OHFWcEMmUms9LW1wOTc/YmgKemBSKGpRUTlCe2RfSTQzaCMjUit5eWNJ
NGN3ezl3eWJ4MDY3ITx2Yjh7a3c9UHchaSZAKGMoc1c0Ukw+Nm4zeT53CnpPPU0rZGlLUj1JaWRD
eXRpTTRDamlqNW1MaXJ1PytpdnRHXmh5cElWa2g0UnNUU3QhYDZ+flNwNkRMbGI1VHtSewp6N1Uk
Mk83aGl3PHdZWWxxczw/NkVoUFpYPm1iaVFPdTZYZF5mJXgmcUFIXkBmezMzcTt7ZGUpfm5PdUdL
UDRqUSEKei14bTFhJjtxPVl8Mzlkdmx8SDxIYXBueVMzPUhESDVvZXcmIXNWN2h7PVZNY28qb3th
LXJtMGNMNiotR3Y5YiZhCnpeITQocDV1azx8VVlAPnpBKG15PlZCTzVFWEk1bHRjPS1taGpaKFp+
UGZCbkBoOSVnbTUoMkU7K2VFa09SZStaXwp6bj1sYnpjSWlydTVgaXQkQEg3PSpjMjVJTkZCdUY3
Q0lWcGhMYjFZVmUzZikjMGpuVHlqbU9nQFhtc3pPO3dvNEwKemBnJF41O2pDczk2ZERTQjEycUJt
cmtiU2RJamhRYCZua3ViSTx4dn1vKCZ0dSRiU3VrNj11SEhpJX4pcDFVOytpCno0T2ooTVdrUzNi
PlprKDI4aURoV3NIIT8tVyQ3ejk7PFdPcCR9K15MY34haD5Sbj5yMVAhJVJJaShWaW1tfi1KTwp6
ZHo+UThFTEReeXZocjZiZUFPKChoZzg8UVFRME1uS1UmRGooeXgqfT1taT5SI2BIeTtASXd1KDAo
fWY8OGs7NikKelAqa2Fza0lHLXNGbGR9SWp4I0smc1BHMz5hV3g3QzAjUVo8dUNsXmJLYHRnaVlz
bVFjNVIoISNQKVl1ZlZoZVNRCnoxciZaS2QqZXs3S1ImKkpWVWQmTTR8S1A7bXVsM2EyRjI8KjYl
ITBIJUkpcGxtRyl1JmF2VzZsSSE1ZkEyfDxBQAp6U05XXmsqKlM2RSZXYERKYGhLPDNjU1gzcG90
LVNORT1RYklBb0R2cG1BNjkoKjBfKy1FWDQlZG0zTU5vdnk8JUgKektuYH0hJk1lQC1kYkdOTnk7
dllGbT0pU05zTiplQVhZSzZmP0NqditQKERnazhFMGM+WFVvdG0jTWc2bnckPl43CnpjPzROSXlT
cWM4cDJsdSVYSmNiK1ZgRjJoeGZkVmhZXn0wMHpzfHdPJEs2ZlpzOEZHVG92cDIxMXNqSH5FJDE4
QAp6b1NvZz0rPGh1Jj5VbCY1VEQkd0g1ez9jSSUlbFllMlM8aDUkSzZeIy0oa1NmJnJnd1hiOU9X
Z3RlU1FFYDF2e04KeilubT5DeCV2M31MJlRqY1ZpLTZOWmh2PC1yRSEjSG1weVh5XlhDOH5ra0pD
P24zP0kwI29qPUsxPkYyWEFwdDg4CnpsN1cqNyZDUXJ5NjleNGVXRihWJVZWWWtGYn02OXE8MSNK
eVlZQXI4blFCKkQzZXZneipHMTU/QklFQy1FQTQqNwp6N1dsQGlOcWBYeylaYmwpK3B5OXNyZE9e
dF9rXnhgWGxVS35fMVF7dyZJRmRgaXpiTWhkcitYeCFvdTlsJS1xNjQKeiRDPkJkdVZwbn1XPFF8
VlZVPXBvPj45QE1kNnVfOSNjezQ5d25nK3pKenNnR28/aktKPVUxdXhOUWlQKWc3WWdwCnpJcEYr
Q3A1dClMJiNkek5pcEF2bGxAPUV3QDIjRndAd3JlZ0AmPDcjXjhEOyg4aVMxVUNtSF5NSTJEUll2
NkJuQgp6Zmo/VGw1T25yaXRBYGVBXzA7T0V3RjVWU2E7fSVFd297P25aWSZ0Ymg1QnxTckplRGRz
JDt9NkBFJTQ2T0NeJDUKemdYaCNhb3xZbWIkVkZ1RV5YQjQ2UHE4b0RPNitWPExGfHNPNlQ2fXUj
a3opLSNoTTBII0V4aUpGfStiT2FWWE1LCno5RS02TzJiI0V3VTVWYWVTJHVWfGBxZXNPWFMzPWVy
JldtOUA+Kz00KUdrYD1jfEEmO1ktfWFZSG5TMERsV29QdAp6SHVtRCVIamQmLVM0V1pHKyhxUUlf
WXhPNnhRY0p2SXgpPmpvYktRJDk8KCRRZz40PGg/WEttLS03ZmF4RG5IV30KejRzO2R3MkR5bHZX
MiVWej9eWTR7LUdqeHhIeyErS3g0TWR7IX1eS0MhKEpEa2tNMXQ9I2BZMzw/K3AtbFFhIX0mCnpr
OTZZQkNweig5TXNATEVlejM/LWVNQH10O2MjKGMrNlE5QmoyVUE2YHRAU2RyY0drPT1GTVd+Jllr
al5fc3BEJAp6OyV3JCphZW1QWmFkR0ohQHp1JktgVFUhZ21uWTdoSkV3b3t7cE9vKiNQI2RmI2Rx
SSpDIWMlMnxOaUBicEwtMzQKeioxeVVCODc9VG5LY35qWlApNk5qVj8lNUNTRmk0MEQ+T0U/QnVp
fGxQZTlGKDI5YzJzTFRVemhncW17MWBxZ0w8CnpyNEoxUHtFUWk1ZUlnPWRoKkZ9K2BhWHNYdkh0
WlZqNiNFbWBYMHAkdkFXPD1mPSorSV4kejQ0c0MtbiRNRnU3Vwp6ZGFEZWY5LWVJeFRLblJHJCt2
TWs0c0FLKjVofC0wPiV8V18/UFh8JD1OKnxzcU1EYWY1YktVNzgtKmRjWVNxP0EKendVYWI9U3Nx
JE4yOEUkanZNZzNlUmJVe3Q1XnBlTlAmamJhRDN3QDJFYnNLeHBmUEI5MlM9MVVTWG90MnxGQERI
Cno/WDt8dzFJbWt3dCg1Wmk/SGckdkNALWdPMCZKfExaJkYzRnF9aH4xeGVNPUtXb1JVZVl+OzFJ
cV99WG8yKGA3Zwp6RUB4d0gtQj1iX1RVKlB4VF9hQSgyOGB1QkozPjNxK2FWPHgrQllyLV49dHNV
Y3FnYVV2Um8jZTZvd1hkdlJzNl4KejhhKyt2R3A8VmloKilSMCtOQV9IWEdOU1hJQWYxeTh1WjAq
cDxZOWk1TjVBUU9DSyVrQl5aVHBPVCVLO1ZCeT5fCnpDTHlWNXYhK2QoQ2ROY05UTm9FSkwjVmxQ
PHZQKFpHMH1BQEpEWm83QTgzY3ooREs7dGxgbk9FITMkPFZrVipZVAp6KmBNK0NRNTtkS2pvZTE/
LWgrNF9HWDQ+N0VlZCY/ayptQ1dhN15XYGhYJGVTcDBJTj1mPnc/PVNDdVBkOW5ifXgKeiZASCFz
WXpzRUFQak89QzgyV3QqXzlqe3wqciZ7ez1fcHBseHs3NXs5JTVxP1o/VWJKbj5mKE1MK3ROZFAz
JnBtCnpFNEg/LUMlKXtjNkRQWCppdX42RE1TaUNgOz1+KH47KFVKfWFla3opeEg3XnxUcHczTTlQ
WEpZUDdYKkdYWmtofgp6PVNJRko/dEwwMF9VemRzNGp3IXhAQUg9flU2U3xwaFl1ZiRwTVU7WXtR
QiMhfERJPVN7cWItN1p3dmZpWlVPeTEKeiNZX2d4eHx4fWNsYmY1OWpoVjdzbjM9bU1NLURGTGE/
TE89S0N9WUNqRV58OTtBa2V5dFFAXyl0MiNRbWR3Y1cyCnpoTHhGX3dQUUoqJmVQcG49VXZYUm9W
QSU1JlgjbD55bThDMVNNdWROYi1IUzUtbk0tQ142cF5wPGI8dTZuSSN7bAp6PXlaVjJ5QERraDsz
RjY8UkRnWXA7ekt8Uz43WWVMPHdVWmclcmJ8V29vblVGdTZBWjltQkZDQ2M9dzJSa2Ehb0YKeiRf
emtSS2BSRkBXRlUpbTdCez5lM15TcVFFOT54PShMWndHQlAoLTtDQnVlTW8+N1Y2JD8jKFlGbVJ4
VlY+fCQ5CnomYDxeKkBJblQlJns1X1c3WE9IfDIxO095VmEwJWJIJTRfdlR9QUBxYncpMm5LZ0xN
TEoxVVJ7NFExY35GSnZHSwp6OW5ifXh8RndFUkh2P0AyVGtlYnlNbHokPHRGT0t+dVM9SU1VJWNf
Zzg8IVpEZC12fUJXOGMxZ3A4JVp4c2F2O2gKei0hbEQ1PWd5cl53cmJVQ0hPcVgkY28odF49enVR
aGd6a1U1S1VrKikxSU01Xml3fE5uPVJNbkVfVVF0QTk1R19WCnooK0x3TUpleGR1dmMjTUBiMHxB
SVRMTml+NGolQmIldX13QFJvO1o+dSZ6bEFeaU9qSmJpKVIwU3J+TnQtJTdGJAp6R1h+bmpmdVVv
PnYpfVclT0BHalFoSldqKHF8bHlzSjV2NmpGcDB9dVQhYFAjT0NZViQhMkAyJVhtI247dEpsdzUK
emtHLXNWR0dqMW9hTF9TZTZTa2ktXlVKT2wlVkU0PU9nYnxIKnY1TjNkLWcxWi18Nlk7Jno4LWFP
dH5ZSD0qcG1+CnpiWmRNeXg7cm5CP3lzcyM0PncyOV9kQkJLYDwhVHJobiMtNkRUM349NDVobW4w
ZCh2QXMmcis1eU9mMHY9emBBZgp6LU1pbXkqfE96RXdsI3IpSWZENVArYj15WVNPJmdoWk5OR2Eh
aE9BS0BaaUJ1RmI8Wm8lfG0wNz10aGJnLU5fODEKejJPSHxzIXxtKU57NnhHQmglfHYoMXxCWWR1
cylwYldDVCp0PXRefHg/SWVPdT13PSZGZDUpWkNuXlBIbVY0REZTCno7TDhpbVpSVyQ2TDdnRU4j
X2UoZj9TbnF3S1JrJkZNXj5XU2JBI3dVYHx5QzxefSRCUVhaN2htejsoSTVBellUQgp6VG8yR3Qj
eXNHYUdVJGBGVlJVOz0wOV9tRURze3NLWTtrKkNXODFTQkJqNXVBelFDdXk5ODFpREczVlQtT2A5
ZT4KeiZMNH4mSk5EXyluVWc5MT9mUGAlVjskWEg5IW1HdGd3ZWZLXiUhO08/Z30wa091TV9SNCY3
Wl5od2R6P08/TVdYCnpmTjNhYEptNmhYU0lYWDcle297WVdRc29ZcUdPfSM2S3VnSTxeP3wtRW4j
MCEybE5CUmxIck1GaU5WazFTWjZTQQp6MHtabW5iTU84NC0rI0o8Xjw1YV5OakU8QXF1VUU+TiM3
OVBvKnpRRHZWIVQ+eXFmZUtfczRnMDBfblRpZnBsfEwKejBOdEV2MDtadSVALVhrTSUkanM3SjZQ
KF8+cyR+Kk1VI0IjIVhPV1YmMmkoI0p3cU1YN3hWK2g2Nk9QWkR8S0NCCnpJPnRRS0VuU1p1SkBV
ezcmfnQ5RUN0WGtUckpFVCs1O3RaQSh2MkFiUjVhYjZpYXhEUSpDK2M/O1VwZ197RnBJTwp6Tjdw
OEopM3B4KUZCUDAtOHBePFBvcWRFMVdUNkFQWmxkMU1LUE8xP29FQE9sMFkwYz4zRylHU1RFfkVv
Q0ZUT3QKekZtNVhJY3dkYiUyO1djanR3IUliZFFzdCY+SSUzWCpDelZWUnJjQE80P085Y19kTXVJ
M2E9KyktMEFZQERzKntOCno3NWFMRjgrfD56YXhxNDVuclNFbDR8dVA8UTtvaEU9Zk9JPnFeQGhJ
Skx9ZiRlRVlzOW8kT3N6XzUqeFQ9a3heagp6NCp+WkZxakFKfXcwLSRib2pTZGFicTRiJmNXXmo7
I1d1ZWc/P3ZDUm9oJDY/PCpgLWk+KFREPzc1ajUoWGwxJU0KenhGVEhgOzdhSEZ4elBETyZVQ0p+
NlBAZW5OYXVQTzBDfEFSenluXiRUcFYwVT5WUGlqeXFyPV4rSkcoSyhyYEQqCno5VFlDXzY8Qyts
d0g1Yj1Bb3ZRT3dGJHMhJXghbWB1Vj1CMlo2Qk9PWEw+cihySUdIOERzKnZ9OD1Zcis9TFNAeQp6
dndkQ1lPZk0lby1RQUgrYipuKDl4fEZBcm95eVY0al4qZT8yWVdqNG5xQkdPR1ZwKkdHTFZJaXYl
UT85JmhyRGcKekVyd0sqd3FXPC1oJF54aXpROEJrQUsxc3E0QlYlJipPMEhqSUZAYkM8ODFpSWt0
M2Zoby12djcrTG90UDlWKmxFCnpfTFhUXytlKTt3d0pSLWM9fFc0SUpKYUgxQ3RCM2hrcnBMNyhC
Z3kmYmc7UHtlYzk1UXpIR3MwWmJlX2JRVzhnKgp6d20haip2ZzY3dFhrM0FeOCN+Wl4qMENWVGty
cDsleXt0UjhPR1BAPmdXSU1Md145RiFiZiZLPjwrcmdWXz1JdCEKei1sd3RHejxNUDZmTWJrJUgo
cWFVO2E8M1BQIWIqTVA9T0FtXmBhWXYqWFpgYCtoeVlCJjZfbERZKExyJVhHQDBACnpFYT53bD1B
fmtEeWU7a0J4UTYoZnlFMVg8PXpqWFZMcSQ2RlN+PCReU2V9a3xhaUReKGomIVZqSWY3NXtPPGoq
Qgp6dkFAeyFWYyFiaFpGbkN4MnlNVEo+dl8xVDYmLUM/aipobkZ7KGRLIXsmVipSQHBwYW4/Q0Rj
XmJjOSN+MnY3ZH0KemxlVnV8Sz1ZIT8pNG9STGJnKz9gNSV4QitwamlYak9Gci0kJTQjfSlge0BW
RD5tNXBtbl8xRTQmMjE+SnI3YXpLCnopc0ZxSm13cF5kdkx5SlhfNXQ+TXklXlF1SkVKXztZdilI
RmVlYHJnLXozVXlZRTZlJiREdzIhbkxnNmxrOFlqRgp6RXpeSV5wS35YVSkxKmU4dkBfYkFfQ15h
bXJwSCNIaFkjK1Rra3soK2wtcntxd0h4aF5HcDdUTUUkQmNLT0ZFY24KenJURD08ej9Yd2JSc2BS
JD1pX21IbTNfd0V5RG9mWlJOYCslfEc9OEZ2bmspbDZSYzwtKEFianAjI3p1RlpvaHBeCno/Q0h8
Vlk1RiNWP2I1PTdgfWIqNXJ2JXklVkw+Xk9mPnVVWVF7TF8hckxqc0hgdHs8PDhNTTJoOFNSYyV1
cVZiYAp6K0p0VFJBYm53ZmJ+ZGRqKkNPbl8qPUlhSUIqNkVzVUF3LUR2OW59aTNoaihDcnlUWS1D
JnEkeWFYYXA2WHdFYjwKeis4TjI8dml4eWY9JEEoaU9OOz8rOTNYIUQraSRlcyE/JFR9czE/bF4o
MjNCI1N8N25fRWUrcVY5QCRIfjs+eXZFCnoyMH12R2srI2dGWlRKOVJhJCtye2VmV3FtcSZAQFRl
JikkekNrdGF8PHkjJFRUWjk+SFlvRyNZI0A3MHg3fno4VQp6Y2RrUFp1YmVNKUppdEhyZF8zPEVK
XkpCJHJKZEN9ODJiT2l0czlpbk49STgrcnlkNWpxJVM3XnooPFRCSmpiIWAKem07LSppPTVORkx4
fjQtSVo0TlZ8JkVicU5MN05Pd2tNam9EN1V4NyljQzM9flN+fmNXbXB9amJvJVopakZ3JHdMCnot
X1NPRVFHN0JaX3l9THxFWHV5KWN7K2dvLXZRZEhfRj1AfEppam5MMyR2aShRJUJTOXp5MTIkekEk
V2FFJmNpQQp6a3VQaz0mP29vXlV3SUNIJWY4RnwwTUNhYXAxYVJoTjRwU3p4QmIlQypFZk00LW5n
YjtWPTthLUtUWHBaXkxaO1cKelg+QzJybSRuMW47M0wpPFp1NmhtZjFHWDk7a0Q7P0padGxKPVlK
ZFA7O1lkNHk8N2ZySmktNTIhfjQqQFRHb0h0Cno3SlM4LWZ2Tnc/ZzlSQk8jRWd+JHJ1MChzJVI8
Y1EheyFsa2VLbD0hKTR1cmdrM1ZSYHsweTJ7KTFIPEZ8QXFjaQp6Pj5LIzZqaTJpbktaXyVIZS1r
N21tSWotJVpVc3dmbnZvdUF4eUZaaEY9SmV2Tl80YTZ4XylnbV4lLT9DdD1ILU4KekZEV0o1bE5K
UC0+K01SdDJLTH5DdzV7NU9rTHZqT2s9dExKemdzWFQ3UEpiWmcja2loYVpPN0M3UyooJU1YVm9L
Cno3LSZgdWxASShNMT17bWtkMDNBNW0lWlNBX2QpeG5HJUxXT1NVMjB6WSlicD1nWFJ9fVJNKCUm
Pzd2KDtkRWQ0UAp6dn1gV1J0fDI1QSowUUNBQXZWT24pOE97OHIxP1A+RyhYVD5CMElwMEcpJTMq
YF54TiQ1XlpiUHt0cz9HemhDJXcKejZFeSRoX2h+ezZUZ25icD9YVyVBbUc7Pk8lYGY8PGBoU1cy
bS1qRTglZD5JKyVJZXBWPTJhSUczcXlIZFRmMDJYCno1OCp2O08maUp6dzQkczRPVW1TUyVCKjI3
RzBXZUFyVlo9JislYlJvJE5eZHk/bih1YDx+KTchTTBTdHFTT083Ywp6aGo7SSEoSUomK1pVRWIy
ZCQwQHBeSnxzVWB2bzZ5fEg0QCVgIUR3b2Q/cHBvYC1lWlhRdSRvV1M0Yj9aVXp6NkQKemIqQWp2
NHdNeUFvLSU5TihZIXojbiM9N3kqV1okNil2JTxMU0VBYFItWWIrOWUhTz53N1JVUVplSG1RV3l7
U1gjCnpQajJoNzBAa0xSSDtVLSgjMFoqRXZ6KVk+VUJeLVNxNEA8THY0Nm1NRUJta1EtKXlqa1Zo
KyEkP0xzcWtmKSspMgp6KCEkN1Vsd0dlOVchNzx+Y185dW9tdnY/WStSPCQ4PVRUdWtib2I2fT41
Nkg0QjlBQHcjKF5EYXJqTUJzSHVoPm8KektSPnU8R35TQFpQeyk2TXsrWHRZOTg5MG9zel9PRUtS
Y3xsXmE7TFU/eTc2MjtyYGlAPWZHemVMJGY8MShSNDRLCnohX2h2cHE7VmlFaTFNYmFhQ2UkbG0t
YGorSDYxNz14SDZxVGIrVzh4bD1weG0zdWpUZnVPKzRYU2RfcSRXXyg2Owp6YFFtZiQ2O0Y2UFpD
fF5KLVZPSnFkRXImMVB3KSs2MldRNklfSis/ZDx+Iz93VTxfcVdvbEt2NDIrQ15VTUpybEgKeigy
fUl1dj4/YEI9STRkNm8taHh9Uyt8T1F7clJWMntQWkxKWUpqVzl6bzN+bG9vSmZRJF9VZWF0VnpP
YCQwNihiCno+Y0IySnAwRjF4M3p5RUhxandWYFhve3k5IThlUUBvT2BxWGBzWVZIISprdz5ge2Yj
KihQcCR5cU0wR0N3NUMlYwp6dCRaenhtYlFxWDEmeEMjRTRuKChqcTsoKW0+UUpIPjNMRFVHJmZS
NXswJCN2KWMycXtWYnk0TUokRHx2Jk5Rdk0Kenl+ST5NSkFHUXh7TDlodzhzI1pIKDFCKzFfP1hY
bjdiZSFgPWpwb3FZI21PXlQxQz9HSHFvQFFlTFN0eyh1fiU7CnooU2x9MmBWZjRBWmB7czV1Jitr
WEAyZFlzZWVraDYtXldAOyhmU14oWD8yJW1USmMmdUVxYkxzS1hackJ5eXpOfgp6NSRRe0Y+VS0w
eXk0N2Ujb2htZT1SJUo+THUxTTJeVHFMRmlhdmNKPTQ+V0xJRCszPytBcVJRcmZ4Z1VgMEk3ZEwK
elFlOWZzSSkrd3RZRCRaZSF3SjNed0VjWWN6cl57OFNfZXorZ0NrZzlyP3BGPlM+WmFgR15pX1c5
TUdCOF9rTjk1CnpjV1gmWStzNHlePE9zQFlRaXRYPjNaeyZQMFdgYVRBSSstb0xvQDRuKFR1dkRs
cGIxKigoNj19bXxvam1wOVVTfQp6LX4mSjhBUCtzekhAfDUoRXEqbklSKDVKOD9RUTdPTEdyPkVf
PUt+Ml84cDxiYElYaU97NENSRyRkRG07bVZCMWgKeklFKXMoK0s2XyheQT5GIylzSHB9PX16bldi
KXdhOHd4TU8qcDlAPlk1ZFdUI0c4NXwyK18+NzU1Z1M1dHFKd0M1CnohJDZ1SDYrcDhoWXZfU0k9
cUx2dF8jcEBSMTxmMU1sRDNVJFd0U0dUdTFgbTQybGZgV2gkaUBlSDN3JkVjPmxuQAp6PmxrKG57
bi1fSyo4PFptY3I4bERUJVB5b1dKO14rT0tiYlFQSjJJb2s4KGEzUDF7cjZxQWVyKSk1Zj1ZKHo/
RSMKelgrX3NwWC1TNz53NGhaUyYySkd5Uzs8azkqfFkmPUNQbVBeI1FKKDU0PzQ9aDJtWnpGNUB+
cy03UFB1JmQtYGx9CnpjY35acFZQe3FNYn5HdX1odXtPfEVic1NzdjJWe2t6Y3JgPiM/a3RlbCQx
WmB2aSNLTytPJTw0VXBtQytxNUcjeQp6cGdrWHRxbnk7U3dFZik/d0JfeD12fXQlaFQwZntldD91
MjRSPW5BY21VWkRlejIxVHJ3QDs9O3VRaWtMO3RzRlMKeihvUVhEZEFCeVNzeihQfStySnhhOU5J
XzlMbDUqcEZaNkYxKHZ6ayh0Vk9WbV5JTj1zVkJmTGN7Tj8jTT5jRCpSCnp7UlAkfEswa2l+Siln
I2UocXwrMykwZDAwPXQlWiNJLURfYDR5TEVrS0dmJXY0PTg4Q3lSPjhjN31gRT02bTVOSAp6SUJp
V0NNcTk9WHI3ZEgpemNAeDdiZC1ZK3tFJmtAXmd0aTxaczBtaWlMTjdrJEpzcnZIeEptS213SkRw
KjE/P1gKej9TbmRLe1Y9JmpWX01PeEdrdil2bituen1yfkt1TVdjdFgweCU3R0ZFSUtyMklfMXVx
TihhJj5HdHl9UF5odmFUCnorOXh0YjkoMHQwNUIhaldGNmNwZVNAKHtWKjFXTzQtRlkwfSEjZm9B
fEUxbV44SF4peW1iSm9JIWhGRC17LV8xNwp6IXxAR2grWHBGaEEhaj9DK3AmZXRaMjYyJVpDcG51
KlJTUyF0KVN6cG1RbnRTQl8ja2wlRTFTSSRlcjgxbllPPDcKekhjZ0w8QW4zK2kjZHlkMjJleXN6
anhxRG5AOXp4aUFtNSoyUEdlb2RJK2loSUdDeWxeSnJaTVIoPnRULSNRSFVLCno8IX4tdEs2SFRa
c2U5P3R6VEZaUl92VmxXamZRZ1k3NFk2KlFfM2h4UGwlU2ZwY0FeVyZUemw0V31rSG95bGNWdgp6
PTNsPF4oKT13ZVcqcnQtVGUmWmVwZjdNUWd3NjQ8Qis8Q3F5akNfKHEmMzNeKGNiaD09e1dtI1k1
IWlqIz9NeSgKeigpbnZ2KCUkSilCb0JCWTE2aztSRjRsP25eaz96QGZvPVVgQDI/SCghK0o1RUVV
e09AeWcpcyQ9ZmsqNGU+YTZiCno+ZkRpMUJFdXkzSHwqNWtNbzF2NyhaS149ajEkUGhafD5WJElK
Oy12fEYhUTJOfndueD5jT0BAIWBAcX4zJnNGfAp6SXZJUkZwI1FFd15CTCFASTVXbiVIfmEwenom
WSZTOV9OUHN5PWE+NCReUEtqMkcybFRwVj9mV08mbzlHezwpNU4KejBofSZrKzc4QXhvS0BueW0x
Vkd8ei1KbzwjKDFncygtLWp0ZXxTUnZvYGdUeGx6JCYzU0xsQ3RxV15tYDxKSTVnCnojSHFpXztx
UXg+VUg7QlJpd2x2Kl9lek5RNFd8flRCRns1V2k7P35SSWkkaWwxQWxYb0g+Z2hgQD8xfT8tZFpl
dwp6JEhWTytmNSplXkI+eGheYz5lZWBtRExmKXhvVyR6Zk5XPkEtSG1eQHFoc2FWUiElYmRfd3FN
ZFZCKkF5ayZKMUsKemImTWhnc1ghVnVsdHVteCl6MX1Tb2cpfVVeSGNpTSkqO08pemVmbGF3c1dL
aHQ7ezVsMjVzeCRSfHFgZGgwSnI2Cnp6Q2E9Qz1tMV5XV0JiIyQ/VlJYdFM5YGlRKm9FJUQ9VDco
MmVDV1lVZX5KNShlZCskVnMmc0ZOMypDTGdwMXk3Qwp6TlJVemU9PG91ak8wZEJIXmJmfCs+NWc3
PnlJVlFCJikqWj1wVTI8aUBWNXtUbWVnVT9SJH43NEwjRnc9M3pVSGUKenlwVnh4YHVsSWdrQyRv
LT0za2ROYl52fGQoVXRDZ3FAI1FNNFp9VkQ3VW9fP2tQYEZ2OVFPZF5ISmFxJUAwXmdJCnp0Pz1J
WSZ7T0p3RjZiOyMkeDthTEhGSGRWeTU4UUZadTlwNmNSdWw8Sk4jWFJqRkMxNCVKfTtQSilQNkhg
OHg8TAp6ZX5aNmBmRys2I3Q5SWI+NCU0fktGTDFxWV43alpnYENBQm0lLT5TVEc9QyM7NkJyQUMj
eGNxP1huQi1yZHxVPmQKeiY8emA8UjlsamB0bXRxRDlsdEJETDxpcmZ0Vml5Zk5MUWt4LTdDXm57
PVZWYkt2eWFwUjhpdVolPTcjN0s5eSpICnp4NV8xT3FQSDdLOXt4N3JOQyQ3JkZEbEpHKD9gcjVH
a2A5NDxuST15XnJRIyg/JFFyR3s5dUZ8ZzshfSZIfnd+YAp6MyV9Iyk9QlVTfHVGa1oxX0p7UTco
SVg/PXtqUHtrNTNhNTdAJSFAMnVVOD0wZkd0eFc7OCVWTjdyTW1uJDFnSXoKek5sQm56P2k3X2Mz
JldaMnFFVEhienFKRWg8b0Q+e1VEQm1LO2F0bHc7TFAjY3NYYi02KVhCVnZWWipjeUkzR0ZaCno/
RSFSXy16bEdjI2E1M0NVQSpieGkzMjZoKTFaNlRrX182QjxVfjd+SUA2Ny1SfTQpe3tfQ0kzRFdP
bTVXKmV7dAp6bl8zJWlkZko5SlYoNFRPRD58OEFaRz0tej9ka2Y7RGYpOXNMcW5ITjlqRTxrNzgj
T2NgcCRfJWJoMjNtTVBEZzgKelZHQX01PzYyRn16N2AjOFdKJm85I0smVVFTan1IfXc+PkBuUUYt
VEQha19gKyQyJkt2OzVGWjNKKnZFM0ZYdiY0Cno/ZCNWQVA4U19hYUhTKkJtSWA3SlRje3tiQU1h
ZH45KTVNSU0xTkBKcFlxeDY7b2RPQHZZSE4jXipaPyowPTVPNAp6MktBQElrcnMzfiUySjd1RSgz
QDdKQ355P3Zvdz1OQHVQP0xZMGZKbGJUSU8tXnt7PjN4aE1oWWdBckNRZ3RkezUKemJPQz56dCZI
JmFAbmYxaHVvRz5NdXF7PHpaVWJ2Y0g/ZCF8RTdxMHZNY0J+M2BxczJ4amdkQ1F3Z2BMTHdLVGhn
CnpXeX1ZfGZjJWFublkxanpOaVEjVExONWNoT3hsMGxuJTFHVHItN1hjZHhKRCtZP3Jacz1aJmVZ
TjQmLXlwRD5YQQp6YDFMPUFGMzl4UFhIVV9MTW4wNWRxOEdOPHpUeDxyd3huWXQlNHo2R3lQX1A1
NW18d0RGP0tTaF5MZz1+SmlaSkEKei1YJEMhKmgyQ2c/JXMlZ3lqZl5pRVltOyNeYjx8Kis+RXdG
c2smSmdZX1dhQWA0PjV6Jnd6SHV4Tl9UNkd5LVRkCno2TjJieEsxVmtVWG9vWXxsWjwleHcrVyM7
cjtlNnJCWVpRbD5lQzZkQkJseXxnVHdiQncjRH1LPmttZERgZVN7eAp6OHw1VkZYamM8WUJ+SjlG
WkI2fj9pLWp8Jj0paExHZDJwTT1qUlZ7MEBgZ299KTZgZTtmP3ZiIzxtejtKVHtoaTAKem1hRjAq
I3xQPXc3eURfPyUhI3hqKjJBZHApaFBoYEJjPWBTUHJGe0pMQXpmS3Exfi0oKFZvX3xXZzc5ekxY
JFU/CnorbS1CM3VtTXx8VUJlaHt1KU1LOT9ke1olQDF0PmE7TFhQUl8oMW4yXm0wZyRAPjBoZUB3
QiVpcFp+TE4qZjZ3ZAp6bkM3dyRZNDQ3cSklPFNsXldtTjdATExffCgyKHxZY3hjQyQjXiluQ09C
cFNPUFV3YVdMenx7KUUqfip2U2J0Z0AKej19dmlYX25gYTwheFZmdGw9NUUhJDB2QEV7Nnx1SE9J
Xj9qLUtPP1IlUU40KURNUzB5a3w7MEFPWCo4ej02Pj8+CnptQHw9JWoya0YqS29Aa0RXfihlM2U0
WF5wN0BGSV9vN09icUlXUz1hb3RRcUomU3ApYV5OVk5sSClFT2YpdjljWAp6T1JLV3o7PDV9YDF8
SU9QWH5nZjhTUWF7N3dCRHdedSQrQVVOTXJ4ISled3Aye0VsaktgJG57SFNVMzcmOyVHWWwKej5I
R1loJklrMHhOMjYlcCZ+Q0sod0hXNW4oY0VBY2YoKjshSXExM2xaRUNaJEpwNn5RdzZfTSgpUSZB
RW8hP1ErCno0c3hYb0ZHfnJlS3w+ak1SSiQrSypRTURqaV5oOFlFNjw8JGJ1fH0lUj5jQ3hIcVpV
ZEY4angpN0pyUllLRnQ3Zgp6JWxQZHNZfmZGZzgyQGZwQ2xITGtxTCFvKm1wUT9YOSpoeDtiJk1o
dk5RMzU0TGNvQmFeM1pgVTkmfjxgQUtqWjsKelF2end3eEV2Xzg1MUdEaGIkbXMtS0F4WlJybSRR
b0twQSt6WWhZR0Q9UEpJKDZ9YHtqKn1uazV0TkZwUCQ4N2QxCnp1ZVQ1WD91WWw3ajA/bTM9KnIw
STV8QFRvcigqK3NCfkE9aD07eFYtPHA5fU0rbXJiX2AwU0ROcFB3R2RaeVpoQAp6Kyh8aC0we0ZY
ZVU7NkJXOStITXtBSXtDfUN1eUtWaFVLUiopKldvP052Q2BJKHokVWg+RFBOVjxqfWR0ZHlvfCkK
emN6XnVzRkVVQFdZcThgMzl7P0gxR0sjKUAtR0AkZV5PR3AoNkg1MF85eUdkTmV8UCFfOWU9Wmlv
KEheO1ZPZ04pCnpOUWRmXy1ecEsoQmMxdjg3MmtaTkFIdF4oPUl9YURRKHEyViRmKXdgX098cm52
TEswTDlEbng3NyVCVmI8S082cQp6dEN3V0B7O2l2fHRaTzRaQTdvZndqO2w9eEk/Q0BIRHpVdE9K
THg8MkF7Vm5ocUdOQTFwZ1VqZWt1PmEkUj0rY2wKekA/Tmgpa1lSYldBTnFqNDxtYXtIWiR7RGEp
YyRtTyhvaX16YVdJfFdKVyVqdkxwdF5HNUlYYmVDXnxEYDZ6JVdMCno/QHJZSSEjTHZmaH4qN0U9
blFgJmA2Mik+V0s3MjN5NS1TY2JhTFA7YlolNjh7K187VjM3YHgtRU5lNz1IOWdTRAp6cGx4bCE9
PHtBbGJtOHF6NT1ldUZHVm9+cHJOdnpTUXVGcl98THZuZmdXcyl8cnFocz8lNGU7KXlpITMxdml9
RWsKQ3VDWG92CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS92czIwMTIvbGl0
ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4
cHJvagppbmRleCBiMTMzNTc2Li45NjdhM2ExIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50
L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2oKQEAgLTE5MywxMSArMTkzLDEzIEBACiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgPC9JdGVtR3JvdXA+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExpdGVBZ2VudC5jcHAiIC8+CisJ
PC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gIDwvSXRlbUdyb3VwPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuaCIgLz4KKwk8L0l0ZW1H
cm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3Jj
XHdpbjMyc3R1YmFnZW50XG1lc3NhZ2VzLm1jIj4KKyAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0i
Li5cLi5cc3JjXGxpdGVhZ2VudFxtZXNzYWdlcy5tYyI+CiAgICAgICA8RmlsZVR5cGU+RG9jdW1l
bnQ8L0ZpbGVUeXBlPgogICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgog
ICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4KQEAgLTIxMCwxMCArMjEyLDEw
IEBACiAgICAgPC9DdXN0b21CdWlsZD4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0g
ICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMy
eGFnZW50LnJjIiAvPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxp
dGVhZ2VudFxsaXRlYWdlbnQucmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgot
ICAgIDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRceGVuLmljbyIgLz4K
KyAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFx4ZW4uaWNvIiAvPgogICA8
L0l0ZW1Hcm91cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRz
Ij4KZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2ogYi92czIw
MTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCmluZGV4IGE4ZjU5YTMuLmMxYjVjNWQgMTAw
NjQ0Ci0tLSBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEz
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagpAQCAtMTk3LDExICsxOTcsMTMgQEAKICAgICA8
L0N1c3RvbUJ1aWxkU3RlcD4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3Vw
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQu
Y3BwIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcTGl0ZUFnZW50LmgiIC8+CiAgIDwvSXRlbUdyb3Vw
PgogICA8SXRlbUdyb3VwPgotICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcd2lu
MzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwu
LlxzcmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1jIj4KICAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwv
RmlsZVR5cGU+CiAgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+CiAgICAg
ICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgpAQCAtMjE0LDEwICsyMTYsMTAgQEAK
ICAgICA8L0N1c3RvbUJ1aWxkPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8
UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx3MzJ4YWdl
bnQucmMiIC8+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFn
ZW50XGxpdGVhZ2VudC5yYyIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gICAg
PEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPgorICAg
IDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XHhlbi5pY28iIC8+CiAgIDwvSXRl
bUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgot
LSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD2-0000s8-BE; Tue, 24 May 2016 14:21:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD0-0000p3-Es
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:22 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
 98/8A-26457-16364475; Tue, 24 May 2016 14:21:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHRDpG5Csku
 4wdzL1hZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/jH+0wFr54xVrzYO4OlgfHmOcYuRk4OCQF/
 iaf3HzKD2GwCGhIzOhezgNgiAuoS+z5vZQKxmQXUJK7v72IFsYUFjCTaDy0AqufgYBFQlbi7t
 xIkzCvgKrFs5mKokRoSmxpmsIHYnAJuEu8+3AcbKQRU83nTd0YIW0ni2+IXzBC9ghInZz5hgV
 glIXHwxQuw8RIC3BJ/u+0nMPLNQlI1C0nVAkamVYwaxalFZalFuoaGeklFmekZJbmJmTlAnol
 ebmpxcWJ6ak5iUrFecn7uJkZgSDEAwQ7GMyucDzFKcjApifJyJrqEC/El5adUZiQWZ8QXleak
 Fh9ilOHgUJLgvQuSEyxKTU+tSMvMAQY3TFqCg0dJhPcPSJq3uCAxtzgzHSJ1ilFRSpxXMAkoI
 QCSyCjNg2uDRdQlRlkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfPygkzhycwrgZv+CmgxE9Bi/y
 /OIItLEhFSUg2MG9+ZHZdwdZRaJtCrc+foQUef46fk0z9fjq4/0/3U8bDfnC0OZ5MVQ1NTSor
 l/T/wT9Ipm+37LNp4dmvm9reuC/I9DoufPHR6Xcj209NTFKpqvLlZqny7xVw7PGTO8nmGFp4I
 Wq8Y8WLf7hyjnb2Z30q3rH/6T67W5MC76YJKk83a9UzUPT8osRRnJBpqMRcVJwIA+eg8maMCA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!5
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64612 invoked from network); 24 May 2016 14:21:20 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:20 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289466"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:45 +0100
Message-ID: <1464099660-12432-6-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 05/20] Add base do-nothing service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgICAgICAgfCAyMDkgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgICAgICAgICB8
ICA3MyArKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L2xpdGVhZ2VudC5yYyAgICAgICAgIHwg
IDYwICsrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jICAgICAgICAgIHwgIDY2
ICsrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC94ZW4uaWNvICAgICAgICAgICAgICB8IEJpbiAw
IC0+IDI1MjE0IGJ5dGVzCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgIDEy
ICsrLQogdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgOCArLQogNyBmaWxl
cyBjaGFuZ2VkLCA0MjAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2Vu
dC9saXRlYWdlbnQucmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L21lc3NhZ2Vz
Lm1jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC94ZW4uaWNvCgpkaWZmIC0tZ2l0
IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MjBlOWIKLS0tIC9kZXYv
bnVsbAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKQEAgLTAsMCArMSwyMDkgQEAK
Ky8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAq
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIElOSVRHVUlECisjaW5jbHVkZSA8
d2luZG93cy5oPgorCisjaW5jbHVkZSAiTGl0ZUFnZW50LmgiCisKK2ludCBfX3N0ZGNhbGwgV2lu
TWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFOQ0UgaWdub3JlLCBMUFNUUiBscENtZExp
bmUsIGludCBuQ21kU2hvdykKK3sKKyAgICBpZiAoc3RybGVuKGxwQ21kTGluZSkgIT0gMCkgewor
ICAgICAgICBpZiAoIXN0cmNtcChscENtZExpbmUsICItaSIpIHx8ICFzdHJjbXAobHBDbWRMaW5l
LCAiXCItaVwiIikpCisgICAgICAgICAgICByZXR1cm4gQ0xpdGVBZ2VudDo6U2VydmljZUluc3Rh
bGwoKTsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBDbWRMaW5lLCAiLXUiKSB8fCAhc3RyY21wKGxw
Q21kTGluZSwgIlwiLXVcIiIpKQorICAgICAgICAgICAgcmV0dXJuIENMaXRlQWdlbnQ6OlNlcnZp
Y2VVbmluc3RhbGwoKTsKKyAgICB9CisgICAgcmV0dXJuIENMaXRlQWdlbnQ6OlNlcnZpY2VFbnRy
eSgpOworfQorCitzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CisKKy8qc3RhdGljKi8gdm9p
ZCBDTGl0ZUFnZW50OjpMb2coY29uc3QgY2hhciogZm10LCAuLi4pCit7Cit9CisKKy8qc3RhdGlj
Ki8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkKK3sKKyAgICByZXR1cm4gLTE7Cit9
CisKKy8qc3RhdGljKi8gaW50IENMaXRlQWdlbnQ6OlNlcnZpY2VVbmluc3RhbGwoKQoreworICAg
IFNDX0hBTkRMRSAgIHN2YywgbWdyOworICAgIAorICAgIG1nciA9IE9wZW5TQ01hbmFnZXIoTlVM
TCwgTlVMTCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKyAgICBpZiAobWdyID09IE5VTEwpCisg
ICAgICAgIHJldHVybiAtMTsKKworICAgIHN2YyA9IE9wZW5TZXJ2aWNlKG1nciwgU1ZDX05BTUUs
IFNFUlZJQ0VfQUxMX0FDQ0VTUyk7CisgICAgaWYgKHN2YyA9PSBOVUxMKSB7CisgICAgICAgIENs
b3NlU2VydmljZUhhbmRsZShtZ3IpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAg
Ly8gdHJ5IHRvIHN0b3AgdGhlIHNlcnZpY2UKKyAgICBpZiAoQ29udHJvbFNlcnZpY2Uoc3ZjLCBT
RVJWSUNFX0NPTlRST0xfU1RPUCwgJnNfc2VydmljZS5tX3N0YXR1cykpCisgICAgeworICAgICAg
ICBTbGVlcCggMTAwMCApOworCisgICAgICAgIHdoaWxlIChRdWVyeVNlcnZpY2VTdGF0dXMoc3Zj
LCAmc19zZXJ2aWNlLm1fc3RhdHVzKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHNfc2Vy
dmljZS5tX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAhPSBTRVJWSUNFX1NUT1BfUEVORElORykKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFNsZWVwKDEwMDApOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gbm93IHJlbW92ZSB0aGUgc2VydmljZQorICAgIERlbGV0ZVNlcnZp
Y2Uoc3ZjKTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3ZjKTsKKyAgICBDbG9zZVNlcnZpY2VI
YW5kbGUobWdyKTsKK30KKworLypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZUVudHJ5
KCkKK3sKKyAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJsZVsyXSA9IAorICAgIHsK
KyAgICAgICAgeyBTVkNfTkFNRSwgKExQU0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWlu
IH0sCisgICAgICAgIHsgTlVMTCwgTlVMTCB9CisgICAgfTsKKworICAgIGlmICghU3RhcnRTZXJ2
aWNlQ3RybERpc3BhdGNoZXIoU2VydmljZVRhYmxlKSkgeworICAgICAgICBDTGl0ZUFnZW50OjpM
b2coIkZhaWxlZCB0byBzdGFydCBkaXNwYXRjaGVyXG4iKTsKKyAgICAgICAgcmV0dXJuIEdldExh
c3RFcnJvcigpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworLypzdGF0aWMqLyB2b2lkIFdJ
TkFQSSBDTGl0ZUFnZW50OjpTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgc19zZXJ2aWNlLl9fU2VydmljZU1haW4oYXJnYywgYXJndik7Cit9CisKKy8qc3RhdGljKi8g
RFdPUkQgV0lOQVBJIENMaXRlQWdlbnQ6OlNlcnZpY2VDb250cm9sSGFuZGxlckV4KERXT1JEIHJl
cSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwgTFBWT0lEIGN0eHQpCit7CisgICAgcmV0dXJuIHNf
c2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsK
K30KKworQ0xpdGVBZ2VudDo6Q0xpdGVBZ2VudCgpIDogbV9oYW5kbGUoTlVMTCkKK3sKKyAgICBt
X3N0YXR1cy5kd1NlcnZpY2VUeXBlICAgICAgICA9IFNFUlZJQ0VfV0lOMzI7IAorICAgIG1fc3Rh
dHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAKKyAgICBt
X3N0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgICA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJW
SUNFX0FDQ0VQVF9TSFVURE9XTjsKKyAgICBtX3N0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9
IDA7IAorICAgIG1fc3RhdHVzLmR3U2VydmljZVNwZWNpZmljRXhpdENvZGUgPSAwOyAKKyAgICBt
X3N0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7IAorICAgIG1fc3RhdHVzLmR3V2FpdEhp
bnQgICAgICAgICAgID0gMDsKKworICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwg
TlVMTCwgTlVMTCwgRkFMU0UpOworfQorCitDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCit7Cisg
ICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TZXJ2
aWNlU3RhcnQoKQoreworICAgIENMaXRlQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQoKVxuIik7
Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TZXJ2aWNlU3RvcCgpCit7CisgICAgQ0xpdGVBZ2Vu
dDo6TG9nKCJPblNlcnZpY2VTdG9wKClcbiIpOworfQorCit2b2lkIENMaXRlQWdlbnQ6Ok9uRGV2
aWNlRXZlbnQoRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSkKK3sKKyAgICBDTGl0ZUFnZW50OjpMb2co
Ik9uRGV2aWNlRXZlbnQoKVxuIik7Cit9CisKK2Jvb2wgQ0xpdGVBZ2VudDo6U2VydmljZU1haW5M
b29wKCkKK3sKKyAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6U2V0U2VydmljZVN0YXR1
cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0gMCovLCBEV09SRCBoaW50IC8qPSAwKi8pCit7
CisgICAgbV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgPSBzdGF0ZTsKKyAgICBtX3N0YXR1cy5kd1dp
bjMyRXhpdENvZGUgPSBleGl0OworICAgIG1fc3RhdHVzLmR3V2FpdEhpbnQgPSBoaW50OworICAg
IDo6U2V0U2VydmljZVN0YXR1cyhtX2hhbmRsZSwgJm1fc3RhdHVzKTsKK30KKwordm9pZCBXSU5B
UEkgQ0xpdGVBZ2VudDo6X19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgbV9oYW5kbGUgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlckV4KFNWQ19OQU1FLCBTZXJ2
aWNlQ29udHJvbEhhbmRsZXJFeCwgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IE5VTEwpCisg
ICAgICAgIHJldHVybjsKKworICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsK
KyAgICBPblNlcnZpY2VTdGFydCgpOworICAgIHdoaWxlIChTZXJ2aWNlTWFpbkxvb3AoKSkgOwor
ICAgIE9uU2VydmljZVN0b3AoKTsKKyAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUFBF
RCk7Cit9CisKK0RXT1JEIFdJTkFQSSBDTGl0ZUFnZW50OjpfX1NlcnZpY2VDb250cm9sSGFuZGxl
ckV4KERXT1JEIHJlcSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwgTFBWT0lEIGN0eHQpCit7Cisg
ICAgc3dpdGNoIChyZXEpIAorICAgIHsgCisgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDog
CisgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiU0VSVklDRV9DT05UUk9MX1NUT1BcbiIpOworICAg
ICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsKKyAgICAgICAgU2V0
RXZlbnQobV9zdmNfc3RvcCk7CisgICAgICAgIHJldHVybiBOT19FUlJPUjsKKyAKKyAgICBjYXNl
IFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjogCisgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiU0VS
VklDRV9DT05UUk9MX1NIVVRET1dOXG4iKTsKKyAgICAgICAgU2V0U2VydmljZVN0YXR1cyhTRVJW
SUNFX1NUT1BfUEVORElORyk7CisgICAgICAgIFNldEV2ZW50KG1fc3ZjX3N0b3ApOworICAgICAg
ICByZXR1cm4gTk9fRVJST1I7CisKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9ERVZJQ0VFVkVO
VDoKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTRVJWSUNFX0NPTlRST0xfREVWSUNFRVZFTlRc
biIpOworICAgICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CisgICAgICAg
IE9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRhKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisg
ICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfSU5URVJST0dBVEU6CisgICAgICAgIFNldFNlcnZpY2VT
dGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfSAKKworICAgIFNldFNlcnZpY2VTdGF0dXMo
U0VSVklDRV9SVU5OSU5HKTsKKyAgICByZXR1cm4gRVJST1JfQ0FMTF9OT1RfSU1QTEVNRU5URUQ7
Cit9CmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjE5MmVm
Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaApAQCAtMCwwICsx
LDczIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3JtcywgCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1l
dDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCisgKiAg
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAq
ICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgCisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCAKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAorICogQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKKyAqIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAK
KyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIAorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBfTElURUFHRU5UX0hf
CisjZGVmaW5lIF9MSVRFQUdFTlRfSF8KKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2RlZmlu
ZSBTVkNfTkFNRSAieGVuc3ZjIgorI2RlZmluZSBTVkNfRElTUExBWU5BTUUgUFJPRFVDVF9OQU1F
X1NUUiAjIyAiSW50ZXJmYWNlIFNlcnZpY2UiCisjZGVmaW5lIFNWQ19ERVNDICJNb25pdG9ycyBh
bmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhlblN0b3JlIgorCitjbGFzcyBDTGl0ZUFn
ZW50Cit7CitwdWJsaWM6IC8vIHN0YXRpY3MKKyAgICBzdGF0aWMgdm9pZCBMb2coY29uc3QgY2hh
ciogZm10LCAuLi4pOworCisgICAgc3RhdGljIGludCBTZXJ2aWNlSW5zdGFsbCgpOworICAgIHN0
YXRpYyBpbnQgU2VydmljZVVuaW5zdGFsbCgpOworICAgIHN0YXRpYyBpbnQgU2VydmljZUVudHJ5
KCk7CisKKyAgICBzdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KTsKKyAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlckV4
KERXT1JELCBEV09SRCwgTFBWT0lELCBMUFZPSUQpOworCitwdWJsaWM6IC8vIGN0b3IvZHRvcgor
ICAgIENMaXRlQWdlbnQoKTsKKyAgICB+Q0xpdGVBZ2VudCgpOworCitwcml2YXRlOiAvLyBzZXJ2
aWNlIGV2ZW50cworICAgIHZvaWQgT25TZXJ2aWNlU3RhcnQoKTsKKyAgICB2b2lkIE9uU2Vydmlj
ZVN0b3AoKTsKKyAgICB2b2lkIE9uRGV2aWNlRXZlbnQoRFdPUkQsIExQVk9JRCk7CisgICAgYm9v
bCBTZXJ2aWNlTWFpbkxvb3AoKTsKKworcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0CisgICAg
dm9pZCBTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0ID0gMCwgRFdPUkQg
aGludCA9IDApOworICAgIHZvaWQgV0lOQVBJIF9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KTsKKyAgICBEV09SRCBXSU5BUEkgX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09S
RCwgRFdPUkQsIExQVk9JRCwgTFBWT0lEKTsKKworICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAg
IG1fc3RhdHVzOworICAgIFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOworICAgIEhB
TkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7Cit9OworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL3NyYy9saXRlYWdlbnQvbGl0ZWFnZW50LnJjIGIvc3JjL2xpdGVhZ2VudC9saXRlYWdlbnQu
cmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlNWNjNwotLS0gL2Rldi9u
dWxsCisrKyBiL3NyYy9saXRlYWdlbnQvbGl0ZWFnZW50LnJjCkBAIC0wLDAgKzEsNjAgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVk
ZSA8bnR2ZXJwLmg+CisKKyN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCisjdW5kZWYgVkVSX1BS
T0RVQ1ROQU1FX1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgorI3VuZGVmIFZFUl9QUk9E
VUNUVkVSU0lPTl9TVFIKKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2RlZmluZSBWRVJfQ09N
UEFOWU5BTUVfU1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCisjZGVmaW5lIFZFUl9MRUdBTENP
UFlSSUdIVF9TVFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuIgorCisj
ZGVmaW5lIFZFUl9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0UiCisjZGVmaW5lIFZF
Ul9QUk9EVUNUVkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9SX1ZFUlNJT04sTUlD
Uk9fVkVSU0lPTixCVUlMRF9OVU1CRVIKKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUiAg
ICAgIE1BSk9SX1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVS
U0lPTl9TVFIgIi4iIEJVSUxEX05VTUJFUl9TVFIKKworI2RlZmluZSBWRVJfSU5URVJOQUxOQU1F
X1NUUiAJICAgICJ3MzJ4YWdlbnQuZXhlIgorI2RlZmluZSBWRVJfRklMRVZFUlNJT05fU1RSIAkg
ICAgIjEuMCIKKyNkZWZpbmUgVkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJ3MzJhZ2VudCIK
KyNkZWZpbmUgVkVSX09SSUdJTkFMRklMRU5BTUVfU1RSICAgICJ3MzJ4YWdlbnQuZXhlIgorI2Rl
ZmluZSBWRVJfRklMRVRZUEUgVkZUX0FQUAorI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMAorCit4
ZW5faWNvbiBJQ09OICJ4ZW4uaWNvIgorCisjaW5jbHVkZSAiY29tbW9uLnZlciIKKyNpbmNsdWRl
ICJtZXNzYWdlcy5yYyIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z
cmMvbGl0ZWFnZW50L21lc3NhZ2VzLm1jIGIvc3JjL2xpdGVhZ2VudC9tZXNzYWdlcy5tYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjg5YzQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL2xpdGVhZ2VudC9tZXNzYWdlcy5tYwpAQCAtMCwwICsxLDY2IEBACitTZXZlcml0eU5h
bWVzPShJbmZvcm1hdGlvbmFsPTB4MSkKK0ZhY2lsaXR5TmFtZXM9KFhlblVzZXI9MHhkNjApCisK
K01lc3NhZ2VJZD0weDAwMDEKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1BPV0VST0ZGCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24u
CisuCisKK01lc3NhZ2VJZD0weDAwMDIKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVAorTGFuZ3VhZ2U9RW5n
bGlzaAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuCisuCisK
K01lc3NhZ2VJZD0weDAwMDMKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVSTkFURQorTGFuZ3VhZ2U9RW5nbGlz
aAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBoaWJlcm5hdGUgaXRzZWxm
LgorLgorCitNZXNzYWdlSWQ9MHgwMDA0CitGYWNpbGl0eT1YZW5Vc2VyCitTZXZlcml0eT1JbmZv
cm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TMworTGFuZ3VhZ2U9RW5nbGlz
aAorVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0
ZSBTMy4KKy4KKworTWVzc2FnZUlkPTB4MDAwNQorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9
SW5mb3JtYXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01JCitMYW5ndWFnZT1F
bmdsaXNoCitUaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNhbWUgbm9uLWZ1bmN0aW9uYWwu
CisuCisKK01lc3NhZ2VJZD0weDAwMDYKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1NUQVJURUQKK0xhbmd1YWdlPUVu
Z2xpc2gKK1RoZSB0b29scyBpbml0aWF0ZWQuCisuCisKK01lc3NhZ2VJZD0weDAwMDcKK0ZhY2ls
aXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9ybWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9Y
RU5VU0VSX1VOU1VTUEVOREVECitMYW5ndWFnZT1FbmdsaXNoCitUaGUgdG9vbHMgcmV0dXJuZWQg
ZnJvbSBzdXNwZW5kLgorLgorCitNZXNzYWdlSWQ9MHgwMDA4CitGYWNpbGl0eT1YZW5Vc2VyCitT
ZXZlcml0eT1JbmZvcm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9VTkVYUEVD
VEVECitMYW5ndWFnZT1FbmdsaXNoCitUaGUgdG9vbHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3Rl
ZCBlcnJvci4KKy4KZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQveGVuLmljbyBiL3NyYy9saXRl
YWdlbnQveGVuLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDRjOTkzYmEyOTBlNTA1NWE4OTAwY2E4Nzg2ZWEw
ZTAzMTEzOGE2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNTIxNAp6Y21lSHYzMHpnaGB9ZVJm
RHl4YnAlTFBQMFAqRCY7S3V8ISpDNzBDUCU2JktZbCoqRks1PjNTbzE+RTtGX1hUJH0KenZfI3l1
KG8jZm94MiU0Wm1ITkVUY2d7Sk5kb04oeHJ7RFgmfElmZUNAMHBvcm9eOTRNWFVAM0BWSjdURVhz
OHAlCnptU1RYbDVPYWtQSS1RY2dWPWx4cXJhM3QmYDlMIXZacktVdTd0QylmKTtJe15QITlaUi1k
MmQ2PyUtR1ExRlZGMgp6KF51b3lpOGNPMDkxWU87SW5SN1VUV1Mwe0Z+Q3hZJTVNcjAkVWQrTShT
cmZNNUtAJiRyajBNRFQqI0V2UjMram8KekNtRT9DSCNlNkhOZDZaQE5ITz55TlZ4b0V1byprSDZy
UW5UUV98QUxqdmExWFdIVUFgWkRMfCNUR31MSW5VdTd8CnojRmhtR2lIWFQraDd2WHQ2QVA0KG1w
R3xkbFRDXzdFLTEpTEY0bU1YayMlU3hQcGA/d2tqekZqTyRKJlpsJFdmUwp6SGV1SGIqaTYoXnQ4
dCM5RDVhJGR5K0E0fHArOzN5TEplRG5xTGh9V3hWPnBBbCU9WilDfVE9WEtWfnUqNVdAaH0Kelhh
YWdWRTBYRn0wWXA+NXVoRkhac2UxTmV4K0pBKj84UzVgcGpRTEJUM1pOa2tsc2ojdntxMEdxKld1
anRkcnRSCnpEZkUoaDZuOyUwZEFRYldVI2Y8czElMTdnQ2V3UlZPcWNBXkNrUGJOUVAoRiohKllR
c1Q/KCpJT2pqeF8pdnk5cAp6bGlEd2UpaEEzPnk5amo2UUJjKFlIQjRgKjwrVjZiNGpgQE5HXipA
Z0ROc3oyRFhGRnVNVCMyc3cwS3M0VW1NUysKem1Oai0zRm0kUFN6S0Y4czdpLWM/N3xsbzRSUW1p
Q1d6QmFYTj8jdV4kQm93JHJNc35mSiZzZT5Cdzs0dyQzbnptCnpqZH49Nkh7d0RlOTEqN3FWUyQp
Nm5lcFdyJEgrV0VKWUVQRVc1TUU+I2FWJDZnQF8lQzw2UHV6Z3dXenQ8U2xzMwp6e0VIYUh5ZFcj
I0lkTGpEVU8tPGlfemU2Z01CY3pwJjQxSCtZNHozVyZyS2xQTCpHOEVOVmI+T2VwLTh5K1AtUmcK
ejwzNktmIzUxKH1qTnA0LT1ePDVWQWlsM35pb3lSdDs+K0s9JmxyeWQ4fDl3RG53NX5FKylJWTUq
fDhIN1RqQ3h2CnpOZz4jemFTa0NfUFA1fGFwLWM+ZWQ3MXxYKTRidWRsPE9fZXtpeXs3eWI/QFIq
OSN0K1E/Vmp3Pmp4KHZWPEZKOwp6TlQqMzVIWHprODBtWWMlR0xQaiVVQzxTQz1fVGBXMn5fI3pH
NlZzMkohRSFQcTRAKmY8ZUR+Pj9WJm5jXzVfIzUKellNJDl5bVRnWXQzWSpsZ01FeTxNIT9nV2BZ
NU5NM19RJEZxQEFYPiRAWFZIYjA9MnNrNzU2ViVNaD59RDMhZEkpCnojTiY1N2g5cmgoQXJEbWBt
anpPSikpKyE0dmtmeSU1NXNiI2I2S3VYKWQ3OWIzO2xBYSF5WWQhODBTdDU5WVkpRQp6c2hsbzdx
KylQbVVASCt7SXIpTylvYT5BaHVeRkExKm8rZ1NUaz8ybUNUdXczI0JlUGhlZD0qUmBqZGlZcVlM
T1UKel9hZXZLa3ArbUVBWTw5dnBnJWM5UT00Z1dUQ0N+UytkKjVpeHlNLVJZPE9NNitRVGdkbG9o
bWNASW5UJSNge2lOCnpNVT9sdWBrP2chNlokZFVzXlRMMGdAdVdKe3JaWFY8SHc2Qjl6dngxU2Mh
Q2hkb2puKU93MTF1Vm5NTEEkZiNMQwp6T2I+RHZ2dWpycCk5WlNQYEVefUhXYHZobVJaRURxYiVm
WVpTQk5kKUxnWWw1aUh6OHFWcEMmUms9LW1wOTc/YmgKemBSKGpRUTlCe2RfSTQzaCMjUit5eWNJ
NGN3ezl3eWJ4MDY3ITx2Yjh7a3c9UHchaSZAKGMoc1c0Ukw+Nm4zeT53CnpPPU0rZGlLUj1JaWRD
eXRpTTRDamlqNW1MaXJ1PytpdnRHXmh5cElWa2g0UnNUU3QhYDZ+flNwNkRMbGI1VHtSewp6N1Uk
Mk83aGl3PHdZWWxxczw/NkVoUFpYPm1iaVFPdTZYZF5mJXgmcUFIXkBmezMzcTt7ZGUpfm5PdUdL
UDRqUSEKei14bTFhJjtxPVl8Mzlkdmx8SDxIYXBueVMzPUhESDVvZXcmIXNWN2h7PVZNY28qb3th
LXJtMGNMNiotR3Y5YiZhCnpeITQocDV1azx8VVlAPnpBKG15PlZCTzVFWEk1bHRjPS1taGpaKFp+
UGZCbkBoOSVnbTUoMkU7K2VFa09SZStaXwp6bj1sYnpjSWlydTVgaXQkQEg3PSpjMjVJTkZCdUY3
Q0lWcGhMYjFZVmUzZikjMGpuVHlqbU9nQFhtc3pPO3dvNEwKemBnJF41O2pDczk2ZERTQjEycUJt
cmtiU2RJamhRYCZua3ViSTx4dn1vKCZ0dSRiU3VrNj11SEhpJX4pcDFVOytpCno0T2ooTVdrUzNi
PlprKDI4aURoV3NIIT8tVyQ3ejk7PFdPcCR9K15MY34haD5Sbj5yMVAhJVJJaShWaW1tfi1KTwp6
ZHo+UThFTEReeXZocjZiZUFPKChoZzg8UVFRME1uS1UmRGooeXgqfT1taT5SI2BIeTtASXd1KDAo
fWY8OGs7NikKelAqa2Fza0lHLXNGbGR9SWp4I0smc1BHMz5hV3g3QzAjUVo8dUNsXmJLYHRnaVlz
bVFjNVIoISNQKVl1ZlZoZVNRCnoxciZaS2QqZXs3S1ImKkpWVWQmTTR8S1A7bXVsM2EyRjI8KjYl
ITBIJUkpcGxtRyl1JmF2VzZsSSE1ZkEyfDxBQAp6U05XXmsqKlM2RSZXYERKYGhLPDNjU1gzcG90
LVNORT1RYklBb0R2cG1BNjkoKjBfKy1FWDQlZG0zTU5vdnk8JUgKektuYH0hJk1lQC1kYkdOTnk7
dllGbT0pU05zTiplQVhZSzZmP0NqditQKERnazhFMGM+WFVvdG0jTWc2bnckPl43CnpjPzROSXlT
cWM4cDJsdSVYSmNiK1ZgRjJoeGZkVmhZXn0wMHpzfHdPJEs2ZlpzOEZHVG92cDIxMXNqSH5FJDE4
QAp6b1NvZz0rPGh1Jj5VbCY1VEQkd0g1ez9jSSUlbFllMlM8aDUkSzZeIy0oa1NmJnJnd1hiOU9X
Z3RlU1FFYDF2e04KeilubT5DeCV2M31MJlRqY1ZpLTZOWmh2PC1yRSEjSG1weVh5XlhDOH5ra0pD
P24zP0kwI29qPUsxPkYyWEFwdDg4CnpsN1cqNyZDUXJ5NjleNGVXRihWJVZWWWtGYn02OXE8MSNK
eVlZQXI4blFCKkQzZXZneipHMTU/QklFQy1FQTQqNwp6N1dsQGlOcWBYeylaYmwpK3B5OXNyZE9e
dF9rXnhgWGxVS35fMVF7dyZJRmRgaXpiTWhkcitYeCFvdTlsJS1xNjQKeiRDPkJkdVZwbn1XPFF8
VlZVPXBvPj45QE1kNnVfOSNjezQ5d25nK3pKenNnR28/aktKPVUxdXhOUWlQKWc3WWdwCnpJcEYr
Q3A1dClMJiNkek5pcEF2bGxAPUV3QDIjRndAd3JlZ0AmPDcjXjhEOyg4aVMxVUNtSF5NSTJEUll2
NkJuQgp6Zmo/VGw1T25yaXRBYGVBXzA7T0V3RjVWU2E7fSVFd297P25aWSZ0Ymg1QnxTckplRGRz
JDt9NkBFJTQ2T0NeJDUKemdYaCNhb3xZbWIkVkZ1RV5YQjQ2UHE4b0RPNitWPExGfHNPNlQ2fXUj
a3opLSNoTTBII0V4aUpGfStiT2FWWE1LCno5RS02TzJiI0V3VTVWYWVTJHVWfGBxZXNPWFMzPWVy
JldtOUA+Kz00KUdrYD1jfEEmO1ktfWFZSG5TMERsV29QdAp6SHVtRCVIamQmLVM0V1pHKyhxUUlf
WXhPNnhRY0p2SXgpPmpvYktRJDk8KCRRZz40PGg/WEttLS03ZmF4RG5IV30KejRzO2R3MkR5bHZX
MiVWej9eWTR7LUdqeHhIeyErS3g0TWR7IX1eS0MhKEpEa2tNMXQ9I2BZMzw/K3AtbFFhIX0mCnpr
OTZZQkNweig5TXNATEVlejM/LWVNQH10O2MjKGMrNlE5QmoyVUE2YHRAU2RyY0drPT1GTVd+Jllr
al5fc3BEJAp6OyV3JCphZW1QWmFkR0ohQHp1JktgVFUhZ21uWTdoSkV3b3t7cE9vKiNQI2RmI2Rx
SSpDIWMlMnxOaUBicEwtMzQKeioxeVVCODc9VG5LY35qWlApNk5qVj8lNUNTRmk0MEQ+T0U/QnVp
fGxQZTlGKDI5YzJzTFRVemhncW17MWBxZ0w8CnpyNEoxUHtFUWk1ZUlnPWRoKkZ9K2BhWHNYdkh0
WlZqNiNFbWBYMHAkdkFXPD1mPSorSV4kejQ0c0MtbiRNRnU3Vwp6ZGFEZWY5LWVJeFRLblJHJCt2
TWs0c0FLKjVofC0wPiV8V18/UFh8JD1OKnxzcU1EYWY1YktVNzgtKmRjWVNxP0EKendVYWI9U3Nx
JE4yOEUkanZNZzNlUmJVe3Q1XnBlTlAmamJhRDN3QDJFYnNLeHBmUEI5MlM9MVVTWG90MnxGQERI
Cno/WDt8dzFJbWt3dCg1Wmk/SGckdkNALWdPMCZKfExaJkYzRnF9aH4xeGVNPUtXb1JVZVl+OzFJ
cV99WG8yKGA3Zwp6RUB4d0gtQj1iX1RVKlB4VF9hQSgyOGB1QkozPjNxK2FWPHgrQllyLV49dHNV
Y3FnYVV2Um8jZTZvd1hkdlJzNl4KejhhKyt2R3A8VmloKilSMCtOQV9IWEdOU1hJQWYxeTh1WjAq
cDxZOWk1TjVBUU9DSyVrQl5aVHBPVCVLO1ZCeT5fCnpDTHlWNXYhK2QoQ2ROY05UTm9FSkwjVmxQ
PHZQKFpHMH1BQEpEWm83QTgzY3ooREs7dGxgbk9FITMkPFZrVipZVAp6KmBNK0NRNTtkS2pvZTE/
LWgrNF9HWDQ+N0VlZCY/ayptQ1dhN15XYGhYJGVTcDBJTj1mPnc/PVNDdVBkOW5ifXgKeiZASCFz
WXpzRUFQak89QzgyV3QqXzlqe3wqciZ7ez1fcHBseHs3NXs5JTVxP1o/VWJKbj5mKE1MK3ROZFAz
JnBtCnpFNEg/LUMlKXtjNkRQWCppdX42RE1TaUNgOz1+KH47KFVKfWFla3opeEg3XnxUcHczTTlQ
WEpZUDdYKkdYWmtofgp6PVNJRko/dEwwMF9VemRzNGp3IXhAQUg9flU2U3xwaFl1ZiRwTVU7WXtR
QiMhfERJPVN7cWItN1p3dmZpWlVPeTEKeiNZX2d4eHx4fWNsYmY1OWpoVjdzbjM9bU1NLURGTGE/
TE89S0N9WUNqRV58OTtBa2V5dFFAXyl0MiNRbWR3Y1cyCnpoTHhGX3dQUUoqJmVQcG49VXZYUm9W
QSU1JlgjbD55bThDMVNNdWROYi1IUzUtbk0tQ142cF5wPGI8dTZuSSN7bAp6PXlaVjJ5QERraDsz
RjY8UkRnWXA7ekt8Uz43WWVMPHdVWmclcmJ8V29vblVGdTZBWjltQkZDQ2M9dzJSa2Ehb0YKeiRf
emtSS2BSRkBXRlUpbTdCez5lM15TcVFFOT54PShMWndHQlAoLTtDQnVlTW8+N1Y2JD8jKFlGbVJ4
VlY+fCQ5CnomYDxeKkBJblQlJns1X1c3WE9IfDIxO095VmEwJWJIJTRfdlR9QUBxYncpMm5LZ0xN
TEoxVVJ7NFExY35GSnZHSwp6OW5ifXh8RndFUkh2P0AyVGtlYnlNbHokPHRGT0t+dVM9SU1VJWNf
Zzg8IVpEZC12fUJXOGMxZ3A4JVp4c2F2O2gKei0hbEQ1PWd5cl53cmJVQ0hPcVgkY28odF49enVR
aGd6a1U1S1VrKikxSU01Xml3fE5uPVJNbkVfVVF0QTk1R19WCnooK0x3TUpleGR1dmMjTUBiMHxB
SVRMTml+NGolQmIldX13QFJvO1o+dSZ6bEFeaU9qSmJpKVIwU3J+TnQtJTdGJAp6R1h+bmpmdVVv
PnYpfVclT0BHalFoSldqKHF8bHlzSjV2NmpGcDB9dVQhYFAjT0NZViQhMkAyJVhtI247dEpsdzUK
emtHLXNWR0dqMW9hTF9TZTZTa2ktXlVKT2wlVkU0PU9nYnxIKnY1TjNkLWcxWi18Nlk7Jno4LWFP
dH5ZSD0qcG1+CnpiWmRNeXg7cm5CP3lzcyM0PncyOV9kQkJLYDwhVHJobiMtNkRUM349NDVobW4w
ZCh2QXMmcis1eU9mMHY9emBBZgp6LU1pbXkqfE96RXdsI3IpSWZENVArYj15WVNPJmdoWk5OR2Eh
aE9BS0BaaUJ1RmI8Wm8lfG0wNz10aGJnLU5fODEKejJPSHxzIXxtKU57NnhHQmglfHYoMXxCWWR1
cylwYldDVCp0PXRefHg/SWVPdT13PSZGZDUpWkNuXlBIbVY0REZTCno7TDhpbVpSVyQ2TDdnRU4j
X2UoZj9TbnF3S1JrJkZNXj5XU2JBI3dVYHx5QzxefSRCUVhaN2htejsoSTVBellUQgp6VG8yR3Qj
eXNHYUdVJGBGVlJVOz0wOV9tRURze3NLWTtrKkNXODFTQkJqNXVBelFDdXk5ODFpREczVlQtT2A5
ZT4KeiZMNH4mSk5EXyluVWc5MT9mUGAlVjskWEg5IW1HdGd3ZWZLXiUhO08/Z30wa091TV9SNCY3
Wl5od2R6P08/TVdYCnpmTjNhYEptNmhYU0lYWDcle297WVdRc29ZcUdPfSM2S3VnSTxeP3wtRW4j
MCEybE5CUmxIck1GaU5WazFTWjZTQQp6MHtabW5iTU84NC0rI0o8Xjw1YV5OakU8QXF1VUU+TiM3
OVBvKnpRRHZWIVQ+eXFmZUtfczRnMDBfblRpZnBsfEwKejBOdEV2MDtadSVALVhrTSUkanM3SjZQ
KF8+cyR+Kk1VI0IjIVhPV1YmMmkoI0p3cU1YN3hWK2g2Nk9QWkR8S0NCCnpJPnRRS0VuU1p1SkBV
ezcmfnQ5RUN0WGtUckpFVCs1O3RaQSh2MkFiUjVhYjZpYXhEUSpDK2M/O1VwZ197RnBJTwp6Tjdw
OEopM3B4KUZCUDAtOHBePFBvcWRFMVdUNkFQWmxkMU1LUE8xP29FQE9sMFkwYz4zRylHU1RFfkVv
Q0ZUT3QKekZtNVhJY3dkYiUyO1djanR3IUliZFFzdCY+SSUzWCpDelZWUnJjQE80P085Y19kTXVJ
M2E9KyktMEFZQERzKntOCno3NWFMRjgrfD56YXhxNDVuclNFbDR8dVA8UTtvaEU9Zk9JPnFeQGhJ
Skx9ZiRlRVlzOW8kT3N6XzUqeFQ9a3heagp6NCp+WkZxakFKfXcwLSRib2pTZGFicTRiJmNXXmo7
I1d1ZWc/P3ZDUm9oJDY/PCpgLWk+KFREPzc1ajUoWGwxJU0KenhGVEhgOzdhSEZ4elBETyZVQ0p+
NlBAZW5OYXVQTzBDfEFSenluXiRUcFYwVT5WUGlqeXFyPV4rSkcoSyhyYEQqCno5VFlDXzY8Qyts
d0g1Yj1Bb3ZRT3dGJHMhJXghbWB1Vj1CMlo2Qk9PWEw+cihySUdIOERzKnZ9OD1Zcis9TFNAeQp6
dndkQ1lPZk0lby1RQUgrYipuKDl4fEZBcm95eVY0al4qZT8yWVdqNG5xQkdPR1ZwKkdHTFZJaXYl
UT85JmhyRGcKekVyd0sqd3FXPC1oJF54aXpROEJrQUsxc3E0QlYlJipPMEhqSUZAYkM8ODFpSWt0
M2Zoby12djcrTG90UDlWKmxFCnpfTFhUXytlKTt3d0pSLWM9fFc0SUpKYUgxQ3RCM2hrcnBMNyhC
Z3kmYmc7UHtlYzk1UXpIR3MwWmJlX2JRVzhnKgp6d20haip2ZzY3dFhrM0FeOCN+Wl4qMENWVGty
cDsleXt0UjhPR1BAPmdXSU1Md145RiFiZiZLPjwrcmdWXz1JdCEKei1sd3RHejxNUDZmTWJrJUgo
cWFVO2E8M1BQIWIqTVA9T0FtXmBhWXYqWFpgYCtoeVlCJjZfbERZKExyJVhHQDBACnpFYT53bD1B
fmtEeWU7a0J4UTYoZnlFMVg8PXpqWFZMcSQ2RlN+PCReU2V9a3xhaUReKGomIVZqSWY3NXtPPGoq
Qgp6dkFAeyFWYyFiaFpGbkN4MnlNVEo+dl8xVDYmLUM/aipobkZ7KGRLIXsmVipSQHBwYW4/Q0Rj
XmJjOSN+MnY3ZH0KemxlVnV8Sz1ZIT8pNG9STGJnKz9gNSV4QitwamlYak9Gci0kJTQjfSlge0BW
RD5tNXBtbl8xRTQmMjE+SnI3YXpLCnopc0ZxSm13cF5kdkx5SlhfNXQ+TXklXlF1SkVKXztZdilI
RmVlYHJnLXozVXlZRTZlJiREdzIhbkxnNmxrOFlqRgp6RXpeSV5wS35YVSkxKmU4dkBfYkFfQ15h
bXJwSCNIaFkjK1Rra3soK2wtcntxd0h4aF5HcDdUTUUkQmNLT0ZFY24KenJURD08ej9Yd2JSc2BS
JD1pX21IbTNfd0V5RG9mWlJOYCslfEc9OEZ2bmspbDZSYzwtKEFianAjI3p1RlpvaHBeCno/Q0h8
Vlk1RiNWP2I1PTdgfWIqNXJ2JXklVkw+Xk9mPnVVWVF7TF8hckxqc0hgdHs8PDhNTTJoOFNSYyV1
cVZiYAp6K0p0VFJBYm53ZmJ+ZGRqKkNPbl8qPUlhSUIqNkVzVUF3LUR2OW59aTNoaihDcnlUWS1D
JnEkeWFYYXA2WHdFYjwKeis4TjI8dml4eWY9JEEoaU9OOz8rOTNYIUQraSRlcyE/JFR9czE/bF4o
MjNCI1N8N25fRWUrcVY5QCRIfjs+eXZFCnoyMH12R2srI2dGWlRKOVJhJCtye2VmV3FtcSZAQFRl
JikkekNrdGF8PHkjJFRUWjk+SFlvRyNZI0A3MHg3fno4VQp6Y2RrUFp1YmVNKUppdEhyZF8zPEVK
XkpCJHJKZEN9ODJiT2l0czlpbk49STgrcnlkNWpxJVM3XnooPFRCSmpiIWAKem07LSppPTVORkx4
fjQtSVo0TlZ8JkVicU5MN05Pd2tNam9EN1V4NyljQzM9flN+fmNXbXB9amJvJVopakZ3JHdMCnot
X1NPRVFHN0JaX3l9THxFWHV5KWN7K2dvLXZRZEhfRj1AfEppam5MMyR2aShRJUJTOXp5MTIkekEk
V2FFJmNpQQp6a3VQaz0mP29vXlV3SUNIJWY4RnwwTUNhYXAxYVJoTjRwU3p4QmIlQypFZk00LW5n
YjtWPTthLUtUWHBaXkxaO1cKelg+QzJybSRuMW47M0wpPFp1NmhtZjFHWDk7a0Q7P0padGxKPVlK
ZFA7O1lkNHk8N2ZySmktNTIhfjQqQFRHb0h0Cno3SlM4LWZ2Tnc/ZzlSQk8jRWd+JHJ1MChzJVI8
Y1EheyFsa2VLbD0hKTR1cmdrM1ZSYHsweTJ7KTFIPEZ8QXFjaQp6Pj5LIzZqaTJpbktaXyVIZS1r
N21tSWotJVpVc3dmbnZvdUF4eUZaaEY9SmV2Tl80YTZ4XylnbV4lLT9DdD1ILU4KekZEV0o1bE5K
UC0+K01SdDJLTH5DdzV7NU9rTHZqT2s9dExKemdzWFQ3UEpiWmcja2loYVpPN0M3UyooJU1YVm9L
Cno3LSZgdWxASShNMT17bWtkMDNBNW0lWlNBX2QpeG5HJUxXT1NVMjB6WSlicD1nWFJ9fVJNKCUm
Pzd2KDtkRWQ0UAp6dn1gV1J0fDI1QSowUUNBQXZWT24pOE97OHIxP1A+RyhYVD5CMElwMEcpJTMq
YF54TiQ1XlpiUHt0cz9HemhDJXcKejZFeSRoX2h+ezZUZ25icD9YVyVBbUc7Pk8lYGY8PGBoU1cy
bS1qRTglZD5JKyVJZXBWPTJhSUczcXlIZFRmMDJYCno1OCp2O08maUp6dzQkczRPVW1TUyVCKjI3
RzBXZUFyVlo9JislYlJvJE5eZHk/bih1YDx+KTchTTBTdHFTT083Ywp6aGo7SSEoSUomK1pVRWIy
ZCQwQHBeSnxzVWB2bzZ5fEg0QCVgIUR3b2Q/cHBvYC1lWlhRdSRvV1M0Yj9aVXp6NkQKemIqQWp2
NHdNeUFvLSU5TihZIXojbiM9N3kqV1okNil2JTxMU0VBYFItWWIrOWUhTz53N1JVUVplSG1RV3l7
U1gjCnpQajJoNzBAa0xSSDtVLSgjMFoqRXZ6KVk+VUJeLVNxNEA8THY0Nm1NRUJta1EtKXlqa1Zo
KyEkP0xzcWtmKSspMgp6KCEkN1Vsd0dlOVchNzx+Y185dW9tdnY/WStSPCQ4PVRUdWtib2I2fT41
Nkg0QjlBQHcjKF5EYXJqTUJzSHVoPm8KektSPnU8R35TQFpQeyk2TXsrWHRZOTg5MG9zel9PRUtS
Y3xsXmE7TFU/eTc2MjtyYGlAPWZHemVMJGY8MShSNDRLCnohX2h2cHE7VmlFaTFNYmFhQ2UkbG0t
YGorSDYxNz14SDZxVGIrVzh4bD1weG0zdWpUZnVPKzRYU2RfcSRXXyg2Owp6YFFtZiQ2O0Y2UFpD
fF5KLVZPSnFkRXImMVB3KSs2MldRNklfSis/ZDx+Iz93VTxfcVdvbEt2NDIrQ15VTUpybEgKeigy
fUl1dj4/YEI9STRkNm8taHh9Uyt8T1F7clJWMntQWkxKWUpqVzl6bzN+bG9vSmZRJF9VZWF0VnpP
YCQwNihiCno+Y0IySnAwRjF4M3p5RUhxandWYFhve3k5IThlUUBvT2BxWGBzWVZIISprdz5ge2Yj
KihQcCR5cU0wR0N3NUMlYwp6dCRaenhtYlFxWDEmeEMjRTRuKChqcTsoKW0+UUpIPjNMRFVHJmZS
NXswJCN2KWMycXtWYnk0TUokRHx2Jk5Rdk0Kenl+ST5NSkFHUXh7TDlodzhzI1pIKDFCKzFfP1hY
bjdiZSFgPWpwb3FZI21PXlQxQz9HSHFvQFFlTFN0eyh1fiU7CnooU2x9MmBWZjRBWmB7czV1Jitr
WEAyZFlzZWVraDYtXldAOyhmU14oWD8yJW1USmMmdUVxYkxzS1hackJ5eXpOfgp6NSRRe0Y+VS0w
eXk0N2Ujb2htZT1SJUo+THUxTTJeVHFMRmlhdmNKPTQ+V0xJRCszPytBcVJRcmZ4Z1VgMEk3ZEwK
elFlOWZzSSkrd3RZRCRaZSF3SjNed0VjWWN6cl57OFNfZXorZ0NrZzlyP3BGPlM+WmFgR15pX1c5
TUdCOF9rTjk1CnpjV1gmWStzNHlePE9zQFlRaXRYPjNaeyZQMFdgYVRBSSstb0xvQDRuKFR1dkRs
cGIxKigoNj19bXxvam1wOVVTfQp6LX4mSjhBUCtzekhAfDUoRXEqbklSKDVKOD9RUTdPTEdyPkVf
PUt+Ml84cDxiYElYaU97NENSRyRkRG07bVZCMWgKeklFKXMoK0s2XyheQT5GIylzSHB9PX16bldi
KXdhOHd4TU8qcDlAPlk1ZFdUI0c4NXwyK18+NzU1Z1M1dHFKd0M1CnohJDZ1SDYrcDhoWXZfU0k9
cUx2dF8jcEBSMTxmMU1sRDNVJFd0U0dUdTFgbTQybGZgV2gkaUBlSDN3JkVjPmxuQAp6PmxrKG57
bi1fSyo4PFptY3I4bERUJVB5b1dKO14rT0tiYlFQSjJJb2s4KGEzUDF7cjZxQWVyKSk1Zj1ZKHo/
RSMKelgrX3NwWC1TNz53NGhaUyYySkd5Uzs8azkqfFkmPUNQbVBeI1FKKDU0PzQ9aDJtWnpGNUB+
cy03UFB1JmQtYGx9CnpjY35acFZQe3FNYn5HdX1odXtPfEVic1NzdjJWe2t6Y3JgPiM/a3RlbCQx
WmB2aSNLTytPJTw0VXBtQytxNUcjeQp6cGdrWHRxbnk7U3dFZik/d0JfeD12fXQlaFQwZntldD91
MjRSPW5BY21VWkRlejIxVHJ3QDs9O3VRaWtMO3RzRlMKeihvUVhEZEFCeVNzeihQfStySnhhOU5J
XzlMbDUqcEZaNkYxKHZ6ayh0Vk9WbV5JTj1zVkJmTGN7Tj8jTT5jRCpSCnp7UlAkfEswa2l+Siln
I2UocXwrMykwZDAwPXQlWiNJLURfYDR5TEVrS0dmJXY0PTg4Q3lSPjhjN31gRT02bTVOSAp6SUJp
V0NNcTk9WHI3ZEgpemNAeDdiZC1ZK3tFJmtAXmd0aTxaczBtaWlMTjdrJEpzcnZIeEptS213SkRw
KjE/P1gKej9TbmRLe1Y9JmpWX01PeEdrdil2bituen1yfkt1TVdjdFgweCU3R0ZFSUtyMklfMXVx
TihhJj5HdHl9UF5odmFUCnorOXh0YjkoMHQwNUIhaldGNmNwZVNAKHtWKjFXTzQtRlkwfSEjZm9B
fEUxbV44SF4peW1iSm9JIWhGRC17LV8xNwp6IXxAR2grWHBGaEEhaj9DK3AmZXRaMjYyJVpDcG51
KlJTUyF0KVN6cG1RbnRTQl8ja2wlRTFTSSRlcjgxbllPPDcKekhjZ0w8QW4zK2kjZHlkMjJleXN6
anhxRG5AOXp4aUFtNSoyUEdlb2RJK2loSUdDeWxeSnJaTVIoPnRULSNRSFVLCno8IX4tdEs2SFRa
c2U5P3R6VEZaUl92VmxXamZRZ1k3NFk2KlFfM2h4UGwlU2ZwY0FeVyZUemw0V31rSG95bGNWdgp6
PTNsPF4oKT13ZVcqcnQtVGUmWmVwZjdNUWd3NjQ8Qis8Q3F5akNfKHEmMzNeKGNiaD09e1dtI1k1
IWlqIz9NeSgKeigpbnZ2KCUkSilCb0JCWTE2aztSRjRsP25eaz96QGZvPVVgQDI/SCghK0o1RUVV
e09AeWcpcyQ9ZmsqNGU+YTZiCno+ZkRpMUJFdXkzSHwqNWtNbzF2NyhaS149ajEkUGhafD5WJElK
Oy12fEYhUTJOfndueD5jT0BAIWBAcX4zJnNGfAp6SXZJUkZwI1FFd15CTCFASTVXbiVIfmEwenom
WSZTOV9OUHN5PWE+NCReUEtqMkcybFRwVj9mV08mbzlHezwpNU4KejBofSZrKzc4QXhvS0BueW0x
Vkd8ei1KbzwjKDFncygtLWp0ZXxTUnZvYGdUeGx6JCYzU0xsQ3RxV15tYDxKSTVnCnojSHFpXztx
UXg+VUg7QlJpd2x2Kl9lek5RNFd8flRCRns1V2k7P35SSWkkaWwxQWxYb0g+Z2hgQD8xfT8tZFpl
dwp6JEhWTytmNSplXkI+eGheYz5lZWBtRExmKXhvVyR6Zk5XPkEtSG1eQHFoc2FWUiElYmRfd3FN
ZFZCKkF5ayZKMUsKemImTWhnc1ghVnVsdHVteCl6MX1Tb2cpfVVeSGNpTSkqO08pemVmbGF3c1dL
aHQ7ezVsMjVzeCRSfHFgZGgwSnI2Cnp6Q2E9Qz1tMV5XV0JiIyQ/VlJYdFM5YGlRKm9FJUQ9VDco
MmVDV1lVZX5KNShlZCskVnMmc0ZOMypDTGdwMXk3Qwp6TlJVemU9PG91ak8wZEJIXmJmfCs+NWc3
PnlJVlFCJikqWj1wVTI8aUBWNXtUbWVnVT9SJH43NEwjRnc9M3pVSGUKenlwVnh4YHVsSWdrQyRv
LT0za2ROYl52fGQoVXRDZ3FAI1FNNFp9VkQ3VW9fP2tQYEZ2OVFPZF5ISmFxJUAwXmdJCnp0Pz1J
WSZ7T0p3RjZiOyMkeDthTEhGSGRWeTU4UUZadTlwNmNSdWw8Sk4jWFJqRkMxNCVKfTtQSilQNkhg
OHg8TAp6ZX5aNmBmRys2I3Q5SWI+NCU0fktGTDFxWV43alpnYENBQm0lLT5TVEc9QyM7NkJyQUMj
eGNxP1huQi1yZHxVPmQKeiY8emA8UjlsamB0bXRxRDlsdEJETDxpcmZ0Vml5Zk5MUWt4LTdDXm57
PVZWYkt2eWFwUjhpdVolPTcjN0s5eSpICnp4NV8xT3FQSDdLOXt4N3JOQyQ3JkZEbEpHKD9gcjVH
a2A5NDxuST15XnJRIyg/JFFyR3s5dUZ8ZzshfSZIfnd+YAp6MyV9Iyk9QlVTfHVGa1oxX0p7UTco
SVg/PXtqUHtrNTNhNTdAJSFAMnVVOD0wZkd0eFc7OCVWTjdyTW1uJDFnSXoKek5sQm56P2k3X2Mz
JldaMnFFVEhienFKRWg8b0Q+e1VEQm1LO2F0bHc7TFAjY3NYYi02KVhCVnZWWipjeUkzR0ZaCno/
RSFSXy16bEdjI2E1M0NVQSpieGkzMjZoKTFaNlRrX182QjxVfjd+SUA2Ny1SfTQpe3tfQ0kzRFdP
bTVXKmV7dAp6bl8zJWlkZko5SlYoNFRPRD58OEFaRz0tej9ka2Y7RGYpOXNMcW5ITjlqRTxrNzgj
T2NgcCRfJWJoMjNtTVBEZzgKelZHQX01PzYyRn16N2AjOFdKJm85I0smVVFTan1IfXc+PkBuUUYt
VEQha19gKyQyJkt2OzVGWjNKKnZFM0ZYdiY0Cno/ZCNWQVA4U19hYUhTKkJtSWA3SlRje3tiQU1h
ZH45KTVNSU0xTkBKcFlxeDY7b2RPQHZZSE4jXipaPyowPTVPNAp6MktBQElrcnMzfiUySjd1RSgz
QDdKQ355P3Zvdz1OQHVQP0xZMGZKbGJUSU8tXnt7PjN4aE1oWWdBckNRZ3RkezUKemJPQz56dCZI
JmFAbmYxaHVvRz5NdXF7PHpaVWJ2Y0g/ZCF8RTdxMHZNY0J+M2BxczJ4amdkQ1F3Z2BMTHdLVGhn
CnpXeX1ZfGZjJWFublkxanpOaVEjVExONWNoT3hsMGxuJTFHVHItN1hjZHhKRCtZP3Jacz1aJmVZ
TjQmLXlwRD5YQQp6YDFMPUFGMzl4UFhIVV9MTW4wNWRxOEdOPHpUeDxyd3huWXQlNHo2R3lQX1A1
NW18d0RGP0tTaF5MZz1+SmlaSkEKei1YJEMhKmgyQ2c/JXMlZ3lqZl5pRVltOyNeYjx8Kis+RXdG
c2smSmdZX1dhQWA0PjV6Jnd6SHV4Tl9UNkd5LVRkCno2TjJieEsxVmtVWG9vWXxsWjwleHcrVyM7
cjtlNnJCWVpRbD5lQzZkQkJseXxnVHdiQncjRH1LPmttZERgZVN7eAp6OHw1VkZYamM8WUJ+SjlG
WkI2fj9pLWp8Jj0paExHZDJwTT1qUlZ7MEBgZ299KTZgZTtmP3ZiIzxtejtKVHtoaTAKem1hRjAq
I3xQPXc3eURfPyUhI3hqKjJBZHApaFBoYEJjPWBTUHJGe0pMQXpmS3Exfi0oKFZvX3xXZzc5ekxY
JFU/CnorbS1CM3VtTXx8VUJlaHt1KU1LOT9ke1olQDF0PmE7TFhQUl8oMW4yXm0wZyRAPjBoZUB3
QiVpcFp+TE4qZjZ3ZAp6bkM3dyRZNDQ3cSklPFNsXldtTjdATExffCgyKHxZY3hjQyQjXiluQ09C
cFNPUFV3YVdMenx7KUUqfip2U2J0Z0AKej19dmlYX25gYTwheFZmdGw9NUUhJDB2QEV7Nnx1SE9J
Xj9qLUtPP1IlUU40KURNUzB5a3w7MEFPWCo4ej02Pj8+CnptQHw9JWoya0YqS29Aa0RXfihlM2U0
WF5wN0BGSV9vN09icUlXUz1hb3RRcUomU3ApYV5OVk5sSClFT2YpdjljWAp6T1JLV3o7PDV9YDF8
SU9QWH5nZjhTUWF7N3dCRHdedSQrQVVOTXJ4ISled3Aye0VsaktgJG57SFNVMzcmOyVHWWwKej5I
R1loJklrMHhOMjYlcCZ+Q0sod0hXNW4oY0VBY2YoKjshSXExM2xaRUNaJEpwNn5RdzZfTSgpUSZB
RW8hP1ErCno0c3hYb0ZHfnJlS3w+ak1SSiQrSypRTURqaV5oOFlFNjw8JGJ1fH0lUj5jQ3hIcVpV
ZEY4angpN0pyUllLRnQ3Zgp6JWxQZHNZfmZGZzgyQGZwQ2xITGtxTCFvKm1wUT9YOSpoeDtiJk1o
dk5RMzU0TGNvQmFeM1pgVTkmfjxgQUtqWjsKelF2end3eEV2Xzg1MUdEaGIkbXMtS0F4WlJybSRR
b0twQSt6WWhZR0Q9UEpJKDZ9YHtqKn1uazV0TkZwUCQ4N2QxCnp1ZVQ1WD91WWw3ajA/bTM9KnIw
STV8QFRvcigqK3NCfkE9aD07eFYtPHA5fU0rbXJiX2AwU0ROcFB3R2RaeVpoQAp6Kyh8aC0we0ZY
ZVU7NkJXOStITXtBSXtDfUN1eUtWaFVLUiopKldvP052Q2BJKHokVWg+RFBOVjxqfWR0ZHlvfCkK
emN6XnVzRkVVQFdZcThgMzl7P0gxR0sjKUAtR0AkZV5PR3AoNkg1MF85eUdkTmV8UCFfOWU9Wmlv
KEheO1ZPZ04pCnpOUWRmXy1ecEsoQmMxdjg3MmtaTkFIdF4oPUl9YURRKHEyViRmKXdgX098cm52
TEswTDlEbng3NyVCVmI8S082cQp6dEN3V0B7O2l2fHRaTzRaQTdvZndqO2w9eEk/Q0BIRHpVdE9K
THg8MkF7Vm5ocUdOQTFwZ1VqZWt1PmEkUj0rY2wKekA/Tmgpa1lSYldBTnFqNDxtYXtIWiR7RGEp
YyRtTyhvaX16YVdJfFdKVyVqdkxwdF5HNUlYYmVDXnxEYDZ6JVdMCno/QHJZSSEjTHZmaH4qN0U9
blFgJmA2Mik+V0s3MjN5NS1TY2JhTFA7YlolNjh7K187VjM3YHgtRU5lNz1IOWdTRAp6cGx4bCE9
PHtBbGJtOHF6NT1ldUZHVm9+cHJOdnpTUXVGcl98THZuZmdXcyl8cnFocz8lNGU7KXlpITMxdml9
RWsKQ3VDWG92CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS92czIwMTIvbGl0
ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4
cHJvagppbmRleCBiMTMzNTc2Li45NjdhM2ExIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50
L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2oKQEAgLTE5MywxMSArMTkzLDEzIEBACiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgPC9JdGVtR3JvdXA+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExpdGVBZ2VudC5jcHAiIC8+CisJ
PC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gIDwvSXRlbUdyb3VwPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQuaCIgLz4KKwk8L0l0ZW1H
cm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3Jj
XHdpbjMyc3R1YmFnZW50XG1lc3NhZ2VzLm1jIj4KKyAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0i
Li5cLi5cc3JjXGxpdGVhZ2VudFxtZXNzYWdlcy5tYyI+CiAgICAgICA8RmlsZVR5cGU+RG9jdW1l
bnQ8L0ZpbGVUeXBlPgogICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgog
ICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4KQEAgLTIxMCwxMCArMjEyLDEw
IEBACiAgICAgPC9DdXN0b21CdWlsZD4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0g
ICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMy
eGFnZW50LnJjIiAvPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxp
dGVhZ2VudFxsaXRlYWdlbnQucmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgot
ICAgIDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRceGVuLmljbyIgLz4K
KyAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFx4ZW4uaWNvIiAvPgogICA8
L0l0ZW1Hcm91cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRz
Ij4KZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2ogYi92czIw
MTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCmluZGV4IGE4ZjU5YTMuLmMxYjVjNWQgMTAw
NjQ0Ci0tLSBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEz
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagpAQCAtMTk3LDExICsxOTcsMTMgQEAKICAgICA8
L0N1c3RvbUJ1aWxkU3RlcD4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3Vw
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2VudFxMaXRlQWdlbnQu
Y3BwIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcTGl0ZUFnZW50LmgiIC8+CiAgIDwvSXRlbUdyb3Vw
PgogICA8SXRlbUdyb3VwPgotICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcd2lu
MzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwu
LlxzcmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1jIj4KICAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwv
RmlsZVR5cGU+CiAgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+CiAgICAg
ICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgpAQCAtMjE0LDEwICsyMTYsMTAgQEAK
ICAgICA8L0N1c3RvbUJ1aWxkPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8
UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx3MzJ4YWdl
bnQucmMiIC8+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFn
ZW50XGxpdGVhZ2VudC5yYyIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gICAg
PEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPgorICAg
IDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XHhlbi5pY28iIC8+CiAgIDwvSXRl
bUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgot
LSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD2-0000sY-Ca; Tue, 24 May 2016 14:21:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD0-0000o5-Gv
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:22 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
 D1/E4-30272-26364475; Tue, 24 May 2016 14:21:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpG5isku
 4wYL3mhZ/Fic6MHoc/nCFJYAxijUzLym/IoE140DjLqaClwkV5/beYWtgnOrbxcjJISHgL3H7
 wF5GEJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sXYwcHMJA9soZDiBhFgFViSn9k1lBb
 F4BV4lPe1tZIUZqSGxqmMEGYnMKuEm8+3AfbKQQUM3nTd8ZIWwliW+LXzBD9ApKnJz5hAVilY
 TEwRcgcQ6gOdwSf7vtJzDyzUJSNQtJ1QJGplWMGsWpRWWpRbqGxnpJRZnpGSW5iZk5uoaGJnq
 5qcXFiempOYlJxXrJ+bmbGIHhVM/AwLiDcdd2z0OMkhxMSqK8BUku4UJ8SfkplRmJxRnxRaU5
 qcWHGGU4OJQkeH1BcoJFqempFWmZOcDAhklLcPAoifD+SQRK8xYXJOYWZ6ZDpE4x6nLMWn5nL
 ZMQS15+XqqUOK8gyAwBkKKM0jy4EbAou8QoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmDccZB
 VPZl4J3KZXQEcwAR3h/8UZ5IiSRISUVAMje4Zx5jHXmVtY3xUs2Gwx/XKA1wYn/v29u+yi9uz
 bZJgl8FQiZAfr213uj+aYO0XpH19hYjdDp76A/5n4v1M/NmsdPbj92Sr7OxsOX7ngfPjN+a2O
 0z87Ru1XdTnvZLt5C9OpL/aOxxdYSx76K9c84bz2JEsZj83/Gs8yv2NQY9NisOS6WrjKUYmlO
 CPRUIu5qDgRAJUUMK+tAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1860 invoked from network); 24 May 2016 14:21:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289470"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:48 +0100
Message-ID: <1464099660-12432-9-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 08/20] Add XenIfaceItf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWJzdHJhY3QgdGhlIElPQ1RMIGNhbGxzIGluIGEgQ0RldmljZSBzdWJjbGFzcy4gSGFuZGxlcyB0
cmFuc2xhdGlvbiAKdG8vZnJvbSBtZXRob2QgcGFyYW1ldGVycyB0by9mcm9tIElPQ1RMIGJ1ZmZl
cnMKClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0t
CiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwICAgICAgIHwgIDEwICsrLQogc3JjL2xpdGVh
Z2VudC9EZXZpY2VMaXN0LmggICAgICAgICB8ICAgMiArLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuY3BwICAgICAgICB8ICAgNiArLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgICAgICAg
ICB8ICAgMyArLQogc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAgICAgICB8IDE0NSArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L1hlbklmYWNl
SXRmLmggICAgICAgIHwgIDYwICsrKysrKysrKysrKysrKwogdnMyMDEyL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvaiB8ICAgMiArCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9q
IHwgICAyICsKIDggZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmgKCmRpZmYgLS1naXQg
YS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0
LmNwcAppbmRleCA5MDMzNDA3Li4zZmM5YTg1IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0Rl
dmljZUxpc3QuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAKQEAgLTEwMSwx
MiArMTAxLDE4IEBAIGNvbnN0IHdjaGFyX3QqIENEZXZpY2U6OlBhdGgoKSBjb25zdAogICAgIHJl
dHVybiBtX3BhdGguY19zdHIoKTsKIH0KIAotYm9vbCBDRGV2aWNlOjpJb2N0bChEV09SRCBpb2N0
bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdPUkQgb3V0c3osIERXT1JEKiBi
eXRlcykKK2Jvb2wgQ0RldmljZTo6SW9jdGwoRFdPUkQgaW9jdGwsIHZvaWQqIGluLCBEV09SRCBp
bnN6LCB2b2lkKiBvdXQsIERXT1JEIG91dHN6LCBEV09SRCogYnl0ZXMgLyo9IE5VTEwqLykKIHsK
ICAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGlmICghRGV2aWNlSW9Db250cm9sKG1faGFuZGxlLCBpb2N0bCwgaW4s
IGluc3osIG91dCwgb3V0c3osIGJ5dGVzLCBOVUxMKSkKKyAgICBEV09SRCAgIF9ieXRlczsKKyAg
ICBpZiAoIURldmljZUlvQ29udHJvbChtX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlvY3RsLAorICAgICAgICAgICAgICAgICAgICAgICAgaW4sIGluc3osCisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQsIG91dHN6LAorICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGVzID09
IE5VTEwpID8gJl9ieXRlcyA6IGJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
c3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmggYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaApp
bmRleCA0NTdhMDk5Li42YTFiMGI0IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0RldmljZUxp
c3QuaAorKysgYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAgICAgY29uc3Qgd2NoYXJfdCogUGF0aCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgYm9vbCBJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91
dCwgRFdPUkQgb3V0c3osIERXT1JEKiBieXRlcyk7CisgICAgYm9vbCBJb2N0bChEV09SRCBpb2N0
bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdPUkQgb3V0c3osIERXT1JEKiBi
eXRlcyA9IE5VTEwpOwogCiBwcml2YXRlOgogICAgIHN0ZDo6d3N0cmluZyAgICBtX3BhdGg7CmRp
ZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xp
dGVBZ2VudC5jcHAKaW5kZXggYTc5ODdkYy4uOTA4YzBjOSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAt
MTM3LDE0ICsxMzcsMTQgQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8g
Q0RldmljZSogQ0xpdGVBZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCiB7CiAgICAg
Ly8gY3JlYXRlIHN1YmNsYXNzIG9mIENEZXZpY2UKLSAgICByZXR1cm4gbmV3IENEZXZpY2UocGF0
aCk7CisgICAgcmV0dXJuIG5ldyBDWGVuSWZhY2VJdGYocGF0aCk7CiB9CiAKIC8qdmlydHVhbCov
IHZvaWQgQ0xpdGVBZ2VudDo6T25EZXZpY2VBZGRlZChDRGV2aWNlKiBkZXYpCiB7CiAgICAgQ0xp
dGVBZ2VudDo6TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKICAgICBp
ZiAobV9kZXYgPT0gTlVMTCkgewotICAgICAgICBtX2RldiA9IGRldjsKKyAgICAgICAgbV9kZXYg
PSAoQ1hlbklmYWNlSXRmKilkZXY7CiAgICAgICAgIC8vIHNldHRpbmcgYWN0aXZlIGRldmljZQog
ICAgIH0KIH0KQEAgLTE1Miw3ICsxNTIsNyBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAv
KnZpcnR1YWwqLyB2b2lkIENMaXRlQWdlbnQ6Ok9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYp
CiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQoJXdzKVxuIiwgZGV2LT5Q
YXRoKCkpOwotICAgIGlmIChkZXYgPT0gbV9kZXYpIHsKKyAgICBpZiAoKENYZW5JZmFjZUl0Ziop
ZGV2ID09IG1fZGV2KSB7CiAgICAgICAgIG1fZGV2ID0gTlVMTDsKICAgICAgICAgLy8gYWN0aXZl
IGRldmljZQogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmggYi9z
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IDI2MWU3MzcuLjM2ODBhZmQgMTAwNjQ0Ci0t
LSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuaApAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHBy
b3ZpZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKIAogI2luY2x1ZGUgIkRldmljZUxp
c3QuaCIKKyNpbmNsdWRlICJYZW5JZmFjZUl0Zi5oIgogCiBjbGFzcyBDTGl0ZUFnZW50IDogcHVi
bGljIElEZXZpY2VDcmVhdG9yCiB7CkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6IC8vIHNlcnZp
Y2Ugc3VwcG9ydAogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CiAgICAg
CiAgICAgQ0RldmljZUxpc3QgICAgICAgICAgICAgbV9kZXZzOwotICAgIENEZXZpY2UqICAgICAg
ICAgICAgICAgIG1fZGV2OworICAgIENYZW5JZmFjZUl0ZiogICAgICAgICAgIG1fZGV2OwogfTsK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmNwcCBiL3Ny
Yy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdlNWZhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNl
SXRmLmNwcApAQCAtMCwwICsxLDE0NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVt
cyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAK
KyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiAKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSAiWGVuSWZhY2VJdGYuaCIKKyNpbmNsdWRlICJE
ZXZpY2VMaXN0LmgiCisjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiCisKK0NYZW5JZmFjZUl0
Zjo6Q1hlbklmYWNlSXRmKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDogQ0RldmljZShwYXRoKQore30K
KworLyp2aXJ0dWFsKi8gQ1hlbklmYWNlSXRmOjp+Q1hlbklmYWNlSXRmKCkKK3t9CisKKy8vIHN0
b3JlIGludGVyZmFjZQorYm9vbCBDWGVuSWZhY2VJdGY6OlN0b3JlUmVhZChjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKQoreworICAgIERXT1JEICAgYnl0ZXMoMCk7
CisgICAgY2hhciogICBidWZmZXI7CisgICAgYm9vbCAgICByZXN1bHQ7CisKKyAgICBJb2N0bChJ
T0NUTF9YRU5JRkFDRV9TVE9SRV9SRUFELAorICAgICAgICAgICh2b2lkKilwYXRoLmNfc3RyKCks
IChEV09SRClwYXRoLmxlbmd0aCgpICsgMSwKKyAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAg
ICZieXRlcyk7CisKKyAgICBidWZmZXIgPSBuZXcgY2hhcltieXRlcyArIDFdOworICAgIGlmIChi
dWZmZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gSW9j
dGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVBRCwKKyAgICAgICAgICAgICAgICAgICAodm9pZCop
cGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisgICAgICAgICAgICAgICAg
ICAgYnVmZmVyLCBieXRlcyk7CisKKyAgICBidWZmZXJbYnl0ZXNdID0gMDsKKyAgICBpZiAocmVz
dWx0KQorICAgICAgICB2YWx1ZSA9IGJ1ZmZlcjsKKworICAgIGRlbGV0ZSBbXSBidWZmZXI7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBDWGVuSWZhY2VJdGY6OlN0b3JlV3JpdGUoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBi
b29sICAgcmVzdWx0OworICAgIHNpemVfdCBsZW5ndGggPSBwYXRoLmxlbmd0aCgpICsgMSArIHZh
bHVlLmxlbmd0aCgpICsgMSArIDE7CisgICAgY2hhciogIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0
aF07CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBtZW1jcHkoYnVmZmVyLCBwYXRoLmNfc3RyKCksIHBhdGgubGVuZ3RoKCkpOworICAgIGJ1ZmZl
cltwYXRoLmxlbmd0aCgpXSA9IDA7CisKKyAgICBtZW1jcHkoYnVmZmVyICsgcGF0aC5sZW5ndGgo
KSArIDEsIHZhbHVlLmNfc3RyKCksIHZhbHVlLmxlbmd0aCgpKTsKKyAgICBidWZmZXJbcGF0aC5s
ZW5ndGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKV0gPSAwOworICAgIGJ1ZmZlcltsZW5ndGggLSAx
XSA9IDA7CisKKyAgICByZXN1bHQgPSBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9XUklURSwg
YnVmZmVyLCAoRFdPUkQpbGVuZ3RoLCBOVUxMLCAwKTsKKyAgICBkZWxldGUgW10gYnVmZmVyOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdG9yZVJlbW92ZShj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZB
Q0VfU1RPUkVfUkVNT1ZFLAorICAgICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAo
RFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisgICAgICAgICAgICAgICAgIE5VTEwsIDApOworfQor
Citib29sIENYZW5JZmFjZUl0Zjo6U3RvcmVBZGRXYXRjaChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCwgSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dB
VENIX0lOICBpbiAgPSB7IChQQ0hBUilwYXRoLmNfc3RyKCksIChEV09SRClwYXRoLmxlbmd0aCgp
ICsgMSwgZXZ0IH07CisgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dBVENIX09VVCBvdXQgPSB7IE5V
TEwgfTsKKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX0FERF9XQVRDSCwKKyAg
ICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksCisgICAgICAgICAgICAgICAmb3V0
LCAoRFdPUkQpc2l6ZW9mKG91dCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgKmN0eHQg
PSBvdXQuQ29udGV4dDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDWGVuSWZhY2VJdGY6
OlN0b3JlUmVtb3ZlV2F0Y2godm9pZCogY3R4dCkKK3sKKyAgICBYRU5JRkFDRV9TVE9SRV9SRU1P
VkVfV0FUQ0hfSU4gaW4gPSB7IGN0eHQgfTsKKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZB
Q0VfU1RPUkVfUkVNT1ZFX1dBVENILAorICAgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXpl
b2YoaW4pLAorICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKK30KKworLy8gc3VzcGVuZCBpbnRl
cmZhY2UKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdXNwZW5kUmVnaXN0ZXIoSEFORExFIGV2dCwgdm9p
ZCoqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9JTiAgaW4gID0geyBl
dnQgfTsKKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVCBvdXQgPSB7IE5VTEwgfTsK
KyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NVU1BFTkRfUkVHSVNURVIsCisgICAgICAg
ICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4pLAorICAgICAgICAgICAgICAgJm91dCwgKERX
T1JEKXNpemVvZihvdXQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICpjdHh0ID0gb3V0
LkNvbnRleHQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdXNw
ZW5kRGVyZWdpc3Rlcih2b2lkKiBjdHh0KQoreworICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUIGluID0geyBjdHh0IH07CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NV
U1BFTkRfREVSRUdJU1RFUiwKKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6ZW9mKGlu
KSwKKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Cit9CisKKy8vIHNoYXJlZGluZm8gaW50ZXJm
YWNlCitib29sIENYZW5JZmFjZUl0Zjo6U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJTUUqIHRpbWUp
Cit7CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NIQVJFRElORk9fR0VUX1RJTUUs
CisgICAgICAgICAgICAgICAgIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgIHRpbWUsIHNpemVv
ZihGSUxFVElNRSkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaCBiL3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzZmMTg5Ci0tLSAvZGV2L251
bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5JRkFDRUlURl9IXworI2RlZmlu
ZSBfWEVOSUZBQ0VJVEZfSF8KKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlICJEZXZp
Y2VMaXN0LmgiCisjaW5jbHVkZSA8c3RyaW5nPgorCitjbGFzcyBDWGVuSWZhY2VJdGYgOiBwdWJs
aWMgQ0RldmljZQoreworcHVibGljOgorICAgIENYZW5JZmFjZUl0Zihjb25zdCB3Y2hhcl90KiBw
YXRoKTsKKyAgICB2aXJ0dWFsIH5DWGVuSWZhY2VJdGYoKTsKKworcHVibGljOiAvLyBzdG9yZSBp
bnRlcmZhY2UKKyAgICBib29sIFN0b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3Rk
OjpzdHJpbmcmIHZhbHVlKTsKKyAgICBib29sIFN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgICAgYm9vbCBTdG9yZVJlbW92ZShj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CisgICAgYm9vbCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0
ZDo6c3RyaW5nJiBwYXRoLCBIQU5ETEUgZXZ0LCB2b2lkKiogY3R4dCk7CisgICAgYm9vbCBTdG9y
ZVJlbW92ZVdhdGNoKHZvaWQqIGN0eHQpOworCitwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNl
CisgICAgYm9vbCBTdXNwZW5kUmVnaXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOworICAg
IGJvb2wgU3VzcGVuZERlcmVnaXN0ZXIodm9pZCogY3R4dCk7CisKK3B1YmxpYzogLy8gc2hhcmVk
aW5mbyBpbnRlcmZhY2UKKyAgICBib29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1l
KTsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQu
dmN4cHJvaiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKaW5kZXggODRiNTEx
My4uNDg2MzA2MSAxMDA2NDQKLS0tIGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJv
agorKysgYi92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCkBAIC0xOTUsMTAgKzE5
NSwxMiBAQAogICA8SXRlbUdyb3VwPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcWGVuSWZhY2VJdGYuY3BwIiAvPgogCTwvSXRlbUdyb3Vw
PgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVh
Z2VudFxMaXRlQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1xs
aXRlYWdlbnRcRGV2aWNlTGlzdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXGxpdGVhZ2VudFxYZW5JZmFjZUl0Zi5oIiAvPgogCTwvSXRlbUdyb3VwPgogICA8SXRlbUdy
b3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XG1lc3Nh
Z2VzLm1jIj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2og
Yi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCmluZGV4IDZhM2M3ODcuLmE3ZDEw
YzAgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKKysrIGIv
dnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagpAQCAtMTk5LDEwICsxOTksMTIgQEAK
ICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xsaXRlYWdl
bnRcTGl0ZUFnZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xs
aXRlYWdlbnRcRGV2aWNlTGlzdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwu
LlxzcmNcbGl0ZWFnZW50XFhlbklmYWNlSXRmLmNwcCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExp
dGVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2Vu
dFxEZXZpY2VMaXN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0
ZWFnZW50XFhlbklmYWNlSXRmLmgiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgog
ICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1j
Ij4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD2-0000sY-Ca; Tue, 24 May 2016 14:21:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD0-0000o5-Gv
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:22 +0000
Received: from [193.109.254.147] by server-8.bemta-14.messagelabs.com id
 D1/E4-30272-26364475; Tue, 24 May 2016 14:21:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpG5isku
 4wYL3mhZ/Fic6MHoc/nCFJYAxijUzLym/IoE140DjLqaClwkV5/beYWtgnOrbxcjJISHgL3H7
 wF5GEJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sXYwcHMJA9soZDiBhFgFViSn9k1lBb
 F4BV4lPe1tZIUZqSGxqmMEGYnMKuEm8+3AfbKQQUM3nTd8ZIWwliW+LXzBD9ApKnJz5hAVilY
 TEwRcgcQ6gOdwSf7vtJzDyzUJSNQtJ1QJGplWMGsWpRWWpRbqGxnpJRZnpGSW5iZk5uoaGJnq
 5qcXFiempOYlJxXrJ+bmbGIHhVM/AwLiDcdd2z0OMkhxMSqK8BUku4UJ8SfkplRmJxRnxRaU5
 qcWHGGU4OJQkeH1BcoJFqempFWmZOcDAhklLcPAoifD+SQRK8xYXJOYWZ6ZDpE4x6nLMWn5nL
 ZMQS15+XqqUOK8gyAwBkKKM0jy4EbAou8QoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmDccZB
 VPZl4J3KZXQEcwAR3h/8UZ5IiSRISUVAMje4Zx5jHXmVtY3xUs2Gwx/XKA1wYn/v29u+yi9uz
 bZJgl8FQiZAfr213uj+aYO0XpH19hYjdDp76A/5n4v1M/NmsdPbj92Sr7OxsOX7ngfPjN+a2O
 0z87Ru1XdTnvZLt5C9OpL/aOxxdYSx76K9c84bz2JEsZj83/Gs8yv2NQY9NisOS6WrjKUYmlO
 CPRUIu5qDgRAJUUMK+tAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1464099677!43542270!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1860 invoked from network); 24 May 2016 14:21:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289470"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:48 +0100
Message-ID: <1464099660-12432-9-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 08/20] Add XenIfaceItf
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWJzdHJhY3QgdGhlIElPQ1RMIGNhbGxzIGluIGEgQ0RldmljZSBzdWJjbGFzcy4gSGFuZGxlcyB0
cmFuc2xhdGlvbiAKdG8vZnJvbSBtZXRob2QgcGFyYW1ldGVycyB0by9mcm9tIElPQ1RMIGJ1ZmZl
cnMKClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0t
CiBzcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwICAgICAgIHwgIDEwICsrLQogc3JjL2xpdGVh
Z2VudC9EZXZpY2VMaXN0LmggICAgICAgICB8ICAgMiArLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuY3BwICAgICAgICB8ICAgNiArLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgICAgICAg
ICB8ICAgMyArLQogc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAgICAgICB8IDE0NSArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvbGl0ZWFnZW50L1hlbklmYWNl
SXRmLmggICAgICAgIHwgIDYwICsrKysrKysrKysrKysrKwogdnMyMDEyL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvaiB8ICAgMiArCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9q
IHwgICAyICsKIDggZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmgKCmRpZmYgLS1naXQg
YS9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuY3BwIGIvc3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0
LmNwcAppbmRleCA5MDMzNDA3Li4zZmM5YTg1IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0Rl
dmljZUxpc3QuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvRGV2aWNlTGlzdC5jcHAKQEAgLTEwMSwx
MiArMTAxLDE4IEBAIGNvbnN0IHdjaGFyX3QqIENEZXZpY2U6OlBhdGgoKSBjb25zdAogICAgIHJl
dHVybiBtX3BhdGguY19zdHIoKTsKIH0KIAotYm9vbCBDRGV2aWNlOjpJb2N0bChEV09SRCBpb2N0
bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdPUkQgb3V0c3osIERXT1JEKiBi
eXRlcykKK2Jvb2wgQ0RldmljZTo6SW9jdGwoRFdPUkQgaW9jdGwsIHZvaWQqIGluLCBEV09SRCBp
bnN6LCB2b2lkKiBvdXQsIERXT1JEIG91dHN6LCBEV09SRCogYnl0ZXMgLyo9IE5VTEwqLykKIHsK
ICAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGlmICghRGV2aWNlSW9Db250cm9sKG1faGFuZGxlLCBpb2N0bCwgaW4s
IGluc3osIG91dCwgb3V0c3osIGJ5dGVzLCBOVUxMKSkKKyAgICBEV09SRCAgIF9ieXRlczsKKyAg
ICBpZiAoIURldmljZUlvQ29udHJvbChtX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlvY3RsLAorICAgICAgICAgICAgICAgICAgICAgICAgaW4sIGluc3osCisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQsIG91dHN6LAorICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGVzID09
IE5VTEwpID8gJl9ieXRlcyA6IGJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
c3JjL2xpdGVhZ2VudC9EZXZpY2VMaXN0LmggYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaApp
bmRleCA0NTdhMDk5Li42YTFiMGI0IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0RldmljZUxp
c3QuaAorKysgYi9zcmMvbGl0ZWFnZW50L0RldmljZUxpc3QuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAgICAgY29uc3Qgd2NoYXJfdCogUGF0aCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgYm9vbCBJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91
dCwgRFdPUkQgb3V0c3osIERXT1JEKiBieXRlcyk7CisgICAgYm9vbCBJb2N0bChEV09SRCBpb2N0
bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdPUkQgb3V0c3osIERXT1JEKiBi
eXRlcyA9IE5VTEwpOwogCiBwcml2YXRlOgogICAgIHN0ZDo6d3N0cmluZyAgICBtX3BhdGg7CmRp
ZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xp
dGVBZ2VudC5jcHAKaW5kZXggYTc5ODdkYy4uOTA4YzBjOSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAt
MTM3LDE0ICsxMzcsMTQgQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8g
Q0RldmljZSogQ0xpdGVBZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCiB7CiAgICAg
Ly8gY3JlYXRlIHN1YmNsYXNzIG9mIENEZXZpY2UKLSAgICByZXR1cm4gbmV3IENEZXZpY2UocGF0
aCk7CisgICAgcmV0dXJuIG5ldyBDWGVuSWZhY2VJdGYocGF0aCk7CiB9CiAKIC8qdmlydHVhbCov
IHZvaWQgQ0xpdGVBZ2VudDo6T25EZXZpY2VBZGRlZChDRGV2aWNlKiBkZXYpCiB7CiAgICAgQ0xp
dGVBZ2VudDo6TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKICAgICBp
ZiAobV9kZXYgPT0gTlVMTCkgewotICAgICAgICBtX2RldiA9IGRldjsKKyAgICAgICAgbV9kZXYg
PSAoQ1hlbklmYWNlSXRmKilkZXY7CiAgICAgICAgIC8vIHNldHRpbmcgYWN0aXZlIGRldmljZQog
ICAgIH0KIH0KQEAgLTE1Miw3ICsxNTIsNyBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAv
KnZpcnR1YWwqLyB2b2lkIENMaXRlQWdlbnQ6Ok9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYp
CiB7CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQoJXdzKVxuIiwgZGV2LT5Q
YXRoKCkpOwotICAgIGlmIChkZXYgPT0gbV9kZXYpIHsKKyAgICBpZiAoKENYZW5JZmFjZUl0Ziop
ZGV2ID09IG1fZGV2KSB7CiAgICAgICAgIG1fZGV2ID0gTlVMTDsKICAgICAgICAgLy8gYWN0aXZl
IGRldmljZQogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmggYi9z
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IDI2MWU3MzcuLjM2ODBhZmQgMTAwNjQ0Ci0t
LSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuaApAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHBy
b3ZpZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKIAogI2luY2x1ZGUgIkRldmljZUxp
c3QuaCIKKyNpbmNsdWRlICJYZW5JZmFjZUl0Zi5oIgogCiBjbGFzcyBDTGl0ZUFnZW50IDogcHVi
bGljIElEZXZpY2VDcmVhdG9yCiB7CkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6IC8vIHNlcnZp
Y2Ugc3VwcG9ydAogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CiAgICAg
CiAgICAgQ0RldmljZUxpc3QgICAgICAgICAgICAgbV9kZXZzOwotICAgIENEZXZpY2UqICAgICAg
ICAgICAgICAgIG1fZGV2OworICAgIENYZW5JZmFjZUl0ZiogICAgICAgICAgIG1fZGV2OwogfTsK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmNwcCBiL3Ny
Yy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdlNWZhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNl
SXRmLmNwcApAQCAtMCwwICsxLDE0NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVt
cyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAK
KyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiAKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSAiWGVuSWZhY2VJdGYuaCIKKyNpbmNsdWRlICJE
ZXZpY2VMaXN0LmgiCisjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiCisKK0NYZW5JZmFjZUl0
Zjo6Q1hlbklmYWNlSXRmKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDogQ0RldmljZShwYXRoKQore30K
KworLyp2aXJ0dWFsKi8gQ1hlbklmYWNlSXRmOjp+Q1hlbklmYWNlSXRmKCkKK3t9CisKKy8vIHN0
b3JlIGludGVyZmFjZQorYm9vbCBDWGVuSWZhY2VJdGY6OlN0b3JlUmVhZChjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKQoreworICAgIERXT1JEICAgYnl0ZXMoMCk7
CisgICAgY2hhciogICBidWZmZXI7CisgICAgYm9vbCAgICByZXN1bHQ7CisKKyAgICBJb2N0bChJ
T0NUTF9YRU5JRkFDRV9TVE9SRV9SRUFELAorICAgICAgICAgICh2b2lkKilwYXRoLmNfc3RyKCks
IChEV09SRClwYXRoLmxlbmd0aCgpICsgMSwKKyAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAg
ICZieXRlcyk7CisKKyAgICBidWZmZXIgPSBuZXcgY2hhcltieXRlcyArIDFdOworICAgIGlmIChi
dWZmZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gSW9j
dGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVBRCwKKyAgICAgICAgICAgICAgICAgICAodm9pZCop
cGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisgICAgICAgICAgICAgICAg
ICAgYnVmZmVyLCBieXRlcyk7CisKKyAgICBidWZmZXJbYnl0ZXNdID0gMDsKKyAgICBpZiAocmVz
dWx0KQorICAgICAgICB2YWx1ZSA9IGJ1ZmZlcjsKKworICAgIGRlbGV0ZSBbXSBidWZmZXI7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBDWGVuSWZhY2VJdGY6OlN0b3JlV3JpdGUoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBi
b29sICAgcmVzdWx0OworICAgIHNpemVfdCBsZW5ndGggPSBwYXRoLmxlbmd0aCgpICsgMSArIHZh
bHVlLmxlbmd0aCgpICsgMSArIDE7CisgICAgY2hhciogIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0
aF07CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBtZW1jcHkoYnVmZmVyLCBwYXRoLmNfc3RyKCksIHBhdGgubGVuZ3RoKCkpOworICAgIGJ1ZmZl
cltwYXRoLmxlbmd0aCgpXSA9IDA7CisKKyAgICBtZW1jcHkoYnVmZmVyICsgcGF0aC5sZW5ndGgo
KSArIDEsIHZhbHVlLmNfc3RyKCksIHZhbHVlLmxlbmd0aCgpKTsKKyAgICBidWZmZXJbcGF0aC5s
ZW5ndGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKV0gPSAwOworICAgIGJ1ZmZlcltsZW5ndGggLSAx
XSA9IDA7CisKKyAgICByZXN1bHQgPSBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9XUklURSwg
YnVmZmVyLCAoRFdPUkQpbGVuZ3RoLCBOVUxMLCAwKTsKKyAgICBkZWxldGUgW10gYnVmZmVyOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdG9yZVJlbW92ZShj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZB
Q0VfU1RPUkVfUkVNT1ZFLAorICAgICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAo
RFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisgICAgICAgICAgICAgICAgIE5VTEwsIDApOworfQor
Citib29sIENYZW5JZmFjZUl0Zjo6U3RvcmVBZGRXYXRjaChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCwgSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dB
VENIX0lOICBpbiAgPSB7IChQQ0hBUilwYXRoLmNfc3RyKCksIChEV09SRClwYXRoLmxlbmd0aCgp
ICsgMSwgZXZ0IH07CisgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dBVENIX09VVCBvdXQgPSB7IE5V
TEwgfTsKKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX0FERF9XQVRDSCwKKyAg
ICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksCisgICAgICAgICAgICAgICAmb3V0
LCAoRFdPUkQpc2l6ZW9mKG91dCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgKmN0eHQg
PSBvdXQuQ29udGV4dDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDWGVuSWZhY2VJdGY6
OlN0b3JlUmVtb3ZlV2F0Y2godm9pZCogY3R4dCkKK3sKKyAgICBYRU5JRkFDRV9TVE9SRV9SRU1P
VkVfV0FUQ0hfSU4gaW4gPSB7IGN0eHQgfTsKKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZB
Q0VfU1RPUkVfUkVNT1ZFX1dBVENILAorICAgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXpl
b2YoaW4pLAorICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKK30KKworLy8gc3VzcGVuZCBpbnRl
cmZhY2UKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdXNwZW5kUmVnaXN0ZXIoSEFORExFIGV2dCwgdm9p
ZCoqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9JTiAgaW4gID0geyBl
dnQgfTsKKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVCBvdXQgPSB7IE5VTEwgfTsK
KyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NVU1BFTkRfUkVHSVNURVIsCisgICAgICAg
ICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4pLAorICAgICAgICAgICAgICAgJm91dCwgKERX
T1JEKXNpemVvZihvdXQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICpjdHh0ID0gb3V0
LkNvbnRleHQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1hlbklmYWNlSXRmOjpTdXNw
ZW5kRGVyZWdpc3Rlcih2b2lkKiBjdHh0KQoreworICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUIGluID0geyBjdHh0IH07CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NV
U1BFTkRfREVSRUdJU1RFUiwKKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6ZW9mKGlu
KSwKKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Cit9CisKKy8vIHNoYXJlZGluZm8gaW50ZXJm
YWNlCitib29sIENYZW5JZmFjZUl0Zjo6U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJTUUqIHRpbWUp
Cit7CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NIQVJFRElORk9fR0VUX1RJTUUs
CisgICAgICAgICAgICAgICAgIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgIHRpbWUsIHNpemVv
ZihGSUxFVElNRSkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaCBiL3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzZmMTg5Ci0tLSAvZGV2L251
bGwKKysrIGIvc3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
IENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
ICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5JRkFDRUlURl9IXworI2RlZmlu
ZSBfWEVOSUZBQ0VJVEZfSF8KKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlICJEZXZp
Y2VMaXN0LmgiCisjaW5jbHVkZSA8c3RyaW5nPgorCitjbGFzcyBDWGVuSWZhY2VJdGYgOiBwdWJs
aWMgQ0RldmljZQoreworcHVibGljOgorICAgIENYZW5JZmFjZUl0Zihjb25zdCB3Y2hhcl90KiBw
YXRoKTsKKyAgICB2aXJ0dWFsIH5DWGVuSWZhY2VJdGYoKTsKKworcHVibGljOiAvLyBzdG9yZSBp
bnRlcmZhY2UKKyAgICBib29sIFN0b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3Rk
OjpzdHJpbmcmIHZhbHVlKTsKKyAgICBib29sIFN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgICAgYm9vbCBTdG9yZVJlbW92ZShj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CisgICAgYm9vbCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0
ZDo6c3RyaW5nJiBwYXRoLCBIQU5ETEUgZXZ0LCB2b2lkKiogY3R4dCk7CisgICAgYm9vbCBTdG9y
ZVJlbW92ZVdhdGNoKHZvaWQqIGN0eHQpOworCitwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNl
CisgICAgYm9vbCBTdXNwZW5kUmVnaXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOworICAg
IGJvb2wgU3VzcGVuZERlcmVnaXN0ZXIodm9pZCogY3R4dCk7CisKK3B1YmxpYzogLy8gc2hhcmVk
aW5mbyBpbnRlcmZhY2UKKyAgICBib29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1l
KTsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQu
dmN4cHJvaiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKaW5kZXggODRiNTEx
My4uNDg2MzA2MSAxMDA2NDQKLS0tIGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJv
agorKysgYi92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCkBAIC0xOTUsMTAgKzE5
NSwxMiBAQAogICA8SXRlbUdyb3VwPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XGxpdGVhZ2VudFxMaXRlQWdlbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cc3JjXGxpdGVhZ2VudFxEZXZpY2VMaXN0LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xsaXRlYWdlbnRcWGVuSWZhY2VJdGYuY3BwIiAvPgogCTwvSXRlbUdyb3Vw
PgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVh
Z2VudFxMaXRlQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1xs
aXRlYWdlbnRcRGV2aWNlTGlzdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXGxpdGVhZ2VudFxYZW5JZmFjZUl0Zi5oIiAvPgogCTwvSXRlbUdyb3VwPgogICA8SXRlbUdy
b3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XG1lc3Nh
Z2VzLm1jIj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2og
Yi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCmluZGV4IDZhM2M3ODcuLmE3ZDEw
YzAgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKKysrIGIv
dnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagpAQCAtMTk5LDEwICsxOTksMTIgQEAK
ICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xsaXRlYWdl
bnRcTGl0ZUFnZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xs
aXRlYWdlbnRcRGV2aWNlTGlzdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwu
LlxzcmNcbGl0ZWFnZW50XFhlbklmYWNlSXRmLmNwcCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XExp
dGVBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXGxpdGVhZ2Vu
dFxEZXZpY2VMaXN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0
ZWFnZW50XFhlbklmYWNlSXRmLmgiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgog
ICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNcbGl0ZWFnZW50XG1lc3NhZ2VzLm1j
Ij4KLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD5-0000u8-El; Tue, 24 May 2016 14:21:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD3-0000tG-2S
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:25 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 0D/D6-26543-46364475; Tue, 24 May 2016 14:21:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEIsWRWlGSWpSXmKPExsXitHRDpG5Ssku
 4waTZGhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o+fSHcaCxb3sFevPX2NuYDy0j7WLkZNDQsBf
 Yu/m/ewgNpuAhsSMzsUsILaIgLrEvs9bmUBsZgE1iev7u4DqOTiEBXQklj7jAwmzCKhKvF/2m
 w3E5hVwlTg46wALxEgNiU0NM8DinAJuEu8+3AeLCwHVfN70nRHCVpL4tvgFM0SvoMTJmU9YIF
 ZJSBx8ARLnAJrDLfG3234CI98sJFWzkFQtYGRaxahRnFpUllqka2iol1SUmZ5RkpuYmQPkmej
 lphYXJ6an5iQmFesl5+duYgSGFAMQ7GA8s8L5EKMkB5OSKC9noku4EF9SfkplRmJxRnxRaU5q
 8SFGGQ4OJQneuyA5waLU9NSKtMwcYHDDpCU4eJREeP+ApHmLCxJzizPTIVKnGI05tiy4sZaJY
 0bf/bVMQix5+XmpUuK8gklApQIgpRmleXCDYFF3iVFWSpiXEeg0IZ6C1KLczBJU+VeM4hyMSs
 K8vCBTeDLzSuD2vQI6hQnoFP8vziCnlCQipKQaGKVk7d3fnQmckrd420mZ3dkxKr961s3bmXZ
 v8bpZt3/mxWnLz5HfbDfxyvGJF8+4XNT6Gtx9x33mN9OoZIa9RSs3W25kLxQNYLmy8ZvVGw/X
 lp1CAZ+2vJh8LkJv7u1Jd8SWb87U4qo6W3z5huwi9psrnouqbDReWHhWZJXZlNQaT8X9Pf8Fu
 VuUWIozEg21mIuKEwFjKOYGtQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!6
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 65155 invoked from network); 24 May 2016 14:21:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289474"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:44 +0100
Message-ID: <1464099660-12432-5-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 04/20] Remove win32stubagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBpcyAxIGxhcmdlIGNvZGUgZGVsZXRpb24gcGF0Y2gsIHRoZSBsaXRlYWdlbnQgd2lsbCBi
ZSByZWltcGxlbWVudGVkIApvdmVyIHRoZSBuZXh0IHNldCBvZiBwYXRjaGVzCgpTaWduZWQtb2Zm
LWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L1dtaUFjY2Vzc29yLmNwcCB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCAgIHwgICA4OCAtLS0K
IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcCAgfCAgMjMwIC0tLS0tLS0KIHNyYy93
aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgfCAgMTI2IC0tLS0KIHNyYy93aW4zMnN0dWJh
Z2VudC9YU2VydmljZS5jcHAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oICAgICAgfCAgIDU0IC0tCiBzcmMvd2luMzJz
dHViYWdlbnQvZXJyb3JzLmNwcCAgICAgIHwgIDEwMiAtLS0KIHNyYy93aW4zMnN0dWJhZ2VudC9t
ZXNzYWdlcy5tYyAgICAgfCAgIDY2IC0tCiBzcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcCAg
ICAgIHwgICAzOSAtLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oICAgICAgICB8ICAgNDMg
LS0KIHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMgICAgfCAgIDYwIC0tCiBzcmMvd2lu
MzJzdHViYWdlbnQveGVuLmljbyAgICAgICAgIHwgIEJpbiAyNTIxNCAtPiAwIGJ5dGVzCiB2czIw
MTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgICAzNCArLQogdnMyMDEzL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgMzEgLQogMTQgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRp
b25zKCspLCAzMjQ2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0
dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHVi
YWdlbnQvV21pQWNjZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2Vu
dC9YU0FjY2Vzc29yLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9Y
U0FjY2Vzc29yLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZp
Y2UuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcAogZGVsZXRl
IG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYwogZGVsZXRlIG1vZGUg
MTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQg
c3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMy
c3R1YmFnZW50L3czMnhhZ2VudC5yYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC94ZW4uaWNvCgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29y
LmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI4NWZmOGUuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L1dtaUFjY2Vzc29yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMzEgKzAsMCBAQAotLyogQ29w
eXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0g
KiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAK
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0g
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAq
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJzdGRhZnguaCIKLSNkZWZpbmUgX1dJTjMy
X0RDT00KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPGhhc2hfbWFwPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0j
aW5jbHVkZSAid2luZXJyb3IuaCIKLSNpbmNsdWRlICJXTUlBY2Nlc3Nvci5oIgotI2luY2x1ZGUg
IlhTZXJ2aWNlLmgiCi0jaW5jbHVkZSAiY29tdXRpbC5oIgotCi0vLyNpbmNsdWRlICJ4c19wcml2
YXRlLmgiCi0jaW5jbHVkZSA8d2JlbWlkbC5oPgotCi0jaW5jbHVkZSA8dmVyc2lvbi5oPgotCi0j
ZGVmaW5lIFdJREVOMih4KSBMICMjIHgKLSNkZWZpbmUgV0lERU4oeCkgV0lERU4yKHgpCi0KLSNk
ZWZpbmUgT0JKRUNUX05BTUVfQShfTmFtZSkgT0JKRUNUX1BSRUZJWF9TVFIgIlhlblN0b3JlIiAj
X05hbWUKLSNkZWZpbmUgT0JKRUNUX05BTUVfVyhfTmFtZSkgV0lERU4oT0JKRUNUX1BSRUZJWF9T
VFIpIEwiWGVuU3RvcmUiIFdJREVOKCNfTmFtZSkKLQotI3ByYWdtYSBjb21tZW50KGxpYiwgIndi
ZW11dWlkLmxpYiIpCi0jcHJhZ21hIGNvbW1lbnQobGliLCAidXVpZC5saWIiKQotI3ByYWdtYSBj
b21tZW50KGxpYiwgImNvbXN1cHB3LmxpYiIpCi0KLUJTVFIgbWtCc3RyKGNvbnN0IGNoYXIgKnN0
cmluZywgc2l6ZV90IGxlbikgewotICAgIEJTVFIgcmVzID0gTlVMTDsKLSAgICBzaXplX3QgcmV0
dXJuZWQ7Ci0gICAgd2NoYXJfdCogd3N0cmluZyA9IG5ldyB3Y2hhcl90W2xlbisxXTsKLSAgICBp
ZiAod3N0cmluZyA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8gbWFsbG9jX3dzdHJpbmc7Ci0gICAg
fQotICAgIG1ic3Rvd2NzX3MoJnJldHVybmVkLCB3c3RyaW5nLCBsZW4rMSwgc3RyaW5nLCBsZW4p
OwotICAgIHJlcyA9IFN5c0FsbG9jU3RyaW5nKHdzdHJpbmcpOwotICAgIGRlbGV0ZSB3c3RyaW5n
OwotbWFsbG9jX3dzdHJpbmc6Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotY2hhciAqIGZvcm1hdENo
YXJTdHJJbnQoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGwpIHsKLSAgICBjaGFyICpidWYgPSBO
VUxMOwotICAgIGludCBjbnQgPSBfdnNjcHJpbnRmKGZtdCwgbCk7Ci0gICAgYnVmID0gKGNoYXIg
KilYc0FsbG9jKGNudCsxKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgZ290byBt
YWxsb2NfYnVmOwotICAgIH0KLSAgICBfdnNucHJpbnRmKGJ1ZiwgY250KzEsIGZtdCwgbCk7Ci1t
YWxsb2NfYnVmOgotICAgIHJldHVybiBidWY7Ci19Ci0KLWNoYXIgKiBmb3JtYXRDaGFyU3RyKGNv
bnN0IGNoYXIgKmZtdCwgLi4uICkgewotICAgIGNoYXIgKmJ1ZiA9TlVMTDsKLSAgICB2YV9saXN0
IGw7Ci0gICAgdmFfc3RhcnQobCwgZm10KTsKLSAgICBidWYgPSBmb3JtYXRDaGFyU3RySW50KGZt
dCwgbCk7Ci0gICAgdmFfZW5kKGwpOwotICAgIHJldHVybiBidWY7Ci19Ci0KLUJTVFIgZm9ybWF0
QnN0cihjb25zdCBjaGFyICpmbXQsIC4uLikgCi17Ci0gICAgY2hhciAqYnVmOwotICAgIHZhX2xp
c3QgbDsgIAotICAgIEJTVFIgcmVzID0gTlVMTDsKLSAgICB2YV9zdGFydChsLCBmbXQpOwotICAg
IGJ1ZiA9IGZvcm1hdENoYXJTdHJJbnQoZm10LCBsKTsKLSAgICB2YV9lbmQobCk7Ci0gICAgcmVz
ID0gbWtCc3RyKGJ1Ziwgc3RybGVuKGJ1ZikpOwotICAgIFhzRnJlZShidWYpOwotICAgIHJldHVy
biByZXM7Ci19Ci0KLWludCBzZXRWYXJpYW50U3RyaW5nKFZBUklBTlQqIHZhciwgY29uc3QgY2hh
ciAqZGF0YSwgc2l6ZV90IGxlbikgewotICAgIGludCBlcnI9LTE7Ci0gICAgVmFyaWFudEluaXQo
dmFyKTsKLSAgICB2YXItPnZ0PVZUX0JTVFI7Ci0gICAgdmFyLT5ic3RyVmFsID0gbWtCc3RyKGRh
dGEsIGxlbik7Ci0gICAgaWYgKHZhci0+YnN0clZhbCA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8g
c3lzYWxsb2M7Ci0gICAgfQotICAgIGVycj0wOwotc3lzYWxsb2M6Ci0gICAgcmV0dXJuIGVycjsK
LX0KLQotCi1pbnQgc2V0VmFyaWFudFN0cmluZyhWQVJJQU5UKiB2YXIsIGNvbnN0IGNoYXIgKnN0
cmluZykgewotICAgIHJldHVybiBzZXRWYXJpYW50U3RyaW5nKHZhciwgc3RyaW5nLCBzdHJsZW4o
c3RyaW5nKSk7Ci19Ci0KLQotY2xhc3MgV2F0Y2hTaW5rIDogcHVibGljIElXYmVtT2JqZWN0U2lu
awotewotICAgIExPTkcgbV9sUmVmOwotICAgIGJvb2wgYkRvbmU7IAotICAgIEhBTkRMRSB0cmln
Z2VyZXZlbnQ7Ci0gICAgSEFORExFIHRyaWdnZXJlcnJvcjsKLXB1YmxpYzoKLSAgICBjaGFyICpw
YXRoOwotICAgIFdhdGNoU2luayhIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50LCBjb25z
dCBjaGFyICpwYXRoKSB7IAotICAgICAgICBtX2xSZWYgPSAxOyAKLSAgICAgICAgdHJpZ2dlcmV2
ZW50ID0gZXZlbnQ7Ci0gICAgICAgIHRyaWdnZXJlcnJvciA9IGVycm9yZXZlbnQ7Ci0gICAgICAg
IHRoaXMtPnBhdGggPSBOVUxMOwotICAgICAgICBpZiAocGF0aCkgewotICAgICAgICAgICAgdGhp
cy0+cGF0aD0oY2hhciAqKVhzQWxsb2Moc3RybGVuKHBhdGgpKzEpOwotICAgICAgICAgICAgc3Ry
Y3B5KHRoaXMtPnBhdGgsIHBhdGgpOwotICAgICAgICB9Ci0gICAgfQotICAgfldhdGNoU2luaygp
IHsgYkRvbmUgPSBUUlVFOyB9Ci0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBF
IEFkZFJlZigpOwotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgp
OyAgICAgICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIAotICAgICAg
ICBRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdik7Ci0KLSAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSW5kaWNhdGUoIAotICAgICAgICAgICAgLyogW2lu
XSAqLwotICAgICAgICAgICAgTE9ORyBsT2JqZWN0Q291bnQsCi0gICAgICAgICAgICAvKiBbc2l6
ZV9pc11baW5dICovCi0gICAgICAgICAgICBJV2JlbUNsYXNzT2JqZWN0IF9fUlBDX0ZBUiAqX19S
UENfRkFSICphcE9iakFycmF5Ci0gICAgICAgICAgICApOwotICAgICAgICAKLSAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgU2V0U3RhdHVzKCAKLSAgICAgICAgICAgIC8qIFtp
bl0gKi8gTE9ORyBsRmxhZ3MsCi0gICAgICAgICAgICAvKiBbaW5dICovIEhSRVNVTFQgaFJlc3Vs
dCwKLSAgICAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBzdHJQYXJhbSwKLSAgICAgICAgICAgIC8q
IFtpbl0gKi8gSVdiZW1DbGFzc09iamVjdCBfX1JQQ19GQVIgKnBPYmpQYXJhbQotICAgICAgICAg
ICAgKTsKLX07Ci0KLQotVUxPTkcgV2F0Y2hTaW5rOjpBZGRSZWYoKQotewotICAgIHJldHVybiBJ
bnRlcmxvY2tlZEluY3JlbWVudCgmbV9sUmVmKTsKLX0KLQotVUxPTkcgV2F0Y2hTaW5rOjpSZWxl
YXNlKCkKLXsKLSAgICBMT05HIGxSZWYgPSBJbnRlcmxvY2tlZERlY3JlbWVudCgmbV9sUmVmKTsK
LSAgICBpZihsUmVmID09IDApCi0gICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIHJldHVybiBsUmVm
OwotfQotCi1IUkVTVUxUIFdhdGNoU2luazo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZv
aWQqKiBwcHYpCi17Ci0gICAgaWYgKHJpaWQgPT0gSUlEX0lVbmtub3duIHx8IHJpaWQgPT0gSUlE
X0lXYmVtT2JqZWN0U2luaykKLSAgICB7Ci0gICAgICAgICpwcHYgPSAoSVdiZW1PYmplY3RTaW5r
ICopIHRoaXM7Ci0gICAgICAgIEFkZFJlZigpOwotICAgICAgICByZXR1cm4gV0JFTV9TX05PX0VS
Uk9SOwotICAgIH0KLSAgICBlbHNlIHJldHVybiBFX05PSU5URVJGQUNFOwotfQotCi0KLUhSRVNV
TFQgV2F0Y2hTaW5rOjpJbmRpY2F0ZShsb25nIGxPYmpDb3VudCwgSVdiZW1DbGFzc09iamVjdCAq
KnBBcnJheSkKLXsKLSAgICBmb3IgKGxvbmcgaSA9IDA7IGkgPCBsT2JqQ291bnQ7IGkrKykKLSAg
ICB7Ci0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnBPYmogPSBwQXJyYXlbaV07Ci0gICAgICAg
IFNldEV2ZW50KHRoaXMtPnRyaWdnZXJldmVudCk7Ci0gICAgICAgIC8vIC4uLiB1c2UgdGhlIG9i
amVjdC4KLQotICAgICAgICAvLyBBZGRSZWYoKSBpcyBvbmx5IHJlcXVpcmVkIGlmIHRoZSBvYmpl
Y3Qgd2lsbCBiZSBoZWxkIGFmdGVyCi0gICAgICAgIC8vIHRoZSByZXR1cm4gdG8gdGhlIGNhbGxl
ci4KLSAgICB9Ci0KLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOwotfQotCi1IUkVTVUxUIFdh
dGNoU2luazo6U2V0U3RhdHVzKAotICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFncywK
LSAgICAgICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LAotICAgICAgICAgICAgLyog
W2luXSAqLyBCU1RSIHN0clBhcmFtLAotICAgICAgICAgICAgLyogW2luXSAqLyBJV2JlbUNsYXNz
T2JqZWN0IF9fUlBDX0ZBUiAqcE9ialBhcmFtCi0gICAgICAgICkKLXsKLSAgICBpZiAoRkFJTEVE
KGhSZXN1bHQpKSB7Ci0gICAgICAgIFhzTG9nKCJXTUkgQXN5YyB3YXRjaCBmYWlsZWQgJXBcbiIs
IHRoaXMpOwotICAgICAgICBTZXRFdmVudCh0aGlzLT50cmlnZ2VyZXJyb3IpOwotICAgIH0KLSAg
ICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOwotfQotCi0KLQotc3RydWN0IFdNSUFjY2Vzc29yCi17
Ci0gICAgSVdiZW1TZXJ2aWNlcyAqbXBTdmM7Ci0gICAgSVdiZW1TZXJ2aWNlcyAqbXBYU1N2YzsK
LSAgICAKLSAgICBIQU5ETEUgb3duaW5nX3RocmVhZDsKLX07Ci0KLXN0cnVjdCBXTUlBY2Nlc3Nv
ciAqd21pID0gTlVMTDsKLQotc3RhdGljIHN0cmluZyB3c3RyaW5nMnN0cmluZyhjb25zdCB3c3Ry
aW5nJiB3c3RyKQoteyAKLSAgICBpbnQgbGVuOwotCi0gICAgbGVuID0gV2lkZUNoYXJUb011bHRp
Qnl0ZShDUF9VVEY4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdzdHIuY19zdHIoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAgICBzdHJp
bmcgc3RyKGxlbiwgMCk7Ci0KLSAgICBsZW4gPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd3N0ci5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RyWzBdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGludClzdHIubGVuZ3RoKCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAg
ICByZXR1cm4gc3RyOwotfQotCi1zdGF0aWMgc3RyaW5nIGJzdHIyc3RyaW5nKGNvbnN0IEJTVFIm
IGJzdHIpCi17Ci0gICAgd3N0cmluZyB3c3RyKGJzdHIpOwotCi0gICAgcmV0dXJuIHdzdHJpbmcy
c3RyaW5nKHdzdHIpOwotfQotCi1JV2JlbUNsYXNzT2JqZWN0ICpnZXRDbGFzcyhXTUlBY2Nlc3Nv
ciAqKndtaSwgQlNUUiBwYXRoKSB7Ci0gICAgaWYgKCp3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0KLSAgICBpZiAoKCp3bWkpLT5tcFhTU3ZjID09IE5VTEwpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAg
SFJFU1VMVCBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5HZXRPYmplY3QocGF0aCxXQkVNX0ZMQUdf
UkVUVVJOX1dCRU1fQ09NUExFVEUsCi0gICAgICAgICAgICBOVUxMLCAmcmV0dXJuZWRPYmplY3Qs
IE5VTEwpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgcmV0dXJuZWRPYmplY3Qg
PU5VTEw7Ci0gICAgfQotICAgIHJldHVybiByZXR1cm5lZE9iamVjdDsKLX0KLQotSVdiZW1DbGFz
c09iamVjdCAqZ2V0T2JqZWN0KFdNSUFjY2Vzc29yICoqd21pLCBCU1RSIHBhdGgpIHsKLSAgICBJ
RW51bVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRFbnVtOwotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KnJldHVybmVkT2JqZWN0OwotICAgIGlmICgqd21pID09IE5VTEwpCi0gICAgICAgIHJldHVybiBO
VUxMOwotICAgIEFTU0VSVCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7Ci0gICAgSFJFU1VMVCBo
cmVzID0gICgqd21pKS0+bXBYU1N2Yy0+Q3JlYXRlSW5zdGFuY2VFbnVtKHBhdGgsIFdCRU1fRkxB
R19GT1JXQVJEX09OTFksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JnJldHVybmVkRW51bSk7Ci0gICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiR2V0RW51bSBmYWlsZWRcbiIpOwotICAgICAgICByZXR1cm5lZE9iamVjdCA9
TlVMTDsKLSAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgIH0KLSAgICBVTE9ORyBv
YmplY3RzOwotCi0gICAgaHJlcyA9IHJldHVybmVkRW51bS0+TmV4dChXQkVNX0lORklOSVRFLCAx
LCAmcmV0dXJuZWRPYmplY3QsICZvYmplY3RzKTsKLQotICAgICAgICAgICAgICAgIAotICAgIGlm
IChGQUlMRUQoaHJlcykgfHwgb2JqZWN0cyA8IDEpIHsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIkdldEZyb21FbnVtIGZhaWxlZFxuIik7Ci0gICAgICAgIHJldHVybmVkT2JqZWN0ID1OVUxM
OwotICAgIH0KLQotICAgIHJldHVybiByZXR1cm5lZE9iamVjdDsKLX0KLQotSFJFU1VMVCBtZXRo
b2RFeGVjKFdNSUFjY2Vzc29yKiogd21pLCAgSVdiZW1DbGFzc09iamVjdCogaW5zdGFuY2UsIGNv
bnN0IHdjaGFyX3QgKm1ldGhvZG5hbWUsIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCwg
SVdiZW1DbGFzc09iamVjdCAqKm91dE1ldGhvZEluc3QpCi17Ci0gICAgSFJFU1VMVCBocmVzPUVf
RkFJTCA7Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRzdG9yZT1OVUxMOwotICAgIEJTVFIg
YnBhdGhuYW1lID0gU3lzQWxsb2NTdHJpbmcoTCJfX1BBVEgiKTsKLSAgICBpZiAoYnBhdGhuYW1l
ID09IE5VTEwpewotICAgICAgICBnb3RvIGFsbG9jcGF0aG5hbWU7Ci0gICAgfQotCi0KLSAgICBW
QVJJQU5UIGluc3RhbmNlcGF0aDsKLSAgICBWYXJpYW50SW5pdCgmaW5zdGFuY2VwYXRoKTsKLSAg
ICBocmVzID0gaW5zdGFuY2UtPkdldChicGF0aG5hbWUsIDAsICZpbnN0YW5jZXBhdGgsIE5VTEws
IE5VTEwpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgZ290byBnZXRjbGFzc25h
bWU7Ci0gICAgfQotCi0KLSAgICBCU1RSIGJtZXRob2RuYW1lID0gU3lzQWxsb2NTdHJpbmcobWV0
aG9kbmFtZSk7Ci0gICAgaWYgKGJtZXRob2RuYW1lID09IE5VTEwpewotICAgICAgICBnb3RvIGFs
bG9jbWV0aG9kbmFtZTsKLSAgICB9Ci0KLSAgICBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVj
TWV0aG9kKGluc3RhbmNlcGF0aC5ic3RyVmFsLCBibWV0aG9kbmFtZSwgMCwgTlVMTCxpbk1ldGhv
ZEluc3QsICZvdXRzdG9yZSwgTlVMTCk7Ci0gICAgaWYgKG91dE1ldGhvZEluc3QgIT0gTlVMTCkg
ewotICAgICAgICAqb3V0TWV0aG9kSW5zdCA9IE5VTEw7Ci0gICAgICAgIGlmICghRkFJTEVEKGhy
ZXMpKXsKLSAgICAgICAgICAgICpvdXRNZXRob2RJbnN0ID0gb3V0c3RvcmU7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBTeXNGcmVlU3RyaW5nKGJtZXRob2RuYW1lKTsKLWFsbG9jbWV0aG9kbmFt
ZToKLQotZ2V0Y2xhc3NuYW1lOgotICAgIFZhcmlhbnRDbGVhcigmaW5zdGFuY2VwYXRoKTsKLSAg
ICBTeXNGcmVlU3RyaW5nKGJwYXRobmFtZSk7Ci1hbGxvY3BhdGhuYW1lOgotICAgIHJldHVybiBo
cmVzOwotfQotc3RhdGljIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBydW5YU1F1ZXJ5KFdNSUFjY2Vz
c29yICoqd21pLCBCU1RSIHF1ZXJ5KQotewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAgICAgICAg
cmV0dXJuIE5VTEw7Ci0KLSAgICBBU1NFUlQoKCp3bWkpLT5tcFhTU3ZjICE9IE5VTEwpOwotCi0g
ICAgLy8gVXNlIHRoZSBJV2JlbVNlcnZpY2VzIHBvaW50ZXIgdG8gbWFrZSByZXF1ZXN0cyBvZiBX
TUkuIAotICAgIC8vIE1ha2UgcmVxdWVzdHMgaGVyZToKLSAgICBJRW51bVdiZW1DbGFzc09iamVj
dCogcEVudW1lcmF0b3IgPSBOVUxMOwotICAgIEhSRVNVTFQgaHJlcyA9ICgqd21pKS0+bXBYU1N2
Yy0+RXhlY1F1ZXJ5KEwiV1FMIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHF1ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
QkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwgV0JFTV9GTEFHX1JFVFVSTl9JTU1FRElBVEVMWSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwRW51bWVyYXRvcik7Ci0gICAgaWYgKEZB
SUxFRChocmVzKSkKLSAgICB7Ci0gICAgICAgIERCR1BSSU5UKCgiRXhlY1F1ZXJ5IGZhaWxlZFxu
IikpOwotICAgICAgICBwRW51bWVyYXRvciA9IE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBwRW51
bWVyYXRvcjsKLX0KLXN0YXRpYyBJRW51bVdiZW1DbGFzc09iamVjdCogcnVuUXVlcnkoV01JQWNj
ZXNzb3IgKndtaSwgQlNUUiBxdWVyeSkKLXsKLSAgICBpZiAod21pID09IE5VTEwpCi0gICAgICAg
IHJldHVybiBOVUxMOwotCi0gICAgQVNTRVJUKHdtaS0+bXBTdmMgIT0gTlVMTCk7Ci0KLSAgICAv
LyBVc2UgdGhlIElXYmVtU2VydmljZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4g
Ci0gICAgLy8gTWFrZSByZXF1ZXN0cyBoZXJlOgotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBw
RW51bWVyYXRvciA9IE5VTEw7Ci0gICAgSFJFU1VMVCBocmVzID0gd21pLT5tcFN2Yy0+RXhlY1F1
ZXJ5KEwiV1FMIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQkVNX0ZMQUdf
Rk9SV0FSRF9PTkxZIHwgV0JFTV9GTEFHX1JFVFVSTl9JTU1FRElBVEVMWSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZwRW51bWVyYXRvcik7Ci0gICAgaWYgKEZBSUxFRChocmVz
KSkKLSAgICB7Ci0gICAgICAgIERCR1BSSU5UKCgiRXhlY1F1ZXJ5IGZhaWxlZFxuIikpOwotICAg
ICAgICBwRW51bWVyYXRvciA9IE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBwRW51bWVyYXRvcjsK
LX0KLQotTE9ORyB3bWljb3VudCA9IDA7Ci1zdGF0aWMgQk9PTEVBTiBjb21faW5pdGlhbGl6ZWQg
PSBmYWxzZTsKLXN0YXRpYyBJV2JlbUxvY2F0b3IgKmxvY2F0b3IgPSAwOwotQk9PTCBJbml0Q29t
KHZvaWQpIHsKLSAgICBIUkVTVUxUIGhyZXM7Ci0gICAgWHNMb2coIkluaXQgQ09NIik7Ci0gICAg
aHJlcyA9IENvSW5pdGlhbGl6ZUV4KDAsIENPSU5JVF9NVUxUSVRIUkVBREVEKTsKLSAgICBpZiAo
RkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgIGdvdG8gZXJyX291dDsKLSAgICB9Ci0gICAgY29tX2lu
aXRpYWxpemVkID0gVFJVRTsKLSAgICAvL3dtaS0+b3duaW5nX3RocmVhZCA9IEdldEN1cnJlbnRU
aHJlYWQoKTsKLSAgICAvL1hzTG9nKCJXbWkgY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50
VGhyZWFkKCkpOwotICAgIC8vIEluaXRpYWxpemUgQ09NIHNlY3VyaXR5LiAgTW9zdCBvZiB0aGlz
IGlzIGlycmVsZXZhbnQgdG8gdXMuCi0gICAgWHNMb2coIkluaXQgc2VjdXJpdHkiKTsKLSAgICBo
cmVzID0gQ29Jbml0aWFsaXplU2VjdXJpdHkoCi0gICAgICAgIE5VTEwsICAgICAvKiBTZWN1cml0
eSBkZXNjcmlwdG9yLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8KLSAgICAgICAgLTEsICAg
ICAgIC8qIE5yLiBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8K
LSAgICAgICAgTlVMTCwgICAgIC8qIExpc3Qgb2YgYXV0aCBzZXJ2aWNlcy4gT25seSByZWxldmFu
dCB0byBzZXJ2ZXJzICovCi0gICAgICAgIE5VTEwsICAgICAvKiBSZXNlcnZlZCAqLwotICAgICAg
ICBSUENfQ19BVVRITl9MRVZFTF9ERUZBVUxULCAvKiBEZWZhdWx0IGF1dGhlbnRpY2F0aW9uLiAg
VGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyBkb24n
dCByZWFsbHkgbWF0dGVyIHdoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5b3UncmUgbG9jYWxob3N0LiAqLwotICAgICAgICBSUENfQ19JTVBfTEVWRUxfSU1QRVJT
T05BVEUsIC8qIFdNSSBuZWVkcyB0byBiZSBhYmxlIHRvCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW1wZXJzb25hdGUgdXMuICovCi0gICAgICAgIE5VTEwsICAgICAg
ICAgICAgIC8qIEF1dGhlbnRpY2F0aW9uIGluZm8gKi8KLSAgICAgICAgRU9BQ19OT05FLCAgICAg
ICAgLyogQWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgKi8KLSAgICAgICAgTlVMTCAgICAgICAgICAg
ICAgLyogUmVzZXJ2ZWQgKi8KLSAgICAgICAgKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0g
ICAgICAgIGdvdG8gZXJyX291dDsKLSAgICB9Ci0gICAgICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiQ3JlYXRlSW5zdGFuY2VcbiIpOwotICAgICAgICBocmVzID0gQ29DcmVhdGVJbnN0YW5jZSgK
LSAgICAgICAgICAgIENMU0lEX1diZW1Mb2NhdG9yLAotICAgICAgICAgICAgMCwgCi0gICAgICAg
ICAgICBDTFNDVFhfSU5QUk9DX1NFUlZFUiwgCi0gICAgICAgICAgICBJSURfSVdiZW1Mb2NhdG9y
LAotICAgICAgICAgICAgKExQVk9JRCAqKSAmbG9jYXRvcik7Ci0gICAgICAgIE91dHB1dERlYnVn
U3RyaW5nKCJDaGVjayBocmVzXG4iKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAg
ICAgICAgICAgZ290byBlcnJfb3V0OwotICAgICAgICB9Ci0gICAgICAgIGlmIChsb2NhdG9yID09
IE5VTEwpIHsKLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJOdWxsIGxvY2F0b3IiKTsK
LSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgIHJldHVybiB0cnVlOwot
ZXJyX291dDoKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQp
Ci17Ci0gICAgICAgIEluaXRDb20oKTsKLSAgICAgICAgSFJFU1VMVCBocmVzOwotICAgICAgICBP
dXRwdXREZWJ1Z1N0cmluZygiQ29ubmVjdCB0byBXTUkiKTsKLSAgICAgICAgd21pY291bnQrKzsK
LQotICAgICAgICB3bWkgPSAoc3RydWN0IFdNSUFjY2Vzc29yICopWHNBbGxvYyhzaXplb2YoKndt
aSkpOwotICAgICAgICBpZiAod21pID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgICAgICBtZW1zZXQod21pLCAwLCBzaXplb2YoKndtaSkpOwotCi0K
LSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNvbm5lY3QgU2VydmVyXG4iKTsKLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGhyZXMgPSBsb2NhdG9yLT5Db25uZWN0U2VydmVyKAotICAgICAg
ICAgICAgICAgIEwicm9vdFxcQ0lNVjIiLCAgICAgICAgICAvLyBXTUkgbmFtZXNwYWNlCi0gICAg
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgbmFtZQotICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIHBhc3N3b3JkCi0gICAg
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQotICAgICAgICAg
ICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncwotICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBBdXRob3JpdHkKLSAgICAgICAg
ICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QKLSAgICAg
ICAgICAgICAgICAmKHdtaS0+bXBTdmMpICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2VzIHBy
b3h5Ci0gICAgICAgICAgICAgICAgKTsKLSAgICAgICAgfQotICAgICAgICBjYXRjaCguLi4pIHsK
LSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFeGNlcHRpb24gY29ubmVjdGluZyB0byBz
ZXJ2ZXJcbiIpOwotICAgICAgICAgICAgZ290byBlcnJfb3V0OwotICAgICAgICB9Ci0KLSAgICAg
ICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIHJlc3VsdFxuIik7Ci0gICAgICAgIGlmIChGQUlM
RUQoaHJlcykpIHsKLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAg
ICAvKiBXTUkgbmVlZHMgdG8gaW1wZXJzb25hdGUgdXMsIGJlY2F1c2UgaXQgbm9ybWFsbHkgcnVu
cyBhcyBhbgotICAgICAgICAgICB1bnByaXZpbGVnZWQgdXNlciBhbmQgbmVlZHMgb3VyIGF1dGhv
cml0eSBpbiBvcmRlciB0byBhY2Nlc3MKLSAgICAgICAgICAgZGV2aWNlIGZpbGVzIGFuZCBzbyBm
b3J0aC4gIFR1cm4gaW1wZXJzb25hdGlvbiBvbi4gKi8KLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIlByb3h5IGJsYW5rZXRcbiIpOwotICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQo
Ci0gICAgICAgICAgICB3bWktPm1wU3ZjLCAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcm94eSB0
byBzZXQKLSAgICAgICAgICAgIFJQQ19DX0FVVEhOX1dJTk5ULCAgICAgICAgICAgLyogTEFOIG1h
bmFnZXIgYXV0aGVudGljYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFsdGhvdWdoIGl0IGRvZXNuJ3QgcmVhbGx5Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHRlciBvbiBsb2NhbGhvc3QuICovCi0gICAgICAg
ICAgICBSUENfQ19BVVRIWl9OT05FLCAgICAgICAgICAgIC8vIExBTk1BTiBjYW4ndCBkbyBtdWNo
IGF1dGhvcml6YXRpb24uCi0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNlcnZlciBwcmluY2lwYWwgbmFtZQotICAgICAgICAgICAgUlBDX0NfQVVUSE5fTEVWRUxf
Q0FMTCwgICAgICAvLyBEbyBhdXRoZW50aWNhdGlvbiBvbiBldmVyeSBjYWxsCi0gICAgICAgICAg
ICBSUENfQ19JTVBfTEVWRUxfSU1QRVJTT05BVEUsIC8vIEFsbG93IGZ1bGwgaW1wZXJzb25hdGlv
bi4KLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGN1cnJl
bnQgY2xpZW50IGlkZW50aXR5Ci0gICAgICAgICAgICBFT0FDX05PTkUgICAgICAgICAgICAgICAg
ICAgIC8vIE5vIGV4dGVuZGVkIHByb3h5IGNhcGFiaWxpdGllcwotICAgICAgICApOwotICAgICAg
ICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgICAgICBnb3RvIGVycl9vdXQ7Ci0gICAgICAg
IH0KLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIldNSSBTZXJ2ZXJcbiIpOwotICAgICAgICBo
cmVzID0gbG9jYXRvci0+Q29ubmVjdFNlcnZlcigKLSAgICAgICAgICAgIEwicm9vdFxcV01JIiwg
ICAgICAgICAgLy8gV01JIG5hbWVzcGFjZQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAg
ICAgICAgIC8vIFVzZXIgbmFtZQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAg
IC8vIFVzZXIgcGFzc3dvcmQKLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAv
LyBMb2NhbGUKLSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0
eSBmbGFncwotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIEF1dGhvcml0
eQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIENvbnRleHQgb2JqZWN0
Ci0gICAgICAgICAgICAmd21pLT5tcFhTU3ZjICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2Vz
IHByb3h5Ci0gICAgICAgICAgICApOwotCi0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAg
ICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiSW1wZXJzb25hdGlvblxuIik7Ci0gICAgICAgIC8qIFdNSSBuZWVkcyB0byBpbXBlcnNv
bmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFzIGFuCi0gICAgICAgICAgIHVucHJp
dmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9yaXR5IGluIG9yZGVyIHRvIGFjY2Vzcwot
ICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNvIGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9u
IG9uLiAqLwotICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQoCi0gICAgICAgICAgICB3
bWktPm1wWFNTdmMsICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb3h5IHRvIHNldAotICAgICAg
ICAgICAgUlBDX0NfQVVUSE5fV0lOTlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50
aWNhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0
aG91Z2ggaXQgZG9lc24ndCByZWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0dGVyIG9uIGxvY2FsaG9zdC4gKi8KLSAgICAgICAgICAgIFJQQ19DX0FV
VEhaX05PTkUsICAgICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlv
bi4KLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHBy
aW5jaXBhbCBuYW1lCi0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8v
IERvIGF1dGhlbnRpY2F0aW9uIG9uIGV2ZXJ5IGNhbGwKLSAgICAgICAgICAgIFJQQ19DX0lNUF9M
RVZFTF9JTVBFUlNPTkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLgotICAgICAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRl
bnRpdHkKLSAgICAgICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8gZXh0
ZW5kZWQgcHJveHkgY2FwYWJpbGl0aWVzCi0gICAgICAgICk7Ci0gICAgICAgIGlmIChGQUlMRUQo
aHJlcykpIHsKLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotCi0KLSAgICBP
dXRwdXREZWJ1Z1N0cmluZygiV21pIGNvbm5lY3RlZFxuIik7Ci0gICAgLyogQWxsIGRvbmUuICov
Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWVycl9vdXQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIldN
SSBjb25uZWN0aW9uIGZhaWxlZFxuIik7Ci0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotCi12b2lkIFJlbGVhc2VDb20odm9pZCkgewotCi0gICAg
aWYgKGNvbV9pbml0aWFsaXplZCkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiUmVsZWFz
ZSBsb2NhdG9yXG4iKTsKLSAgICAgICAgbG9jYXRvci0+UmVsZWFzZSgpOwotICAgICAgICAvL1hz
TG9nKCJXbWkgZGlzY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50VGhyZWFkKCkpOwotICAg
ICAgICAvL0FTU0VSVCgoKndtaSktPm93bmluZ190aHJlYWQgPT0gR2V0Q3VycmVudFRocmVhZCgp
KTsKLSAgICAgICAgY29tX2luaXRpYWxpemVkID0gMDsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIlVuaW5pdGlhbGl6ZSBjb21cbiIpOwotICAgICAgICBDb1VuaW5pdGlhbGl6ZSgpOwotICAg
ICAgICAKLSAgICB9Ci19Ci0KLS8qIENhcmVmdWw6IFdNSSBhY2Nlc3NvcnMgbXVzdCBiZSByZWxl
YXNlZCBvbiB0aGUgc2FtZSB0aHJlYWQgdGhhdAotICAgYWxsb2NhdGVkIHRoZW0uICovCi12b2lk
IFJlbGVhc2VXTUlBY2Nlc3NvcihzdHJ1Y3QgV01JQWNjZXNzb3IgKip3bWkpCi17Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoIlNob3VsZCBJIHJlbGVhc2Ugd21pP1xuIik7Ci0gICAgaWYgKCp3bWkg
PT0gTlVMTCkKLSAgICAgICAgcmV0dXJuOwotICAgIE91dHB1dERlYnVnU3RyaW5nKCJHZXQgcmlk
IG9mIFdNSSBzZXJ2ZXJzXG4iKTsKLSAgICBpZiAoKCp3bWkpLT5tcFhTU3ZjICE9IE5VTEwpCi0g
ICAgICAgICgqd21pKS0+bXBYU1N2Yy0+UmVsZWFzZSgpOwotICAgIGlmICgoKndtaSktPm1wU3Zj
ICE9IE5VTEwpCi0gICAgICAgICgqd21pKS0+bXBTdmMtPlJlbGVhc2UoKTsKLSAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiQ2xlYXIgV21JXG4iKTsKLSAgICAvKiBQb2lzb24gd21pIHRvIG1ha2UgdXNl
LWFmdGVyLWZyZWUoKXMgYSBiaXQgbW9yZSBvYnZpb3VzLiAqLwotICAgIG1lbXNldCgoKndtaSks
IDB4YWIsIHNpemVvZigqKndtaSkpOwotICAgIFhzRnJlZSgqd21pKTsKLSAgICAqd21pID0gTlVM
TDsKLSAgICBSZWxlYXNlQ29tKCk7Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlJlbGVhc2VkIFdN
SVxuIik7Ci19Ci0KLS8qIFRoZSBmYWN0IHRoYXQgc29tZXRoaW5nIGlzIGRvY3VtZW50ZWQgYXMg
YmVpbmcgYSB1aW50NjRfdCBmaWVsZAotICAgZG9lc24ndCBpbXBseSB0aGF0IGl0IHdpbGwgYmUg
cmV0dXJuZWQgYXMgYSBWVF9VSTggZmllbGQgaW4gYQotICAgdmFyaWFudCBzdHJ1Y3R1cmUuICBX
b3JrIGFyb3VuZCB0aGlzIHdpdGggYSBoYW5keSBjb252ZXJzaW9uCi0gICBmdW5jdGlvbi4gKi8K
LXN0YXRpYyB1aW50NjRfdAotR2V0VmFyaWFudFVpbnQ2NChWQVJJQU5UICp2dERhdGEpCi17Ci0g
ICAgc3dpdGNoICh2dERhdGEtPnZ0KSB7Ci0gICAgY2FzZSBWVF9JMjoKLSAgICAgICAgcmV0dXJu
IHZ0RGF0YS0+aVZhbDsKLSAgICBjYXNlIFZUX0k0OgotICAgICAgICByZXR1cm4gdnREYXRhLT5s
VmFsOwotICAgIGNhc2UgVlRfSTg6Ci0gICAgICAgIHJldHVybiB2dERhdGEtPmxsVmFsOwotICAg
IGNhc2UgVlRfVUkyOgotICAgICAgICByZXR1cm4gdnREYXRhLT51aVZhbDsKLSAgICBjYXNlIFZU
X1VJNDoKLSAgICAgICAgcmV0dXJuIHZ0RGF0YS0+dWxWYWw7Ci0gICAgY2FzZSBWVF9VSTg6Ci0g
ICAgICAgIHJldHVybiB2dERhdGEtPnVsbFZhbDsKLSAgICBjYXNlIFZUX0JTVFI6Ci0gICAgICAg
IC8qIFllcywgSSByZWFsbHkgZG8gbWVhbiBCU1RSOiBYUCByZXR1cm5zIDY0IGJpdCB2YWx1ZXMg
YXMKLSAgICAgICAgICAgc3RyaW5ncywgYW5kIHdlIHRoZW4gaGF2ZSB0byBkbyBhdG9pbGwgb24g
aXQuICovCi0gICAgICAgIHJldHVybiBfd3RvaTY0KHZ0RGF0YS0+YnN0clZhbCk7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgREJHUFJJTlQoKCJCYWQgdWludDY0X3QgdmFyaWFudCAlZC5cbiIsdnRE
YXRhLT52dCkpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotfQotCi1zdGF0aWMgSFJFU1VM
VAotUXVlcnlWYXJpYW50KFdNSUFjY2Vzc29yICp3bWksIFBXQ0hBUiBmaWVsZCwgUFdDSEFSIHRh
YmxlLCBWQVJJQU5UICp2dCkKLXsKLSAgICBJRW51bVdiZW1DbGFzc09iamVjdCAqcEVudW07Ci0g
ICAgQlNUUiBxdWVyeTsKLSAgICBzaXplX3QgcXVlcnlfbGVuOwotICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKnBjbHNPYmo7Ci0gICAgSFJFU1VMVCBocjsKLSAgICBVTE9ORyB1UmV0dXJuOwotCi0gICAg
cXVlcnlfbGVuID0gc3RybGVuKCJTRUxFQ1QgIEZST00gIikgKyB3Y3NsZW4oZmllbGQpICsgd2Nz
bGVuKHRhYmxlKSArIDE7Ci0gICAgcXVlcnkgPSBTeXNBbGxvY1N0cmluZ0xlbihOVUxMLCAoVUlO
VClxdWVyeV9sZW4pOwotICAgIGlmIChxdWVyeSA9PSBOVUxMKSB7Ci0gICAgICAgIGhyID0gRV9P
VVRPRk1FTU9SWTsKLSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotICAgIHN3cHJpbnRmX3MocXVl
cnksIHF1ZXJ5X2xlbiwgTCJTRUxFQ1QgJXMgRlJPTSAlcyIsIGZpZWxkLCB0YWJsZSk7Ci0gICAg
cEVudW0gPSBydW5RdWVyeSh3bWksIHF1ZXJ5KTsKLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsK
LQotICAgIGlmIChwRW51bSA9PSBOVUxMKSB7Ci0gICAgICAgIGhyID0gRV9PVVRPRk1FTU9SWTsK
LSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotCi0gICAgaHIgPSBwRW51bS0+TmV4dChXQkVNX0lO
RklOSVRFLCAxLCAmcGNsc09iaiwgJnVSZXR1cm4pOwotICAgIHBFbnVtLT5SZWxlYXNlKCk7Ci0g
ICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIGdvdG8gZXJyOwotICAgIGlmICh1UmV0dXJuID09
IDApIHsKLSAgICAgICAgaHIgPSBFX0ZBSUw7Ci0gICAgICAgIGdvdG8gZXJyOwotICAgIH0KLQot
ICAgIGhyID0gcGNsc09iai0+R2V0KGZpZWxkLCAwLCB2dCwgTlVMTCwgTlVMTCk7Ci0gICAgcGNs
c09iai0+UmVsZWFzZSgpOwotCi0gICAgcmV0dXJuIGhyOwotCi1lcnI6Ci0gICAgcmV0dXJuIGhy
OwotfQotCi1zdGF0aWMgdWludDY0X3QKLVF1ZXJ5VWludDY0KFdNSUFjY2Vzc29yICp3bWksIFBX
Q0hBUiBmaWVsZCwgUFdDSEFSIHRhYmxlKQotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgdWludDY0
X3QgcmVzOwotICAgIFZBUklBTlQgdnQ7Ci0KLSAgICBtZW1zZXQoJnZ0LCAwLCBzaXplb2YodnQp
KTsKLQotICAgIGhyID0gUXVlcnlWYXJpYW50KHdtaSwgZmllbGQsIHRhYmxlLCAmdnQpOwotICAg
IGlmIChGQUlMRUQoaHIpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJlcyA9IEdldFZhcmlh
bnRVaW50NjQoJnZ0KTsKLSAgICBWYXJpYW50Q2xlYXIoJnZ0KTsKLSAgICByZXR1cm4gcmVzOwot
fQotCi1zdGF0aWMgQlNUUgotUXVlcnlCc3RyKFdNSUFjY2Vzc29yICp3bWksIFBXQ0hBUiBmaWVs
ZCwgUFdDSEFSIHRhYmxlKQotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgVkFSSUFOVCB2dDsKLQot
ICAgIG1lbXNldCgmdnQsIDAsIHNpemVvZih2dCkpOwotCi0gICAgaHIgPSBRdWVyeVZhcmlhbnQo
d21pLCBmaWVsZCwgdGFibGUsICZ2dCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotICAgIGlmICh2dC52dCAhPSBWVF9CU1RSKSB7Ci0gICAgICAgIFZhcmlhbnRD
bGVhcigmdnQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHZ0LmJz
dHJWYWw7Ci19Ci0KLQotCi0vKiBoYXNoIGNvbXBhcmF0b3IgZm9yIHN0cmluZ3Mgd2hpY2ggc3Ry
aXBzIG9mZiB0cmFpbGluZyAuZXhlCi0gKiBzdWZmaXggKi8KLWNsYXNzIHN0cmluZ19lcV9leGUg
ewotcHJpdmF0ZToKLSAgICBzdGF0aWMgc2l6ZV90IGxlbl93aXRob3V0X3N1ZmZpeChjb25zdCBj
aGFyICp4KQotICAgIHsKLSAgICAgICAgc2l6ZV90IGw7Ci0gICAgICAgIGwgPSBzdHJsZW4oeCk7
Ci0gICAgICAgIGlmIChsID4gNCAmJiAhc3RyY21wKHggKyBsIC0gNCwgIi5leGUiKSkKLSAgICAg
ICAgICAgIGwgLT0gNDsKLSAgICAgICAgcmV0dXJuIGw7Ci0gICAgfQotCi1wdWJsaWM6Ci0gICAg
ZW51bSB7YnVja2V0X3NpemUgPSA0LCBtaW5fYnVja2V0cyA9IDh9OwotICAgIGJvb2wgb3BlcmF0
b3IoKShjb25zdCBzdHJpbmcgJmEsIGNvbnN0IHN0cmluZyAmYikgY29uc3QKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IGNoYXIgKmFfYywgKmJfYzsKLSAgICAgICAgc2l6ZV90IGFfbCwgYl9sOwotICAg
ICAgICBhX2MgPSBhLmNfc3RyKCk7Ci0gICAgICAgIGJfYyA9IGIuY19zdHIoKTsKLSAgICAgICAg
YV9sID0gbGVuX3dpdGhvdXRfc3VmZml4KGFfYyk7Ci0gICAgICAgIGJfbCA9IGxlbl93aXRob3V0
X3N1ZmZpeChiX2MpOwotCi0gICAgICAgIGlmIChhX2wgIT0gYl9sKQotICAgICAgICAgICAgcmV0
dXJuIDE7Ci0gICAgICAgIGlmIChtZW1jbXAoYV9jLCBiX2MsIGFfbCkpCi0gICAgICAgICAgICBy
ZXR1cm4gMTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0g
ICAgc2l6ZV90IG9wZXJhdG9yKCkoY29uc3Qgc3RyaW5nICZhKSBjb25zdAotICAgIHsKLSAgICAg
ICAgc2l6ZV90IGFjYyA9IDA7Ci0gICAgICAgIGNvbnN0IGNoYXIgKmNfc3RyID0gYS5jX3N0cigp
OwotICAgICAgICBzaXplX3QgbGVuID0gbGVuX3dpdGhvdXRfc3VmZml4KGNfc3RyKTsKLSAgICAg
ICAgdW5zaWduZWQgeDsKLSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGxlbjsgeCsrKQotICAgICAg
ICAgICAgYWNjID0gKGFjYyAqIDE3ICsgY19zdHJbeF0pICUgMjU3OwotICAgICAgICByZXR1cm4g
YWNjOwotICAgIH0KLX07Ci0KLQotSVdiZW1DbGFzc09iamVjdCAqZ2V0QmFzZShXTUlBY2Nlc3Nv
cioqIHdtaSkgCi17Ci0gICAgSVdiZW1DbGFzc09iamVjdCogYmFzZSA9IGdldE9iamVjdCh3bWks
IE9CSkVDVF9OQU1FX1coQmFzZSkpOwotICAgIGlmIChiYXNlID09IE5VTEwpIHsKLSAgICAgICAg
KndtaSA9IE5VTEw7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gYmFz
ZTsKLX0KLQotSVdiZW1DbGFzc09iamVjdCAqZ2V0QmFzZUNsYXNzKFdNSUFjY2Vzc29yKiogd21p
KSAKLXsKLSAgICBJV2JlbUNsYXNzT2JqZWN0KiBiYXNlY2xhc3MgPSBnZXRDbGFzcyh3bWksIE9C
SkVDVF9OQU1FX1coQmFzZSkpOwotICAgIGlmIChiYXNlY2xhc3MgPT0gTlVMTCkgewotICAgICAg
ICAqd21pID0gTlVMTDsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBi
YXNlY2xhc3M7Ci19Ci0KLVVMT05HTE9ORyBnZXQ2NEJpdFVuc2lnbmVkKFZBUklBTlQgKnZhcikg
ewotICAgIFVMT05HTE9ORyByZXMgPSAwOwotICAgIHN3aXRjaCAodmFyLT52dCkgewotICAgICAg
ICBjYXNlIFZUX0JTVFI6IHsKLSAgICAgICAgICAgICAgICBWQVJJQU5UIG91dHZhcjsKLSAgICAg
ICAgICAgICAgICBWYXJpYW50SW5pdCgmb3V0dmFyKTsKLSAgICAgICAgICAgICAgICBWYXJpYW50
Q2hhbmdlVHlwZSgmb3V0dmFyLCB2YXIsIDAsIFZUX1VJOCk7Ci0gICAgICAgICAgICAgICAgcmVz
ID0gb3V0dmFyLnVsbFZhbDsKLSAgICAgICAgICAgICAgICBWYXJpYW50Q2xlYXIoJm91dHZhcik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWVF9VSTg6
IHsKLSAgICAgICAgICAgICAgICByZXMgPSB2YXItPnVsbFZhbDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gcmVzOwotfQotCi1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKSB7Ci0gICAgIEZJTEVUSU1FIG91dDsKLSAg
ICAgCi0gICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7Ci0gICAgIGlm
IChiYXNlID09IE5VTEwpIHsKLSAgICAgICAgIERCR1BSSU5UKCgiVW5hYmxlIHRvIGZpbmQgYmFz
ZSBXTUkgc2Vzc2lvblxuIikpOwotICAgICAgICAgZ290byBnZXRiYXNlZmFpbGVkOwotICAgICB9
Ci0KLSAgICAgVkFSSUFOVCB0aW1ldmFyOwotICAgICBCU1RSIHRpbWVuYW1lID0gbWtCc3RyKCJY
ZW5UaW1lIiwgNyk7Ci0gICAgIGlmICh0aW1lbmFtZSA9PSBOVUxMKQotICAgICAgICAgZ290byBi
dWlsZHRpbWVuYW1lZmFpbGVkOwotICAgICAgICAgCi0KLQotICAgICBpZiAoRkFJTEVEKGJhc2Ut
PkdldCh0aW1lbmFtZSwgMCwgJnRpbWV2YXIsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgIGdvdG8g
Z2V0dGltZWZhaWxlZDsKLQotICAgICBVTE9OR0xPTkcgdGltZSA9Z2V0NjRCaXRVbnNpZ25lZCgm
dGltZXZhcik7OwotCi0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gKERXT1JEKXRpbWU7Ci0gICAg
IG91dC5kd0hpZ2hEYXRlVGltZSA9IChEV09SRCkodGltZT4+MzIpOwotICAgICByZXR1cm4gb3V0
OwotCi1nZXR0aW1lZmFpbGVkOgotYnVpbGR0aW1lbmFtZWZhaWxlZDoKLWdldGJhc2VmYWlsZWQ6
Ci0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gMDsKLSAgICAgb3V0LmR3SGlnaERhdGVUaW1lID0g
MDsKLSAgICAgcmV0dXJuIG91dCA7Ci19Ci0KLUlXYmVtQ2xhc3NPYmplY3QgKm9wZW5TZXNzaW9u
KFdNSUFjY2Vzc29yKiogd21pLCBjb25zdCBjaGFyICpzZXNzaW9ubmFtZSkKLXsKLSAgICBIUkVT
VUxUIGhyZXM7Ci0KLSAgICBCU1RSIHF1ZXJ5ID0gZm9ybWF0QnN0cigiU0VMRUNUICogRlJPTSAi
IE9CSkVDVF9OQU1FX0EoU2Vzc2lvbikgIiBXSEVSRSBJZD1cIiIgT0JKRUNUX1BSRUZJWF9TVFIg
IiBYZW4gV2luMzIgU2VydmljZSA6ICVzXCIiLCBzZXNzaW9ubmFtZSk7Ci0gICAgaWYgKHF1ZXJ5
ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ7Ci0KLSAgICBJ
RW51bVdiZW1DbGFzc09iamVjdCAqIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5KTsK
LSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsKLQotICAgIGlmIChzZXNzaW9ucykgewotICAgICAg
ICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAgICAgICAgVUxPTkcgY291bnQ7
Ci0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJu
ZWRPYmplY3QsICZjb3VudCk7Ci0gICAgICAgIHNlc3Npb25zLT5SZWxlYXNlKCk7Ci0KLSAgICAg
ICAgaWYgKGNvdW50PjApIHsKLSAgICAgICAgICAgIGlmIChzZXNzaW9ubmFtZSAhPU5VTEwgKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFXbWlTZXNzaW9uRW5kKHdtaSwgcmV0dXJuZWRPYmplY3Qp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHJldHVy
biByZXR1cm5lZE9iamVjdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7Ci0gICAgaWYgKGJhc2U9PU5V
TEwpIHsKLSAgICAgICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBiYXNlIFdNSSBzZXNzaW9u
XG4iKSk7Ci0gICAgICAgIGdvdG8gZ2V0YmFzZWZhaWxlZDsKLSAgICB9Ci0KLSAgICBJV2JlbUNs
YXNzT2JqZWN0ICpiYXNlY2xhc3MgPSBnZXRCYXNlQ2xhc3Mod21pKTsKLQotICAgIGlmIChiYXNl
Y2xhc3MgPT0gTlVMTCkKLSAgICAgICAgZ290byBnZXRiYXNlY2xhc3NmYWlsZWQ7Ci0KLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0
aG9kSW5zdDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0OwotICAgIGlmIChG
QUlMRUQoYmFzZWNsYXNzLT5HZXRNZXRob2QoTCJBZGRTZXNzaW9uIiwwLCZpbk1ldGhvZCwgTlVM
TCkpKQotICAgICAgICBnb3RvIGdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ7Ci0KLSAgICBpZiAo
RkFJTEVEKGluTWV0aG9kLT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpKSkKLSAgICAg
ICAgZ290byBpbm1ldGhvZHNwYXduZmFpbGVkOwotCi0gICAgVkFSSUFOVCB2YXI7Ci0gICAgdmFy
LnZ0ID0gVlRfQlNUUjsKLSAgICB2YXIuYnN0clZhbD1mb3JtYXRCc3RyKFZFTkRPUl9OQU1FX1NU
UiAiICIgUFJPRFVDVF9OQU1FX1NUUiAiIFdpbjMyIFNlcnZpY2UgOiAlcyIsIHNlc3Npb25uYW1l
KTsKLQotICAgIGlmICh2YXIuYnN0clZhbCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZvcm1hdG5h
bWVic3RyZmFpbGVkOwotCi0gICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIklkIiwg
MCwgJnZhciwgMCkpKQotICAgICAgICBnb3RvIG1ldGhvZHB1dGZhaWxlZDsKLQotICAgIGlmIChG
QUlMRUQobWV0aG9kRXhlYyh3bWksIGJhc2UsIEwiQWRkU2Vzc2lvbiIsIGluTWV0aG9kSW5zdCwg
Jm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290byBtZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxl
ZDsKLSAgICAKLSAgICBpZiAoRkFJTEVEKG91dE1ldGhvZEluc3QtPkdldChMIlNlc3Npb25JZCIs
IDAsICZ2YXIsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgZ290byBvdXRtZXRob2RnZXRmYWlsZWQ7
Ci0KLSAgICBzaXplX3QgcXVlcnlfbGVuOwotICAgIHF1ZXJ5X2xlbiA9IHN0cmxlbigiU0VMRUNU
ICogRlJPTSAiIE9CSkVDVF9OQU1FX0EoU2Vzc2lvbikgIiBXSEVSRSBTZXNzaW9uSWQ9IikrMTA7
Ci0gICAgcXVlcnkgPSBTeXNBbGxvY1N0cmluZ0xlbihOVUxMLCAoVUlOVClxdWVyeV9sZW4pOwot
Ci0gICAgaWYgKHF1ZXJ5ID09IE5VTEwpCi0gICAgICAgIGdvdG8gYWxsb2NxdWVyeWZhaWxlZDsK
LQotICAgIHN3cHJpbnRmX3MocXVlcnkscXVlcnlfbGVuLCBMIlNFTEVDVCAqIEZST00gIiBPQkpF
Q1RfTkFNRV9XKFNlc3Npb24pIEwiIFdIRVJFIFNlc3Npb25JZD0lZCIsIHZhci51aW50VmFsKTsK
LQotICAgIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5ICk7Ci0gICAgU3lzRnJlZVN0
cmluZyhxdWVyeSk7Ci0KLSAgICBpZiAoc2Vzc2lvbnMpIHsKLSAgICAgICAgSVdiZW1DbGFzc09i
amVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAgICAgIFVMT05HIGNvdW50OwotICAgICAgICBocmVz
ID0gc2Vzc2lvbnMtPk5leHQoV0JFTV9JTkZJTklURSwgMSwgJnJldHVybmVkT2JqZWN0LCAmY291
bnQpOwotICAgICAgICBzZXNzaW9ucy0+UmVsZWFzZSgpOwotICAgICAgICBpZiAoY291bnQ+MCkg
ewotICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgICAgICB9Ci0gICAgICAg
IAotICAgIH0KLSAgICAKLSAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgVmFyaWFu
dENsZWFyKCZ2YXIpOwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIGluTWV0aG9k
LT5SZWxlYXNlKCk7Ci0gICAgYmFzZS0+UmVsZWFzZSgpOwotICAgIGJhc2VjbGFzcy0+UmVsZWFz
ZSgpOwotICAgIHJldHVybiBOVUxMOwotCi1hbGxvY3F1ZXJ5ZmFpbGVkOgotb3V0bWV0aG9kZ2V0
ZmFpbGVkOgotICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotbWV0aG9kZXhlY2FkZHNl
c3Npb25mYWlsZWQ6Ci1tZXRob2RwdXRmYWlsZWQ6Ci0gICAgVmFyaWFudENsZWFyKCZ2YXIpOwot
Ci1mb3JtYXRuYW1lYnN0cmZhaWxlZDoKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLWlu
bWV0aG9kc3Bhd25mYWlsZWQ6Ci0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLQotCi1nZXRtZXRo
b2RhZGRzZXNzaW9uZmFpbGVkOgotICAgIGJhc2VjbGFzcy0+UmVsZWFzZSgpOwotCi1nZXRiYXNl
Y2xhc3NmYWlsZWQ6Ci0gICAgYmFzZS0+UmVsZWFzZSgpOwotCi1nZXRiYXNlZmFpbGVkOgotCi0K
LWZvcm1hdHNlc3Npb25ic3RyZmFpbGVkOgotICAgIHJldHVybiBOVUxMOwotfQotCi1JV2JlbUNs
YXNzT2JqZWN0KiBzZXNzaW9uTWV0aG9kU3RhcnQoV01JQWNjZXNzb3IqKndtaSwgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QgKm1ldGhvZG5hbWUp
Ci17Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2Q7Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqaW5NZXRob2RJbnN0ID0gTlVMTDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpzZXNzaW9uQ2xh
c3M7Ci0gICAgSFJFU1VMVCBocjsKLQotICAgIEFTU0VSVCh3bWkgIT0gTlVMTCk7Ci0KLSAgICBz
ZXNzaW9uQ2xhc3MgPSBnZXRDbGFzcyh3bWksIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikpOwotICAg
IGlmIChzZXNzaW9uQ2xhc3MgPT0gTlVMTCkKLSAgICAgICAgZ290byBnZXRjbGFzc2ZhaWxlZDsK
LQotICAgIGhyID0gc2Vzc2lvbkNsYXNzLT5HZXRNZXRob2QobWV0aG9kbmFtZSwwLCZpbk1ldGhv
ZCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIGdvdG8gZ2V0bWV0aG9kZmFp
bGVkOwotCi0gICAgaHIgPSBpbk1ldGhvZC0+U3Bhd25JbnN0YW5jZSgwLCAmaW5NZXRob2RJbnN0
KTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBzcGF3bmluc3RhbmNlZmFpbGVk
OwotCi0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLQotICAgIHNlc3Npb25DbGFzcy0+UmVsZWFz
ZSgpOwotICAgIHJldHVybiBpbk1ldGhvZEluc3Q7Ci0KLQotc3Bhd25pbnN0YW5jZWZhaWxlZDoK
LSAgICBpbk1ldGhvZC0+UmVsZWFzZSgpOwotICAgIAotZ2V0bWV0aG9kZmFpbGVkOgotICAgIHNl
c3Npb25DbGFzcy0+UmVsZWFzZSgpOwotCi1nZXRjbGFzc2ZhaWxlZDoKLSAgICByZXR1cm4gTlVM
TDsKLX0KLQotCi1jaGFyICogYnN0clRvQ2hhcihCU1RSIGJzdCwgc2l6ZV90ICpsZW4pIHsKLSAg
ICAqbGVuID0gd2NzbGVuKGJzdCk7Ci0gICAgY2hhciAqc3BhY2UgPSAoY2hhciAqKVhzQWxsb2Mo
KmxlbisxKTsKLSAgICBpZiAoc3BhY2UpCi0gICAgICAgIHdjc3RvbWJzX3MobGVuLCBzcGFjZSwg
KmxlbisxLCBic3QsICBfVFJVTkNBVEUpOwotICAgIHJldHVybiBzcGFjZTsKLX0KLQotdm9pZCBX
bWlTZXNzaW9uTG9nKFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0gICAgCi0gICAgY2hh
ciogbWVzc2FnZSA9IGZvcm1hdENoYXJTdHJJbnQoZm10LGFyZ3MpOwotICAgIAotICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOwotICAgIGlmICgoKCp3bWkpPT1OVUxMKSB8fCAoKCpzZXNz
aW9uaGFuZGxlKT09TlVMTCkgKSB7Ci0gICAgICAgIGdvdG8gbm93bWk7Ci0gICAgfQotICAgIFZB
UklBTlQgdm1lc3NhZ2U7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZtZXNzYWdlLCBtZXNz
YWdlKSkKLSAgICAgICAgZ290byBzZXR2bWVzc2FnZTsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIkxvZyIpOwotICAgIGlm
ICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLSAgICAKLSAgICAg
aWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIk1lc3NhZ2UiLDAsJnZtZXNzYWdlLDApKSkK
LSAgICAgICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgIGlmIChGQUlMRUQobWV0aG9k
RXhlYyh3bWksKnNlc3Npb24sIEwiTG9nIiwgaW5NZXRob2RJbnN0LCBOVUxMKSkpCi0gICAgICAg
ICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci1tZXRob2RwdXRm
YWlsZWQ6Ci0gICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9uc3RhcnQ6Ci0g
ICAgVmFyaWFudENsZWFyKCZ2bWVzc2FnZSk7Ci0KLXNldHZtZXNzYWdlOgotbm93bWk6Ci0gICAg
cmV0dXJuOwotfQotCi1jaGFyKiBXbWlTZXNzaW9uR2V0RW50cnkoV01JQWNjZXNzb3IqKiB3bWks
IHZvaWQgKipzZXNzaW9uaGFuZGxlLAotICAgICAgICAgICAgICBjb25zdCBjaGFyICogcGF0aCwg
c2l6ZV90KiBsZW4pIAotewotICAgICpsZW4gPSAwOwotICAgIElXYmVtQ2xhc3NPYmplY3QgKipz
ZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRsZTsKLQotICAgIFZBUklB
TlQgdnBhdGg7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSkKLSAgICAg
ICAgZ290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Qg
PSBOVUxMOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiR2V0VmFsdWUiKTsKLSAgICBpZiAoaW5NZXRob2RJbnN0ID09IE5V
TEwpIAotICAgICAgICBnb3RvIHNlc3Npb25tZXRob2RzdGFydGZhaWxlZDsKLSAgICAKLSAgICBp
ZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApKSkgCi0g
ICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIG1ldGhvZEV4ZWMod21pLCpzZXNz
aW9uLCBMIkdldFZhbHVlIiwgaW5NZXRob2RJbnN0LCAmb3V0TWV0aG9kSW5zdCk7Ci0gICAgaWYg
KG91dE1ldGhvZEluc3Q9PU5VTEwpCi0gICAgICAgIGdvdG8gc2Vzc2lvbkV4ZWM7Ci0KLSAgICBW
QVJJQU5UIG91dHZhbDsKLSAgICBWYXJpYW50SW5pdCgmb3V0dmFsKTsKLQotICAgIGlmIChGQUlM
RUQob3V0TWV0aG9kSW5zdC0+R2V0KEwidmFsdWUiLCAwLCAmb3V0dmFsLCBOVUxMLCBOVUxMKSkp
Ci0gICAgICAgIGdvdG8gbWV0aG9kZ2V0ZmFpbGVkOwotCi0gICAgY2hhciAqc3BhY2UgPSBOVUxM
OwotICAgIAotICAgIGlmIChWX1ZUKCZvdXR2YWwpID09IFZUX0JTVFIpIAotICAgIHsKLSAgICAg
ICAgc3BhY2UgPSBic3RyVG9DaGFyKG91dHZhbC5ic3RyVmFsLCBsZW4pOwotICAgIH0KLQotICAg
IG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsK
LSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsKLSAgICBWYXJpYW50Q2xlYXIoJm91dHZhbCk7IAot
ICAgIHJldHVybiBzcGFjZTsKLQotbWV0aG9kZ2V0ZmFpbGVkOgotICAgIG91dE1ldGhvZEluc3Qt
PlJlbGVhc2UoKTsKLQotbWV0aG9kZXhlY2ZhaWxlZDoKLXNlc3Npb25FeGVjOgotICAgIGluTWV0
aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9ubWV0aG9kc3RhcnRmYWlsZWQ6Ci0gICAgVmFy
aWFudENsZWFyKCZ2cGF0aCk7Ci0KLXNldHZwYXRoOgotICAgIHJldHVybiBOVUxMOwotfQotCi1p
bnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25o
YW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1
ZSwgc2l6ZV90IGxlbikKLXsKLSAgICBpbnQgZXJyID0gLTE7Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAg
VkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQot
ICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAgVkFSSUFOVCB2dmFsdWU7Ci0gICAgaWYgKHNl
dFZhcmlhbnRTdHJpbmcoJnZ2YWx1ZSwgdmFsdWUpKQotICAgICAgICBnb3RvIHNldHZ2YWx1ZTsK
LQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Q7Ci0KLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJTZXRWYWx1
ZSIpOwotICAgIGlmICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsK
LQotICAgIGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOwotICAgIGlu
TWV0aG9kSW5zdC0+UHV0KEwidmFsdWUiLDAsJnZ2YWx1ZSwwKTsKLQotICAgIGlmIChGQUlMRUQo
bWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiU2V0VmFsdWUiLCBpbk1ldGhvZEluc3QsICZvdXRN
ZXRob2RJbnN0KSkpCi0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIGlmIChv
dXRNZXRob2RJbnN0IT1OVUxMKSAKLSAgICAgICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwot
Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgU3lzRnJlZVN0cmluZyh2dmFsdWUu
YnN0clZhbCk7Ci0gICAgU3lzRnJlZVN0cmluZyh2cGF0aC5ic3RyVmFsKTsKLQotICAgIHJldHVy
biAwOwotCi1tZXRob2RleGVjZmFpbGVkOgotICAgIFhzTG9nKCJXbWlTZXNzaW9uU2V0RW50cnk6
TWV0aG9kRXhlYyBGYWlsZWQiKTsKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vz
c2lvbnN0YXJ0OgotICAgIFhzTG9nKCJXbWlTZXNzaW9uU2V0RW50cnk6U2Vzc2lvblN0YXJ0IEZh
aWxlZCIpOwotICAgIFN5c0ZyZWVTdHJpbmcodnZhbHVlLmJzdHJWYWwpOwotCi1zZXR2dmFsdWU6
Ci0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpTZXRWVmFsdWUgRmFpbGVkIik7Ci0gICAg
U3lzRnJlZVN0cmluZyh2cGF0aC5ic3RyVmFsKTsKLQotc2V0dnBhdGg6Ci0gICAgWHNMb2coIldt
aVNlc3Npb25TZXRFbnRyeTpTZXRWUGF0aCBGYWlsZWQgIik7Ci0gICAgcmV0dXJuIGVycjsKLX0K
LQotaW50IFdtaVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNz
aW9uaGFuZGxlLCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBjaGFyICog
dmFsdWUpIHsKLSAgICByZXR1cm4gV21pU2Vzc2lvblNldEVudHJ5KHdtaSwgc2Vzc2lvbmhhbmRs
ZSwgcGF0aCwgdmFsdWUsIHN0cmxlbih2YWx1ZSkpOwotfQotCi1pbnQgV21pU2Vzc2lvblJlbW92
ZUVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAg
ICAgICAgICBjb25zdCBjaGFyKnBhdGgpewotCi0gICAgaW50IGVyciA9IC0xOwotICAgIElXYmVt
Q2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRs
ZTsKLQotICAgIFZBUklBTlQgdnBhdGg7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRo
LCBwYXRoKSkKLSAgICAgICAgZ290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIlJlbW92ZVZhbHVlIik7
Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0OwotCi0g
ICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCwwKSkp
Ci0gICAgICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCog
b3V0TWV0aG9kSW5zdDsKLQotICAgIGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24s
IEwiUmVtb3ZlVmFsdWUiLCBpbk1ldGhvZEluc3QsICZvdXRNZXRob2RJbnN0KSkpCi0gICAgICAg
IGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIGlmIChvdXRNZXRob2RJbnN0ICE9IE5VTEwp
Ci0gICAgICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotICAgIGVycj0wOwotICAgIGlu
TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOwotICAgIHJl
dHVybiBlcnI7Ci1tZXRob2RleGVjZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVO
Q1RJT05fXyAiIE1ldGhvZEV4ZWNGYWlsZWQiKTsKLW1ldGhvZHB1dGZhaWxlZDoKLSAgICBPdXRw
dXREZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiBNZXRob2RQdXRGYWlsZWQiKTsKLSAgICBpbk1l
dGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vzc2lvbnN0YXJ0OgotICAgIE91dHB1dERlYnVnU3Ry
aW5nKF9fRlVOQ1RJT05fXyAiIFNlc3Npb25TdGFydEZhaWxlZCIpOwotICAgIFZhcmlhbnRDbGVh
cigmdnBhdGgpOwotCi0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2Vzc2lv
bkV4ZWNGYWlsZWQiKTsKLXNldHZwYXRoOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJ
T05fXyAiIFNldFZwYXRoRmFpbGVkIik7Ci0gICAgcmV0dXJuIGVycjsgCi19Ci0KLQotQk9PTCBX
bWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKndhdGNoaGFuZGxlKSB7Ci0gICAgSVdi
ZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFu
ZGxlOwotICAgIFhzTG9nKCJVbndhdGNoICVwIix3YXRjaGhhbmRsZSk7Ci0gICAgV2F0Y2hTaW5r
ICogc2luayA9IChXYXRjaFNpbmsgKil3YXRjaGhhbmRsZTsKLQotICAgIFZBUklBTlQgdnBhdGg7
Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBzaW5rLT5wYXRoKSkKLSAgICAgICAg
Z290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Q7Ci0g
ICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1ldGhvZFN0YXJ0KCB3
bWksIEwiUmVtb3ZlV2F0Y2giKTsKLSAgICBpZiAoIWluTWV0aG9kSW5zdCkKLSAgICAgICAgZ290
byBzZXNzaW9uc3RhcnQ7Ci0KLSAgICBpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2
cGF0aCwwKTsKLSAgICBpZiBGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiUmVtb3Zl
V2F0Y2giLCBpbk1ldGhvZEluc3QsICZvdXRNZXRob2RJbnN0KSkKLSAgICAgICAgZ290byBtZXRo
b2RleGVjZmFpbGVkOwotICAgIGlmIChvdXRNZXRob2RJbnN0PT1OVUxMKQotICAgICAgICBnb3Rv
IHNlc3Npb25leGVjZmFpbGVkOwotCi0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1t
ZXRob2RleGVjZmFpbGVkOgotc2Vzc2lvbmV4ZWNmYWlsZWQ6Ci0gICAgaW5NZXRob2RJbnN0LT5S
ZWxlYXNlKCk7Ci0KLXNlc3Npb25zdGFydDoKLXNldHZwYXRoOgotICAgIHNpbmstPlJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNz
b3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgY29uc3QgY2hhciogc2Vzc2lvbm5hbWUp
IAotewotICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsKLSAgICBpZiAoKCpzZXNzaW9uID0gb3BlblNlc3Npb24od21pLCBz
ZXNzaW9ubmFtZSkpID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1CT09MIFdtaVNlc3Npb25FbmQoV01JQWNjZXNzb3IqKiB3
bWksICB2b2lkICpzZXNzaW9uaGFuZGxlKSAKLXsKLSAgICBIUkVTVUxUIGhyOwotICAgIEFTU0VS
VCgqd21pICE9IE5VTEwpOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqc2Vzc2lvbiA9IChJV2Jl
bUNsYXNzT2JqZWN0ICopc2Vzc2lvbmhhbmRsZTsKLSAgICBpZiAoc2Vzc2lvbj09TlVMTCkgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGhyID0gbWV0aG9kRXhlYyh3bWksIHNl
c3Npb24sIEwiRW5kU2Vzc2lvbiIsIE5VTEwsTlVMTCk7Ci0gICAgaWYgRkFJTEVEKGhyKQotICAg
ICAgICBnb3RvIGV4ZWNtZXRob2RmYWlsZWQ7Ci0gICAgc2Vzc2lvbi0+UmVsZWFzZSgpOwotICAg
IHJldHVybiB0cnVlOwotCi1leGVjbWV0aG9kZmFpbGVkOgotICAgIHJldHVybiBmYWxzZTsKLQot
fQotCi12b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgSEFO
RExFIGV2ZW50LCBIQU5ETEUgZXJyb3JldmVudCkgewotICAgICAgIAotICAgIEhSRVNVTFQgaHI7
Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoq
KXNlc3Npb25oYW5kbGU7Ci0gICAgCi0gICAgQVNTRVJUKCgqd21pKSAhPSBOVUxMKTsKLSAgICBB
U1NFUlQoKCpzZXNzaW9uaGFuZGxlKSAhPSBOVUxMKTsKLQotICAgIFdhdGNoU2luayAqIHNpbmsg
PSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2ZW50LCBwYXRoKTsKLSAgICBCU1RSIHF1ZXJ5
PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBPQkpFQ1RfTkFNRV9BKFdhdGNoRXZlbnQpICIg
V0hFUkUgRXZlbnRJZD1cIiVzXCIiLCBwYXRoKTsKLSAgICBpZiAocXVlcnkgPT0gTlVMTCkgewot
ICAgICAgICBnb3RvIGZvcm1hdHN0cmluZ2ZhaWxlZDsKLSAgICB9Ci0KLSAgICBociA9ICgqd21p
KS0+bXBYU1N2Yy0+RXhlY05vdGlmaWNhdGlvblF1ZXJ5QXN5bmMoTCJXUUwiLCBxdWVyeSwwLE5V
TEwsIHNpbmspOwotICAgIGlmIChGQUlMRUQoaHIpKXsKLSAgICAgICAgKndtaSA9IE5VTEw7Ci0g
ICAgICAgIGdvdG8gd21pZmFpbGVkOwotICAgIH0KLQotICAgIFZBUklBTlQgdnBhdGg7Ci0gICAg
aWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSl7Ci0gICAgICAgIGdvdG8gc2V0dnBh
dGg7Ci0gICAgfQotCi0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNz
aW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJTZXRXYXRjaCIpOwotICAgIGlmICghaW5NZXRob2RJbnN0
KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLQotICAgIGhyID0gaW5NZXRob2RJbnN0LT5Q
dXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAg
IGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwqc2Vzc2lv
biwgTCJTZXRXYXRjaCIsIGluTWV0aG9kSW5zdCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRChocikp
Ci0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIFZhcmlhbnRDbGVhcigmdnBh
dGgpOwotCi0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7Ci0KLSAgICByZXR1cm4gc2luazsKLQot
Ci1tZXRob2RleGVjZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAi
IDogbWV0aG9kZXhlY2ZhaWxlZFxuIik7Ci1tZXRob2RwdXRmYWlsZWQ6Ci0gICAgT3V0cHV0RGVi
dWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBtZXRob2RwdXRmYWlsZWRcbiIpOwotICAgIGluTWV0
aG9kSW5zdC0+UmVsZWFzZSgpOwotc2Vzc2lvbnN0YXJ0OgotICAgIE91dHB1dERlYnVnU3RyaW5n
KF9fRlVOQ1RJT05fXyAiIDogc2Vzc2lvbnN0YXJ0XG4iKTsKLSAgICBWYXJpYW50Q2xlYXIoJnZw
YXRoKTsKLXNldHZwYXRoOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDog
c2V0dnBhdGhcbiIpOwotd21pZmFpbGVkOgotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotZm9y
bWF0c3RyaW5nZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDog
Zm9ybWF0c3RyaW5nZmFpbGVkXG4iKTsKLSAgICBkZWxldGUgc2luazsKLSAgICByZXR1cm4gTlVM
TDsKLX0KLQotdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKFdNSUFjY2Vzc29yICoqd21p
LCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KSAKLXsKLSAgICBIUkVTVUxUIGhyOwot
Ci0gICAgQVNTRVJUKCp3bWkgIT0gTlVMTCk7Ci0KLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gbmV3
IFdhdGNoU2luayhldmVudCwgZXJyb3JldmVudCwgTlVMTCk7Ci0gICAgQlNUUiBxdWVyeT1mb3Jt
YXRCc3RyKCJTRUxFQ1QgKiBmcm9tICIgT0JKRUNUX05BTUVfQShVbnN1c3BlbmRlZEV2ZW50KSk7
Ci0gICAgaWYgKHF1ZXJ5PT1OVUxMKSB7Ci0gICAgICAgIGdvdG8gZm9ybWF0c3RyaW5nZmFpbGVk
OwotICAgIH0KLQotICAgIGhyID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjTm90aWZpY2F0aW9uUXVl
cnlBc3luYyhMIldRTCIsIHF1ZXJ5LDAsTlVMTCwgc2luayk7Ci0gICAgaWYgRkFJTEVEKGhyKQot
ICAgICAgICBnb3RvIGFzeW5jcXVlcnlmYWlsZWQ7Ci0KLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5
KTsKLSAgICByZXR1cm4gc2luazsKLQotYXN5bmNxdWVyeWZhaWxlZDoKLSAgICBTeXNGcmVlU3Ry
aW5nKHF1ZXJ5KTsKLWZvcm1hdHN0cmluZ2ZhaWxlZDoKLSAgICBkZWxldGUgc2luazsKLSAgICBy
ZXR1cm4gTlVMTDsKLX0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmggYi9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTM3ZWY3MS4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQv
V21pQWNjZXNzb3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9XTUlBQ0NFU1NPUl9ICi0jZGVmaW5lIF9XTUlBQ0NF
U1NPUl9ICi0KLSNpbmNsdWRlIDxXYmVtaWRsLmg+Ci0jaW5jbHVkZSA8bGlzdD4KLSNpbmNsdWRl
IDx2ZWN0b3I+Ci0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHN0cmluZz4KLQotI2luY2x1ZGUg
IlhTQWNjZXNzb3IuaCIKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotdHlwZWRlZiB1bnNpZ25l
ZCBfX2ludDY0IHVpbnQ2NF90OwotCi1zdHJ1Y3QgV01JQWNjZXNzb3I7Ci0KLWV4dGVybiBzdHJ1
Y3QgV01JQWNjZXNzb3IgKndtaTsKLQotZXh0ZXJuIExPTkcgd21pY291bnQ7Ci1CT09MIEluaXRD
b20odm9pZCk7Ci12b2lkIFJlbGVhc2VDb20odm9pZCk7Ci1CT09MIENvbm5lY3RUb1dNSSh2b2lk
KTsKLXZvaWQgUmVsZWFzZVdNSUFjY2Vzc29yKHN0cnVjdCBXTUlBY2Nlc3NvciAqKik7Ci0KLXZv
aWQgVXBkYXRlUHJvY2Vzc0xpc3RJblN0b3JlKFdNSUFjY2Vzc29yICoqd21pKTsKLQotaW50IFdt
aVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBjaGFyICogdmFsdWUpOwot
Ci1pbnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Np
b25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2
YWx1ZSwgc2l6ZV90IGxlbik7Ci1jaGFyKiBXbWlTZXNzaW9uR2V0RW50cnkoV01JQWNjZXNzb3Iq
KiB3bWksIHZvaWQgKipzZXNzaW9uaGFuZGxlLAotICAgICAgICAgICAgICBjb25zdCBjaGFyICog
cGF0aCwgc2l6ZV90KiBsZW4pIDsKLQotdm9pZCAqV21pU2Vzc2lvbldhdGNoKFdNSUFjY2Vzc29y
Kiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpOwotQk9PTCBX
bWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKndhdGNoaGFuZGxlKTsKLQotaW50IFdt
aVNlc3Npb25SZW1vdmVFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFu
ZGxlLCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoKTsKLQotY2hhciAqKldtaVNlc3Np
b25HZXRDaGlsZHJlbihXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0g
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCB1bnNpZ25lZCAqbnVtZW50cmllcyk7Ci0K
LQotdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKFdNSUFjY2Vzc29yICoqd21pLCBIQU5E
TEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLQotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlv
bkFib3J0KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUpOyAKLWludCBX
bWlTZXNzaW9uVHJhbnNhY3Rpb25Db21taXQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSk7IAotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlvblN0YXJ0KFdNSUFjY2Vzc29y
Kiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUpOyAKLUJPT0wgV21pU2Vzc2lvblN0YXJ0KFdN
SUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIGNvbnN0IGNoYXIgKnNlc3Np
b25uYW1lKTsKLUJPT0wgV21pU2Vzc2lvbkVuZChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKnNl
c3Npb25oYW5kbGUpOwotRklMRVRJTUUgV21pR2V0WGVuVGltZShXTUlBY2Nlc3NvciAqKndtaSk7
Ci12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSxjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7Ci0jZW5kaWYKZGlmZiAtLWdpdCBh
L3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9Y
U0FjY2Vzc29yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYwZmI4Yi4uMDAw
MDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyMzAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
IDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSAic3RkYWZ4LmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5o
IgotI2luY2x1ZGUgIldNSUFjY2Vzc29yLmgiCi0KLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkg
dm9pZCAqV21pU2Vzc2lvbkhhbmRsZSA9IE5VTEw7Ci0KLXN0YXRpYyBMT05HIHZvbGF0aWxlIHRo
cmVhZGNvdW50ID0gMDsKLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHRocmVh
ZGNvdW50ID0gMDsKLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHdtaWNvdW50
ID0gMDsKLQotc3RhdGljIGxvbmcgdXBkYXRlX2NudD0weEYwMDAwMDAwOwotI2RlZmluZSBYRU5T
VE9SRV9NQUdJQyAweDdlNmVjMTIzCi0KLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNpemUpIHsKLSAg
ICB2b2lkICpidWY7Ci0KLSAgICBidWYgPSBtYWxsb2Moc2l6ZSArIDgpOwotICAgIGlmICghYnVm
KSB7Ci0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7Ci0gICAg
ICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBtZW1zZXQoYnVmLCAwLCBzaXplICsgOCk7Ci0g
ICAgKih1bnNpZ25lZCAqKWJ1ZiA9IFhFTlNUT1JFX01BR0lDOwotICAgIHJldHVybiAodm9pZCAq
KSgoVUxPTkdfUFRSKWJ1ZiArIDgpOwotfQotCi12b2lkIFhzRnJlZShjb25zdCB2b2lkICpidWYp
IHsKLSAgICB2b2lkICpvcmlnX2J1ZjsKLQotICAgIGlmICghYnVmKQotICAgICAgICByZXR1cm47
Ci0gICAgb3JpZ19idWYgPSAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAtIDgpOwotICAgIGlmICgq
KHVuc2lnbmVkICopb3JpZ19idWYgIT0gWEVOU1RPUkVfTUFHSUMpIHsKLSAgICAgICAgT3V0cHV0
RGVidWdTdHJpbmcoIlhzRnJlZSgpIGludm9rZWQgb24gYmFkIHBvaW50ZXJcbiIpOwotICAgICAg
ICBEZWJ1Z0JyZWFrKCk7Ci0gICAgfQotICAgIGZyZWUob3JpZ19idWYpOwotfQotCi12b2lkIEdl
dFhlblRpbWUoRklMRVRJTUUgKm5vdykKLXsKLSAgICAqbm93ID0gV21pR2V0WGVuVGltZSgmd21p
KTsKLX0KLQotCi1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2
ZW50KQotewotICAgIGlmICghV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKCZ3bWksIGV2ZW50LCBl
cnJvcmV2ZW50KSkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJu
IDA7Ci19Ci0KLUJPT0wgSW5pdFhTQWNjZXNzb3IoKQotewotICAgIE91dHB1dERlYnVnU3RyaW5n
KCJYU0FjY2Vzc29yXG4iKTsKLSAgICBpZiAod21pY291bnQgIT0gbG9jYWx3bWljb3VudCkgewot
ICAgICAgICAKLSAgICAgICAgaWYgKGxvY2FsdGhyZWFkY291bnQgPT0gMCkgewotICAgICAgICAg
ICAgbG9jYWx0aHJlYWRjb3VudCA9IEludGVybG9ja2VkSW5jcmVtZW50KCZ0aHJlYWRjb3VudCk7
Ci0gICAgICAgIH0KLSAgICAgICAgY2hhciB3bWluYW1lWzEyXTsKLSAgICAgICAgX3NucHJpbnRm
KHdtaW5hbWUsIDEyLCAiWFMleCIsIGxvY2FsdGhyZWFkY291bnQpOwotICAgICAgICBpZiAoV21p
U2Vzc2lvblN0YXJ0KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCB3bWluYW1lKSkgewotICAgICAg
ICAgICAgbG9jYWx3bWljb3VudCA9IHdtaWNvdW50OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlhTQWNjZXNzb3IgRmFpbGVk
XG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotdm9pZCBYc0xvZyhjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLSAgICB2YV9saXN0IGFyZ3M7
Ci0KLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOwotICAgIFdtaVNlc3Npb25Mb2coJndtaSwgJldt
aVNlc3Npb25IYW5kbGUsIGZtdCwgYXJncyk7Ci0gICAgdmFfZW5kKGFyZ3MpOwotfQotCi0KLUJP
T0wgU2h1dGRvd25YU0FjY2Vzc29yKHZvaWQpCi17Ci0gICAgaWYgKHdtaSA9PSBOVUxMKSB7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0g
TlVMTCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBXbWlTZXNz
aW9uRW5kKCZ3bWksIFdtaVNlc3Npb25IYW5kbGUpOwotCi19Ci0KLWludCBYZW5zdG9yZVByaW50
Zihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLSAgICB2YV9saXN0
IGw7Ci0gICAgY2hhciBidWZbNDA5Nl07Ci0gICAgaW50IGNudDsKLQotICAgIHZhX3N0YXJ0KGws
IGZtdCk7Ci0gICAgY250ID0gX3ZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmbXQsIGwpOwot
ICAgIHZhX2VuZChsKTsKLSAgICBpZiAoY250IDwgMCkgewotICAgICAgICBEQkdQUklOVCAoKCJD
YW5ub3QgZm9ybWF0IGRhdGEgZm9yIFhlbnN0b3JlUHJpbnRmISIpKTsKLSAgICAgICAgcmV0dXJu
IC0xOwotICAgIH0KLSAgICBPdXRwdXREZWJ1Z1N0cmluZyhidWYpOwotICAgIC8qIE5vdyBoYXZl
IHRoZSB0aGluZyB3ZSdyZSB0cnlpbmcgdG8gd3JpdGUuICovCi0gICAgcmV0dXJuIFdtaVNlc3Np
b25TZXRFbnRyeSgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgcGF0aCwgYnVmKTsKLX0KLQotQk9P
TCBYZW5zdG9yZUtpY2tYYXBpKCkKLXsKLSAgICAvKiBOZXcgcHJvdG9jb2wgKi8KLSAgICBpZiAo
WGVuc3RvcmVQcmludGYoImRhdGEvdXBkYXRlX2NudCIsICIlSTY0ZCIsIHVwZGF0ZV9jbnQpKXsK
LSAgICAgICAgWHNMb2coIk5ldyBraWNrIGZhaWxlZCAiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLSAgICAvKiBPbGQgcHJvdG9jb2wgKi8KLSAgICBpZiAoV21pU2Vzc2lvblNldEVu
dHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCAiZGF0YS91cGRhdGVkIiwgIjEiKSl7Ci0gICAg
ICAgIFhzTG9nKCJPbGQga2ljayBmYWlsZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICB1cGRhdGVfY250Kys7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotaW50Ci1YZW5z
dG9yZVJlbW92ZShjb25zdCBjaGFyICpwYXRoKQotewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAg
ICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkKLSAg
ICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKFdtaVNlc3Npb25SZW1vdmVFbnRyeSgmd21pLCAm
V21pU2Vzc2lvbkhhbmRsZSwgcGF0aCkpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICBlbHNlCi0g
ICAgICAgIHJldHVybiAwOwotfQotCi1zc2l6ZV90Ci1YZW5zdG9yZVJlYWQoY29uc3QgY2hhciog
cGF0aCwgY2hhcioqIHZhbHVlKQotewotICAgIHNpemVfdCBsZW47Ci0gICAgKnZhbHVlID1XbWlT
ZXNzaW9uR2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUsIHBhdGgsICZsZW4pOwotICAg
IGlmICgqdmFsdWUpCi0gICAgICAgIHJldHVybiAoc3NpemVfdClsZW47Ci0gICAgZWxzZQotICAg
ICAgICByZXR1cm4gLTE7Ci19Ci0KLQotYm9vbCBYZW5zdG9yZVJlYWREd29yZChjb25zdCBjaGFy
ICpwYXRoLCBEV09SRCAqdmFsdWUpIHsKLSAgICBjaGFyKiBidWZmZXI7Ci0gICAgc3NpemVfdCBs
ZW47Ci0gICAgbGVuID0gWGVuc3RvcmVSZWFkKHBhdGgsICZidWZmZXIpOwotICAgIGlmIChsZW4g
PD0gMCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgICp2YWx1ZSA9IGF0b2ko
YnVmZmVyKTsKLQotICAgIFhzRnJlZShidWZmZXIpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXZvaWQgKgotWGVuc3RvcmVXYXRjaChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhB
TkRMRSBlcnJvcmV2ZW50KQotewotIAotICAgIGlmICh3bWkgPT0gTlVMTCkgewotICAgICAgICBP
dXRwdXREZWJ1Z1N0cmluZygiV01JIGlzIG51bGxcbiIpOwotICAgICAgICByZXR1cm4gTlVMTDsK
LSAgICB9Ci0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkgewotICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZygiU2Vzc2lvbiBpcyBudWxsXG4iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7
Ci0gICAgfQotICAgIHJldHVybiBXbWlTZXNzaW9uV2F0Y2goJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsIHBhdGgsIGV2ZW50LCBlcnJvcmV2ZW50KTsKLX0KLQotQk9PTAotWGVuc3RvcmVVbndhdGNo
KHZvaWQgKndhdGNoKQotewotICAgIHJldHVybiBXbWlTZXNzaW9uVW53YXRjaCgmd21pLCAmV21p
U2Vzc2lvbkhhbmRsZSwgd2F0Y2gpOwotfQotCi12b2lkIAotWGVuc3RvcmVGcmVlKHZvaWQgKnRv
ZnJlZSkKLXsKLSAgICByZXR1cm4gWHNGcmVlKHRvZnJlZSk7Ci19Ci0KZGlmZiAtLWdpdCBhL3Ny
Yy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nl
c3Nvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWQ0MWIwLi4wMDAwMDAwCi0t
LSBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjYgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAot
ICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Ci0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0g
KiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2lmbmRlZiBfWFNBQ0NF
U1NPUl9ICi0jZGVmaW5lIF9YU0FDQ0VTU09SX0gKLQotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNs
dWRlICJ3aW5kb3dzLmgiCi0KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotI2RlZmluZSBNQVhf
WEVOQlVTX1BBVEggMjU2Ci0KLSNpZmRlZiBBTUQ2NAotdHlwZWRlZiBsb25nIGxvbmcgc3NpemVf
dDsKLSNlbHNlCi10eXBlZGVmIGxvbmcgc3NpemVfdDsKLSNlbmRpZgotCi1CT09MIEluaXRYU0Fj
Y2Vzc29yKCk7Ci1CT09MIFNodXRkb3duWFNBY2Nlc3NvcigpOwotc3NpemVfdCBYZW5zdG9yZVJl
YWQoY29uc3QgY2hhciAqcGF0aCwgY2hhciAqKnZhbHVlKTsKLWludCBYZW5zdG9yZVJlbW92ZShj
b25zdCBjaGFyICpwYXRoKTsKLWludCBYZW5zdG9yZVByaW50Zihjb25zdCBjaGFyICpwYXRoLCBj
b25zdCBjaGFyICpmbXQsIC4uLik7Ci1pbnQgWGVuc3RvcmVXcml0ZShjb25zdCBjaGFyICpwYXRo
LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSh2
b2lkKTsKLXZvaWQgKlhlbnN0b3JlV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2ZW50
LCBIQU5ETEUgZXJyb3JldmVudCk7Ci1CT09MIFhlbnN0b3JlVW53YXRjaCh2b2lkICp3YXRjaCk7
Ci1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZ0LCBIQU5ETEUgZXJyb3JldmVudCk7Ci12b2lk
IEdldFhlblRpbWUoRklMRVRJTUUgKnJlcyk7Ci12b2lkIFhzTG9nKGNvbnN0IGNoYXIgKmZtdCwg
Li4uKTsKLXZvaWQgWGVuc3RvcmVGcmVlKHZvaWQgKnRvZnJlZSk7Ci12b2lkICpYc0FsbG9jKHNp
emVfdCBzaXplKTsKLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1Zik7Ci1ib29sIFhlbnN0b3Jl
UmVhZER3b3JkKGNvbnN0IGNoYXIgKiBwYXRoLCBEV09SRCAqdmFsdWUpOwotCi0jaWYgREJHCi0K
LSNpbmNsdWRlIDxzdGRhcmcuaD4gICAgICAgICAvLyB2YV9saXN0Ci0jaW5jbHVkZSA8c3RkaW8u
aD4gICAgICAgICAgLy8gdnNwcmludGYKLSNpbmNsdWRlIDxtYWxsb2MuaD4KLQotI2luY2x1ZGUg
PGFzc2VydC5oPgotI2luY2x1ZGUgPHRjaGFyLmg+Ci0KLV9faW5saW5lIHZvaWQgRGVidWdQcmlu
dCggSU4gTFBDVFNUUiBtc2csIElOIC4uLiApCi17Ci0gICAgVENIQVIgICBidWZmZXJbMjU2XTsK
LSAgICBpbnQgICAgIHJlczsKLSAgICB2YV9saXN0IGFyZ3M7Ci0KLSAgICB2YV9zdGFydCggYXJn
cywgbXNnICk7Ci0jcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6IDI4NzE5LCAiWWVzLCB3ZSBhbGwg
a25vdyBfdnNucHJpbnRmIGlzIGJhbm5lZCBpbiBkcml2ZXJzLCB0aGlzIGlzIHVzZXIgbGV2ZWwi
KTsKLSAgICByZXMgPSBfdnNudHByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpIC8gc2l6ZW9m
KGJ1ZmZlclswXSksIG1zZywgYXJncyk7Ci0gICAgaWYgKHJlcyA+PSAwKQotICAgIHsKLSAgICAg
ICAgT3V0cHV0RGVidWdTdHJpbmcoIGJ1ZmZlciApOwotICAgIH0KLSAgICBlbHNlCi0gICAgewot
ICAgICAgICBUQ0hBUiAqcDsKLSAgICAgICAgaW50IGNvdW50OwotCi0gICAgICAgIGNvdW50ID0g
NTEyOwotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBwID0gKFRDSEFSICopbWFsbG9j
KGNvdW50ICogc2l6ZW9mIChUQ0hBUikpOwotICAgICAgICAgICAgaWYgKCFwKSB7Ci0gICAgICAg
ICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoX1QoIk91dCBvZiBtZW1vcnkgZm9yIGRlYnVnIG1l
c3NhZ2UhXG4iKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICByZXMgPSBfdnNudHByaW50ZihwLCBjb3VudCwgbXNnLCBhcmdzKTsKLSAgICAgICAg
ICAgIGlmIChyZXMgPj0gMCkKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAg
ZnJlZShwKTsKLSAgICAgICAgICAgIGNvdW50ICs9IDI1NjsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocCkgewotICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIHAgKTsKLSAgICAgICAgICAg
IGZyZWUocCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgdmFfZW5kKGFyZ3MpOwotfQotCi0jZGVm
aW5lIERCR1BSSU5UKF94XykgRGVidWdQcmludCBfeF8KLSNkZWZpbmUgQVNTRVJUICBhc3NlcnQK
LQotI2Vsc2UKLQotI2RlZmluZSBEQkdQUklOVChfeF8pIAotI2RlZmluZSBBU1NFUlQgIAotCi0j
ZW5kaWYgLy8gREJHCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hT
ZXJ2aWNlLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFmYmIxMzguLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFn
ZW50L1hTZXJ2aWNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNDQgKzAsMCBAQAotLyogQ29w
eXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0g
KiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAK
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0g
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAq
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8c2hs
b2JqLmg+Ci0jaW5jbHVkZSA8cHJvY2Vzcy5oPgotI2luY2x1ZGUgInBvd3Jwcm9mLmgiCi0jaW5j
bHVkZSA8d2ludXNlci5oPgotI2luY2x1ZGUgInN0ZGFmeC5oIgotI2luY2x1ZGUgIlhTQWNjZXNz
b3IuaCIKLSNpbmNsdWRlICJXTUlBY2Nlc3Nvci5oIgotI2luY2x1ZGUgIlhTZXJ2aWNlLmgiCi0K
LSNpbmNsdWRlICJtZXNzYWdlcy5oIgotCi0jaW5jbHVkZSA8c2V0dXBhcGkuaD4KLSNpbmNsdWRl
IDxjZmdtZ3IzMi5oPgotI2luY2x1ZGUgPGluaXRndWlkLmg+Ci0jaW5jbHVkZSA8ZGV2Z3VpZC5o
PgotI2luY2x1ZGUgPHdpbnRydXN0Lmg+Ci0jaW5jbHVkZSA8c2hlbGxhcGkuaD4KLQotI2lmZGVm
IF9XSU42NAotI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JFR19LRVkgICAiU09GVFdBUkVcXFdv
dzY0MzJOb2RlXFxDaXRyaXhcXFhlblRvb2xzIgotI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JF
R19LRVk2NCAiU09GVFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCi0jZWxzZQotI2RlZmluZSBYRU5U
T09MU19JTlNUQUxMX1JFR19LRVkgICAiU09GVFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCi0jZW5k
aWYKLQotU0VSVklDRV9TVEFUVVMgU2VydmljZVN0YXR1czsgCi1TRVJWSUNFX1NUQVRVU19IQU5E
TEUgaFN0YXR1czsgIAotCi1zdGF0aWMgSEFORExFIGhTZXJ2aWNlRXhpdEV2ZW50Owotc3RhdGlj
IFVMT05HIFdpbmRvd3NWZXJzaW9uOwotc3RhdGljIEJPT0wgTGVnYWN5SGFsID0gRkFMU0U7Ci1z
dGF0aWMgSElOU1RBTkNFIGxvY2FsX2hpbnN0YW5jZTsKLQotSEFORExFIGV2ZW50TG9nOwotI2Rl
ZmluZSBTSVpFQ0hBUlMoeCkgKHNpemVvZigoeCkpL3NpemVvZihUQ0hBUikpCi0KLS8vIEludGVy
bmFsIHJvdXRpbmVzCi1zdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlcihE
V09SRCByZXF1ZXN0LCBEV09SRCBldnRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTFBWT0lELCBMUFZPSUQpOwotc3RhdGljIHZvaWQgU2VydmljZUNvbnRy
b2xNYW5hZ2VyVXBkYXRlKERXT1JEIGR3RXhpdENvZGUsIERXT1JEIGR3U3RhdGUpOwotc3RhdGlj
IHZvaWQgV0lOQVBJIFNlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1zdGF0aWMg
dm9pZCBHZXRXaW5kb3dzVmVyc2lvbigpOwotCi12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAq
ZnVuYywgRFdPUkQgZXJyKQotewotICAgIExQVk9JRCBscE1zZ0J1ZjsKLSAgICBGb3JtYXRNZXNz
YWdlKAotICAgICAgICBGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfAotICAgICAgICBG
T1JNQVRfTUVTU0FHRV9GUk9NX1NZU1RFTSwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgZXJyLAot
ICAgICAgICBNQUtFTEFOR0lEKExBTkdfTkVVVFJBTCwgU1VCTEFOR19ERUZBVUxUKSwKLSAgICAg
ICAgKExQVFNUUikgJmxwTXNnQnVmLAotICAgICAgICAwLAotICAgICAgICBOVUxMKTsKLSAgICBP
dXRwdXREZWJ1Z1N0cmluZygoTFBUU1RSKWxwTXNnQnVmKTsKLSAgICBYc0xvZygiJXMgZmFpbGVk
OiAlcyAoJXgpIiwgZnVuYywgbHBNc2dCdWYsIGVycik7Ci0gICAgWGVuc3RvcmVQcmludGYoImNv
bnRyb2wvZXJyb3IiLCAiJXMgZmFpbGVkOiAlcyAoJXgpIiwgZnVuYywgbHBNc2dCdWYsIGVycik7
Ci0gICAgTG9jYWxGcmVlKGxwTXNnQnVmKTsKLX0KLQotdm9pZCBQcmludEVycm9yKGNvbnN0IGNo
YXIgKmZ1bmMpCi17Ci0gICAgUHJpbnRFcnJvcihmdW5jLCBHZXRMYXN0RXJyb3IoKSk7Ci19Ci0K
LXZvaWQgUHJpbnRVc2FnZSgpCi17Ci0gICAgcHJpbnRmKCJVc2FnZTogeGVuc2VydmljZSBbLXVd
XG4iKTsKLQotICAgIHByaW50ZigiXHQgLXU6IHVuaW5zdGFsbCBzZXJ2aWNlXG4iKTsKLX0KLQot
Ci0KLXN0cnVjdCB3YXRjaF9ldmVudCB7Ci0gICAgSEFORExFIGV2ZW50OwotICAgIHZvaWQgKndh
dGNoOwotfTsKLQotc3RhdGljIHZvaWQKLVJlbGVhc2VXYXRjaChzdHJ1Y3Qgd2F0Y2hfZXZlbnQg
KndlKQotewotICAgIGlmICh3ZSA9PSBOVUxMKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKHdl
LT5ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKLSAgICAgICAgQ2xvc2VIYW5kbGUod2Ut
PmV2ZW50KTsKLSAgICBpZiAod2UtPndhdGNoKQotICAgICAgICBYZW5zdG9yZVVud2F0Y2god2Ut
PndhdGNoKTsKLSAgICBmcmVlKHdlKTsKLX0KLQotc3RhdGljIGNoYXIgKiBJbml0U3RyaW5nKGNv
bnN0IGNoYXIgKiBpbnB1dHN0cmluZykKLXsKLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hh
ciAqKWNhbGxvYygoc3RybGVuKGlucHV0c3RyaW5nKSsxKSxzaXplb2YoY2hhcikpOwotICAgIGlm
IChvdXRwdXRzdHJpbmcgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsYWxsb2M7Ci0gICAgc3Ry
Y3B5KG91dHB1dHN0cmluZywgaW5wdXRzdHJpbmcpOwotICAgIHJldHVybiBvdXRwdXRzdHJpbmc7
IAotCi1mYWlsYWxsb2M6Ci0gICAgWHNMb2coX19GVU5DVElPTl9fICIgOiBGYWlsIG1hbGxvYyIp
OwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCBGcmVlU3RyaW5nKGNvbnN0IGNo
YXIgKnN0cmluZykgCi17Ci0gICAgZnJlZSgodm9pZCAqKXN0cmluZyk7Ci19Ci0KLXN0YXRpYyBj
aGFyKiBQcmludGZTdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pewotICAgIHZhX2xpc3QgbDsK
LSAgICB2YV9zdGFydChsLCBmbXQpOwotICAgIGludCBudW1jaGFycyA9IF92c2NwcmludGYoZm10
LCBsKTsKLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hhciAqKWNhbGxvYyhudW1jaGFycyAr
IDEsIHNpemVvZihjaGFyKSk7Ci0KLSAgICBpZiAob3V0cHV0c3RyaW5nID09IE5VTEwpCi0gICAg
ICAgIHJldHVybiBOVUxMOwotCi0gICAgX3ZzbnByaW50ZihvdXRwdXRzdHJpbmcsIG51bWNoYXJz
LCBmbXQsIGwpOwotICAgIHJldHVybiBvdXRwdXRzdHJpbmc7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qg
d2F0Y2hfZXZlbnQgKgotRXN0YWJsaXNoV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGVy
cm9yZXZlbnQpCi17Ci0gICAgc3RydWN0IHdhdGNoX2V2ZW50ICp3ZTsKLSAgICBEV09SRCBlcnI7
Ci0gICAgWHNMb2coIkVzdGFibGlzaCB3YXRjaCAlcyIscGF0aCk7Ci0gICAgd2UgPSAoc3RydWN0
IHdhdGNoX2V2ZW50ICopbWFsbG9jKHNpemVvZigqd2UpKTsKLSAgICBpZiAoIXdlKSB7Ci0gICAg
ICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KLSAgICBtZW1zZXQod2UsIDAsIHNpemVvZigqd2UpKTsKLSAgICB3ZS0+
d2F0Y2ggPSBOVUxMOwotICAgIHdlLT5ldmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBG
QUxTRSwgTlVMTCk7Ci0gICAgaWYgKHdlLT5ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkK
LSAgICAgICAgd2UtPndhdGNoID0gWGVuc3RvcmVXYXRjaChwYXRoLCB3ZS0+ZXZlbnQsIGVycm9y
ZXZlbnQpOwotICAgIGlmICh3ZS0+d2F0Y2ggPT0gTlVMTCkgewotICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiV2F0Y2ggaXMgbnVsbFxuIik7Ci0gICAgICAgIGVyciA9IEdldExhc3RFcnJvcigp
OwotICAgICAgICBSZWxlYXNlV2F0Y2god2UpOwotICAgICAgICBTZXRMYXN0RXJyb3IoZXJyKTsK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiB3ZTsKLX0KLQotc3RydWN0
IHdhdGNoX2ZlYXR1cmUgewotICAgIHN0cnVjdCB3YXRjaF9ldmVudCAqd2F0Y2g7Ci0gICAgY29u
c3QgY2hhciAqZmVhdHVyZV9mbGFnOwotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgQk9PTCAo
KmhhbmRsZXIpKHZvaWQgKik7Ci0gICAgdm9pZCAqY3R4OwotfTsKLQotI2RlZmluZSBNQVhfRkVB
VFVSRVMgMTAKLXN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCB7Ci0gICAgc3RydWN0IHdhdGNoX2Zl
YXR1cmUgZmVhdHVyZXNbTUFYX0ZFQVRVUkVTXTsKLSAgICB1bnNpZ25lZCBucl9mZWF0dXJlczsK
LX07Ci0KLXN0YXRpYyBCT09MCi1BZGRGZWF0dXJlKHN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAq
d2ZzLCBjb25zdCBjaGFyICpwYXRoLAotICAgICAgICAgICBjb25zdCBjaGFyICpmbGFnLCBjb25z
dCBjaGFyICpuYW1lLAotICAgICAgICAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKSwgdm9pZCAq
Y3R4LCBIQU5ETEUgZXJyb3JldmVudCkKLXsKLSAgICB1bnNpZ25lZCBuOwotICAgIGlmICh3ZnMt
Pm5yX2ZlYXR1cmVzID09IE1BWF9GRUFUVVJFUykKLSAgICAgICAgZ290byBmYWlsZmVhdHVyZXM7
Ci0KLSAgICBuID0gd2ZzLT5ucl9mZWF0dXJlczsKLQotICAgIHdmcy0+ZmVhdHVyZXNbbl0ud2F0
Y2ggPSBFc3RhYmxpc2hXYXRjaChwYXRoLCBlcnJvcmV2ZW50KTsKLSAgICBpZiAod2ZzLT5mZWF0
dXJlc1tuXS53YXRjaCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWx3YXRjaDsKLSAgICAKLSAg
ICB3ZnMtPmZlYXR1cmVzW25dLmZlYXR1cmVfZmxhZyA9IGZsYWc7Ci0gICAgd2ZzLT5mZWF0dXJl
c1tuXS5oYW5kbGVyID0gaGFuZGxlcjsKLSAgICB3ZnMtPmZlYXR1cmVzW25dLmN0eCA9IGN0eDsK
LSAgICB3ZnMtPmZlYXR1cmVzW25dLm5hbWUgPSBJbml0U3RyaW5nKG5hbWUpOwotICAgIGlmICh3
ZnMtPmZlYXR1cmVzW25dLm5hbWUgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsbmFtZTsKLSAg
ICB3ZnMtPm5yX2ZlYXR1cmVzKys7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWZhaWxuYW1lOgotICAg
IFByaW50RXJyb3IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmciKTsKLWZhaWx3YXRjaDoKLSAg
ICBQcmludEVycm9yKCJFc3RhYmxpc2hXYXRjaCgpIGZvciBBZGRGZWF0dXJlKCkiKTsKLWZhaWxm
ZWF0dXJlczoKLSAgICBYc0xvZygiVG9vIG1hbnkgZmVhdHVyZXMiKTsKLSAgICBQcmludEVycm9y
KCJUb28gbWFueSBmZWF0dXJlcyEiLCBFUlJPUl9JTlZBTElEX0ZVTkNUSU9OKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIFJlbW92ZUZlYXR1cmVzKHN0cnVjdCB3YXRjaF9m
ZWF0dXJlX3NldCAqd2ZzKSB7Ci0gICAgdW5zaWduZWQgeDsKLSAgICBmb3IgKHggPSAwOyB4IDwg
d2ZzLT5ucl9mZWF0dXJlczsgeCsrKSB7Ci0gICAgICAgIFJlbGVhc2VXYXRjaCh3ZnMtPmZlYXR1
cmVzW3hdLndhdGNoKTsKLSAgICAgICAgd2ZzLT5mZWF0dXJlc1t4XS53YXRjaCA9IE5VTEw7Ci0g
ICAgICAgIEZyZWVTdHJpbmcod2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgWGVuc3Rv
cmVSZW1vdmUod2ZzLT5mZWF0dXJlc1t4XS5mZWF0dXJlX2ZsYWcpOwotICAgIH0KLSAgICB3ZnMt
Pm5yX2ZlYXR1cmVzID0gMDsKLX0KLQotc3RhdGljIEJPT0wKLUFkdmVydGlzZUZlYXR1cmVzKHN0
cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAqd2ZzKQotewotICAgIHVuc2lnbmVkIHg7Ci0gICAgZm9y
ICh4ID0gMDsgeCA8IHdmcy0+bnJfZmVhdHVyZXM7IHgrKykgewotICAgICAgICBpZiAod2ZzLT5m
ZWF0dXJlc1t4XS5mZWF0dXJlX2ZsYWcgIT0gTlVMTCkKLSAgICAgICAgICAgIGlmIChYZW5zdG9y
ZVByaW50Zih3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZywgIjEiKSl7Ci0gICAgICAgICAg
ICAgICAgWHNMb2coIkZhaWxlZCB0byBhZHZlcnRpc2UgJXMiLHdmcy0+ZmVhdHVyZXNbeF0ubmFt
ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi0KLXZvaWQg
U2VydmljZVVuaW5zdGFsbCgpCi17Ci0gICAgU0NfSEFORExFICAgaFN2YzsKLSAgICBTQ19IQU5E
TEUgICBoTWdyOwotICAgIAotICAgIGhNZ3IgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFND
X01BTkFHRVJfQUxMX0FDQ0VTUyk7Ci0KLSAgICBpZiAoIGhNZ3IgKQotICAgIHsKLSAgICAgICAg
aFN2YyA9IE9wZW5TZXJ2aWNlKGhNZ3IsIFNWQ19OQU1FLCBTRVJWSUNFX0FMTF9BQ0NFU1MpOwot
Ci0gICAgICAgIGlmIChoU3ZjKQotICAgICAgICB7Ci0gICAgICAgICAgICAgLy8gdHJ5IHRvIHN0
b3AgdGhlIHNlcnZpY2UKLSAgICAgICAgICAgICBpZiAoIENvbnRyb2xTZXJ2aWNlKCBoU3ZjLCBT
RVJWSUNFX0NPTlRST0xfU1RPUCwgJlNlcnZpY2VTdGF0dXMgKSApCi0gICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHByaW50ZigiU3RvcHBpbmcgJXMuIiwgU1ZDX0RJU1BMQVlOQU1FKTsK
LSAgICAgICAgICAgICAgICBTbGVlcCggMTAwMCApOwotCi0gICAgICAgICAgICAgICAgd2hpbGUg
KCBRdWVyeVNlcnZpY2VTdGF0dXMoIGhTdmMsICZTZXJ2aWNlU3RhdHVzICkgKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVu
dFN0YXRlID09IFNFUlZJQ0VfU1RPUF9QRU5ESU5HICkKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBTbGVlcCggMTAwMCApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICggU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9PSBTRVJWSUNFX1NUT1BQRUQgKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIlxuJXMg
c3RvcHBlZC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiVzIGZhaWxlZCB0byBzdG9wLlxuIiwgU1ZDX0RJ
U1BMQVlOQU1FICk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIC8vIG5vdyByZW1vdmUgdGhlIHNl
cnZpY2UKLSAgICAgICAgIGlmICggRGVsZXRlU2VydmljZShoU3ZjKSApCi0gICAgICAgICAgICBw
cmludGYoIiVzIHVuaW5zdGFsbGVkLlxuIiwgU1ZDX0RJU1BMQVlOQU1FICk7Ci0gICAgICAgICBl
bHNlCi0gICAgICAgICAgICBwcmludGYoIlVuYWJsZSB0byB1bmluc3RhbGwgLSAlZFxuIiwgR2V0
TGFzdEVycm9yKCkpOwotCi0gICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUoaFN2Yyk7Ci0KLSAg
ICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgIHByaW50ZigiVW5hYmxlIHRvIG9wZW4gc2Vydmlj
ZSAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICAgIENsb3NlU2VydmljZUhhbmRsZSho
TWdyKTsKLSAgIH0KLSAgIGVsc2UKLSAgICAgIHByaW50ZigiVW5hYmxlIHRvIG9wZW4gc2NtIC0g
JWRcbiIsIEdldExhc3RFcnJvcigpKTsKLQotfQotCi0KLWludCBfX3N0ZGNhbGwKLVdpbk1haW4o
SElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGlnbm9yZSwKLSAgICAgICAgTFBTVFIgbHBD
bWRMaW5lLCBpbnQgbkNtZFNob3cpCi17Ci0gICAgbG9jYWxfaGluc3RhbmNlID0gaEluc3RhbmNl
OwotCi0gICAgaWYgKHN0cmxlbihscENtZExpbmUpID09IDApIHsKLSAgICAgICAgU0VSVklDRV9U
QUJMRV9FTlRSWSBTZXJ2aWNlVGFibGVbMl07Ci0gICAgICAgIFNlcnZpY2VUYWJsZVswXS5scFNl
cnZpY2VOYW1lID0gU1ZDX05BTUU7Ci0gICAgICAgIFNlcnZpY2VUYWJsZVswXS5scFNlcnZpY2VQ
cm9jID0gKExQU0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWluOwotCi0gICAgICAgIFNl
cnZpY2VUYWJsZVsxXS5scFNlcnZpY2VOYW1lID0gTlVMTDsKLSAgICAgICAgU2VydmljZVRhYmxl
WzFdLmxwU2VydmljZVByb2MgPSBOVUxMOwotCi0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiBz
dGFydGluZyBjdHJsIGRpc3BhdGNoZXIgIikpOwotCi0gICAgICAgIC8vIFN0YXJ0IHRoZSBjb250
cm9sIGRpc3BhdGNoZXIgdGhyZWFkIGZvciBvdXIgc2VydmljZQotICAgICAgICBpZiAoIVN0YXJ0
U2VydmljZUN0cmxEaXNwYXRjaGVyKFNlcnZpY2VUYWJsZSkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGludCBlcnIgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgICAgIGlmIChHZXRMYXN0RXJy
b3IoKSA9PSBFUlJPUl9GQUlMRURfU0VSVklDRV9DT05UUk9MTEVSX0NPTk5FQ1QpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHVuYWJsZSB0byBzdGFy
dCBjdHJsIGRpc3BhdGNoZXIgLSAlZCIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBXZSBn
ZXQgaGVyZSB3aGVuIHRoZSBzZXJ2aWNlIGlzIHNodXQgZG93bi4KLSAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAoIXN0cmNtcChscENtZExpbmUsICItdSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAi
XCItdVwiIikpIHsKLSAgICAgICAgU2VydmljZVVuaW5zdGFsbCgpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIFByaW50VXNhZ2UoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBB
Y3F1aXJlU3lzdGVtUHJpdmlsZWdlKExQQ1RTVFIgbmFtZSkKLXsKLSAgICBIQU5ETEUgdG9rZW47
Ci0gICAgVE9LRU5fUFJJVklMRUdFUyB0a3A7Ci0gICAgRFdPUkQgZXJyOwotCi0gICAgTG9va3Vw
UHJpdmlsZWdlVmFsdWUoTlVMTCwgbmFtZSwgJnRrcC5Qcml2aWxlZ2VzWzBdLkx1aWQpOwotICAg
IHRrcC5Qcml2aWxlZ2VDb3VudCA9IDE7Ci0gICAgdGtwLlByaXZpbGVnZXNbMF0uQXR0cmlidXRl
cyA9IFNFX1BSSVZJTEVHRV9FTkFCTEVEOwotICAgIGlmICghT3BlblByb2Nlc3NUb2tlbihHZXRD
dXJyZW50UHJvY2VzcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBUT0tFTl9BREpVU1Rf
UFJJVklMRUdFU3xUT0tFTl9RVUVSWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnRva2Vu
KSkgewotICAgICAgICBEQkdQUklOVCgoIkZhaWxlZCB0byBvcGVuIGxvY2FsIHRva2VuLlxuIikp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFkanVzdFRva2VuUHJpdmlsZWdlcyh0b2tlbiwgRkFM
U0UsICZ0a3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCBOVUxMKTsK
LSAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7Ci0gICAgICAgIGlmIChlcnIgIT0gRVJST1Jf
U1VDQ0VTUykgewotICAgICAgICAgICAgUHJpbnRFcnJvcigiQWRqdXN0VG9rZW5Qcml2aWxlZ2Vz
IiwgZXJyKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgQWNxdWlyZVN5c3Rl
bVNodXRkb3duUHJpdmlsZWdlKHZvaWQpCi17Ci0gICAgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShT
RV9TSFVURE9XTl9OQU1FKTsKLX0KLQotZW51bSBYU2h1dGRvd25UeXBlIHsKLSAgICBYU2h1dGRv
d25Qb3dlcm9mZiwKLSAgICBYU2h1dGRvd25SZWJvb3QsCi0gICAgWFNodXRkb3duU3VzcGVuZCwK
LSAgICBYU2h1dGRvd25TMwotfTsKLQotc3RhdGljIEJPT0wgbWF5YmVSZWJvb3Qodm9pZCAqY3R4
KQotewotICAgIGNoYXIgKnNodXRkb3duX3R5cGU7Ci0gICAgQk9PTCByZXM7Ci0gICAgZW51bSBY
U2h1dGRvd25UeXBlIHR5cGU7Ci0gICAgaW50IGNudHIgPSAwOwotCi0gICAgWHNMb2coIkNoZWNr
IGlmIHdlIG5lZWQgdG8gc2h1dGRvd24iKTsKLQotICAgIGlmIChYZW5zdG9yZVJlYWQoImNvbnRy
b2wvc2h1dGRvd24iLCAmc2h1dGRvd25fdHlwZSkgPCAwKSB7Ci0gICAgICAgIFhzTG9nKCJObyBu
ZWVkIHRvIHNodXRkb3duIik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBYc0xv
ZygiU2h1dGRvd24gdHlwZSAlc1xuIiwgc2h1dGRvd25fdHlwZSk7Ci0gICAgaWYgKHN0cmNtcChz
aHV0ZG93bl90eXBlLCAicG93ZXJvZmYiKSA9PSAwIHx8Ci0gICAgICAgIHN0cmNtcChzaHV0ZG93
bl90eXBlLCAiaGFsdCIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93blBvd2Vyb2Zm
OwotICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJyZWJvb3QiKSA9PSAwKSB7
Ci0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25SZWJvb3Q7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAo
c2h1dGRvd25fdHlwZSwgImhpYmVybmF0ZSIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0
ZG93blN1c3BlbmQ7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAoc2h1dGRvd25fdHlwZSwgInMzIikg
PT0gMCkgewotICAgICAgICB0eXBlID0gWFNodXRkb3duUzM7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgREJHUFJJTlQoKCJCYWQgc2h1dGRvd24gdHlwZSAlc1xuIiwgc2h1dGRvd25fdHlwZSkpOwot
ICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0KLSAgICBYc0xvZygiUmVwb3J0IFNodXRkb3duIEV2
ZW50Iik7Ci0gICAgLyogV2UgdHJ5IHRvIHNodXRkb3duIGV2ZW4gaWYgdGhpcyBmYWlscywgc2lu
Y2UgaXQgbWlnaHQgd29yawotICAgICAgIGFuZCBpdCBjYW4ndCBkbyBhbnkgaGFybS4gKi8KLSAg
ICBBY3F1aXJlU3lzdGVtU2h1dGRvd25Qcml2aWxlZ2UoKTsKLQotICAgIGlmIChldmVudExvZykg
ewotICAgICAgICBEV09SRCBldmVudElkOwotCi0gICAgICAgIHN3aXRjaCAodHlwZSkgewotICAg
ICAgICBjYXNlIFhTaHV0ZG93blBvd2Vyb2ZmOgotICAgICAgICAgICAgZXZlbnRJZCA9IEVWRU5U
X1hFTlVTRVJfUE9XRVJPRkY7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1
dGRvd25SZWJvb3Q6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRfWEVOVVNFUl9SRUJPT1Q7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1dGRvd25TdXNwZW5kOgotICAg
ICAgICAgICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfSElCRVJOQVRFOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgWFNodXRkb3duUzM6Ci0gICAgICAgICAgICBldmVudElkID0g
RVZFTlRfWEVOVVNFUl9TMzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgWHNMb2coIkRvIHRoZSBzaHV0ZG93biIpOwotCi0gICAgLyogZG8gdGhlIHNodXRkb3du
ICovCi0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBYU2h1dGRvd25Qb3dlcm9mZjoKLSAg
ICBjYXNlIFhTaHV0ZG93blJlYm9vdDoKLSAgICAgICAgaWYgKFdpbmRvd3NWZXJzaW9uID49IDB4
NTAwICYmIFdpbmRvd3NWZXJzaW9uIDwgMHg2MDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8q
IFdpbmRvd3MgMjAwMCBJbml0aWF0ZVN5c3RlbVNodXRkb3duRXggaXMgZnVubnkgaW4KLSAgICAg
ICAgICAgICAgIHZhcmlvdXMgd2F5cyAoZS5nLiBzb21ldGltZXMgZmFpbHMgdG8gcG93ZXIgb2Zm
IGFmdGVyCi0gICAgICAgICAgICAgICBzaHV0ZG93biwgZXNwZWNpYWxseSBpZiB0aGUgbG9jYWwg
dGVybWluYWwgaXMgbG9ja2VkLAotICAgICAgICAgICAgICAgbm90IGRvaW5nIGFueXRoaW5nIGlm
IHRoZXJlJ3Mgbm9ib2R5IGxvZ2dlZCBvbiwgZXRjLikuCi0gICAgICAgICAgICAgICBFeGl0V2lu
ZG93c0V4IHNlZW1zIHRvIGJlIG1vcmUgcmVsaWFibGUsIHNvIHVzZSBpdAotICAgICAgICAgICAg
ICAgaW5zdGVhZC4gKi8KLSAgICAgICAgICAgIC8qIFhYWCBJIGRvbid0IHJlYWxseSB1bmRlcnN0
YW5kIHdoeQotICAgICAgICAgICAgICAgSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGJlaGF2ZXMg
c28gYmFkbHkuICovCi0gICAgICAgICAgICAvKiBJZiB0aGlzIGlzIGEgbGVnYWN5IGhhbCB0aGVu
IHVzZSBFV1hfU0hVVERPV04gd2hlbiBzaHV0dGluZwotICAgICAgICAgICAgICAgZG93biBpbnN0
ZWFkIG9mIEVXWF9QT1dFUk9GRi4gKi8KLSAgICAgICAgLyogU2ltaWxhciBwcm9ibGVtIG9uIFhQ
LiBTaHV0ZG93bi9SZWJvb3Qgd2lsbCBoYW5nIHVudGlsIHRoZSBXZWxjb21lCi0gICAgICAgIHNj
cmVlbiBzY3JlZW5zYXZlciBpcyBkaXNtaXNzZWQgYnkgdGhlIGd1ZXN0ICovCi0jcHJhZ21hIHdh
cm5pbmcgKGRpc2FibGUgOiAyODE1OSkKLSAgICAgICAgICAgIHJlcyA9IEV4aXRXaW5kb3dzRXgo
KHR5cGUgPT0gWFNodXRkb3duUmVib290ID8gCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFV1hfUkVCT09UIDogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoTGVnYWN5SGFsID8gCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVdYX1NIVVRET1dOIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
V1hfUE9XRVJPRkYpKXwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVdYX0ZPUkNF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RI
RVJ8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9F
TlZJUk9OTUVOVCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNP
Tl9GTEFHX1BMQU5ORUQpOwotI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiAyODE1OSkKLSAgICAg
ICAgICAgIGlmICghcmVzKSB7Ci0gICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiRXhpdFdpbmRv
d3NFeCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoWGVuc3Rv
cmVSZW1vdmUoImNvbnRyb2wvc2h1dGRvd24iKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotI3ByYWdtYSB3YXJuaW5n
IChkaXNhYmxlIDogMjgxNTkpCi0gICAgICAgICAgICByZXMgPSBJbml0aWF0ZVN5c3RlbVNodXRk
b3duRXgoCi0gICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICBOVUxMLAotICAg
ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICB0
eXBlID09IFhTaHV0ZG93blJlYm9vdCwKLSAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFK
T1JfT1RIRVIgfAotICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9FTlZJUk9OTUVO
VCB8Ci0gICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Ci0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDI4MTU5KQotICAgICAgICAgICAgaWYgKCFyZXMpIHsKLSAgICAg
ICAgICAgICAgICBQcmludEVycm9yKCJJbml0aWF0ZVN5c3RlbVNodXRkb3duRXgiKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBYU2h1dGRvd25TdXNwZW5kOgotICAgICAgICBpZiAoWGVuc3Rv
cmVQcmludGYgKCJjb250cm9sL2hpYmVybmF0aW9uLXN0YXRlIiwgInN0YXJ0ZWQiKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgLyogRXZlbiBpZiB3ZSB0aGluayBoaWJlcm5h
dGlvbiBpcyBkaXNhYmxlZCwgdHJ5IGl0IGFueXdheS4KLSAgICAgICAgICAgSXQncyBub3QgbGlr
ZSBpdCBjYW4gZG8gYW55IGhhcm0uICovCi0gICAgICAgIHJlcyA9IFNldFN5c3RlbVBvd2VyU3Rh
dGUoRkFMU0UsIEZBTFNFKTsKLSAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3ZlICgiY29udHJvbC9z
aHV0ZG93biIpKQotICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgLyogVGVsbCB0aGUgdG9v
bHMgdGhhdCB3ZSd2ZSBmYWlsZWQuICovCi0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTeXN0
ZW1Qb3dlclN0YXRlIik7Ci0gICAgICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJjb250cm9s
L2hpYmVybmF0aW9uLXN0YXRlIiwgImZhaWxlZCIpKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhTaHV0ZG93blMzOgot
ICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJjb250cm9sL3MzLXN0YXRlIiwgInN0YXJ0ZWQi
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmVzID0gU2V0U3VzcGVuZFN0
YXRlKEZBTFNFLCBUUlVFLCBGQUxTRSk7Ci0gICAgICAgIFhlbnN0b3JlUmVtb3ZlICgiY29udHJv
bC9zaHV0ZG93biIpOwotICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgUHJpbnRFcnJv
cigiU2V0U3VzcGVuZFN0YXRlIik7Ci0gICAgICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJj
b250cm9sL3MzLXN0YXRlIiwgImZhaWxlZCIpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0KLW91dDoKLSAgICBYZW5zdG9y
ZUZyZWUoc2h1dGRvd25fdHlwZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29s
IHJlZ2lzdHJ5TWF0Y2hTdHJpbmcoSEtFWSAgICBoS2V5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMUENUU1RSIGxwVmFsdWVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMUENUU1RSIGNvbXBhcmVzdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgICAgbWF0Y2hjYXNlKQotewotICAgIGJvb2wgICAgcmVzdWx0ID0gZmFsc2U7
Ci0gICAgTE9ORyAgICBidWZmZXJzaXplID0gc2l6ZW9mKFRDSEFSKSoyNTY7Ci0gICAgVENIQVIg
ICAqb3V0c3RyaW5nID0gTlVMTDsKLSAgICBEV09SRCAgb3V0c3RyaW5nc2l6ZTsKLSAgICBMT05H
ICAgIHN0YXR1czsKLSAgICBkbyB7Ci0gICAgICAgIG91dHN0cmluZ3NpemUgPSBidWZmZXJzaXpl
OwotICAgICAgICBvdXRzdHJpbmcgPSAoVENIQVIgKilyZWFsbG9jKG91dHN0cmluZywgb3V0c3Ry
aW5nc2l6ZSk7Ci0KLSAgICAgICAgc3RhdHVzID0gUmVnUXVlcnlWYWx1ZUV4KGhLZXksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBscFZhbHVlTmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExQQllURSkgb3V0c3Ry
aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHN0cmluZ3NpemUpOwot
ICAgICAgICBidWZmZXJzaXplICo9IDI7Ci0gICAgfSB3aGlsZSAoc3RhdHVzID09IEVSUk9SX01P
UkVfREFUQSk7Ci0KLSAgICBpZiAoc3RhdHVzID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKQotICAg
ICAgICBnb3RvIGRvbmU7Ci0KLSAgICBpZiAobWF0Y2hjYXNlKSB7Ci0gICAgICAgIGlmIChfdGNz
bmNtcChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcsIG91dHN0cmluZ3NpemUpKQotICAgICAgICAg
ICAgZ290byBkb25lOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKF90Y3NuaWNvbGwo
Y29tcGFyZXN0cmluZywgb3V0c3RyaW5nLCBvdXRzdHJpbmdzaXplKSkKLSAgICAgICAgICAgIGdv
dG8gZG9uZTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSB0cnVlOwotCi1kb25lOgotICAgIGZyZWUo
b3V0c3RyaW5nKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBib29sCi1hZGp1
c3RYZW5UaW1lVG9VVEMoRklMRVRJTUUgKm5vdykKLXsKLSAgICBEV09SRCAgICAgICAgICAgZHd0
aW1lb2Zmc2V0OwotICAgIGxvbmcgICAgICAgICAgICB0aW1lb2Zmc2V0OwotICAgIGNoYXIgICAg
ICAgICAgICAqdm07Ci0gICAgY2hhciAgICAgICAgICAgICpydGNrZXk7Ci0gICAgTEFSR0VfSU5U
RUdFUiAgIGxvbmdvZmZzZXQ7Ci0gICAgVUxBUkdFX0lOVEVHRVIgIGxvbmdub3c7Ci0gICAgc2l6
ZV90ICAgICAgICAgIHZtbGVuOwotICAgIAotICAgIC8vIFhlblRpbWUgaXMgYXNzdW1lZCB0byBi
ZSBpbiBVVEMsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIGFueQotICAgIC8vIG9mZnNldHMgdGhhdCBh
cmUgYXBwbGllZCB0byBpdAotCi0gICAgX190cnkgewotICAgICAgICB2bWxlbiA9IFhlbnN0b3Jl
UmVhZCgidm0iLCAmdm0pOwotICAgICAgICBpZiAodm1sZW4gPD0gMCkKLSAgICAgICAgICAgIGdv
dG8gZmFpbF9yZWFkdm07Ci0gICAgfQotICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hB
TkRMRVIpCi0gICAgewotICAgICAgICBnb3RvIGZhaWxfcmVhZHZtOwotICAgIH0KLQotICAgIHJ0
Y2tleSA9IFByaW50ZlN0cmluZygiJXMvcnRjL3RpbWVvZmZzZXQiLCB2bSk7Ci0gICAgaWYgKHJ0
Y2tleSA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWxfcnRja2V5OwotCi0gICAgX3RyeSB7Ci0g
ICAgICAgIEJPT0wgcnRjcmVhZHdvcmtlZDsKLSAgICAgICAgX190cnkgewotICAgICAgICAgICAg
cnRjcmVhZHdvcmtlZCA9IFhlbnN0b3JlUmVhZER3b3JkKHJ0Y2tleSwgJmR3dGltZW9mZnNldCk7
Ci0gICAgICAgIH0KLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikg
ewotICAgICAgICAgICAgcnRjcmVhZHdvcmtlZCA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IGlmICghcnRjcmVhZHdvcmtlZCkgewotICAgICAgICAgICAgaWYgKCFYZW5zdG9yZVJlYWREd29y
ZCgicGxhdGZvcm0vdGltZW9mZnNldCIsICZkd3RpbWVvZmZzZXQpKQotICAgICAgICAgICAgICAg
IGdvdG8gZmFpbF9wbGF0Zm9ybXRpbWVvZmZzZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgX19l
eGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikKLSAgICB7Ci0gICAgICAgIGdvdG8gZmFp
bF9wbGF0Zm9ybXRpbWVvZmZzZXQ7Ci0gICAgfQotICAgIHRpbWVvZmZzZXQgPSAobG9uZylkd3Rp
bWVvZmZzZXQ7Ci0KLSAgICAvL0NvbnZlcnQgb2Zmc2V0IGZyb20gc2Vjb25kcyB0byBuYW5vc2Vj
b25kcwotICAgIGxvbmdvZmZzZXQuUXVhZFBhcnQgPSAgKExPTkdMT05HKXRpbWVvZmZzZXQ7Ci0g
ICAgbG9uZ29mZnNldC5RdWFkUGFydCA9IGxvbmdvZmZzZXQuUXVhZFBhcnQgKiAxMDAwMDAwMDsK
LSAgICAKLSAgICAvLyBTdWJ0cmFjdCBuYW5vc2Vjb25kIHRpbWVvZmZzZXQgZnJvbSBub3cKLSAg
ICBsb25nbm93Lkxvd1BhcnQgPSBub3ctPmR3TG93RGF0ZVRpbWU7Ci0gICAgbG9uZ25vdy5IaWdo
UGFydCA9IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7Ci0gICAgbG9uZ25vdy5RdWFkUGFydCAtPSBsb25n
b2Zmc2V0LlF1YWRQYXJ0OwotICAgIG5vdy0+ZHdMb3dEYXRlVGltZSA9IGxvbmdub3cuTG93UGFy
dDsKLSAgICBub3ctPmR3SGlnaERhdGVUaW1lID0gbG9uZ25vdy5IaWdoUGFydDsKLQotICAgIEZy
ZWVTdHJpbmcocnRja2V5KTsKLSAgICBYc0ZyZWUodm0pOwotICAgIHJldHVybiB0cnVlOwotCi1m
YWlsX3BsYXRmb3JtdGltZW9mZnNldDoKLSAgICBYc0xvZygiJXM6IFJlYWQgcGxhdGZvcm0gdGlt
ZSBvZmZzZXQiLCBfX0ZVTkNUSU9OX18pOwotICAgIEZyZWVTdHJpbmcocnRja2V5KTsKLQotZmFp
bF9ydGNrZXk6Ci0gICAgWHNMb2coIiVzOiBSZWFkIFJUQyBLZXkiLCBfX0ZVTkNUSU9OX18pOwot
ICAgIFhzRnJlZSh2bSk7Ci0KLWZhaWxfcmVhZHZtOgotICAgIFhzTG9nKCIlczogUmVhZCBWTSBL
ZXkiLCBfX0ZVTkNUSU9OX18pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGJvb2wg
aG9zdHRpbWVJc1VUQygpCi17Ci0gICAgSEtFWSAgICAgICAgSW5zdGFsbFJlZ0tleTsKLSAgICBi
b29sICAgICAgICB1dGMgPSBmYWxzZTsKLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxf
TUFDSElORSwgCi0gICAgICAgICAgICAgICAgICAgICBYRU5UT09MU19JTlNUQUxMX1JFR19LRVks
Ci0gICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9B
Q0NFU1MsCi0gICAgICAgICAgICAgICAgICAgICAmSW5zdGFsbFJlZ0tleSkgIT0gRVJST1JfU1VD
Q0VTUykKLSAgICAgICAgZ290byBmYWlsX3JlZ2lzdHJ5a2V5OwotICAgIAotI2lmZGVmIF9XSU42
NAotICAgIAotICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJIb3N0
VGltZSIsICJVVEMiLCBmYWxzZSkpIAotICAgIHsKLSAgICAgICAgIHV0YyA9IHRydWU7Ci0gICAg
ICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgUmVnQ2xvc2VLZXkoSW5zdGFsbFJlZ0tleSk7
Ci0gICAgaWYgKFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIAotICAgICAgICAgICAg
ICAgICAgICAgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZNjQsCi0gICAgICAgICAgICAgICAgICAg
ICAwLAotICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsCi0gICAgICAgICAgICAg
ICAgICAgICAmSW5zdGFsbFJlZ0tleSkgIT0gRVJST1JfU1VDQ0VTUykKLSAgICAgICAgZ290byBm
YWlsX3JlZ2lzdHJ5a2V5OwotCi0jZW5kaWYgCi0KLSAgICBpZiAocmVnaXN0cnlNYXRjaFN0cmlu
ZyhJbnN0YWxsUmVnS2V5LCAiSG9zdFRpbWUiLCAiVVRDIiwgZmFsc2UpKSAKLSAgICB7Ci0gICAg
ICAgIHV0Yz10cnVlOwotICAgIH0KLQotI2lmZGVmIF9XSU42NAotZG9uZToKLSNlbmRpZiAKLSAg
ICBSZWdDbG9zZUtleShJbnN0YWxsUmVnS2V5KTsKLSAgICByZXR1cm4gdXRjOwotCi1mYWlsX3Jl
Z2lzdHJ5a2V5OiAgICAKLSAgICBYc0xvZygiJXM6IE9wZW4gUmVnaXN0cnkgS2V5IiwgX19GVU5D
VElPTl9fKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIHZvaWQKLXNldFRpbWVU
b1hlblRpbWUodm9pZCkKLXsKLSAgICBGSUxFVElNRSAgICBub3cgPSB7MH07Ci0gICAgU1lTVEVN
VElNRSAgc3lzX3RpbWU7Ci0gICAgU1lTVEVNVElNRSAgY3VycmVudF90aW1lOwotICAgIGJvb2wg
ICAgICAgIHV0Yz1mYWxzZTsKLSAgICBYc0xvZygiU2V0IHRpbWUgdG8gWGVuVGltZSIpOwotCi0g
ICAgR2V0WGVuVGltZSgmbm93KTsKLSAgICBpZiAoKG5vdy5kd0xvd0RhdGVUaW1lID09IDApICYm
IChub3cuZHdIaWdoRGF0ZVRpbWUgPT0gMCkpIHsKLSAgICAgICAgWHNMb2coIkNhbm5vdCBzZXQg
c3lzdGVtIHRpbWUgdG8geGVudGltZSwgdW5hYmxlIHRvIGNvbnRhY3QgV01JIik7Ci0gICAgICAg
IGdvdG8gZmFpbF9yZWFkdGltZTsKLSAgICB9Ci0KLSAgICB1dGMgPSBob3N0dGltZUlzVVRDKCk7
Ci0KLSAgICBpZiAodXRjKSB7Ci0gICAgICAgIFhzTG9nKCJUcnkgVVRDIik7Ci0gICAgICAgIGlm
ICghYWRqdXN0WGVuVGltZVRvVVRDKCZub3cpKQotICAgICAgICAgICAgZ290byBmYWlsX2FkanVz
dHRpbWU7Ci0gICAgfQotCi0gICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgmbm93LCAmc3lz
X3RpbWUpKSB7Ci0gICAgICAgIFhzTG9nKCJHb3VsZCBub3QgY29udmVydCBmaWxlIHRpbWUgdG8g
c3lzdGVtIHRpbWUiKTsKLSAgICAgICAgUHJpbnRFcnJvcigiRmlsZVRpbWVUb1N5c3RlbVRpbWUo
KSIpOwotICAgICAgICBEQkdQUklOVCgoIkZpbGVUaW1lVG9TeXN0ZW1UaW1lKCV4LiV4KVxuIiwK
LSAgICAgICAgICAgICAgICAgIG5vdy5kd0xvd0RhdGVUaW1lLCBub3cuZHdIaWdoRGF0ZVRpbWUp
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBHZXRMb2NhbFRpbWUoJmN1cnJlbnRfdGltZSk7Ci0g
ICAgICAgIFhzTG9nKCJUaW1lIGlzIG5vdyAgJWQuJWQuJWQgJWQ6JWQ6JWQuJWQiLAotICAgICAg
ICAgICAgICBjdXJyZW50X3RpbWUud1llYXIsIGN1cnJlbnRfdGltZS53TW9udGgsIGN1cnJlbnRf
dGltZS53RGF5LAotICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud0hvdXIsIGN1cnJlbnRfdGlt
ZS53TWludXRlLCBjdXJyZW50X3RpbWUud1NlY29uZCwKLSAgICAgICAgICAgICAgY3VycmVudF90
aW1lLndNaWxsaXNlY29uZHMpOwotICAgICAgICBYc0xvZygiU2V0IHRpbWUgdG8gJWQuJWQuJWQg
JWQ6JWQ6JWQuJWQiLAotICAgICAgICAgICAgICBzeXNfdGltZS53WWVhciwgc3lzX3RpbWUud01v
bnRoLCBzeXNfdGltZS53RGF5LAotICAgICAgICAgICAgICBzeXNfdGltZS53SG91ciwgc3lzX3Rp
bWUud01pbnV0ZSwgc3lzX3RpbWUud1NlY29uZCwKLSAgICAgICAgICAgICAgc3lzX3RpbWUud01p
bGxpc2Vjb25kcyk7Ci0gICAgICAgIGlmICh1dGMpIHsKLSAgICAgICAgICAgIGlmICghU2V0U3lz
dGVtVGltZSgmc3lzX3RpbWUpKQotICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3Rl
bVRpbWUoKSIpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKCFT
ZXRMb2NhbFRpbWUoJnN5c190aW1lKSkKLSAgICAgICAgICAgICAgICBQcmludEVycm9yKCJTZXRM
b2NhbFRpbWUoKSIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuOwotCi1mYWlsX2Fk
anVzdHRpbWU6Ci0gICAgWHNMb2coIiVzOiBBZGp1c3QgdGltZSIsIF9fRlVOQ1RJT05fXyk7Ci0K
LWZhaWxfcmVhZHRpbWU6Ci0gICAgWHNMb2coIiVzOiBSZWFkVGltZSIsIF9fRlVOQ1RJT05fXyk7
Ci19Ci0KLS8qIFdlIG5lZWQgdG8gcmVzeW5jIHRoZSBjbG9jayB3aGVuIHdlIHJlY292ZXIgZnJv
bSBzdXNwZW5kL3Jlc3VtZS4gKi8KLXN0YXRpYyB2b2lkCi1maW5pc2hTdXNwZW5kKHZvaWQpCi17
Ci0gICAgREJHUFJJTlQoKCJDb21pbmcgYmFjayBmcm9tIHN1c3BlbmQuXG4iKSk7Ci0gICAgc2V0
VGltZVRvWGVuVGltZSgpOwotfQotCi0KLQotLy8KLS8vIE1haW4gbG9vcAotLy8KLUJPT0wgUnVu
KCkKLXsKLSAgICBib29sIGV4aXQ9ZmFsc2U7Ci0gICAgUENIQVIgcFBWQWRkb25zSW5zdGFsbGVk
ID0gTlVMTDsKLQotICAgIEhBTkRMRSBzdXNwZW5kRXZlbnQ7Ci0KLSAgICBpbnQgY250ciA9IDA7
Ci0gICAgc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0IGZlYXR1cmVzOwotICAgIEJPT0wgc25hcCA9
IEZBTFNFOwotCi0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlRyeWluZyB0byBjb25uZWN0IHRvIFdN
SVxuIik7Ci0gICAgd2hpbGUgKCFDb25uZWN0VG9XTUkoKSkgewotICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVW5hYmxlIHRvIGNvbm5lY3QgdG8gV01JLCBzbGVlcGluZ1xuIik7Ci0gICAgICAg
IGlmIChXYWl0Rm9yU2luZ2xlT2JqZWN0KGhTZXJ2aWNlRXhpdEV2ZW50LCAxMDAwKjEwKSA9PSBX
QUlUX09CSkVDVF8wKSB7Ci0gICAgICAgICAgICBleGl0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBleGl0OwotICAgICAgICB9Ci0gICAgfQotICAgIHdoaWxlIChJbml0WFNBY2Nlc3Nvcigp
PT1mYWxzZSkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiVW5hYmxlIHRvIGluaXRpYWxp
c2UgV01JIHNlc3Npb24sIHNsZWVwaW5nXG4iKTsKLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVP
YmplY3QoaFNlcnZpY2VFeGl0RXZlbnQsIDEwMDAqMTApID09IFdBSVRfT0JKRUNUXzApIHsKLSAg
ICAgICAgICAgIGV4aXQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUgbWFpbiBsb29wIHN0YXJ0aW5n
Iik7Ci0KLSAgICBpZiAoZXZlbnRMb2cgPT0gTlVMTCkKLSAgICAgICAgWHNMb2coIkV2ZW50IGxv
ZyB3YXMgbm90IGluaXRpYWxpc2VkIik7Ci0gICAgCi0gICAgc2V0VGltZVRvWGVuVGltZSgpOwot
Ci0gICAgbWVtc2V0KCZmZWF0dXJlcywgMCwgc2l6ZW9mKGZlYXR1cmVzKSk7Ci0KLSAgICBIQU5E
TEUgd21pZXJyb3JFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBGQUxTRSwgTlVMTCk7
Ci0gICAgaWYgKCF3bWllcnJvckV2ZW50KSB7Ci0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0ZUV2
ZW50KCkgd21pZXJyb3JFdmVudCIpOwotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0gICAK
LQotICAgIFhzTG9nKCJBYm91dCB0byBhZGQgZmVhdHVyZSBzaHV0ZG93biIpOwotICAgIGlmICgh
QWRkRmVhdHVyZSgmZmVhdHVyZXMsICJjb250cm9sL3NodXRkb3duIiwgImNvbnRyb2wvZmVhdHVy
ZS1zaHV0ZG93biIsIAotICAgICAgICAgICAgICAgICAgICAic2h1dGRvd24iLCBtYXliZVJlYm9v
dCwgTlVMTCwgd21pZXJyb3JFdmVudCkpIHsKLSAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgfQot
Ci0gICAgc3VzcGVuZEV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxM
KTsKLSAgICBpZiAoIXN1c3BlbmRFdmVudCkgewotICAgICAgICBQcmludEVycm9yKCJDcmVhdGVF
dmVudCgpIHN1c3BlbmRFdmVudCIpOwotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0gICAg
Ci0gICAgaWYgKExpc3RlblN1c3BlbmQoc3VzcGVuZEV2ZW50LCB3bWllcnJvckV2ZW50KSA8IDAp
IHsKLSAgICAgICAgUHJpbnRFcnJvcigiTGlzdGVuU3VzcGVuZCgpIik7Ci0gICAgICAgIENsb3Nl
SGFuZGxlKHN1c3BlbmRFdmVudCk7Ci0gICAgICAgIHN1c3BlbmRFdmVudCA9IE5VTEw7Ci0gICAg
ICAgIHJldHVybiBleGl0OwotICAgIH0KLQotCi0gICAgWHNMb2coIkFib3V0IHRvIGFkdmVydGlz
ZSBmZWF0dXJlcyIpOwotICAgIEFkdmVydGlzZUZlYXR1cmVzKCZmZWF0dXJlcyk7Ci0gICAgCi0g
ICAgWHNMb2coIkFib3V0IHRvIGtpY2sgeGFwaSAiKTsKLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7
Ci0KLSAgICB3aGlsZSAoMSkKLSAgICB7Ci0gICAgICAgIERXT1JEIHN0YXR1czsKLSAgICAgICAg
aW50IG5yX2hhbmRsZXMgPSAxOwotICAgICAgICBIQU5ETEUgaGFuZGxlc1szICsgTUFYX0ZFQVRV
UkVTXTsKLSAgICAgICAgdW5zaWduZWQgeDsKLQotICAgICAgICBoYW5kbGVzWzBdID0gaFNlcnZp
Y2VFeGl0RXZlbnQ7Ci0gICAgICAgIGlmICh3bWllcnJvckV2ZW50KQotICAgICAgICAgICAgaGFu
ZGxlc1tucl9oYW5kbGVzKytdID0gd21pZXJyb3JFdmVudDsKLSAgICAgICAgaWYgKHN1c3BlbmRF
dmVudCkKLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFuZGxlcysrXSA9IHN1c3BlbmRFdmVudDsK
LSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1cmVzLm5yX2ZlYXR1cmVzOyB4KyspCi0gICAg
ICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMrK10gPSBmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRj
aC0+ZXZlbnQ7Ci0KLSAgICAgICAgWHNMb2coIndpbiBhZ2VudCBnb2luZyB0byBzbGVlcCIpOwot
ICAgICAgICBzdGF0dXMgPSBXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKG5yX2hhbmRsZXMsIGhhbmRs
ZXMsIEZBTFNFLCBJTkZJTklURSk7Ci0gICAgICAgIFhzTG9nKCJ3aW4gYWdlbnQgd29rZSB1cCBm
b3IgJWQiLCBzdGF0dXMpOwotCi0gICAgICAgIC8qIFdBSVRfT0JKRUNUXzAgaGFwcGVucyB0byBi
ZSAwLCBzbyB0aGUgY29tcGlsZXIgZ2V0cyBzaGlydHkKLSAgICAgICAgICAgYWJvdXQgc3RhdHVz
ID49IFdBSVRfT0JKRUNUXzAgKHNpbmNlIHN0YXR1cyBpcyB1bnNpZ25lZCkuCi0gICAgICAgICAg
IFRoaXMgaXMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdCB0aGFuIHRoZSBjb21waWxlci1mcmllbmRs
eQotICAgICAgICAgICB2ZXJzaW9uLCB0aG91Z2gsIHNvIGp1c3QgZGlzYWJsZSB0aGUgd2Fybmlu
Zy4gKi8KLQotI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0Mjk2KQotICAgICAgICBpZiAoc3Rh
dHVzID49IFdBSVRfT0JKRUNUXzAgJiYKLSAgICAgICAgICAgIHN0YXR1cyA8IFdBSVRfT0JKRUNU
XzAgKyBucl9oYW5kbGVzKQotI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiA0Mjk2KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBIQU5ETEUgZXZlbnQgPSBoYW5kbGVzW3N0YXR1cyAtIFdBSVRfT0JK
RUNUXzBdOwotICAgICAgICAgICAgaWYgKGV2ZW50ID09IGhTZXJ2aWNlRXhpdEV2ZW50KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIFhzTG9nKCJzZXJ2aWNlIGV4aXQgZXZlbnQiKTsK
LSAgICAgICAgICAgICAgICBleGl0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IHN1c3BlbmRFdmVudCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIVJlcG9ydEV2ZW50KGV2ZW50TG9n
LCBFVkVOVExPR19TVUNDRVNTLCAwLCBFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVELCBOVUxMLCAw
LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIFhzTG9nKCJDYW5ub3Qgc2VuZCB0byBldmVudCBsb2cgJXgiLEdldExhc3RF
cnJvcigpKTsgICAgCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFhzTG9nKCJT
dXNwZW5kIGV2ZW50Iik7Ci0gICAgICAgICAgICAgICAgZmluaXNoU3VzcGVuZCgpOwotICAgICAg
ICAgICAgICAgIEFkdmVydGlzZUZlYXR1cmVzKCZmZWF0dXJlcyk7Ci0gICAgICAgICAgICAgICAg
WGVuc3RvcmVLaWNrWGFwaSgpOwotICAgICAgICAgICAgICAgIFhzTG9nKCJIYW5kbGVkIHN1c3Bl
bmQgZXZlbnQiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09
IHdtaWVycm9yRXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUmVwb3J0RXZl
bnQoZXZlbnRMb2csIEVWRU5UTE9HX1NVQ0NFU1MsIDAsIEVWRU5UX1hFTlVTRVJfV01JLCBOVUxM
LCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEJPT0wgZmFpbCA9IGZhbHNlOwotICAgICAgICAgICAg
ICAgIGZvciAoeCA9IDA7IHggPCBmZWF0dXJlcy5ucl9mZWF0dXJlczsgeCsrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRjaC0+ZXZlbnQgPT0gZXZl
bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJGaXJlICVwIixmZWF0dXJlcy5m
ZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJmaXJlIGZl
YXR1cmUgJXMiLCBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFdmVudCB0cmlnZ2VyZWRcbiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCEoZmVhdHVyZXMuZmVhdHVyZXNbeF0uaGFuZGxlcihmZWF0dXJl
cy5mZWF0dXJlc1t4XS5jdHgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYc0xvZygiRmlyaW5nIGZlYXR1cmUgZmFpbGVkIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiRmVhdHVyZSBmYWlsZWQiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJmaXJlZCBmZWF0dXJlICVz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMuZmVhdHVyZXNbeF0u
bmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgaWYgKGZhaWwpIHsKLSAgICAgICAgICAgICAgICAgICAgWHNMb2coIlJlc2V0dGlu
ZyIpOwotICAgICAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0df
U1VDQ0VTUywgMCwgRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVELCBOVUxMLCAwLCAwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgUHJpbnRFcnJvcigiV2FpdEZvck11
bHRpcGxlT2JqZWN0cygpIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0K
LSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01JIFdhdGNoIGxvb3AgdGVybWluYXRlZFxuIik7Ci0g
ICAgUmVtb3ZlRmVhdHVyZXMoJmZlYXR1cmVzKTsKLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7Ci0K
LSAgICBYc0xvZygiR3Vlc3QgYWdlbnQgbGl0ZSBsb29wIGZpbmlzaGluZyIpOwotICAgIFJlbGVh
c2VXTUlBY2Nlc3Nvcigmd21pKTsKLQotCi0gIAotCi0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxp
dGUgbG9vcCBmaW5pc2hlZCAlZCIsIGV4aXQpOwotICAgIHJldHVybiBleGl0OwotfQotCi0KLS8v
IFNlcnZpY2UgaW5pdGlhbGl6YXRpb24KLWJvb2wgU2VydmljZUluaXQoKQotewotICAgIFNlcnZp
Y2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKLSAgICBTZXJ2
aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAK
LSAgICBTZXJ2aWNlU3RhdHVzLmR3Q29udHJvbHNBY2NlcHRlZCAgID0KLSAgICAgICAgU0VSVklD
RV9BQ0NFUFRfU1RPUCB8IFNFUlZJQ0VfQUNDRVBUX1NIVVRET1dOIHwKLSAgICAgICAgU0VSVklD
RV9BQ0NFUFRfU0VTU0lPTkNIQU5HRTsKLSAgICBTZXJ2aWNlU3RhdHVzLmR3V2luMzJFeGl0Q29k
ZSAgICAgID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2Rl
ID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7IAotICAg
IFNlcnZpY2VTdGF0dXMuZHdXYWl0SGludCAgICAgICAgICAgPSAwOyAKLSAKLSAgICBoU3RhdHVz
ID0gUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeCgKLSAgICAgICAgIlhlblNlcnZpY2UiLCAK
LSAgICAgICAgU2VydmljZUNvbnRyb2xIYW5kbGVyLAotICAgICAgICBOVUxMKTsKLSAgICBpZiAo
aFN0YXR1cyA9PSAoU0VSVklDRV9TVEFUVVNfSEFORExFKTApIAotICAgIHsgCi0gICAgICAgIC8v
IFJlZ2lzdGVyaW5nIENvbnRyb2wgSGFuZGxlciBmYWlsZWQKLSAgICAgICAgREJHUFJJTlQoKCJY
ZW5TdmM6IFJlZ2lzdGVyaW5nIHNlcnZpY2UgY29udHJvbCBoYW5kbGVyIGZhaWxlZCAtICVkXG4i
LCBHZXRMYXN0RXJyb3IoKSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7IAotICAgIH0gIAotCi0g
ICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0ZSA9IFNFUlZJQ0VfUlVOTklORzsgCi0gICAg
U2V0U2VydmljZVN0YXR1cyAoaFN0YXR1cywgJlNlcnZpY2VTdGF0dXMpOwotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgV0lOQVBJIFNlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKLXsKLSAgICAvLyBQZXJmb3JtIGNvbW1vbiBpbml0aWFsaXphdGlvbgotICAgIGV2ZW50TG9n
ID0gUmVnaXN0ZXJFdmVudFNvdXJjZShOVUxMLCAieGVuc3ZjIik7Ci0gICAgaFNlcnZpY2VFeGl0
RXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBmYWxzZSwgZmFsc2UsIE5VTEwpOwotICAgIGlmICho
U2VydmljZUV4aXRFdmVudCA9PSBOVUxMKQotICAgIHsKLSAgICAgICAgREJHUFJJTlQoKCJYZW5T
dmM6IFVuYWJsZSB0byBjcmVhdGUgdGhlIGV2ZW50IG9iaiAtICVkXG4iLCBHZXRMYXN0RXJyb3Io
KSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFTZXJ2aWNlSW5pdCgpKQot
ICAgIHsKLSAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IFVuYWJsZSB0byBpbml0IHhlbnNlcnZp
Y2VcbiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBCT09MIHN0b3BwaW5nOwotCi0g
ICAgZG8gewotICAgICAgICAKLSAgICAgICAgX190cnkKLSAgICAgICAgewotICAgICAgICAgICAg
c3RvcHBpbmcgPSBSdW4oKTsKLSAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgICAgIF9fZXhj
ZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIF9f
dHJ5IHsKLSAgICAgICAgICAgICAgICBYc0xvZygiRXhjZXB0aW9uIGhpdCAleCIsIEdldEV4Y2Vw
dGlvbkNvZGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBfX2V4Y2VwdChFWENFUFRJ
T05fRVhFQ1VURV9IQU5ETEVSKQotICAgICAgICAgICAgewotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RvcHBpbmcgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0gd2hpbGUgKCFzdG9wcGlu
Zyk7Ci0gICAgCi0gICAgWHNMb2coIkd1ZXN0IGFnZW50IHNlcnZpY2Ugc3RvcHBlZCIpOwotICAg
IFNodXRkb3duWFNBY2Nlc3NvcigpOwotICAgIERlcmVnaXN0ZXJFdmVudFNvdXJjZShldmVudExv
Zyk7Ci0gICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfU1RPUFBFRCk7
Ci0gICAgcmV0dXJuOwotfQotCi12b2lkIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZShEV09S
RCBkd0V4aXRDb2RlLCBEV09SRCBkd1N0YXRlKQotewotICAgIFNlcnZpY2VTdGF0dXMuZHdXaW4z
MkV4aXRDb2RlID0gZHdFeGl0Q29kZTsgCi0gICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSAgPSBkd1N0YXRlOyAKLSAgICBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVzLCAmU2VydmljZVN0
YXR1cyk7Ci19Ci0KLS8vIFNlcnZpY2UgY29udHJvbCBoYW5kbGVyIGZ1bmN0aW9uCi1zdGF0aWMg
RFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlcihEV09SRCByZXF1ZXN0LCBEV09SRCBl
dnRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFBWT0lE
IGV2ZW50RGF0YSwgTFBWT0lEIGN0eHQpCi17Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihj
dHh0KTsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGV2ZW50RGF0YSk7Ci0KLSAgICBzd2l0
Y2gocmVxdWVzdCkgCi0gICAgeyAKLSAgICAgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDog
Ci0gICAgICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogeGVuc2VydmljZSBzdG9wcGVkLlxuIikp
OwotICAgICAgICAgICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfU1RP
UF9QRU5ESU5HKTsKLSAgICAgICAgICAgIFNldEV2ZW50KGhTZXJ2aWNlRXhpdEV2ZW50KTsKLSAg
ICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAKLSAgICAgICAgY2FzZSBTRVJWSUNFX0NPTlRS
T0xfU0hVVERPV046IAotICAgICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHhlbnNlcnZpY2Ug
c2h1dGRvd24uXG4iKSk7Ci0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUo
MCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOwotICAgICAgICAgICAgU2V0RXZlbnQoaFNlcnZpY2VF
eGl0RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmtub3duIHJlcXVlc3QuIikpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgfSAKLQotICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0
ZSgwLCBTRVJWSUNFX1JVTk5JTkcpOwotICAgIHJldHVybiBFUlJPUl9DQUxMX05PVF9JTVBMRU1F
TlRFRDsKLX0KZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oIGIvc3Jj
L3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMyZWUxNjMuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBfWFNFUlZJQ0VfSAotI2RlZmluZSBfWFNFUlZJQ0VfSAotCi0jaW5jbHVkZSA8dmVy
c2lvbi5oPgotCi0jZGVmaW5lIFNWQ19OQU1FICJ4ZW5zdmMiCi0jZGVmaW5lIFNWQ19ESVNQTEFZ
TkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZhY2UgU2VydmljZSIKLSNkZWZpbmUgU1ZD
X0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJpb3VzIG1ldHJpY3MgdG8gWGVuU3RvcmUi
Ci0KLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jKTsKLXZvaWQgUHJpbnRFcnJvcihj
b25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpOwotdm9pZCBTdGFydENsaXBib2FyZFN5bmModm9p
ZCk7Ci12b2lkIEZpbmlzaENsaXBib2FyZFN5bmModm9pZCk7Ci12b2lkIENsaXBib2FyZENvbnNv
bGVDaGFuZ2VkKHZvaWQpOwotCi12b2lkIFhzRHVtcExvZ1RoaXNUaHJlYWQodm9pZCk7Ci12b2lk
IFhzSW5pdFBlclRocmVhZExvZ2dpbmcodm9pZCk7Ci12b2lkIFhzTG9nTXNnKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKTsKLXZvaWQgRG9Wb2x1bWVEdW1wKHZvaWQpOwotCi12b2lkIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoTFBDVFNUUiBuYW1lKTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvd2lu
MzJzdHViYWdlbnQvZXJyb3JzLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWY0N2NjLi4wMDAwMDAwCi0tLSBhL3NyYy93
aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAK
LS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCAKLSAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgCi0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoK
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAq
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIAotICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKiBCbGFjay1ib3ggZGF0YSByZWNvcmRlci4g
IFRoaXMgcmVjb3JkcyBzdHVmZiB3aGljaCBpcyBoYXBwZW5pbmcKLSAgIHdoaWxlIHRoZSBhZ2Vu
dCBydW5zLCBhbmQgdHJpZXMgdG8gcHVzaCBpdCBvdXQgdG8gZG9tMCBzeXNsb2cgaWYgd2UKLSAg
IGNyYXNoLiAqLwotI2luY2x1ZGUgInN0ZGFmeC5oIgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNp
bmNsdWRlIDxzdGRhcmcuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgIlhTZXJ2aWNlLmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotCi0KLSNk
ZWZpbmUgUklOR19TSVpFIDgxOTIKLQotc3RydWN0IG1lc3NhZ2VfcmluZyB7Ci0gICAgSEFORExF
IGhhbmRsZTsKLSAgICB1bnNpZ25lZCBwcm9kX2lkeDsKLSAgICB1bnNpZ25lZCBjb25zX2lkeDsK
LSAgICB1bnNpZ25lZCBjaGFyIHBheWxvYWRbUklOR19TSVpFXTsKLX07Ci0KLXN0YXRpYyBfX2Rl
Y2xzcGVjKHRocmVhZCkgc3RydWN0IG1lc3NhZ2VfcmluZyBtZXNzYWdlX3Jpbmc7Ci0KLXN0YXRp
YyBjaGFyICoKLVhzdmFzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQotewot
ICAgIGNoYXIgKndvcms7Ci0gICAgaW50IHdvcmtfc2l6ZTsKLSAgICBpbnQgcjsKLQotICAgIHdv
cmtfc2l6ZSA9IDMyOwotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIHdvcmsgPSAoY2hhciAqKW1h
bGxvYyh3b3JrX3NpemUpOwotICAgICAgICBpZiAoIXdvcmspCi0gICAgICAgICAgICByZXR1cm4g
d29yazsKLSAgICAgICAgciA9IF92c25wcmludGYod29yaywgd29ya19zaXplLCBmbXQsIGFyZ3Mp
OwotICAgICAgICBpZiAociA9PSAwKSB7Ci0gICAgICAgICAgICBmcmVlKHdvcmspOwotICAgICAg
ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHIgIT0gLTEgJiYgciA8
IHdvcmtfc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIHdvcms7Ci0gICAgICAgIH0KLSAgICAg
ICAgZnJlZSh3b3JrKTsKLSAgICAgICAgd29ya19zaXplICo9IDI7Ci0gICAgfQotfQotCi1zdGF0
aWMgY2hhciAqCi1Yc2FzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewotICAgIHZhX2xp
c3QgYXJnczsKLSAgICBjaGFyICpyZXM7Ci0KLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOwotICAg
IHJlcyA9IFhzdmFzcHJpbnRmKGZtdCwgYXJncyk7Ci0gICAgdmFfZW5kKGFyZ3MpOwotICAgIHJl
dHVybiByZXM7Ci19Ci0KLXZvaWQKLVhzTG9nTXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewot
ICAgIHZhX2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0gICAgWHNMb2co
Zm10LCBhcmdzKTsKLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dp
bjMyc3R1YmFnZW50L21lc3NhZ2VzLm1jIGIvc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2VzLm1j
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjg5YzQ0Li4wMDAwMDAwCi0tLSBhL3Ny
Yy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYworKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAg
QEAKLVNldmVyaXR5TmFtZXM9KEluZm9ybWF0aW9uYWw9MHgxKQotRmFjaWxpdHlOYW1lcz0oWGVu
VXNlcj0weGQ2MCkKLQotTWVzc2FnZUlkPTB4MDAwMQotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUE9XRVJPRkYKLUxh
bmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gc2h1
dCBpdHNlbGYgZG93bi4KLS4KLQotTWVzc2FnZUlkPTB4MDAwMgotRmFjaWxpdHk9WGVuVXNlcgot
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUkVCT09U
Ci1MYW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZN
IHJlYm9vdC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwMwotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfSElCRVJOQVRFCi1M
YW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGhp
YmVybmF0ZSBpdHNlbGYuCi0uCi0KLU1lc3NhZ2VJZD0weDAwMDQKLUZhY2lsaXR5PVhlblVzZXIK
LVNldmVyaXR5PUluZm9ybWF0aW9uYWwKLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1MzCi1M
YW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGVu
dGVyIHBvd2VyIHN0YXRlIFMzLgotLgotCi1NZXNzYWdlSWQ9MHgwMDA1Ci1GYWNpbGl0eT1YZW5V
c2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9X
TUkKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyBub3RpY2VkIHRoYXQgV01JIGJlY2FtZSBu
b24tZnVuY3Rpb25hbC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwNgotRmFjaWxpdHk9WGVuVXNlcgot
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfU1RBUlRF
RAotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xzIGluaXRpYXRlZC4KLS4KLQotTWVzc2FnZUlk
PTB4MDAwNwotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9s
aWNOYW1lPUVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0
b29scyByZXR1cm5lZCBmcm9tIHN1c3BlbmQuCi0uCi0KLU1lc3NhZ2VJZD0weDAwMDgKLUZhY2ls
aXR5PVhlblVzZXIKLVNldmVyaXR5PUluZm9ybWF0aW9uYWwKLVN5bWJvbGljTmFtZT1FVkVOVF9Y
RU5VU0VSX1VORVhQRUNURUQKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyBleHBlcmllbmNl
ZCBhbiB1bmV4cGVjdGVkIGVycm9yLgotLgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5jcHAgYi9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzJjZWQ3OS4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdl
bnQvc3RkYWZ4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0vLyBzdGRhZnguY3BwIDogc291cmNlIGZpbGUgdGhhdCBpbmNsdWRl
cyBqdXN0IHRoZSBzdGFuZGFyZCBpbmNsdWRlcwotLy8gWGVuU2VydmljZS5wY2ggd2lsbCBiZSB0
aGUgcHJlLWNvbXBpbGVkIGhlYWRlcgotLy8gc3RkYWZ4Lm9iaiB3aWxsIGNvbnRhaW4gdGhlIHBy
ZS1jb21waWxlZCB0eXBlIGluZm9ybWF0aW9uCi0KLSNpbmNsdWRlICJzdGRhZnguaCIKLQotLy8g
VE9ETzogcmVmZXJlbmNlIGFueSBhZGRpdGlvbmFsIGhlYWRlcnMgeW91IG5lZWQgaW4gU1REQUZY
LkgKLS8vIGFuZCBub3QgaW4gdGhpcyBmaWxlCmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdl
bnQvc3RkYWZ4LmggYi9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM5MWE4NDguLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyogQ29weXJpZ2h0IChj
KSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0
aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1Ig
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFN
QUdFLgotICovCi0KLS8vIHN0ZGFmeC5oIDogaW5jbHVkZSBmaWxlIGZvciBzdGFuZGFyZCBzeXN0
ZW0gaW5jbHVkZSBmaWxlcywKLS8vIG9yIHByb2plY3Qgc3BlY2lmaWMgaW5jbHVkZSBmaWxlcyB0
aGF0IGFyZSB1c2VkIGZyZXF1ZW50bHksIGJ1dAotLy8gYXJlIGNoYW5nZWQgaW5mcmVxdWVudGx5
Ci0vLwotCi0jcHJhZ21hIG9uY2UKLQotCi0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0jaW5jbHVkZSA8
dGNoYXIuaD4KLQotLy8gVE9ETzogcmVmZXJlbmNlIGFkZGl0aW9uYWwgaGVhZGVycyB5b3VyIHBy
b2dyYW0gcmVxdWlyZXMgaGVyZQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhh
Z2VudC5yYyBiL3NyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc4ZTVjYzcuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L3czMnhhZ2VudC5yYworKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8bnR2ZXJw
Lmg+Ci0KLSN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCi0jdW5kZWYgVkVSX1BST0RVQ1ROQU1F
X1NUUgotI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgotI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lP
Tl9TVFIKLQotI2luY2x1ZGUgPHZlcnNpb24uaD4KLQotI2RlZmluZSBWRVJfQ09NUEFOWU5BTUVf
U1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCi0jZGVmaW5lIFZFUl9MRUdBTENPUFlSSUdIVF9T
VFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuIgotCi0jZGVmaW5lIFZF
Ul9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0UiCi0jZGVmaW5lIFZFUl9QUk9EVUNU
VkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9SX1ZFUlNJT04sTUlDUk9fVkVSU0lP
TixCVUlMRF9OVU1CRVIKLSNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUiAgICAgIE1BSk9S
X1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVSU0lPTl9TVFIg
Ii4iIEJVSUxEX05VTUJFUl9TVFIKLQotI2RlZmluZSBWRVJfSU5URVJOQUxOQU1FX1NUUiAJICAg
ICJ3MzJ4YWdlbnQuZXhlIgotI2RlZmluZSBWRVJfRklMRVZFUlNJT05fU1RSIAkgICAgIjEuMCIK
LSNkZWZpbmUgVkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJ3MzJhZ2VudCIKLSNkZWZpbmUg
VkVSX09SSUdJTkFMRklMRU5BTUVfU1RSICAgICJ3MzJ4YWdlbnQuZXhlIgotI2RlZmluZSBWRVJf
RklMRVRZUEUgVkZUX0FQUAotI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMAotCi14ZW5faWNvbiBJ
Q09OICJ4ZW4uaWNvIgotCi0jaW5jbHVkZSAiY29tbW9uLnZlciIKLSNpbmNsdWRlICJtZXNzYWdl
cy5yYyIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvd2luMzJz
dHViYWdlbnQveGVuLmljbyBiL3NyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NDRjOTkzYmEyOTBlNTA1NWE4OTAwY2E4Nzg2ZWEwZTAzMTEz
OGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI1MjE0CnpjbWVIdjMwemdoYH1l
UmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQJTYmS1lsKipGSzU+M1NvMT5FO0ZfWFQkfQp6dl8j
eXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4cntEWCZ8SWZlQ0AwcG9yb145NE1YVUAzQFZKN1RF
WHM4cCUKem1TVFhsNU9ha1BJLVFjZ1Y9bHhxcmEzdCZgOUwhdlpyS1V1N3RDKWYpO0l7XlAhOVpS
LWQyZDY/JS1HUTFGVkYyCnooXnVveWk4Y08wOTFZTztJblI3VVRXUzB7Rn5DeFklNU1yMCRVZCtN
KFNyZk01S0AmJHJqME1EVCojRXZSMytqbwp6Q21FP0NII2U2SE5kNlpATkhPPnlOVnhvRXVvKmtI
NnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RHfUxJblV1N3wKeiNGaG1HaUhYVCtoN3ZYdDZBUDQo
bXBHfGRsVENfN0UtMSlMRjRtTVhrIyVTeFBwYD93a2p6RmpPJEomWmwkV2ZTCnpIZXVIYippNihe
dDh0IzlENWEkZHkrQTR8cCs7M3lMSmVEbnFMaH1XeFY+cEFsJT1aKUN9UT1YS1Z+dSo1V0BofQp6
WGFhZ1ZFMFhGfTBZcD41dWhGSFpzZTFOZXgrSkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3Eq
V3VqdGRydFIKekRmRShoNm47JTBkQVFiV1UjZjxzMSUxN2dDZXdSVk9xY0FeQ2tQYk5RUChGKiEq
WVFzVD8oKklPamp4Xyl2eTlwCnpsaUR3ZSloQTM+eTlqajZRQmMoWUhCNGAqPCtWNmI0amBATkde
KkBnRE5zejJEWEZGdU1UIzJzdzBLczRVbU1TKwp6bU5qLTNGbSRQU3pLRjhzN2ktYz83fGxvNFJR
bWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNlPkJ3OzR3JDNuem0Kempkfj02SHt3RGU5MSo3cVZT
JCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4jYVYkNmdAXyVDPDZQdXpnd1d6dDxTbHMzCnp7RUhhSHlk
VyMjSWRMakRVTy08aV96ZTZnTUJjenAmNDFIK1k0ejNXJnJLbFBMKkc4RU5WYj5PZXAtOHkrUC1S
Zwp6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwzfmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZ
NSp8OEg3VGpDeHYKek5nPiN6YVNrQ19QUDV8YXAtYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9A
Uio5I3QrUT9Wanc+angodlY8Rko7CnpOVCozNUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8j
ekc2VnMySiFFIVBxNEAqZjxlRH4+P1YmbmNfNV8jNQp6WU0kOXltVGdZdDNZKmxnTUV5PE0hP2dX
YFk1Tk0zX1EkRnFAQVg+JEBYVkhiMD0yc2s3NTZWJU1oPn1EMyFkSSkKeiNOJjU3aDlyaChBckRt
YG1qek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgpZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFCnpzaGxv
N3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEqbytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlx
WUxPVQp6X2FldktrcCttRUFZPDl2cGclYzlRPTRnV1RDQ35TK2QqNWl4eU0tUlk8T002K1FUZ2Rs
b2htY0BJblQlI2B7aU4Kek1VP2x1YGs/ZyE2WiRkVXNeVEwwZ0B1V0p7clpYVjxIdzZCOXp2eDFT
YyFDaGRvam4pT3cxMXVWbk1MQSRmI0xDCnpPYj5EdnZ1anJwKTlaU1BgRV59SFdgdmhtUlpFRHFi
JWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0tbXA5Nz9iaAp6YFIoalFROUJ7ZF9JNDNoIyNSK3l5
Y0k0Y3d7OXd5YngwNjchPHZiOHtrdz1QdyFpJkAoYyhzVzRSTD42bjN5PncKek89TStkaUtSPUlp
ZEN5dGlNNENqaWo1bUxpcnU/K2l2dEdeaHlwSVZraDRSc1RTdCFgNn5+U3A2RExsYjVUe1J7Cno3
VSQyTzdoaXc8d1lZbHFzPD82RWhQWlg+bWJpUU91NlhkXmYleCZxQUheQGZ7MzNxO3tkZSl+bk91
R0tQNGpRIQp6LXhtMWEmO3E9WXwzOWR2bHxIPEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypv
e2Etcm0wY0w2Ki1HdjliJmEKel4hNChwNXVrPHxVWUA+ekEobXk+VkJPNUVYSTVsdGM9LW1oaloo
Wn5QZkJuQGg5JWdtNSgyRTsrZUVrT1JlK1pfCnpuPWxiemNJaXJ1NWBpdCRASDc9KmMyNUlORkJ1
RjdDSVZwaExiMVlWZTNmKSMwam5UeWptT2dAWG1zek87d280TAp6YGckXjU7akNzOTZkRFNCMTJx
Qm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1JGJTdWs2PXVISGklfilwMVU7K2kKejRPaihNV2tT
M2I+WmsoMjhpRGhXc0ghPy1XJDd6OTs8V09wJH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpP
Cnpkej5ROEVMRF55dmhyNmJlQU8oKGhnODxRUVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3Uo
MCh9Zjw4azs2KQp6UCprYXNrSUctc0ZsZH1JangjSyZzUEczPmFXeDdDMCNRWjx1Q2xeYktgdGdp
WXNtUWM1UighI1ApWXVmVmhlU1EKejFyJlpLZCplezdLUiYqSlZVZCZNNHxLUDttdWwzYTJGMjwq
NiUhMEglSSlwbG1HKXUmYXZXNmxJITVmQTJ8PEFACnpTTldeayoqUzZFJldgREpgaEs8M2NTWDNw
b3QtU05FPVFiSUFvRHZwbUE2OSgqMF8rLUVYNCVkbTNNTm92eTwlSAp6S25gfSEmTWVALWRiR05O
eTt2WUZtPSlTTnNOKmVBWFlLNmY/Q2p2K1AoRGdrOEUwYz5YVW90bSNNZzZudyQ+XjcKemM/NE5J
eVNxYzhwMmx1JVhKY2IrVmBGMmh4ZmRWaFlefTAwenN8d08kSzZmWnM4RkdUb3ZwMjExc2pIfkUk
MThACnpvU29nPSs8aHUmPlVsJjVURCR3SDV7P2NJJSVsWWUyUzxoNSRLNl4jLShrU2Ymcmd3WGI5
T1dndGVTUUVgMXZ7Tgp6KW5tPkN4JXYzfUwmVGpjVmktNk5aaHY8LXJFISNIbXB5WHleWEM4fmtr
SkM/bjM/STAjb2o9SzE+RjJYQXB0ODgKemw3Vyo3JkNRcnk2OV40ZVdGKFYlVlZZa0ZifTY5cTwx
I0p5WVlBcjhuUUIqRDNldmd6KkcxNT9CSUVDLUVBNCo3Cno3V2xAaU5xYFh7KVpibCkrcHk5c3Jk
T150X2teeGBYbFVLfl8xUXt3JklGZGBpemJNaGRyK1h4IW91OWwlLXE2NAp6JEM+QmR1VnBufVc8
UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcrekp6c2dHbz9qS0o9VTF1eE5RaVApZzdZZ3AKeklw
RitDcDV0KUwmI2R6TmlwQXZsbEA9RXdAMiNGd0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRS
WXY2Qm5CCnpmaj9UbDVPbnJpdEFgZUFfMDtPRXdGNVZTYTt9JUV3b3s/blpZJnRiaDVCfFNySmVE
ZHMkO302QEUlNDZPQ14kNQp6Z1hoI2FvfFltYiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9
dSNreiktI2hNMEgjRXhpSkZ9K2JPYVZYTUsKejlFLTZPMmIjRXdVNVZhZVMkdVZ8YHFlc09YUzM9
ZXImV205QD4rPTQpR2tgPWN8QSY7WS19YVlIblMwRGxXb1B0CnpIdW1EJUhqZCYtUzRXWkcrKHFR
SV9ZeE82eFFjSnZJeCk+am9iS1EkOTwoJFFnPjQ8aD9YS20tLTdmYXhEbkhXfQp6NHM7ZHcyRHls
dlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHshfV5LQyEoSkRra00xdD0jYFkzPD8rcC1sUWEhfSYK
ems5NllCQ3B6KDlNc0BMRWV6Mz8tZU1AfXQ7YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34m
WWtqXl9zcEQkCno7JXckKmFlbVBaYWRHSiFAenUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYj
ZHFJKkMhYyUyfE5pQGJwTC0zNAp6KjF5VUI4Nz1UbktjfmpaUCk2TmpWPyU1Q1NGaTQwRD5PRT9C
dWl8bFBlOUYoMjljMnNMVFV6aGdxbXsxYHFnTDwKenI0SjFQe0VRaTVlSWc9ZGgqRn0rYGFYc1h2
SHRaVmo2I0VtYFgwcCR2QVc8PWY9KitJXiR6NDRzQy1uJE1GdTdXCnpkYURlZjktZUl4VEtuUkck
K3ZNazRzQUsqNWh8LTA+JXxXXz9QWHwkPU4qfHNxTURhZjViS1U3OC0qZGNZU3E/QQp6d1VhYj1T
c3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZqYmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3QyfEZA
REgKej9YO3x3MUlta3d0KDVaaT9IZyR2Q0AtZ08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47
MUlxX31YbzIoYDdnCnpFQHh3SC1CPWJfVFUqUHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItXj10
c1VjcWdhVXZSbyNlNm93WGR2UnM2Xgp6OGErK3ZHcDxWaWgqKVIwK05BX0hYR05TWElBZjF5OHVa
MCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUs7VkJ5Pl8KekNMeVY1diErZChDZE5jTlROb0VKTCNW
bFA8dlAoWkcwfUFASkRabzdBODNjeihESzt0bGBuT0UhMyQ8VmtWKllUCnoqYE0rQ1E1O2RLam9l
MT8taCs0X0dYND43RWVkJj9rKm1DV2E3XldgaFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eAp6JkBI
IXNZenNFQVBqTz1DODJXdCpfOWp7fCpyJnt7PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5k
UDMmcG0KekU0SD8tQyUpe2M2RFBYKml1fjZETVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNN
OVBYSllQN1gqR1haa2h+Cno9U0lGSj90TDAwX1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZ
e1FCIyF8REk9U3txYi03Wnd2ZmlaVU95MQp6I1lfZ3h4fHh9Y2xiZjU5amhWN3NuMz1tTU0tREZM
YT9MTz1LQ31ZQ2pFXnw5O0FrZXl0UUBfKXQyI1FtZHdjVzIKemhMeEZfd1BRSiomZVBwbj1VdlhS
b1ZBJTUmWCNsPnltOEMxU011ZE5iLUhTNS1uTS1DXjZwXnA8Yjx1Nm5JI3tsCno9eVpWMnlARGto
OzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVyYnxXb29uVUZ1NkFaOW1CRkNDYz13MlJrYSFvRgp6
JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5Png9KExad0dCUCgtO0NCdWVNbz43VjYkPyMoWUZt
UnhWVj58JDkKeiZgPF4qQEluVCUmezVfVzdYT0h8MjE7T3lWYTAlYkglNF92VH1BQHFidykybktn
TE1MSjFVUns0UTFjfkZKdkdLCno5bmJ9eHxGd0VSSHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUl
Y19nODwhWkRkLXZ9Qlc4YzFncDglWnhzYXY7aAp6LSFsRDU9Z3lyXndyYlVDSE9xWCRjbyh0Xj16
dVFoZ3prVTVLVWsqKTFJTTVeaXd8Tm49Uk1uRV9VUXRBOTVHX1YKeigrTHdNSmV4ZHV2YyNNQGIw
fEFJVExOaX40aiVCYiV1fXdAUm87Wj51JnpsQV5pT2pKYmkpUjBTcn5OdC0lN0YkCnpHWH5uamZ1
VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2akZwMH11VCFgUCNPQ1lWJCEyQDIlWG0jbjt0Smx3
NQp6a0ctc1ZHR2oxb2FMX1NlNlNraS1eVUpPbCVWRTQ9T2difEgqdjVOM2QtZzFaLXw2WTsmejgt
YU90fllIPSpwbX4KemJaZE15eDtybkI/eXNzIzQ+dzI5X2RCQktgPCFUcmhuIy02RFQzfj00NWht
bjBkKHZBcyZyKzV5T2Ywdj16YEFmCnotTWlteSp8T3pFd2wjcilJZkQ1UCtiPXlZU08mZ2haTk5H
YSFoT0FLQFppQnVGYjxabyV8bTA3PXRoYmctTl84MQp6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZ
ZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZkNSlaQ25eUEhtVjRERlMKejtMOGltWlJXJDZMN2dF
TiNfZShmP1NucXdLUmsmRk1ePldTYkEjd1VgfHlDPF59JEJRWFo3aG16OyhJNUF6WVRCCnpUbzJH
dCN5c0dhR1UkYEZWUlU7PTA5X21FRHN7c0tZO2sqQ1c4MVNCQmo1dUF6UUN1eTk4MWlERzNWVC1P
YDllPgp6Jkw0fiZKTkRfKW5VZzkxP2ZQYCVWOyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0
JjdaXmh3ZHo/Tz9NV1gKemZOM2FgSm02aFhTSVhYNyV7b3tZV1Fzb1lxR099IzZLdWdJPF4/fC1F
biMwITJsTkJSbEhyTUZpTlZrMVNaNlNBCnowe1ptbmJNTzg0LSsjSjxePDVhXk5qRTxBcXVVRT5O
Izc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9uVGlmcGx8TAp6ME50RXYwO1p1JUAtWGtNJSRqczdK
NlAoXz5zJH4qTVUjQiMhWE9XViYyaSgjSndxTVg3eFYraDY2T1BaRHxLQ0IKekk+dFFLRW5TWnVK
QFV7NyZ+dDlFQ3RYa1RySkVUKzU7dFpBKHYyQWJSNWFiNmlheERRKkMrYz87VXBnX3tGcElPCnpO
N3A4SikzcHgpRkJQMC04cF48UG9xZEUxV1Q2QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+
RW9DRlRPdAp6Rm01WEljd2RiJTI7V2NqdHchSWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RN
dUkzYT0rKS0wQVlARHMqe04Kejc1YUxGOCt8PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5A
aElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5qCno0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGImY1de
ajsjV3VlZz8/dkNSb2gkNj88KmAtaT4oVEQ/NzVqNShYbDElTQp6eEZUSGA7N2FIRnh6UERPJlVD
Sn42UEBlbk5hdVBPMEN8QVJ6eW5eJFRwVjBVPlZQaWp5cXI9XitKRyhLKHJgRCoKejlUWUNfNjxD
K2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIyWjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz1MU0B5
Cnp2d2RDWU9mTSVvLVFBSCtiKm4oOXh8RkFyb3l5VjRqXiplPzJZV2o0bnFCR09HVnAqR0dMVklp
diVRPzkmaHJEZwp6RXJ3Syp3cVc8LWgkXnhpelE4QmtBSzFzcTRCViUmKk8wSGpJRkBiQzw4MWlJ
a3QzZmhvLXZ2NytMb3RQOVYqbEUKel9MWFRfK2UpO3d3SlItYz18VzRJSkphSDFDdEIzaGtycEw3
KEJneSZiZztQe2VjOTVRekhHczBaYmVfYlFXOGcqCnp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZU
a3JwOyV5e3RSOE9HUEA+Z1dJTUx3XjlGIWJmJks+PCtyZ1ZfPUl0IQp6LWx3dEd6PE1QNmZNYmsl
SChxYVU7YTwzUFAhYipNUD1PQW1eYGFZdipYWmBgK2h5WUImNl9sRFkoTHIlWEdAMEAKekVhPnds
PUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxxJDZGU348JF5TZX1rfGFpRF4oaiYhVmpJZjc1e088
aipCCnp2QUB7IVZjIWJoWkZuQ3gyeU1USj52XzFUNiYtQz9qKmhuRnsoZEsheyZWKlJAcHBhbj9D
RGNeYmM5I34ydjdkfQp6bGVWdXxLPVkhPyk0b1JMYmcrP2A1JXhCK3BqaVhqT0ZyLSQlNCN9KWB7
QFZEPm01cG1uXzFFNCYyMT5KcjdheksKeilzRnFKbXdwXmR2THlKWF81dD5NeSVeUXVKRUpfO1l2
KUhGZWVgcmctejNVeVlFNmUmJER3MiFuTGc2bGs4WWpGCnpFel5JXnBLflhVKTEqZTh2QF9iQV9D
XmFtcnBII0hoWSMrVGtreygrbC1ye3F3SHhoXkdwN1RNRSRCY0tPRkVjbgp6clREPTx6P1h3YlJz
YFIkPWlfbUhtM193RXlEb2ZaUk5gKyV8Rz04RnZuaylsNlJjPC0oQWJqcCMjenVGWm9ocF4Kej9D
SHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5eT2Y+dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1Jj
JXVxVmJgCnorSnRUUkFibndmYn5kZGoqQ09uXyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZ
LUMmcSR5YVhhcDZYd0ViPAp6KzhOMjx2aXh5Zj0kQShpT047Pys5M1ghRCtpJGVzIT8kVH1zMT9s
XigyM0IjU3w3bl9FZStxVjlAJEh+Oz55dkUKejIwfXZHaysjZ0ZaVEo5UmEkK3J7ZWZXcW1xJkBA
VGUmKSR6Q2t0YXw8eSMkVFRaOT5IWW9HI1kjQDcweDd+ejhVCnpjZGtQWnViZU0pSml0SHJkXzM8
RUpeSkIkckpkQ304MmJPaXRzOWluTj1JOCtyeWQ1anElUzdeeig8VEJKamIhYAp6bTstKmk9NU5G
THh+NC1JWjROVnwmRWJxTkw3Tk93a01qb0Q3VXg3KWNDMz1+U35+Y1dtcH1qYm8lWilqRnckd0wK
ei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28tdlFkSF9GPUB8SmlqbkwzJHZpKFElQlM5enkxMiR6
QSRXYUUmY2lBCnprdVBrPSY/b29eVXdJQ0glZjhGfDBNQ2FhcDFhUmhONHBTenhCYiVDKkVmTTQt
bmdiO1Y9O2EtS1RYcFpeTFo7Vwp6WD5DMnJtJG4xbjszTCk8WnU2aG1mMUdYOTtrRDs/Slp0bEo9
WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdvSHQKejdKUzgtZnZOdz9nOVJCTyNFZ34kcnUwKHMl
UjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5MnspMUg8RnxBcWNpCno+PksjNmppMmluS1pfJUhl
LWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1KZXZOXzRhNnhfKWdtXiUtP0N0PUgtTgp6RkRXSjVs
TkpQLT4rTVJ0MktMfkN3NXs1T2tMdmpPaz10TEp6Z3NYVDdQSmJaZyNraWhhWk83QzdTKiglTVhW
b0sKejctJmB1bEBJKE0xPXtta2QwM0E1bSVaU0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0o
JSY/N3YoO2RFZDRQCnp2fWBXUnR8MjVBKjBRQ0FBdlZPbik4T3s4cjE/UD5HKFhUPkIwSXAwRykl
MypgXnhOJDVeWmJQe3RzP0d6aEMldwp6NkV5JGhfaH57NlRnbmJwP1hXJUFtRzs+TyVgZjw8YGhT
VzJtLWpFOCVkPkkrJUllcFY9MmFJRzNxeUhkVGYwMlgKejU4KnY7TyZpSnp3NCRzNE9VbVNTJUIq
MjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVgPH4pNyFNMFN0cVNPTzdjCnpoajtJIShJSiYrWlVF
YjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdvZD9wcG9gLWVaWFF1JG9XUzRiP1pVeno2RAp6YipB
anY0d015QW8tJTlOKFkheiNuIz03eSpXWiQ2KXYlPExTRUFgUi1ZYis5ZSFPPnc3UlVRWmVIbVFX
eXtTWCMKelBqMmg3MEBrTFJIO1UtKCMwWipFdnopWT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0peWpr
VmgrISQ/THNxa2YpKykyCnooISQ3VWx3R2U5VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9
PjU2SDRCOUFAdyMoXkRhcmpNQnNIdWg+bwp6S1I+dTxHflNAWlB7KTZNeytYdFk5ODkwb3N6X09F
S1JjfGxeYTtMVT95NzYyO3JgaUA9Zkd6ZUwkZjwxKFI0NEsKeiFfaHZwcTtWaUVpMU1iYWFDZSRs
bS1gaitINjE3PXhINnFUYitXOHhsPXB4bTN1alRmdU8rNFhTZF9xJFdfKDY7CnpgUW1mJDY7RjZQ
WkN8XkotVk9KcWRFciYxUHcpKzYyV1E2SV9KKz9kPH4jP3dVPF9xV29sS3Y0MitDXlVNSnJsSAp6
KDJ9SXV2Pj9gQj1JNGQ2by1oeH1TK3xPUXtyUlYye1BaTEpZSmpXOXpvM35sb29KZlEkX1VlYXRW
ek9gJDA2KGIKej5jQjJKcDBGMXgzenlFSHFqd1ZgWG97eTkhOGVRQG9PYHFYYHNZVkghKmt3PmB7
ZiMqKFBwJHlxTTBHQ3c1QyVjCnp0JFp6eG1iUXFYMSZ4QyNFNG4oKGpxOygpbT5RSkg+M0xEVUcm
ZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTlF2TQp6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/
WFhuN2JlIWA9anBvcVkjbU9eVDFDP0dIcW9AUWVMU3R7KHV+JTsKeihTbH0yYFZmNEFaYHtzNXUm
K2tYQDJkWXNlZWtoNi1eV0A7KGZTXihYPzIlbVRKYyZ1RXFiTHNLWFpyQnl5ek5+Cno1JFF7Rj5V
LTB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxGaWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdk
TAp6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZY3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBHXmlf
VzlNR0I4X2tOOTUKemNXWCZZK3M0eV48T3NAWVFpdFg+M1p7JlAwV2BhVEFJKy1vTG9ANG4oVHV2
RGxwYjEqKCg2PX1tfG9qbXA5VVN9CnotfiZKOEFQK3N6SEB8NShFcSpuSVIoNUo4P1FRN09MR3I+
RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTttVkIxaAp6SUUpcygrSzZfKF5BPkYjKXNIcH09fXpu
V2Ipd2E4d3hNTypwOUA+WTVkV1QjRzg1fDIrXz43NTVnUzV0cUp3QzUKeiEkNnVINitwOGhZdl9T
ST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1MWBtNDJsZmBXaCRpQGVIM3cmRWM+bG5ACno+bGso
bntuLV9LKjg8Wm1jcjhsRFQlUHlvV0o7XitPS2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVko
ej9FIwp6WCtfc3BYLVM3Pnc0aFpTJjJKR3lTOzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1
QH5zLTdQUHUmZC1gbH0KemNjflpwVlB7cU1ifkd1fWh1e098RWJzU3N2MlZ7a3pjcmA+Iz9rdGVs
JDFaYHZpI0tPK08lPDRVcG1DK3E1RyN5CnpwZ2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0
P3UyNFI9bkFjbVVaRGV6MjFUcndAOz07dVFpa0w7dHNGUwp6KG9RWERkQUJ5U3N6KFB9K3JKeGE5
TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklOPXNWQmZMY3tOPyNNPmNEKlIKentSUCR8SzBraX5K
KWcjZShxfCszKTBkMDA9dCVaI0ktRF9gNHlMRWtLR2YldjQ9ODhDeVI+OGM3fWBFPTZtNU5ICnpJ
QmlXQ01xOT1YcjdkSCl6Y0B4N2JkLVkre0Uma0BeZ3RpPFpzMG1paUxON2skSnNydkh4Sm1LbXdK
RHAqMT8/WAp6P1NuZEt7Vj0malZfTU94R2t2KXZuK256fXJ+S3VNV2N0WDB4JTdHRkVJS3IySV8x
dXFOKGEmPkd0eX1QXmh2YVQKeis5eHRiOSgwdDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNm
b0F8RTFtXjhIXil5bWJKb0khaEZELXstXzE3CnohfEBHaCtYcEZoQSFqP0MrcCZldFoyNjIlWkNw
bnUqUlNTIXQpU3pwbVFudFNCXyNrbCVFMVNJJGVyODFuWU88Nwp6SGNnTDxBbjMraSNkeWQyMmV5
c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJR0N5bF5KclpNUig+dFQtI1FIVUsKejwhfi10SzZI
VFpzZTk/dHpURlpSX3ZWbFdqZlFnWTc0WTYqUV8zaHhQbCVTZnBjQV5XJlR6bDRXfWtIb3lsY1Z2
Cno9M2w8XigpPXdlVypydC1UZSZaZXBmN01RZ3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20j
WTUhaWojP015KAp6KCludnYoJSRKKUJvQkJZMTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVF
RVV7T0B5ZylzJD1mayo0ZT5hNmIKej5mRGkxQkV1eTNIfCo1a01vMXY3KFpLXj1qMSRQaFp8PlYk
SUo7LXZ8RiFRMk5+d254PmNPQEAhYEBxfjMmc0Z8CnpJdklSRnAjUUV3XkJMIUBJNVduJUh+YTB6
eiZZJlM5X05Qc3k9YT40JF5QS2oyRzJsVHBWP2ZXTyZvOUd7PCk1Tgp6MGh9JmsrNzhBeG9LQG55
bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9gZ1R4bHokJjNTTGxDdHFXXm1gPEpJNWcKeiNIcWlf
O3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJGezVXaTs/flJJaSRpbDFBbFhvSD5naGBAPzF9Py1k
WmV3CnokSFZPK2Y1KmVeQj54aF5jPmVlYG1ETGYpeG9XJHpmTlc+QS1IbV5AcWhzYVZSISViZF93
cU1kVkIqQXlrJkoxSwp6YiZNaGdzWCFWdWx0dW14KXoxfVNvZyl9VV5IY2lNKSo7Tyl6ZWZsYXdz
V0todDt7NWwyNXN4JFJ8cWBkaDBKcjYKenpDYT1DPW0xXldXQmIjJD9WUlh0UzlgaVEqb0UlRD1U
NygyZUNXWVVlfko1KGVkKyRWcyZzRk4zKkNMZ3AxeTdDCnpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41
Zzc+eUlWUUImKSpaPXBVMjxpQFY1e1RtZWdVP1Ikfjc0TCNGdz0zelVIZQp6eXBWeHhgdWxJZ2tD
JG8tPTNrZE5iXnZ8ZChVdENncUAjUU00Wn1WRDdVb18/a1BgRnY5UU9kXkhKYXElQDBeZ0kKenQ/
PUlZJntPSndGNmI7IyR4O2FMSEZIZFZ5NThRRlp1OXA2Y1J1bDxKTiNYUmpGQzE0JUp9O1BKKVA2
SGA4eDxMCnplflo2YGZHKzYjdDlJYj40JTR+S0ZMMXFZXjdqWmdgQ0FCbSUtPlNURz1DIzs2QnJB
QyN4Y3E/WG5CLXJkfFU+ZAp6Jjx6YDxSOWxqYHRtdHFEOWx0QkRMPGlyZnRWaXlmTkxRa3gtN0Ne
bns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgKeng1XzFPcVBIN0s5e3g3ck5DJDcmRkRsSkcoP2By
NUdrYDk0PG5JPXleclEjKD8kUXJHezl1RnxnOyF9Jkh+d35gCnozJX0jKT1CVVN8dUZrWjFfSntR
NyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBmR3R4Vzs4JVZON3JNbW4kMWdJegp6TmxCbno/aTdf
YzMmV1oycUVUSGJ6cUpFaDxvRD57VURCbUs7YXRsdztMUCNjc1hiLTYpWEJWdlZaKmN5STNHRloK
ej9FIVJfLXpsR2MjYTUzQ1VBKmJ4aTMyNmgpMVo2VGtfXzZCPFV+N35JQDY3LVJ9NCl7e19DSTNE
V09tNVcqZXt0CnpuXzMlaWRmSjlKVig0VE9EPnw4QVpHPS16P2RrZjtEZik5c0xxbkhOOWpFPGs3
OCNPY2BwJF8lYmgyM21NUERnOAp6VkdBfTU/NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+QG5R
Ri1URCFrX2ArJDImS3Y7NUZaM0oqdkUzRlh2JjQKej9kI1ZBUDhTX2FhSFMqQm1JYDdKVGN7e2JB
TWFkfjkpNU1JTTFOQEpwWXF4NjtvZE9AdllITiNeKlo/KjA9NU80CnoyS0FASWtyczN+JTJKN3VF
KDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJTy1ee3s+M3hoTWhZZ0FyQ1FndGR7NQp6Yk9DPnp0
JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9kIXxFN3Ewdk1jQn4zYHFzMnhqZ2RDUXdnYExMd0tU
aGcKeld5fVl8ZmMlYW5uWTFqek5pUSNUTE41Y2hPeGwwbG4lMUdUci03WGNkeEpEK1k/clpzPVom
ZVlONCYteXBEPlhBCnpgMUw9QUYzOXhQWEhVX0xNbjA1ZHE4R048elR4PHJ3eG5ZdCU0ejZHeVBf
UDU1bXx3REY/S1NoXkxnPX5KaVpKQQp6LVgkQyEqaDJDZz8lcyVneWpmXmlFWW07I15iPHwqKz5F
d0ZzayZKZ1lfV2FBYDQ+NXomd3pIdXhOX1Q2R3ktVGQKejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytX
IztyO2U2ckJZWlFsPmVDNmRCQmx5fGdUd2JCdyNEfUs+a21kRGBlU3t4Cno4fDVWRlhqYzxZQn5K
OUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnswQGBnb30pNmBlO2Y/dmIjPG16O0pUe2hpMAp6bWFG
MCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhgQmM9YFNQckZ7SkxBemZLcTF+LSgoVm9ffFdnNzl6
TFgkVT8KeittLUIzdW1NfHxVQmVoe3UpTUs5P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+MGhl
QHdCJWlwWn5MTipmNndkCnpuQzd3JFk0NDdxKSU8U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5D
T0JwU09QVXdhV0x6fHspRSp+KnZTYnRnQAp6PX12aVhfbmBhPCF4VmZ0bD01RSEkMHZARXs2fHVI
T0leP2otS08/UiVRTjQpRE1TMHlrfDswQU9YKjh6PTY+Pz4Kem1AfD0lajJrRipLb0BrRFd+KGUz
ZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZTcClhXk5WTmxIKUVPZil2OWNYCnpPUktXejs8NX1g
MXxJT1BYfmdmOFNRYXs3d0JEd151JCtBVU5NcnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JUdZbAp6
PkhHWWgmSWsweE4yNiVwJn5DSyh3SFc1bihjRUFjZigqOyFJcTEzbFpFQ1okSnA2flF3Nl9NKClR
JkFFbyE/USsKejRzeFhvRkd+cmVLfD5qTVJKJCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhx
WlVkRjhqeCk3SnJSWUtGdDdmCnolbFBkc1l+ZkZnODJAZnBDbEhMa3FMIW8qbXBRP1g5Kmh4O2Im
TWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBS2paOwp6UXZ6d3d4RXZfODUxR0RoYiRtcy1LQXhaUnJt
JFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5rNXRORnBQJDg3ZDEKenVlVDVYP3VZbDdqMD9tMz0q
cjBJNXxAVG9yKCorc0J+QT1oPTt4Vi08cDl9TSttcmJfYDBTRE5wUHdHZFp5WmhACnorKHxoLTB7
RlhlVTs2Qlc5K0hNe0FJe0N9Q3V5S1ZoVUtSKikqV28/TnZDYEkoeiRVaD5EUE5WPGp9ZHRkeW98
KQp6Y3pedXNGRVVAV1lxOGAzOXs/SDFHSyMpQC1HQCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1a
aW8oSF47Vk9nTikKek5RZGZfLV5wSyhCYzF2ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xy
bnZMSzBMOURueDc3JUJWYjxLTzZxCnp0Q3dXQHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0
T0pMeDwyQXtWbmhxR05BMXBnVWpla3U+YSRSPStjbAp6QD9OaClrWVJiV0FOcWo0PG1he0haJHtE
YSljJG1PKG9pfXphV0l8V0pXJWp2THB0Xkc1SVhiZUNefERgNnolV0wKej9AcllJISNMdmZofio3
RT1uUWAmYDYyKT5XSzcyM3k1LVNjYmFMUDtiWiU2OHsrXztWMzdgeC1FTmU3PUg5Z1NECnpwbHhs
IT08e0FsYm04cXo1PWV1RkdWb35wck52elNRdUZyX3xMdm5mZ1dzKXxycWhzPyU0ZTspeWkhMzF2
aX1FawpDdUNYb3YKCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBlNjc5MThhLi5i
MTMzNTc2IDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisr
KyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTEzNyw3ICsxMzcsNyBA
QAogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KICAgICA8Q2xDb21waWxlPgogICAgICAgPFdh
cm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
cj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5v
dFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KICAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8
L09wdGltaXphdGlvbj4KICAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlv
bkxldmVsTGlua2luZz4KICAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2lj
RnVuY3Rpb25zPgpAQCAtMTY2LDcgKzE2Niw3IEBACiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4K
ICAgICA8Q2xDb21waWxlPgogICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgor
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KICAg
ICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KICAgICAgIDxGdW5jdGlv
bkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KICAgICAgIDxJbnRyaW5z
aWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgpAQCAtMTkzLDM4ICsxOTMsOCBA
QAogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdl
bnRcZXJyb3JzLmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNj
ZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
d2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RV
c2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5jcHAiPgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIgLz4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgi
IC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNl
cnZpY2UuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1
aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+CmRpZmYg
LS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVh
Z2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA1MGRiZTQzLi5hOGY1OWEzIDEwMDY0NAotLS0g
YS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBiL3ZzMjAxMy9saXRlYWdl
bnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5NywzOSArMTk3LDggQEAKICAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XGVycm9ycy5jcHAiPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XHN0ZGFmeC5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNp
bmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmNwcCI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhT
QWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNy
ZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RV
c2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlcHJvY2Vzc1RvRmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+ZmFsc2U8
L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgPC9DbENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgogICA8
SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XHN0ZGFmeC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwu
LlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTZXJ2aWNlLmgiIC8+CiAgIDwvSXRlbUdy
b3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNc
d2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:21:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DD5-0000u8-El; Tue, 24 May 2016 14:21:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DD3-0000tG-2S
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:21:25 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 0D/D6-26543-46364475; Tue, 24 May 2016 14:21:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEIsWRWlGSWpSXmKPExsXitHRDpG5Ssku
 4waTZGhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o+fSHcaCxb3sFevPX2NuYDy0j7WLkZNDQsBf
 Yu/m/ewgNpuAhsSMzsUsILaIgLrEvs9bmUBsZgE1iev7u4DqOTiEBXQklj7jAwmzCKhKvF/2m
 w3E5hVwlTg46wALxEgNiU0NM8DinAJuEu8+3AeLCwHVfN70nRHCVpL4tvgFM0SvoMTJmU9YIF
 ZJSBx8ARLnAJrDLfG3234CI98sJFWzkFQtYGRaxahRnFpUllqka2iol1SUmZ5RkpuYmQPkmej
 lphYXJ6an5iQmFesl5+duYgSGFAMQ7GA8s8L5EKMkB5OSKC9noku4EF9SfkplRmJxRnxRaU5q
 8SFGGQ4OJQneuyA5waLU9NSKtMwcYHDDpCU4eJREeP+ApHmLCxJzizPTIVKnGI05tiy4sZaJY
 0bf/bVMQix5+XmpUuK8gklApQIgpRmleXCDYFF3iVFWSpiXEeg0IZ6C1KLczBJU+VeM4hyMSs
 K8vCBTeDLzSuD2vQI6hQnoFP8vziCnlCQipKQaGKVk7d3fnQmckrd420mZ3dkxKr961s3bmXZ
 v8bpZt3/mxWnLz5HfbDfxyvGJF8+4XNT6Gtx9x33mN9OoZIa9RSs3W25kLxQNYLmy8ZvVGw/X
 lp1CAZ+2vJh8LkJv7u1Jd8SWb87U4qo6W3z5huwi9psrnouqbDReWHhWZJXZlNQaT8X9Pf8Fu
 VuUWIozEg21mIuKEwFjKOYGtQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1464099675!43255838!6
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 65155 invoked from network); 24 May 2016 14:21:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:21:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356289474"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:44 +0100
Message-ID: <1464099660-12432-5-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 04/20] Remove win32stubagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBpcyAxIGxhcmdlIGNvZGUgZGVsZXRpb24gcGF0Y2gsIHRoZSBsaXRlYWdlbnQgd2lsbCBi
ZSByZWltcGxlbWVudGVkIApvdmVyIHRoZSBuZXh0IHNldCBvZiBwYXRjaGVzCgpTaWduZWQtb2Zm
LWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L1dtaUFjY2Vzc29yLmNwcCB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCAgIHwgICA4OCAtLS0K
IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcCAgfCAgMjMwIC0tLS0tLS0KIHNyYy93
aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgfCAgMTI2IC0tLS0KIHNyYy93aW4zMnN0dWJh
Z2VudC9YU2VydmljZS5jcHAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oICAgICAgfCAgIDU0IC0tCiBzcmMvd2luMzJz
dHViYWdlbnQvZXJyb3JzLmNwcCAgICAgIHwgIDEwMiAtLS0KIHNyYy93aW4zMnN0dWJhZ2VudC9t
ZXNzYWdlcy5tYyAgICAgfCAgIDY2IC0tCiBzcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcCAg
ICAgIHwgICAzOSAtLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oICAgICAgICB8ICAgNDMg
LS0KIHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMgICAgfCAgIDYwIC0tCiBzcmMvd2lu
MzJzdHViYWdlbnQveGVuLmljbyAgICAgICAgIHwgIEJpbiAyNTIxNCAtPiAwIGJ5dGVzCiB2czIw
MTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwgICAzNCArLQogdnMyMDEzL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQudmN4cHJvaiB8ICAgMzEgLQogMTQgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRp
b25zKCspLCAzMjQ2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0
dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHVi
YWdlbnQvV21pQWNjZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2Vu
dC9YU0FjY2Vzc29yLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9Y
U0FjY2Vzc29yLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZp
Y2UuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcAogZGVsZXRl
IG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYwogZGVsZXRlIG1vZGUg
MTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQg
c3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMy
c3R1YmFnZW50L3czMnhhZ2VudC5yYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC94ZW4uaWNvCgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29y
LmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI4NWZmOGUuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L1dtaUFjY2Vzc29yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMzEgKzAsMCBAQAotLyogQ29w
eXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0g
KiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAK
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0g
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAq
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJzdGRhZnguaCIKLSNkZWZpbmUgX1dJTjMy
X0RDT00KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0jaW5jbHVk
ZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPGhhc2hfbWFwPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0j
aW5jbHVkZSAid2luZXJyb3IuaCIKLSNpbmNsdWRlICJXTUlBY2Nlc3Nvci5oIgotI2luY2x1ZGUg
IlhTZXJ2aWNlLmgiCi0jaW5jbHVkZSAiY29tdXRpbC5oIgotCi0vLyNpbmNsdWRlICJ4c19wcml2
YXRlLmgiCi0jaW5jbHVkZSA8d2JlbWlkbC5oPgotCi0jaW5jbHVkZSA8dmVyc2lvbi5oPgotCi0j
ZGVmaW5lIFdJREVOMih4KSBMICMjIHgKLSNkZWZpbmUgV0lERU4oeCkgV0lERU4yKHgpCi0KLSNk
ZWZpbmUgT0JKRUNUX05BTUVfQShfTmFtZSkgT0JKRUNUX1BSRUZJWF9TVFIgIlhlblN0b3JlIiAj
X05hbWUKLSNkZWZpbmUgT0JKRUNUX05BTUVfVyhfTmFtZSkgV0lERU4oT0JKRUNUX1BSRUZJWF9T
VFIpIEwiWGVuU3RvcmUiIFdJREVOKCNfTmFtZSkKLQotI3ByYWdtYSBjb21tZW50KGxpYiwgIndi
ZW11dWlkLmxpYiIpCi0jcHJhZ21hIGNvbW1lbnQobGliLCAidXVpZC5saWIiKQotI3ByYWdtYSBj
b21tZW50KGxpYiwgImNvbXN1cHB3LmxpYiIpCi0KLUJTVFIgbWtCc3RyKGNvbnN0IGNoYXIgKnN0
cmluZywgc2l6ZV90IGxlbikgewotICAgIEJTVFIgcmVzID0gTlVMTDsKLSAgICBzaXplX3QgcmV0
dXJuZWQ7Ci0gICAgd2NoYXJfdCogd3N0cmluZyA9IG5ldyB3Y2hhcl90W2xlbisxXTsKLSAgICBp
ZiAod3N0cmluZyA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8gbWFsbG9jX3dzdHJpbmc7Ci0gICAg
fQotICAgIG1ic3Rvd2NzX3MoJnJldHVybmVkLCB3c3RyaW5nLCBsZW4rMSwgc3RyaW5nLCBsZW4p
OwotICAgIHJlcyA9IFN5c0FsbG9jU3RyaW5nKHdzdHJpbmcpOwotICAgIGRlbGV0ZSB3c3RyaW5n
OwotbWFsbG9jX3dzdHJpbmc6Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotY2hhciAqIGZvcm1hdENo
YXJTdHJJbnQoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGwpIHsKLSAgICBjaGFyICpidWYgPSBO
VUxMOwotICAgIGludCBjbnQgPSBfdnNjcHJpbnRmKGZtdCwgbCk7Ci0gICAgYnVmID0gKGNoYXIg
KilYc0FsbG9jKGNudCsxKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgZ290byBt
YWxsb2NfYnVmOwotICAgIH0KLSAgICBfdnNucHJpbnRmKGJ1ZiwgY250KzEsIGZtdCwgbCk7Ci1t
YWxsb2NfYnVmOgotICAgIHJldHVybiBidWY7Ci19Ci0KLWNoYXIgKiBmb3JtYXRDaGFyU3RyKGNv
bnN0IGNoYXIgKmZtdCwgLi4uICkgewotICAgIGNoYXIgKmJ1ZiA9TlVMTDsKLSAgICB2YV9saXN0
IGw7Ci0gICAgdmFfc3RhcnQobCwgZm10KTsKLSAgICBidWYgPSBmb3JtYXRDaGFyU3RySW50KGZt
dCwgbCk7Ci0gICAgdmFfZW5kKGwpOwotICAgIHJldHVybiBidWY7Ci19Ci0KLUJTVFIgZm9ybWF0
QnN0cihjb25zdCBjaGFyICpmbXQsIC4uLikgCi17Ci0gICAgY2hhciAqYnVmOwotICAgIHZhX2xp
c3QgbDsgIAotICAgIEJTVFIgcmVzID0gTlVMTDsKLSAgICB2YV9zdGFydChsLCBmbXQpOwotICAg
IGJ1ZiA9IGZvcm1hdENoYXJTdHJJbnQoZm10LCBsKTsKLSAgICB2YV9lbmQobCk7Ci0gICAgcmVz
ID0gbWtCc3RyKGJ1Ziwgc3RybGVuKGJ1ZikpOwotICAgIFhzRnJlZShidWYpOwotICAgIHJldHVy
biByZXM7Ci19Ci0KLWludCBzZXRWYXJpYW50U3RyaW5nKFZBUklBTlQqIHZhciwgY29uc3QgY2hh
ciAqZGF0YSwgc2l6ZV90IGxlbikgewotICAgIGludCBlcnI9LTE7Ci0gICAgVmFyaWFudEluaXQo
dmFyKTsKLSAgICB2YXItPnZ0PVZUX0JTVFI7Ci0gICAgdmFyLT5ic3RyVmFsID0gbWtCc3RyKGRh
dGEsIGxlbik7Ci0gICAgaWYgKHZhci0+YnN0clZhbCA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8g
c3lzYWxsb2M7Ci0gICAgfQotICAgIGVycj0wOwotc3lzYWxsb2M6Ci0gICAgcmV0dXJuIGVycjsK
LX0KLQotCi1pbnQgc2V0VmFyaWFudFN0cmluZyhWQVJJQU5UKiB2YXIsIGNvbnN0IGNoYXIgKnN0
cmluZykgewotICAgIHJldHVybiBzZXRWYXJpYW50U3RyaW5nKHZhciwgc3RyaW5nLCBzdHJsZW4o
c3RyaW5nKSk7Ci19Ci0KLQotY2xhc3MgV2F0Y2hTaW5rIDogcHVibGljIElXYmVtT2JqZWN0U2lu
awotewotICAgIExPTkcgbV9sUmVmOwotICAgIGJvb2wgYkRvbmU7IAotICAgIEhBTkRMRSB0cmln
Z2VyZXZlbnQ7Ci0gICAgSEFORExFIHRyaWdnZXJlcnJvcjsKLXB1YmxpYzoKLSAgICBjaGFyICpw
YXRoOwotICAgIFdhdGNoU2luayhIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50LCBjb25z
dCBjaGFyICpwYXRoKSB7IAotICAgICAgICBtX2xSZWYgPSAxOyAKLSAgICAgICAgdHJpZ2dlcmV2
ZW50ID0gZXZlbnQ7Ci0gICAgICAgIHRyaWdnZXJlcnJvciA9IGVycm9yZXZlbnQ7Ci0gICAgICAg
IHRoaXMtPnBhdGggPSBOVUxMOwotICAgICAgICBpZiAocGF0aCkgewotICAgICAgICAgICAgdGhp
cy0+cGF0aD0oY2hhciAqKVhzQWxsb2Moc3RybGVuKHBhdGgpKzEpOwotICAgICAgICAgICAgc3Ry
Y3B5KHRoaXMtPnBhdGgsIHBhdGgpOwotICAgICAgICB9Ci0gICAgfQotICAgfldhdGNoU2luaygp
IHsgYkRvbmUgPSBUUlVFOyB9Ci0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBF
IEFkZFJlZigpOwotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgp
OyAgICAgICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIAotICAgICAg
ICBRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdik7Ci0KLSAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSW5kaWNhdGUoIAotICAgICAgICAgICAgLyogW2lu
XSAqLwotICAgICAgICAgICAgTE9ORyBsT2JqZWN0Q291bnQsCi0gICAgICAgICAgICAvKiBbc2l6
ZV9pc11baW5dICovCi0gICAgICAgICAgICBJV2JlbUNsYXNzT2JqZWN0IF9fUlBDX0ZBUiAqX19S
UENfRkFSICphcE9iakFycmF5Ci0gICAgICAgICAgICApOwotICAgICAgICAKLSAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgU2V0U3RhdHVzKCAKLSAgICAgICAgICAgIC8qIFtp
bl0gKi8gTE9ORyBsRmxhZ3MsCi0gICAgICAgICAgICAvKiBbaW5dICovIEhSRVNVTFQgaFJlc3Vs
dCwKLSAgICAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBzdHJQYXJhbSwKLSAgICAgICAgICAgIC8q
IFtpbl0gKi8gSVdiZW1DbGFzc09iamVjdCBfX1JQQ19GQVIgKnBPYmpQYXJhbQotICAgICAgICAg
ICAgKTsKLX07Ci0KLQotVUxPTkcgV2F0Y2hTaW5rOjpBZGRSZWYoKQotewotICAgIHJldHVybiBJ
bnRlcmxvY2tlZEluY3JlbWVudCgmbV9sUmVmKTsKLX0KLQotVUxPTkcgV2F0Y2hTaW5rOjpSZWxl
YXNlKCkKLXsKLSAgICBMT05HIGxSZWYgPSBJbnRlcmxvY2tlZERlY3JlbWVudCgmbV9sUmVmKTsK
LSAgICBpZihsUmVmID09IDApCi0gICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIHJldHVybiBsUmVm
OwotfQotCi1IUkVTVUxUIFdhdGNoU2luazo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZv
aWQqKiBwcHYpCi17Ci0gICAgaWYgKHJpaWQgPT0gSUlEX0lVbmtub3duIHx8IHJpaWQgPT0gSUlE
X0lXYmVtT2JqZWN0U2luaykKLSAgICB7Ci0gICAgICAgICpwcHYgPSAoSVdiZW1PYmplY3RTaW5r
ICopIHRoaXM7Ci0gICAgICAgIEFkZFJlZigpOwotICAgICAgICByZXR1cm4gV0JFTV9TX05PX0VS
Uk9SOwotICAgIH0KLSAgICBlbHNlIHJldHVybiBFX05PSU5URVJGQUNFOwotfQotCi0KLUhSRVNV
TFQgV2F0Y2hTaW5rOjpJbmRpY2F0ZShsb25nIGxPYmpDb3VudCwgSVdiZW1DbGFzc09iamVjdCAq
KnBBcnJheSkKLXsKLSAgICBmb3IgKGxvbmcgaSA9IDA7IGkgPCBsT2JqQ291bnQ7IGkrKykKLSAg
ICB7Ci0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnBPYmogPSBwQXJyYXlbaV07Ci0gICAgICAg
IFNldEV2ZW50KHRoaXMtPnRyaWdnZXJldmVudCk7Ci0gICAgICAgIC8vIC4uLiB1c2UgdGhlIG9i
amVjdC4KLQotICAgICAgICAvLyBBZGRSZWYoKSBpcyBvbmx5IHJlcXVpcmVkIGlmIHRoZSBvYmpl
Y3Qgd2lsbCBiZSBoZWxkIGFmdGVyCi0gICAgICAgIC8vIHRoZSByZXR1cm4gdG8gdGhlIGNhbGxl
ci4KLSAgICB9Ci0KLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOwotfQotCi1IUkVTVUxUIFdh
dGNoU2luazo6U2V0U3RhdHVzKAotICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFncywK
LSAgICAgICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LAotICAgICAgICAgICAgLyog
W2luXSAqLyBCU1RSIHN0clBhcmFtLAotICAgICAgICAgICAgLyogW2luXSAqLyBJV2JlbUNsYXNz
T2JqZWN0IF9fUlBDX0ZBUiAqcE9ialBhcmFtCi0gICAgICAgICkKLXsKLSAgICBpZiAoRkFJTEVE
KGhSZXN1bHQpKSB7Ci0gICAgICAgIFhzTG9nKCJXTUkgQXN5YyB3YXRjaCBmYWlsZWQgJXBcbiIs
IHRoaXMpOwotICAgICAgICBTZXRFdmVudCh0aGlzLT50cmlnZ2VyZXJyb3IpOwotICAgIH0KLSAg
ICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOwotfQotCi0KLQotc3RydWN0IFdNSUFjY2Vzc29yCi17
Ci0gICAgSVdiZW1TZXJ2aWNlcyAqbXBTdmM7Ci0gICAgSVdiZW1TZXJ2aWNlcyAqbXBYU1N2YzsK
LSAgICAKLSAgICBIQU5ETEUgb3duaW5nX3RocmVhZDsKLX07Ci0KLXN0cnVjdCBXTUlBY2Nlc3Nv
ciAqd21pID0gTlVMTDsKLQotc3RhdGljIHN0cmluZyB3c3RyaW5nMnN0cmluZyhjb25zdCB3c3Ry
aW5nJiB3c3RyKQoteyAKLSAgICBpbnQgbGVuOwotCi0gICAgbGVuID0gV2lkZUNoYXJUb011bHRp
Qnl0ZShDUF9VVEY4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdzdHIuY19zdHIoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAgICBzdHJp
bmcgc3RyKGxlbiwgMCk7Ci0KLSAgICBsZW4gPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd3N0ci5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RyWzBdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGludClzdHIubGVuZ3RoKCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAg
ICByZXR1cm4gc3RyOwotfQotCi1zdGF0aWMgc3RyaW5nIGJzdHIyc3RyaW5nKGNvbnN0IEJTVFIm
IGJzdHIpCi17Ci0gICAgd3N0cmluZyB3c3RyKGJzdHIpOwotCi0gICAgcmV0dXJuIHdzdHJpbmcy
c3RyaW5nKHdzdHIpOwotfQotCi1JV2JlbUNsYXNzT2JqZWN0ICpnZXRDbGFzcyhXTUlBY2Nlc3Nv
ciAqKndtaSwgQlNUUiBwYXRoKSB7Ci0gICAgaWYgKCp3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0KLSAgICBpZiAoKCp3bWkpLT5tcFhTU3ZjID09IE5VTEwpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAg
SFJFU1VMVCBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5HZXRPYmplY3QocGF0aCxXQkVNX0ZMQUdf
UkVUVVJOX1dCRU1fQ09NUExFVEUsCi0gICAgICAgICAgICBOVUxMLCAmcmV0dXJuZWRPYmplY3Qs
IE5VTEwpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgcmV0dXJuZWRPYmplY3Qg
PU5VTEw7Ci0gICAgfQotICAgIHJldHVybiByZXR1cm5lZE9iamVjdDsKLX0KLQotSVdiZW1DbGFz
c09iamVjdCAqZ2V0T2JqZWN0KFdNSUFjY2Vzc29yICoqd21pLCBCU1RSIHBhdGgpIHsKLSAgICBJ
RW51bVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRFbnVtOwotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KnJldHVybmVkT2JqZWN0OwotICAgIGlmICgqd21pID09IE5VTEwpCi0gICAgICAgIHJldHVybiBO
VUxMOwotICAgIEFTU0VSVCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7Ci0gICAgSFJFU1VMVCBo
cmVzID0gICgqd21pKS0+bXBYU1N2Yy0+Q3JlYXRlSW5zdGFuY2VFbnVtKHBhdGgsIFdCRU1fRkxB
R19GT1JXQVJEX09OTFksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JnJldHVybmVkRW51bSk7Ci0gICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiR2V0RW51bSBmYWlsZWRcbiIpOwotICAgICAgICByZXR1cm5lZE9iamVjdCA9
TlVMTDsKLSAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgIH0KLSAgICBVTE9ORyBv
YmplY3RzOwotCi0gICAgaHJlcyA9IHJldHVybmVkRW51bS0+TmV4dChXQkVNX0lORklOSVRFLCAx
LCAmcmV0dXJuZWRPYmplY3QsICZvYmplY3RzKTsKLQotICAgICAgICAgICAgICAgIAotICAgIGlm
IChGQUlMRUQoaHJlcykgfHwgb2JqZWN0cyA8IDEpIHsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIkdldEZyb21FbnVtIGZhaWxlZFxuIik7Ci0gICAgICAgIHJldHVybmVkT2JqZWN0ID1OVUxM
OwotICAgIH0KLQotICAgIHJldHVybiByZXR1cm5lZE9iamVjdDsKLX0KLQotSFJFU1VMVCBtZXRo
b2RFeGVjKFdNSUFjY2Vzc29yKiogd21pLCAgSVdiZW1DbGFzc09iamVjdCogaW5zdGFuY2UsIGNv
bnN0IHdjaGFyX3QgKm1ldGhvZG5hbWUsIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCwg
SVdiZW1DbGFzc09iamVjdCAqKm91dE1ldGhvZEluc3QpCi17Ci0gICAgSFJFU1VMVCBocmVzPUVf
RkFJTCA7Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRzdG9yZT1OVUxMOwotICAgIEJTVFIg
YnBhdGhuYW1lID0gU3lzQWxsb2NTdHJpbmcoTCJfX1BBVEgiKTsKLSAgICBpZiAoYnBhdGhuYW1l
ID09IE5VTEwpewotICAgICAgICBnb3RvIGFsbG9jcGF0aG5hbWU7Ci0gICAgfQotCi0KLSAgICBW
QVJJQU5UIGluc3RhbmNlcGF0aDsKLSAgICBWYXJpYW50SW5pdCgmaW5zdGFuY2VwYXRoKTsKLSAg
ICBocmVzID0gaW5zdGFuY2UtPkdldChicGF0aG5hbWUsIDAsICZpbnN0YW5jZXBhdGgsIE5VTEws
IE5VTEwpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgZ290byBnZXRjbGFzc25h
bWU7Ci0gICAgfQotCi0KLSAgICBCU1RSIGJtZXRob2RuYW1lID0gU3lzQWxsb2NTdHJpbmcobWV0
aG9kbmFtZSk7Ci0gICAgaWYgKGJtZXRob2RuYW1lID09IE5VTEwpewotICAgICAgICBnb3RvIGFs
bG9jbWV0aG9kbmFtZTsKLSAgICB9Ci0KLSAgICBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVj
TWV0aG9kKGluc3RhbmNlcGF0aC5ic3RyVmFsLCBibWV0aG9kbmFtZSwgMCwgTlVMTCxpbk1ldGhv
ZEluc3QsICZvdXRzdG9yZSwgTlVMTCk7Ci0gICAgaWYgKG91dE1ldGhvZEluc3QgIT0gTlVMTCkg
ewotICAgICAgICAqb3V0TWV0aG9kSW5zdCA9IE5VTEw7Ci0gICAgICAgIGlmICghRkFJTEVEKGhy
ZXMpKXsKLSAgICAgICAgICAgICpvdXRNZXRob2RJbnN0ID0gb3V0c3RvcmU7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBTeXNGcmVlU3RyaW5nKGJtZXRob2RuYW1lKTsKLWFsbG9jbWV0aG9kbmFt
ZToKLQotZ2V0Y2xhc3NuYW1lOgotICAgIFZhcmlhbnRDbGVhcigmaW5zdGFuY2VwYXRoKTsKLSAg
ICBTeXNGcmVlU3RyaW5nKGJwYXRobmFtZSk7Ci1hbGxvY3BhdGhuYW1lOgotICAgIHJldHVybiBo
cmVzOwotfQotc3RhdGljIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBydW5YU1F1ZXJ5KFdNSUFjY2Vz
c29yICoqd21pLCBCU1RSIHF1ZXJ5KQotewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAgICAgICAg
cmV0dXJuIE5VTEw7Ci0KLSAgICBBU1NFUlQoKCp3bWkpLT5tcFhTU3ZjICE9IE5VTEwpOwotCi0g
ICAgLy8gVXNlIHRoZSBJV2JlbVNlcnZpY2VzIHBvaW50ZXIgdG8gbWFrZSByZXF1ZXN0cyBvZiBX
TUkuIAotICAgIC8vIE1ha2UgcmVxdWVzdHMgaGVyZToKLSAgICBJRW51bVdiZW1DbGFzc09iamVj
dCogcEVudW1lcmF0b3IgPSBOVUxMOwotICAgIEhSRVNVTFQgaHJlcyA9ICgqd21pKS0+bXBYU1N2
Yy0+RXhlY1F1ZXJ5KEwiV1FMIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHF1ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
QkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwgV0JFTV9GTEFHX1JFVFVSTl9JTU1FRElBVEVMWSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwRW51bWVyYXRvcik7Ci0gICAgaWYgKEZB
SUxFRChocmVzKSkKLSAgICB7Ci0gICAgICAgIERCR1BSSU5UKCgiRXhlY1F1ZXJ5IGZhaWxlZFxu
IikpOwotICAgICAgICBwRW51bWVyYXRvciA9IE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBwRW51
bWVyYXRvcjsKLX0KLXN0YXRpYyBJRW51bVdiZW1DbGFzc09iamVjdCogcnVuUXVlcnkoV01JQWNj
ZXNzb3IgKndtaSwgQlNUUiBxdWVyeSkKLXsKLSAgICBpZiAod21pID09IE5VTEwpCi0gICAgICAg
IHJldHVybiBOVUxMOwotCi0gICAgQVNTRVJUKHdtaS0+bXBTdmMgIT0gTlVMTCk7Ci0KLSAgICAv
LyBVc2UgdGhlIElXYmVtU2VydmljZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4g
Ci0gICAgLy8gTWFrZSByZXF1ZXN0cyBoZXJlOgotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBw
RW51bWVyYXRvciA9IE5VTEw7Ci0gICAgSFJFU1VMVCBocmVzID0gd21pLT5tcFN2Yy0+RXhlY1F1
ZXJ5KEwiV1FMIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQkVNX0ZMQUdf
Rk9SV0FSRF9PTkxZIHwgV0JFTV9GTEFHX1JFVFVSTl9JTU1FRElBVEVMWSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZwRW51bWVyYXRvcik7Ci0gICAgaWYgKEZBSUxFRChocmVz
KSkKLSAgICB7Ci0gICAgICAgIERCR1BSSU5UKCgiRXhlY1F1ZXJ5IGZhaWxlZFxuIikpOwotICAg
ICAgICBwRW51bWVyYXRvciA9IE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBwRW51bWVyYXRvcjsK
LX0KLQotTE9ORyB3bWljb3VudCA9IDA7Ci1zdGF0aWMgQk9PTEVBTiBjb21faW5pdGlhbGl6ZWQg
PSBmYWxzZTsKLXN0YXRpYyBJV2JlbUxvY2F0b3IgKmxvY2F0b3IgPSAwOwotQk9PTCBJbml0Q29t
KHZvaWQpIHsKLSAgICBIUkVTVUxUIGhyZXM7Ci0gICAgWHNMb2coIkluaXQgQ09NIik7Ci0gICAg
aHJlcyA9IENvSW5pdGlhbGl6ZUV4KDAsIENPSU5JVF9NVUxUSVRIUkVBREVEKTsKLSAgICBpZiAo
RkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgIGdvdG8gZXJyX291dDsKLSAgICB9Ci0gICAgY29tX2lu
aXRpYWxpemVkID0gVFJVRTsKLSAgICAvL3dtaS0+b3duaW5nX3RocmVhZCA9IEdldEN1cnJlbnRU
aHJlYWQoKTsKLSAgICAvL1hzTG9nKCJXbWkgY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50
VGhyZWFkKCkpOwotICAgIC8vIEluaXRpYWxpemUgQ09NIHNlY3VyaXR5LiAgTW9zdCBvZiB0aGlz
IGlzIGlycmVsZXZhbnQgdG8gdXMuCi0gICAgWHNMb2coIkluaXQgc2VjdXJpdHkiKTsKLSAgICBo
cmVzID0gQ29Jbml0aWFsaXplU2VjdXJpdHkoCi0gICAgICAgIE5VTEwsICAgICAvKiBTZWN1cml0
eSBkZXNjcmlwdG9yLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8KLSAgICAgICAgLTEsICAg
ICAgIC8qIE5yLiBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8K
LSAgICAgICAgTlVMTCwgICAgIC8qIExpc3Qgb2YgYXV0aCBzZXJ2aWNlcy4gT25seSByZWxldmFu
dCB0byBzZXJ2ZXJzICovCi0gICAgICAgIE5VTEwsICAgICAvKiBSZXNlcnZlZCAqLwotICAgICAg
ICBSUENfQ19BVVRITl9MRVZFTF9ERUZBVUxULCAvKiBEZWZhdWx0IGF1dGhlbnRpY2F0aW9uLiAg
VGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyBkb24n
dCByZWFsbHkgbWF0dGVyIHdoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5b3UncmUgbG9jYWxob3N0LiAqLwotICAgICAgICBSUENfQ19JTVBfTEVWRUxfSU1QRVJT
T05BVEUsIC8qIFdNSSBuZWVkcyB0byBiZSBhYmxlIHRvCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW1wZXJzb25hdGUgdXMuICovCi0gICAgICAgIE5VTEwsICAgICAg
ICAgICAgIC8qIEF1dGhlbnRpY2F0aW9uIGluZm8gKi8KLSAgICAgICAgRU9BQ19OT05FLCAgICAg
ICAgLyogQWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgKi8KLSAgICAgICAgTlVMTCAgICAgICAgICAg
ICAgLyogUmVzZXJ2ZWQgKi8KLSAgICAgICAgKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0g
ICAgICAgIGdvdG8gZXJyX291dDsKLSAgICB9Ci0gICAgICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiQ3JlYXRlSW5zdGFuY2VcbiIpOwotICAgICAgICBocmVzID0gQ29DcmVhdGVJbnN0YW5jZSgK
LSAgICAgICAgICAgIENMU0lEX1diZW1Mb2NhdG9yLAotICAgICAgICAgICAgMCwgCi0gICAgICAg
ICAgICBDTFNDVFhfSU5QUk9DX1NFUlZFUiwgCi0gICAgICAgICAgICBJSURfSVdiZW1Mb2NhdG9y
LAotICAgICAgICAgICAgKExQVk9JRCAqKSAmbG9jYXRvcik7Ci0gICAgICAgIE91dHB1dERlYnVn
U3RyaW5nKCJDaGVjayBocmVzXG4iKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAg
ICAgICAgICAgZ290byBlcnJfb3V0OwotICAgICAgICB9Ci0gICAgICAgIGlmIChsb2NhdG9yID09
IE5VTEwpIHsKLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJOdWxsIGxvY2F0b3IiKTsK
LSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgIHJldHVybiB0cnVlOwot
ZXJyX291dDoKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQp
Ci17Ci0gICAgICAgIEluaXRDb20oKTsKLSAgICAgICAgSFJFU1VMVCBocmVzOwotICAgICAgICBP
dXRwdXREZWJ1Z1N0cmluZygiQ29ubmVjdCB0byBXTUkiKTsKLSAgICAgICAgd21pY291bnQrKzsK
LQotICAgICAgICB3bWkgPSAoc3RydWN0IFdNSUFjY2Vzc29yICopWHNBbGxvYyhzaXplb2YoKndt
aSkpOwotICAgICAgICBpZiAod21pID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgICAgICBtZW1zZXQod21pLCAwLCBzaXplb2YoKndtaSkpOwotCi0K
LSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNvbm5lY3QgU2VydmVyXG4iKTsKLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGhyZXMgPSBsb2NhdG9yLT5Db25uZWN0U2VydmVyKAotICAgICAg
ICAgICAgICAgIEwicm9vdFxcQ0lNVjIiLCAgICAgICAgICAvLyBXTUkgbmFtZXNwYWNlCi0gICAg
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgbmFtZQotICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIHBhc3N3b3JkCi0gICAg
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQotICAgICAgICAg
ICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncwotICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBBdXRob3JpdHkKLSAgICAgICAg
ICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QKLSAgICAg
ICAgICAgICAgICAmKHdtaS0+bXBTdmMpICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2VzIHBy
b3h5Ci0gICAgICAgICAgICAgICAgKTsKLSAgICAgICAgfQotICAgICAgICBjYXRjaCguLi4pIHsK
LSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFeGNlcHRpb24gY29ubmVjdGluZyB0byBz
ZXJ2ZXJcbiIpOwotICAgICAgICAgICAgZ290byBlcnJfb3V0OwotICAgICAgICB9Ci0KLSAgICAg
ICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIHJlc3VsdFxuIik7Ci0gICAgICAgIGlmIChGQUlM
RUQoaHJlcykpIHsKLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAg
ICAvKiBXTUkgbmVlZHMgdG8gaW1wZXJzb25hdGUgdXMsIGJlY2F1c2UgaXQgbm9ybWFsbHkgcnVu
cyBhcyBhbgotICAgICAgICAgICB1bnByaXZpbGVnZWQgdXNlciBhbmQgbmVlZHMgb3VyIGF1dGhv
cml0eSBpbiBvcmRlciB0byBhY2Nlc3MKLSAgICAgICAgICAgZGV2aWNlIGZpbGVzIGFuZCBzbyBm
b3J0aC4gIFR1cm4gaW1wZXJzb25hdGlvbiBvbi4gKi8KLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIlByb3h5IGJsYW5rZXRcbiIpOwotICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQo
Ci0gICAgICAgICAgICB3bWktPm1wU3ZjLCAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcm94eSB0
byBzZXQKLSAgICAgICAgICAgIFJQQ19DX0FVVEhOX1dJTk5ULCAgICAgICAgICAgLyogTEFOIG1h
bmFnZXIgYXV0aGVudGljYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFsdGhvdWdoIGl0IGRvZXNuJ3QgcmVhbGx5Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHRlciBvbiBsb2NhbGhvc3QuICovCi0gICAgICAg
ICAgICBSUENfQ19BVVRIWl9OT05FLCAgICAgICAgICAgIC8vIExBTk1BTiBjYW4ndCBkbyBtdWNo
IGF1dGhvcml6YXRpb24uCi0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNlcnZlciBwcmluY2lwYWwgbmFtZQotICAgICAgICAgICAgUlBDX0NfQVVUSE5fTEVWRUxf
Q0FMTCwgICAgICAvLyBEbyBhdXRoZW50aWNhdGlvbiBvbiBldmVyeSBjYWxsCi0gICAgICAgICAg
ICBSUENfQ19JTVBfTEVWRUxfSU1QRVJTT05BVEUsIC8vIEFsbG93IGZ1bGwgaW1wZXJzb25hdGlv
bi4KLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGN1cnJl
bnQgY2xpZW50IGlkZW50aXR5Ci0gICAgICAgICAgICBFT0FDX05PTkUgICAgICAgICAgICAgICAg
ICAgIC8vIE5vIGV4dGVuZGVkIHByb3h5IGNhcGFiaWxpdGllcwotICAgICAgICApOwotICAgICAg
ICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgICAgICBnb3RvIGVycl9vdXQ7Ci0gICAgICAg
IH0KLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIldNSSBTZXJ2ZXJcbiIpOwotICAgICAgICBo
cmVzID0gbG9jYXRvci0+Q29ubmVjdFNlcnZlcigKLSAgICAgICAgICAgIEwicm9vdFxcV01JIiwg
ICAgICAgICAgLy8gV01JIG5hbWVzcGFjZQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAg
ICAgICAgIC8vIFVzZXIgbmFtZQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAg
IC8vIFVzZXIgcGFzc3dvcmQKLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAv
LyBMb2NhbGUKLSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0
eSBmbGFncwotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIEF1dGhvcml0
eQotICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIENvbnRleHQgb2JqZWN0
Ci0gICAgICAgICAgICAmd21pLT5tcFhTU3ZjICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2Vz
IHByb3h5Ci0gICAgICAgICAgICApOwotCi0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAg
ICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiSW1wZXJzb25hdGlvblxuIik7Ci0gICAgICAgIC8qIFdNSSBuZWVkcyB0byBpbXBlcnNv
bmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFzIGFuCi0gICAgICAgICAgIHVucHJp
dmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9yaXR5IGluIG9yZGVyIHRvIGFjY2Vzcwot
ICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNvIGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9u
IG9uLiAqLwotICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQoCi0gICAgICAgICAgICB3
bWktPm1wWFNTdmMsICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb3h5IHRvIHNldAotICAgICAg
ICAgICAgUlBDX0NfQVVUSE5fV0lOTlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50
aWNhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0
aG91Z2ggaXQgZG9lc24ndCByZWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWF0dGVyIG9uIGxvY2FsaG9zdC4gKi8KLSAgICAgICAgICAgIFJQQ19DX0FV
VEhaX05PTkUsICAgICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlv
bi4KLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHBy
aW5jaXBhbCBuYW1lCi0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8v
IERvIGF1dGhlbnRpY2F0aW9uIG9uIGV2ZXJ5IGNhbGwKLSAgICAgICAgICAgIFJQQ19DX0lNUF9M
RVZFTF9JTVBFUlNPTkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLgotICAgICAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRl
bnRpdHkKLSAgICAgICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8gZXh0
ZW5kZWQgcHJveHkgY2FwYWJpbGl0aWVzCi0gICAgICAgICk7Ci0gICAgICAgIGlmIChGQUlMRUQo
aHJlcykpIHsKLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotCi0KLSAgICBP
dXRwdXREZWJ1Z1N0cmluZygiV21pIGNvbm5lY3RlZFxuIik7Ci0gICAgLyogQWxsIGRvbmUuICov
Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWVycl9vdXQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIldN
SSBjb25uZWN0aW9uIGZhaWxlZFxuIik7Ci0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotCi12b2lkIFJlbGVhc2VDb20odm9pZCkgewotCi0gICAg
aWYgKGNvbV9pbml0aWFsaXplZCkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiUmVsZWFz
ZSBsb2NhdG9yXG4iKTsKLSAgICAgICAgbG9jYXRvci0+UmVsZWFzZSgpOwotICAgICAgICAvL1hz
TG9nKCJXbWkgZGlzY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50VGhyZWFkKCkpOwotICAg
ICAgICAvL0FTU0VSVCgoKndtaSktPm93bmluZ190aHJlYWQgPT0gR2V0Q3VycmVudFRocmVhZCgp
KTsKLSAgICAgICAgY29tX2luaXRpYWxpemVkID0gMDsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIlVuaW5pdGlhbGl6ZSBjb21cbiIpOwotICAgICAgICBDb1VuaW5pdGlhbGl6ZSgpOwotICAg
ICAgICAKLSAgICB9Ci19Ci0KLS8qIENhcmVmdWw6IFdNSSBhY2Nlc3NvcnMgbXVzdCBiZSByZWxl
YXNlZCBvbiB0aGUgc2FtZSB0aHJlYWQgdGhhdAotICAgYWxsb2NhdGVkIHRoZW0uICovCi12b2lk
IFJlbGVhc2VXTUlBY2Nlc3NvcihzdHJ1Y3QgV01JQWNjZXNzb3IgKip3bWkpCi17Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoIlNob3VsZCBJIHJlbGVhc2Ugd21pP1xuIik7Ci0gICAgaWYgKCp3bWkg
PT0gTlVMTCkKLSAgICAgICAgcmV0dXJuOwotICAgIE91dHB1dERlYnVnU3RyaW5nKCJHZXQgcmlk
IG9mIFdNSSBzZXJ2ZXJzXG4iKTsKLSAgICBpZiAoKCp3bWkpLT5tcFhTU3ZjICE9IE5VTEwpCi0g
ICAgICAgICgqd21pKS0+bXBYU1N2Yy0+UmVsZWFzZSgpOwotICAgIGlmICgoKndtaSktPm1wU3Zj
ICE9IE5VTEwpCi0gICAgICAgICgqd21pKS0+bXBTdmMtPlJlbGVhc2UoKTsKLSAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiQ2xlYXIgV21JXG4iKTsKLSAgICAvKiBQb2lzb24gd21pIHRvIG1ha2UgdXNl
LWFmdGVyLWZyZWUoKXMgYSBiaXQgbW9yZSBvYnZpb3VzLiAqLwotICAgIG1lbXNldCgoKndtaSks
IDB4YWIsIHNpemVvZigqKndtaSkpOwotICAgIFhzRnJlZSgqd21pKTsKLSAgICAqd21pID0gTlVM
TDsKLSAgICBSZWxlYXNlQ29tKCk7Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlJlbGVhc2VkIFdN
SVxuIik7Ci19Ci0KLS8qIFRoZSBmYWN0IHRoYXQgc29tZXRoaW5nIGlzIGRvY3VtZW50ZWQgYXMg
YmVpbmcgYSB1aW50NjRfdCBmaWVsZAotICAgZG9lc24ndCBpbXBseSB0aGF0IGl0IHdpbGwgYmUg
cmV0dXJuZWQgYXMgYSBWVF9VSTggZmllbGQgaW4gYQotICAgdmFyaWFudCBzdHJ1Y3R1cmUuICBX
b3JrIGFyb3VuZCB0aGlzIHdpdGggYSBoYW5keSBjb252ZXJzaW9uCi0gICBmdW5jdGlvbi4gKi8K
LXN0YXRpYyB1aW50NjRfdAotR2V0VmFyaWFudFVpbnQ2NChWQVJJQU5UICp2dERhdGEpCi17Ci0g
ICAgc3dpdGNoICh2dERhdGEtPnZ0KSB7Ci0gICAgY2FzZSBWVF9JMjoKLSAgICAgICAgcmV0dXJu
IHZ0RGF0YS0+aVZhbDsKLSAgICBjYXNlIFZUX0k0OgotICAgICAgICByZXR1cm4gdnREYXRhLT5s
VmFsOwotICAgIGNhc2UgVlRfSTg6Ci0gICAgICAgIHJldHVybiB2dERhdGEtPmxsVmFsOwotICAg
IGNhc2UgVlRfVUkyOgotICAgICAgICByZXR1cm4gdnREYXRhLT51aVZhbDsKLSAgICBjYXNlIFZU
X1VJNDoKLSAgICAgICAgcmV0dXJuIHZ0RGF0YS0+dWxWYWw7Ci0gICAgY2FzZSBWVF9VSTg6Ci0g
ICAgICAgIHJldHVybiB2dERhdGEtPnVsbFZhbDsKLSAgICBjYXNlIFZUX0JTVFI6Ci0gICAgICAg
IC8qIFllcywgSSByZWFsbHkgZG8gbWVhbiBCU1RSOiBYUCByZXR1cm5zIDY0IGJpdCB2YWx1ZXMg
YXMKLSAgICAgICAgICAgc3RyaW5ncywgYW5kIHdlIHRoZW4gaGF2ZSB0byBkbyBhdG9pbGwgb24g
aXQuICovCi0gICAgICAgIHJldHVybiBfd3RvaTY0KHZ0RGF0YS0+YnN0clZhbCk7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgREJHUFJJTlQoKCJCYWQgdWludDY0X3QgdmFyaWFudCAlZC5cbiIsdnRE
YXRhLT52dCkpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotfQotCi1zdGF0aWMgSFJFU1VM
VAotUXVlcnlWYXJpYW50KFdNSUFjY2Vzc29yICp3bWksIFBXQ0hBUiBmaWVsZCwgUFdDSEFSIHRh
YmxlLCBWQVJJQU5UICp2dCkKLXsKLSAgICBJRW51bVdiZW1DbGFzc09iamVjdCAqcEVudW07Ci0g
ICAgQlNUUiBxdWVyeTsKLSAgICBzaXplX3QgcXVlcnlfbGVuOwotICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKnBjbHNPYmo7Ci0gICAgSFJFU1VMVCBocjsKLSAgICBVTE9ORyB1UmV0dXJuOwotCi0gICAg
cXVlcnlfbGVuID0gc3RybGVuKCJTRUxFQ1QgIEZST00gIikgKyB3Y3NsZW4oZmllbGQpICsgd2Nz
bGVuKHRhYmxlKSArIDE7Ci0gICAgcXVlcnkgPSBTeXNBbGxvY1N0cmluZ0xlbihOVUxMLCAoVUlO
VClxdWVyeV9sZW4pOwotICAgIGlmIChxdWVyeSA9PSBOVUxMKSB7Ci0gICAgICAgIGhyID0gRV9P
VVRPRk1FTU9SWTsKLSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotICAgIHN3cHJpbnRmX3MocXVl
cnksIHF1ZXJ5X2xlbiwgTCJTRUxFQ1QgJXMgRlJPTSAlcyIsIGZpZWxkLCB0YWJsZSk7Ci0gICAg
cEVudW0gPSBydW5RdWVyeSh3bWksIHF1ZXJ5KTsKLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsK
LQotICAgIGlmIChwRW51bSA9PSBOVUxMKSB7Ci0gICAgICAgIGhyID0gRV9PVVRPRk1FTU9SWTsK
LSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotCi0gICAgaHIgPSBwRW51bS0+TmV4dChXQkVNX0lO
RklOSVRFLCAxLCAmcGNsc09iaiwgJnVSZXR1cm4pOwotICAgIHBFbnVtLT5SZWxlYXNlKCk7Ci0g
ICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIGdvdG8gZXJyOwotICAgIGlmICh1UmV0dXJuID09
IDApIHsKLSAgICAgICAgaHIgPSBFX0ZBSUw7Ci0gICAgICAgIGdvdG8gZXJyOwotICAgIH0KLQot
ICAgIGhyID0gcGNsc09iai0+R2V0KGZpZWxkLCAwLCB2dCwgTlVMTCwgTlVMTCk7Ci0gICAgcGNs
c09iai0+UmVsZWFzZSgpOwotCi0gICAgcmV0dXJuIGhyOwotCi1lcnI6Ci0gICAgcmV0dXJuIGhy
OwotfQotCi1zdGF0aWMgdWludDY0X3QKLVF1ZXJ5VWludDY0KFdNSUFjY2Vzc29yICp3bWksIFBX
Q0hBUiBmaWVsZCwgUFdDSEFSIHRhYmxlKQotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgdWludDY0
X3QgcmVzOwotICAgIFZBUklBTlQgdnQ7Ci0KLSAgICBtZW1zZXQoJnZ0LCAwLCBzaXplb2YodnQp
KTsKLQotICAgIGhyID0gUXVlcnlWYXJpYW50KHdtaSwgZmllbGQsIHRhYmxlLCAmdnQpOwotICAg
IGlmIChGQUlMRUQoaHIpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJlcyA9IEdldFZhcmlh
bnRVaW50NjQoJnZ0KTsKLSAgICBWYXJpYW50Q2xlYXIoJnZ0KTsKLSAgICByZXR1cm4gcmVzOwot
fQotCi1zdGF0aWMgQlNUUgotUXVlcnlCc3RyKFdNSUFjY2Vzc29yICp3bWksIFBXQ0hBUiBmaWVs
ZCwgUFdDSEFSIHRhYmxlKQotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgVkFSSUFOVCB2dDsKLQot
ICAgIG1lbXNldCgmdnQsIDAsIHNpemVvZih2dCkpOwotCi0gICAgaHIgPSBRdWVyeVZhcmlhbnQo
d21pLCBmaWVsZCwgdGFibGUsICZ2dCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotICAgIGlmICh2dC52dCAhPSBWVF9CU1RSKSB7Ci0gICAgICAgIFZhcmlhbnRD
bGVhcigmdnQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHZ0LmJz
dHJWYWw7Ci19Ci0KLQotCi0vKiBoYXNoIGNvbXBhcmF0b3IgZm9yIHN0cmluZ3Mgd2hpY2ggc3Ry
aXBzIG9mZiB0cmFpbGluZyAuZXhlCi0gKiBzdWZmaXggKi8KLWNsYXNzIHN0cmluZ19lcV9leGUg
ewotcHJpdmF0ZToKLSAgICBzdGF0aWMgc2l6ZV90IGxlbl93aXRob3V0X3N1ZmZpeChjb25zdCBj
aGFyICp4KQotICAgIHsKLSAgICAgICAgc2l6ZV90IGw7Ci0gICAgICAgIGwgPSBzdHJsZW4oeCk7
Ci0gICAgICAgIGlmIChsID4gNCAmJiAhc3RyY21wKHggKyBsIC0gNCwgIi5leGUiKSkKLSAgICAg
ICAgICAgIGwgLT0gNDsKLSAgICAgICAgcmV0dXJuIGw7Ci0gICAgfQotCi1wdWJsaWM6Ci0gICAg
ZW51bSB7YnVja2V0X3NpemUgPSA0LCBtaW5fYnVja2V0cyA9IDh9OwotICAgIGJvb2wgb3BlcmF0
b3IoKShjb25zdCBzdHJpbmcgJmEsIGNvbnN0IHN0cmluZyAmYikgY29uc3QKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IGNoYXIgKmFfYywgKmJfYzsKLSAgICAgICAgc2l6ZV90IGFfbCwgYl9sOwotICAg
ICAgICBhX2MgPSBhLmNfc3RyKCk7Ci0gICAgICAgIGJfYyA9IGIuY19zdHIoKTsKLSAgICAgICAg
YV9sID0gbGVuX3dpdGhvdXRfc3VmZml4KGFfYyk7Ci0gICAgICAgIGJfbCA9IGxlbl93aXRob3V0
X3N1ZmZpeChiX2MpOwotCi0gICAgICAgIGlmIChhX2wgIT0gYl9sKQotICAgICAgICAgICAgcmV0
dXJuIDE7Ci0gICAgICAgIGlmIChtZW1jbXAoYV9jLCBiX2MsIGFfbCkpCi0gICAgICAgICAgICBy
ZXR1cm4gMTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0g
ICAgc2l6ZV90IG9wZXJhdG9yKCkoY29uc3Qgc3RyaW5nICZhKSBjb25zdAotICAgIHsKLSAgICAg
ICAgc2l6ZV90IGFjYyA9IDA7Ci0gICAgICAgIGNvbnN0IGNoYXIgKmNfc3RyID0gYS5jX3N0cigp
OwotICAgICAgICBzaXplX3QgbGVuID0gbGVuX3dpdGhvdXRfc3VmZml4KGNfc3RyKTsKLSAgICAg
ICAgdW5zaWduZWQgeDsKLSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGxlbjsgeCsrKQotICAgICAg
ICAgICAgYWNjID0gKGFjYyAqIDE3ICsgY19zdHJbeF0pICUgMjU3OwotICAgICAgICByZXR1cm4g
YWNjOwotICAgIH0KLX07Ci0KLQotSVdiZW1DbGFzc09iamVjdCAqZ2V0QmFzZShXTUlBY2Nlc3Nv
cioqIHdtaSkgCi17Ci0gICAgSVdiZW1DbGFzc09iamVjdCogYmFzZSA9IGdldE9iamVjdCh3bWks
IE9CSkVDVF9OQU1FX1coQmFzZSkpOwotICAgIGlmIChiYXNlID09IE5VTEwpIHsKLSAgICAgICAg
KndtaSA9IE5VTEw7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gYmFz
ZTsKLX0KLQotSVdiZW1DbGFzc09iamVjdCAqZ2V0QmFzZUNsYXNzKFdNSUFjY2Vzc29yKiogd21p
KSAKLXsKLSAgICBJV2JlbUNsYXNzT2JqZWN0KiBiYXNlY2xhc3MgPSBnZXRDbGFzcyh3bWksIE9C
SkVDVF9OQU1FX1coQmFzZSkpOwotICAgIGlmIChiYXNlY2xhc3MgPT0gTlVMTCkgewotICAgICAg
ICAqd21pID0gTlVMTDsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBi
YXNlY2xhc3M7Ci19Ci0KLVVMT05HTE9ORyBnZXQ2NEJpdFVuc2lnbmVkKFZBUklBTlQgKnZhcikg
ewotICAgIFVMT05HTE9ORyByZXMgPSAwOwotICAgIHN3aXRjaCAodmFyLT52dCkgewotICAgICAg
ICBjYXNlIFZUX0JTVFI6IHsKLSAgICAgICAgICAgICAgICBWQVJJQU5UIG91dHZhcjsKLSAgICAg
ICAgICAgICAgICBWYXJpYW50SW5pdCgmb3V0dmFyKTsKLSAgICAgICAgICAgICAgICBWYXJpYW50
Q2hhbmdlVHlwZSgmb3V0dmFyLCB2YXIsIDAsIFZUX1VJOCk7Ci0gICAgICAgICAgICAgICAgcmVz
ID0gb3V0dmFyLnVsbFZhbDsKLSAgICAgICAgICAgICAgICBWYXJpYW50Q2xlYXIoJm91dHZhcik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWVF9VSTg6
IHsKLSAgICAgICAgICAgICAgICByZXMgPSB2YXItPnVsbFZhbDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gcmVzOwotfQotCi1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKSB7Ci0gICAgIEZJTEVUSU1FIG91dDsKLSAg
ICAgCi0gICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7Ci0gICAgIGlm
IChiYXNlID09IE5VTEwpIHsKLSAgICAgICAgIERCR1BSSU5UKCgiVW5hYmxlIHRvIGZpbmQgYmFz
ZSBXTUkgc2Vzc2lvblxuIikpOwotICAgICAgICAgZ290byBnZXRiYXNlZmFpbGVkOwotICAgICB9
Ci0KLSAgICAgVkFSSUFOVCB0aW1ldmFyOwotICAgICBCU1RSIHRpbWVuYW1lID0gbWtCc3RyKCJY
ZW5UaW1lIiwgNyk7Ci0gICAgIGlmICh0aW1lbmFtZSA9PSBOVUxMKQotICAgICAgICAgZ290byBi
dWlsZHRpbWVuYW1lZmFpbGVkOwotICAgICAgICAgCi0KLQotICAgICBpZiAoRkFJTEVEKGJhc2Ut
PkdldCh0aW1lbmFtZSwgMCwgJnRpbWV2YXIsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgIGdvdG8g
Z2V0dGltZWZhaWxlZDsKLQotICAgICBVTE9OR0xPTkcgdGltZSA9Z2V0NjRCaXRVbnNpZ25lZCgm
dGltZXZhcik7OwotCi0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gKERXT1JEKXRpbWU7Ci0gICAg
IG91dC5kd0hpZ2hEYXRlVGltZSA9IChEV09SRCkodGltZT4+MzIpOwotICAgICByZXR1cm4gb3V0
OwotCi1nZXR0aW1lZmFpbGVkOgotYnVpbGR0aW1lbmFtZWZhaWxlZDoKLWdldGJhc2VmYWlsZWQ6
Ci0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gMDsKLSAgICAgb3V0LmR3SGlnaERhdGVUaW1lID0g
MDsKLSAgICAgcmV0dXJuIG91dCA7Ci19Ci0KLUlXYmVtQ2xhc3NPYmplY3QgKm9wZW5TZXNzaW9u
KFdNSUFjY2Vzc29yKiogd21pLCBjb25zdCBjaGFyICpzZXNzaW9ubmFtZSkKLXsKLSAgICBIUkVT
VUxUIGhyZXM7Ci0KLSAgICBCU1RSIHF1ZXJ5ID0gZm9ybWF0QnN0cigiU0VMRUNUICogRlJPTSAi
IE9CSkVDVF9OQU1FX0EoU2Vzc2lvbikgIiBXSEVSRSBJZD1cIiIgT0JKRUNUX1BSRUZJWF9TVFIg
IiBYZW4gV2luMzIgU2VydmljZSA6ICVzXCIiLCBzZXNzaW9ubmFtZSk7Ci0gICAgaWYgKHF1ZXJ5
ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ7Ci0KLSAgICBJ
RW51bVdiZW1DbGFzc09iamVjdCAqIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5KTsK
LSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsKLQotICAgIGlmIChzZXNzaW9ucykgewotICAgICAg
ICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAgICAgICAgVUxPTkcgY291bnQ7
Ci0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJu
ZWRPYmplY3QsICZjb3VudCk7Ci0gICAgICAgIHNlc3Npb25zLT5SZWxlYXNlKCk7Ci0KLSAgICAg
ICAgaWYgKGNvdW50PjApIHsKLSAgICAgICAgICAgIGlmIChzZXNzaW9ubmFtZSAhPU5VTEwgKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFXbWlTZXNzaW9uRW5kKHdtaSwgcmV0dXJuZWRPYmplY3Qp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHJldHVy
biByZXR1cm5lZE9iamVjdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7Ci0gICAgaWYgKGJhc2U9PU5V
TEwpIHsKLSAgICAgICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBiYXNlIFdNSSBzZXNzaW9u
XG4iKSk7Ci0gICAgICAgIGdvdG8gZ2V0YmFzZWZhaWxlZDsKLSAgICB9Ci0KLSAgICBJV2JlbUNs
YXNzT2JqZWN0ICpiYXNlY2xhc3MgPSBnZXRCYXNlQ2xhc3Mod21pKTsKLQotICAgIGlmIChiYXNl
Y2xhc3MgPT0gTlVMTCkKLSAgICAgICAgZ290byBnZXRiYXNlY2xhc3NmYWlsZWQ7Ci0KLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0
aG9kSW5zdDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0OwotICAgIGlmIChG
QUlMRUQoYmFzZWNsYXNzLT5HZXRNZXRob2QoTCJBZGRTZXNzaW9uIiwwLCZpbk1ldGhvZCwgTlVM
TCkpKQotICAgICAgICBnb3RvIGdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ7Ci0KLSAgICBpZiAo
RkFJTEVEKGluTWV0aG9kLT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpKSkKLSAgICAg
ICAgZ290byBpbm1ldGhvZHNwYXduZmFpbGVkOwotCi0gICAgVkFSSUFOVCB2YXI7Ci0gICAgdmFy
LnZ0ID0gVlRfQlNUUjsKLSAgICB2YXIuYnN0clZhbD1mb3JtYXRCc3RyKFZFTkRPUl9OQU1FX1NU
UiAiICIgUFJPRFVDVF9OQU1FX1NUUiAiIFdpbjMyIFNlcnZpY2UgOiAlcyIsIHNlc3Npb25uYW1l
KTsKLQotICAgIGlmICh2YXIuYnN0clZhbCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZvcm1hdG5h
bWVic3RyZmFpbGVkOwotCi0gICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIklkIiwg
MCwgJnZhciwgMCkpKQotICAgICAgICBnb3RvIG1ldGhvZHB1dGZhaWxlZDsKLQotICAgIGlmIChG
QUlMRUQobWV0aG9kRXhlYyh3bWksIGJhc2UsIEwiQWRkU2Vzc2lvbiIsIGluTWV0aG9kSW5zdCwg
Jm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290byBtZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxl
ZDsKLSAgICAKLSAgICBpZiAoRkFJTEVEKG91dE1ldGhvZEluc3QtPkdldChMIlNlc3Npb25JZCIs
IDAsICZ2YXIsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgZ290byBvdXRtZXRob2RnZXRmYWlsZWQ7
Ci0KLSAgICBzaXplX3QgcXVlcnlfbGVuOwotICAgIHF1ZXJ5X2xlbiA9IHN0cmxlbigiU0VMRUNU
ICogRlJPTSAiIE9CSkVDVF9OQU1FX0EoU2Vzc2lvbikgIiBXSEVSRSBTZXNzaW9uSWQ9IikrMTA7
Ci0gICAgcXVlcnkgPSBTeXNBbGxvY1N0cmluZ0xlbihOVUxMLCAoVUlOVClxdWVyeV9sZW4pOwot
Ci0gICAgaWYgKHF1ZXJ5ID09IE5VTEwpCi0gICAgICAgIGdvdG8gYWxsb2NxdWVyeWZhaWxlZDsK
LQotICAgIHN3cHJpbnRmX3MocXVlcnkscXVlcnlfbGVuLCBMIlNFTEVDVCAqIEZST00gIiBPQkpF
Q1RfTkFNRV9XKFNlc3Npb24pIEwiIFdIRVJFIFNlc3Npb25JZD0lZCIsIHZhci51aW50VmFsKTsK
LQotICAgIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5ICk7Ci0gICAgU3lzRnJlZVN0
cmluZyhxdWVyeSk7Ci0KLSAgICBpZiAoc2Vzc2lvbnMpIHsKLSAgICAgICAgSVdiZW1DbGFzc09i
amVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAgICAgIFVMT05HIGNvdW50OwotICAgICAgICBocmVz
ID0gc2Vzc2lvbnMtPk5leHQoV0JFTV9JTkZJTklURSwgMSwgJnJldHVybmVkT2JqZWN0LCAmY291
bnQpOwotICAgICAgICBzZXNzaW9ucy0+UmVsZWFzZSgpOwotICAgICAgICBpZiAoY291bnQ+MCkg
ewotICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgICAgICB9Ci0gICAgICAg
IAotICAgIH0KLSAgICAKLSAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgVmFyaWFu
dENsZWFyKCZ2YXIpOwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIGluTWV0aG9k
LT5SZWxlYXNlKCk7Ci0gICAgYmFzZS0+UmVsZWFzZSgpOwotICAgIGJhc2VjbGFzcy0+UmVsZWFz
ZSgpOwotICAgIHJldHVybiBOVUxMOwotCi1hbGxvY3F1ZXJ5ZmFpbGVkOgotb3V0bWV0aG9kZ2V0
ZmFpbGVkOgotICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotbWV0aG9kZXhlY2FkZHNl
c3Npb25mYWlsZWQ6Ci1tZXRob2RwdXRmYWlsZWQ6Ci0gICAgVmFyaWFudENsZWFyKCZ2YXIpOwot
Ci1mb3JtYXRuYW1lYnN0cmZhaWxlZDoKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLWlu
bWV0aG9kc3Bhd25mYWlsZWQ6Ci0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLQotCi1nZXRtZXRo
b2RhZGRzZXNzaW9uZmFpbGVkOgotICAgIGJhc2VjbGFzcy0+UmVsZWFzZSgpOwotCi1nZXRiYXNl
Y2xhc3NmYWlsZWQ6Ci0gICAgYmFzZS0+UmVsZWFzZSgpOwotCi1nZXRiYXNlZmFpbGVkOgotCi0K
LWZvcm1hdHNlc3Npb25ic3RyZmFpbGVkOgotICAgIHJldHVybiBOVUxMOwotfQotCi1JV2JlbUNs
YXNzT2JqZWN0KiBzZXNzaW9uTWV0aG9kU3RhcnQoV01JQWNjZXNzb3IqKndtaSwgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QgKm1ldGhvZG5hbWUp
Ci17Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2Q7Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqaW5NZXRob2RJbnN0ID0gTlVMTDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpzZXNzaW9uQ2xh
c3M7Ci0gICAgSFJFU1VMVCBocjsKLQotICAgIEFTU0VSVCh3bWkgIT0gTlVMTCk7Ci0KLSAgICBz
ZXNzaW9uQ2xhc3MgPSBnZXRDbGFzcyh3bWksIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikpOwotICAg
IGlmIChzZXNzaW9uQ2xhc3MgPT0gTlVMTCkKLSAgICAgICAgZ290byBnZXRjbGFzc2ZhaWxlZDsK
LQotICAgIGhyID0gc2Vzc2lvbkNsYXNzLT5HZXRNZXRob2QobWV0aG9kbmFtZSwwLCZpbk1ldGhv
ZCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIGdvdG8gZ2V0bWV0aG9kZmFp
bGVkOwotCi0gICAgaHIgPSBpbk1ldGhvZC0+U3Bhd25JbnN0YW5jZSgwLCAmaW5NZXRob2RJbnN0
KTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBzcGF3bmluc3RhbmNlZmFpbGVk
OwotCi0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLQotICAgIHNlc3Npb25DbGFzcy0+UmVsZWFz
ZSgpOwotICAgIHJldHVybiBpbk1ldGhvZEluc3Q7Ci0KLQotc3Bhd25pbnN0YW5jZWZhaWxlZDoK
LSAgICBpbk1ldGhvZC0+UmVsZWFzZSgpOwotICAgIAotZ2V0bWV0aG9kZmFpbGVkOgotICAgIHNl
c3Npb25DbGFzcy0+UmVsZWFzZSgpOwotCi1nZXRjbGFzc2ZhaWxlZDoKLSAgICByZXR1cm4gTlVM
TDsKLX0KLQotCi1jaGFyICogYnN0clRvQ2hhcihCU1RSIGJzdCwgc2l6ZV90ICpsZW4pIHsKLSAg
ICAqbGVuID0gd2NzbGVuKGJzdCk7Ci0gICAgY2hhciAqc3BhY2UgPSAoY2hhciAqKVhzQWxsb2Mo
KmxlbisxKTsKLSAgICBpZiAoc3BhY2UpCi0gICAgICAgIHdjc3RvbWJzX3MobGVuLCBzcGFjZSwg
KmxlbisxLCBic3QsICBfVFJVTkNBVEUpOwotICAgIHJldHVybiBzcGFjZTsKLX0KLQotdm9pZCBX
bWlTZXNzaW9uTG9nKFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0gICAgCi0gICAgY2hh
ciogbWVzc2FnZSA9IGZvcm1hdENoYXJTdHJJbnQoZm10LGFyZ3MpOwotICAgIAotICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOwotICAgIGlmICgoKCp3bWkpPT1OVUxMKSB8fCAoKCpzZXNz
aW9uaGFuZGxlKT09TlVMTCkgKSB7Ci0gICAgICAgIGdvdG8gbm93bWk7Ci0gICAgfQotICAgIFZB
UklBTlQgdm1lc3NhZ2U7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZtZXNzYWdlLCBtZXNz
YWdlKSkKLSAgICAgICAgZ290byBzZXR2bWVzc2FnZTsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIkxvZyIpOwotICAgIGlm
ICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLSAgICAKLSAgICAg
aWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIk1lc3NhZ2UiLDAsJnZtZXNzYWdlLDApKSkK
LSAgICAgICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgIGlmIChGQUlMRUQobWV0aG9k
RXhlYyh3bWksKnNlc3Npb24sIEwiTG9nIiwgaW5NZXRob2RJbnN0LCBOVUxMKSkpCi0gICAgICAg
ICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci1tZXRob2RwdXRm
YWlsZWQ6Ci0gICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9uc3RhcnQ6Ci0g
ICAgVmFyaWFudENsZWFyKCZ2bWVzc2FnZSk7Ci0KLXNldHZtZXNzYWdlOgotbm93bWk6Ci0gICAg
cmV0dXJuOwotfQotCi1jaGFyKiBXbWlTZXNzaW9uR2V0RW50cnkoV01JQWNjZXNzb3IqKiB3bWks
IHZvaWQgKipzZXNzaW9uaGFuZGxlLAotICAgICAgICAgICAgICBjb25zdCBjaGFyICogcGF0aCwg
c2l6ZV90KiBsZW4pIAotewotICAgICpsZW4gPSAwOwotICAgIElXYmVtQ2xhc3NPYmplY3QgKipz
ZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRsZTsKLQotICAgIFZBUklB
TlQgdnBhdGg7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSkKLSAgICAg
ICAgZ290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Qg
PSBOVUxMOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiR2V0VmFsdWUiKTsKLSAgICBpZiAoaW5NZXRob2RJbnN0ID09IE5V
TEwpIAotICAgICAgICBnb3RvIHNlc3Npb25tZXRob2RzdGFydGZhaWxlZDsKLSAgICAKLSAgICBp
ZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApKSkgCi0g
ICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIG1ldGhvZEV4ZWMod21pLCpzZXNz
aW9uLCBMIkdldFZhbHVlIiwgaW5NZXRob2RJbnN0LCAmb3V0TWV0aG9kSW5zdCk7Ci0gICAgaWYg
KG91dE1ldGhvZEluc3Q9PU5VTEwpCi0gICAgICAgIGdvdG8gc2Vzc2lvbkV4ZWM7Ci0KLSAgICBW
QVJJQU5UIG91dHZhbDsKLSAgICBWYXJpYW50SW5pdCgmb3V0dmFsKTsKLQotICAgIGlmIChGQUlM
RUQob3V0TWV0aG9kSW5zdC0+R2V0KEwidmFsdWUiLCAwLCAmb3V0dmFsLCBOVUxMLCBOVUxMKSkp
Ci0gICAgICAgIGdvdG8gbWV0aG9kZ2V0ZmFpbGVkOwotCi0gICAgY2hhciAqc3BhY2UgPSBOVUxM
OwotICAgIAotICAgIGlmIChWX1ZUKCZvdXR2YWwpID09IFZUX0JTVFIpIAotICAgIHsKLSAgICAg
ICAgc3BhY2UgPSBic3RyVG9DaGFyKG91dHZhbC5ic3RyVmFsLCBsZW4pOwotICAgIH0KLQotICAg
IG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsK
LSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsKLSAgICBWYXJpYW50Q2xlYXIoJm91dHZhbCk7IAot
ICAgIHJldHVybiBzcGFjZTsKLQotbWV0aG9kZ2V0ZmFpbGVkOgotICAgIG91dE1ldGhvZEluc3Qt
PlJlbGVhc2UoKTsKLQotbWV0aG9kZXhlY2ZhaWxlZDoKLXNlc3Npb25FeGVjOgotICAgIGluTWV0
aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9ubWV0aG9kc3RhcnRmYWlsZWQ6Ci0gICAgVmFy
aWFudENsZWFyKCZ2cGF0aCk7Ci0KLXNldHZwYXRoOgotICAgIHJldHVybiBOVUxMOwotfQotCi1p
bnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25o
YW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1
ZSwgc2l6ZV90IGxlbikKLXsKLSAgICBpbnQgZXJyID0gLTE7Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAg
VkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQot
ICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAgVkFSSUFOVCB2dmFsdWU7Ci0gICAgaWYgKHNl
dFZhcmlhbnRTdHJpbmcoJnZ2YWx1ZSwgdmFsdWUpKQotICAgICAgICBnb3RvIHNldHZ2YWx1ZTsK
LQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Q7Ci0KLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJTZXRWYWx1
ZSIpOwotICAgIGlmICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsK
LQotICAgIGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOwotICAgIGlu
TWV0aG9kSW5zdC0+UHV0KEwidmFsdWUiLDAsJnZ2YWx1ZSwwKTsKLQotICAgIGlmIChGQUlMRUQo
bWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiU2V0VmFsdWUiLCBpbk1ldGhvZEluc3QsICZvdXRN
ZXRob2RJbnN0KSkpCi0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIGlmIChv
dXRNZXRob2RJbnN0IT1OVUxMKSAKLSAgICAgICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwot
Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgU3lzRnJlZVN0cmluZyh2dmFsdWUu
YnN0clZhbCk7Ci0gICAgU3lzRnJlZVN0cmluZyh2cGF0aC5ic3RyVmFsKTsKLQotICAgIHJldHVy
biAwOwotCi1tZXRob2RleGVjZmFpbGVkOgotICAgIFhzTG9nKCJXbWlTZXNzaW9uU2V0RW50cnk6
TWV0aG9kRXhlYyBGYWlsZWQiKTsKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vz
c2lvbnN0YXJ0OgotICAgIFhzTG9nKCJXbWlTZXNzaW9uU2V0RW50cnk6U2Vzc2lvblN0YXJ0IEZh
aWxlZCIpOwotICAgIFN5c0ZyZWVTdHJpbmcodnZhbHVlLmJzdHJWYWwpOwotCi1zZXR2dmFsdWU6
Ci0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpTZXRWVmFsdWUgRmFpbGVkIik7Ci0gICAg
U3lzRnJlZVN0cmluZyh2cGF0aC5ic3RyVmFsKTsKLQotc2V0dnBhdGg6Ci0gICAgWHNMb2coIldt
aVNlc3Npb25TZXRFbnRyeTpTZXRWUGF0aCBGYWlsZWQgIik7Ci0gICAgcmV0dXJuIGVycjsKLX0K
LQotaW50IFdtaVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNz
aW9uaGFuZGxlLCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBjaGFyICog
dmFsdWUpIHsKLSAgICByZXR1cm4gV21pU2Vzc2lvblNldEVudHJ5KHdtaSwgc2Vzc2lvbmhhbmRs
ZSwgcGF0aCwgdmFsdWUsIHN0cmxlbih2YWx1ZSkpOwotfQotCi1pbnQgV21pU2Vzc2lvblJlbW92
ZUVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAg
ICAgICAgICBjb25zdCBjaGFyKnBhdGgpewotCi0gICAgaW50IGVyciA9IC0xOwotICAgIElXYmVt
Q2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRs
ZTsKLQotICAgIFZBUklBTlQgdnBhdGg7Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRo
LCBwYXRoKSkKLSAgICAgICAgZ290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIlJlbW92ZVZhbHVlIik7
Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0OwotCi0g
ICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCwwKSkp
Ci0gICAgICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCog
b3V0TWV0aG9kSW5zdDsKLQotICAgIGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24s
IEwiUmVtb3ZlVmFsdWUiLCBpbk1ldGhvZEluc3QsICZvdXRNZXRob2RJbnN0KSkpCi0gICAgICAg
IGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIGlmIChvdXRNZXRob2RJbnN0ICE9IE5VTEwp
Ci0gICAgICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotICAgIGVycj0wOwotICAgIGlu
TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOwotICAgIHJl
dHVybiBlcnI7Ci1tZXRob2RleGVjZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVO
Q1RJT05fXyAiIE1ldGhvZEV4ZWNGYWlsZWQiKTsKLW1ldGhvZHB1dGZhaWxlZDoKLSAgICBPdXRw
dXREZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiBNZXRob2RQdXRGYWlsZWQiKTsKLSAgICBpbk1l
dGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vzc2lvbnN0YXJ0OgotICAgIE91dHB1dERlYnVnU3Ry
aW5nKF9fRlVOQ1RJT05fXyAiIFNlc3Npb25TdGFydEZhaWxlZCIpOwotICAgIFZhcmlhbnRDbGVh
cigmdnBhdGgpOwotCi0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2Vzc2lv
bkV4ZWNGYWlsZWQiKTsKLXNldHZwYXRoOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJ
T05fXyAiIFNldFZwYXRoRmFpbGVkIik7Ci0gICAgcmV0dXJuIGVycjsgCi19Ci0KLQotQk9PTCBX
bWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKndhdGNoaGFuZGxlKSB7Ci0gICAgSVdi
ZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFu
ZGxlOwotICAgIFhzTG9nKCJVbndhdGNoICVwIix3YXRjaGhhbmRsZSk7Ci0gICAgV2F0Y2hTaW5r
ICogc2luayA9IChXYXRjaFNpbmsgKil3YXRjaGhhbmRsZTsKLQotICAgIFZBUklBTlQgdnBhdGg7
Ci0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBzaW5rLT5wYXRoKSkKLSAgICAgICAg
Z290byBzZXR2cGF0aDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKm91dE1ldGhvZEluc3Q7Ci0g
ICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1ldGhvZFN0YXJ0KCB3
bWksIEwiUmVtb3ZlV2F0Y2giKTsKLSAgICBpZiAoIWluTWV0aG9kSW5zdCkKLSAgICAgICAgZ290
byBzZXNzaW9uc3RhcnQ7Ci0KLSAgICBpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2
cGF0aCwwKTsKLSAgICBpZiBGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiUmVtb3Zl
V2F0Y2giLCBpbk1ldGhvZEluc3QsICZvdXRNZXRob2RJbnN0KSkKLSAgICAgICAgZ290byBtZXRo
b2RleGVjZmFpbGVkOwotICAgIGlmIChvdXRNZXRob2RJbnN0PT1OVUxMKQotICAgICAgICBnb3Rv
IHNlc3Npb25leGVjZmFpbGVkOwotCi0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1t
ZXRob2RleGVjZmFpbGVkOgotc2Vzc2lvbmV4ZWNmYWlsZWQ6Ci0gICAgaW5NZXRob2RJbnN0LT5S
ZWxlYXNlKCk7Ci0KLXNlc3Npb25zdGFydDoKLXNldHZwYXRoOgotICAgIHNpbmstPlJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNz
b3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgY29uc3QgY2hhciogc2Vzc2lvbm5hbWUp
IAotewotICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsKLSAgICBpZiAoKCpzZXNzaW9uID0gb3BlblNlc3Npb24od21pLCBz
ZXNzaW9ubmFtZSkpID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1CT09MIFdtaVNlc3Npb25FbmQoV01JQWNjZXNzb3IqKiB3
bWksICB2b2lkICpzZXNzaW9uaGFuZGxlKSAKLXsKLSAgICBIUkVTVUxUIGhyOwotICAgIEFTU0VS
VCgqd21pICE9IE5VTEwpOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqc2Vzc2lvbiA9IChJV2Jl
bUNsYXNzT2JqZWN0ICopc2Vzc2lvbmhhbmRsZTsKLSAgICBpZiAoc2Vzc2lvbj09TlVMTCkgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGhyID0gbWV0aG9kRXhlYyh3bWksIHNl
c3Npb24sIEwiRW5kU2Vzc2lvbiIsIE5VTEwsTlVMTCk7Ci0gICAgaWYgRkFJTEVEKGhyKQotICAg
ICAgICBnb3RvIGV4ZWNtZXRob2RmYWlsZWQ7Ci0gICAgc2Vzc2lvbi0+UmVsZWFzZSgpOwotICAg
IHJldHVybiB0cnVlOwotCi1leGVjbWV0aG9kZmFpbGVkOgotICAgIHJldHVybiBmYWxzZTsKLQot
fQotCi12b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgSEFO
RExFIGV2ZW50LCBIQU5ETEUgZXJyb3JldmVudCkgewotICAgICAgIAotICAgIEhSRVNVTFQgaHI7
Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoq
KXNlc3Npb25oYW5kbGU7Ci0gICAgCi0gICAgQVNTRVJUKCgqd21pKSAhPSBOVUxMKTsKLSAgICBB
U1NFUlQoKCpzZXNzaW9uaGFuZGxlKSAhPSBOVUxMKTsKLQotICAgIFdhdGNoU2luayAqIHNpbmsg
PSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2ZW50LCBwYXRoKTsKLSAgICBCU1RSIHF1ZXJ5
PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBPQkpFQ1RfTkFNRV9BKFdhdGNoRXZlbnQpICIg
V0hFUkUgRXZlbnRJZD1cIiVzXCIiLCBwYXRoKTsKLSAgICBpZiAocXVlcnkgPT0gTlVMTCkgewot
ICAgICAgICBnb3RvIGZvcm1hdHN0cmluZ2ZhaWxlZDsKLSAgICB9Ci0KLSAgICBociA9ICgqd21p
KS0+bXBYU1N2Yy0+RXhlY05vdGlmaWNhdGlvblF1ZXJ5QXN5bmMoTCJXUUwiLCBxdWVyeSwwLE5V
TEwsIHNpbmspOwotICAgIGlmIChGQUlMRUQoaHIpKXsKLSAgICAgICAgKndtaSA9IE5VTEw7Ci0g
ICAgICAgIGdvdG8gd21pZmFpbGVkOwotICAgIH0KLQotICAgIFZBUklBTlQgdnBhdGg7Ci0gICAg
aWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSl7Ci0gICAgICAgIGdvdG8gc2V0dnBh
dGg7Ci0gICAgfQotCi0KLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNz
aW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJTZXRXYXRjaCIpOwotICAgIGlmICghaW5NZXRob2RJbnN0
KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLQotICAgIGhyID0gaW5NZXRob2RJbnN0LT5Q
dXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAg
IGdvdG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwqc2Vzc2lv
biwgTCJTZXRXYXRjaCIsIGluTWV0aG9kSW5zdCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRChocikp
Ci0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsKLQotICAgIFZhcmlhbnRDbGVhcigmdnBh
dGgpOwotCi0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7Ci0KLSAgICByZXR1cm4gc2luazsKLQot
Ci1tZXRob2RleGVjZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAi
IDogbWV0aG9kZXhlY2ZhaWxlZFxuIik7Ci1tZXRob2RwdXRmYWlsZWQ6Ci0gICAgT3V0cHV0RGVi
dWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBtZXRob2RwdXRmYWlsZWRcbiIpOwotICAgIGluTWV0
aG9kSW5zdC0+UmVsZWFzZSgpOwotc2Vzc2lvbnN0YXJ0OgotICAgIE91dHB1dERlYnVnU3RyaW5n
KF9fRlVOQ1RJT05fXyAiIDogc2Vzc2lvbnN0YXJ0XG4iKTsKLSAgICBWYXJpYW50Q2xlYXIoJnZw
YXRoKTsKLXNldHZwYXRoOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDog
c2V0dnBhdGhcbiIpOwotd21pZmFpbGVkOgotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotZm9y
bWF0c3RyaW5nZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDog
Zm9ybWF0c3RyaW5nZmFpbGVkXG4iKTsKLSAgICBkZWxldGUgc2luazsKLSAgICByZXR1cm4gTlVM
TDsKLX0KLQotdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKFdNSUFjY2Vzc29yICoqd21p
LCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KSAKLXsKLSAgICBIUkVTVUxUIGhyOwot
Ci0gICAgQVNTRVJUKCp3bWkgIT0gTlVMTCk7Ci0KLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gbmV3
IFdhdGNoU2luayhldmVudCwgZXJyb3JldmVudCwgTlVMTCk7Ci0gICAgQlNUUiBxdWVyeT1mb3Jt
YXRCc3RyKCJTRUxFQ1QgKiBmcm9tICIgT0JKRUNUX05BTUVfQShVbnN1c3BlbmRlZEV2ZW50KSk7
Ci0gICAgaWYgKHF1ZXJ5PT1OVUxMKSB7Ci0gICAgICAgIGdvdG8gZm9ybWF0c3RyaW5nZmFpbGVk
OwotICAgIH0KLQotICAgIGhyID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjTm90aWZpY2F0aW9uUXVl
cnlBc3luYyhMIldRTCIsIHF1ZXJ5LDAsTlVMTCwgc2luayk7Ci0gICAgaWYgRkFJTEVEKGhyKQot
ICAgICAgICBnb3RvIGFzeW5jcXVlcnlmYWlsZWQ7Ci0KLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5
KTsKLSAgICByZXR1cm4gc2luazsKLQotYXN5bmNxdWVyeWZhaWxlZDoKLSAgICBTeXNGcmVlU3Ry
aW5nKHF1ZXJ5KTsKLWZvcm1hdHN0cmluZ2ZhaWxlZDoKLSAgICBkZWxldGUgc2luazsKLSAgICBy
ZXR1cm4gTlVMTDsKLX0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmggYi9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTM3ZWY3MS4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQv
V21pQWNjZXNzb3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9XTUlBQ0NFU1NPUl9ICi0jZGVmaW5lIF9XTUlBQ0NF
U1NPUl9ICi0KLSNpbmNsdWRlIDxXYmVtaWRsLmg+Ci0jaW5jbHVkZSA8bGlzdD4KLSNpbmNsdWRl
IDx2ZWN0b3I+Ci0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHN0cmluZz4KLQotI2luY2x1ZGUg
IlhTQWNjZXNzb3IuaCIKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotdHlwZWRlZiB1bnNpZ25l
ZCBfX2ludDY0IHVpbnQ2NF90OwotCi1zdHJ1Y3QgV01JQWNjZXNzb3I7Ci0KLWV4dGVybiBzdHJ1
Y3QgV01JQWNjZXNzb3IgKndtaTsKLQotZXh0ZXJuIExPTkcgd21pY291bnQ7Ci1CT09MIEluaXRD
b20odm9pZCk7Ci12b2lkIFJlbGVhc2VDb20odm9pZCk7Ci1CT09MIENvbm5lY3RUb1dNSSh2b2lk
KTsKLXZvaWQgUmVsZWFzZVdNSUFjY2Vzc29yKHN0cnVjdCBXTUlBY2Nlc3NvciAqKik7Ci0KLXZv
aWQgVXBkYXRlUHJvY2Vzc0xpc3RJblN0b3JlKFdNSUFjY2Vzc29yICoqd21pKTsKLQotaW50IFdt
aVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBjaGFyICogdmFsdWUpOwot
Ci1pbnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Np
b25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2
YWx1ZSwgc2l6ZV90IGxlbik7Ci1jaGFyKiBXbWlTZXNzaW9uR2V0RW50cnkoV01JQWNjZXNzb3Iq
KiB3bWksIHZvaWQgKipzZXNzaW9uaGFuZGxlLAotICAgICAgICAgICAgICBjb25zdCBjaGFyICog
cGF0aCwgc2l6ZV90KiBsZW4pIDsKLQotdm9pZCAqV21pU2Vzc2lvbldhdGNoKFdNSUFjY2Vzc29y
Kiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpOwotQk9PTCBX
bWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKndhdGNoaGFuZGxlKTsKLQotaW50IFdt
aVNlc3Npb25SZW1vdmVFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFu
ZGxlLCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoKTsKLQotY2hhciAqKldtaVNlc3Np
b25HZXRDaGlsZHJlbihXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0g
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCB1bnNpZ25lZCAqbnVtZW50cmllcyk7Ci0K
LQotdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKFdNSUFjY2Vzc29yICoqd21pLCBIQU5E
TEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLQotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlv
bkFib3J0KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUpOyAKLWludCBX
bWlTZXNzaW9uVHJhbnNhY3Rpb25Db21taXQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSk7IAotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlvblN0YXJ0KFdNSUFjY2Vzc29y
Kiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUpOyAKLUJPT0wgV21pU2Vzc2lvblN0YXJ0KFdN
SUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIGNvbnN0IGNoYXIgKnNlc3Np
b25uYW1lKTsKLUJPT0wgV21pU2Vzc2lvbkVuZChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKnNl
c3Npb25oYW5kbGUpOwotRklMRVRJTUUgV21pR2V0WGVuVGltZShXTUlBY2Nlc3NvciAqKndtaSk7
Ci12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSxjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7Ci0jZW5kaWYKZGlmZiAtLWdpdCBh
L3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9Y
U0FjY2Vzc29yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYwZmI4Yi4uMDAw
MDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyMzAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
IDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSAic3RkYWZ4LmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5o
IgotI2luY2x1ZGUgIldNSUFjY2Vzc29yLmgiCi0KLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkg
dm9pZCAqV21pU2Vzc2lvbkhhbmRsZSA9IE5VTEw7Ci0KLXN0YXRpYyBMT05HIHZvbGF0aWxlIHRo
cmVhZGNvdW50ID0gMDsKLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHRocmVh
ZGNvdW50ID0gMDsKLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHdtaWNvdW50
ID0gMDsKLQotc3RhdGljIGxvbmcgdXBkYXRlX2NudD0weEYwMDAwMDAwOwotI2RlZmluZSBYRU5T
VE9SRV9NQUdJQyAweDdlNmVjMTIzCi0KLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNpemUpIHsKLSAg
ICB2b2lkICpidWY7Ci0KLSAgICBidWYgPSBtYWxsb2Moc2l6ZSArIDgpOwotICAgIGlmICghYnVm
KSB7Ci0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7Ci0gICAg
ICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBtZW1zZXQoYnVmLCAwLCBzaXplICsgOCk7Ci0g
ICAgKih1bnNpZ25lZCAqKWJ1ZiA9IFhFTlNUT1JFX01BR0lDOwotICAgIHJldHVybiAodm9pZCAq
KSgoVUxPTkdfUFRSKWJ1ZiArIDgpOwotfQotCi12b2lkIFhzRnJlZShjb25zdCB2b2lkICpidWYp
IHsKLSAgICB2b2lkICpvcmlnX2J1ZjsKLQotICAgIGlmICghYnVmKQotICAgICAgICByZXR1cm47
Ci0gICAgb3JpZ19idWYgPSAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAtIDgpOwotICAgIGlmICgq
KHVuc2lnbmVkICopb3JpZ19idWYgIT0gWEVOU1RPUkVfTUFHSUMpIHsKLSAgICAgICAgT3V0cHV0
RGVidWdTdHJpbmcoIlhzRnJlZSgpIGludm9rZWQgb24gYmFkIHBvaW50ZXJcbiIpOwotICAgICAg
ICBEZWJ1Z0JyZWFrKCk7Ci0gICAgfQotICAgIGZyZWUob3JpZ19idWYpOwotfQotCi12b2lkIEdl
dFhlblRpbWUoRklMRVRJTUUgKm5vdykKLXsKLSAgICAqbm93ID0gV21pR2V0WGVuVGltZSgmd21p
KTsKLX0KLQotCi1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2
ZW50KQotewotICAgIGlmICghV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKCZ3bWksIGV2ZW50LCBl
cnJvcmV2ZW50KSkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJu
IDA7Ci19Ci0KLUJPT0wgSW5pdFhTQWNjZXNzb3IoKQotewotICAgIE91dHB1dERlYnVnU3RyaW5n
KCJYU0FjY2Vzc29yXG4iKTsKLSAgICBpZiAod21pY291bnQgIT0gbG9jYWx3bWljb3VudCkgewot
ICAgICAgICAKLSAgICAgICAgaWYgKGxvY2FsdGhyZWFkY291bnQgPT0gMCkgewotICAgICAgICAg
ICAgbG9jYWx0aHJlYWRjb3VudCA9IEludGVybG9ja2VkSW5jcmVtZW50KCZ0aHJlYWRjb3VudCk7
Ci0gICAgICAgIH0KLSAgICAgICAgY2hhciB3bWluYW1lWzEyXTsKLSAgICAgICAgX3NucHJpbnRm
KHdtaW5hbWUsIDEyLCAiWFMleCIsIGxvY2FsdGhyZWFkY291bnQpOwotICAgICAgICBpZiAoV21p
U2Vzc2lvblN0YXJ0KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCB3bWluYW1lKSkgewotICAgICAg
ICAgICAgbG9jYWx3bWljb3VudCA9IHdtaWNvdW50OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlhTQWNjZXNzb3IgRmFpbGVk
XG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotdm9pZCBYc0xvZyhjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLSAgICB2YV9saXN0IGFyZ3M7
Ci0KLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOwotICAgIFdtaVNlc3Npb25Mb2coJndtaSwgJldt
aVNlc3Npb25IYW5kbGUsIGZtdCwgYXJncyk7Ci0gICAgdmFfZW5kKGFyZ3MpOwotfQotCi0KLUJP
T0wgU2h1dGRvd25YU0FjY2Vzc29yKHZvaWQpCi17Ci0gICAgaWYgKHdtaSA9PSBOVUxMKSB7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0g
TlVMTCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBXbWlTZXNz
aW9uRW5kKCZ3bWksIFdtaVNlc3Npb25IYW5kbGUpOwotCi19Ci0KLWludCBYZW5zdG9yZVByaW50
Zihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLSAgICB2YV9saXN0
IGw7Ci0gICAgY2hhciBidWZbNDA5Nl07Ci0gICAgaW50IGNudDsKLQotICAgIHZhX3N0YXJ0KGws
IGZtdCk7Ci0gICAgY250ID0gX3ZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmbXQsIGwpOwot
ICAgIHZhX2VuZChsKTsKLSAgICBpZiAoY250IDwgMCkgewotICAgICAgICBEQkdQUklOVCAoKCJD
YW5ub3QgZm9ybWF0IGRhdGEgZm9yIFhlbnN0b3JlUHJpbnRmISIpKTsKLSAgICAgICAgcmV0dXJu
IC0xOwotICAgIH0KLSAgICBPdXRwdXREZWJ1Z1N0cmluZyhidWYpOwotICAgIC8qIE5vdyBoYXZl
IHRoZSB0aGluZyB3ZSdyZSB0cnlpbmcgdG8gd3JpdGUuICovCi0gICAgcmV0dXJuIFdtaVNlc3Np
b25TZXRFbnRyeSgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgcGF0aCwgYnVmKTsKLX0KLQotQk9P
TCBYZW5zdG9yZUtpY2tYYXBpKCkKLXsKLSAgICAvKiBOZXcgcHJvdG9jb2wgKi8KLSAgICBpZiAo
WGVuc3RvcmVQcmludGYoImRhdGEvdXBkYXRlX2NudCIsICIlSTY0ZCIsIHVwZGF0ZV9jbnQpKXsK
LSAgICAgICAgWHNMb2coIk5ldyBraWNrIGZhaWxlZCAiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLSAgICAvKiBPbGQgcHJvdG9jb2wgKi8KLSAgICBpZiAoV21pU2Vzc2lvblNldEVu
dHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCAiZGF0YS91cGRhdGVkIiwgIjEiKSl7Ci0gICAg
ICAgIFhzTG9nKCJPbGQga2ljayBmYWlsZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICB1cGRhdGVfY250Kys7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotaW50Ci1YZW5z
dG9yZVJlbW92ZShjb25zdCBjaGFyICpwYXRoKQotewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAg
ICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkKLSAg
ICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKFdtaVNlc3Npb25SZW1vdmVFbnRyeSgmd21pLCAm
V21pU2Vzc2lvbkhhbmRsZSwgcGF0aCkpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICBlbHNlCi0g
ICAgICAgIHJldHVybiAwOwotfQotCi1zc2l6ZV90Ci1YZW5zdG9yZVJlYWQoY29uc3QgY2hhciog
cGF0aCwgY2hhcioqIHZhbHVlKQotewotICAgIHNpemVfdCBsZW47Ci0gICAgKnZhbHVlID1XbWlT
ZXNzaW9uR2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUsIHBhdGgsICZsZW4pOwotICAg
IGlmICgqdmFsdWUpCi0gICAgICAgIHJldHVybiAoc3NpemVfdClsZW47Ci0gICAgZWxzZQotICAg
ICAgICByZXR1cm4gLTE7Ci19Ci0KLQotYm9vbCBYZW5zdG9yZVJlYWREd29yZChjb25zdCBjaGFy
ICpwYXRoLCBEV09SRCAqdmFsdWUpIHsKLSAgICBjaGFyKiBidWZmZXI7Ci0gICAgc3NpemVfdCBs
ZW47Ci0gICAgbGVuID0gWGVuc3RvcmVSZWFkKHBhdGgsICZidWZmZXIpOwotICAgIGlmIChsZW4g
PD0gMCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgICp2YWx1ZSA9IGF0b2ko
YnVmZmVyKTsKLQotICAgIFhzRnJlZShidWZmZXIpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXZvaWQgKgotWGVuc3RvcmVXYXRjaChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhB
TkRMRSBlcnJvcmV2ZW50KQotewotIAotICAgIGlmICh3bWkgPT0gTlVMTCkgewotICAgICAgICBP
dXRwdXREZWJ1Z1N0cmluZygiV01JIGlzIG51bGxcbiIpOwotICAgICAgICByZXR1cm4gTlVMTDsK
LSAgICB9Ci0gICAgaWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkgewotICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZygiU2Vzc2lvbiBpcyBudWxsXG4iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7
Ci0gICAgfQotICAgIHJldHVybiBXbWlTZXNzaW9uV2F0Y2goJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsIHBhdGgsIGV2ZW50LCBlcnJvcmV2ZW50KTsKLX0KLQotQk9PTAotWGVuc3RvcmVVbndhdGNo
KHZvaWQgKndhdGNoKQotewotICAgIHJldHVybiBXbWlTZXNzaW9uVW53YXRjaCgmd21pLCAmV21p
U2Vzc2lvbkhhbmRsZSwgd2F0Y2gpOwotfQotCi12b2lkIAotWGVuc3RvcmVGcmVlKHZvaWQgKnRv
ZnJlZSkKLXsKLSAgICByZXR1cm4gWHNGcmVlKHRvZnJlZSk7Ci19Ci0KZGlmZiAtLWdpdCBhL3Ny
Yy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nl
c3Nvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWQ0MWIwLi4wMDAwMDAwCi0t
LSBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjYgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAot
ICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Ci0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0g
KiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2lmbmRlZiBfWFNBQ0NF
U1NPUl9ICi0jZGVmaW5lIF9YU0FDQ0VTU09SX0gKLQotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNs
dWRlICJ3aW5kb3dzLmgiCi0KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotI2RlZmluZSBNQVhf
WEVOQlVTX1BBVEggMjU2Ci0KLSNpZmRlZiBBTUQ2NAotdHlwZWRlZiBsb25nIGxvbmcgc3NpemVf
dDsKLSNlbHNlCi10eXBlZGVmIGxvbmcgc3NpemVfdDsKLSNlbmRpZgotCi1CT09MIEluaXRYU0Fj
Y2Vzc29yKCk7Ci1CT09MIFNodXRkb3duWFNBY2Nlc3NvcigpOwotc3NpemVfdCBYZW5zdG9yZVJl
YWQoY29uc3QgY2hhciAqcGF0aCwgY2hhciAqKnZhbHVlKTsKLWludCBYZW5zdG9yZVJlbW92ZShj
b25zdCBjaGFyICpwYXRoKTsKLWludCBYZW5zdG9yZVByaW50Zihjb25zdCBjaGFyICpwYXRoLCBj
b25zdCBjaGFyICpmbXQsIC4uLik7Ci1pbnQgWGVuc3RvcmVXcml0ZShjb25zdCBjaGFyICpwYXRo
LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSh2
b2lkKTsKLXZvaWQgKlhlbnN0b3JlV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2ZW50
LCBIQU5ETEUgZXJyb3JldmVudCk7Ci1CT09MIFhlbnN0b3JlVW53YXRjaCh2b2lkICp3YXRjaCk7
Ci1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZ0LCBIQU5ETEUgZXJyb3JldmVudCk7Ci12b2lk
IEdldFhlblRpbWUoRklMRVRJTUUgKnJlcyk7Ci12b2lkIFhzTG9nKGNvbnN0IGNoYXIgKmZtdCwg
Li4uKTsKLXZvaWQgWGVuc3RvcmVGcmVlKHZvaWQgKnRvZnJlZSk7Ci12b2lkICpYc0FsbG9jKHNp
emVfdCBzaXplKTsKLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1Zik7Ci1ib29sIFhlbnN0b3Jl
UmVhZER3b3JkKGNvbnN0IGNoYXIgKiBwYXRoLCBEV09SRCAqdmFsdWUpOwotCi0jaWYgREJHCi0K
LSNpbmNsdWRlIDxzdGRhcmcuaD4gICAgICAgICAvLyB2YV9saXN0Ci0jaW5jbHVkZSA8c3RkaW8u
aD4gICAgICAgICAgLy8gdnNwcmludGYKLSNpbmNsdWRlIDxtYWxsb2MuaD4KLQotI2luY2x1ZGUg
PGFzc2VydC5oPgotI2luY2x1ZGUgPHRjaGFyLmg+Ci0KLV9faW5saW5lIHZvaWQgRGVidWdQcmlu
dCggSU4gTFBDVFNUUiBtc2csIElOIC4uLiApCi17Ci0gICAgVENIQVIgICBidWZmZXJbMjU2XTsK
LSAgICBpbnQgICAgIHJlczsKLSAgICB2YV9saXN0IGFyZ3M7Ci0KLSAgICB2YV9zdGFydCggYXJn
cywgbXNnICk7Ci0jcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6IDI4NzE5LCAiWWVzLCB3ZSBhbGwg
a25vdyBfdnNucHJpbnRmIGlzIGJhbm5lZCBpbiBkcml2ZXJzLCB0aGlzIGlzIHVzZXIgbGV2ZWwi
KTsKLSAgICByZXMgPSBfdnNudHByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpIC8gc2l6ZW9m
KGJ1ZmZlclswXSksIG1zZywgYXJncyk7Ci0gICAgaWYgKHJlcyA+PSAwKQotICAgIHsKLSAgICAg
ICAgT3V0cHV0RGVidWdTdHJpbmcoIGJ1ZmZlciApOwotICAgIH0KLSAgICBlbHNlCi0gICAgewot
ICAgICAgICBUQ0hBUiAqcDsKLSAgICAgICAgaW50IGNvdW50OwotCi0gICAgICAgIGNvdW50ID0g
NTEyOwotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBwID0gKFRDSEFSICopbWFsbG9j
KGNvdW50ICogc2l6ZW9mIChUQ0hBUikpOwotICAgICAgICAgICAgaWYgKCFwKSB7Ci0gICAgICAg
ICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoX1QoIk91dCBvZiBtZW1vcnkgZm9yIGRlYnVnIG1l
c3NhZ2UhXG4iKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICByZXMgPSBfdnNudHByaW50ZihwLCBjb3VudCwgbXNnLCBhcmdzKTsKLSAgICAgICAg
ICAgIGlmIChyZXMgPj0gMCkKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAg
ZnJlZShwKTsKLSAgICAgICAgICAgIGNvdW50ICs9IDI1NjsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocCkgewotICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIHAgKTsKLSAgICAgICAgICAg
IGZyZWUocCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgdmFfZW5kKGFyZ3MpOwotfQotCi0jZGVm
aW5lIERCR1BSSU5UKF94XykgRGVidWdQcmludCBfeF8KLSNkZWZpbmUgQVNTRVJUICBhc3NlcnQK
LQotI2Vsc2UKLQotI2RlZmluZSBEQkdQUklOVChfeF8pIAotI2RlZmluZSBBU1NFUlQgIAotCi0j
ZW5kaWYgLy8gREJHCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hT
ZXJ2aWNlLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFmYmIxMzguLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFn
ZW50L1hTZXJ2aWNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNDQgKzAsMCBAQAotLyogQ29w
eXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0g
KiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAK
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0g
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAq
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8c2hs
b2JqLmg+Ci0jaW5jbHVkZSA8cHJvY2Vzcy5oPgotI2luY2x1ZGUgInBvd3Jwcm9mLmgiCi0jaW5j
bHVkZSA8d2ludXNlci5oPgotI2luY2x1ZGUgInN0ZGFmeC5oIgotI2luY2x1ZGUgIlhTQWNjZXNz
b3IuaCIKLSNpbmNsdWRlICJXTUlBY2Nlc3Nvci5oIgotI2luY2x1ZGUgIlhTZXJ2aWNlLmgiCi0K
LSNpbmNsdWRlICJtZXNzYWdlcy5oIgotCi0jaW5jbHVkZSA8c2V0dXBhcGkuaD4KLSNpbmNsdWRl
IDxjZmdtZ3IzMi5oPgotI2luY2x1ZGUgPGluaXRndWlkLmg+Ci0jaW5jbHVkZSA8ZGV2Z3VpZC5o
PgotI2luY2x1ZGUgPHdpbnRydXN0Lmg+Ci0jaW5jbHVkZSA8c2hlbGxhcGkuaD4KLQotI2lmZGVm
IF9XSU42NAotI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JFR19LRVkgICAiU09GVFdBUkVcXFdv
dzY0MzJOb2RlXFxDaXRyaXhcXFhlblRvb2xzIgotI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JF
R19LRVk2NCAiU09GVFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCi0jZWxzZQotI2RlZmluZSBYRU5U
T09MU19JTlNUQUxMX1JFR19LRVkgICAiU09GVFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCi0jZW5k
aWYKLQotU0VSVklDRV9TVEFUVVMgU2VydmljZVN0YXR1czsgCi1TRVJWSUNFX1NUQVRVU19IQU5E
TEUgaFN0YXR1czsgIAotCi1zdGF0aWMgSEFORExFIGhTZXJ2aWNlRXhpdEV2ZW50Owotc3RhdGlj
IFVMT05HIFdpbmRvd3NWZXJzaW9uOwotc3RhdGljIEJPT0wgTGVnYWN5SGFsID0gRkFMU0U7Ci1z
dGF0aWMgSElOU1RBTkNFIGxvY2FsX2hpbnN0YW5jZTsKLQotSEFORExFIGV2ZW50TG9nOwotI2Rl
ZmluZSBTSVpFQ0hBUlMoeCkgKHNpemVvZigoeCkpL3NpemVvZihUQ0hBUikpCi0KLS8vIEludGVy
bmFsIHJvdXRpbmVzCi1zdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlcihE
V09SRCByZXF1ZXN0LCBEV09SRCBldnRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTFBWT0lELCBMUFZPSUQpOwotc3RhdGljIHZvaWQgU2VydmljZUNvbnRy
b2xNYW5hZ2VyVXBkYXRlKERXT1JEIGR3RXhpdENvZGUsIERXT1JEIGR3U3RhdGUpOwotc3RhdGlj
IHZvaWQgV0lOQVBJIFNlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1zdGF0aWMg
dm9pZCBHZXRXaW5kb3dzVmVyc2lvbigpOwotCi12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAq
ZnVuYywgRFdPUkQgZXJyKQotewotICAgIExQVk9JRCBscE1zZ0J1ZjsKLSAgICBGb3JtYXRNZXNz
YWdlKAotICAgICAgICBGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfAotICAgICAgICBG
T1JNQVRfTUVTU0FHRV9GUk9NX1NZU1RFTSwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgZXJyLAot
ICAgICAgICBNQUtFTEFOR0lEKExBTkdfTkVVVFJBTCwgU1VCTEFOR19ERUZBVUxUKSwKLSAgICAg
ICAgKExQVFNUUikgJmxwTXNnQnVmLAotICAgICAgICAwLAotICAgICAgICBOVUxMKTsKLSAgICBP
dXRwdXREZWJ1Z1N0cmluZygoTFBUU1RSKWxwTXNnQnVmKTsKLSAgICBYc0xvZygiJXMgZmFpbGVk
OiAlcyAoJXgpIiwgZnVuYywgbHBNc2dCdWYsIGVycik7Ci0gICAgWGVuc3RvcmVQcmludGYoImNv
bnRyb2wvZXJyb3IiLCAiJXMgZmFpbGVkOiAlcyAoJXgpIiwgZnVuYywgbHBNc2dCdWYsIGVycik7
Ci0gICAgTG9jYWxGcmVlKGxwTXNnQnVmKTsKLX0KLQotdm9pZCBQcmludEVycm9yKGNvbnN0IGNo
YXIgKmZ1bmMpCi17Ci0gICAgUHJpbnRFcnJvcihmdW5jLCBHZXRMYXN0RXJyb3IoKSk7Ci19Ci0K
LXZvaWQgUHJpbnRVc2FnZSgpCi17Ci0gICAgcHJpbnRmKCJVc2FnZTogeGVuc2VydmljZSBbLXVd
XG4iKTsKLQotICAgIHByaW50ZigiXHQgLXU6IHVuaW5zdGFsbCBzZXJ2aWNlXG4iKTsKLX0KLQot
Ci0KLXN0cnVjdCB3YXRjaF9ldmVudCB7Ci0gICAgSEFORExFIGV2ZW50OwotICAgIHZvaWQgKndh
dGNoOwotfTsKLQotc3RhdGljIHZvaWQKLVJlbGVhc2VXYXRjaChzdHJ1Y3Qgd2F0Y2hfZXZlbnQg
KndlKQotewotICAgIGlmICh3ZSA9PSBOVUxMKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKHdl
LT5ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKLSAgICAgICAgQ2xvc2VIYW5kbGUod2Ut
PmV2ZW50KTsKLSAgICBpZiAod2UtPndhdGNoKQotICAgICAgICBYZW5zdG9yZVVud2F0Y2god2Ut
PndhdGNoKTsKLSAgICBmcmVlKHdlKTsKLX0KLQotc3RhdGljIGNoYXIgKiBJbml0U3RyaW5nKGNv
bnN0IGNoYXIgKiBpbnB1dHN0cmluZykKLXsKLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hh
ciAqKWNhbGxvYygoc3RybGVuKGlucHV0c3RyaW5nKSsxKSxzaXplb2YoY2hhcikpOwotICAgIGlm
IChvdXRwdXRzdHJpbmcgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsYWxsb2M7Ci0gICAgc3Ry
Y3B5KG91dHB1dHN0cmluZywgaW5wdXRzdHJpbmcpOwotICAgIHJldHVybiBvdXRwdXRzdHJpbmc7
IAotCi1mYWlsYWxsb2M6Ci0gICAgWHNMb2coX19GVU5DVElPTl9fICIgOiBGYWlsIG1hbGxvYyIp
OwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCBGcmVlU3RyaW5nKGNvbnN0IGNo
YXIgKnN0cmluZykgCi17Ci0gICAgZnJlZSgodm9pZCAqKXN0cmluZyk7Ci19Ci0KLXN0YXRpYyBj
aGFyKiBQcmludGZTdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pewotICAgIHZhX2xpc3QgbDsK
LSAgICB2YV9zdGFydChsLCBmbXQpOwotICAgIGludCBudW1jaGFycyA9IF92c2NwcmludGYoZm10
LCBsKTsKLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hhciAqKWNhbGxvYyhudW1jaGFycyAr
IDEsIHNpemVvZihjaGFyKSk7Ci0KLSAgICBpZiAob3V0cHV0c3RyaW5nID09IE5VTEwpCi0gICAg
ICAgIHJldHVybiBOVUxMOwotCi0gICAgX3ZzbnByaW50ZihvdXRwdXRzdHJpbmcsIG51bWNoYXJz
LCBmbXQsIGwpOwotICAgIHJldHVybiBvdXRwdXRzdHJpbmc7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qg
d2F0Y2hfZXZlbnQgKgotRXN0YWJsaXNoV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGVy
cm9yZXZlbnQpCi17Ci0gICAgc3RydWN0IHdhdGNoX2V2ZW50ICp3ZTsKLSAgICBEV09SRCBlcnI7
Ci0gICAgWHNMb2coIkVzdGFibGlzaCB3YXRjaCAlcyIscGF0aCk7Ci0gICAgd2UgPSAoc3RydWN0
IHdhdGNoX2V2ZW50ICopbWFsbG9jKHNpemVvZigqd2UpKTsKLSAgICBpZiAoIXdlKSB7Ci0gICAg
ICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KLSAgICBtZW1zZXQod2UsIDAsIHNpemVvZigqd2UpKTsKLSAgICB3ZS0+
d2F0Y2ggPSBOVUxMOwotICAgIHdlLT5ldmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBG
QUxTRSwgTlVMTCk7Ci0gICAgaWYgKHdlLT5ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkK
LSAgICAgICAgd2UtPndhdGNoID0gWGVuc3RvcmVXYXRjaChwYXRoLCB3ZS0+ZXZlbnQsIGVycm9y
ZXZlbnQpOwotICAgIGlmICh3ZS0+d2F0Y2ggPT0gTlVMTCkgewotICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiV2F0Y2ggaXMgbnVsbFxuIik7Ci0gICAgICAgIGVyciA9IEdldExhc3RFcnJvcigp
OwotICAgICAgICBSZWxlYXNlV2F0Y2god2UpOwotICAgICAgICBTZXRMYXN0RXJyb3IoZXJyKTsK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiB3ZTsKLX0KLQotc3RydWN0
IHdhdGNoX2ZlYXR1cmUgewotICAgIHN0cnVjdCB3YXRjaF9ldmVudCAqd2F0Y2g7Ci0gICAgY29u
c3QgY2hhciAqZmVhdHVyZV9mbGFnOwotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgQk9PTCAo
KmhhbmRsZXIpKHZvaWQgKik7Ci0gICAgdm9pZCAqY3R4OwotfTsKLQotI2RlZmluZSBNQVhfRkVB
VFVSRVMgMTAKLXN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCB7Ci0gICAgc3RydWN0IHdhdGNoX2Zl
YXR1cmUgZmVhdHVyZXNbTUFYX0ZFQVRVUkVTXTsKLSAgICB1bnNpZ25lZCBucl9mZWF0dXJlczsK
LX07Ci0KLXN0YXRpYyBCT09MCi1BZGRGZWF0dXJlKHN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAq
d2ZzLCBjb25zdCBjaGFyICpwYXRoLAotICAgICAgICAgICBjb25zdCBjaGFyICpmbGFnLCBjb25z
dCBjaGFyICpuYW1lLAotICAgICAgICAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKSwgdm9pZCAq
Y3R4LCBIQU5ETEUgZXJyb3JldmVudCkKLXsKLSAgICB1bnNpZ25lZCBuOwotICAgIGlmICh3ZnMt
Pm5yX2ZlYXR1cmVzID09IE1BWF9GRUFUVVJFUykKLSAgICAgICAgZ290byBmYWlsZmVhdHVyZXM7
Ci0KLSAgICBuID0gd2ZzLT5ucl9mZWF0dXJlczsKLQotICAgIHdmcy0+ZmVhdHVyZXNbbl0ud2F0
Y2ggPSBFc3RhYmxpc2hXYXRjaChwYXRoLCBlcnJvcmV2ZW50KTsKLSAgICBpZiAod2ZzLT5mZWF0
dXJlc1tuXS53YXRjaCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWx3YXRjaDsKLSAgICAKLSAg
ICB3ZnMtPmZlYXR1cmVzW25dLmZlYXR1cmVfZmxhZyA9IGZsYWc7Ci0gICAgd2ZzLT5mZWF0dXJl
c1tuXS5oYW5kbGVyID0gaGFuZGxlcjsKLSAgICB3ZnMtPmZlYXR1cmVzW25dLmN0eCA9IGN0eDsK
LSAgICB3ZnMtPmZlYXR1cmVzW25dLm5hbWUgPSBJbml0U3RyaW5nKG5hbWUpOwotICAgIGlmICh3
ZnMtPmZlYXR1cmVzW25dLm5hbWUgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsbmFtZTsKLSAg
ICB3ZnMtPm5yX2ZlYXR1cmVzKys7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWZhaWxuYW1lOgotICAg
IFByaW50RXJyb3IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmciKTsKLWZhaWx3YXRjaDoKLSAg
ICBQcmludEVycm9yKCJFc3RhYmxpc2hXYXRjaCgpIGZvciBBZGRGZWF0dXJlKCkiKTsKLWZhaWxm
ZWF0dXJlczoKLSAgICBYc0xvZygiVG9vIG1hbnkgZmVhdHVyZXMiKTsKLSAgICBQcmludEVycm9y
KCJUb28gbWFueSBmZWF0dXJlcyEiLCBFUlJPUl9JTlZBTElEX0ZVTkNUSU9OKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIFJlbW92ZUZlYXR1cmVzKHN0cnVjdCB3YXRjaF9m
ZWF0dXJlX3NldCAqd2ZzKSB7Ci0gICAgdW5zaWduZWQgeDsKLSAgICBmb3IgKHggPSAwOyB4IDwg
d2ZzLT5ucl9mZWF0dXJlczsgeCsrKSB7Ci0gICAgICAgIFJlbGVhc2VXYXRjaCh3ZnMtPmZlYXR1
cmVzW3hdLndhdGNoKTsKLSAgICAgICAgd2ZzLT5mZWF0dXJlc1t4XS53YXRjaCA9IE5VTEw7Ci0g
ICAgICAgIEZyZWVTdHJpbmcod2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgWGVuc3Rv
cmVSZW1vdmUod2ZzLT5mZWF0dXJlc1t4XS5mZWF0dXJlX2ZsYWcpOwotICAgIH0KLSAgICB3ZnMt
Pm5yX2ZlYXR1cmVzID0gMDsKLX0KLQotc3RhdGljIEJPT0wKLUFkdmVydGlzZUZlYXR1cmVzKHN0
cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAqd2ZzKQotewotICAgIHVuc2lnbmVkIHg7Ci0gICAgZm9y
ICh4ID0gMDsgeCA8IHdmcy0+bnJfZmVhdHVyZXM7IHgrKykgewotICAgICAgICBpZiAod2ZzLT5m
ZWF0dXJlc1t4XS5mZWF0dXJlX2ZsYWcgIT0gTlVMTCkKLSAgICAgICAgICAgIGlmIChYZW5zdG9y
ZVByaW50Zih3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZywgIjEiKSl7Ci0gICAgICAgICAg
ICAgICAgWHNMb2coIkZhaWxlZCB0byBhZHZlcnRpc2UgJXMiLHdmcy0+ZmVhdHVyZXNbeF0ubmFt
ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi0KLXZvaWQg
U2VydmljZVVuaW5zdGFsbCgpCi17Ci0gICAgU0NfSEFORExFICAgaFN2YzsKLSAgICBTQ19IQU5E
TEUgICBoTWdyOwotICAgIAotICAgIGhNZ3IgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFND
X01BTkFHRVJfQUxMX0FDQ0VTUyk7Ci0KLSAgICBpZiAoIGhNZ3IgKQotICAgIHsKLSAgICAgICAg
aFN2YyA9IE9wZW5TZXJ2aWNlKGhNZ3IsIFNWQ19OQU1FLCBTRVJWSUNFX0FMTF9BQ0NFU1MpOwot
Ci0gICAgICAgIGlmIChoU3ZjKQotICAgICAgICB7Ci0gICAgICAgICAgICAgLy8gdHJ5IHRvIHN0
b3AgdGhlIHNlcnZpY2UKLSAgICAgICAgICAgICBpZiAoIENvbnRyb2xTZXJ2aWNlKCBoU3ZjLCBT
RVJWSUNFX0NPTlRST0xfU1RPUCwgJlNlcnZpY2VTdGF0dXMgKSApCi0gICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHByaW50ZigiU3RvcHBpbmcgJXMuIiwgU1ZDX0RJU1BMQVlOQU1FKTsK
LSAgICAgICAgICAgICAgICBTbGVlcCggMTAwMCApOwotCi0gICAgICAgICAgICAgICAgd2hpbGUg
KCBRdWVyeVNlcnZpY2VTdGF0dXMoIGhTdmMsICZTZXJ2aWNlU3RhdHVzICkgKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVu
dFN0YXRlID09IFNFUlZJQ0VfU1RPUF9QRU5ESU5HICkKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBTbGVlcCggMTAwMCApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICggU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9PSBTRVJWSUNFX1NUT1BQRUQgKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIlxuJXMg
c3RvcHBlZC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiVzIGZhaWxlZCB0byBzdG9wLlxuIiwgU1ZDX0RJ
U1BMQVlOQU1FICk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIC8vIG5vdyByZW1vdmUgdGhlIHNl
cnZpY2UKLSAgICAgICAgIGlmICggRGVsZXRlU2VydmljZShoU3ZjKSApCi0gICAgICAgICAgICBw
cmludGYoIiVzIHVuaW5zdGFsbGVkLlxuIiwgU1ZDX0RJU1BMQVlOQU1FICk7Ci0gICAgICAgICBl
bHNlCi0gICAgICAgICAgICBwcmludGYoIlVuYWJsZSB0byB1bmluc3RhbGwgLSAlZFxuIiwgR2V0
TGFzdEVycm9yKCkpOwotCi0gICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUoaFN2Yyk7Ci0KLSAg
ICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgIHByaW50ZigiVW5hYmxlIHRvIG9wZW4gc2Vydmlj
ZSAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICAgIENsb3NlU2VydmljZUhhbmRsZSho
TWdyKTsKLSAgIH0KLSAgIGVsc2UKLSAgICAgIHByaW50ZigiVW5hYmxlIHRvIG9wZW4gc2NtIC0g
JWRcbiIsIEdldExhc3RFcnJvcigpKTsKLQotfQotCi0KLWludCBfX3N0ZGNhbGwKLVdpbk1haW4o
SElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGlnbm9yZSwKLSAgICAgICAgTFBTVFIgbHBD
bWRMaW5lLCBpbnQgbkNtZFNob3cpCi17Ci0gICAgbG9jYWxfaGluc3RhbmNlID0gaEluc3RhbmNl
OwotCi0gICAgaWYgKHN0cmxlbihscENtZExpbmUpID09IDApIHsKLSAgICAgICAgU0VSVklDRV9U
QUJMRV9FTlRSWSBTZXJ2aWNlVGFibGVbMl07Ci0gICAgICAgIFNlcnZpY2VUYWJsZVswXS5scFNl
cnZpY2VOYW1lID0gU1ZDX05BTUU7Ci0gICAgICAgIFNlcnZpY2VUYWJsZVswXS5scFNlcnZpY2VQ
cm9jID0gKExQU0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWluOwotCi0gICAgICAgIFNl
cnZpY2VUYWJsZVsxXS5scFNlcnZpY2VOYW1lID0gTlVMTDsKLSAgICAgICAgU2VydmljZVRhYmxl
WzFdLmxwU2VydmljZVByb2MgPSBOVUxMOwotCi0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiBz
dGFydGluZyBjdHJsIGRpc3BhdGNoZXIgIikpOwotCi0gICAgICAgIC8vIFN0YXJ0IHRoZSBjb250
cm9sIGRpc3BhdGNoZXIgdGhyZWFkIGZvciBvdXIgc2VydmljZQotICAgICAgICBpZiAoIVN0YXJ0
U2VydmljZUN0cmxEaXNwYXRjaGVyKFNlcnZpY2VUYWJsZSkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGludCBlcnIgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgICAgIGlmIChHZXRMYXN0RXJy
b3IoKSA9PSBFUlJPUl9GQUlMRURfU0VSVklDRV9DT05UUk9MTEVSX0NPTk5FQ1QpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHVuYWJsZSB0byBzdGFy
dCBjdHJsIGRpc3BhdGNoZXIgLSAlZCIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBXZSBn
ZXQgaGVyZSB3aGVuIHRoZSBzZXJ2aWNlIGlzIHNodXQgZG93bi4KLSAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAoIXN0cmNtcChscENtZExpbmUsICItdSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAi
XCItdVwiIikpIHsKLSAgICAgICAgU2VydmljZVVuaW5zdGFsbCgpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIFByaW50VXNhZ2UoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBB
Y3F1aXJlU3lzdGVtUHJpdmlsZWdlKExQQ1RTVFIgbmFtZSkKLXsKLSAgICBIQU5ETEUgdG9rZW47
Ci0gICAgVE9LRU5fUFJJVklMRUdFUyB0a3A7Ci0gICAgRFdPUkQgZXJyOwotCi0gICAgTG9va3Vw
UHJpdmlsZWdlVmFsdWUoTlVMTCwgbmFtZSwgJnRrcC5Qcml2aWxlZ2VzWzBdLkx1aWQpOwotICAg
IHRrcC5Qcml2aWxlZ2VDb3VudCA9IDE7Ci0gICAgdGtwLlByaXZpbGVnZXNbMF0uQXR0cmlidXRl
cyA9IFNFX1BSSVZJTEVHRV9FTkFCTEVEOwotICAgIGlmICghT3BlblByb2Nlc3NUb2tlbihHZXRD
dXJyZW50UHJvY2VzcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBUT0tFTl9BREpVU1Rf
UFJJVklMRUdFU3xUT0tFTl9RVUVSWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnRva2Vu
KSkgewotICAgICAgICBEQkdQUklOVCgoIkZhaWxlZCB0byBvcGVuIGxvY2FsIHRva2VuLlxuIikp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFkanVzdFRva2VuUHJpdmlsZWdlcyh0b2tlbiwgRkFM
U0UsICZ0a3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCBOVUxMKTsK
LSAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7Ci0gICAgICAgIGlmIChlcnIgIT0gRVJST1Jf
U1VDQ0VTUykgewotICAgICAgICAgICAgUHJpbnRFcnJvcigiQWRqdXN0VG9rZW5Qcml2aWxlZ2Vz
IiwgZXJyKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgQWNxdWlyZVN5c3Rl
bVNodXRkb3duUHJpdmlsZWdlKHZvaWQpCi17Ci0gICAgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShT
RV9TSFVURE9XTl9OQU1FKTsKLX0KLQotZW51bSBYU2h1dGRvd25UeXBlIHsKLSAgICBYU2h1dGRv
d25Qb3dlcm9mZiwKLSAgICBYU2h1dGRvd25SZWJvb3QsCi0gICAgWFNodXRkb3duU3VzcGVuZCwK
LSAgICBYU2h1dGRvd25TMwotfTsKLQotc3RhdGljIEJPT0wgbWF5YmVSZWJvb3Qodm9pZCAqY3R4
KQotewotICAgIGNoYXIgKnNodXRkb3duX3R5cGU7Ci0gICAgQk9PTCByZXM7Ci0gICAgZW51bSBY
U2h1dGRvd25UeXBlIHR5cGU7Ci0gICAgaW50IGNudHIgPSAwOwotCi0gICAgWHNMb2coIkNoZWNr
IGlmIHdlIG5lZWQgdG8gc2h1dGRvd24iKTsKLQotICAgIGlmIChYZW5zdG9yZVJlYWQoImNvbnRy
b2wvc2h1dGRvd24iLCAmc2h1dGRvd25fdHlwZSkgPCAwKSB7Ci0gICAgICAgIFhzTG9nKCJObyBu
ZWVkIHRvIHNodXRkb3duIik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBYc0xv
ZygiU2h1dGRvd24gdHlwZSAlc1xuIiwgc2h1dGRvd25fdHlwZSk7Ci0gICAgaWYgKHN0cmNtcChz
aHV0ZG93bl90eXBlLCAicG93ZXJvZmYiKSA9PSAwIHx8Ci0gICAgICAgIHN0cmNtcChzaHV0ZG93
bl90eXBlLCAiaGFsdCIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93blBvd2Vyb2Zm
OwotICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJyZWJvb3QiKSA9PSAwKSB7
Ci0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25SZWJvb3Q7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAo
c2h1dGRvd25fdHlwZSwgImhpYmVybmF0ZSIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0
ZG93blN1c3BlbmQ7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAoc2h1dGRvd25fdHlwZSwgInMzIikg
PT0gMCkgewotICAgICAgICB0eXBlID0gWFNodXRkb3duUzM7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgREJHUFJJTlQoKCJCYWQgc2h1dGRvd24gdHlwZSAlc1xuIiwgc2h1dGRvd25fdHlwZSkpOwot
ICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0KLSAgICBYc0xvZygiUmVwb3J0IFNodXRkb3duIEV2
ZW50Iik7Ci0gICAgLyogV2UgdHJ5IHRvIHNodXRkb3duIGV2ZW4gaWYgdGhpcyBmYWlscywgc2lu
Y2UgaXQgbWlnaHQgd29yawotICAgICAgIGFuZCBpdCBjYW4ndCBkbyBhbnkgaGFybS4gKi8KLSAg
ICBBY3F1aXJlU3lzdGVtU2h1dGRvd25Qcml2aWxlZ2UoKTsKLQotICAgIGlmIChldmVudExvZykg
ewotICAgICAgICBEV09SRCBldmVudElkOwotCi0gICAgICAgIHN3aXRjaCAodHlwZSkgewotICAg
ICAgICBjYXNlIFhTaHV0ZG93blBvd2Vyb2ZmOgotICAgICAgICAgICAgZXZlbnRJZCA9IEVWRU5U
X1hFTlVTRVJfUE9XRVJPRkY7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1
dGRvd25SZWJvb3Q6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRfWEVOVVNFUl9SRUJPT1Q7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1dGRvd25TdXNwZW5kOgotICAg
ICAgICAgICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfSElCRVJOQVRFOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgWFNodXRkb3duUzM6Ci0gICAgICAgICAgICBldmVudElkID0g
RVZFTlRfWEVOVVNFUl9TMzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgWHNMb2coIkRvIHRoZSBzaHV0ZG93biIpOwotCi0gICAgLyogZG8gdGhlIHNodXRkb3du
ICovCi0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBYU2h1dGRvd25Qb3dlcm9mZjoKLSAg
ICBjYXNlIFhTaHV0ZG93blJlYm9vdDoKLSAgICAgICAgaWYgKFdpbmRvd3NWZXJzaW9uID49IDB4
NTAwICYmIFdpbmRvd3NWZXJzaW9uIDwgMHg2MDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8q
IFdpbmRvd3MgMjAwMCBJbml0aWF0ZVN5c3RlbVNodXRkb3duRXggaXMgZnVubnkgaW4KLSAgICAg
ICAgICAgICAgIHZhcmlvdXMgd2F5cyAoZS5nLiBzb21ldGltZXMgZmFpbHMgdG8gcG93ZXIgb2Zm
IGFmdGVyCi0gICAgICAgICAgICAgICBzaHV0ZG93biwgZXNwZWNpYWxseSBpZiB0aGUgbG9jYWwg
dGVybWluYWwgaXMgbG9ja2VkLAotICAgICAgICAgICAgICAgbm90IGRvaW5nIGFueXRoaW5nIGlm
IHRoZXJlJ3Mgbm9ib2R5IGxvZ2dlZCBvbiwgZXRjLikuCi0gICAgICAgICAgICAgICBFeGl0V2lu
ZG93c0V4IHNlZW1zIHRvIGJlIG1vcmUgcmVsaWFibGUsIHNvIHVzZSBpdAotICAgICAgICAgICAg
ICAgaW5zdGVhZC4gKi8KLSAgICAgICAgICAgIC8qIFhYWCBJIGRvbid0IHJlYWxseSB1bmRlcnN0
YW5kIHdoeQotICAgICAgICAgICAgICAgSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGJlaGF2ZXMg
c28gYmFkbHkuICovCi0gICAgICAgICAgICAvKiBJZiB0aGlzIGlzIGEgbGVnYWN5IGhhbCB0aGVu
IHVzZSBFV1hfU0hVVERPV04gd2hlbiBzaHV0dGluZwotICAgICAgICAgICAgICAgZG93biBpbnN0
ZWFkIG9mIEVXWF9QT1dFUk9GRi4gKi8KLSAgICAgICAgLyogU2ltaWxhciBwcm9ibGVtIG9uIFhQ
LiBTaHV0ZG93bi9SZWJvb3Qgd2lsbCBoYW5nIHVudGlsIHRoZSBXZWxjb21lCi0gICAgICAgIHNj
cmVlbiBzY3JlZW5zYXZlciBpcyBkaXNtaXNzZWQgYnkgdGhlIGd1ZXN0ICovCi0jcHJhZ21hIHdh
cm5pbmcgKGRpc2FibGUgOiAyODE1OSkKLSAgICAgICAgICAgIHJlcyA9IEV4aXRXaW5kb3dzRXgo
KHR5cGUgPT0gWFNodXRkb3duUmVib290ID8gCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFV1hfUkVCT09UIDogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoTGVnYWN5SGFsID8gCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVdYX1NIVVRET1dOIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
V1hfUE9XRVJPRkYpKXwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVdYX0ZPUkNF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RI
RVJ8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9F
TlZJUk9OTUVOVCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNP
Tl9GTEFHX1BMQU5ORUQpOwotI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiAyODE1OSkKLSAgICAg
ICAgICAgIGlmICghcmVzKSB7Ci0gICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiRXhpdFdpbmRv
d3NFeCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoWGVuc3Rv
cmVSZW1vdmUoImNvbnRyb2wvc2h1dGRvd24iKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotI3ByYWdtYSB3YXJuaW5n
IChkaXNhYmxlIDogMjgxNTkpCi0gICAgICAgICAgICByZXMgPSBJbml0aWF0ZVN5c3RlbVNodXRk
b3duRXgoCi0gICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICBOVUxMLAotICAg
ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICB0
eXBlID09IFhTaHV0ZG93blJlYm9vdCwKLSAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFK
T1JfT1RIRVIgfAotICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9FTlZJUk9OTUVO
VCB8Ci0gICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Ci0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDI4MTU5KQotICAgICAgICAgICAgaWYgKCFyZXMpIHsKLSAgICAg
ICAgICAgICAgICBQcmludEVycm9yKCJJbml0aWF0ZVN5c3RlbVNodXRkb3duRXgiKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBYU2h1dGRvd25TdXNwZW5kOgotICAgICAgICBpZiAoWGVuc3Rv
cmVQcmludGYgKCJjb250cm9sL2hpYmVybmF0aW9uLXN0YXRlIiwgInN0YXJ0ZWQiKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgLyogRXZlbiBpZiB3ZSB0aGluayBoaWJlcm5h
dGlvbiBpcyBkaXNhYmxlZCwgdHJ5IGl0IGFueXdheS4KLSAgICAgICAgICAgSXQncyBub3QgbGlr
ZSBpdCBjYW4gZG8gYW55IGhhcm0uICovCi0gICAgICAgIHJlcyA9IFNldFN5c3RlbVBvd2VyU3Rh
dGUoRkFMU0UsIEZBTFNFKTsKLSAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3ZlICgiY29udHJvbC9z
aHV0ZG93biIpKQotICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgLyogVGVsbCB0aGUgdG9v
bHMgdGhhdCB3ZSd2ZSBmYWlsZWQuICovCi0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTeXN0
ZW1Qb3dlclN0YXRlIik7Ci0gICAgICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJjb250cm9s
L2hpYmVybmF0aW9uLXN0YXRlIiwgImZhaWxlZCIpKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhTaHV0ZG93blMzOgot
ICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJjb250cm9sL3MzLXN0YXRlIiwgInN0YXJ0ZWQi
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmVzID0gU2V0U3VzcGVuZFN0
YXRlKEZBTFNFLCBUUlVFLCBGQUxTRSk7Ci0gICAgICAgIFhlbnN0b3JlUmVtb3ZlICgiY29udHJv
bC9zaHV0ZG93biIpOwotICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgUHJpbnRFcnJv
cigiU2V0U3VzcGVuZFN0YXRlIik7Ci0gICAgICAgICAgICBpZiAoWGVuc3RvcmVQcmludGYgKCJj
b250cm9sL3MzLXN0YXRlIiwgImZhaWxlZCIpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0KLW91dDoKLSAgICBYZW5zdG9y
ZUZyZWUoc2h1dGRvd25fdHlwZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29s
IHJlZ2lzdHJ5TWF0Y2hTdHJpbmcoSEtFWSAgICBoS2V5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMUENUU1RSIGxwVmFsdWVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMUENUU1RSIGNvbXBhcmVzdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgICAgbWF0Y2hjYXNlKQotewotICAgIGJvb2wgICAgcmVzdWx0ID0gZmFsc2U7
Ci0gICAgTE9ORyAgICBidWZmZXJzaXplID0gc2l6ZW9mKFRDSEFSKSoyNTY7Ci0gICAgVENIQVIg
ICAqb3V0c3RyaW5nID0gTlVMTDsKLSAgICBEV09SRCAgb3V0c3RyaW5nc2l6ZTsKLSAgICBMT05H
ICAgIHN0YXR1czsKLSAgICBkbyB7Ci0gICAgICAgIG91dHN0cmluZ3NpemUgPSBidWZmZXJzaXpl
OwotICAgICAgICBvdXRzdHJpbmcgPSAoVENIQVIgKilyZWFsbG9jKG91dHN0cmluZywgb3V0c3Ry
aW5nc2l6ZSk7Ci0KLSAgICAgICAgc3RhdHVzID0gUmVnUXVlcnlWYWx1ZUV4KGhLZXksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBscFZhbHVlTmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExQQllURSkgb3V0c3Ry
aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHN0cmluZ3NpemUpOwot
ICAgICAgICBidWZmZXJzaXplICo9IDI7Ci0gICAgfSB3aGlsZSAoc3RhdHVzID09IEVSUk9SX01P
UkVfREFUQSk7Ci0KLSAgICBpZiAoc3RhdHVzID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKQotICAg
ICAgICBnb3RvIGRvbmU7Ci0KLSAgICBpZiAobWF0Y2hjYXNlKSB7Ci0gICAgICAgIGlmIChfdGNz
bmNtcChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcsIG91dHN0cmluZ3NpemUpKQotICAgICAgICAg
ICAgZ290byBkb25lOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKF90Y3NuaWNvbGwo
Y29tcGFyZXN0cmluZywgb3V0c3RyaW5nLCBvdXRzdHJpbmdzaXplKSkKLSAgICAgICAgICAgIGdv
dG8gZG9uZTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSB0cnVlOwotCi1kb25lOgotICAgIGZyZWUo
b3V0c3RyaW5nKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBib29sCi1hZGp1
c3RYZW5UaW1lVG9VVEMoRklMRVRJTUUgKm5vdykKLXsKLSAgICBEV09SRCAgICAgICAgICAgZHd0
aW1lb2Zmc2V0OwotICAgIGxvbmcgICAgICAgICAgICB0aW1lb2Zmc2V0OwotICAgIGNoYXIgICAg
ICAgICAgICAqdm07Ci0gICAgY2hhciAgICAgICAgICAgICpydGNrZXk7Ci0gICAgTEFSR0VfSU5U
RUdFUiAgIGxvbmdvZmZzZXQ7Ci0gICAgVUxBUkdFX0lOVEVHRVIgIGxvbmdub3c7Ci0gICAgc2l6
ZV90ICAgICAgICAgIHZtbGVuOwotICAgIAotICAgIC8vIFhlblRpbWUgaXMgYXNzdW1lZCB0byBi
ZSBpbiBVVEMsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIGFueQotICAgIC8vIG9mZnNldHMgdGhhdCBh
cmUgYXBwbGllZCB0byBpdAotCi0gICAgX190cnkgewotICAgICAgICB2bWxlbiA9IFhlbnN0b3Jl
UmVhZCgidm0iLCAmdm0pOwotICAgICAgICBpZiAodm1sZW4gPD0gMCkKLSAgICAgICAgICAgIGdv
dG8gZmFpbF9yZWFkdm07Ci0gICAgfQotICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hB
TkRMRVIpCi0gICAgewotICAgICAgICBnb3RvIGZhaWxfcmVhZHZtOwotICAgIH0KLQotICAgIHJ0
Y2tleSA9IFByaW50ZlN0cmluZygiJXMvcnRjL3RpbWVvZmZzZXQiLCB2bSk7Ci0gICAgaWYgKHJ0
Y2tleSA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWxfcnRja2V5OwotCi0gICAgX3RyeSB7Ci0g
ICAgICAgIEJPT0wgcnRjcmVhZHdvcmtlZDsKLSAgICAgICAgX190cnkgewotICAgICAgICAgICAg
cnRjcmVhZHdvcmtlZCA9IFhlbnN0b3JlUmVhZER3b3JkKHJ0Y2tleSwgJmR3dGltZW9mZnNldCk7
Ci0gICAgICAgIH0KLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikg
ewotICAgICAgICAgICAgcnRjcmVhZHdvcmtlZCA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IGlmICghcnRjcmVhZHdvcmtlZCkgewotICAgICAgICAgICAgaWYgKCFYZW5zdG9yZVJlYWREd29y
ZCgicGxhdGZvcm0vdGltZW9mZnNldCIsICZkd3RpbWVvZmZzZXQpKQotICAgICAgICAgICAgICAg
IGdvdG8gZmFpbF9wbGF0Zm9ybXRpbWVvZmZzZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgX19l
eGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikKLSAgICB7Ci0gICAgICAgIGdvdG8gZmFp
bF9wbGF0Zm9ybXRpbWVvZmZzZXQ7Ci0gICAgfQotICAgIHRpbWVvZmZzZXQgPSAobG9uZylkd3Rp
bWVvZmZzZXQ7Ci0KLSAgICAvL0NvbnZlcnQgb2Zmc2V0IGZyb20gc2Vjb25kcyB0byBuYW5vc2Vj
b25kcwotICAgIGxvbmdvZmZzZXQuUXVhZFBhcnQgPSAgKExPTkdMT05HKXRpbWVvZmZzZXQ7Ci0g
ICAgbG9uZ29mZnNldC5RdWFkUGFydCA9IGxvbmdvZmZzZXQuUXVhZFBhcnQgKiAxMDAwMDAwMDsK
LSAgICAKLSAgICAvLyBTdWJ0cmFjdCBuYW5vc2Vjb25kIHRpbWVvZmZzZXQgZnJvbSBub3cKLSAg
ICBsb25nbm93Lkxvd1BhcnQgPSBub3ctPmR3TG93RGF0ZVRpbWU7Ci0gICAgbG9uZ25vdy5IaWdo
UGFydCA9IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7Ci0gICAgbG9uZ25vdy5RdWFkUGFydCAtPSBsb25n
b2Zmc2V0LlF1YWRQYXJ0OwotICAgIG5vdy0+ZHdMb3dEYXRlVGltZSA9IGxvbmdub3cuTG93UGFy
dDsKLSAgICBub3ctPmR3SGlnaERhdGVUaW1lID0gbG9uZ25vdy5IaWdoUGFydDsKLQotICAgIEZy
ZWVTdHJpbmcocnRja2V5KTsKLSAgICBYc0ZyZWUodm0pOwotICAgIHJldHVybiB0cnVlOwotCi1m
YWlsX3BsYXRmb3JtdGltZW9mZnNldDoKLSAgICBYc0xvZygiJXM6IFJlYWQgcGxhdGZvcm0gdGlt
ZSBvZmZzZXQiLCBfX0ZVTkNUSU9OX18pOwotICAgIEZyZWVTdHJpbmcocnRja2V5KTsKLQotZmFp
bF9ydGNrZXk6Ci0gICAgWHNMb2coIiVzOiBSZWFkIFJUQyBLZXkiLCBfX0ZVTkNUSU9OX18pOwot
ICAgIFhzRnJlZSh2bSk7Ci0KLWZhaWxfcmVhZHZtOgotICAgIFhzTG9nKCIlczogUmVhZCBWTSBL
ZXkiLCBfX0ZVTkNUSU9OX18pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGJvb2wg
aG9zdHRpbWVJc1VUQygpCi17Ci0gICAgSEtFWSAgICAgICAgSW5zdGFsbFJlZ0tleTsKLSAgICBi
b29sICAgICAgICB1dGMgPSBmYWxzZTsKLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxf
TUFDSElORSwgCi0gICAgICAgICAgICAgICAgICAgICBYRU5UT09MU19JTlNUQUxMX1JFR19LRVks
Ci0gICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9B
Q0NFU1MsCi0gICAgICAgICAgICAgICAgICAgICAmSW5zdGFsbFJlZ0tleSkgIT0gRVJST1JfU1VD
Q0VTUykKLSAgICAgICAgZ290byBmYWlsX3JlZ2lzdHJ5a2V5OwotICAgIAotI2lmZGVmIF9XSU42
NAotICAgIAotICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJIb3N0
VGltZSIsICJVVEMiLCBmYWxzZSkpIAotICAgIHsKLSAgICAgICAgIHV0YyA9IHRydWU7Ci0gICAg
ICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgUmVnQ2xvc2VLZXkoSW5zdGFsbFJlZ0tleSk7
Ci0gICAgaWYgKFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIAotICAgICAgICAgICAg
ICAgICAgICAgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZNjQsCi0gICAgICAgICAgICAgICAgICAg
ICAwLAotICAgICAgICAgICAgICAgICAgICAgS0VZX0FMTF9BQ0NFU1MsCi0gICAgICAgICAgICAg
ICAgICAgICAmSW5zdGFsbFJlZ0tleSkgIT0gRVJST1JfU1VDQ0VTUykKLSAgICAgICAgZ290byBm
YWlsX3JlZ2lzdHJ5a2V5OwotCi0jZW5kaWYgCi0KLSAgICBpZiAocmVnaXN0cnlNYXRjaFN0cmlu
ZyhJbnN0YWxsUmVnS2V5LCAiSG9zdFRpbWUiLCAiVVRDIiwgZmFsc2UpKSAKLSAgICB7Ci0gICAg
ICAgIHV0Yz10cnVlOwotICAgIH0KLQotI2lmZGVmIF9XSU42NAotZG9uZToKLSNlbmRpZiAKLSAg
ICBSZWdDbG9zZUtleShJbnN0YWxsUmVnS2V5KTsKLSAgICByZXR1cm4gdXRjOwotCi1mYWlsX3Jl
Z2lzdHJ5a2V5OiAgICAKLSAgICBYc0xvZygiJXM6IE9wZW4gUmVnaXN0cnkgS2V5IiwgX19GVU5D
VElPTl9fKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIHZvaWQKLXNldFRpbWVU
b1hlblRpbWUodm9pZCkKLXsKLSAgICBGSUxFVElNRSAgICBub3cgPSB7MH07Ci0gICAgU1lTVEVN
VElNRSAgc3lzX3RpbWU7Ci0gICAgU1lTVEVNVElNRSAgY3VycmVudF90aW1lOwotICAgIGJvb2wg
ICAgICAgIHV0Yz1mYWxzZTsKLSAgICBYc0xvZygiU2V0IHRpbWUgdG8gWGVuVGltZSIpOwotCi0g
ICAgR2V0WGVuVGltZSgmbm93KTsKLSAgICBpZiAoKG5vdy5kd0xvd0RhdGVUaW1lID09IDApICYm
IChub3cuZHdIaWdoRGF0ZVRpbWUgPT0gMCkpIHsKLSAgICAgICAgWHNMb2coIkNhbm5vdCBzZXQg
c3lzdGVtIHRpbWUgdG8geGVudGltZSwgdW5hYmxlIHRvIGNvbnRhY3QgV01JIik7Ci0gICAgICAg
IGdvdG8gZmFpbF9yZWFkdGltZTsKLSAgICB9Ci0KLSAgICB1dGMgPSBob3N0dGltZUlzVVRDKCk7
Ci0KLSAgICBpZiAodXRjKSB7Ci0gICAgICAgIFhzTG9nKCJUcnkgVVRDIik7Ci0gICAgICAgIGlm
ICghYWRqdXN0WGVuVGltZVRvVVRDKCZub3cpKQotICAgICAgICAgICAgZ290byBmYWlsX2FkanVz
dHRpbWU7Ci0gICAgfQotCi0gICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgmbm93LCAmc3lz
X3RpbWUpKSB7Ci0gICAgICAgIFhzTG9nKCJHb3VsZCBub3QgY29udmVydCBmaWxlIHRpbWUgdG8g
c3lzdGVtIHRpbWUiKTsKLSAgICAgICAgUHJpbnRFcnJvcigiRmlsZVRpbWVUb1N5c3RlbVRpbWUo
KSIpOwotICAgICAgICBEQkdQUklOVCgoIkZpbGVUaW1lVG9TeXN0ZW1UaW1lKCV4LiV4KVxuIiwK
LSAgICAgICAgICAgICAgICAgIG5vdy5kd0xvd0RhdGVUaW1lLCBub3cuZHdIaWdoRGF0ZVRpbWUp
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBHZXRMb2NhbFRpbWUoJmN1cnJlbnRfdGltZSk7Ci0g
ICAgICAgIFhzTG9nKCJUaW1lIGlzIG5vdyAgJWQuJWQuJWQgJWQ6JWQ6JWQuJWQiLAotICAgICAg
ICAgICAgICBjdXJyZW50X3RpbWUud1llYXIsIGN1cnJlbnRfdGltZS53TW9udGgsIGN1cnJlbnRf
dGltZS53RGF5LAotICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud0hvdXIsIGN1cnJlbnRfdGlt
ZS53TWludXRlLCBjdXJyZW50X3RpbWUud1NlY29uZCwKLSAgICAgICAgICAgICAgY3VycmVudF90
aW1lLndNaWxsaXNlY29uZHMpOwotICAgICAgICBYc0xvZygiU2V0IHRpbWUgdG8gJWQuJWQuJWQg
JWQ6JWQ6JWQuJWQiLAotICAgICAgICAgICAgICBzeXNfdGltZS53WWVhciwgc3lzX3RpbWUud01v
bnRoLCBzeXNfdGltZS53RGF5LAotICAgICAgICAgICAgICBzeXNfdGltZS53SG91ciwgc3lzX3Rp
bWUud01pbnV0ZSwgc3lzX3RpbWUud1NlY29uZCwKLSAgICAgICAgICAgICAgc3lzX3RpbWUud01p
bGxpc2Vjb25kcyk7Ci0gICAgICAgIGlmICh1dGMpIHsKLSAgICAgICAgICAgIGlmICghU2V0U3lz
dGVtVGltZSgmc3lzX3RpbWUpKQotICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3Rl
bVRpbWUoKSIpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKCFT
ZXRMb2NhbFRpbWUoJnN5c190aW1lKSkKLSAgICAgICAgICAgICAgICBQcmludEVycm9yKCJTZXRM
b2NhbFRpbWUoKSIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuOwotCi1mYWlsX2Fk
anVzdHRpbWU6Ci0gICAgWHNMb2coIiVzOiBBZGp1c3QgdGltZSIsIF9fRlVOQ1RJT05fXyk7Ci0K
LWZhaWxfcmVhZHRpbWU6Ci0gICAgWHNMb2coIiVzOiBSZWFkVGltZSIsIF9fRlVOQ1RJT05fXyk7
Ci19Ci0KLS8qIFdlIG5lZWQgdG8gcmVzeW5jIHRoZSBjbG9jayB3aGVuIHdlIHJlY292ZXIgZnJv
bSBzdXNwZW5kL3Jlc3VtZS4gKi8KLXN0YXRpYyB2b2lkCi1maW5pc2hTdXNwZW5kKHZvaWQpCi17
Ci0gICAgREJHUFJJTlQoKCJDb21pbmcgYmFjayBmcm9tIHN1c3BlbmQuXG4iKSk7Ci0gICAgc2V0
VGltZVRvWGVuVGltZSgpOwotfQotCi0KLQotLy8KLS8vIE1haW4gbG9vcAotLy8KLUJPT0wgUnVu
KCkKLXsKLSAgICBib29sIGV4aXQ9ZmFsc2U7Ci0gICAgUENIQVIgcFBWQWRkb25zSW5zdGFsbGVk
ID0gTlVMTDsKLQotICAgIEhBTkRMRSBzdXNwZW5kRXZlbnQ7Ci0KLSAgICBpbnQgY250ciA9IDA7
Ci0gICAgc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0IGZlYXR1cmVzOwotICAgIEJPT0wgc25hcCA9
IEZBTFNFOwotCi0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlRyeWluZyB0byBjb25uZWN0IHRvIFdN
SVxuIik7Ci0gICAgd2hpbGUgKCFDb25uZWN0VG9XTUkoKSkgewotICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVW5hYmxlIHRvIGNvbm5lY3QgdG8gV01JLCBzbGVlcGluZ1xuIik7Ci0gICAgICAg
IGlmIChXYWl0Rm9yU2luZ2xlT2JqZWN0KGhTZXJ2aWNlRXhpdEV2ZW50LCAxMDAwKjEwKSA9PSBX
QUlUX09CSkVDVF8wKSB7Ci0gICAgICAgICAgICBleGl0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBleGl0OwotICAgICAgICB9Ci0gICAgfQotICAgIHdoaWxlIChJbml0WFNBY2Nlc3Nvcigp
PT1mYWxzZSkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiVW5hYmxlIHRvIGluaXRpYWxp
c2UgV01JIHNlc3Npb24sIHNsZWVwaW5nXG4iKTsKLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVP
YmplY3QoaFNlcnZpY2VFeGl0RXZlbnQsIDEwMDAqMTApID09IFdBSVRfT0JKRUNUXzApIHsKLSAg
ICAgICAgICAgIGV4aXQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUgbWFpbiBsb29wIHN0YXJ0aW5n
Iik7Ci0KLSAgICBpZiAoZXZlbnRMb2cgPT0gTlVMTCkKLSAgICAgICAgWHNMb2coIkV2ZW50IGxv
ZyB3YXMgbm90IGluaXRpYWxpc2VkIik7Ci0gICAgCi0gICAgc2V0VGltZVRvWGVuVGltZSgpOwot
Ci0gICAgbWVtc2V0KCZmZWF0dXJlcywgMCwgc2l6ZW9mKGZlYXR1cmVzKSk7Ci0KLSAgICBIQU5E
TEUgd21pZXJyb3JFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBGQUxTRSwgTlVMTCk7
Ci0gICAgaWYgKCF3bWllcnJvckV2ZW50KSB7Ci0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0ZUV2
ZW50KCkgd21pZXJyb3JFdmVudCIpOwotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0gICAK
LQotICAgIFhzTG9nKCJBYm91dCB0byBhZGQgZmVhdHVyZSBzaHV0ZG93biIpOwotICAgIGlmICgh
QWRkRmVhdHVyZSgmZmVhdHVyZXMsICJjb250cm9sL3NodXRkb3duIiwgImNvbnRyb2wvZmVhdHVy
ZS1zaHV0ZG93biIsIAotICAgICAgICAgICAgICAgICAgICAic2h1dGRvd24iLCBtYXliZVJlYm9v
dCwgTlVMTCwgd21pZXJyb3JFdmVudCkpIHsKLSAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgfQot
Ci0gICAgc3VzcGVuZEV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxM
KTsKLSAgICBpZiAoIXN1c3BlbmRFdmVudCkgewotICAgICAgICBQcmludEVycm9yKCJDcmVhdGVF
dmVudCgpIHN1c3BlbmRFdmVudCIpOwotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0gICAg
Ci0gICAgaWYgKExpc3RlblN1c3BlbmQoc3VzcGVuZEV2ZW50LCB3bWllcnJvckV2ZW50KSA8IDAp
IHsKLSAgICAgICAgUHJpbnRFcnJvcigiTGlzdGVuU3VzcGVuZCgpIik7Ci0gICAgICAgIENsb3Nl
SGFuZGxlKHN1c3BlbmRFdmVudCk7Ci0gICAgICAgIHN1c3BlbmRFdmVudCA9IE5VTEw7Ci0gICAg
ICAgIHJldHVybiBleGl0OwotICAgIH0KLQotCi0gICAgWHNMb2coIkFib3V0IHRvIGFkdmVydGlz
ZSBmZWF0dXJlcyIpOwotICAgIEFkdmVydGlzZUZlYXR1cmVzKCZmZWF0dXJlcyk7Ci0gICAgCi0g
ICAgWHNMb2coIkFib3V0IHRvIGtpY2sgeGFwaSAiKTsKLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7
Ci0KLSAgICB3aGlsZSAoMSkKLSAgICB7Ci0gICAgICAgIERXT1JEIHN0YXR1czsKLSAgICAgICAg
aW50IG5yX2hhbmRsZXMgPSAxOwotICAgICAgICBIQU5ETEUgaGFuZGxlc1szICsgTUFYX0ZFQVRV
UkVTXTsKLSAgICAgICAgdW5zaWduZWQgeDsKLQotICAgICAgICBoYW5kbGVzWzBdID0gaFNlcnZp
Y2VFeGl0RXZlbnQ7Ci0gICAgICAgIGlmICh3bWllcnJvckV2ZW50KQotICAgICAgICAgICAgaGFu
ZGxlc1tucl9oYW5kbGVzKytdID0gd21pZXJyb3JFdmVudDsKLSAgICAgICAgaWYgKHN1c3BlbmRF
dmVudCkKLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFuZGxlcysrXSA9IHN1c3BlbmRFdmVudDsK
LSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1cmVzLm5yX2ZlYXR1cmVzOyB4KyspCi0gICAg
ICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMrK10gPSBmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRj
aC0+ZXZlbnQ7Ci0KLSAgICAgICAgWHNMb2coIndpbiBhZ2VudCBnb2luZyB0byBzbGVlcCIpOwot
ICAgICAgICBzdGF0dXMgPSBXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKG5yX2hhbmRsZXMsIGhhbmRs
ZXMsIEZBTFNFLCBJTkZJTklURSk7Ci0gICAgICAgIFhzTG9nKCJ3aW4gYWdlbnQgd29rZSB1cCBm
b3IgJWQiLCBzdGF0dXMpOwotCi0gICAgICAgIC8qIFdBSVRfT0JKRUNUXzAgaGFwcGVucyB0byBi
ZSAwLCBzbyB0aGUgY29tcGlsZXIgZ2V0cyBzaGlydHkKLSAgICAgICAgICAgYWJvdXQgc3RhdHVz
ID49IFdBSVRfT0JKRUNUXzAgKHNpbmNlIHN0YXR1cyBpcyB1bnNpZ25lZCkuCi0gICAgICAgICAg
IFRoaXMgaXMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdCB0aGFuIHRoZSBjb21waWxlci1mcmllbmRs
eQotICAgICAgICAgICB2ZXJzaW9uLCB0aG91Z2gsIHNvIGp1c3QgZGlzYWJsZSB0aGUgd2Fybmlu
Zy4gKi8KLQotI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0Mjk2KQotICAgICAgICBpZiAoc3Rh
dHVzID49IFdBSVRfT0JKRUNUXzAgJiYKLSAgICAgICAgICAgIHN0YXR1cyA8IFdBSVRfT0JKRUNU
XzAgKyBucl9oYW5kbGVzKQotI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiA0Mjk2KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBIQU5ETEUgZXZlbnQgPSBoYW5kbGVzW3N0YXR1cyAtIFdBSVRfT0JK
RUNUXzBdOwotICAgICAgICAgICAgaWYgKGV2ZW50ID09IGhTZXJ2aWNlRXhpdEV2ZW50KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIFhzTG9nKCJzZXJ2aWNlIGV4aXQgZXZlbnQiKTsK
LSAgICAgICAgICAgICAgICBleGl0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IHN1c3BlbmRFdmVudCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIVJlcG9ydEV2ZW50KGV2ZW50TG9n
LCBFVkVOVExPR19TVUNDRVNTLCAwLCBFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVELCBOVUxMLCAw
LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIFhzTG9nKCJDYW5ub3Qgc2VuZCB0byBldmVudCBsb2cgJXgiLEdldExhc3RF
cnJvcigpKTsgICAgCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFhzTG9nKCJT
dXNwZW5kIGV2ZW50Iik7Ci0gICAgICAgICAgICAgICAgZmluaXNoU3VzcGVuZCgpOwotICAgICAg
ICAgICAgICAgIEFkdmVydGlzZUZlYXR1cmVzKCZmZWF0dXJlcyk7Ci0gICAgICAgICAgICAgICAg
WGVuc3RvcmVLaWNrWGFwaSgpOwotICAgICAgICAgICAgICAgIFhzTG9nKCJIYW5kbGVkIHN1c3Bl
bmQgZXZlbnQiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09
IHdtaWVycm9yRXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUmVwb3J0RXZl
bnQoZXZlbnRMb2csIEVWRU5UTE9HX1NVQ0NFU1MsIDAsIEVWRU5UX1hFTlVTRVJfV01JLCBOVUxM
LCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEJPT0wgZmFpbCA9IGZhbHNlOwotICAgICAgICAgICAg
ICAgIGZvciAoeCA9IDA7IHggPCBmZWF0dXJlcy5ucl9mZWF0dXJlczsgeCsrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRjaC0+ZXZlbnQgPT0gZXZl
bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJGaXJlICVwIixmZWF0dXJlcy5m
ZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJmaXJlIGZl
YXR1cmUgJXMiLCBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFdmVudCB0cmlnZ2VyZWRcbiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCEoZmVhdHVyZXMuZmVhdHVyZXNbeF0uaGFuZGxlcihmZWF0dXJl
cy5mZWF0dXJlc1t4XS5jdHgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYc0xvZygiRmlyaW5nIGZlYXR1cmUgZmFpbGVkIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiRmVhdHVyZSBmYWlsZWQiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJmaXJlZCBmZWF0dXJlICVz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMuZmVhdHVyZXNbeF0u
bmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgaWYgKGZhaWwpIHsKLSAgICAgICAgICAgICAgICAgICAgWHNMb2coIlJlc2V0dGlu
ZyIpOwotICAgICAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0df
U1VDQ0VTUywgMCwgRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVELCBOVUxMLCAwLCAwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgUHJpbnRFcnJvcigiV2FpdEZvck11
bHRpcGxlT2JqZWN0cygpIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0K
LSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01JIFdhdGNoIGxvb3AgdGVybWluYXRlZFxuIik7Ci0g
ICAgUmVtb3ZlRmVhdHVyZXMoJmZlYXR1cmVzKTsKLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7Ci0K
LSAgICBYc0xvZygiR3Vlc3QgYWdlbnQgbGl0ZSBsb29wIGZpbmlzaGluZyIpOwotICAgIFJlbGVh
c2VXTUlBY2Nlc3Nvcigmd21pKTsKLQotCi0gIAotCi0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxp
dGUgbG9vcCBmaW5pc2hlZCAlZCIsIGV4aXQpOwotICAgIHJldHVybiBleGl0OwotfQotCi0KLS8v
IFNlcnZpY2UgaW5pdGlhbGl6YXRpb24KLWJvb2wgU2VydmljZUluaXQoKQotewotICAgIFNlcnZp
Y2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKLSAgICBTZXJ2
aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAK
LSAgICBTZXJ2aWNlU3RhdHVzLmR3Q29udHJvbHNBY2NlcHRlZCAgID0KLSAgICAgICAgU0VSVklD
RV9BQ0NFUFRfU1RPUCB8IFNFUlZJQ0VfQUNDRVBUX1NIVVRET1dOIHwKLSAgICAgICAgU0VSVklD
RV9BQ0NFUFRfU0VTU0lPTkNIQU5HRTsKLSAgICBTZXJ2aWNlU3RhdHVzLmR3V2luMzJFeGl0Q29k
ZSAgICAgID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2Rl
ID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7IAotICAg
IFNlcnZpY2VTdGF0dXMuZHdXYWl0SGludCAgICAgICAgICAgPSAwOyAKLSAKLSAgICBoU3RhdHVz
ID0gUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeCgKLSAgICAgICAgIlhlblNlcnZpY2UiLCAK
LSAgICAgICAgU2VydmljZUNvbnRyb2xIYW5kbGVyLAotICAgICAgICBOVUxMKTsKLSAgICBpZiAo
aFN0YXR1cyA9PSAoU0VSVklDRV9TVEFUVVNfSEFORExFKTApIAotICAgIHsgCi0gICAgICAgIC8v
IFJlZ2lzdGVyaW5nIENvbnRyb2wgSGFuZGxlciBmYWlsZWQKLSAgICAgICAgREJHUFJJTlQoKCJY
ZW5TdmM6IFJlZ2lzdGVyaW5nIHNlcnZpY2UgY29udHJvbCBoYW5kbGVyIGZhaWxlZCAtICVkXG4i
LCBHZXRMYXN0RXJyb3IoKSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7IAotICAgIH0gIAotCi0g
ICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0ZSA9IFNFUlZJQ0VfUlVOTklORzsgCi0gICAg
U2V0U2VydmljZVN0YXR1cyAoaFN0YXR1cywgJlNlcnZpY2VTdGF0dXMpOwotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgV0lOQVBJIFNlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKLXsKLSAgICAvLyBQZXJmb3JtIGNvbW1vbiBpbml0aWFsaXphdGlvbgotICAgIGV2ZW50TG9n
ID0gUmVnaXN0ZXJFdmVudFNvdXJjZShOVUxMLCAieGVuc3ZjIik7Ci0gICAgaFNlcnZpY2VFeGl0
RXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBmYWxzZSwgZmFsc2UsIE5VTEwpOwotICAgIGlmICho
U2VydmljZUV4aXRFdmVudCA9PSBOVUxMKQotICAgIHsKLSAgICAgICAgREJHUFJJTlQoKCJYZW5T
dmM6IFVuYWJsZSB0byBjcmVhdGUgdGhlIGV2ZW50IG9iaiAtICVkXG4iLCBHZXRMYXN0RXJyb3Io
KSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFTZXJ2aWNlSW5pdCgpKQot
ICAgIHsKLSAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IFVuYWJsZSB0byBpbml0IHhlbnNlcnZp
Y2VcbiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBCT09MIHN0b3BwaW5nOwotCi0g
ICAgZG8gewotICAgICAgICAKLSAgICAgICAgX190cnkKLSAgICAgICAgewotICAgICAgICAgICAg
c3RvcHBpbmcgPSBSdW4oKTsKLSAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgICAgIF9fZXhj
ZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIF9f
dHJ5IHsKLSAgICAgICAgICAgICAgICBYc0xvZygiRXhjZXB0aW9uIGhpdCAleCIsIEdldEV4Y2Vw
dGlvbkNvZGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBfX2V4Y2VwdChFWENFUFRJ
T05fRVhFQ1VURV9IQU5ETEVSKQotICAgICAgICAgICAgewotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RvcHBpbmcgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0gd2hpbGUgKCFzdG9wcGlu
Zyk7Ci0gICAgCi0gICAgWHNMb2coIkd1ZXN0IGFnZW50IHNlcnZpY2Ugc3RvcHBlZCIpOwotICAg
IFNodXRkb3duWFNBY2Nlc3NvcigpOwotICAgIERlcmVnaXN0ZXJFdmVudFNvdXJjZShldmVudExv
Zyk7Ci0gICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfU1RPUFBFRCk7
Ci0gICAgcmV0dXJuOwotfQotCi12b2lkIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZShEV09S
RCBkd0V4aXRDb2RlLCBEV09SRCBkd1N0YXRlKQotewotICAgIFNlcnZpY2VTdGF0dXMuZHdXaW4z
MkV4aXRDb2RlID0gZHdFeGl0Q29kZTsgCi0gICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSAgPSBkd1N0YXRlOyAKLSAgICBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVzLCAmU2VydmljZVN0
YXR1cyk7Ci19Ci0KLS8vIFNlcnZpY2UgY29udHJvbCBoYW5kbGVyIGZ1bmN0aW9uCi1zdGF0aWMg
RFdPUkQgV0lOQVBJIFNlcnZpY2VDb250cm9sSGFuZGxlcihEV09SRCByZXF1ZXN0LCBEV09SRCBl
dnRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFBWT0lE
IGV2ZW50RGF0YSwgTFBWT0lEIGN0eHQpCi17Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihj
dHh0KTsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGV2ZW50RGF0YSk7Ci0KLSAgICBzd2l0
Y2gocmVxdWVzdCkgCi0gICAgeyAKLSAgICAgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDog
Ci0gICAgICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogeGVuc2VydmljZSBzdG9wcGVkLlxuIikp
OwotICAgICAgICAgICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfU1RP
UF9QRU5ESU5HKTsKLSAgICAgICAgICAgIFNldEV2ZW50KGhTZXJ2aWNlRXhpdEV2ZW50KTsKLSAg
ICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAKLSAgICAgICAgY2FzZSBTRVJWSUNFX0NPTlRS
T0xfU0hVVERPV046IAotICAgICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHhlbnNlcnZpY2Ug
c2h1dGRvd24uXG4iKSk7Ci0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUo
MCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOwotICAgICAgICAgICAgU2V0RXZlbnQoaFNlcnZpY2VF
eGl0RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmtub3duIHJlcXVlc3QuIikpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgfSAKLQotICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0
ZSgwLCBTRVJWSUNFX1JVTk5JTkcpOwotICAgIHJldHVybiBFUlJPUl9DQUxMX05PVF9JTVBMRU1F
TlRFRDsKLX0KZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oIGIvc3Jj
L3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMyZWUxNjMuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBfWFNFUlZJQ0VfSAotI2RlZmluZSBfWFNFUlZJQ0VfSAotCi0jaW5jbHVkZSA8dmVy
c2lvbi5oPgotCi0jZGVmaW5lIFNWQ19OQU1FICJ4ZW5zdmMiCi0jZGVmaW5lIFNWQ19ESVNQTEFZ
TkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZhY2UgU2VydmljZSIKLSNkZWZpbmUgU1ZD
X0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJpb3VzIG1ldHJpY3MgdG8gWGVuU3RvcmUi
Ci0KLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jKTsKLXZvaWQgUHJpbnRFcnJvcihj
b25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpOwotdm9pZCBTdGFydENsaXBib2FyZFN5bmModm9p
ZCk7Ci12b2lkIEZpbmlzaENsaXBib2FyZFN5bmModm9pZCk7Ci12b2lkIENsaXBib2FyZENvbnNv
bGVDaGFuZ2VkKHZvaWQpOwotCi12b2lkIFhzRHVtcExvZ1RoaXNUaHJlYWQodm9pZCk7Ci12b2lk
IFhzSW5pdFBlclRocmVhZExvZ2dpbmcodm9pZCk7Ci12b2lkIFhzTG9nTXNnKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKTsKLXZvaWQgRG9Wb2x1bWVEdW1wKHZvaWQpOwotCi12b2lkIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoTFBDVFNUUiBuYW1lKTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvd2lu
MzJzdHViYWdlbnQvZXJyb3JzLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWY0N2NjLi4wMDAwMDAwCi0tLSBhL3NyYy93
aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAK
LS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCAKLSAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgCi0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoK
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAq
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIAotICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKiBCbGFjay1ib3ggZGF0YSByZWNvcmRlci4g
IFRoaXMgcmVjb3JkcyBzdHVmZiB3aGljaCBpcyBoYXBwZW5pbmcKLSAgIHdoaWxlIHRoZSBhZ2Vu
dCBydW5zLCBhbmQgdHJpZXMgdG8gcHVzaCBpdCBvdXQgdG8gZG9tMCBzeXNsb2cgaWYgd2UKLSAg
IGNyYXNoLiAqLwotI2luY2x1ZGUgInN0ZGFmeC5oIgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNp
bmNsdWRlIDxzdGRhcmcuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgIlhTZXJ2aWNlLmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotCi0KLSNk
ZWZpbmUgUklOR19TSVpFIDgxOTIKLQotc3RydWN0IG1lc3NhZ2VfcmluZyB7Ci0gICAgSEFORExF
IGhhbmRsZTsKLSAgICB1bnNpZ25lZCBwcm9kX2lkeDsKLSAgICB1bnNpZ25lZCBjb25zX2lkeDsK
LSAgICB1bnNpZ25lZCBjaGFyIHBheWxvYWRbUklOR19TSVpFXTsKLX07Ci0KLXN0YXRpYyBfX2Rl
Y2xzcGVjKHRocmVhZCkgc3RydWN0IG1lc3NhZ2VfcmluZyBtZXNzYWdlX3Jpbmc7Ci0KLXN0YXRp
YyBjaGFyICoKLVhzdmFzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQotewot
ICAgIGNoYXIgKndvcms7Ci0gICAgaW50IHdvcmtfc2l6ZTsKLSAgICBpbnQgcjsKLQotICAgIHdv
cmtfc2l6ZSA9IDMyOwotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIHdvcmsgPSAoY2hhciAqKW1h
bGxvYyh3b3JrX3NpemUpOwotICAgICAgICBpZiAoIXdvcmspCi0gICAgICAgICAgICByZXR1cm4g
d29yazsKLSAgICAgICAgciA9IF92c25wcmludGYod29yaywgd29ya19zaXplLCBmbXQsIGFyZ3Mp
OwotICAgICAgICBpZiAociA9PSAwKSB7Ci0gICAgICAgICAgICBmcmVlKHdvcmspOwotICAgICAg
ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHIgIT0gLTEgJiYgciA8
IHdvcmtfc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIHdvcms7Ci0gICAgICAgIH0KLSAgICAg
ICAgZnJlZSh3b3JrKTsKLSAgICAgICAgd29ya19zaXplICo9IDI7Ci0gICAgfQotfQotCi1zdGF0
aWMgY2hhciAqCi1Yc2FzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewotICAgIHZhX2xp
c3QgYXJnczsKLSAgICBjaGFyICpyZXM7Ci0KLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOwotICAg
IHJlcyA9IFhzdmFzcHJpbnRmKGZtdCwgYXJncyk7Ci0gICAgdmFfZW5kKGFyZ3MpOwotICAgIHJl
dHVybiByZXM7Ci19Ci0KLXZvaWQKLVhzTG9nTXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotewot
ICAgIHZhX2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0gICAgWHNMb2co
Zm10LCBhcmdzKTsKLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dp
bjMyc3R1YmFnZW50L21lc3NhZ2VzLm1jIGIvc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2VzLm1j
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjg5YzQ0Li4wMDAwMDAwCi0tLSBhL3Ny
Yy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYworKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAg
QEAKLVNldmVyaXR5TmFtZXM9KEluZm9ybWF0aW9uYWw9MHgxKQotRmFjaWxpdHlOYW1lcz0oWGVu
VXNlcj0weGQ2MCkKLQotTWVzc2FnZUlkPTB4MDAwMQotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUE9XRVJPRkYKLUxh
bmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gc2h1
dCBpdHNlbGYgZG93bi4KLS4KLQotTWVzc2FnZUlkPTB4MDAwMgotRmFjaWxpdHk9WGVuVXNlcgot
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUkVCT09U
Ci1MYW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZN
IHJlYm9vdC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwMwotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfSElCRVJOQVRFCi1M
YW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGhp
YmVybmF0ZSBpdHNlbGYuCi0uCi0KLU1lc3NhZ2VJZD0weDAwMDQKLUZhY2lsaXR5PVhlblVzZXIK
LVNldmVyaXR5PUluZm9ybWF0aW9uYWwKLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1MzCi1M
YW5ndWFnZT1FbmdsaXNoCi1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGVu
dGVyIHBvd2VyIHN0YXRlIFMzLgotLgotCi1NZXNzYWdlSWQ9MHgwMDA1Ci1GYWNpbGl0eT1YZW5V
c2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9X
TUkKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyBub3RpY2VkIHRoYXQgV01JIGJlY2FtZSBu
b24tZnVuY3Rpb25hbC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwNgotRmFjaWxpdHk9WGVuVXNlcgot
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfU1RBUlRF
RAotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xzIGluaXRpYXRlZC4KLS4KLQotTWVzc2FnZUlk
PTB4MDAwNwotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAotU3ltYm9s
aWNOYW1lPUVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0
b29scyByZXR1cm5lZCBmcm9tIHN1c3BlbmQuCi0uCi0KLU1lc3NhZ2VJZD0weDAwMDgKLUZhY2ls
aXR5PVhlblVzZXIKLVNldmVyaXR5PUluZm9ybWF0aW9uYWwKLVN5bWJvbGljTmFtZT1FVkVOVF9Y
RU5VU0VSX1VORVhQRUNURUQKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29scyBleHBlcmllbmNl
ZCBhbiB1bmV4cGVjdGVkIGVycm9yLgotLgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5jcHAgYi9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzJjZWQ3OS4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdl
bnQvc3RkYWZ4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0vLyBzdGRhZnguY3BwIDogc291cmNlIGZpbGUgdGhhdCBpbmNsdWRl
cyBqdXN0IHRoZSBzdGFuZGFyZCBpbmNsdWRlcwotLy8gWGVuU2VydmljZS5wY2ggd2lsbCBiZSB0
aGUgcHJlLWNvbXBpbGVkIGhlYWRlcgotLy8gc3RkYWZ4Lm9iaiB3aWxsIGNvbnRhaW4gdGhlIHBy
ZS1jb21waWxlZCB0eXBlIGluZm9ybWF0aW9uCi0KLSNpbmNsdWRlICJzdGRhZnguaCIKLQotLy8g
VE9ETzogcmVmZXJlbmNlIGFueSBhZGRpdGlvbmFsIGhlYWRlcnMgeW91IG5lZWQgaW4gU1REQUZY
LkgKLS8vIGFuZCBub3QgaW4gdGhpcyBmaWxlCmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdl
bnQvc3RkYWZ4LmggYi9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM5MWE4NDguLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyogQ29weXJpZ2h0IChj
KSBDaXRyaXggU3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0
aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1Ig
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFN
QUdFLgotICovCi0KLS8vIHN0ZGFmeC5oIDogaW5jbHVkZSBmaWxlIGZvciBzdGFuZGFyZCBzeXN0
ZW0gaW5jbHVkZSBmaWxlcywKLS8vIG9yIHByb2plY3Qgc3BlY2lmaWMgaW5jbHVkZSBmaWxlcyB0
aGF0IGFyZSB1c2VkIGZyZXF1ZW50bHksIGJ1dAotLy8gYXJlIGNoYW5nZWQgaW5mcmVxdWVudGx5
Ci0vLwotCi0jcHJhZ21hIG9uY2UKLQotCi0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0jaW5jbHVkZSA8
dGNoYXIuaD4KLQotLy8gVE9ETzogcmVmZXJlbmNlIGFkZGl0aW9uYWwgaGVhZGVycyB5b3VyIHBy
b2dyYW0gcmVxdWlyZXMgaGVyZQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhh
Z2VudC5yYyBiL3NyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc4ZTVjYzcuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50
L3czMnhhZ2VudC5yYworKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKLSAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCi0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAotICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKLSAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKLSAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAotICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0g
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8bnR2ZXJw
Lmg+Ci0KLSN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCi0jdW5kZWYgVkVSX1BST0RVQ1ROQU1F
X1NUUgotI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgotI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lP
Tl9TVFIKLQotI2luY2x1ZGUgPHZlcnNpb24uaD4KLQotI2RlZmluZSBWRVJfQ09NUEFOWU5BTUVf
U1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCi0jZGVmaW5lIFZFUl9MRUdBTENPUFlSSUdIVF9T
VFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuIgotCi0jZGVmaW5lIFZF
Ul9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0UiCi0jZGVmaW5lIFZFUl9QUk9EVUNU
VkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9SX1ZFUlNJT04sTUlDUk9fVkVSU0lP
TixCVUlMRF9OVU1CRVIKLSNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUiAgICAgIE1BSk9S
X1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVSU0lPTl9TVFIg
Ii4iIEJVSUxEX05VTUJFUl9TVFIKLQotI2RlZmluZSBWRVJfSU5URVJOQUxOQU1FX1NUUiAJICAg
ICJ3MzJ4YWdlbnQuZXhlIgotI2RlZmluZSBWRVJfRklMRVZFUlNJT05fU1RSIAkgICAgIjEuMCIK
LSNkZWZpbmUgVkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJ3MzJhZ2VudCIKLSNkZWZpbmUg
VkVSX09SSUdJTkFMRklMRU5BTUVfU1RSICAgICJ3MzJ4YWdlbnQuZXhlIgotI2RlZmluZSBWRVJf
RklMRVRZUEUgVkZUX0FQUAotI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMAotCi14ZW5faWNvbiBJ
Q09OICJ4ZW4uaWNvIgotCi0jaW5jbHVkZSAiY29tbW9uLnZlciIKLSNpbmNsdWRlICJtZXNzYWdl
cy5yYyIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvd2luMzJz
dHViYWdlbnQveGVuLmljbyBiL3NyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NDRjOTkzYmEyOTBlNTA1NWE4OTAwY2E4Nzg2ZWEwZTAzMTEz
OGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI1MjE0CnpjbWVIdjMwemdoYH1l
UmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQJTYmS1lsKipGSzU+M1NvMT5FO0ZfWFQkfQp6dl8j
eXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4cntEWCZ8SWZlQ0AwcG9yb145NE1YVUAzQFZKN1RF
WHM4cCUKem1TVFhsNU9ha1BJLVFjZ1Y9bHhxcmEzdCZgOUwhdlpyS1V1N3RDKWYpO0l7XlAhOVpS
LWQyZDY/JS1HUTFGVkYyCnooXnVveWk4Y08wOTFZTztJblI3VVRXUzB7Rn5DeFklNU1yMCRVZCtN
KFNyZk01S0AmJHJqME1EVCojRXZSMytqbwp6Q21FP0NII2U2SE5kNlpATkhPPnlOVnhvRXVvKmtI
NnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RHfUxJblV1N3wKeiNGaG1HaUhYVCtoN3ZYdDZBUDQo
bXBHfGRsVENfN0UtMSlMRjRtTVhrIyVTeFBwYD93a2p6RmpPJEomWmwkV2ZTCnpIZXVIYippNihe
dDh0IzlENWEkZHkrQTR8cCs7M3lMSmVEbnFMaH1XeFY+cEFsJT1aKUN9UT1YS1Z+dSo1V0BofQp6
WGFhZ1ZFMFhGfTBZcD41dWhGSFpzZTFOZXgrSkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3Eq
V3VqdGRydFIKekRmRShoNm47JTBkQVFiV1UjZjxzMSUxN2dDZXdSVk9xY0FeQ2tQYk5RUChGKiEq
WVFzVD8oKklPamp4Xyl2eTlwCnpsaUR3ZSloQTM+eTlqajZRQmMoWUhCNGAqPCtWNmI0amBATkde
KkBnRE5zejJEWEZGdU1UIzJzdzBLczRVbU1TKwp6bU5qLTNGbSRQU3pLRjhzN2ktYz83fGxvNFJR
bWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNlPkJ3OzR3JDNuem0Kempkfj02SHt3RGU5MSo3cVZT
JCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4jYVYkNmdAXyVDPDZQdXpnd1d6dDxTbHMzCnp7RUhhSHlk
VyMjSWRMakRVTy08aV96ZTZnTUJjenAmNDFIK1k0ejNXJnJLbFBMKkc4RU5WYj5PZXAtOHkrUC1S
Zwp6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwzfmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZ
NSp8OEg3VGpDeHYKek5nPiN6YVNrQ19QUDV8YXAtYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9A
Uio5I3QrUT9Wanc+angodlY8Rko7CnpOVCozNUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8j
ekc2VnMySiFFIVBxNEAqZjxlRH4+P1YmbmNfNV8jNQp6WU0kOXltVGdZdDNZKmxnTUV5PE0hP2dX
YFk1Tk0zX1EkRnFAQVg+JEBYVkhiMD0yc2s3NTZWJU1oPn1EMyFkSSkKeiNOJjU3aDlyaChBckRt
YG1qek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgpZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFCnpzaGxv
N3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEqbytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlx
WUxPVQp6X2FldktrcCttRUFZPDl2cGclYzlRPTRnV1RDQ35TK2QqNWl4eU0tUlk8T002K1FUZ2Rs
b2htY0BJblQlI2B7aU4Kek1VP2x1YGs/ZyE2WiRkVXNeVEwwZ0B1V0p7clpYVjxIdzZCOXp2eDFT
YyFDaGRvam4pT3cxMXVWbk1MQSRmI0xDCnpPYj5EdnZ1anJwKTlaU1BgRV59SFdgdmhtUlpFRHFi
JWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0tbXA5Nz9iaAp6YFIoalFROUJ7ZF9JNDNoIyNSK3l5
Y0k0Y3d7OXd5YngwNjchPHZiOHtrdz1QdyFpJkAoYyhzVzRSTD42bjN5PncKek89TStkaUtSPUlp
ZEN5dGlNNENqaWo1bUxpcnU/K2l2dEdeaHlwSVZraDRSc1RTdCFgNn5+U3A2RExsYjVUe1J7Cno3
VSQyTzdoaXc8d1lZbHFzPD82RWhQWlg+bWJpUU91NlhkXmYleCZxQUheQGZ7MzNxO3tkZSl+bk91
R0tQNGpRIQp6LXhtMWEmO3E9WXwzOWR2bHxIPEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypv
e2Etcm0wY0w2Ki1HdjliJmEKel4hNChwNXVrPHxVWUA+ekEobXk+VkJPNUVYSTVsdGM9LW1oaloo
Wn5QZkJuQGg5JWdtNSgyRTsrZUVrT1JlK1pfCnpuPWxiemNJaXJ1NWBpdCRASDc9KmMyNUlORkJ1
RjdDSVZwaExiMVlWZTNmKSMwam5UeWptT2dAWG1zek87d280TAp6YGckXjU7akNzOTZkRFNCMTJx
Qm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1JGJTdWs2PXVISGklfilwMVU7K2kKejRPaihNV2tT
M2I+WmsoMjhpRGhXc0ghPy1XJDd6OTs8V09wJH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpP
Cnpkej5ROEVMRF55dmhyNmJlQU8oKGhnODxRUVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3Uo
MCh9Zjw4azs2KQp6UCprYXNrSUctc0ZsZH1JangjSyZzUEczPmFXeDdDMCNRWjx1Q2xeYktgdGdp
WXNtUWM1UighI1ApWXVmVmhlU1EKejFyJlpLZCplezdLUiYqSlZVZCZNNHxLUDttdWwzYTJGMjwq
NiUhMEglSSlwbG1HKXUmYXZXNmxJITVmQTJ8PEFACnpTTldeayoqUzZFJldgREpgaEs8M2NTWDNw
b3QtU05FPVFiSUFvRHZwbUE2OSgqMF8rLUVYNCVkbTNNTm92eTwlSAp6S25gfSEmTWVALWRiR05O
eTt2WUZtPSlTTnNOKmVBWFlLNmY/Q2p2K1AoRGdrOEUwYz5YVW90bSNNZzZudyQ+XjcKemM/NE5J
eVNxYzhwMmx1JVhKY2IrVmBGMmh4ZmRWaFlefTAwenN8d08kSzZmWnM4RkdUb3ZwMjExc2pIfkUk
MThACnpvU29nPSs8aHUmPlVsJjVURCR3SDV7P2NJJSVsWWUyUzxoNSRLNl4jLShrU2Ymcmd3WGI5
T1dndGVTUUVgMXZ7Tgp6KW5tPkN4JXYzfUwmVGpjVmktNk5aaHY8LXJFISNIbXB5WHleWEM4fmtr
SkM/bjM/STAjb2o9SzE+RjJYQXB0ODgKemw3Vyo3JkNRcnk2OV40ZVdGKFYlVlZZa0ZifTY5cTwx
I0p5WVlBcjhuUUIqRDNldmd6KkcxNT9CSUVDLUVBNCo3Cno3V2xAaU5xYFh7KVpibCkrcHk5c3Jk
T150X2teeGBYbFVLfl8xUXt3JklGZGBpemJNaGRyK1h4IW91OWwlLXE2NAp6JEM+QmR1VnBufVc8
UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcrekp6c2dHbz9qS0o9VTF1eE5RaVApZzdZZ3AKeklw
RitDcDV0KUwmI2R6TmlwQXZsbEA9RXdAMiNGd0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRS
WXY2Qm5CCnpmaj9UbDVPbnJpdEFgZUFfMDtPRXdGNVZTYTt9JUV3b3s/blpZJnRiaDVCfFNySmVE
ZHMkO302QEUlNDZPQ14kNQp6Z1hoI2FvfFltYiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9
dSNreiktI2hNMEgjRXhpSkZ9K2JPYVZYTUsKejlFLTZPMmIjRXdVNVZhZVMkdVZ8YHFlc09YUzM9
ZXImV205QD4rPTQpR2tgPWN8QSY7WS19YVlIblMwRGxXb1B0CnpIdW1EJUhqZCYtUzRXWkcrKHFR
SV9ZeE82eFFjSnZJeCk+am9iS1EkOTwoJFFnPjQ8aD9YS20tLTdmYXhEbkhXfQp6NHM7ZHcyRHls
dlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHshfV5LQyEoSkRra00xdD0jYFkzPD8rcC1sUWEhfSYK
ems5NllCQ3B6KDlNc0BMRWV6Mz8tZU1AfXQ7YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34m
WWtqXl9zcEQkCno7JXckKmFlbVBaYWRHSiFAenUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYj
ZHFJKkMhYyUyfE5pQGJwTC0zNAp6KjF5VUI4Nz1UbktjfmpaUCk2TmpWPyU1Q1NGaTQwRD5PRT9C
dWl8bFBlOUYoMjljMnNMVFV6aGdxbXsxYHFnTDwKenI0SjFQe0VRaTVlSWc9ZGgqRn0rYGFYc1h2
SHRaVmo2I0VtYFgwcCR2QVc8PWY9KitJXiR6NDRzQy1uJE1GdTdXCnpkYURlZjktZUl4VEtuUkck
K3ZNazRzQUsqNWh8LTA+JXxXXz9QWHwkPU4qfHNxTURhZjViS1U3OC0qZGNZU3E/QQp6d1VhYj1T
c3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZqYmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3QyfEZA
REgKej9YO3x3MUlta3d0KDVaaT9IZyR2Q0AtZ08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47
MUlxX31YbzIoYDdnCnpFQHh3SC1CPWJfVFUqUHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItXj10
c1VjcWdhVXZSbyNlNm93WGR2UnM2Xgp6OGErK3ZHcDxWaWgqKVIwK05BX0hYR05TWElBZjF5OHVa
MCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUs7VkJ5Pl8KekNMeVY1diErZChDZE5jTlROb0VKTCNW
bFA8dlAoWkcwfUFASkRabzdBODNjeihESzt0bGBuT0UhMyQ8VmtWKllUCnoqYE0rQ1E1O2RLam9l
MT8taCs0X0dYND43RWVkJj9rKm1DV2E3XldgaFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eAp6JkBI
IXNZenNFQVBqTz1DODJXdCpfOWp7fCpyJnt7PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5k
UDMmcG0KekU0SD8tQyUpe2M2RFBYKml1fjZETVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNN
OVBYSllQN1gqR1haa2h+Cno9U0lGSj90TDAwX1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZ
e1FCIyF8REk9U3txYi03Wnd2ZmlaVU95MQp6I1lfZ3h4fHh9Y2xiZjU5amhWN3NuMz1tTU0tREZM
YT9MTz1LQ31ZQ2pFXnw5O0FrZXl0UUBfKXQyI1FtZHdjVzIKemhMeEZfd1BRSiomZVBwbj1VdlhS
b1ZBJTUmWCNsPnltOEMxU011ZE5iLUhTNS1uTS1DXjZwXnA8Yjx1Nm5JI3tsCno9eVpWMnlARGto
OzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVyYnxXb29uVUZ1NkFaOW1CRkNDYz13MlJrYSFvRgp6
JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5Png9KExad0dCUCgtO0NCdWVNbz43VjYkPyMoWUZt
UnhWVj58JDkKeiZgPF4qQEluVCUmezVfVzdYT0h8MjE7T3lWYTAlYkglNF92VH1BQHFidykybktn
TE1MSjFVUns0UTFjfkZKdkdLCno5bmJ9eHxGd0VSSHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUl
Y19nODwhWkRkLXZ9Qlc4YzFncDglWnhzYXY7aAp6LSFsRDU9Z3lyXndyYlVDSE9xWCRjbyh0Xj16
dVFoZ3prVTVLVWsqKTFJTTVeaXd8Tm49Uk1uRV9VUXRBOTVHX1YKeigrTHdNSmV4ZHV2YyNNQGIw
fEFJVExOaX40aiVCYiV1fXdAUm87Wj51JnpsQV5pT2pKYmkpUjBTcn5OdC0lN0YkCnpHWH5uamZ1
VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2akZwMH11VCFgUCNPQ1lWJCEyQDIlWG0jbjt0Smx3
NQp6a0ctc1ZHR2oxb2FMX1NlNlNraS1eVUpPbCVWRTQ9T2difEgqdjVOM2QtZzFaLXw2WTsmejgt
YU90fllIPSpwbX4KemJaZE15eDtybkI/eXNzIzQ+dzI5X2RCQktgPCFUcmhuIy02RFQzfj00NWht
bjBkKHZBcyZyKzV5T2Ywdj16YEFmCnotTWlteSp8T3pFd2wjcilJZkQ1UCtiPXlZU08mZ2haTk5H
YSFoT0FLQFppQnVGYjxabyV8bTA3PXRoYmctTl84MQp6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZ
ZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZkNSlaQ25eUEhtVjRERlMKejtMOGltWlJXJDZMN2dF
TiNfZShmP1NucXdLUmsmRk1ePldTYkEjd1VgfHlDPF59JEJRWFo3aG16OyhJNUF6WVRCCnpUbzJH
dCN5c0dhR1UkYEZWUlU7PTA5X21FRHN7c0tZO2sqQ1c4MVNCQmo1dUF6UUN1eTk4MWlERzNWVC1P
YDllPgp6Jkw0fiZKTkRfKW5VZzkxP2ZQYCVWOyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0
JjdaXmh3ZHo/Tz9NV1gKemZOM2FgSm02aFhTSVhYNyV7b3tZV1Fzb1lxR099IzZLdWdJPF4/fC1F
biMwITJsTkJSbEhyTUZpTlZrMVNaNlNBCnowe1ptbmJNTzg0LSsjSjxePDVhXk5qRTxBcXVVRT5O
Izc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9uVGlmcGx8TAp6ME50RXYwO1p1JUAtWGtNJSRqczdK
NlAoXz5zJH4qTVUjQiMhWE9XViYyaSgjSndxTVg3eFYraDY2T1BaRHxLQ0IKekk+dFFLRW5TWnVK
QFV7NyZ+dDlFQ3RYa1RySkVUKzU7dFpBKHYyQWJSNWFiNmlheERRKkMrYz87VXBnX3tGcElPCnpO
N3A4SikzcHgpRkJQMC04cF48UG9xZEUxV1Q2QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+
RW9DRlRPdAp6Rm01WEljd2RiJTI7V2NqdHchSWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RN
dUkzYT0rKS0wQVlARHMqe04Kejc1YUxGOCt8PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5A
aElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5qCno0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGImY1de
ajsjV3VlZz8/dkNSb2gkNj88KmAtaT4oVEQ/NzVqNShYbDElTQp6eEZUSGA7N2FIRnh6UERPJlVD
Sn42UEBlbk5hdVBPMEN8QVJ6eW5eJFRwVjBVPlZQaWp5cXI9XitKRyhLKHJgRCoKejlUWUNfNjxD
K2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIyWjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz1MU0B5
Cnp2d2RDWU9mTSVvLVFBSCtiKm4oOXh8RkFyb3l5VjRqXiplPzJZV2o0bnFCR09HVnAqR0dMVklp
diVRPzkmaHJEZwp6RXJ3Syp3cVc8LWgkXnhpelE4QmtBSzFzcTRCViUmKk8wSGpJRkBiQzw4MWlJ
a3QzZmhvLXZ2NytMb3RQOVYqbEUKel9MWFRfK2UpO3d3SlItYz18VzRJSkphSDFDdEIzaGtycEw3
KEJneSZiZztQe2VjOTVRekhHczBaYmVfYlFXOGcqCnp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZU
a3JwOyV5e3RSOE9HUEA+Z1dJTUx3XjlGIWJmJks+PCtyZ1ZfPUl0IQp6LWx3dEd6PE1QNmZNYmsl
SChxYVU7YTwzUFAhYipNUD1PQW1eYGFZdipYWmBgK2h5WUImNl9sRFkoTHIlWEdAMEAKekVhPnds
PUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxxJDZGU348JF5TZX1rfGFpRF4oaiYhVmpJZjc1e088
aipCCnp2QUB7IVZjIWJoWkZuQ3gyeU1USj52XzFUNiYtQz9qKmhuRnsoZEsheyZWKlJAcHBhbj9D
RGNeYmM5I34ydjdkfQp6bGVWdXxLPVkhPyk0b1JMYmcrP2A1JXhCK3BqaVhqT0ZyLSQlNCN9KWB7
QFZEPm01cG1uXzFFNCYyMT5KcjdheksKeilzRnFKbXdwXmR2THlKWF81dD5NeSVeUXVKRUpfO1l2
KUhGZWVgcmctejNVeVlFNmUmJER3MiFuTGc2bGs4WWpGCnpFel5JXnBLflhVKTEqZTh2QF9iQV9D
XmFtcnBII0hoWSMrVGtreygrbC1ye3F3SHhoXkdwN1RNRSRCY0tPRkVjbgp6clREPTx6P1h3YlJz
YFIkPWlfbUhtM193RXlEb2ZaUk5gKyV8Rz04RnZuaylsNlJjPC0oQWJqcCMjenVGWm9ocF4Kej9D
SHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5eT2Y+dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1Jj
JXVxVmJgCnorSnRUUkFibndmYn5kZGoqQ09uXyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZ
LUMmcSR5YVhhcDZYd0ViPAp6KzhOMjx2aXh5Zj0kQShpT047Pys5M1ghRCtpJGVzIT8kVH1zMT9s
XigyM0IjU3w3bl9FZStxVjlAJEh+Oz55dkUKejIwfXZHaysjZ0ZaVEo5UmEkK3J7ZWZXcW1xJkBA
VGUmKSR6Q2t0YXw8eSMkVFRaOT5IWW9HI1kjQDcweDd+ejhVCnpjZGtQWnViZU0pSml0SHJkXzM8
RUpeSkIkckpkQ304MmJPaXRzOWluTj1JOCtyeWQ1anElUzdeeig8VEJKamIhYAp6bTstKmk9NU5G
THh+NC1JWjROVnwmRWJxTkw3Tk93a01qb0Q3VXg3KWNDMz1+U35+Y1dtcH1qYm8lWilqRnckd0wK
ei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28tdlFkSF9GPUB8SmlqbkwzJHZpKFElQlM5enkxMiR6
QSRXYUUmY2lBCnprdVBrPSY/b29eVXdJQ0glZjhGfDBNQ2FhcDFhUmhONHBTenhCYiVDKkVmTTQt
bmdiO1Y9O2EtS1RYcFpeTFo7Vwp6WD5DMnJtJG4xbjszTCk8WnU2aG1mMUdYOTtrRDs/Slp0bEo9
WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdvSHQKejdKUzgtZnZOdz9nOVJCTyNFZ34kcnUwKHMl
UjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5MnspMUg8RnxBcWNpCno+PksjNmppMmluS1pfJUhl
LWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1KZXZOXzRhNnhfKWdtXiUtP0N0PUgtTgp6RkRXSjVs
TkpQLT4rTVJ0MktMfkN3NXs1T2tMdmpPaz10TEp6Z3NYVDdQSmJaZyNraWhhWk83QzdTKiglTVhW
b0sKejctJmB1bEBJKE0xPXtta2QwM0E1bSVaU0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0o
JSY/N3YoO2RFZDRQCnp2fWBXUnR8MjVBKjBRQ0FBdlZPbik4T3s4cjE/UD5HKFhUPkIwSXAwRykl
MypgXnhOJDVeWmJQe3RzP0d6aEMldwp6NkV5JGhfaH57NlRnbmJwP1hXJUFtRzs+TyVgZjw8YGhT
VzJtLWpFOCVkPkkrJUllcFY9MmFJRzNxeUhkVGYwMlgKejU4KnY7TyZpSnp3NCRzNE9VbVNTJUIq
MjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVgPH4pNyFNMFN0cVNPTzdjCnpoajtJIShJSiYrWlVF
YjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdvZD9wcG9gLWVaWFF1JG9XUzRiP1pVeno2RAp6YipB
anY0d015QW8tJTlOKFkheiNuIz03eSpXWiQ2KXYlPExTRUFgUi1ZYis5ZSFPPnc3UlVRWmVIbVFX
eXtTWCMKelBqMmg3MEBrTFJIO1UtKCMwWipFdnopWT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0peWpr
VmgrISQ/THNxa2YpKykyCnooISQ3VWx3R2U5VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9
PjU2SDRCOUFAdyMoXkRhcmpNQnNIdWg+bwp6S1I+dTxHflNAWlB7KTZNeytYdFk5ODkwb3N6X09F
S1JjfGxeYTtMVT95NzYyO3JgaUA9Zkd6ZUwkZjwxKFI0NEsKeiFfaHZwcTtWaUVpMU1iYWFDZSRs
bS1gaitINjE3PXhINnFUYitXOHhsPXB4bTN1alRmdU8rNFhTZF9xJFdfKDY7CnpgUW1mJDY7RjZQ
WkN8XkotVk9KcWRFciYxUHcpKzYyV1E2SV9KKz9kPH4jP3dVPF9xV29sS3Y0MitDXlVNSnJsSAp6
KDJ9SXV2Pj9gQj1JNGQ2by1oeH1TK3xPUXtyUlYye1BaTEpZSmpXOXpvM35sb29KZlEkX1VlYXRW
ek9gJDA2KGIKej5jQjJKcDBGMXgzenlFSHFqd1ZgWG97eTkhOGVRQG9PYHFYYHNZVkghKmt3PmB7
ZiMqKFBwJHlxTTBHQ3c1QyVjCnp0JFp6eG1iUXFYMSZ4QyNFNG4oKGpxOygpbT5RSkg+M0xEVUcm
ZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTlF2TQp6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/
WFhuN2JlIWA9anBvcVkjbU9eVDFDP0dIcW9AUWVMU3R7KHV+JTsKeihTbH0yYFZmNEFaYHtzNXUm
K2tYQDJkWXNlZWtoNi1eV0A7KGZTXihYPzIlbVRKYyZ1RXFiTHNLWFpyQnl5ek5+Cno1JFF7Rj5V
LTB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxGaWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdk
TAp6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZY3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBHXmlf
VzlNR0I4X2tOOTUKemNXWCZZK3M0eV48T3NAWVFpdFg+M1p7JlAwV2BhVEFJKy1vTG9ANG4oVHV2
RGxwYjEqKCg2PX1tfG9qbXA5VVN9CnotfiZKOEFQK3N6SEB8NShFcSpuSVIoNUo4P1FRN09MR3I+
RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTttVkIxaAp6SUUpcygrSzZfKF5BPkYjKXNIcH09fXpu
V2Ipd2E4d3hNTypwOUA+WTVkV1QjRzg1fDIrXz43NTVnUzV0cUp3QzUKeiEkNnVINitwOGhZdl9T
ST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1MWBtNDJsZmBXaCRpQGVIM3cmRWM+bG5ACno+bGso
bntuLV9LKjg8Wm1jcjhsRFQlUHlvV0o7XitPS2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVko
ej9FIwp6WCtfc3BYLVM3Pnc0aFpTJjJKR3lTOzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1
QH5zLTdQUHUmZC1gbH0KemNjflpwVlB7cU1ifkd1fWh1e098RWJzU3N2MlZ7a3pjcmA+Iz9rdGVs
JDFaYHZpI0tPK08lPDRVcG1DK3E1RyN5CnpwZ2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0
P3UyNFI9bkFjbVVaRGV6MjFUcndAOz07dVFpa0w7dHNGUwp6KG9RWERkQUJ5U3N6KFB9K3JKeGE5
TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklOPXNWQmZMY3tOPyNNPmNEKlIKentSUCR8SzBraX5K
KWcjZShxfCszKTBkMDA9dCVaI0ktRF9gNHlMRWtLR2YldjQ9ODhDeVI+OGM3fWBFPTZtNU5ICnpJ
QmlXQ01xOT1YcjdkSCl6Y0B4N2JkLVkre0Uma0BeZ3RpPFpzMG1paUxON2skSnNydkh4Sm1LbXdK
RHAqMT8/WAp6P1NuZEt7Vj0malZfTU94R2t2KXZuK256fXJ+S3VNV2N0WDB4JTdHRkVJS3IySV8x
dXFOKGEmPkd0eX1QXmh2YVQKeis5eHRiOSgwdDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNm
b0F8RTFtXjhIXil5bWJKb0khaEZELXstXzE3CnohfEBHaCtYcEZoQSFqP0MrcCZldFoyNjIlWkNw
bnUqUlNTIXQpU3pwbVFudFNCXyNrbCVFMVNJJGVyODFuWU88Nwp6SGNnTDxBbjMraSNkeWQyMmV5
c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJR0N5bF5KclpNUig+dFQtI1FIVUsKejwhfi10SzZI
VFpzZTk/dHpURlpSX3ZWbFdqZlFnWTc0WTYqUV8zaHhQbCVTZnBjQV5XJlR6bDRXfWtIb3lsY1Z2
Cno9M2w8XigpPXdlVypydC1UZSZaZXBmN01RZ3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20j
WTUhaWojP015KAp6KCludnYoJSRKKUJvQkJZMTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVF
RVV7T0B5ZylzJD1mayo0ZT5hNmIKej5mRGkxQkV1eTNIfCo1a01vMXY3KFpLXj1qMSRQaFp8PlYk
SUo7LXZ8RiFRMk5+d254PmNPQEAhYEBxfjMmc0Z8CnpJdklSRnAjUUV3XkJMIUBJNVduJUh+YTB6
eiZZJlM5X05Qc3k9YT40JF5QS2oyRzJsVHBWP2ZXTyZvOUd7PCk1Tgp6MGh9JmsrNzhBeG9LQG55
bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9gZ1R4bHokJjNTTGxDdHFXXm1gPEpJNWcKeiNIcWlf
O3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJGezVXaTs/flJJaSRpbDFBbFhvSD5naGBAPzF9Py1k
WmV3CnokSFZPK2Y1KmVeQj54aF5jPmVlYG1ETGYpeG9XJHpmTlc+QS1IbV5AcWhzYVZSISViZF93
cU1kVkIqQXlrJkoxSwp6YiZNaGdzWCFWdWx0dW14KXoxfVNvZyl9VV5IY2lNKSo7Tyl6ZWZsYXdz
V0todDt7NWwyNXN4JFJ8cWBkaDBKcjYKenpDYT1DPW0xXldXQmIjJD9WUlh0UzlgaVEqb0UlRD1U
NygyZUNXWVVlfko1KGVkKyRWcyZzRk4zKkNMZ3AxeTdDCnpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41
Zzc+eUlWUUImKSpaPXBVMjxpQFY1e1RtZWdVP1Ikfjc0TCNGdz0zelVIZQp6eXBWeHhgdWxJZ2tD
JG8tPTNrZE5iXnZ8ZChVdENncUAjUU00Wn1WRDdVb18/a1BgRnY5UU9kXkhKYXElQDBeZ0kKenQ/
PUlZJntPSndGNmI7IyR4O2FMSEZIZFZ5NThRRlp1OXA2Y1J1bDxKTiNYUmpGQzE0JUp9O1BKKVA2
SGA4eDxMCnplflo2YGZHKzYjdDlJYj40JTR+S0ZMMXFZXjdqWmdgQ0FCbSUtPlNURz1DIzs2QnJB
QyN4Y3E/WG5CLXJkfFU+ZAp6Jjx6YDxSOWxqYHRtdHFEOWx0QkRMPGlyZnRWaXlmTkxRa3gtN0Ne
bns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgKeng1XzFPcVBIN0s5e3g3ck5DJDcmRkRsSkcoP2By
NUdrYDk0PG5JPXleclEjKD8kUXJHezl1RnxnOyF9Jkh+d35gCnozJX0jKT1CVVN8dUZrWjFfSntR
NyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBmR3R4Vzs4JVZON3JNbW4kMWdJegp6TmxCbno/aTdf
YzMmV1oycUVUSGJ6cUpFaDxvRD57VURCbUs7YXRsdztMUCNjc1hiLTYpWEJWdlZaKmN5STNHRloK
ej9FIVJfLXpsR2MjYTUzQ1VBKmJ4aTMyNmgpMVo2VGtfXzZCPFV+N35JQDY3LVJ9NCl7e19DSTNE
V09tNVcqZXt0CnpuXzMlaWRmSjlKVig0VE9EPnw4QVpHPS16P2RrZjtEZik5c0xxbkhOOWpFPGs3
OCNPY2BwJF8lYmgyM21NUERnOAp6VkdBfTU/NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+QG5R
Ri1URCFrX2ArJDImS3Y7NUZaM0oqdkUzRlh2JjQKej9kI1ZBUDhTX2FhSFMqQm1JYDdKVGN7e2JB
TWFkfjkpNU1JTTFOQEpwWXF4NjtvZE9AdllITiNeKlo/KjA9NU80CnoyS0FASWtyczN+JTJKN3VF
KDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJTy1ee3s+M3hoTWhZZ0FyQ1FndGR7NQp6Yk9DPnp0
JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9kIXxFN3Ewdk1jQn4zYHFzMnhqZ2RDUXdnYExMd0tU
aGcKeld5fVl8ZmMlYW5uWTFqek5pUSNUTE41Y2hPeGwwbG4lMUdUci03WGNkeEpEK1k/clpzPVom
ZVlONCYteXBEPlhBCnpgMUw9QUYzOXhQWEhVX0xNbjA1ZHE4R048elR4PHJ3eG5ZdCU0ejZHeVBf
UDU1bXx3REY/S1NoXkxnPX5KaVpKQQp6LVgkQyEqaDJDZz8lcyVneWpmXmlFWW07I15iPHwqKz5F
d0ZzayZKZ1lfV2FBYDQ+NXomd3pIdXhOX1Q2R3ktVGQKejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytX
IztyO2U2ckJZWlFsPmVDNmRCQmx5fGdUd2JCdyNEfUs+a21kRGBlU3t4Cno4fDVWRlhqYzxZQn5K
OUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnswQGBnb30pNmBlO2Y/dmIjPG16O0pUe2hpMAp6bWFG
MCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhgQmM9YFNQckZ7SkxBemZLcTF+LSgoVm9ffFdnNzl6
TFgkVT8KeittLUIzdW1NfHxVQmVoe3UpTUs5P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+MGhl
QHdCJWlwWn5MTipmNndkCnpuQzd3JFk0NDdxKSU8U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5D
T0JwU09QVXdhV0x6fHspRSp+KnZTYnRnQAp6PX12aVhfbmBhPCF4VmZ0bD01RSEkMHZARXs2fHVI
T0leP2otS08/UiVRTjQpRE1TMHlrfDswQU9YKjh6PTY+Pz4Kem1AfD0lajJrRipLb0BrRFd+KGUz
ZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZTcClhXk5WTmxIKUVPZil2OWNYCnpPUktXejs8NX1g
MXxJT1BYfmdmOFNRYXs3d0JEd151JCtBVU5NcnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JUdZbAp6
PkhHWWgmSWsweE4yNiVwJn5DSyh3SFc1bihjRUFjZigqOyFJcTEzbFpFQ1okSnA2flF3Nl9NKClR
JkFFbyE/USsKejRzeFhvRkd+cmVLfD5qTVJKJCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhx
WlVkRjhqeCk3SnJSWUtGdDdmCnolbFBkc1l+ZkZnODJAZnBDbEhMa3FMIW8qbXBRP1g5Kmh4O2Im
TWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBS2paOwp6UXZ6d3d4RXZfODUxR0RoYiRtcy1LQXhaUnJt
JFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5rNXRORnBQJDg3ZDEKenVlVDVYP3VZbDdqMD9tMz0q
cjBJNXxAVG9yKCorc0J+QT1oPTt4Vi08cDl9TSttcmJfYDBTRE5wUHdHZFp5WmhACnorKHxoLTB7
RlhlVTs2Qlc5K0hNe0FJe0N9Q3V5S1ZoVUtSKikqV28/TnZDYEkoeiRVaD5EUE5WPGp9ZHRkeW98
KQp6Y3pedXNGRVVAV1lxOGAzOXs/SDFHSyMpQC1HQCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1a
aW8oSF47Vk9nTikKek5RZGZfLV5wSyhCYzF2ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xy
bnZMSzBMOURueDc3JUJWYjxLTzZxCnp0Q3dXQHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0
T0pMeDwyQXtWbmhxR05BMXBnVWpla3U+YSRSPStjbAp6QD9OaClrWVJiV0FOcWo0PG1he0haJHtE
YSljJG1PKG9pfXphV0l8V0pXJWp2THB0Xkc1SVhiZUNefERgNnolV0wKej9AcllJISNMdmZofio3
RT1uUWAmYDYyKT5XSzcyM3k1LVNjYmFMUDtiWiU2OHsrXztWMzdgeC1FTmU3PUg5Z1NECnpwbHhs
IT08e0FsYm04cXo1PWV1RkdWb35wck52elNRdUZyX3xMdm5mZ1dzKXxycWhzPyU0ZTspeWkhMzF2
aX1FawpDdUNYb3YKCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCBlNjc5MThhLi5i
MTMzNTc2IDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisr
KyBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTEzNyw3ICsxMzcsNyBA
QAogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KICAgICA8Q2xDb21waWxlPgogICAgICAgPFdh
cm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
cj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5v
dFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KICAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8
L09wdGltaXphdGlvbj4KICAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlv
bkxldmVsTGlua2luZz4KICAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2lj
RnVuY3Rpb25zPgpAQCAtMTY2LDcgKzE2Niw3IEBACiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4K
ICAgICA8Q2xDb21waWxlPgogICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgor
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KICAg
ICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KICAgICAgIDxGdW5jdGlv
bkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KICAgICAgIDxJbnRyaW5z
aWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgpAQCAtMTkzLDM4ICsxOTMsOCBA
QAogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdl
bnRcZXJyb3JzLmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNj
ZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
d2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RV
c2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5jcHAiPgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIgLz4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgi
IC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNl
cnZpY2UuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1
aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+CmRpZmYg
LS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIGIvdnMyMDEzL2xpdGVh
Z2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA1MGRiZTQzLi5hOGY1OWEzIDEwMDY0NAotLS0g
YS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBiL3ZzMjAxMy9saXRlYWdl
bnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTE5NywzOSArMTk3LDggQEAKICAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XGVycm9ycy5jcHAiPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XHN0ZGFmeC5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNp
bmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFdtaUFjY2Vzc29yLmNwcCI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhT
QWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNy
ZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RV
c2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlcHJvY2Vzc1RvRmlsZSBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+ZmFsc2U8
L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgPC9DbENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgogICA8
SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XHN0ZGFmeC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMy
c3R1YmFnZW50XFdtaUFjY2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwu
LlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XFhTZXJ2aWNlLmgiIC8+CiAgIDwvSXRlbUdy
b3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNc
d2luMzJzdHViYWdlbnRcbWVzc2FnZXMubWMiPgotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dau-0002wo-Pg; Tue, 24 May 2016 14:46:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dat-0002wW-Hf
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:03 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 0C/C4-18679-A2964475; Tue, 24 May 2016 14:46:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpK5Wpku
 4wbRnIhZ/Fic6MHoc/nCFJYAxijUzLym/IoE148aJDvaCJrGKtycWsDUwLhTsYuTkkBDwl3i+
 5AgjiM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYwFtiauc9ti5GDg4WAVWJSXMzQ
 MK8Am4S928sZIMYqSGxqWEGmM0JFH/34T7YSCEBV4nPm74zQthKEt8Wv2CG6BWUODnzCQvEKg
 mJgy9A4hxAc7gl/nbbT2Dkm4WkahaSqgWMTKsYNYpTi8pSi3QNDfSSijLTM0pyEzNzdA0NTfR
 yU4uLE9NTcxKTivWS83M3MQLDiQEIdjCeW+Z8iFGSg0lJlLcgySVciC8pP6UyI7E4I76oNCe1
 +BCjBgeHwOa1qy8wSrHk5eelKknw1qQD1QkWpaanVqRl5gADHqZUgoNHSYRXGSTNW1yQmFucm
 Q6ROsWoKCXOuwskIQCSyCjNg2uDRdklRlkpYV5GoKOEeApSi3IzS1DlXzGKczAqCfO+BpnCk5
 lXAjf9FdBiJqDF/l+cQRaXJCKkpBoYL3HPWONpadY2yyvUbAprQ8b7k1cdi5yC1QVOnV9qHLZ
 B9pURo8/aN7vvbTD/zhG0klfM/GKF7flgdr6Qio7rPRM5X8243vX09lb2E82r3k/ylVy/PUma
 3+Fu+o3/E2sXfWjVFdoddXO6oJaUz3nlfdOX+vkH/CjjPJulsTM7mrnj5bUjhZblSizFGYmGW
 sxFxYkA0duDHa0CAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1464101160!43538710!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28164 invoked from network); 24 May 2016 14:46:01 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300118"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:58 +0100
Message-ID: <1464099660-12432-19-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 18/20] Add IOCTL_XENIFACE_LOG to dump a log
	message to Dom0
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIGlu
Y2x1ZGUveGVuaWZhY2VfaW9jdGxzLmggIHwgIDkgKysrKysrKysrCiBzcmMveGVuaWZhY2UvaW9j
dGxfc3RvcmUuYyB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVuaWZh
Y2UvaW9jdGxzLmMgICAgICB8ICA1ICsrKysrCiBzcmMveGVuaWZhY2UvaW9jdGxzLmggICAgICB8
ICA4ICsrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKykKCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oIGIvaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMu
aAppbmRleCBiMjYzMWY2Li5kNmQxZjAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbmlmYWNlX2lv
Y3Rscy5oCisrKyBiL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmgKQEAgLTM2OSw0ICszNjksMTMg
QEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfT1VUIHsKICNkZWZp
bmUgSU9DVExfWEVOSUZBQ0VfU0hBUkVESU5GT19HRVRfVElNRSBcCiAgICAgQ1RMX0NPREUoRklM
RV9ERVZJQ0VfVU5LTk9XTiwgMHg4NDAsIE1FVEhPRF9CVUZGRVJFRCwgRklMRV9BTllfQUNDRVNT
KQogCisvKiEgXGJyaWVmIExvZ3MgYSBtZXNzYWdlIHRvIERvbTAKKworICAgIElucHV0OiBOVUwt
dGVybWluYXRlZCBDSEFSIGFycmF5IGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UgdG8gbG9nCisKKyAg
ICBPdXRwdXQ6IE5vbmUKKyovCisjZGVmaW5lIElPQ1RMX1hFTklGQUNFX0xPRyBcCisgICAgQ1RM
X0NPREUoRklMRV9ERVZJQ0VfVU5LTk9XTiwgMHg4NEYsIE1FVEhPRF9CVUZGRVJFRCwgRklMRV9B
TllfQUNDRVNTKQorCiAjZW5kaWYgLy8gX1hFTklGQUNFX0lPQ1RMU19IXwpkaWZmIC0tZ2l0IGEv
c3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMgYi9zcmMveGVuaWZhY2UvaW9jdGxfc3RvcmUuYwpp
bmRleCA1YmQ0NjQ5Li5mMWM4MTZiIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxfc3Rv
cmUuYworKysgYi9zcmMveGVuaWZhY2UvaW9jdGxfc3RvcmUuYwpAQCAtOTEsNiArOTEsMzUgQEAg
X19EaXNwbGF5TXVsdGlTeigKIAogREVDTFNQRUNfTk9JTkxJTkUKIE5UU1RBVFVTCitJb2N0bExv
ZygKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCisgICAgX19pbiAgUENIQVIgICAg
ICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIEluTGVuLAorICAg
IF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbgorICAgICkKK3sKKyAgICBOVFNUQVRVUyAg
ICBzdGF0dXM7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAg
ICBpZiAoSW5MZW4gPT0gMCB8fCBPdXRMZW4gIT0gMCkKKyAgICAgICAgZ290byBmYWlsMTsKKwor
ICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICBpZiAoIV9fSXNWYWxp
ZFN0cihCdWZmZXIsIEluTGVuKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFhlbklmYWNl
RGVidWdQcmludChJTkZPLCAiVVNFUjogJXNcbiIsIEJ1ZmZlcik7CisgICAgcmV0dXJuIFNUQVRV
U19TVUNDRVNTOworCitmYWlsMjoKKyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWls
MlxuIik7CitmYWlsMToKKyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWlsMSAoJTA4
eClcbiIsIHN0YXR1cyk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworREVDTFNQRUNfTk9JTkxJ
TkUKK05UU1RBVFVTCiBJb2N0bFN0b3JlUmVhZCgKICAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAg
ICBGZG8sCiAgICAgX19pbiAgUENIQVIgICAgICAgICAgICAgQnVmZmVyLApkaWZmIC0tZ2l0IGEv
c3JjL3hlbmlmYWNlL2lvY3Rscy5jIGIvc3JjL3hlbmlmYWNlL2lvY3Rscy5jCmluZGV4IDkyOGMy
YmUuLjdmMTcyZDcgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5pZmFjZS9pb2N0bHMuYworKysgYi9zcmMv
eGVuaWZhY2UvaW9jdGxzLmMKQEAgLTI2Miw2ICsyNjIsMTEgQEAgWGVuSWZhY2VJb2N0bCgKICAg
ICAgICAgc3RhdHVzID0gSW9jdGxTaGFyZWRJbmZvR2V0VGltZShGZG8sIEJ1ZmZlciwgSW5MZW4s
IE91dExlbiwgJklycC0+SW9TdGF0dXMuSW5mb3JtYXRpb24pOwogICAgICAgICBicmVhazsKIAor
ICAgICAgICAvLyBtaXNjCisgICAgY2FzZSBJT0NUTF9YRU5JRkFDRV9MT0c6CisgICAgICAgIHN0
YXR1cyA9IElvY3RsTG9nKEZkbywgQnVmZmVyLCBJbkxlbiwgT3V0TGVuKTsKKyAgICAgICAgYnJl
YWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9ERVZJ
Q0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9j
dGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXggYzFkN2MwZi4uZDA4ZmZiNCAxMDA2
NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMu
aApAQCAtNDE4LDUgKzQxOCwxMyBAQCBJb2N0bFNoYXJlZEluZm9HZXRUaW1lKAogICAgIF9fb3V0
IFBVTE9OR19QVFIgICAgICAgIEluZm8KICAgICApOwogCitOVFNUQVRVUworSW9jdGxMb2coCisg
ICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAg
ICAgIEJ1ZmZlciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2lu
ICBVTE9ORyAgICAgICAgICAgICBPdXRMZW4KKyAgICApOworCiAjZW5kaWYgLy8gX0lPQ1RMU19I
XwogCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dat-0002wd-Ob; Tue, 24 May 2016 14:46:03 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Das-0002wP-Mh
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:02 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
 D8/BE-28361-A2964475; Tue, 24 May 2016 14:46:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUlcz0yX
 coKFJyeLP4kQHRo/DH66wBDBGsWbmJeVXJLBmtKxcylrQp1px/tw69gbGK/JdjJwcEgL+Ehcv
 HmYEsdkENCRmdC5mAbFFBNQl9n3eygRiMwuoSVzf38UKYgsLOEgc3zgBrJ5FQFXi0dtrYDavg
 JtEy57TbBAzNSQ2NcwAszmB4u8+3AebKSTgKvF503dGCFtJ4tviF8wQvYISJ2c+YYHYJSFx8A
 VInANoDrfE3277CYx8s5BUzUJStYCRaRWjRnFqUVlqka6hgV5SUWZ6RkluYmaOrqGhiV5uanF
 xYnpqTmJSsV5yfu4mRmBAMQDBDsZzy5wPMUpyMCmJ8hYkuYQL8SXlp1RmJBZnxBeV5qQWH2KU
 4eBQkuCtSQfKCRalpqdWpGXmAEMbJi3BwaMkwqsMkuYtLkjMLc5Mh0idYlSUEufdBZIQAElkl
 ObBtcHi6RKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeV+DTOHJzCuBm/4KaDET0GL/L84gi0
 sSEVJSDYyG0exZcSf9ps09lh/jVOldcSJ/YsAMHScObsPXa6r9HnoLzLr35uOZndOtd8wMdS3
 aOCM778zijJX5737fSL0kMOGULI+3YbLRg58yc5e+qNNT47u0NnTnZMOs0gWrfD93CGyKC92x
 eb77V6VvXds6LOeL1gc8kfzHGD9zZd8FK/ctnP6PUvYosRRnJBpqMRcVJwIAavee2aICAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1464101160!43538710!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28049 invoked from network); 24 May 2016 14:46:01 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300106"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:52 +0100
Message-ID: <1464099660-12432-13-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 12/20] Fix precompiled headers on checked
	builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgICAgICAgfCA3ICsrKysrKy0KIHNyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmggICAgICAgICAgfCAyICstCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIHwgNCAtLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwg
NCAtLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwCmluZGV4IGJiMTdlOTEuLjQ4MDQ0N2QgMTAwNjQ0Ci0tLSBhL3NyYy9s
aXRlYWdlbnQvTGl0ZUFnZW50LmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAK
QEAgLTI2OSw2ICsyNjksMTEgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICBD
TGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7CiAKICAg
ICAvLyBjaGVjayBzaHV0ZG93biB0eXBlIGFuZCBlbmFjdCBzaHV0ZG93bgorICAgIHN0ZDo6c3Ry
aW5nIHR5cGU7CisgICAgbV9kZXYtPlN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsIHR5cGUp
OworCisKKyAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXMpXG4iLCB0eXBlLmNfc3Ry
KCkpOwogfQogCiB2b2lkIENMaXRlQWdlbnQ6Ok9uU3VzcGVuZCgpCmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCBh
OTVjMzk0Li44YWIwNjJhIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgQ1hlbklmYWNlSXRmKiAgICAgICAgICAgbV9kZXY7CiAg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9jdHh0X3NodXRkb3duOwogICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5kOwotICAgIGludCAgICAgICAgICAgICAgICAg
ICAgIG1fdXBkYXRlOworICAgIGxvbmcgICAgICAgICAgICAgICAgICAgIG1fdXBkYXRlOwogfTsK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9q
IGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA0ODYzMDYxLi42ODNi
MzEwIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBi
L3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTg2LDcgKzg2LDYgQEAKIAog
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CiAgICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFdhcm5pbmdMZXZlbD5M
ZXZlbDM8L1dhcm5pbmdMZXZlbD4KICAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGlt
aXphdGlvbj4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJ
TkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgpAQCAtMTExLDcgKzExMCw2IEBACiAgIDwvSXRlbURl
ZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KICAgICA8Q2xDb21waWxlPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8
V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgogICAgICAgPE9wdGltaXphdGlvbj5E
aXNhYmxlZDwvT3B0aW1pemF0aW9uPgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJ
TjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CkBAIC0xMzcsNyArMTM1LDYg
QEAKICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CiAgICAgPENsQ29tcGlsZT4KICAgICAgIDxX
YXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPE9wdGltaXphdGlvbj5NYXhT
cGVlZDwvT3B0aW1pemF0aW9uPgogICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1
bmN0aW9uTGV2ZWxMaW5raW5nPgogICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRy
aW5zaWNGdW5jdGlvbnM+CkBAIC0xNjYsNyArMTYzLDYgQEAKICAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgogICAgIDxDbENvbXBpbGU+CiAgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhl
YWRlcj4KICAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KICAgICAg
IDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KICAgICAg
IDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgpkaWZmIC0tZ2l0
IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMy9saXRlYWdlbnQv
TGl0ZUFnZW50LnZjeHByb2oKaW5kZXggYTdkMTBjMC4uY2M1Mjk5MiAxMDA2NDQKLS0tIGEvdnMy
MDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagorKysgYi92czIwMTMvbGl0ZWFnZW50L0xp
dGVBZ2VudC52Y3hwcm9qCkBAIC04Niw3ICs4Niw2IEBACiAgIDwvUHJvcGVydHlHcm91cD4KICAg
PEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KICAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09w
dGltaXphdGlvbj4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7
X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgpAQCAtMTEzLDcgKzExMiw2IEBACiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KICAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
ICAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CiAgICAgICA8T3B0aW1p
emF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CiAgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOyUoUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KQEAgLTE0MSw3
ICsxMzksNiBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KICAgICA8Q2xDb21waWxlPgog
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8T3B0aW1pemF0
aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CiAgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+
dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CiAgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRy
dWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KQEAgLTE3MCw3ICsxNjcsNiBAQAogICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+CiAgICAgPENsQ29tcGlsZT4KICAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgogICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9u
PgogICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5n
PgogICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+Ci0t
IAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dau-0002wo-Pg; Tue, 24 May 2016 14:46:04 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dat-0002wW-Hf
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:03 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 0C/C4-18679-A2964475; Tue, 24 May 2016 14:46:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpK5Wpku
 4wbRnIhZ/Fic6MHoc/nCFJYAxijUzLym/IoE148aJDvaCJrGKtycWsDUwLhTsYuTkkBDwl3i+
 5AgjiM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYwFtiauc9ti5GDg4WAVWJSXMzQ
 MK8Am4S928sZIMYqSGxqWEGmM0JFH/34T7YSCEBV4nPm74zQthKEt8Wv2CG6BWUODnzCQvEKg
 mJgy9A4hxAc7gl/nbbT2Dkm4WkahaSqgWMTKsYNYpTi8pSi3QNDfSSijLTM0pyEzNzdA0NTfR
 yU4uLE9NTcxKTivWS83M3MQLDiQEIdjCeW+Z8iFGSg0lJlLcgySVciC8pP6UyI7E4I76oNCe1
 +BCjBgeHwOa1qy8wSrHk5eelKknw1qQD1QkWpaanVqRl5gADHqZUgoNHSYRXGSTNW1yQmFucm
 Q6ROsWoKCXOuwskIQCSyCjNg2uDRdklRlkpYV5GoKOEeApSi3IzS1DlXzGKczAqCfO+BpnCk5
 lXAjf9FdBiJqDF/l+cQRaXJCKkpBoYL3HPWONpadY2yyvUbAprQ8b7k1cdi5yC1QVOnV9qHLZ
 B9pURo8/aN7vvbTD/zhG0klfM/GKF7flgdr6Qio7rPRM5X8243vX09lb2E82r3k/ylVy/PUma
 3+Fu+o3/E2sXfWjVFdoddXO6oJaUz3nlfdOX+vkH/CjjPJulsTM7mrnj5bUjhZblSizFGYmGW
 sxFxYkA0duDHa0CAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1464101160!43538710!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28164 invoked from network); 24 May 2016 14:46:01 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300118"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:58 +0100
Message-ID: <1464099660-12432-19-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 18/20] Add IOCTL_XENIFACE_LOG to dump a log
	message to Dom0
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIGlu
Y2x1ZGUveGVuaWZhY2VfaW9jdGxzLmggIHwgIDkgKysrKysrKysrCiBzcmMveGVuaWZhY2UvaW9j
dGxfc3RvcmUuYyB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVuaWZh
Y2UvaW9jdGxzLmMgICAgICB8ICA1ICsrKysrCiBzcmMveGVuaWZhY2UvaW9jdGxzLmggICAgICB8
ICA4ICsrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKykKCmRpZmYgLS1n
aXQgYS9pbmNsdWRlL3hlbmlmYWNlX2lvY3Rscy5oIGIvaW5jbHVkZS94ZW5pZmFjZV9pb2N0bHMu
aAppbmRleCBiMjYzMWY2Li5kNmQxZjAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbmlmYWNlX2lv
Y3Rscy5oCisrKyBiL2luY2x1ZGUveGVuaWZhY2VfaW9jdGxzLmgKQEAgLTM2OSw0ICszNjksMTMg
QEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfT1VUIHsKICNkZWZp
bmUgSU9DVExfWEVOSUZBQ0VfU0hBUkVESU5GT19HRVRfVElNRSBcCiAgICAgQ1RMX0NPREUoRklM
RV9ERVZJQ0VfVU5LTk9XTiwgMHg4NDAsIE1FVEhPRF9CVUZGRVJFRCwgRklMRV9BTllfQUNDRVNT
KQogCisvKiEgXGJyaWVmIExvZ3MgYSBtZXNzYWdlIHRvIERvbTAKKworICAgIElucHV0OiBOVUwt
dGVybWluYXRlZCBDSEFSIGFycmF5IGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UgdG8gbG9nCisKKyAg
ICBPdXRwdXQ6IE5vbmUKKyovCisjZGVmaW5lIElPQ1RMX1hFTklGQUNFX0xPRyBcCisgICAgQ1RM
X0NPREUoRklMRV9ERVZJQ0VfVU5LTk9XTiwgMHg4NEYsIE1FVEhPRF9CVUZGRVJFRCwgRklMRV9B
TllfQUNDRVNTKQorCiAjZW5kaWYgLy8gX1hFTklGQUNFX0lPQ1RMU19IXwpkaWZmIC0tZ2l0IGEv
c3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMgYi9zcmMveGVuaWZhY2UvaW9jdGxfc3RvcmUuYwpp
bmRleCA1YmQ0NjQ5Li5mMWM4MTZiIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxfc3Rv
cmUuYworKysgYi9zcmMveGVuaWZhY2UvaW9jdGxfc3RvcmUuYwpAQCAtOTEsNiArOTEsMzUgQEAg
X19EaXNwbGF5TXVsdGlTeigKIAogREVDTFNQRUNfTk9JTkxJTkUKIE5UU1RBVFVTCitJb2N0bExv
ZygKKyAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCisgICAgX19pbiAgUENIQVIgICAg
ICAgICAgICAgQnVmZmVyLAorICAgIF9faW4gIFVMT05HICAgICAgICAgICAgIEluTGVuLAorICAg
IF9faW4gIFVMT05HICAgICAgICAgICAgIE91dExlbgorICAgICkKK3sKKyAgICBOVFNUQVRVUyAg
ICBzdGF0dXM7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKKyAg
ICBpZiAoSW5MZW4gPT0gMCB8fCBPdXRMZW4gIT0gMCkKKyAgICAgICAgZ290byBmYWlsMTsKKwor
ICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICBpZiAoIV9fSXNWYWxp
ZFN0cihCdWZmZXIsIEluTGVuKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFhlbklmYWNl
RGVidWdQcmludChJTkZPLCAiVVNFUjogJXNcbiIsIEJ1ZmZlcik7CisgICAgcmV0dXJuIFNUQVRV
U19TVUNDRVNTOworCitmYWlsMjoKKyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWls
MlxuIik7CitmYWlsMToKKyAgICBYZW5JZmFjZURlYnVnUHJpbnQoRVJST1IsICJGYWlsMSAoJTA4
eClcbiIsIHN0YXR1cyk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworREVDTFNQRUNfTk9JTkxJ
TkUKK05UU1RBVFVTCiBJb2N0bFN0b3JlUmVhZCgKICAgICBfX2luICBQWEVOSUZBQ0VfRkRPICAg
ICBGZG8sCiAgICAgX19pbiAgUENIQVIgICAgICAgICAgICAgQnVmZmVyLApkaWZmIC0tZ2l0IGEv
c3JjL3hlbmlmYWNlL2lvY3Rscy5jIGIvc3JjL3hlbmlmYWNlL2lvY3Rscy5jCmluZGV4IDkyOGMy
YmUuLjdmMTcyZDcgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5pZmFjZS9pb2N0bHMuYworKysgYi9zcmMv
eGVuaWZhY2UvaW9jdGxzLmMKQEAgLTI2Miw2ICsyNjIsMTEgQEAgWGVuSWZhY2VJb2N0bCgKICAg
ICAgICAgc3RhdHVzID0gSW9jdGxTaGFyZWRJbmZvR2V0VGltZShGZG8sIEJ1ZmZlciwgSW5MZW4s
IE91dExlbiwgJklycC0+SW9TdGF0dXMuSW5mb3JtYXRpb24pOwogICAgICAgICBicmVhazsKIAor
ICAgICAgICAvLyBtaXNjCisgICAgY2FzZSBJT0NUTF9YRU5JRkFDRV9MT0c6CisgICAgICAgIHN0
YXR1cyA9IElvY3RsTG9nKEZkbywgQnVmZmVyLCBJbkxlbiwgT3V0TGVuKTsKKyAgICAgICAgYnJl
YWs7CisKICAgICBkZWZhdWx0OgogICAgICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9ERVZJ
Q0VfUkVRVUVTVDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9j
dGxzLmggYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgKaW5kZXggYzFkN2MwZi4uZDA4ZmZiNCAxMDA2
NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMu
aApAQCAtNDE4LDUgKzQxOCwxMyBAQCBJb2N0bFNoYXJlZEluZm9HZXRUaW1lKAogICAgIF9fb3V0
IFBVTE9OR19QVFIgICAgICAgIEluZm8KICAgICApOwogCitOVFNUQVRVUworSW9jdGxMb2coCisg
ICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAorICAgIF9faW4gIFBDSEFSICAgICAgICAg
ICAgIEJ1ZmZlciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKKyAgICBfX2lu
ICBVTE9ORyAgICAgICAgICAgICBPdXRMZW4KKyAgICApOworCiAjZW5kaWYgLy8gX0lPQ1RMU19I
XwogCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dat-0002wd-Ob; Tue, 24 May 2016 14:46:03 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Das-0002wP-Mh
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:02 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
 D8/BE-28361-A2964475; Tue, 24 May 2016 14:46:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUlcz0yX
 coKFJyeLP4kQHRo/DH66wBDBGsWbmJeVXJLBmtKxcylrQp1px/tw69gbGK/JdjJwcEgL+Ehcv
 HmYEsdkENCRmdC5mAbFFBNQl9n3eygRiMwuoSVzf38UKYgsLOEgc3zgBrJ5FQFXi0dtrYDavg
 JtEy57TbBAzNSQ2NcwAszmB4u8+3AebKSTgKvF503dGCFtJ4tviF8wQvYISJ2c+YYHYJSFx8A
 VInANoDrfE3277CYx8s5BUzUJStYCRaRWjRnFqUVlqka6hgV5SUWZ6RkluYmaOrqGhiV5uanF
 xYnpqTmJSsV5yfu4mRmBAMQDBDsZzy5wPMUpyMCmJ8hYkuYQL8SXlp1RmJBZnxBeV5qQWH2KU
 4eBQkuCtSQfKCRalpqdWpGXmAEMbJi3BwaMkwqsMkuYtLkjMLc5Mh0idYlSUEufdBZIQAElkl
 ObBtcHi6RKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeV+DTOHJzCuBm/4KaDET0GL/L84gi0
 sSEVJSDYyG0exZcSf9ps09lh/jVOldcSJ/YsAMHScObsPXa6r9HnoLzLr35uOZndOtd8wMdS3
 aOCM778zijJX5737fSL0kMOGULI+3YbLRg58yc5e+qNNT47u0NnTnZMOs0gWrfD93CGyKC92x
 eb77V6VvXds6LOeL1gc8kfzHGD9zZd8FK/ctnP6PUvYosRRnJBpqMRcVJwIAavee2aICAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1464101160!43538710!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28049 invoked from network); 24 May 2016 14:46:01 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:01 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300106"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:52 +0100
Message-ID: <1464099660-12432-13-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 12/20] Fix precompiled headers on checked
	builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCAgICAgICAgfCA3ICsrKysrKy0KIHNyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmggICAgICAgICAgfCAyICstCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2Vu
dC52Y3hwcm9qIHwgNCAtLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qIHwg
NCAtLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwCmluZGV4IGJiMTdlOTEuLjQ4MDQ0N2QgMTAwNjQ0Ci0tLSBhL3NyYy9s
aXRlYWdlbnQvTGl0ZUFnZW50LmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAK
QEAgLTI2OSw2ICsyNjksMTEgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICBD
TGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7CiAKICAg
ICAvLyBjaGVjayBzaHV0ZG93biB0eXBlIGFuZCBlbmFjdCBzaHV0ZG93bgorICAgIHN0ZDo6c3Ry
aW5nIHR5cGU7CisgICAgbV9kZXYtPlN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsIHR5cGUp
OworCisKKyAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXMpXG4iLCB0eXBlLmNfc3Ry
KCkpOwogfQogCiB2b2lkIENMaXRlQWdlbnQ6Ok9uU3VzcGVuZCgpCmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCBh
OTVjMzk0Li44YWIwNjJhIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgQ1hlbklmYWNlSXRmKiAgICAgICAgICAgbV9kZXY7CiAg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9jdHh0X3NodXRkb3duOwogICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5kOwotICAgIGludCAgICAgICAgICAgICAgICAg
ICAgIG1fdXBkYXRlOworICAgIGxvbmcgICAgICAgICAgICAgICAgICAgIG1fdXBkYXRlOwogfTsK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9q
IGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagppbmRleCA0ODYzMDYxLi42ODNi
MzEwIDEwMDY0NAotLS0gYS92czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qCisrKyBi
L3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKQEAgLTg2LDcgKzg2LDYgQEAKIAog
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CiAgICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFdhcm5pbmdMZXZlbD5M
ZXZlbDM8L1dhcm5pbmdMZXZlbD4KICAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGlt
aXphdGlvbj4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJ
TkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgpAQCAtMTExLDcgKzExMCw2IEBACiAgIDwvSXRlbURl
ZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KICAgICA8Q2xDb21waWxlPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8
V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgogICAgICAgPE9wdGltaXphdGlvbj5E
aXNhYmxlZDwvT3B0aW1pemF0aW9uPgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJ
TjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CkBAIC0xMzcsNyArMTM1LDYg
QEAKICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CiAgICAgPENsQ29tcGlsZT4KICAgICAgIDxX
YXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPE9wdGltaXphdGlvbj5NYXhT
cGVlZDwvT3B0aW1pemF0aW9uPgogICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1
bmN0aW9uTGV2ZWxMaW5raW5nPgogICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRy
aW5zaWNGdW5jdGlvbnM+CkBAIC0xNjYsNyArMTYzLDYgQEAKICAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgogICAgIDxDbENvbXBpbGU+CiAgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhl
YWRlcj4KICAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KICAgICAg
IDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KICAgICAg
IDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgpkaWZmIC0tZ2l0
IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMy9saXRlYWdlbnQv
TGl0ZUFnZW50LnZjeHByb2oKaW5kZXggYTdkMTBjMC4uY2M1Mjk5MiAxMDA2NDQKLS0tIGEvdnMy
MDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagorKysgYi92czIwMTMvbGl0ZWFnZW50L0xp
dGVBZ2VudC52Y3hwcm9qCkBAIC04Niw3ICs4Niw2IEBACiAgIDwvUHJvcGVydHlHcm91cD4KICAg
PEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgogICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KICAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09w
dGltaXphdGlvbj4KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7
X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgpAQCAtMTEzLDcgKzExMiw2IEBACiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KICAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
ICAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CiAgICAgICA8T3B0aW1p
emF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CiAgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOyUoUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KQEAgLTE0MSw3
ICsxMzksNiBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KICAgICA8Q2xDb21waWxlPgog
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+CiAgICAgICA8T3B0aW1pemF0
aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CiAgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+
dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CiAgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRy
dWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KQEAgLTE3MCw3ICsxNjcsNiBAQAogICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+CiAgICAgPENsQ29tcGlsZT4KICAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNv
bXBpbGVkSGVhZGVyPgogICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9u
PgogICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5n
PgogICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+Ci0t
IAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DbB-0002zI-RQ; Tue, 24 May 2016 14:46:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DbB-0002z0-A0
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:21 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 B6/84-16843-C3964475; Tue, 24 May 2016 14:46:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUtcm0yX
 cYNdGPos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WHjP7aC/0IV567eZGxg7OfvYuTkkBDwl5iy
 9w4riM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i6wGmEBV4lf7R+YQWwWAVWJuVs+s4PYv
 AJuEqc3LGeBmKkhsalhBhuIzQkUf/fhPlhcCKj386bvjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALiLiEALfE7dNTmScw8s1CUjYLSdkCRqZVjOrFqUVlqUW6xnpJRZnpGSW5iZk5uoYGpnq5qcX
 FiempOYlJxXrJ+bmbGIEBxQAEOxj3/nM6xCjJwaQkyluQ5BIuxJeUn1KZkVicEV9UmpNafIhR
 hoNDSYL3WzpQTrAoNT21Ii0zBxjaMGkJDh4lEV5lkDRvcUFibnFmOkTqFKOilDjvLpCEAEgio
 zQPrg0WT5cYZaWEeRmBDhHiKUgtys0sQZV/xSjOwagkzPsaZApPZl4J3PRXQIuZgBb7f3EGWV
 ySiJCSamB0S7xWzJb+XSU2SUS6LqjpRKNEgvOF6S9LZIujWxRkdZss8pXuMlefbvKve+p9MUn
 7eHrAjxmbbBuENipnbvpoYN2WJ7bSLHRL2pqmS88fX1Zdql/B67w16PChzP6PDVlXVryKNJM6
 uzjqdWO9ZMt5tq11HYWHn3xMLJi0ub2h7PTehU4LU5RYijMSDbWYi4oTAVvJEmqiAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1464101178!41149386!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38568 invoked from network); 24 May 2016 14:46:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300195"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:56 +0100
Message-ID: <1464099660-12432-17-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 16/20] Only acknowledge the shutdown if type
	is known
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDEzICsrKysrKysrKysrLS0KIDEgZmlsZSBjaGFu
Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9s
aXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAppbmRl
eCA5ZjZmNTZmLi43MzlhY2JiIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5j
cHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0zMDksOCArMzA5LDggQEAg
dm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKIAogICAgIC8vIGNoZWNrIHNodXRkb3duIHR5
cGUgYW5kIGVuYWN0IHNodXRkb3duCiAgICAgc3RkOjpzdHJpbmcgdHlwZTsKLSAgICBtX2Rldi0+
U3RvcmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgdHlwZSk7Ci0gICAgbV9kZXYtPlN0b3JlUmVt
b3ZlKCJjb250cm9sL3NodXRkb3duIik7CisgICAgaWYgKCFtX2Rldi0+U3RvcmVSZWFkKCJjb250
cm9sL3NodXRkb3duIiwgdHlwZSkpCisgICAgICAgIHJldHVybjsKIAogICAgIENMaXRlQWdlbnQ6
OkxvZygiT25TaHV0ZG93biglcylcbiIsIHR5cGUuY19zdHIoKSk7CiAKQEAgLTMyNiw2ICszMjYs
NyBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgICAgICAgICAgbV9kZXYtPlN0
b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24tc3RhdGUiLCAiZmFpbGVkIik7CiAgICAgICAgICAg
ICBDTGl0ZUFnZW50OjpMb2coIkluaXRpYXRlU3lzdGVtU2h1dGRvd25FeCBmYWlsZWQgJTA4eFxu
IiwgR2V0TGFzdEVycm9yKCkpOwogICAgICAgICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92
ZSgiY29udHJvbC9zaHV0ZG93biIpOwogICAgIH0KICAgICBlbHNlIGlmICh0eXBlID09ICJyZWJv
b3QiKSB7CiAgICAgICAgIEFjcXVpcmVTeXN0ZW1Qcml2aWxlZ2UoU0VfU0hVVERPV05fTkFNRSk7
CkBAIC0zMzgsNiArMzM5LDcgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICAg
ICAgICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duLXN0YXRlIiwgImZhaWxl
ZCIpOwogICAgICAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNodXRkb3du
RXggZmFpbGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKICAgICAgICAgfQorICAgICAgICBt
X2Rldi0+U3RvcmVSZW1vdmUoImNvbnRyb2wvc2h1dGRvd24iKTsKICAgICB9CiAgICAgZWxzZSBp
ZiAodHlwZSA9PSAiaGliZXJuYXRlIikgewogICAgICAgICBBY3F1aXJlU3lzdGVtUHJpdmlsZWdl
KFNFX1NIVVRET1dOX05BTUUpOwpAQCAtMzQ3LDYgKzM0OSw3IEBAIHZvaWQgQ0xpdGVBZ2VudDo6
T25TaHV0ZG93bigpCiAgICAgICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29udHJvbC9oaWJl
cm5hdGlvbi1zdGF0ZSIsICJmYWlsZWQiKTsKICAgICAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygi
U2V0U3lzdGVtUG93ZXJTdGF0ZSBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOwogICAg
ICAgICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpOwog
ICAgIH0KICAgICBlbHNlIGlmICh0eXBlID09ICJzMyIpIHsKICAgICAgICAgQWNxdWlyZVN5c3Rl
bVByaXZpbGVnZShTRV9TSFVURE9XTl9OQU1FKTsKQEAgLTM1Niw2ICszNTksNyBAQCB2b2lkIENM
aXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgICAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImNv
bnRyb2wvczMtc3RhdGUiLCAiZmFpbGVkIik7CiAgICAgICAgICAgICBDTGl0ZUFnZW50OjpMb2co
IlNldFN1c3BlbmRTdGF0ZSBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOwogICAgICAg
ICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpOwogICAg
IH0KIH0KIApAQCAtMzY3LDYgKzM3MSwxMSBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU3VzcGVuZCgp
CiAgICAgICAgIHJldHVybjsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU3VzcGVuZCgld3MpXG4i
LCBtX2Rldi0+UGF0aCgpKTsKIAorICAgIGlmIChtX2N0eHRfc2h1dGRvd24pCisgICAgICAgIG1f
ZGV2LT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgbV9jdHh0X3NodXRk
b3duID0gTlVMTDsKKyAgICBtX2Rldi0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIs
IG1fc2h1dGRvd24sICZtX2N0eHRfc2h1dGRvd24pOworCiAgICAgLy8gYWR2ZXJ0aXNlCiAgICAg
bV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CiAgICAg
Ly8gc2V0IHhlbiB0aW1lCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:21 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DbB-0002zI-RQ; Tue, 24 May 2016 14:46:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DbB-0002z0-A0
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:21 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 B6/84-16843-C3964475; Tue, 24 May 2016 14:46:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUtcm0yX
 cYNdGPos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WHjP7aC/0IV567eZGxg7OfvYuTkkBDwl5iy
 9w4riM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i6wGmEBV4lf7R+YQWwWAVWJuVs+s4PYv
 AJuEqc3LGeBmKkhsalhBhuIzQkUf/fhPlhcCKj386bvjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALiLiEALfE7dNTmScw8s1CUjYLSdkCRqZVjOrFqUVlqUW6xnpJRZnpGSW5iZk5uoYGpnq5qcX
 FiempOYlJxXrJ+bmbGIEBxQAEOxj3/nM6xCjJwaQkyluQ5BIuxJeUn1KZkVicEV9UmpNafIhR
 hoNDSYL3WzpQTrAoNT21Ii0zBxjaMGkJDh4lEV5lkDRvcUFibnFmOkTqFKOilDjvLpCEAEgio
 zQPrg0WT5cYZaWEeRmBDhHiKUgtys0sQZV/xSjOwagkzPsaZApPZl4J3PRXQIuZgBb7f3EGWV
 ySiJCSamB0S7xWzJb+XSU2SUS6LqjpRKNEgvOF6S9LZIujWxRkdZss8pXuMlefbvKve+p9MUn
 7eHrAjxmbbBuENipnbvpoYN2WJ7bSLHRL2pqmS88fX1Zdql/B67w16PChzP6PDVlXVryKNJM6
 uzjqdWO9ZMt5tq11HYWHn3xMLJi0ub2h7PTehU4LU5RYijMSDbWYi4oTAVvJEmqiAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1464101178!41149386!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38568 invoked from network); 24 May 2016 14:46:19 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300195"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:56 +0100
Message-ID: <1464099660-12432-17-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 16/20] Only acknowledge the shutdown if type
	is known
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDEzICsrKysrKysrKysrLS0KIDEgZmlsZSBjaGFu
Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9s
aXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAppbmRl
eCA5ZjZmNTZmLi43MzlhY2JiIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5j
cHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0zMDksOCArMzA5LDggQEAg
dm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKIAogICAgIC8vIGNoZWNrIHNodXRkb3duIHR5
cGUgYW5kIGVuYWN0IHNodXRkb3duCiAgICAgc3RkOjpzdHJpbmcgdHlwZTsKLSAgICBtX2Rldi0+
U3RvcmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgdHlwZSk7Ci0gICAgbV9kZXYtPlN0b3JlUmVt
b3ZlKCJjb250cm9sL3NodXRkb3duIik7CisgICAgaWYgKCFtX2Rldi0+U3RvcmVSZWFkKCJjb250
cm9sL3NodXRkb3duIiwgdHlwZSkpCisgICAgICAgIHJldHVybjsKIAogICAgIENMaXRlQWdlbnQ6
OkxvZygiT25TaHV0ZG93biglcylcbiIsIHR5cGUuY19zdHIoKSk7CiAKQEAgLTMyNiw2ICszMjYs
NyBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgICAgICAgICAgbV9kZXYtPlN0
b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24tc3RhdGUiLCAiZmFpbGVkIik7CiAgICAgICAgICAg
ICBDTGl0ZUFnZW50OjpMb2coIkluaXRpYXRlU3lzdGVtU2h1dGRvd25FeCBmYWlsZWQgJTA4eFxu
IiwgR2V0TGFzdEVycm9yKCkpOwogICAgICAgICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92
ZSgiY29udHJvbC9zaHV0ZG93biIpOwogICAgIH0KICAgICBlbHNlIGlmICh0eXBlID09ICJyZWJv
b3QiKSB7CiAgICAgICAgIEFjcXVpcmVTeXN0ZW1Qcml2aWxlZ2UoU0VfU0hVVERPV05fTkFNRSk7
CkBAIC0zMzgsNiArMzM5LDcgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICAg
ICAgICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duLXN0YXRlIiwgImZhaWxl
ZCIpOwogICAgICAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNodXRkb3du
RXggZmFpbGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKICAgICAgICAgfQorICAgICAgICBt
X2Rldi0+U3RvcmVSZW1vdmUoImNvbnRyb2wvc2h1dGRvd24iKTsKICAgICB9CiAgICAgZWxzZSBp
ZiAodHlwZSA9PSAiaGliZXJuYXRlIikgewogICAgICAgICBBY3F1aXJlU3lzdGVtUHJpdmlsZWdl
KFNFX1NIVVRET1dOX05BTUUpOwpAQCAtMzQ3LDYgKzM0OSw3IEBAIHZvaWQgQ0xpdGVBZ2VudDo6
T25TaHV0ZG93bigpCiAgICAgICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29udHJvbC9oaWJl
cm5hdGlvbi1zdGF0ZSIsICJmYWlsZWQiKTsKICAgICAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygi
U2V0U3lzdGVtUG93ZXJTdGF0ZSBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOwogICAg
ICAgICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpOwog
ICAgIH0KICAgICBlbHNlIGlmICh0eXBlID09ICJzMyIpIHsKICAgICAgICAgQWNxdWlyZVN5c3Rl
bVByaXZpbGVnZShTRV9TSFVURE9XTl9OQU1FKTsKQEAgLTM1Niw2ICszNTksNyBAQCB2b2lkIENM
aXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgICAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImNv
bnRyb2wvczMtc3RhdGUiLCAiZmFpbGVkIik7CiAgICAgICAgICAgICBDTGl0ZUFnZW50OjpMb2co
IlNldFN1c3BlbmRTdGF0ZSBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOwogICAgICAg
ICB9CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93biIpOwogICAg
IH0KIH0KIApAQCAtMzY3LDYgKzM3MSwxMSBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU3VzcGVuZCgp
CiAgICAgICAgIHJldHVybjsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU3VzcGVuZCgld3MpXG4i
LCBtX2Rldi0+UGF0aCgpKTsKIAorICAgIGlmIChtX2N0eHRfc2h1dGRvd24pCisgICAgICAgIG1f
ZGV2LT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgbV9jdHh0X3NodXRk
b3duID0gTlVMTDsKKyAgICBtX2Rldi0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIs
IG1fc2h1dGRvd24sICZtX2N0eHRfc2h1dGRvd24pOworCiAgICAgLy8gYWR2ZXJ0aXNlCiAgICAg
bV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CiAgICAg
Ly8gc2V0IHhlbiB0aW1lCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:41 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DbV-00032X-4r; Tue, 24 May 2016 14:46:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DbT-000328-Lg
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:39 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 A9/C8-12870-E4964475; Tue, 24 May 2016 14:46:38 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeJIrShJLcpLzFFi42JxWrrBXtcv0yX
 cYNVqOYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacebXEqaCGWIVH343sTUwLhXsYuTgkBDwl5j7
 IquLkZODTUBDYkbnYhYQW0RAXWLf561MIDazgJrE9f1drCDlwgKaEv8+e4CEWQRUJa693skKY
 vMKuEks3feZEcSWABqzqWEGG4jNCRR/9+E+2EghAVeJz5u+M0LYShLfFr9ghugVlDg58wkLxC
 oJiYMvQOIgl3FL/O22n8DINwtJ1SwkVQsYmVYxqhenFpWlFuka6yUVZaZnlOQmZuboGhqY6uW
 mFhcnpqfmJCYV6yXn525iBIYSAxDsYNz7z+kQoyQHk5Iob0GSS7gQX1J+SmVGYnFGfFFpTmrx
 IUYZDg4lCd5v6UA5waLU9NSKtMwcYFDDpCU4eJREeJVB0rzFBYm5xZnpEKlTjIpS4ry7QBICI
 ImM0jy4NlgkXWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5Iw72uQKTyZeSVw018BLWYCWuz/xR
 lkcUkiQkqqgZG3fvaC16UXD2Zd3nN30uvfM7kvODx4Gi3wxCYuzXn2s4W/w368qpAsqFy1Lvz
 oA4aPzrbPY4L1nOf9V+U1e3R9Sbb4E5m/s8rWlChaz111P2GmUOkzTdZJL10mpfTsNTzYfCJz
 htoR5oey1zI5Di48zqdqwrWIcdsXwxMT99eqzQ9tK9tqljhDiaU4I9FQi7moOBEAvKj5sJ8CA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1464101196!41159308!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15382 invoked from network); 24 May 2016 14:46:38 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:38 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083095"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:50 +0100
Message-ID: <1464099660-12432-11-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 10/20] Add ServiceInstall
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRkcyBldmVudHMgZm9yIHNodXRkb3duIGFuZCBzdXNwZW5kIGhhbmRsZXJzCgpTaWduZWQtb2Zm
LWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMyArKysKIDIgZmlsZXMg
Y2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAK
aW5kZXggYmE0OGZjMC4uYTg4NzkyNSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtNjMsNyArNjMsMzEg
QEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogCiAvKnN0YXRpYyovIGludCBDTGl0ZUFn
ZW50OjpTZXJ2aWNlSW5zdGFsbCgpCiB7Ci0gICAgcmV0dXJuIC0xOworICAgIFNDX0hBTkRMRSAg
IHN2YywgbWdyOworICAgIGNoYXIgICAgICAgIHBhdGhbTUFYX1BBVEgrMV07CisKKyAgICBtZ3Ig
PSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7CisgICAg
aWYgKG1nciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoR2V0TW9kdWxl
RmlsZU5hbWVBKE5VTEwsIHBhdGgsIE1BWF9QQVRIKSA9PSAwKSB7CisgICAgICAgIENsb3NlU2Vy
dmljZUhhbmRsZShtZ3IpOworICAgICAgICByZXR1cm4gR2V0TGFzdEVycm9yKCk7CisgICAgfQor
ICAgIHBhdGhbTUFYX1BBVEhdID0gMDsKKworICAgIHN2YyA9IENyZWF0ZVNlcnZpY2VBKG1nciwg
U1ZDX05BTUUsIFNWQ19ESVNQTEFZTkFNRSwgU0VSVklDRV9BTExfQUNDRVNTLAorICAgICAgICAg
ICAgICAgICAgICAgICAgU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUywgU0VSVklDRV9BVVRPX1NU
QVJULAorICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9FUlJPUl9OT1JNQUwsIHBhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsK
KyAgICBpZiAoc3ZjID09IE5VTEwpIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7
CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9CisKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3Zj
KTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsKKyAgICByZXR1cm4gMDsKIH0KIAogLypz
dGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZVVuaW5zdGFsbCgpCkBAIC0xOTIsOCArMjE2
LDM4IEBAIHZvaWQgQ0xpdGVBZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBk
YXRhKQogCiBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpCiB7Ci0gICAgV2FpdEZv
clNpbmdsZU9iamVjdChtX3N2Y19zdG9wLCBJTkZJTklURSk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIEhBTkRMRSAgZXZ0c1szXSA9IHsgbV9zdmNfc3RvcCwgbV9zaHV0ZG93biwgbV9zdXNwZW5k
IH07CisgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygzLCBldnRzLCBG
QUxTRSwgSU5GSU5JVEUpOworICAgIHN3aXRjaCAod2FpdCkgeworICAgIGNhc2UgV0FJVF9PQkpF
Q1RfMDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBzZXJ2aWNlIHN0b3AgZXZlbnQKKworICAg
IGNhc2UgV0FJVF9PQkpFQ1RfMCsxOgorICAgICAgICBPblNodXRkb3duKCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6CisgICAgICAgIE9uU3VzcGVuZCgpOwor
ICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdHJ1ZTsgLy8ga2VlcCBsb29waW5nCit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25T
aHV0ZG93bigpCit7CisgICAgaWYgKG1fZGV2ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAg
ICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7Cit9
CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TdXNwZW5kKCkKK3sKKyAgICBpZiAobV9kZXYgPT0gTlVM
TCkKKyAgICAgICAgcmV0dXJuOworICAgIENMaXRlQWdlbnQ6OkxvZygiT25TdXNwZW5kKCV3cylc
biIsIG1fZGV2LT5QYXRoKCkpOwogfQogCiB2b2lkIENMaXRlQWdlbnQ6OlNldFNlcnZpY2VTdGF0
dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQgLyo9IDAqLywgRFdPUkQgaGludCAvKj0gMCovKQpk
aWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmgKaW5kZXggMmVjMWY1NS4uYjE5ZDhlMiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC02OCw2ICs2
OCw5IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPbkRldmljZUV2ZW50
KERXT1JELCBMUFZPSUQpOwogICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CiAKKyAgICB2b2lk
IE9uU2h1dGRvd24oKTsKKyAgICB2b2lkIE9uU3VzcGVuZCgpOworCiBwcml2YXRlOiAvLyBzZXJ2
aWNlIHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JE
IGV4aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7CiAgICAgdm9pZCBXSU5BUEkgX19TZXJ2aWNlTWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:41 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5DbV-00032X-4r; Tue, 24 May 2016 14:46:41 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5DbT-000328-Lg
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:39 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 A9/C8-12870-E4964475; Tue, 24 May 2016 14:46:38 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeJIrShJLcpLzFFi42JxWrrBXtcv0yX
 cYNVqOYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacebXEqaCGWIVH343sTUwLhXsYuTgkBDwl5j7
 IquLkZODTUBDYkbnYhYQW0RAXWLf561MIDazgJrE9f1drCDlwgKaEv8+e4CEWQRUJa693skKY
 vMKuEks3feZEcSWABqzqWEGG4jNCRR/9+E+2EghAVeJz5u+M0LYShLfFr9ghugVlDg58wkLxC
 oJiYMvQOIgl3FL/O22n8DINwtJ1SwkVQsYmVYxqhenFpWlFuka6yUVZaZnlOQmZuboGhqY6uW
 mFhcnpqfmJCYV6yXn525iBIYSAxDsYNz7z+kQoyQHk5Iob0GSS7gQX1J+SmVGYnFGfFFpTmrx
 IUYZDg4lCd5v6UA5waLU9NSKtMwcYFDDpCU4eJREeJVB0rzFBYm5xZnpEKlTjIpS4ry7QBICI
 ImM0jy4NlgkXWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5Iw72uQKTyZeSVw018BLWYCWuz/xR
 lkcUkiQkqqgZG3fvaC16UXD2Zd3nN30uvfM7kvODx4Gi3wxCYuzXn2s4W/w368qpAsqFy1Lvz
 oA4aPzrbPY4L1nOf9V+U1e3R9Sbb4E5m/s8rWlChaz111P2GmUOkzTdZJL10mpfTsNTzYfCJz
 htoR5oey1zI5Di48zqdqwrWIcdsXwxMT99eqzQ9tK9tqljhDiaU4I9FQi7moOBEAvKj5sJ8CA
 AA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1464101196!41159308!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15382 invoked from network); 24 May 2016 14:46:38 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:38 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083095"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:50 +0100
Message-ID: <1464099660-12432-11-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 10/20] Add ServiceInstall
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRkcyBldmVudHMgZm9yIHNodXRkb3duIGFuZCBzdXNwZW5kIGhhbmRsZXJzCgpTaWduZWQtb2Zm
LWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMyArKysKIDIgZmlsZXMg
Y2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z
cmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAK
aW5kZXggYmE0OGZjMC4uYTg4NzkyNSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdl
bnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtNjMsNyArNjMsMzEg
QEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogCiAvKnN0YXRpYyovIGludCBDTGl0ZUFn
ZW50OjpTZXJ2aWNlSW5zdGFsbCgpCiB7Ci0gICAgcmV0dXJuIC0xOworICAgIFNDX0hBTkRMRSAg
IHN2YywgbWdyOworICAgIGNoYXIgICAgICAgIHBhdGhbTUFYX1BBVEgrMV07CisKKyAgICBtZ3Ig
PSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7CisgICAg
aWYgKG1nciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoR2V0TW9kdWxl
RmlsZU5hbWVBKE5VTEwsIHBhdGgsIE1BWF9QQVRIKSA9PSAwKSB7CisgICAgICAgIENsb3NlU2Vy
dmljZUhhbmRsZShtZ3IpOworICAgICAgICByZXR1cm4gR2V0TGFzdEVycm9yKCk7CisgICAgfQor
ICAgIHBhdGhbTUFYX1BBVEhdID0gMDsKKworICAgIHN2YyA9IENyZWF0ZVNlcnZpY2VBKG1nciwg
U1ZDX05BTUUsIFNWQ19ESVNQTEFZTkFNRSwgU0VSVklDRV9BTExfQUNDRVNTLAorICAgICAgICAg
ICAgICAgICAgICAgICAgU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUywgU0VSVklDRV9BVVRPX1NU
QVJULAorICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9FUlJPUl9OT1JNQUwsIHBhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsK
KyAgICBpZiAoc3ZjID09IE5VTEwpIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7
CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9CisKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoc3Zj
KTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsKKyAgICByZXR1cm4gMDsKIH0KIAogLypz
dGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZVVuaW5zdGFsbCgpCkBAIC0xOTIsOCArMjE2
LDM4IEBAIHZvaWQgQ0xpdGVBZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBk
YXRhKQogCiBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpCiB7Ci0gICAgV2FpdEZv
clNpbmdsZU9iamVjdChtX3N2Y19zdG9wLCBJTkZJTklURSk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIEhBTkRMRSAgZXZ0c1szXSA9IHsgbV9zdmNfc3RvcCwgbV9zaHV0ZG93biwgbV9zdXNwZW5k
IH07CisgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygzLCBldnRzLCBG
QUxTRSwgSU5GSU5JVEUpOworICAgIHN3aXRjaCAod2FpdCkgeworICAgIGNhc2UgV0FJVF9PQkpF
Q1RfMDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBzZXJ2aWNlIHN0b3AgZXZlbnQKKworICAg
IGNhc2UgV0FJVF9PQkpFQ1RfMCsxOgorICAgICAgICBPblNodXRkb3duKCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6CisgICAgICAgIE9uU3VzcGVuZCgpOwor
ICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdHJ1ZTsgLy8ga2VlcCBsb29waW5nCit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25T
aHV0ZG93bigpCit7CisgICAgaWYgKG1fZGV2ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAg
ICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7Cit9
CisKK3ZvaWQgQ0xpdGVBZ2VudDo6T25TdXNwZW5kKCkKK3sKKyAgICBpZiAobV9kZXYgPT0gTlVM
TCkKKyAgICAgICAgcmV0dXJuOworICAgIENMaXRlQWdlbnQ6OkxvZygiT25TdXNwZW5kKCV3cylc
biIsIG1fZGV2LT5QYXRoKCkpOwogfQogCiB2b2lkIENMaXRlQWdlbnQ6OlNldFNlcnZpY2VTdGF0
dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQgLyo9IDAqLywgRFdPUkQgaGludCAvKj0gMCovKQpk
aWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmgKaW5kZXggMmVjMWY1NS4uYjE5ZDhlMiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC02OCw2ICs2
OCw5IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPbkRldmljZUV2ZW50
KERXT1JELCBMUFZPSUQpOwogICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CiAKKyAgICB2b2lk
IE9uU2h1dGRvd24oKTsKKyAgICB2b2lkIE9uU3VzcGVuZCgpOworCiBwcml2YXRlOiAvLyBzZXJ2
aWNlIHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JE
IGV4aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7CiAgICAgdm9pZCBXSU5BUEkgX19TZXJ2aWNlTWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbm-00036B-Dq; Tue, 24 May 2016 14:46:58 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbk-00034Y-Tu
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:57 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 8C/75-28931-06964475; Tue, 24 May 2016 14:46:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjc+0yX
 c4EWrrMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOHtkG3PBdJmK95ttGxhfi3YxcnJICPhL3Fv9
 mxnEZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/F2sXIweHsECcxK1J1iBhFgFViZvnmsFKe
 AXcJK783MEGMVJDYlPDDDCbEyj+7sN9sJFCAq4Snzd9Z4SwlSS+LX7BDNErKHFy5hMWiFUSEg
 dfQMQlBLglbp+eyjyBkW8WkrJZSMoWMDKtYtQoTi0qSy3SNTTXSyrKTM8oyU3MzNE1NDDVy00
 tLk5MT81JTCrWS87P3cQIDCcGINjBePG05yFGSQ4mJVHegiSXcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvN/SgXKCRanpqRVpmTnAwIZJS3DwKInwBmUApXmLCxJzizPTIVKnGBWlxHkNQRICI
 ImM0jy4Nlg0XWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5IwrybIFJ7MvBK46a+AFjMBLfb/4g
 yyuCQRISXVwLj6YK3k73Mqluvrub78mLrGvX7NH+2G1zoJN//Uqz700TFYVDZpFe/P+XNZw71
 0Hqud7tmZNenhr/VNSkZmYuZ7ebcKfnmyhlNxYnVZd2zmjm21k66d0+33Yhax7TlxKDAlwDGw
 7G++3JxuHTUvHz2O9Tfc55x+5y8vnF+hUXRn4/VltZftJJVYijMSDbWYi4oTAbveXk+hAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19787 invoked from network); 24 May 2016 14:46:55 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:55 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300381"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:51 +0100
Message-ID: <1464099660-12432-12-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 11/20] Add Setup/teardown of active device
	and logging to OnSuspend/OnShutdown
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgIDUgKysr
KysKIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm
ZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmNwcAppbmRleCBhODg3OTI1Li5iYjE3ZTkxIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0x
NDksNyArMTQ5LDkgQEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogICAgIHJldHVybiBz
X3NlcnZpY2UuX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChyZXEsIGV2dCwgZGF0YSwgY3R4dCk7
CiB9CiAKLUNMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMo
R1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RldihOVUxMKQorQ0xpdGVBZ2VudDo6Q0xpdGVB
Z2VudCgpIDoKKyAgICBtX2hhbmRsZShOVUxMKSwgbV9kZXZzKEdVSURfSU5URVJGQUNFX1hFTklG
QUNFKSwgbV9kZXYoTlVMTCksCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRfc3Vz
cGVuZChOVUxMKSwgbV91cGRhdGUoMCkKIHsKICAgICBtX3N0YXR1cy5kd1NlcnZpY2VUeXBlICAg
ICAgICA9IFNFUlZJQ0VfV0lOMzI7IAogICAgIG1fc3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAg
ID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAKQEAgLTE4NCw2ICsxODYsMTggQEAgQ0xpdGVBZ2Vu
dDo6fkNMaXRlQWdlbnQoKQogICAgICAgICBtX2RldiA9IChDWGVuSWZhY2VJdGYqKWRldjsKICAg
ICAgICAgLy8gc2V0dGluZyBhY3RpdmUgZGV2aWNlCiAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygi
U3RhcnRpbmcgQWN0aXZlIERldmljZVxuIik7CisKKyAgICAgICAgLy8gcmVnaXN0ZXIgd2F0Y2gK
KyAgICAgICAgbV9kZXYtPlN0b3JlQWRkV2F0Y2goImNvbnRyb2wvc2h1dGRvd24iLCBtX3NodXRk
b3duLCAmbV9jdHh0X3NodXRkb3duKTsKKyAgICAgICAgLy8gcmVnaXN0ZXIgc3VzcGVuZCBldmVu
dAorICAgICAgICBtX2Rldi0+U3VzcGVuZFJlZ2lzdGVyKG1fc3VzcGVuZCwgJm1fY3R4dF9zdXNw
ZW5kKTsKKworICAgICAgICAvLyBhZHZlcnRpc2UKKyAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUo
ImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CisgICAgICAgIC8vIHNldCB4ZW4gdGlt
ZQorICAgICAgICBTZXRYZW5UaW1lKCk7CisgICAgICAgIC8vIGtpY2sgeGFwaQorICAgICAgICBL
aWNrWGFwaSgpOwogICAgIH0KIH0KIApAQCAtMTk0LDYgKzIwOCwxOCBAQCBDTGl0ZUFnZW50Ojp+
Q0xpdGVBZ2VudCgpCiAgICAgICAgIG1fZGV2ID0gTlVMTDsKICAgICAgICAgLy8gYWN0aXZlIGRl
dmljZSByZW1vdmVkCiAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiQWN0aXZlIERldmljZSBSZW1v
dmVkXG4iKTsKKworICAgICAgICAvLyB1bmFkdmVydGlzZQorICAgICAgICBtX2Rldi0+U3RvcmVS
ZW1vdmUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIpOworICAgICAgICAvLyBraWNrIHhhcGkK
KyAgICAgICAgS2lja1hhcGkoKTsKKworICAgICAgICAvLyB1bnJlZ2lzdGVyIHN1c3BlbmQgZXZl
bnQKKyAgICAgICAgbV9kZXYtPlN1c3BlbmREZXJlZ2lzdGVyKG1fY3R4dF9zdXNwZW5kKTsKKyAg
ICAgICAgbV9jdHh0X3N1c3BlbmQgPSBOVUxMOworICAgICAgICAvLyB1bnJlZ2lzdGVyIHdhdGNo
CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAg
ICAgIG1fY3R4dF9zaHV0ZG93biA9IE5VTEw7CiAgICAgfQogfQogCkBAIC0yNDEsNiArMjY3LDgg
QEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICBpZiAobV9kZXYgPT0gTlVMTCkK
ICAgICAgICAgcmV0dXJuOwogICAgIENMaXRlQWdlbnQ6OkxvZygiT25TaHV0ZG93bigld3MpXG4i
LCBtX2Rldi0+UGF0aCgpKTsKKworICAgIC8vIGNoZWNrIHNodXRkb3duIHR5cGUgYW5kIGVuYWN0
IHNodXRkb3duCiB9CiAKIHZvaWQgQ0xpdGVBZ2VudDo6T25TdXNwZW5kKCkKQEAgLTI0OCw2ICsy
NzYsMjcgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQogICAgIGlmIChtX2RldiA9PSBO
VUxMKQogICAgICAgICByZXR1cm47CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblN1c3BlbmQoJXdz
KVxuIiwgbV9kZXYtPlBhdGgoKSk7CisKKyAgICAvLyBhZHZlcnRpc2UKKyAgICBtX2Rldi0+U3Rv
cmVXcml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsKKyAgICAvLyBzZXQgeGVu
IHRpbWUKKyAgICBTZXRYZW5UaW1lKCk7CisgICAgLy8ga2ljayB4YXBpCisgICAgS2lja1hhcGko
KTsKK30KKwordm9pZCBDTGl0ZUFnZW50OjpTZXRYZW5UaW1lKCkKK3sKKyAgICBDTGl0ZUFnZW50
OjpMb2coIlNldFhlblRpbWUoKVxuIik7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6S2lja1hhcGko
KQoreworICAgIGNoYXIgdmFsdWVbMzJdOworICAgIF9zbnByaW50Zl9zKHZhbHVlLCBzaXplb2Yo
dmFsdWUpLCAzMSwgIiVJNjRkIiwgbV91cGRhdGUpOworICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJk
YXRhL3VwZGF0ZV9jbnQiLCB2YWx1ZSk7CisgICAgbV9kZXYtPlN0b3JlV3JpdGUoImRhdGEvdXBk
YXRlZCIsICIxIik7CisgICAgKyttX3VwZGF0ZTsKIH0KIAogdm9pZCBDTGl0ZUFnZW50OjpTZXRT
ZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQg
Lyo9IDAqLykKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmggYi9zcmMvbGl0
ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IGIxOWQ4ZTIuLmE5NWMzOTQgMTAwNjQ0Ci0tLSBhL3Ny
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaApA
QCAtNzAsNiArNzAsOCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cwogCiAgICAgdm9pZCBP
blNodXRkb3duKCk7CiAgICAgdm9pZCBPblN1c3BlbmQoKTsKKyAgICB2b2lkIFNldFhlblRpbWUo
KTsKKyAgICB2b2lkIEtpY2tYYXBpKCk7CiAKIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAog
ICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9IDAsIERX
T1JEIGhpbnQgPSAwKTsKQEAgLTg0LDYgKzg2LDkgQEAgcHJpdmF0ZTogLy8gc2VydmljZSBzdXBw
b3J0CiAKICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2RldnM7CiAgICAgQ1hlbklmYWNl
SXRmKiAgICAgICAgICAgbV9kZXY7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9jdHh0
X3NodXRkb3duOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5kOwor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgIG1fdXBkYXRlOwogfTsKIAogI2VuZGlmCi0tIAox
LjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbm-00036B-Dq; Tue, 24 May 2016 14:46:58 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbk-00034Y-Tu
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:57 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 8C/75-28931-06964475; Tue, 24 May 2016 14:46:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjc+0yX
 c4EWrrMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOHtkG3PBdJmK95ttGxhfi3YxcnJICPhL3Fv9
 mxnEZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/F2sXIweHsECcxK1J1iBhFgFViZvnmsFKe
 AXcJK783MEGMVJDYlPDDDCbEyj+7sN9sJFCAq4Snzd9Z4SwlSS+LX7BDNErKHFy5hMWiFUSEg
 dfQMQlBLglbp+eyjyBkW8WkrJZSMoWMDKtYtQoTi0qSy3SNTTXSyrKTM8oyU3MzNE1NDDVy00
 tLk5MT81JTCrWS87P3cQIDCcGINjBePG05yFGSQ4mJVHegiSXcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvN/SgXKCRanpqRVpmTnAwIZJS3DwKInwBmUApXmLCxJzizPTIVKnGBWlxHkNQRICI
 ImM0jy4Nlg0XWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5IwrybIFJ7MvBK46a+AFjMBLfb/4g
 yyuCQRISXVwLj6YK3k73Mqluvrub78mLrGvX7NH+2G1zoJN//Uqz700TFYVDZpFe/P+XNZw71
 0Hqud7tmZNenhr/VNSkZmYuZ7ebcKfnmyhlNxYnVZd2zmjm21k66d0+33Yhax7TlxKDAlwDGw
 7G++3JxuHTUvHz2O9Tfc55x+5y8vnF+hUXRn4/VltZftJJVYijMSDbWYi4oTAbveXk+hAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19787 invoked from network); 24 May 2016 14:46:55 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:55 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300381"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:51 +0100
Message-ID: <1464099660-12432-12-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 11/20] Add Setup/teardown of active device
	and logging to OnSuspend/OnShutdown
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgIDUgKysr
KysKIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm
ZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmNwcAppbmRleCBhODg3OTI1Li5iYjE3ZTkxIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0x
NDksNyArMTQ5LDkgQEAgc3RhdGljIENMaXRlQWdlbnQgc19zZXJ2aWNlOwogICAgIHJldHVybiBz
X3NlcnZpY2UuX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChyZXEsIGV2dCwgZGF0YSwgY3R4dCk7
CiB9CiAKLUNMaXRlQWdlbnQ6OkNMaXRlQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2RldnMo
R1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RldihOVUxMKQorQ0xpdGVBZ2VudDo6Q0xpdGVB
Z2VudCgpIDoKKyAgICBtX2hhbmRsZShOVUxMKSwgbV9kZXZzKEdVSURfSU5URVJGQUNFX1hFTklG
QUNFKSwgbV9kZXYoTlVMTCksCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRfc3Vz
cGVuZChOVUxMKSwgbV91cGRhdGUoMCkKIHsKICAgICBtX3N0YXR1cy5kd1NlcnZpY2VUeXBlICAg
ICAgICA9IFNFUlZJQ0VfV0lOMzI7IAogICAgIG1fc3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAg
ID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOyAKQEAgLTE4NCw2ICsxODYsMTggQEAgQ0xpdGVBZ2Vu
dDo6fkNMaXRlQWdlbnQoKQogICAgICAgICBtX2RldiA9IChDWGVuSWZhY2VJdGYqKWRldjsKICAg
ICAgICAgLy8gc2V0dGluZyBhY3RpdmUgZGV2aWNlCiAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygi
U3RhcnRpbmcgQWN0aXZlIERldmljZVxuIik7CisKKyAgICAgICAgLy8gcmVnaXN0ZXIgd2F0Y2gK
KyAgICAgICAgbV9kZXYtPlN0b3JlQWRkV2F0Y2goImNvbnRyb2wvc2h1dGRvd24iLCBtX3NodXRk
b3duLCAmbV9jdHh0X3NodXRkb3duKTsKKyAgICAgICAgLy8gcmVnaXN0ZXIgc3VzcGVuZCBldmVu
dAorICAgICAgICBtX2Rldi0+U3VzcGVuZFJlZ2lzdGVyKG1fc3VzcGVuZCwgJm1fY3R4dF9zdXNw
ZW5kKTsKKworICAgICAgICAvLyBhZHZlcnRpc2UKKyAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUo
ImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CisgICAgICAgIC8vIHNldCB4ZW4gdGlt
ZQorICAgICAgICBTZXRYZW5UaW1lKCk7CisgICAgICAgIC8vIGtpY2sgeGFwaQorICAgICAgICBL
aWNrWGFwaSgpOwogICAgIH0KIH0KIApAQCAtMTk0LDYgKzIwOCwxOCBAQCBDTGl0ZUFnZW50Ojp+
Q0xpdGVBZ2VudCgpCiAgICAgICAgIG1fZGV2ID0gTlVMTDsKICAgICAgICAgLy8gYWN0aXZlIGRl
dmljZSByZW1vdmVkCiAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiQWN0aXZlIERldmljZSBSZW1v
dmVkXG4iKTsKKworICAgICAgICAvLyB1bmFkdmVydGlzZQorICAgICAgICBtX2Rldi0+U3RvcmVS
ZW1vdmUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIpOworICAgICAgICAvLyBraWNrIHhhcGkK
KyAgICAgICAgS2lja1hhcGkoKTsKKworICAgICAgICAvLyB1bnJlZ2lzdGVyIHN1c3BlbmQgZXZl
bnQKKyAgICAgICAgbV9kZXYtPlN1c3BlbmREZXJlZ2lzdGVyKG1fY3R4dF9zdXNwZW5kKTsKKyAg
ICAgICAgbV9jdHh0X3N1c3BlbmQgPSBOVUxMOworICAgICAgICAvLyB1bnJlZ2lzdGVyIHdhdGNo
CisgICAgICAgIG1fZGV2LT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAg
ICAgIG1fY3R4dF9zaHV0ZG93biA9IE5VTEw7CiAgICAgfQogfQogCkBAIC0yNDEsNiArMjY3LDgg
QEAgdm9pZCBDTGl0ZUFnZW50OjpPblNodXRkb3duKCkKICAgICBpZiAobV9kZXYgPT0gTlVMTCkK
ICAgICAgICAgcmV0dXJuOwogICAgIENMaXRlQWdlbnQ6OkxvZygiT25TaHV0ZG93bigld3MpXG4i
LCBtX2Rldi0+UGF0aCgpKTsKKworICAgIC8vIGNoZWNrIHNodXRkb3duIHR5cGUgYW5kIGVuYWN0
IHNodXRkb3duCiB9CiAKIHZvaWQgQ0xpdGVBZ2VudDo6T25TdXNwZW5kKCkKQEAgLTI0OCw2ICsy
NzYsMjcgQEAgdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQogICAgIGlmIChtX2RldiA9PSBO
VUxMKQogICAgICAgICByZXR1cm47CiAgICAgQ0xpdGVBZ2VudDo6TG9nKCJPblN1c3BlbmQoJXdz
KVxuIiwgbV9kZXYtPlBhdGgoKSk7CisKKyAgICAvLyBhZHZlcnRpc2UKKyAgICBtX2Rldi0+U3Rv
cmVXcml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsKKyAgICAvLyBzZXQgeGVu
IHRpbWUKKyAgICBTZXRYZW5UaW1lKCk7CisgICAgLy8ga2ljayB4YXBpCisgICAgS2lja1hhcGko
KTsKK30KKwordm9pZCBDTGl0ZUFnZW50OjpTZXRYZW5UaW1lKCkKK3sKKyAgICBDTGl0ZUFnZW50
OjpMb2coIlNldFhlblRpbWUoKVxuIik7Cit9CisKK3ZvaWQgQ0xpdGVBZ2VudDo6S2lja1hhcGko
KQoreworICAgIGNoYXIgdmFsdWVbMzJdOworICAgIF9zbnByaW50Zl9zKHZhbHVlLCBzaXplb2Yo
dmFsdWUpLCAzMSwgIiVJNjRkIiwgbV91cGRhdGUpOworICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJk
YXRhL3VwZGF0ZV9jbnQiLCB2YWx1ZSk7CisgICAgbV9kZXYtPlN0b3JlV3JpdGUoImRhdGEvdXBk
YXRlZCIsICIxIik7CisgICAgKyttX3VwZGF0ZTsKIH0KIAogdm9pZCBDTGl0ZUFnZW50OjpTZXRT
ZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQg
Lyo9IDAqLykKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmggYi9zcmMvbGl0
ZWFnZW50L0xpdGVBZ2VudC5oCmluZGV4IGIxOWQ4ZTIuLmE5NWMzOTQgMTAwNjQ0Ci0tLSBhL3Ny
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaApA
QCAtNzAsNiArNzAsOCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cwogCiAgICAgdm9pZCBP
blNodXRkb3duKCk7CiAgICAgdm9pZCBPblN1c3BlbmQoKTsKKyAgICB2b2lkIFNldFhlblRpbWUo
KTsKKyAgICB2b2lkIEtpY2tYYXBpKCk7CiAKIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAog
ICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9IDAsIERX
T1JEIGhpbnQgPSAwKTsKQEAgLTg0LDYgKzg2LDkgQEAgcHJpdmF0ZTogLy8gc2VydmljZSBzdXBw
b3J0CiAKICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2RldnM7CiAgICAgQ1hlbklmYWNl
SXRmKiAgICAgICAgICAgbV9kZXY7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9jdHh0
X3NodXRkb3duOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5kOwor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgIG1fdXBkYXRlOwogfTsKIAogI2VuZGlmCi0tIAox
LjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037H-Fj; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbl-00035H-PN
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:57 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 D9/69-12870-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHSDvW5Cpku
 4wdIGbYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfnhXNaCKZIV0+5MYGxg3CTSxcjJISHgL7Hq
 yXpmEJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgJPElUX72UBsFgFVicOd6xhBb
 F4BN4nVX34xQ8zUkNjUMAOshhMo/u7DfbCZQgKuEp83fWeEsJUkvi1+wQzRKyhxcuYTFohdEh
 IHX7yAmsMtcfv0VOYJjHyzkJTNQlK2gJFpFaNGcWpRWWqRrqGBXlJRZnpGSW5iZg6QZ6qXm1p
 cnJiempOYVKyXnJ+7iREYUgxAsINxzVTnQ4ySHExKorwFSS7hQnxJ+SmVGYnFGfFFpTmpxYcY
 ZTg4lCR4v6UD5QSLUtNTK9Iyc4DBDZOW4OBREuENygBK8xYXJOYWZ6ZDpE4xKkqJ8xqCJARAE
 hmleXBtsIi6xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWFeTZApPJl5JXDTXwEtZgJa7P/FGW
 RxSSJCSqqB0WhT6l+T9zauIcbLc3hLi3tfd5g8KuNaeyC36ILR8eKCaGatZR+E3h16pL6O51Z
 HbVnR7V21K3x+5poLnzootdTuydlWi1NztivHRKzwThI5/qVO7YjTY21xS26u/PzrrXv9Zx4v
 C/wm8DWNTfW7d/UJ1nT9pPmnzjKyiXsZXVo2WTNq0mwTJZbijERDLeai4kQAbA+53aMCAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1464101215!25315331!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52303 invoked from network); 24 May 2016 14:46:56 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:56 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083235"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:54 +0100
Message-ID: <1464099660-12432-15-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 14/20] Protect active device with critical
	section
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBzaG91bGQgcHJldmVudCByYWNlIGNvbmRpdGlvbnMgZHVlIHRvIGRldmljZSByZW1vdmFs
IHdoaWxlCmN1cnJlbnRseSBhdHRlbXB0aW5nIG9wZXJhdGlvbnMuIFdpbGwgZW5zdXJlIHRoZSBt
X2RldiBwb2ludGVyCmlzIG5vdCByZW1vdmVkIGR1cmluZyBhIE9uU3VzcGVuZCBvciBPblNodXRk
b3duIG9wZXJhdGlvbgoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPgotLS0KIHNyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDMyICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMSAr
CiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVB
Z2VudC5jcHAKaW5kZXggYjYxOTY3Zi4uZGI2YzNiOSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtNDIs
NiArNDIsMjQgQEAKICNkZWZpbmUgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZNjQgIlNPRlRXQVJF
XFxXb3c2NDMyTm9kZVxcQ2l0cml4XFxYZW5Ub29scyIKICNlbmRpZgogCitjbGFzcyBDQ3JpdFNl
YworeworcHVibGljOgorICAgIENDcml0U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KTsKKyAg
ICB+Q0NyaXRTZWMoKTsKK3ByaXZhdGU6CisgICAgTFBDUklUSUNBTF9TRUNUSU9OIG1fY3JpdDsK
K307CisKK0NDcml0U2VjOjpDQ3JpdFNlYyhMUENSSVRJQ0FMX1NFQ1RJT04gY3JpdCkgOiBtX2Ny
aXQoY3JpdCkKK3sKKyAgICBFbnRlckNyaXRpY2FsU2VjdGlvbihtX2NyaXQpOworfQorQ0NyaXRT
ZWM6On5DQ3JpdFNlYygpCit7CisgICAgTGVhdmVDcml0aWNhbFNlY3Rpb24obV9jcml0KTsKK30K
KwogaW50IF9fc3RkY2FsbCBXaW5NYWluKEhJTlNUQU5DRSBoSW5zdGFuY2UsIEhJTlNUQU5DRSBp
Z25vcmUsIExQU1RSIGxwQ21kTGluZSwgaW50IG5DbWRTaG93KQogewogICAgIGlmIChzdHJsZW4o
bHBDbWRMaW5lKSAhPSAwKSB7CkBAIC0xNjksNyArMTg3LDkgQEAgQ0xpdGVBZ2VudDo6Q0xpdGVB
Z2VudCgpIDoKIAogICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOwogICAgIG1fc2h1dGRvd24gPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOwotICAgIG1fc3VzcGVuZCAgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOyAKKyAgICBtX3N1c3BlbmQgID0gQ3JlYXRlRXZlbnQoRkFMU0UsIE5VTEwsIE5V
TEwsIEZBTFNFKTsKKworICAgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7CiB9
CiAKIENMaXRlQWdlbnQ6On5DTGl0ZUFnZW50KCkKQEAgLTE3Nyw2ICsxOTcsOCBAQCBDTGl0ZUFn
ZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiAgICAgQ2xv
c2VIYW5kbGUobV9zaHV0ZG93bik7CiAgICAgQ2xvc2VIYW5kbGUobV9zdXNwZW5kKTsKKworICAg
IERlbGV0ZUNyaXRpY2FsU2VjdGlvbigmbV9jcml0KTsKIH0KIAogLyp2aXJ0dWFsKi8gQ0Rldmlj
ZSogQ0xpdGVBZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCkBAIC0xODgsNiArMjEw
LDggQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8gdm9pZCBDTGl0ZUFn
ZW50OjpPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldikKIHsKICAgICBDTGl0ZUFnZW50OjpMb2co
Ik9uRGV2aWNlQWRkZWQoJXdzKVxuIiwgZGV2LT5QYXRoKCkpOworCisgICAgQ0NyaXRTZWMgY3Jp
dCgmbV9jcml0KTsKICAgICBpZiAobV9kZXYgPT0gTlVMTCkgewogICAgICAgICBtX2RldiA9IChD
WGVuSWZhY2VJdGYqKWRldjsKICAgICAgICAgLy8gc2V0dGluZyBhY3RpdmUgZGV2aWNlCkBAIC0y
MTAsNiArMjM0LDggQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8gdm9p
ZCBDTGl0ZUFnZW50OjpPbkRldmljZVJlbW92ZWQoQ0RldmljZSogZGV2KQogewogICAgIENMaXRl
QWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKKworICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CiAgICAgaWYgKChDWGVuSWZhY2VJdGYqKWRldiA9PSBt
X2RldikgewogICAgICAgICAvLyBhY3RpdmUgZGV2aWNlIHJlbW92ZWQKICAgICAgICAgQ0xpdGVB
Z2VudDo6TG9nKCJBY3RpdmUgRGV2aWNlIFJlbW92ZWRcbiIpOwpAQCAtMjczLDYgKzI5OSw4IEBA
IGJvb2wgQ0xpdGVBZ2VudDo6U2VydmljZU1haW5Mb29wKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpP
blNodXRkb3duKCkKIHsKKyAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOworCiAgICAgaWYgKG1f
ZGV2ID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7CkBAIC0yODYsNiArMzE0LDggQEAgdm9pZCBD
TGl0ZUFnZW50OjpPblNodXRkb3duKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQog
eworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisKICAgICBpZiAobV9kZXYgPT0gTlVMTCkK
ICAgICAgICAgcmV0dXJuOwogICAgIENMaXRlQWdlbnQ6OkxvZygiT25TdXNwZW5kKCV3cylcbiIs
IG1fZGV2LT5QYXRoKCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBi
L3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKaW5kZXggOTdjNjUxNC4uZTNhMjU3MyAxMDA2NDQK
LS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVB
Z2VudC5oCkBAIC04Nyw2ICs4Nyw3IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAg
IEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc2h1dGRvd247CiAgICAgSEFORExFICAgICAgICAg
ICAgICAgICAgbV9zdXNwZW5kOwogCisgICAgQ1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0
OwogICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2czsKICAgICBDWGVuSWZhY2VJdGYq
ICAgICAgICAgICBtX2RldjsKICAgICB2b2lkKiAgICAgICAgICAgICAgICAgICBtX2N0eHRfc2h1
dGRvd247Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037H-Fj; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbl-00035H-PN
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:57 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 D9/69-12870-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHSDvW5Cpku
 4wdIGbYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfnhXNaCKZIV0+5MYGxg3CTSxcjJISHgL7Hq
 yXpmEJtNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgJPElUX72UBsFgFVicOd6xhBb
 F4BN4nVX34xQ8zUkNjUMAOshhMo/u7DfbCZQgKuEp83fWeEsJUkvi1+wQzRKyhxcuYTFohdEh
 IHX7yAmsMtcfv0VOYJjHyzkJTNQlK2gJFpFaNGcWpRWWqRrqGBXlJRZnpGSW5iZg6QZ6qXm1p
 cnJiempOYVKyXnJ+7iREYUgxAsINxzVTnQ4ySHExKorwFSS7hQnxJ+SmVGYnFGfFFpTmpxYcY
 ZTg4lCR4v6UD5QSLUtNTK9Iyc4DBDZOW4OBREuENygBK8xYXJOYWZ6ZDpE4xKkqJ8xqCJARAE
 hmleXBtsIi6xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWFeTZApPJl5JXDTXwEtZgJa7P/FGW
 RxSSJCSqqB0WhT6l+T9zauIcbLc3hLi3tfd5g8KuNaeyC36ILR8eKCaGatZR+E3h16pL6O51Z
 HbVnR7V21K3x+5poLnzootdTuydlWi1NztivHRKzwThI5/qVO7YjTY21xS26u/PzrrXv9Zx4v
 C/wm8DWNTfW7d/UJ1nT9pPmnzjKyiXsZXVo2WTNq0mwTJZbijERDLeai4kQAbA+53aMCAAA=
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1464101215!25315331!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52303 invoked from network); 24 May 2016 14:46:56 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:56 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083235"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:54 +0100
Message-ID: <1464099660-12432-15-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 14/20] Protect active device with critical
	section
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBzaG91bGQgcHJldmVudCByYWNlIGNvbmRpdGlvbnMgZHVlIHRvIGRldmljZSByZW1vdmFs
IHdoaWxlCmN1cnJlbnRseSBhdHRlbXB0aW5nIG9wZXJhdGlvbnMuIFdpbGwgZW5zdXJlIHRoZSBt
X2RldiBwb2ludGVyCmlzIG5vdCByZW1vdmVkIGR1cmluZyBhIE9uU3VzcGVuZCBvciBPblNodXRk
b3duIG9wZXJhdGlvbgoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPgotLS0KIHNyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDMyICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMSAr
CiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVB
Z2VudC5jcHAKaW5kZXggYjYxOTY3Zi4uZGI2YzNiOSAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2Vu
dC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtNDIs
NiArNDIsMjQgQEAKICNkZWZpbmUgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZNjQgIlNPRlRXQVJF
XFxXb3c2NDMyTm9kZVxcQ2l0cml4XFxYZW5Ub29scyIKICNlbmRpZgogCitjbGFzcyBDQ3JpdFNl
YworeworcHVibGljOgorICAgIENDcml0U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KTsKKyAg
ICB+Q0NyaXRTZWMoKTsKK3ByaXZhdGU6CisgICAgTFBDUklUSUNBTF9TRUNUSU9OIG1fY3JpdDsK
K307CisKK0NDcml0U2VjOjpDQ3JpdFNlYyhMUENSSVRJQ0FMX1NFQ1RJT04gY3JpdCkgOiBtX2Ny
aXQoY3JpdCkKK3sKKyAgICBFbnRlckNyaXRpY2FsU2VjdGlvbihtX2NyaXQpOworfQorQ0NyaXRT
ZWM6On5DQ3JpdFNlYygpCit7CisgICAgTGVhdmVDcml0aWNhbFNlY3Rpb24obV9jcml0KTsKK30K
KwogaW50IF9fc3RkY2FsbCBXaW5NYWluKEhJTlNUQU5DRSBoSW5zdGFuY2UsIEhJTlNUQU5DRSBp
Z25vcmUsIExQU1RSIGxwQ21kTGluZSwgaW50IG5DbWRTaG93KQogewogICAgIGlmIChzdHJsZW4o
bHBDbWRMaW5lKSAhPSAwKSB7CkBAIC0xNjksNyArMTg3LDkgQEAgQ0xpdGVBZ2VudDo6Q0xpdGVB
Z2VudCgpIDoKIAogICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOwogICAgIG1fc2h1dGRvd24gPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOwotICAgIG1fc3VzcGVuZCAgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVM
TCwgRkFMU0UpOyAKKyAgICBtX3N1c3BlbmQgID0gQ3JlYXRlRXZlbnQoRkFMU0UsIE5VTEwsIE5V
TEwsIEZBTFNFKTsKKworICAgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7CiB9
CiAKIENMaXRlQWdlbnQ6On5DTGl0ZUFnZW50KCkKQEAgLTE3Nyw2ICsxOTcsOCBAQCBDTGl0ZUFn
ZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiAgICAgQ2xv
c2VIYW5kbGUobV9zaHV0ZG93bik7CiAgICAgQ2xvc2VIYW5kbGUobV9zdXNwZW5kKTsKKworICAg
IERlbGV0ZUNyaXRpY2FsU2VjdGlvbigmbV9jcml0KTsKIH0KIAogLyp2aXJ0dWFsKi8gQ0Rldmlj
ZSogQ0xpdGVBZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCkBAIC0xODgsNiArMjEw
LDggQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8gdm9pZCBDTGl0ZUFn
ZW50OjpPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldikKIHsKICAgICBDTGl0ZUFnZW50OjpMb2co
Ik9uRGV2aWNlQWRkZWQoJXdzKVxuIiwgZGV2LT5QYXRoKCkpOworCisgICAgQ0NyaXRTZWMgY3Jp
dCgmbV9jcml0KTsKICAgICBpZiAobV9kZXYgPT0gTlVMTCkgewogICAgICAgICBtX2RldiA9IChD
WGVuSWZhY2VJdGYqKWRldjsKICAgICAgICAgLy8gc2V0dGluZyBhY3RpdmUgZGV2aWNlCkBAIC0y
MTAsNiArMjM0LDggQEAgQ0xpdGVBZ2VudDo6fkNMaXRlQWdlbnQoKQogLyp2aXJ0dWFsKi8gdm9p
ZCBDTGl0ZUFnZW50OjpPbkRldmljZVJlbW92ZWQoQ0RldmljZSogZGV2KQogewogICAgIENMaXRl
QWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKKworICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CiAgICAgaWYgKChDWGVuSWZhY2VJdGYqKWRldiA9PSBt
X2RldikgewogICAgICAgICAvLyBhY3RpdmUgZGV2aWNlIHJlbW92ZWQKICAgICAgICAgQ0xpdGVB
Z2VudDo6TG9nKCJBY3RpdmUgRGV2aWNlIFJlbW92ZWRcbiIpOwpAQCAtMjczLDYgKzI5OSw4IEBA
IGJvb2wgQ0xpdGVBZ2VudDo6U2VydmljZU1haW5Mb29wKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpP
blNodXRkb3duKCkKIHsKKyAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOworCiAgICAgaWYgKG1f
ZGV2ID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXdzKVxuIiwgbV9kZXYtPlBhdGgoKSk7CkBAIC0yODYsNiArMzE0LDggQEAgdm9pZCBD
TGl0ZUFnZW50OjpPblNodXRkb3duKCkKIAogdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQog
eworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisKICAgICBpZiAobV9kZXYgPT0gTlVMTCkK
ICAgICAgICAgcmV0dXJuOwogICAgIENMaXRlQWdlbnQ6OkxvZygiT25TdXNwZW5kKCV3cylcbiIs
IG1fZGV2LT5QYXRoKCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBi
L3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKaW5kZXggOTdjNjUxNC4uZTNhMjU3MyAxMDA2NDQK
LS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVB
Z2VudC5oCkBAIC04Nyw2ICs4Nyw3IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAg
IEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc2h1dGRvd247CiAgICAgSEFORExFICAgICAgICAg
ICAgICAgICAgbV9zdXNwZW5kOwogCisgICAgQ1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0
OwogICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2czsKICAgICBDWGVuSWZhY2VJdGYq
ICAgICAgICAgICBtX2RldjsKICAgICB2b2lkKiAgICAgICAgICAgICAgICAgICBtX2N0eHRfc2h1
dGRvd247Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037W-Go; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035e-2d
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 A8/03-28347-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpG5Cpku
 4wa71khZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2PuNuaCLu2K7bNaWBoY5yp2MXJySAj4S3zt
 nc0IYrMJaEjM6FzMAmKLCKhL7Pu8lQnEZhZQk7i+v4sVxBYWMJa4Pf8KWJxFQFXiUPMU5i5GD
 g5eATeJx5fNIEZqSGxqmMEGYnMChd99uA82UkjAVeLzpu+MELaSxLfFL5hBbF4BQYmTM5+wQK
 ySkDj44gXYSAkBbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNzvaSizPSMktzEzBxdQwN
 TvdzU4uLE9NScxKRiveT83E2MwHBiAIIdjBdPex5ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrN
 SS0+xCjDwaEkwfstHSgnWJSanlqRlpkDDGyYtAQHj5IIb1AGUJq3uCAxtzgzHSJ1ilGXY9byO
 2uZhFjy8vNSpcR5DUGKBECKMkrz4EbAouwSo6yUMC8j0FFCPAWpRbmZJajyrxjFORiVhHk1Qa
 bwZOaVwG16BXQEE9AR/l+cQY4oSURISTUwnt0lbdORaHNyUm7IYRf2s80Pvk5gOXC0bsqfhx+
 rhedPuarKrvwlNmNy9vVtVdwyU+XbrL7yMNvt51qxKmahtMqii3c82/M2bi1ov51yY3LHlzef
 /IU7tv3bPzP9X/nbGLl9y2Y6/P3Ns3Lnzj2lRvZflhh9WBkiozhZncM16ry6ruai5Y9m3lBiK
 c5INNRiLipOBADKQpWBrQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19842 invoked from network); 24 May 2016 14:46:55 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:55 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300509"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:53 +0100
Message-ID: <1464099660-12432-14-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 13/20] Add SetXenTime functionality
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgICAzICsr
CiAyIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmNwcAppbmRleCA0ODA0NDdkLi5iNjE5NjdmIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0z
Niw2ICszNiwxMiBAQAogI2luY2x1ZGUgIkxpdGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNl
X2lvY3Rscy5oIgogCisjZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FS
RVxcQ2l0cml4XFxYZW5Ub29scyIKKworI2lmZGVmIF9XSU42NAorI2RlZmluZSBYRU5UT09MU19J
TlNUQUxMX1JFR19LRVk2NCAiU09GVFdBUkVcXFdvdzY0MzJOb2RlXFxDaXRyaXhcXFhlblRvb2xz
IgorI2VuZGlmCisKIGludCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBI
SU5TVEFOQ0UgaWdub3JlLCBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKIHsKICAgICBp
ZiAoc3RybGVuKGxwQ21kTGluZSkgIT0gMCkgewpAQCAtMjA1LDcgKzIxMSw2IEBAIENMaXRlQWdl
bnQ6On5DTGl0ZUFnZW50KCkKIHsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uRGV2aWNlUmVtb3Zl
ZCgld3MpXG4iLCBkZXYtPlBhdGgoKSk7CiAgICAgaWYgKChDWGVuSWZhY2VJdGYqKWRldiA9PSBt
X2RldikgewotICAgICAgICBtX2RldiA9IE5VTEw7CiAgICAgICAgIC8vIGFjdGl2ZSBkZXZpY2Ug
cmVtb3ZlZAogICAgICAgICBDTGl0ZUFnZW50OjpMb2coIkFjdGl2ZSBEZXZpY2UgUmVtb3ZlZFxu
Iik7CiAKQEAgLTIyMCw2ICsyMjUsOSBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAg
ICAgIC8vIHVucmVnaXN0ZXIgd2F0Y2gKICAgICAgICAgbV9kZXYtPlN0b3JlUmVtb3ZlV2F0Y2go
bV9jdHh0X3NodXRkb3duKTsKICAgICAgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsKKworICAg
ICAgICAvLyByZW1vdmUgaW50ZXJuYWwgcmVmZXJlbmNlCisgICAgICAgIG1fZGV2ID0gTlVMTDsK
ICAgICB9CiB9CiAKQEAgLTI0Niw2ICsyNTQsNyBAQCBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VN
YWluTG9vcCgpCiAgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygzLCBl
dnRzLCBGQUxTRSwgSU5GSU5JVEUpOwogICAgIHN3aXRjaCAod2FpdCkgewogICAgIGNhc2UgV0FJ
VF9PQkpFQ1RfMDoKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTdG9wIGV2ZW50IHNldFxuIik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gc2VydmljZSBzdG9wIGV2ZW50CiAKICAgICBjYXNl
IFdBSVRfT0JKRUNUXzArMToKQEAgLTI3Miw3ICsyODEsNiBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9u
U2h1dGRvd24oKQogICAgIHN0ZDo6c3RyaW5nIHR5cGU7CiAgICAgbV9kZXYtPlN0b3JlUmVhZCgi
Y29udHJvbC9zaHV0ZG93biIsIHR5cGUpOwogCi0KICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXMpXG4iLCB0eXBlLmNfc3RyKCkpOwogfQogCkBAIC0yOTMsMTcgKzMwMSwxMTkgQEAg
dm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQogdm9pZCBDTGl0ZUFnZW50OjpTZXRYZW5UaW1l
KCkKIHsKICAgICBDTGl0ZUFnZW50OjpMb2coIlNldFhlblRpbWUoKVxuIik7CisKKyAgICBGSUxF
VElNRSBub3cgPSB7IDAgfTsKKyAgICBpZiAoIW1fZGV2LT5TaGFyZWRJbmZvR2V0VGltZSgmbm93
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBJc1V0YyA9IEhvc3RUaW1lSXNVdGMoKTsK
KyAgICBpZiAoSXNVdGMpCisgICAgICAgIEFkanVzdFhlblRpbWVUb1V0Yygmbm93KTsKKworICAg
IFNZU1RFTVRJTUUgc3lzID0geyAwIH07CisgICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgm
bm93LCAmc3lzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU1lTVEVNVElNRSBjdXIgPSB7IDAg
fTsKKyAgICBHZXRMb2NhbFRpbWUoJmN1cik7CisgICAgQ0xpdGVBZ2VudDo6TG9nKCJUaW1lIE5v
dyA9ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgY3Vy
LndZZWFyLCBjdXIud01vbnRoLCBjdXIud0RheSwKKyAgICAgICAgICAgICAgICAgICAgY3VyLndI
b3VyLCBjdXIud01pbnV0ZSwgY3VyLndTZWNvbmQsIGN1ci53TWlsbGlzZWNvbmRzKTsKKyAgICBD
TGl0ZUFnZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVkXG4iLAor
ICAgICAgICAgICAgICAgICAgICBzeXMud1llYXIsIHN5cy53TW9udGgsIHN5cy53RGF5LAorICAg
ICAgICAgICAgICAgICAgICBzeXMud0hvdXIsIHN5cy53TWludXRlLCBzeXMud1NlY29uZCwgc3lz
LndNaWxsaXNlY29uZHMpOworICAgIGlmIChJc1V0YykKKyAgICAgICAgU2V0U3lzdGVtVGltZSgm
c3lzKTsKKyAgICBlbHNlCisgICAgICAgIFNldExvY2FsVGltZSgmc3lzKTsKIH0KIAogdm9pZCBD
TGl0ZUFnZW50OjpLaWNrWGFwaSgpCiB7CiAgICAgY2hhciB2YWx1ZVszMl07Ci0gICAgX3NucHJp
bnRmX3ModmFsdWUsIHNpemVvZih2YWx1ZSksIDMxLCAiJUk2NGQiLCBtX3VwZGF0ZSk7CisgICAg
X3NucHJpbnRmX3ModmFsdWUsIHNpemVvZih2YWx1ZSksIDMxLCAiJUk2NGQiLCAoX19pbnQ2NClt
X3VwZGF0ZSk7CiAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImRhdGEvdXBkYXRlX2NudCIsIHZhbHVl
KTsKICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiZGF0YS91cGRhdGVkIiwgIjEiKTsKICAgICArK21f
dXBkYXRlOwogfQogCitib29sIENMaXRlQWdlbnQ6Okhvc3RUaW1lSXNVdGMoKQoreworI2lmZGVm
IF9XSU42NAorICAgIGlmIChSZWdNYXRjaFN0cihYRU5UT09MU19JTlNUQUxMX1JFR19LRVk2NCwg
Ikhvc3RUaW1lIiwgIlVUQyIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIGlm
IChSZWdNYXRjaFN0cihYRU5UT09MU19JTlNUQUxMX1JFR19LRVksICJIb3N0VGltZSIsICJVVEMi
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
Q0xpdGVBZ2VudDo6QWRqdXN0WGVuVGltZVRvVXRjKEZJTEVUSU1FKiBub3cpCit7CisgICAgc3Rk
OjpzdHJpbmcgdm07CisgICAgaWYgKCFtX2Rldi0+U3RvcmVSZWFkKCJ2bSIsIHZtKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgc3RkOjpzdHJpbmcgb2ZmczsKKyAgICBpZiAoIW1fZGV2LT5TdG9y
ZVJlYWQodm0gKyAiL3J0Yy90aW1lb2Zmc2V0Iiwgb2ZmcykpIHsKKyAgICAgICAgaWYgKCFtX2Rl
di0+U3RvcmVSZWFkKCJwbGF0Zm9ybS90aW1lb2Zmc2V0Iiwgb2ZmcykpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbG9uZyBvZmZzZXQgPSAobG9uZylhdG9pKG9mZnMuY19zdHIo
KSk7CisKKyAgICBMQVJHRV9JTlRFR0VSIGxvZmZzOworICAgIGxvZmZzLlF1YWRQYXJ0ID0gKExP
TkdMT05HKW9mZnNldCAqIDEwMDAwMDA7CisKKyAgICBVTEFSR0VfSU5URUdFUiBsbm93OworICAg
IGxub3cuTG93UGFydCAgPSBub3ctPmR3TG93RGF0ZVRpbWU7CisgICAgbG5vdy5IaWdoUGFydCA9
IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7CisKKyAgICBsbm93LlF1YWRQYXJ0IC09IGxvZmZzLlF1YWRQ
YXJ0OworCisgICAgbm93LT5kd0xvd0RhdGVUaW1lICA9IGxub3cuTG93UGFydDsKKyAgICBub3ct
PmR3SGlnaERhdGVUaW1lID0gbG5vdy5IaWdoUGFydDsKK30KKworYm9vbCBDTGl0ZUFnZW50OjpS
ZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiB2YWx1ZSkKK3sKKyAgICBIS0VZICAgICAgICBrZXk7CisgICAgTFJFU1VMVCAgICAgbHI7Cisg
ICAgYm9vbCAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKworICAgIGxyID0gUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwgcGF0aCwgMCwgS0VZX1JFQUQsICZrZXkpOworICAgIGlmIChsciAh
PSBFUlJPUl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBsb25nICAgICAg
ICBzaXplID0gMzI7CisgICAgRFdPUkQgICAgICAgbGVuZ3RoOworICAgIGNoYXIqICAgICAgIGJ1
ZmZlciA9IE5VTEw7CisgICAgZG8geworICAgICAgICBsZW5ndGggPSBzaXplOworICAgICAgICBp
ZiAoYnVmZmVyKQorICAgICAgICAgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKKworICAgICAgICBidWZm
ZXIgPSBuZXcgY2hhcltzaXplXTsKKyAgICAgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAg
ICAgICAgZ290byBkb25lOworCisgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwgbmFt
ZSwgTlVMTCwgTlVMTCwgKExQQllURSlidWZmZXIsICZsZW5ndGgpOworICAgICAgICBzaXplICo9
IDI7CisgICAgfSB3aGlsZSAobHIgPT0gRVJST1JfTU9SRV9EQVRBKTsKKyAgICBpZiAobHIgIT0g
RVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290byBkb25lOworICAgIGlmIChfc3Rybmljb2xsKHZh
bHVlLCBidWZmZXIsIGxlbmd0aCkpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBtYXRjaCA9IHRy
dWU7CisKK2RvbmU6CisgICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgZGVsZXRlIFtdIGJ1ZmZlcjsK
KyAgICBSZWdDbG9zZUtleShrZXkpOworICAgIHJldHVybiBtYXRjaDsKK30KKwogdm9pZCBDTGl0
ZUFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0IC8qPSAwKi8s
IERXT1JEIGhpbnQgLyo9IDAqLykKIHsKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSA9IHN0
YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmgKaW5kZXggOGFiMDYyYS4uOTdjNjUxNCAxMDA2NDQKLS0tIGEvc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC03
Miw2ICs3Miw5IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPblN1c3Bl
bmQoKTsKICAgICB2b2lkIFNldFhlblRpbWUoKTsKICAgICB2b2lkIEtpY2tYYXBpKCk7CisgICAg
Ym9vbCBIb3N0VGltZUlzVXRjKCk7CisgICAgdm9pZCBBZGp1c3RYZW5UaW1lVG9VdGMoRklMRVRJ
TUUqIG5vdyk7CisgICAgYm9vbCBSZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBj
aGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3Vw
cG9ydAogICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9
IDAsIERXT1JEIGhpbnQgPSAwKTsKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037W-Go; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035e-2d
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 A8/03-28347-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpG5Cpku
 4wa71khZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2PuNuaCLu2K7bNaWBoY5yp2MXJySAj4S3zt
 nc0IYrMJaEjM6FzMAmKLCKhL7Pu8lQnEZhZQk7i+v4sVxBYWMJa4Pf8KWJxFQFXiUPMU5i5GD
 g5eATeJx5fNIEZqSGxqmMEGYnMChd99uA82UkjAVeLzpu+MELaSxLfFL5hBbF4BQYmTM5+wQK
 ySkDj44gXYSAkBbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNzvaSizPSMktzEzBxdQwN
 TvdzU4uLE9NScxKRiveT83E2MwHBiAIIdjBdPex5ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrN
 SS0+xCjDwaEkwfstHSgnWJSanlqRlpkDDGyYtAQHj5IIb1AGUJq3uCAxtzgzHSJ1ilGXY9byO
 2uZhFjy8vNSpcR5DUGKBECKMkrz4EbAouwSo6yUMC8j0FFCPAWpRbmZJajyrxjFORiVhHk1Qa
 bwZOaVwG16BXQEE9AR/l+cQY4oSURISTUwnt0lbdORaHNyUm7IYRf2s80Pvk5gOXC0bsqfhx+
 rhedPuarKrvwlNmNy9vVtVdwyU+XbrL7yMNvt51qxKmahtMqii3c82/M2bi1ov51yY3LHlzef
 /IU7tv3bPzP9X/nbGLl9y2Y6/P3Ns3Lnzj2lRvZflhh9WBkiozhZncM16ry6ruai5Y9m3lBiK
 c5INNRiLipOBADKQpWBrQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19842 invoked from network); 24 May 2016 14:46:55 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:55 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300509"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:53 +0100
Message-ID: <1464099660-12432-14-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 13/20] Add SetXenTime functionality
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystLQogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgICAzICsr
CiAyIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCBiL3NyYy9saXRlYWdlbnQvTGl0
ZUFnZW50LmNwcAppbmRleCA0ODA0NDdkLi5iNjE5NjdmIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAKKysrIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCkBAIC0z
Niw2ICszNiwxMiBAQAogI2luY2x1ZGUgIkxpdGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNl
X2lvY3Rscy5oIgogCisjZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FS
RVxcQ2l0cml4XFxYZW5Ub29scyIKKworI2lmZGVmIF9XSU42NAorI2RlZmluZSBYRU5UT09MU19J
TlNUQUxMX1JFR19LRVk2NCAiU09GVFdBUkVcXFdvdzY0MzJOb2RlXFxDaXRyaXhcXFhlblRvb2xz
IgorI2VuZGlmCisKIGludCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBI
SU5TVEFOQ0UgaWdub3JlLCBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKIHsKICAgICBp
ZiAoc3RybGVuKGxwQ21kTGluZSkgIT0gMCkgewpAQCAtMjA1LDcgKzIxMSw2IEBAIENMaXRlQWdl
bnQ6On5DTGl0ZUFnZW50KCkKIHsKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uRGV2aWNlUmVtb3Zl
ZCgld3MpXG4iLCBkZXYtPlBhdGgoKSk7CiAgICAgaWYgKChDWGVuSWZhY2VJdGYqKWRldiA9PSBt
X2RldikgewotICAgICAgICBtX2RldiA9IE5VTEw7CiAgICAgICAgIC8vIGFjdGl2ZSBkZXZpY2Ug
cmVtb3ZlZAogICAgICAgICBDTGl0ZUFnZW50OjpMb2coIkFjdGl2ZSBEZXZpY2UgUmVtb3ZlZFxu
Iik7CiAKQEAgLTIyMCw2ICsyMjUsOSBAQCBDTGl0ZUFnZW50Ojp+Q0xpdGVBZ2VudCgpCiAgICAg
ICAgIC8vIHVucmVnaXN0ZXIgd2F0Y2gKICAgICAgICAgbV9kZXYtPlN0b3JlUmVtb3ZlV2F0Y2go
bV9jdHh0X3NodXRkb3duKTsKICAgICAgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsKKworICAg
ICAgICAvLyByZW1vdmUgaW50ZXJuYWwgcmVmZXJlbmNlCisgICAgICAgIG1fZGV2ID0gTlVMTDsK
ICAgICB9CiB9CiAKQEAgLTI0Niw2ICsyNTQsNyBAQCBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VN
YWluTG9vcCgpCiAgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygzLCBl
dnRzLCBGQUxTRSwgSU5GSU5JVEUpOwogICAgIHN3aXRjaCAod2FpdCkgewogICAgIGNhc2UgV0FJ
VF9PQkpFQ1RfMDoKKyAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJTdG9wIGV2ZW50IHNldFxuIik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gc2VydmljZSBzdG9wIGV2ZW50CiAKICAgICBjYXNl
IFdBSVRfT0JKRUNUXzArMToKQEAgLTI3Miw3ICsyODEsNiBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9u
U2h1dGRvd24oKQogICAgIHN0ZDo6c3RyaW5nIHR5cGU7CiAgICAgbV9kZXYtPlN0b3JlUmVhZCgi
Y29udHJvbC9zaHV0ZG93biIsIHR5cGUpOwogCi0KICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXMpXG4iLCB0eXBlLmNfc3RyKCkpOwogfQogCkBAIC0yOTMsMTcgKzMwMSwxMTkgQEAg
dm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQogdm9pZCBDTGl0ZUFnZW50OjpTZXRYZW5UaW1l
KCkKIHsKICAgICBDTGl0ZUFnZW50OjpMb2coIlNldFhlblRpbWUoKVxuIik7CisKKyAgICBGSUxF
VElNRSBub3cgPSB7IDAgfTsKKyAgICBpZiAoIW1fZGV2LT5TaGFyZWRJbmZvR2V0VGltZSgmbm93
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBJc1V0YyA9IEhvc3RUaW1lSXNVdGMoKTsK
KyAgICBpZiAoSXNVdGMpCisgICAgICAgIEFkanVzdFhlblRpbWVUb1V0Yygmbm93KTsKKworICAg
IFNZU1RFTVRJTUUgc3lzID0geyAwIH07CisgICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgm
bm93LCAmc3lzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU1lTVEVNVElNRSBjdXIgPSB7IDAg
fTsKKyAgICBHZXRMb2NhbFRpbWUoJmN1cik7CisgICAgQ0xpdGVBZ2VudDo6TG9nKCJUaW1lIE5v
dyA9ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgY3Vy
LndZZWFyLCBjdXIud01vbnRoLCBjdXIud0RheSwKKyAgICAgICAgICAgICAgICAgICAgY3VyLndI
b3VyLCBjdXIud01pbnV0ZSwgY3VyLndTZWNvbmQsIGN1ci53TWlsbGlzZWNvbmRzKTsKKyAgICBD
TGl0ZUFnZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVkXG4iLAor
ICAgICAgICAgICAgICAgICAgICBzeXMud1llYXIsIHN5cy53TW9udGgsIHN5cy53RGF5LAorICAg
ICAgICAgICAgICAgICAgICBzeXMud0hvdXIsIHN5cy53TWludXRlLCBzeXMud1NlY29uZCwgc3lz
LndNaWxsaXNlY29uZHMpOworICAgIGlmIChJc1V0YykKKyAgICAgICAgU2V0U3lzdGVtVGltZSgm
c3lzKTsKKyAgICBlbHNlCisgICAgICAgIFNldExvY2FsVGltZSgmc3lzKTsKIH0KIAogdm9pZCBD
TGl0ZUFnZW50OjpLaWNrWGFwaSgpCiB7CiAgICAgY2hhciB2YWx1ZVszMl07Ci0gICAgX3NucHJp
bnRmX3ModmFsdWUsIHNpemVvZih2YWx1ZSksIDMxLCAiJUk2NGQiLCBtX3VwZGF0ZSk7CisgICAg
X3NucHJpbnRmX3ModmFsdWUsIHNpemVvZih2YWx1ZSksIDMxLCAiJUk2NGQiLCAoX19pbnQ2NClt
X3VwZGF0ZSk7CiAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImRhdGEvdXBkYXRlX2NudCIsIHZhbHVl
KTsKICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiZGF0YS91cGRhdGVkIiwgIjEiKTsKICAgICArK21f
dXBkYXRlOwogfQogCitib29sIENMaXRlQWdlbnQ6Okhvc3RUaW1lSXNVdGMoKQoreworI2lmZGVm
IF9XSU42NAorICAgIGlmIChSZWdNYXRjaFN0cihYRU5UT09MU19JTlNUQUxMX1JFR19LRVk2NCwg
Ikhvc3RUaW1lIiwgIlVUQyIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIGlm
IChSZWdNYXRjaFN0cihYRU5UT09MU19JTlNUQUxMX1JFR19LRVksICJIb3N0VGltZSIsICJVVEMi
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
Q0xpdGVBZ2VudDo6QWRqdXN0WGVuVGltZVRvVXRjKEZJTEVUSU1FKiBub3cpCit7CisgICAgc3Rk
OjpzdHJpbmcgdm07CisgICAgaWYgKCFtX2Rldi0+U3RvcmVSZWFkKCJ2bSIsIHZtKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgc3RkOjpzdHJpbmcgb2ZmczsKKyAgICBpZiAoIW1fZGV2LT5TdG9y
ZVJlYWQodm0gKyAiL3J0Yy90aW1lb2Zmc2V0Iiwgb2ZmcykpIHsKKyAgICAgICAgaWYgKCFtX2Rl
di0+U3RvcmVSZWFkKCJwbGF0Zm9ybS90aW1lb2Zmc2V0Iiwgb2ZmcykpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbG9uZyBvZmZzZXQgPSAobG9uZylhdG9pKG9mZnMuY19zdHIo
KSk7CisKKyAgICBMQVJHRV9JTlRFR0VSIGxvZmZzOworICAgIGxvZmZzLlF1YWRQYXJ0ID0gKExP
TkdMT05HKW9mZnNldCAqIDEwMDAwMDA7CisKKyAgICBVTEFSR0VfSU5URUdFUiBsbm93OworICAg
IGxub3cuTG93UGFydCAgPSBub3ctPmR3TG93RGF0ZVRpbWU7CisgICAgbG5vdy5IaWdoUGFydCA9
IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7CisKKyAgICBsbm93LlF1YWRQYXJ0IC09IGxvZmZzLlF1YWRQ
YXJ0OworCisgICAgbm93LT5kd0xvd0RhdGVUaW1lICA9IGxub3cuTG93UGFydDsKKyAgICBub3ct
PmR3SGlnaERhdGVUaW1lID0gbG5vdy5IaWdoUGFydDsKK30KKworYm9vbCBDTGl0ZUFnZW50OjpS
ZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiB2YWx1ZSkKK3sKKyAgICBIS0VZICAgICAgICBrZXk7CisgICAgTFJFU1VMVCAgICAgbHI7Cisg
ICAgYm9vbCAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKworICAgIGxyID0gUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwgcGF0aCwgMCwgS0VZX1JFQUQsICZrZXkpOworICAgIGlmIChsciAh
PSBFUlJPUl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBsb25nICAgICAg
ICBzaXplID0gMzI7CisgICAgRFdPUkQgICAgICAgbGVuZ3RoOworICAgIGNoYXIqICAgICAgIGJ1
ZmZlciA9IE5VTEw7CisgICAgZG8geworICAgICAgICBsZW5ndGggPSBzaXplOworICAgICAgICBp
ZiAoYnVmZmVyKQorICAgICAgICAgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKKworICAgICAgICBidWZm
ZXIgPSBuZXcgY2hhcltzaXplXTsKKyAgICAgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAg
ICAgICAgZ290byBkb25lOworCisgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwgbmFt
ZSwgTlVMTCwgTlVMTCwgKExQQllURSlidWZmZXIsICZsZW5ndGgpOworICAgICAgICBzaXplICo9
IDI7CisgICAgfSB3aGlsZSAobHIgPT0gRVJST1JfTU9SRV9EQVRBKTsKKyAgICBpZiAobHIgIT0g
RVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290byBkb25lOworICAgIGlmIChfc3Rybmljb2xsKHZh
bHVlLCBidWZmZXIsIGxlbmd0aCkpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBtYXRjaCA9IHRy
dWU7CisKK2RvbmU6CisgICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgZGVsZXRlIFtdIGJ1ZmZlcjsK
KyAgICBSZWdDbG9zZUtleShrZXkpOworICAgIHJldHVybiBtYXRjaDsKK30KKwogdm9pZCBDTGl0
ZUFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0IC8qPSAwKi8s
IERXT1JEIGhpbnQgLyo9IDAqLykKIHsKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSA9IHN0
YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCBiL3NyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmgKaW5kZXggOGFiMDYyYS4uOTdjNjUxNCAxMDA2NDQKLS0tIGEvc3JjL2xp
dGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCkBAIC03
Miw2ICs3Miw5IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPblN1c3Bl
bmQoKTsKICAgICB2b2lkIFNldFhlblRpbWUoKTsKICAgICB2b2lkIEtpY2tYYXBpKCk7CisgICAg
Ym9vbCBIb3N0VGltZUlzVXRjKCk7CisgICAgdm9pZCBBZGp1c3RYZW5UaW1lVG9VdGMoRklMRVRJ
TUUqIG5vdyk7CisgICAgYm9vbCBSZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBj
aGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3Vw
cG9ydAogICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9
IDAsIERXT1JEIGhpbnQgPSAwKTsKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037x-Hp; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035r-Ce
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
 22/0A-23177-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUjcx0yX
 c4N1VHos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXfFJ/aCy8IVrb9lGxgP8HUxcnBICPhLzDwo
 1sXIycEmoCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYoFjiy/UvYDaLgKrEpd7TYDavg
 JvEnpeXweolgOZsapjBBmJzAsXffbgPNlNIwFXi86bvjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALkDjIadwSf7vtJzDyzUJSNQtJ1QJGplWMGsWpRWWpRbqG5npJRZnpGSW5iZk5uoYGpnq5qcX
 FiempOYlJxXrJ+bmbGIHBxAAEOxgvnvY8xCjJwaQkyluQ5BIuxJeUn1KZkVicEV9UmpNafIhR
 hoNDSYL3WzpQTrAoNT21Ii0zBxjWMGkJDh4lEd6gDKA0b3FBYm5xZjpE6hSjopQ4ryFIQgAkk
 VGaB9cGi6VLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEubVBJnCk5lXAjf9FdBiJqDF/l+cQR
 aXJCKkpBoY12t7cdztqPwgrKF0xK852ctN9QSzUprCy+nTNB/84pmcZbiE4bOGfOyBG/yr75V
 cfWagl6l6coePb2t3HnOr+MlTcodN7k+84KrsUVtqfCNswb0VAjf81IuFIt5E2h52M1jy2vCT
 5vRAORfBoEYO7x8HuOJWn3V2v9ea+0/e0Oa9XYhV8SMlluKMREMt5qLiRAAFMqcHoAIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20022 invoked from network); 24 May 2016 14:46:56 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:56 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300521"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:21:00 +0100
Message-ID: <1464099660-12432-21-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 20/20] IoctlLog handler shouldnt be in with
	the store IOCTLs, and dont fail on /n/r in log messages
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy94ZW5pZmFjZS9pb2N0bF9zdG9yZS5jIHwgMjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogc3JjL3hlbmlmYWNlL2lvY3Rscy5jICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMo
KyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bF9zdG9y
ZS5jIGIvc3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMKaW5kZXggZjFjODE2Yi4uNWJkNDY0OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3RsX3N0b3JlLmMKQEAgLTkxLDM1ICs5MSw2IEBAIF9fRGlzcGxheU11bHRpU3ooCiAKIERF
Q0xTUEVDX05PSU5MSU5FCiBOVFNUQVRVUwotSW9jdGxMb2coCi0gICAgX19pbiAgUFhFTklGQUNF
X0ZETyAgICAgRmRvLAotICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKLSAgICBf
X2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKLSAgICBfX2luICBVTE9ORyAgICAgICAgICAg
ICBPdXRMZW4KLSAgICApCi17Ci0gICAgTlRTVEFUVVMgICAgc3RhdHVzOwotCi0gICAgc3RhdHVz
ID0gU1RBVFVTX0lOVkFMSURfQlVGRkVSX1NJWkU7Ci0gICAgaWYgKEluTGVuID09IDAgfHwgT3V0
TGVuICE9IDApCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KLSAgICBzdGF0dXMgPSBTVEFUVVNfSU5W
QUxJRF9QQVJBTUVURVI7Ci0gICAgaWYgKCFfX0lzVmFsaWRTdHIoQnVmZmVyLCBJbkxlbikpCi0g
ICAgICAgIGdvdG8gZmFpbDI7Ci0KLSAgICBYZW5JZmFjZURlYnVnUHJpbnQoSU5GTywgIlVTRVI6
ICVzXG4iLCBCdWZmZXIpOwotICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKLQotZmFpbDI6Ci0g
ICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOwotZmFpbDE6Ci0gICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwotICAgIHJl
dHVybiBzdGF0dXM7Ci19Ci0KLURFQ0xTUEVDX05PSU5MSU5FCi1OVFNUQVRVUwogSW9jdGxTdG9y
ZVJlYWQoCiAgICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAogICAgIF9faW4gIFBDSEFS
ICAgICAgICAgICAgIEJ1ZmZlciwKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bHMuYyBi
L3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCA3ZjE3MmQ3Li44MzgyMDAwIDEwMDY0NAotLS0g
YS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3Rscy5jCkBAIC0x
NjAsNiArMTYwLDUzIEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICB9CiB9CiAKK3N0YXRpYyBGT1JD
RUlOTElORQorQk9PTEVBTgorX19Jc1ZhbGlkU3RyRml4KAorICAgIF9faW4gIFBDSEFSICAgICAg
ICAgICAgIFN0ciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBMZW4KKyAgICApCit7Cisg
ICAgZm9yICggOyBMZW4tLTsgKytTdHIpIHsKKyAgICAgICAgaWYgKCpTdHIgPT0gJ1wwJykKKyAg
ICAgICAgICAgIHJldHVybiBUUlVFOworICAgICAgICBpZiAoKlN0ciA9PSAnXG4nIHx8ICpTdHIg
PT0gJ1xyJykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWlzcHJpbnQoKHVu
c2lnbmVkIGNoYXIpKlN0cikpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IEZBTFNFOworfQorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsTG9nKAorICAg
IF9faW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQQ0hBUiAgICAgICAgICAg
ICBCdWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAg
VUxPTkcgICAgICAgICAgICAgT3V0TGVuCisgICAgKQoreworICAgIE5UU1RBVFVTICAgIHN0YXR1
czsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZFUl9TSVpFOworICAgIGlmIChJ
bkxlbiA9PSAwIHx8IE91dExlbiAhPSAwKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3Rh
dHVzID0gU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSOworICAgIGlmICghX19Jc1ZhbGlkU3RyRml4
KEJ1ZmZlciwgSW5MZW4pKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgWGVuSWZhY2VEZWJ1
Z1ByaW50KElORk8sICJVU0VSOiAlc1xuIiwgQnVmZmVyKTsKKyAgICByZXR1cm4gU1RBVFVTX1NV
Q0NFU1M7CisKK2ZhaWwyOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4i
KTsKK2ZhaWwxOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwxICglMDh4KVxu
Iiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCiBOVFNUQVRVUwogWGVuSWZhY2VJ
b2N0bCgKICAgICBfX2luICAgICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCi0tIAoxLjkuNC5tc3lz
Z2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3
aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00037x-Hp; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035r-Ce
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
 22/0A-23177-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUjcx0yX
 c4N1VHos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXfFJ/aCy8IVrb9lGxgP8HUxcnBICPhLzDwo
 1sXIycEmoCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFtYoFjiy/UvYDaLgKrEpd7TYDavg
 JvEnpeXweolgOZsapjBBmJzAsXffbgPNlNIwFXi86bvjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALkDjIadwSf7vtJzDyzUJSNQtJ1QJGplWMGsWpRWWpRbqG5npJRZnpGSW5iZk5uoYGpnq5qcX
 FiempOYlJxXrJ+bmbGIHBxAAEOxgvnvY8xCjJwaQkyluQ5BIuxJeUn1KZkVicEV9UmpNafIhR
 hoNDSYL3WzpQTrAoNT21Ii0zBxjWMGkJDh4lEd6gDKA0b3FBYm5xZjpE6hSjopQ4ryFIQgAkk
 VGaB9cGi6VLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEubVBJnCk5lXAjf9FdBiJqDF/l+cQR
 aXJCKkpBoY12t7cdztqPwgrKF0xK852ctN9QSzUprCy+nTNB/84pmcZbiE4bOGfOyBG/yr75V
 cfWagl6l6coePb2t3HnOr+MlTcodN7k+84KrsUVtqfCNswb0VAjf81IuFIt5E2h52M1jy2vCT
 5vRAORfBoEYO7x8HuOJWn3V2v9ea+0/e0Oa9XYhV8SMlluKMREMt5qLiRAAFMqcHoAIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20022 invoked from network); 24 May 2016 14:46:56 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:56 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300521"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:21:00 +0100
Message-ID: <1464099660-12432-21-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 20/20] IoctlLog handler shouldnt be in with
	the store IOCTLs, and dont fail on /n/r in log messages
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy94ZW5pZmFjZS9pb2N0bF9zdG9yZS5jIHwgMjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogc3JjL3hlbmlmYWNlL2lvY3Rscy5jICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMo
KyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bF9zdG9y
ZS5jIGIvc3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMKaW5kZXggZjFjODE2Yi4uNWJkNDY0OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3RsX3N0b3JlLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3RsX3N0b3JlLmMKQEAgLTkxLDM1ICs5MSw2IEBAIF9fRGlzcGxheU11bHRpU3ooCiAKIERF
Q0xTUEVDX05PSU5MSU5FCiBOVFNUQVRVUwotSW9jdGxMb2coCi0gICAgX19pbiAgUFhFTklGQUNF
X0ZETyAgICAgRmRvLAotICAgIF9faW4gIFBDSEFSICAgICAgICAgICAgIEJ1ZmZlciwKLSAgICBf
X2luICBVTE9ORyAgICAgICAgICAgICBJbkxlbiwKLSAgICBfX2luICBVTE9ORyAgICAgICAgICAg
ICBPdXRMZW4KLSAgICApCi17Ci0gICAgTlRTVEFUVVMgICAgc3RhdHVzOwotCi0gICAgc3RhdHVz
ID0gU1RBVFVTX0lOVkFMSURfQlVGRkVSX1NJWkU7Ci0gICAgaWYgKEluTGVuID09IDAgfHwgT3V0
TGVuICE9IDApCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KLSAgICBzdGF0dXMgPSBTVEFUVVNfSU5W
QUxJRF9QQVJBTUVURVI7Ci0gICAgaWYgKCFfX0lzVmFsaWRTdHIoQnVmZmVyLCBJbkxlbikpCi0g
ICAgICAgIGdvdG8gZmFpbDI7Ci0KLSAgICBYZW5JZmFjZURlYnVnUHJpbnQoSU5GTywgIlVTRVI6
ICVzXG4iLCBCdWZmZXIpOwotICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKLQotZmFpbDI6Ci0g
ICAgWGVuSWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDJcbiIpOwotZmFpbDE6Ci0gICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KEVSUk9SLCAiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwotICAgIHJl
dHVybiBzdGF0dXM7Ci19Ci0KLURFQ0xTUEVDX05PSU5MSU5FCi1OVFNUQVRVUwogSW9jdGxTdG9y
ZVJlYWQoCiAgICAgX19pbiAgUFhFTklGQUNFX0ZETyAgICAgRmRvLAogICAgIF9faW4gIFBDSEFS
ICAgICAgICAgICAgIEJ1ZmZlciwKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bHMuYyBi
L3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCA3ZjE3MmQ3Li44MzgyMDAwIDEwMDY0NAotLS0g
YS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3Rscy5jCkBAIC0x
NjAsNiArMTYwLDUzIEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICB9CiB9CiAKK3N0YXRpYyBGT1JD
RUlOTElORQorQk9PTEVBTgorX19Jc1ZhbGlkU3RyRml4KAorICAgIF9faW4gIFBDSEFSICAgICAg
ICAgICAgIFN0ciwKKyAgICBfX2luICBVTE9ORyAgICAgICAgICAgICBMZW4KKyAgICApCit7Cisg
ICAgZm9yICggOyBMZW4tLTsgKytTdHIpIHsKKyAgICAgICAgaWYgKCpTdHIgPT0gJ1wwJykKKyAg
ICAgICAgICAgIHJldHVybiBUUlVFOworICAgICAgICBpZiAoKlN0ciA9PSAnXG4nIHx8ICpTdHIg
PT0gJ1xyJykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWlzcHJpbnQoKHVu
c2lnbmVkIGNoYXIpKlN0cikpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IEZBTFNFOworfQorCitERUNMU1BFQ19OT0lOTElORQorTlRTVEFUVVMKK0lvY3RsTG9nKAorICAg
IF9faW4gIFBYRU5JRkFDRV9GRE8gICAgIEZkbywKKyAgICBfX2luICBQQ0hBUiAgICAgICAgICAg
ICBCdWZmZXIsCisgICAgX19pbiAgVUxPTkcgICAgICAgICAgICAgSW5MZW4sCisgICAgX19pbiAg
VUxPTkcgICAgICAgICAgICAgT3V0TGVuCisgICAgKQoreworICAgIE5UU1RBVFVTICAgIHN0YXR1
czsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX0JVRkZFUl9TSVpFOworICAgIGlmIChJ
bkxlbiA9PSAwIHx8IE91dExlbiAhPSAwKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgc3Rh
dHVzID0gU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSOworICAgIGlmICghX19Jc1ZhbGlkU3RyRml4
KEJ1ZmZlciwgSW5MZW4pKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgWGVuSWZhY2VEZWJ1
Z1ByaW50KElORk8sICJVU0VSOiAlc1xuIiwgQnVmZmVyKTsKKyAgICByZXR1cm4gU1RBVFVTX1NV
Q0NFU1M7CisKK2ZhaWwyOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwyXG4i
KTsKK2ZhaWwxOgorICAgIFhlbklmYWNlRGVidWdQcmludChFUlJPUiwgIkZhaWwxICglMDh4KVxu
Iiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCiBOVFNUQVRVUwogWGVuSWZhY2VJ
b2N0bCgKICAgICBfX2luICAgICBQWEVOSUZBQ0VfRkRPICAgICBGZG8sCi0tIAoxLjkuNC5tc3lz
Z2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3
aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00038N-JM; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035e-KE
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 C9/13-28347-26964475; Tue, 24 May 2016 14:46:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcx0yX
 c4NVtS4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXRDD3PBCtGKpe2n2BsYJ/N1MXJySAj4Syz4
 fZYVxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxdYjbCAk8TE5mWMIDaLgKrE2T932UFsX
 gE3ieblz1khZmpIbGqYwQZicwLF3324DzZTSMBV4vOm74wQtpLEt8UvmCF6BSVOznzCArFLQu
 LgC5A4B9Acbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNzvaSizPSMktzEzBxdQwNTvdz
 U4uLE9NScxKRiveT83E2MwIBiAIIdjBdPex5ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrNSS0+
 xCjDwaEkwfstHSgnWJSanlqRlpkDDG2YtAQHj5IIb1AGUJq3uCAxtzgzHSJ1ilFRSpzXECQhA
 JLIKM2Da4PF0yVGWSlhXkagQ4R4ClKLcjNLUOVfMYpzMCoJ82qCTOHJzCuBm/4KaDET0GL/L8
 4gi0sSEVJSDYxa16Q7w7Wc7x76uiBLdKZs9AFXnT/zf5+3bvfQTjVqYP12w+f+7ra7fzNDFRW
 OxT+JPlrv8OH0taaFcemt33xst1aklhZsnn4g5hxLsFPK3VvzA69fSKn7oOd54Pti1rQtx/56
 RBi2cf3nyza9Ff/k65GqqD1+21f9/1YvEyvEwbGk8k19QLoSS3FGoqEWc1FxIgCFAXwtogIAA
 A==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20503 invoked from network); 24 May 2016 14:46:57 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:57 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300542"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:57 +0100
Message-ID: <1464099660-12432-18-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 17/20] Add event log entries for suspend and
	error
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQs
IDI5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXggNzM5
YWNiYi4uNTY4YTJjYiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1
ZGUgIkxpdGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgogCisjaW5jbHVk
ZSAibWVzc2FnZXMuaCIKKwogI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JFR19LRVkgICAiU09G
VFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCiAKICNpZmRlZiBfV0lONjQKQEAgLTE3Nyw3ICsxNzks
NyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CiAKIENMaXRlQWdlbnQ6OkNMaXRlQWdl
bnQoKSA6CiAgICAgbV9oYW5kbGUoTlVMTCksIG1fZGV2cyhHVUlEX0lOVEVSRkFDRV9YRU5JRkFD
RSksIG1fZGV2KE5VTEwpLAotICAgIG1fY3R4dF9zaHV0ZG93bihOVUxMKSwgbV9jdHh0X3N1c3Bl
bmQoTlVMTCksIG1fdXBkYXRlKDApCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRf
c3VzcGVuZChOVUxMKSwgbV91cGRhdGUoMCksIG1fZXZ0bG9nKE5VTEwpCiB7CiAgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKICAgICBtX3N0YXR1cy5k
d0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsgCkBAIC0yOTAsMTAg
KzI5MiwzMiBAQCBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpCiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6CisgICAgICAgIGlmIChtX2V2dGxvZykg
eworICAgICAgICAgICAgUmVwb3J0RXZlbnQobV9ldnRsb2csCisgICAgICAgICAgICAgICAgICAg
ICAgICBFVkVOVExPR19TVUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQsCisgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgIH0KICAgICAgICAgT25TdXNwZW5kKCk7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKKyAgICAgICAgaWYgKG1fZXZ0bG9nKSB7
CisgICAgICAgICAgICBSZXBvcnRFdmVudChtX2V2dGxvZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEVWRU5UTE9HX1NVQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVELAorICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICByZXR1cm4gdHJ1ZTsgLy8ga2VlcCBsb29waW5nCkBAIC01MzMsMTAgKzU1NywxMyBAQCB2
b2lkIFdJTkFQSSBDTGl0ZUFnZW50OjpfX1NlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICBpZiAobV9oYW5kbGUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9l
dnRsb2cgPSBSZWdpc3RlckV2ZW50U291cmNlKE5VTEwsIFNWQ19OQU1FKTsKICAgICBTZXRTZXJ2
aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CiAgICAgT25TZXJ2aWNlU3RhcnQoKTsKICAgICB3
aGlsZSAoU2VydmljZU1haW5Mb29wKCkpIDsKICAgICBPblNlcnZpY2VTdG9wKCk7CisgICAgRGVy
ZWdpc3RlckV2ZW50U291cmNlKG1fZXZ0bG9nKTsKKyAgICBtX2V2dGxvZyA9IE5VTEw7CiAgICAg
U2V0U2VydmljZVN0YXR1cyhTRVJWSUNFX1NUT1BQRUQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCA1
ODU1NDE2Li5iYjNhMjJmIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgbV9zdmNfc3Rv
cDsKICAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX3NodXRkb3duOwogICAgIEhBTkRMRSAg
ICAgICAgICAgICAgICAgIG1fc3VzcGVuZDsKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBt
X2V2dGxvZzsKIAogICAgIENSSVRJQ0FMX1NFQ1RJT04gICAgICAgIG1fY3JpdDsKICAgICBDRGV2
aWNlTGlzdCAgICAgICAgICAgICBtX2RldnM7Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00038N-JM; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-00035e-KE
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 C9/13-28347-26964475; Tue, 24 May 2016 14:46:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjcx0yX
 c4NVtS4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXRDD3PBCtGKpe2n2BsYJ/N1MXJySAj4Syz4
 fZYVxGYT0JCY0bmYBcQWEVCX2Pd5KxOIzSygJnF9fxdYjbCAk8TE5mWMIDaLgKrE2T932UFsX
 gE3ieblz1khZmpIbGqYwQZicwLF3324DzZTSMBV4vOm74wQtpLEt8UvmCF6BSVOznzCArFLQu
 LgC5A4B9Acbom/3fYTGPlmIamahaRqASPTKkaN4tSistQiXUNzvaSizPSMktzEzBxdQwNTvdz
 U4uLE9NScxKRiveT83E2MwIBiAIIdjBdPex5ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrNSS0+
 xCjDwaEkwfstHSgnWJSanlqRlpkDDG2YtAQHj5IIb1AGUJq3uCAxtzgzHSJ1ilFRSpzXECQhA
 JLIKM2Da4PF0yVGWSlhXkagQ4R4ClKLcjNLUOVfMYpzMCoJ82qCTOHJzCuBm/4KaDET0GL/L8
 4gi0sSEVJSDYxa16Q7w7Wc7x76uiBLdKZs9AFXnT/zf5+3bvfQTjVqYP12w+f+7ra7fzNDFRW
 OxT+JPlrv8OH0taaFcemt33xst1aklhZsnn4g5hxLsFPK3VvzA69fSKn7oOd54Pti1rQtx/56
 RBi2cf3nyza9Ff/k65GqqD1+21f9/1YvEyvEwbGk8k19QLoSS3FGoqEWc1FxIgCFAXwtogIAA
 A==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1464101213!41355806!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20503 invoked from network); 24 May 2016 14:46:57 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:57 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300542"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:57 +0100
Message-ID: <1464099660-12432-18-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 17/20] Add event log entries for suspend and
	error
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KystCiBzcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQs
IDI5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5jcHAgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXggNzM5
YWNiYi4uNTY4YTJjYiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1
ZGUgIkxpdGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgogCisjaW5jbHVk
ZSAibWVzc2FnZXMuaCIKKwogI2RlZmluZSBYRU5UT09MU19JTlNUQUxMX1JFR19LRVkgICAiU09G
VFdBUkVcXENpdHJpeFxcWGVuVG9vbHMiCiAKICNpZmRlZiBfV0lONjQKQEAgLTE3Nyw3ICsxNzks
NyBAQCBzdGF0aWMgQ0xpdGVBZ2VudCBzX3NlcnZpY2U7CiAKIENMaXRlQWdlbnQ6OkNMaXRlQWdl
bnQoKSA6CiAgICAgbV9oYW5kbGUoTlVMTCksIG1fZGV2cyhHVUlEX0lOVEVSRkFDRV9YRU5JRkFD
RSksIG1fZGV2KE5VTEwpLAotICAgIG1fY3R4dF9zaHV0ZG93bihOVUxMKSwgbV9jdHh0X3N1c3Bl
bmQoTlVMTCksIG1fdXBkYXRlKDApCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRf
c3VzcGVuZChOVUxMKSwgbV91cGRhdGUoMCksIG1fZXZ0bG9nKE5VTEwpCiB7CiAgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOyAKICAgICBtX3N0YXR1cy5k
d0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsgCkBAIC0yOTAsMTAg
KzI5MiwzMiBAQCBib29sIENMaXRlQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpCiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6CisgICAgICAgIGlmIChtX2V2dGxvZykg
eworICAgICAgICAgICAgUmVwb3J0RXZlbnQobV9ldnRsb2csCisgICAgICAgICAgICAgICAgICAg
ICAgICBFVkVOVExPR19TVUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQsCisgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgIH0KICAgICAgICAgT25TdXNwZW5kKCk7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKKyAgICAgICAgaWYgKG1fZXZ0bG9nKSB7
CisgICAgICAgICAgICBSZXBvcnRFdmVudChtX2V2dGxvZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEVWRU5UTE9HX1NVQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVELAorICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICByZXR1cm4gdHJ1ZTsgLy8ga2VlcCBsb29waW5nCkBAIC01MzMsMTAgKzU1NywxMyBAQCB2
b2lkIFdJTkFQSSBDTGl0ZUFnZW50OjpfX1NlcnZpY2VNYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICBpZiAobV9oYW5kbGUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9l
dnRsb2cgPSBSZWdpc3RlckV2ZW50U291cmNlKE5VTEwsIFNWQ19OQU1FKTsKICAgICBTZXRTZXJ2
aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CiAgICAgT25TZXJ2aWNlU3RhcnQoKTsKICAgICB3
aGlsZSAoU2VydmljZU1haW5Mb29wKCkpIDsKICAgICBPblNlcnZpY2VTdG9wKCk7CisgICAgRGVy
ZWdpc3RlckV2ZW50U291cmNlKG1fZXZ0bG9nKTsKKyAgICBtX2V2dGxvZyA9IE5VTEw7CiAgICAg
U2V0U2VydmljZVN0YXR1cyhTRVJWSUNFX1NUT1BQRUQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv
bGl0ZWFnZW50L0xpdGVBZ2VudC5oIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAppbmRleCA1
ODU1NDE2Li5iYjNhMjJmIDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5oCisr
KyBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZTog
Ly8gc2VydmljZSBzdXBwb3J0CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgbV9zdmNfc3Rv
cDsKICAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX3NodXRkb3duOwogICAgIEhBTkRMRSAg
ICAgICAgICAgICAgICAgIG1fc3VzcGVuZDsKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBt
X2V2dGxvZzsKIAogICAgIENSSVRJQ0FMX1NFQ1RJT04gICAgICAgIG1fY3JpdDsKICAgICBDRGV2
aWNlTGlzdCAgICAgICAgICAgICBtX2RldnM7Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00038l-KZ; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-000360-KG
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 78/83-12024-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrrBXjcx0yX
 coG+vjMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2LLgDnvBN8GKD+sdGxhP8nUxcnJICPhLTNl4
 gA3EZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/FyuILSzgJHH912OwGhYBVYn2q9OA4hwcv
 AJuElcu10GM1JDY1DADbCQnUPjdh/tg5UICrhKfN31nhLCVJL4tfsEMYvMKCEqcnPmEBWKVhM
 TBFxBxCQFuidunpzJPYOSbhaRsFpKyBYxMqxg1ilOLylKLdA0N9JKKMtMzSnITM3OAPFO93NT
 i4sT01JzEpGK95PzcTYzAcGIAgh2Ma6Y6H2KU5GBSEuUtSHIJF+JLyk+pzEgszogvKs1JLT7E
 KMPBoSTB+y0dKCdYlJqeWpGWmQMMbJi0BAePkghvUAZQmre4IDG3ODMdInWKUVFKnNcQJCEAk
 sgozYNrg0XTJUZZKWFeRqBDhHgKUotyM0tQ5V8xinMwKgnzaoJM4cnMK4Gb/gpoMRPQYv8vzi
 CLSxIRUlINjJO5l/5VPXf8Z0Ig83Xh3A9XTsXEr3zTfp598QMx17XttuwGuRoTNtVWdtT9r57
 sdj+JKfxX6qpue1bl6Efx+c8kH6/h/X/2xYvrr4+yPSxpepj7LnReWq7i/KYcF+9ih78f+aST
 funpBVqcPRas9CjaUu/rlMbi/tzctK63p58FHAzXjci6r8RSnJFoqMVcVJwIAKJBq9GhAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1464101215!25315331!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52408 invoked from network); 24 May 2016 14:46:57 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:57 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083246"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:59 +0100
Message-ID: <1464099660-12432-20-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 19/20] Dynamically allocate the buffer for
	logging
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsb3dzIGxvZyBtZXNzYWdlcyBsb25nZXIgdGhhbiAyNTUgY2hhcmFjdGVycwoKU2lnbmVkLW9m
Zi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmNwcCAgIHwgMjEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvbGl0ZWFn
ZW50L1hlbklmYWNlSXRmLmNwcCB8IDEyICsrKysrKysrKysrLQogc3JjL2xpdGVhZ2VudC9YZW5J
ZmFjZUl0Zi5oICAgfCAgMyArKysKIDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwg
MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAg
Yi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXggNTY4YTJjYi4uODU5OWQ1MiAxMDA2
NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQv
TGl0ZUFnZW50LmNwcApAQCAtNzksMTQgKzc5LDMxIEBAIHN0YXRpYyBDTGl0ZUFnZW50IHNfc2Vy
dmljZTsKIAogLypzdGF0aWMqLyB2b2lkIENMaXRlQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQs
IC4uLikKIHsKLSAgICBjaGFyIG1lc3NhZ2VbMjU2XTsKKyAgICBjaGFyKiBtZXNzYWdlOworICAg
IHNpemVfdCBsZW5ndGg7CiAgICAgdmFfbGlzdCBhcmdzOwogCiAgICAgdmFfc3RhcnQoYXJncywg
Zm10KTsKLSAgICB2c25wcmludGZfcyhtZXNzYWdlLCBzaXplb2YobWVzc2FnZSksIHNpemVvZiht
ZXNzYWdlKS9zaXplb2YobWVzc2FnZVswXSkgLSAxLCBmbXQsIGFyZ3MpOworICAgIGxlbmd0aCA9
IF92c2NwcmludGYoZm10LCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7CiAKKyAgICBtZXNzYWdl
ID0gbmV3IGNoYXJbbGVuZ3RoICsgMV07CisgICAgaWYgKG1lc3NhZ2UgPT0gTlVMTCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgdmFfc3RhcnQoYXJncywgZm10KTsKKyAgICB2c25wcmludGZfcyht
ZXNzYWdlLCAobGVuZ3RoICsgMSkgKiBzaXplb2YoY2hhciksIGxlbmd0aCwgZm10LCBhcmdzKTsK
KyAgICB2YV9lbmQoYXJncyk7CisKKyAgICBtZXNzYWdlW2xlbmd0aF0gPSAwOwogICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOworCisgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1f
Y3JpdCk7CisgICAgaWYgKHNfc2VydmljZS5tX2RldikgeworICAgICAgICBzX3NlcnZpY2UubV9k
ZXYtPkxvZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBkZWxldGUgW10gbWVzc2FnZTsKIH0KIAog
LypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZUluc3RhbGwoKQpkaWZmIC0tZ2l0IGEv
c3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRm
LmNwcAppbmRleCA3ZTVmYWRmLi4yMDI3NzY2IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L1hl
bklmYWNlSXRmLmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmNwcApAQCAtMTQy
LDQgKzE0MiwxNCBAQCBib29sIENYZW5JZmFjZUl0Zjo6U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJ
TUUqIHRpbWUpCiAgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NIQVJFRElORk9fR0VU
X1RJTUUsCiAgICAgICAgICAgICAgICAgIE5VTEwsIDAsCiAgICAgICAgICAgICAgICAgIHRpbWUs
IHNpemVvZihGSUxFVElNRSkpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KKwor
Ly8gbWlzYworYm9vbCBDWGVuSWZhY2VJdGY6OkxvZyhjb25zdCBzdGQ6OnN0cmluZyYgbXNnKQor
eworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9MT0csCisgICAgICAgICAgICAgICAg
ICh2b2lkKiltc2cuY19zdHIoKSwgKERXT1JEKW1zZy5sZW5ndGgoKSArIDEsCisgICAgICAgICAg
ICAgICAgIE5VTEwsIDApOworfQorCisKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvWGVuSWZh
Y2VJdGYuaCBiL3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaAppbmRleCBlMzZmMTg5Li4wZWY0
MmE4IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmgKKysrIGIvc3JjL2xp
dGVhZ2VudC9YZW5JZmFjZUl0Zi5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzogLy8gc3VzcGVu
ZCBpbnRlcmZhY2UKIAogcHVibGljOiAvLyBzaGFyZWRpbmZvIGludGVyZmFjZQogICAgIGJvb2wg
U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJTUUqIHRpbWUpOworCitwdWJsaWM6IC8vIG1pc2MKKyAg
ICBib29sIExvZyhjb25zdCBzdGQ6OnN0cmluZyYgbXNnKTsKIH07CiAKICNlbmRpZgotLSAKMS45
LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:46:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dbn-00038l-KZ; Tue, 24 May 2016 14:46:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbm-000360-KG
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:46:58 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 78/83-12024-16964475; Tue, 24 May 2016 14:46:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrrBXjcx0yX
 coG+vjMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2LLgDnvBN8GKD+sdGxhP8nUxcnJICPhLTNl4
 gA3EZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/FyuILSzgJHH912OwGhYBVYn2q9OA4hwcv
 AJuElcu10GM1JDY1DADbCQnUPjdh/tg5UICrhKfN31nhLCVJL4tfsEMYvMKCEqcnPmEBWKVhM
 TBFxBxCQFuidunpzJPYOSbhaRsFpKyBYxMqxg1ilOLylKLdA0N9JKKMtMzSnITM3OAPFO93NT
 i4sT01JzEpGK95PzcTYzAcGIAgh2Ma6Y6H2KU5GBSEuUtSHIJF+JLyk+pzEgszogvKs1JLT7E
 KMPBoSTB+y0dKCdYlJqeWpGWmQMMbJi0BAePkghvUAZQmre4IDG3ODMdInWKUVFKnNcQJCEAk
 sgozYNrg0XTJUZZKWFeRqBDhHgKUotyM0tQ5V8xinMwKgnzaoJM4cnMK4Gb/gpoMRPQYv8vzi
 CLSxIRUlINjJO5l/5VPXf8Z0Ig83Xh3A9XTsXEr3zTfp598QMx17XttuwGuRoTNtVWdtT9r57
 sdj+JKfxX6qpue1bl6Efx+c8kH6/h/X/2xYvrr4+yPSxpepj7LnReWq7i/KYcF+9ih78f+aST
 funpBVqcPRas9CjaUu/rlMbi/tzctK63p58FHAzXjci6r8RSnJFoqMVcVJwIAKJBq9GhAgAA
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1464101215!25315331!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52408 invoked from network); 24 May 2016 14:46:57 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:46:57 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="363083246"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:59 +0100
Message-ID: <1464099660-12432-20-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 19/20] Dynamically allocate the buffer for
	logging
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsb3dzIGxvZyBtZXNzYWdlcyBsb25nZXIgdGhhbiAyNTUgY2hhcmFjdGVycwoKU2lnbmVkLW9m
Zi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy9saXRlYWdl
bnQvTGl0ZUFnZW50LmNwcCAgIHwgMjEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvbGl0ZWFn
ZW50L1hlbklmYWNlSXRmLmNwcCB8IDEyICsrKysrKysrKysrLQogc3JjL2xpdGVhZ2VudC9YZW5J
ZmFjZUl0Zi5oICAgfCAgMyArKysKIDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwg
MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAg
Yi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKaW5kZXggNTY4YTJjYi4uODU5OWQ1MiAxMDA2
NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCisrKyBiL3NyYy9saXRlYWdlbnQv
TGl0ZUFnZW50LmNwcApAQCAtNzksMTQgKzc5LDMxIEBAIHN0YXRpYyBDTGl0ZUFnZW50IHNfc2Vy
dmljZTsKIAogLypzdGF0aWMqLyB2b2lkIENMaXRlQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQs
IC4uLikKIHsKLSAgICBjaGFyIG1lc3NhZ2VbMjU2XTsKKyAgICBjaGFyKiBtZXNzYWdlOworICAg
IHNpemVfdCBsZW5ndGg7CiAgICAgdmFfbGlzdCBhcmdzOwogCiAgICAgdmFfc3RhcnQoYXJncywg
Zm10KTsKLSAgICB2c25wcmludGZfcyhtZXNzYWdlLCBzaXplb2YobWVzc2FnZSksIHNpemVvZiht
ZXNzYWdlKS9zaXplb2YobWVzc2FnZVswXSkgLSAxLCBmbXQsIGFyZ3MpOworICAgIGxlbmd0aCA9
IF92c2NwcmludGYoZm10LCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7CiAKKyAgICBtZXNzYWdl
ID0gbmV3IGNoYXJbbGVuZ3RoICsgMV07CisgICAgaWYgKG1lc3NhZ2UgPT0gTlVMTCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgdmFfc3RhcnQoYXJncywgZm10KTsKKyAgICB2c25wcmludGZfcyht
ZXNzYWdlLCAobGVuZ3RoICsgMSkgKiBzaXplb2YoY2hhciksIGxlbmd0aCwgZm10LCBhcmdzKTsK
KyAgICB2YV9lbmQoYXJncyk7CisKKyAgICBtZXNzYWdlW2xlbmd0aF0gPSAwOwogICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOworCisgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1f
Y3JpdCk7CisgICAgaWYgKHNfc2VydmljZS5tX2RldikgeworICAgICAgICBzX3NlcnZpY2UubV9k
ZXYtPkxvZyhtZXNzYWdlKTsKKyAgICB9CisKKyAgICBkZWxldGUgW10gbWVzc2FnZTsKIH0KIAog
LypzdGF0aWMqLyBpbnQgQ0xpdGVBZ2VudDo6U2VydmljZUluc3RhbGwoKQpkaWZmIC0tZ2l0IGEv
c3JjL2xpdGVhZ2VudC9YZW5JZmFjZUl0Zi5jcHAgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRm
LmNwcAppbmRleCA3ZTVmYWRmLi4yMDI3NzY2IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L1hl
bklmYWNlSXRmLmNwcAorKysgYi9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmNwcApAQCAtMTQy
LDQgKzE0MiwxNCBAQCBib29sIENYZW5JZmFjZUl0Zjo6U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJ
TUUqIHRpbWUpCiAgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NIQVJFRElORk9fR0VU
X1RJTUUsCiAgICAgICAgICAgICAgICAgIE5VTEwsIDAsCiAgICAgICAgICAgICAgICAgIHRpbWUs
IHNpemVvZihGSUxFVElNRSkpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KKwor
Ly8gbWlzYworYm9vbCBDWGVuSWZhY2VJdGY6OkxvZyhjb25zdCBzdGQ6OnN0cmluZyYgbXNnKQor
eworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9MT0csCisgICAgICAgICAgICAgICAg
ICh2b2lkKiltc2cuY19zdHIoKSwgKERXT1JEKW1zZy5sZW5ndGgoKSArIDEsCisgICAgICAgICAg
ICAgICAgIE5VTEwsIDApOworfQorCisKZGlmZiAtLWdpdCBhL3NyYy9saXRlYWdlbnQvWGVuSWZh
Y2VJdGYuaCBiL3NyYy9saXRlYWdlbnQvWGVuSWZhY2VJdGYuaAppbmRleCBlMzZmMTg5Li4wZWY0
MmE4IDEwMDY0NAotLS0gYS9zcmMvbGl0ZWFnZW50L1hlbklmYWNlSXRmLmgKKysrIGIvc3JjL2xp
dGVhZ2VudC9YZW5JZmFjZUl0Zi5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzogLy8gc3VzcGVu
ZCBpbnRlcmZhY2UKIAogcHVibGljOiAvLyBzaGFyZWRpbmZvIGludGVyZmFjZQogICAgIGJvb2wg
U2hhcmVkSW5mb0dldFRpbWUoRklMRVRJTUUqIHRpbWUpOworCitwdWJsaWM6IC8vIG1pc2MKKyAg
ICBib29sIExvZyhjb25zdCBzdGQ6OnN0cmluZyYgbXNnKTsKIH07CiAKICNlbmRpZgotLSAKMS45
LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:47:12 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:47:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dc0-0003Dl-Ml; Tue, 24 May 2016 14:47:12 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbz-0003DE-B3
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:47:11 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 B2/C3-09621-E6964475; Tue, 24 May 2016 14:47:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjcv0yX
 c4OJqDos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fnKataCbQoVl3uqGhh3SXQxcnJICPhL3Lox
 lwnEZhPQkJjRuZgFxBYRUJfY93krWJxZQE3i+v4uVhBbWCBUYunFPnYQm0VAVeLaulVg9bwCb
 hKdXx4xQczUkNjUMIMNxOYEir/7cB+sRkjAVeLzpu+MELaSxLfFL5ghegUlTs58wgKxS0Li4A
 uIuIQAt8Tt01OZJzDyzUJSNgtJ2QJGplWM6sWpRWWpRbpGeklFmekZJbmJmTm6hoYmermpxcW
 J6ak5iUnFesn5uZsYgeHEAAQ7GFvmOB9ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrNSS0+xCjD
 waEkwfstHSgnWJSanlqRlpkDDGyYtAQHj5IIrzJImre4IDG3ODMdInWKUVFKnHcXSEIAJJFRm
 gfXBoumS4yyUsK8jECHCPEUpBblZpagyr9iFOdgVBLmfQ0yhSczrwRu+iugxUxAi/2/OIMsLk
 lESEk1MBYo3Jjh7n/1Tv2E69c/mRTm7HuaxcKqfkjqoJ+of6Cs6xVBgdO25h/2uJkYHVzcJlN
 tsPf1kcMt3tIKgS6bds2XeFF2aMcaJ/t7FvMz7Iu/75hzxmRJ1Lytv831JGwP99+bNt046c5M
 zX91uS2S2e9sdm5b5nK+ojLr7DqHjZ+n99+597JxGZsSS3FGoqEWc1FxIgAW3jenoQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1464101228!35001293!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54591 invoked from network); 24 May 2016 14:47:09 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:47:09 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300613"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:55 +0100
Message-ID: <1464099660-12432-16-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 15/20] Add OnShutdown handler to
	poweroff/halt/reboot/hibernate/s3 VM
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgIDEgKwog
MiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCmluZGV4IGRi
NmMzYjkuLjlmNmY1NmYgMTAwNjQ0Ci0tLSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAor
KysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNkZWZp
bmUgSU5JVEdVSUQKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDxwb3dycHJvZi5oPgorI2luY2x1ZGUgPHdpbnVzZXIuaD4KIAogI2luY2x1ZGUgIkxp
dGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgpAQCAtMzA4LDggKzMxMCw1
MyBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgIC8vIGNoZWNrIHNodXRkb3du
IHR5cGUgYW5kIGVuYWN0IHNodXRkb3duCiAgICAgc3RkOjpzdHJpbmcgdHlwZTsKICAgICBtX2Rl
di0+U3RvcmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgdHlwZSk7CisgICAgbV9kZXYtPlN0b3Jl
UmVtb3ZlKCJjb250cm9sL3NodXRkb3duIik7CiAKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXMpXG4iLCB0eXBlLmNfc3RyKCkpOworCisgICAgQk9PTCByZXM7CisgICAgaWYgKHR5
cGUgPT0gInBvd2Vyb2ZmIiB8fCB0eXBlID09ICJoYWx0IikgeworICAgICAgICBBY3F1aXJlU3lz
dGVtUHJpdmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOworICAgICAgICBtX2Rldi0+U3RvcmVXcml0
ZSgiY29udHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJzdGFydGVkIik7CisgICAgICAgIHJlcyA9IElu
aXRpYXRlU3lzdGVtU2h1dGRvd25FeChOVUxMLCBOVUxMLCAwLCBUUlVFLCBGQUxTRSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhF
UiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05f
TUlOT1JfRU5WSVJPTk1FTlQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7CisgICAgICAgIGlmICghcmVzKSB7CisgICAg
ICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJmYWls
ZWQiKTsKKyAgICAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiSW5pdGlhdGVTeXN0ZW1TaHV0ZG93
bkV4IGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgZWxzZSBpZiAodHlwZSA9PSAicmVib290IikgeworICAgICAgICBBY3F1aXJlU3lzdGVtUHJp
dmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOworICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29u
dHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJzdGFydGVkIik7CisgICAgICAgIHJlcyA9IEluaXRpYXRl
U3lzdGVtU2h1dGRvd25FeChOVUxMLCBOVUxMLCAwLCBUUlVFLCBUUlVFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSIHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9F
TlZJUk9OTUVOVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fRkxBR19QTEFOTkVEKTsKKyAgICAgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgICAg
IG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duLXN0YXRlIiwgImZhaWxlZCIpOwor
ICAgICAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNodXRkb3duRXggZmFp
bGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNl
IGlmICh0eXBlID09ICJoaWJlcm5hdGUiKSB7CisgICAgICAgIEFjcXVpcmVTeXN0ZW1Qcml2aWxl
Z2UoU0VfU0hVVERPV05fTkFNRSk7CisgICAgICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9s
L2hpYmVybmF0aW9uLXN0YXRlIiwgInN0YXJ0ZWQiKTsKKyAgICAgICAgcmVzID0gU2V0U3lzdGVt
UG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpOworICAgICAgICBpZiAoIXJlcykgeworICAgICAgICAg
ICAgbV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFpbGVk
Iik7CisgICAgICAgICAgICBDTGl0ZUFnZW50OjpMb2coIlNldFN5c3RlbVBvd2VyU3RhdGUgZmFp
bGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNl
IGlmICh0eXBlID09ICJzMyIpIHsKKyAgICAgICAgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShTRV9T
SFVURE9XTl9OQU1FKTsKKyAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvczMtc3Rh
dGUiLCAic3RhcnRlZCIpOworICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRS
VUUsIEZBTFNFKTsKKyAgICAgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgICAgIG1fZGV2LT5TdG9y
ZVdyaXRlKCJjb250cm9sL3MzLXN0YXRlIiwgImZhaWxlZCIpOworICAgICAgICAgICAgQ0xpdGVB
Z2VudDo6TG9nKCJTZXRTdXNwZW5kU3RhdGUgZmFpbGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigp
KTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQpA
QCAtNDQ0LDYgKzQ5MSwyNSBAQCBkb25lOgogICAgIHJldHVybiBtYXRjaDsKIH0KIAordm9pZCBD
TGl0ZUFnZW50OjpBY3F1aXJlU3lzdGVtUHJpdmlsZWdlKGNvbnN0IGNoYXIqIG5hbWUpCit7Cisg
ICAgSEFORExFICAgICAgICAgIHRva2VuOworICAgIFRPS0VOX1BSSVZJTEVHRVMgdHA7CisKKyAg
ICBMb29rdXBQcml2aWxlZ2VWYWx1ZShOVUxMLCBuYW1lLCAmdHAuUHJpdmlsZWdlc1swXS5MdWlk
KTsKKyAgICB0cC5Qcml2aWxlZ2VzWzBdLkF0dHJpYnV0ZXMgPSBTRV9QUklWSUxFR0VfRU5BQkxF
RDsKKworICAgIHRwLlByaXZpbGVnZUNvdW50ID0gMTsKKworICAgIGlmICghT3BlblByb2Nlc3NU
b2tlbihHZXRDdXJyZW50UHJvY2VzcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUT0tF
Tl9BREpVU1RfUFJJVklMRUdFUyB8IFRPS0VOX1FVRVJZLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAmdG9rZW4pKQorICAgICAgICByZXR1cm47CisKKyAgICBBZGp1c3RUb2tlblByaXZpbGVn
ZXModG9rZW4sIEZBTFNFLCAmdHAsIE5VTEwsIDAsIE5VTEwpOworICAgIENsb3NlSGFuZGxlKHRv
a2VuKTsKK30KKwogdm9pZCBDTGl0ZUFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRl
LCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQgLyo9IDAqLykKIHsKICAgICBtX3N0YXR1
cy5kd0N1cnJlbnRTdGF0ZSA9IHN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRl
QWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKaW5kZXggZTNhMjU3My4uNTg1NTQx
NiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5oCkBAIC03NSw2ICs3NSw3IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZl
bnRzCiAgICAgYm9vbCBIb3N0VGltZUlzVXRjKCk7CiAgICAgdm9pZCBBZGp1c3RYZW5UaW1lVG9V
dGMoRklMRVRJTUUqIG5vdyk7CiAgICAgYm9vbCBSZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRo
LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSk7CisgICAgdm9pZCBBY3F1aXJl
U3lzdGVtUHJpdmlsZWdlKGNvbnN0IGNoYXIqIG5hbWUpOwogCiBwcml2YXRlOiAvLyBzZXJ2aWNl
IHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4
aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue May 24 14:47:12 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 24 May 2016 14:47:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1b5Dc0-0003Dl-Ml; Tue, 24 May 2016 14:47:12 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=945ceb362=owen.smith@citrix.com>)
 id 1b5Dbz-0003DE-B3
 for win-pv-devel@lists.xenproject.org; Tue, 24 May 2016 14:47:11 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 B2/C3-09621-E6964475; Tue, 24 May 2016 14:47:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUjcv0yX
 c4OJqDos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fnKataCbQoVl3uqGhh3SXQxcnJICPhL3Lox
 lwnEZhPQkJjRuZgFxBYRUJfY93krWJxZQE3i+v4uVhBbWCBUYunFPnYQm0VAVeLaulVg9bwCb
 hKdXx4xQczUkNjUMIMNxOYEir/7cB+sRkjAVeLzpu+MELaSxLfFL5ghegUlTs58wgKxS0Li4A
 uIuIQAt8Tt01OZJzDyzUJSNgtJ2QJGplWM6sWpRWWpRbpGeklFmekZJbmJmTm6hoYmermpxcW
 J6ak5iUnFesn5uZsYgeHEAAQ7GFvmOB9ilORgUhLlLUhyCRfiS8pPqcxILM6ILyrNSS0+xCjD
 waEkwfstHSgnWJSanlqRlpkDDGyYtAQHj5IIrzJImre4IDG3ODMdInWKUVFKnHcXSEIAJJFRm
 gfXBoumS4yyUsK8jECHCPEUpBblZpagyr9iFOdgVBLmfQ0yhSczrwRu+iugxUxAi/2/OIMsLk
 lESEk1MBYo3Jjh7n/1Tv2E69c/mRTm7HuaxcKqfkjqoJ+of6Cs6xVBgdO25h/2uJkYHVzcJlN
 tsPf1kcMt3tIKgS6bds2XeFF2aMcaJ/t7FvMz7Iu/75hzxmRJ1Lytv831JGwP99+bNt046c5M
 zX91uS2S2e9sdm5b5nK+ojLr7DqHjZ+n99+597JxGZsSS3FGoqEWc1FxIgAW3jenoQIAAA==
X-Env-Sender: prvs=945ceb362=owen.smith@citrix.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1464101228!35001293!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.34; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54591 invoked from network); 24 May 2016 14:47:09 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 24 May 2016 14:47:09 -0000
X-IronPort-AV: E=Sophos;i="5.26,360,1459814400"; d="scan'208";a="356300613"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 24 May 2016 15:20:55 +0100
Message-ID: <1464099660-12432-16-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
References: <1464099660-12432-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 15/20] Add OnShutdown handler to
	poweroff/halt/reboot/hibernate/s3 VM
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNy
Yy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcCB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaCAgIHwgIDEgKwog
MiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVh
Z2VudC9MaXRlQWdlbnQuY3BwIGIvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuY3BwCmluZGV4IGRi
NmMzYjkuLjlmNmY1NmYgMTAwNjQ0Ci0tLSBhL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmNwcAor
KysgYi9zcmMvbGl0ZWFnZW50L0xpdGVBZ2VudC5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNkZWZp
bmUgSU5JVEdVSUQKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDxwb3dycHJvZi5oPgorI2luY2x1ZGUgPHdpbnVzZXIuaD4KIAogI2luY2x1ZGUgIkxp
dGVBZ2VudC5oIgogI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgpAQCAtMzA4LDggKzMxMCw1
MyBAQCB2b2lkIENMaXRlQWdlbnQ6Ok9uU2h1dGRvd24oKQogICAgIC8vIGNoZWNrIHNodXRkb3du
IHR5cGUgYW5kIGVuYWN0IHNodXRkb3duCiAgICAgc3RkOjpzdHJpbmcgdHlwZTsKICAgICBtX2Rl
di0+U3RvcmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgdHlwZSk7CisgICAgbV9kZXYtPlN0b3Jl
UmVtb3ZlKCJjb250cm9sL3NodXRkb3duIik7CiAKICAgICBDTGl0ZUFnZW50OjpMb2coIk9uU2h1
dGRvd24oJXMpXG4iLCB0eXBlLmNfc3RyKCkpOworCisgICAgQk9PTCByZXM7CisgICAgaWYgKHR5
cGUgPT0gInBvd2Vyb2ZmIiB8fCB0eXBlID09ICJoYWx0IikgeworICAgICAgICBBY3F1aXJlU3lz
dGVtUHJpdmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOworICAgICAgICBtX2Rldi0+U3RvcmVXcml0
ZSgiY29udHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJzdGFydGVkIik7CisgICAgICAgIHJlcyA9IElu
aXRpYXRlU3lzdGVtU2h1dGRvd25FeChOVUxMLCBOVUxMLCAwLCBUUlVFLCBGQUxTRSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhF
UiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05f
TUlOT1JfRU5WSVJPTk1FTlQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7CisgICAgICAgIGlmICghcmVzKSB7CisgICAg
ICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJmYWls
ZWQiKTsKKyAgICAgICAgICAgIENMaXRlQWdlbnQ6OkxvZygiSW5pdGlhdGVTeXN0ZW1TaHV0ZG93
bkV4IGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgZWxzZSBpZiAodHlwZSA9PSAicmVib290IikgeworICAgICAgICBBY3F1aXJlU3lzdGVtUHJp
dmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOworICAgICAgICBtX2Rldi0+U3RvcmVXcml0ZSgiY29u
dHJvbC9zaHV0ZG93bi1zdGF0ZSIsICJzdGFydGVkIik7CisgICAgICAgIHJlcyA9IEluaXRpYXRl
U3lzdGVtU2h1dGRvd25FeChOVUxMLCBOVUxMLCAwLCBUUlVFLCBUUlVFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSIHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9F
TlZJUk9OTUVOVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fRkxBR19QTEFOTkVEKTsKKyAgICAgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgICAg
IG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duLXN0YXRlIiwgImZhaWxlZCIpOwor
ICAgICAgICAgICAgQ0xpdGVBZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNodXRkb3duRXggZmFp
bGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNl
IGlmICh0eXBlID09ICJoaWJlcm5hdGUiKSB7CisgICAgICAgIEFjcXVpcmVTeXN0ZW1Qcml2aWxl
Z2UoU0VfU0hVVERPV05fTkFNRSk7CisgICAgICAgIG1fZGV2LT5TdG9yZVdyaXRlKCJjb250cm9s
L2hpYmVybmF0aW9uLXN0YXRlIiwgInN0YXJ0ZWQiKTsKKyAgICAgICAgcmVzID0gU2V0U3lzdGVt
UG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpOworICAgICAgICBpZiAoIXJlcykgeworICAgICAgICAg
ICAgbV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFpbGVk
Iik7CisgICAgICAgICAgICBDTGl0ZUFnZW50OjpMb2coIlNldFN5c3RlbVBvd2VyU3RhdGUgZmFp
bGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNl
IGlmICh0eXBlID09ICJzMyIpIHsKKyAgICAgICAgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShTRV9T
SFVURE9XTl9OQU1FKTsKKyAgICAgICAgbV9kZXYtPlN0b3JlV3JpdGUoImNvbnRyb2wvczMtc3Rh
dGUiLCAic3RhcnRlZCIpOworICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRS
VUUsIEZBTFNFKTsKKyAgICAgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgICAgIG1fZGV2LT5TdG9y
ZVdyaXRlKCJjb250cm9sL3MzLXN0YXRlIiwgImZhaWxlZCIpOworICAgICAgICAgICAgQ0xpdGVB
Z2VudDo6TG9nKCJTZXRTdXNwZW5kU3RhdGUgZmFpbGVkICUwOHhcbiIsIEdldExhc3RFcnJvcigp
KTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBDTGl0ZUFnZW50OjpPblN1c3BlbmQoKQpA
QCAtNDQ0LDYgKzQ5MSwyNSBAQCBkb25lOgogICAgIHJldHVybiBtYXRjaDsKIH0KIAordm9pZCBD
TGl0ZUFnZW50OjpBY3F1aXJlU3lzdGVtUHJpdmlsZWdlKGNvbnN0IGNoYXIqIG5hbWUpCit7Cisg
ICAgSEFORExFICAgICAgICAgIHRva2VuOworICAgIFRPS0VOX1BSSVZJTEVHRVMgdHA7CisKKyAg
ICBMb29rdXBQcml2aWxlZ2VWYWx1ZShOVUxMLCBuYW1lLCAmdHAuUHJpdmlsZWdlc1swXS5MdWlk
KTsKKyAgICB0cC5Qcml2aWxlZ2VzWzBdLkF0dHJpYnV0ZXMgPSBTRV9QUklWSUxFR0VfRU5BQkxF
RDsKKworICAgIHRwLlByaXZpbGVnZUNvdW50ID0gMTsKKworICAgIGlmICghT3BlblByb2Nlc3NU
b2tlbihHZXRDdXJyZW50UHJvY2VzcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUT0tF
Tl9BREpVU1RfUFJJVklMRUdFUyB8IFRPS0VOX1FVRVJZLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAmdG9rZW4pKQorICAgICAgICByZXR1cm47CisKKyAgICBBZGp1c3RUb2tlblByaXZpbGVn
ZXModG9rZW4sIEZBTFNFLCAmdHAsIE5VTEwsIDAsIE5VTEwpOworICAgIENsb3NlSGFuZGxlKHRv
a2VuKTsKK30KKwogdm9pZCBDTGl0ZUFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRl
LCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQgLyo9IDAqLykKIHsKICAgICBtX3N0YXR1
cy5kd0N1cnJlbnRTdGF0ZSA9IHN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2xpdGVhZ2VudC9MaXRl
QWdlbnQuaCBiL3NyYy9saXRlYWdlbnQvTGl0ZUFnZW50LmgKaW5kZXggZTNhMjU3My4uNTg1NTQx
NiAxMDA2NDQKLS0tIGEvc3JjL2xpdGVhZ2VudC9MaXRlQWdlbnQuaAorKysgYi9zcmMvbGl0ZWFn
ZW50L0xpdGVBZ2VudC5oCkBAIC03NSw2ICs3NSw3IEBAIHByaXZhdGU6IC8vIHNlcnZpY2UgZXZl
bnRzCiAgICAgYm9vbCBIb3N0VGltZUlzVXRjKCk7CiAgICAgdm9pZCBBZGp1c3RYZW5UaW1lVG9V
dGMoRklMRVRJTUUqIG5vdyk7CiAgICAgYm9vbCBSZWdNYXRjaFN0cihjb25zdCBjaGFyKiBwYXRo
LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSk7CisgICAgdm9pZCBBY3F1aXJl
U3lzdGVtUHJpdmlsZWdlKGNvbnN0IGNoYXIqIG5hbWUpOwogCiBwcml2YXRlOiAvLyBzZXJ2aWNl
IHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4
aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

