From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Derzhavets Subject: Re: Re: 2.6.37-rc1 mainline domU - BUG: unable to handle kernel paging request Date: Tue, 16 Nov 2010 11:20:11 -0800 (PST) Message-ID: <535480.36725.qm@web56104.mail.re3.yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0-985759422-1289935211=:36725" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Bruce Edge , Konrad Rzeszutek Wilk Cc: Jeremy Fitzhardinge , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --0-985759422-1289935211=:36725 Content-Type: multipart/alternative; boundary="0-1326070384-1289935211=:36725" --0-1326070384-1289935211=:36725 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Sorry, patches for 2.6.37-rc1-git8 are attached. You also would need :- patch-2.6.37-rc1.bz2 patch-2.6.37-rc1-git8.bz2 All of them should be in /root/rpmbuild/SOURCES folder after src.rpm instal= l on=20 any F14,F13,F12.=20 Boris. --- On Tue, 11/16/10, Boris Derzhavets wrote: From: Boris Derzhavets Subject: Re: [Xen-devel] Re: 2.6.37-rc1 mainline domU - BUG: unable to hand= le kernel paging request To: "Bruce Edge" , "Konrad Rzeszutek Wilk" Cc: "Jeremy Fitzhardinge" , xen-devel@lists.xensource.com Date: Tuesday, November 16, 2010, 1:43 PM Today i've built vmlinuz-2.6.37-0.1.rc1.git8.xendom0.fc14.x86_64 via Michael's http://koji.fedoraproject.org/koji/taskinfo?taskID=3D2598434 and uncommented xen.pcifront.fixes.patch in kernel.spec, i.e. # Xen patches ApplyPatch xen.next-2.6.37.patch # ApplyPatch xen.upstream.core.patch ApplyPatch xen.pcifront.fixes.patch # ApplyPatch xen.pvhvm.fixes.patch as a fesult a got kernel wich runs pretty stable NFS client at Xen 4.0.1=20 F14 Dom0 (2.6.32.25-172.xendom0.fc14.x86_64). =A0=20 =A0 I was able several times copied from NFS folder F14's ISO image (3.2 GB= )=20 to DomU and scp'ed it back and didn't get any kernel crashing on DomU. =A0On Ubuntu 10.04 this kernel may be built as 2.6.37-rc1&git8 patched via xen.next-2.6.37.patch xen.pcifront.fixes.patch All required upstream patches may be taken (as=0A well as 2 above) from=A0 http://koji.fedoraproject.org/koji/taskinfo?taskID=3D2598434 =A0 I believe as soon as xen.pcifront.fixes.patch will be accepted by upstr= eam NFS client issue on F14 will be gone=20 Boris --- On Mon, 11/15/10, Bruce Edge wrote: From: Bruce Edge Subject: Re: [Xen-devel] Re: 2.6.37-rc1 mainline domU - BUG: unable to hand= le kernel paging request To: "Sander Eikelenboom" Cc: "Boris Derzhavets" , "Konrad Rzeszutek Wilk" , xen-devel@lists.xensource.com, "Jeremy Fitzhardinge"= Date: Monday, November 15, 2010, 3:21 PM On Sun, Nov 14, 2010 at 8:56 AM, Sander Eikelenboom wrote: > Hmmm have you tried do do a lot of I/O with something else as NFS ? > That would perhaps pinpoint it to NFS doing something not completely comp= atible with Xen. > > I'm not using NFS (I still use file: based guests, and i use glusterfs (f= use based userspace cluster fs) to share diskspace to domU's via ethernet). Sander, I took a quick look at glusterfs and it uses the same nfs client: http://www.gluster.com/community/documentation/index.php/Gluster_3.1:_Manua= lly_Mounting_Volumes_Using_NFS I'm assuming that this would cause the same problem on the VM as we're seeing with NFS, unless it's really an Xen/dom0 NFS server problem that triggering the domU nfs client=0A crash. Perhaps the context is different. I'm exporting filesystems to domU from dom0 via NFS. Is that how you're using glusterfs, or are you using it to host your file backed VM's storage? In the latter, that may explain why you're not seeing these problems because you're not using the nfs client on domU. > I tried NFS in the past, but had some troubles setting it up, and even mo= re problems with disconnects. What kind of NFS problems? It was working very well for us until this problem cropped up. -Bruce > > I haven't seen any "unable to handle page request" problems with my mix o= f guest kernels, which includes some 2.6.37-rc1 kernels. > > -- > > Sander > > > > > > Sunday, November 14, 2010, 5:37:59 PM, you wrote: > >> I've tested F14 DomU (kernel vmlinuz-2.6.37-0.1.rc1.git8.xendom0.fc14.x8= 6_64) as NFS client and=0A Xen 4.0.1 F14 Dom0 (kernel vmlinuz-2.6.32.25-172= .xendom0.fc14.x86_64) as NFS server . Copied 700 MB ISO images from NFS fol= der at Dom0 to DomU and scp'ed them back to Dom0. During about 30 - 40 min = DomU ran pretty stable , regardless kernel crash as "unable to handle page = request" was reported once by F14 DomU, but it didn't actually crash DomU. = Same excersises with replacement F14 by Ubuntu 10.04 Server results DomU cr= ash in about several minutes. Dom0's instances dual boot on same developmen= t box ( Q9500,ASUS P5Q3,8GB) > >> Boris. > >> --- On Fri, 11/12/10, Konrad Rzeszutek Wilk wro= te: > >> From: Konrad Rzeszutek Wilk >> Subject: Re: [Xen-devel] Re:=0A 2.6.37-rc1 mainline domU - BUG: unable t= o handle kernel paging request >> To: "Sander Eikelenboom" >> Cc: "Boris Derzhavets" , xen-devel@lists.xensourc= e.com, "Bruce Edge" , "Jeremy Fitzhardinge" >> Date: Friday, November 12, 2010, 12:01 PM > >> On Fri, Nov 12, 2010 at 05:27:43PM +0100, Sander Eikelenboom wrote: >>> Hi=0A Bruce, >>> >>> Perhaps handpick some kernels before and after the pulls of the xen pat= ches (pv-on-hvm etc) to begin with ? >>> When you let git choose, especially with rc-1 kernels, you will end up = with kernels in between patch series, resulting in panics. > >> Well, just the bare-bone boot of PV guests with nothing fancy ought to w= ork. > >> But that is the theory and .. >>> > The git bisecting is slow going. I've never tried that before and I'm= a git >>> > rookie. >>> > I picked 2.6.36 - 2.6.37-rc1 as the bisect range and my first 2 bisec= ts all >>> > panic at boot so I'm obviously doing something wrong. >>> > I'll RTFM a bit more and keep at it. > >> .. as Bruce experiences this is not the case. Hmm.. > >> _______________________________________________ >> Xen-devel mailing=0A list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel > > > >> > > > > -- > Best regards, > =A0Sander =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0mailto:l= inux@eikelenboom.it > > =0A=0A=0A=0A=0A=0A=0A=0A =20 -----Inline Attachment Follows----- _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel =0A=0A=0A --0-1326070384-1289935211=:36725 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
Sorry, patches for 2.6.37-rc1-git8 are attach= ed.
You also would need :-

patch-2.6.37-rc1.bz2
patch-2.6.37-r= c1-git8.bz2

All of them should be in /root/rpmbuild/SOURCES folder a= fter src.rpm install on
any F14,F13,F12.

Boris.

--- On <= b>Tue, 11/16/10, Boris Derzhavets <bderzhavets@yahoo.com> = wrote:

From: Boris Derzhavets <bderzhave= ts@yahoo.com>
Subject: Re: [Xen-devel] Re: 2.6.37-rc1 mainline domU -= BUG: unable to handle kernel paging request
To: "Bruce Edge" <bruce.= edge@gmail.com>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com><= br>Cc: "Jeremy Fitzhardinge" <jeremy@goop.org>, xen-devel@lists.xenso= urce.com
Date: Tuesday, November 16, 2010, 1:43 PM

Today i've built = vmlinuz-2.6.37-0.1.rc1.git8.xendom0.fc14.x86_64
via Michael's http://koj= i.fedoraproject.org/koji/taskinfo?taskID=3D2598434
and uncommented xen.p= cifront.fixes.patch in kernel.spec, i.e.

# Xen patches
ApplyPatch= xen.next-2.6.37.patch
# ApplyPatch xen.upstream.core.patch
ApplyPatc= h xen.pcifront.fixes.patch
# ApplyPatch xen.pvhvm.fixes.patch

as = a fesult a got kernel wich runs pretty stable NFS client at Xen 4.0.1
F= 14 Dom0 (2.6.32.25-172.xendom0.fc14.x86_64).
 
  I was abl= e several times copied from NFS folder F14's ISO image (3.2 GB)
to DomU= and scp'ed it back and didn't get any kernel crashing on DomU.

&nbs= p;On Ubuntu 10.04 this kernel may be built as 2.6.37-rc1&git8 patched v= ia
xen.next-2.6.37.patch
xen.pcifront.fixes.patch
All required ups= tream patches may be taken (as=0A well as 2 above)
from  http://koji.fed= oraproject.org/koji/taskinfo?taskID=3D2598434
  I believe as soon a= s xen.pcifront.fixes.patch will be accepted by upstream
NFS client issue= on F14 will be gone

Boris


--- On Mon, 11/15/10, Bruc= e Edge <bruce.edge@gmail.com> wrote:

From: Bruce Edge <bruce.edge@gmail.com>
Subject: Re: [= Xen-devel] Re: 2.6.37-rc1 mainline domU - BUG: unable to handle kernel pagi= ng request
To: "Sander Eikelenboom" <linux@eikelenboom.it>
Cc: = "Boris Derzhavets" <bderzhavets@yahoo.com>, "Konrad Rzeszutek Wilk" &= lt;konrad.wilk@oracle.com>, xen-devel@lists.xensource.com, "Jeremy Fitzh= ardinge" <jeremy@goop.org>
Date: Monday, November 15, 2010, 3:21 P= M

On Sun, Nov 14, 2010 at 8:56= AM, Sander Eikelenboom
<linux@eikelenboom.it> wrote:=
> Hmmm have you tried do do a lot of I/O with something else as NFS = ?
> That would perhaps pinpoint it to NFS doing something not complet= ely compatible with Xen.
>
> I'm not using NFS (I still use fil= e: based guests, and i use glusterfs (fuse based userspace cluster fs) to s= hare diskspace to domU's via ethernet).

Sander,
I took a quick lo= ok at glusterfs and it uses the same nfs client:
http://www.gluster.c= om/community/documentation/index.php/Gluster_3.1:_Manually_Mounting_Volumes= _Using_NFS
I'm assuming that this would cause the same problem on th= e VM as we're
seeing with NFS, unless it's really an Xen/dom0 NFS server= problem
that triggering the domU nfs client=0A crash.

Perhaps th= e context is different. I'm exporting filesystems to domU
from dom0 via = NFS. Is that how you're using glusterfs, or are you
using it to host you= r file backed VM's storage? In the latter, that
may explain why you're n= ot seeing these problems because you're not
using the nfs client on domU= .


> I tried NFS in the past, but had some troubles setting it= up, and even more problems with disconnects.

What kind of NFS probl= ems? It was working very well for us until this
problem cropped up.
<= br>-Bruce

>
> I haven't seen any "unable to handle page req= uest" problems with my mix of guest kernels, which includes some 2.6.37-rc1= kernels.
>
> --
>
> Sander
>
>
>=
>
>
> Sunday, November 14, 2010, 5:37:59 PM, you wrote:<= br>>
>> I've tested F14 DomU (kernel vmlinuz-2.6.37-0.1.rc1.git= 8.xendom0.fc14.x86_64) as NFS client and=0A Xen 4.0.1 F14 Dom0 (kernel vmli= nuz-2.6.32.25-172.xendom0.fc14.x86_64) as NFS server . Copied 700 MB ISO im= ages from NFS folder at Dom0 to DomU and scp'ed them back to Dom0. During a= bout 30 - 40 min DomU ran pretty stable , regardless kernel crash as "unabl= e to handle page request" was reported once by F14 DomU, but it didn't actu= ally crash DomU. Same excersises with replacement F14 by Ubuntu 10.04 Serve= r results DomU crash in about several minutes. Dom0's instances dual boot o= n same development box ( Q9500,ASUS P5Q3,8GB)
>
>> Boris.>
>> --- On Fri, 11/12/10, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
>
>> From: = Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>= ;
>> Subject: Re: [Xen-devel] Re:=0A 2.6.37-rc1 mainline domU - BU= G: unable to handle kernel paging request
>> To: "Sander Eikelenbo= om" <linux@eikelenboom.it>
>> Cc: "B= oris Derzhavets" <bderzhavets@yahoo.com>, xen-devel@lists.xensource.com, "Bruce Edge" <bruce.edge@gmail.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>
>> Date: Friday, November 1= 2, 2010, 12:01 PM
>
>> On Fri, Nov 12, 2010 at 05:27:43PM +0= 100, Sander Eikelenboom wrote:
>>> Hi=0A Bruce,
>>>=
>>> Perhaps handpick some kernels before and after the pulls o= f the xen patches (pv-on-hvm etc) to begin with ?
>>> When you = let git choose, especially with rc-1 kernels, you will end up with kernels = in between patch series, resulting in panics.
>
>> Well, jus= t the bare-bone boot of PV guests with nothing fancy ought to work.
>=
>> But that is the theory and ..
>>> > The git bis= ecting is slow going. I've never tried that before and I'm a git
>>= ;> > rookie.
>>> > I picked 2.6.36 - 2.6.37-rc1 as the= bisect range and my first 2 bisects all
>>> > panic at boot= so I'm obviously doing something wrong.
>>> > I'll RTFM a b= it more and keep at it.
>
>> .. as Bruce experiences this is= not the case. Hmm..
>
>> __________________________________= _____________
>> Xen-devel mailing=0A list
>> Xen-devel@lists.xensource.com
>> http://list= s.xensource.com/xen-devel
>
>
>
>>
>>
>
> --
> Best regards,
>  Sander  =                     &nbs= p;    mailto:linux@eikelenboom.it
>=
>

=0A=0A=0A=0A= =0A=0A=0A=0A

-----Inline Attachment Follows-----

_______________________________________________
Xen= -devel mailing list
Xen-devel@lists.xen= source.com
http://lists.xensource.com/xen-devel
=

=0A=0A=0A=0A=0A=0A=0A=0A --0-1326070384-1289935211=:36725-- --0-985759422-1289935211=:36725 Content-Type: application/octet-stream; name="xen.next-2.6.37.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="xen.next-2.6.37.patch" RnJvbSA4YmQ2ZGRmZDU2OTMwOWQ4ZTkxNWZmYjZmNjhhZDdiZjAzZTUzOTIy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgRml0emhh cmRpbmdlIDxqZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+CkRhdGU6 IEZyaSwgMjAgRmViIDIwMDkgMTI6NTg6NDIgLTA4MDAKU3ViamVjdDogW1BB VENIIDAxLzIxXSB4ODY6IGRlZmluZSBhcmNoX3ZtX2dldF9wYWdlX3Byb3Qg dG8gc2V0IF9QQUdFX0lPTUFQIG9uIFZNX0lPIHZtYXMKClNldCBfUEFHRV9J T01BUCBpbiBwdGVzIG1hcHBpbmcgYSBWTV9JTyB2bWEuICBUaGlzIHNheXMg dGhhdCB0aGUgbWFwcGluZwppcyBvZiBhIHJlYWwgcGllY2Ugb2YgcGh5c2lj YWwgaGFyZHdhcmUsIGFuZCBub3QganVzdCBzeXN0ZW0gbWVtb3J5LgoKWGVu LCBpbiBwYXJ0aWN1bGFyLCB1c2VzIHRvIHRoaXMgdG8gaW5oaWJpdCB0aGUg bm9ybWFsIHBmbi0+bWZuIGNvbnZlcnNpb24KdGhhdCB3b3VsZCBub3JtYWxs eSBoYXBwZW4gLSBpbiBvdGhlciB3b3JkcywgdHJlYXQgdGhlIGFkZHJlc3Mg ZGlyZWN0bHkKYXMgYSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJlc3Mgd2l0aG91 dCBjb252ZXJ0aW5nIGl0IGZyb20gcHNldWRvLXBoeXNpY2FsLgoKWyBJbXBh Y3Q6IG1ha2UgVk1fSU8gbWFwcGluZ3MgbWFwIHRoZSByaWdodCB0aGluZyB1 bmRlciBYZW4gXQoKU2lnbmVkLW9mZi1ieTogSmVyZW15IEZpdHpoYXJkaW5n ZSA8amVyZW15LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgotLS0KIGFyY2gv eDg2L2luY2x1ZGUvYXNtL3BndGFibGUuaCB8ICAgIDMgKysrCiBhcmNoL3g4 Ni9tbS9wZ3RhYmxlLmMgICAgICAgICAgfCAgIDEwICsrKysrKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxl LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggYTM0 Yzc4NS4uNzE5OGJjZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vcGd0YWJsZS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFi bGUuaApAQCAtMzk5LDYgKzM5OSw5IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgbG9uZyBwYWdlc190b19tYih1bnNpZ25lZCBsb25nIG5wZykKICNkZWZp bmUgaW9fcmVtYXBfcGZuX3JhbmdlKHZtYSwgdmFkZHIsIHBmbiwgc2l6ZSwg cHJvdCkJXAogCXJlbWFwX3Bmbl9yYW5nZSh2bWEsIHZhZGRyLCBwZm4sIHNp emUsIHByb3QpCiAKKyNkZWZpbmUgYXJjaF92bV9nZXRfcGFnZV9wcm90IGFy Y2hfdm1fZ2V0X3BhZ2VfcHJvdAorZXh0ZXJuIHBncHJvdF90IGFyY2hfdm1f Z2V0X3BhZ2VfcHJvdCh1bnNpZ25lZCB2bV9mbGFncyk7CisKICNpZiBQQUdF VEFCTEVfTEVWRUxTID4gMgogc3RhdGljIGlubGluZSBpbnQgcHVkX25vbmUo cHVkX3QgcHVkKQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGd0YWJs ZS5jIGIvYXJjaC94ODYvbW0vcGd0YWJsZS5jCmluZGV4IDVjNGVlNDIuLjUw ODM0NDkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BndGFibGUuYworKysg Yi9hcmNoL3g4Ni9tbS9wZ3RhYmxlLmMKQEAgLTE1LDYgKzE1LDE2IEBACiAK IGdmcF90IF9fdXNlcnB0ZV9hbGxvY19nZnAgPSBQR0FMTE9DX0dGUCB8IFBH QUxMT0NfVVNFUl9HRlA7CiAKK3BncHJvdF90IGFyY2hfdm1fZ2V0X3BhZ2Vf cHJvdCh1bnNpZ25lZCB2bV9mbGFncykKK3sKKwlwZ3Byb3RfdCByZXQgPSBf X3BncHJvdCgwKTsKKworCWlmICh2bV9mbGFncyAmIFZNX0lPKQorCQlyZXQg PSBfX3BncHJvdChfUEFHRV9JT01BUCk7CisKKwlyZXR1cm4gcmV0OworfQor CiBwdGVfdCAqcHRlX2FsbG9jX29uZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVj dCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKIAlyZXR1cm4gKHB0 ZV90ICopX19nZXRfZnJlZV9wYWdlKFBHQUxMT0NfR0ZQKTsKLS0gCjEuNy4z LjIKCgpGcm9tIDU1MjdmOWJlZTQzYTkxMGIwMTlhZDc3ZDdkZTY2MjBiMzQx Mjc1OWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEplcmVteSBG aXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4K RGF0ZTogRnJpLCAyIE9jdCAyMDA5IDA5OjQ5OjA1IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAwMi8yMV0gZHJtOiByZWNvbXB1dGUgdm1hLT52bV9wYWdlX3By b3QgYWZ0ZXIgY2hhbmdpbmcgdm1fZmxhZ3MKCnZtX2dldF9wYWdlX3Byb3Qo KSBjb21wdXRlcyB2bV9wYWdlX3Byb3QgZGVwZW5kaW5nIG9uIHZtX2ZsYWdz LCBzbwp3ZSBuZWVkIHRvIHJlLWNhbGwgaXQgaWYgd2UgY2hhbmdlIGZsYWdz LgoKU2lnbmVkLW9mZi1ieTogSmVyZW15IEZpdHpoYXJkaW5nZSA8amVyZW15 LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX3ZtLmMgfCAgICAyICsrCiAxIGZpbGVzIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm9fdm0uYwppbmRleCBmZTZjYjc3Li4yZDE1YzVl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKQEAgLTI3 Myw2ICsyNzMsNyBAQCBpbnQgdHRtX2JvX21tYXAoc3RydWN0IGZpbGUgKmZp bHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCiAJdm1hLT52bV9w cml2YXRlX2RhdGEgPSBibzsKIAl2bWEtPnZtX2ZsYWdzIHw9IFZNX1JFU0VS VkVEIHwgVk1fSU8gfCBWTV9NSVhFRE1BUCB8IFZNX0RPTlRFWFBBTkQ7CisJ dm1hLT52bV9wYWdlX3Byb3QgPSB2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1f ZmxhZ3MpOwogCXJldHVybiAwOwogb3V0X3VucmVmOgogCXR0bV9ib191bnJl ZigmYm8pOwpAQCAtMjg4LDYgKzI4OSw3IEBAIGludCB0dG1fZmJkZXZfbW1h cChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibykKIAl2bWEtPnZtX29wcyA9ICZ0dG1fYm9fdm1fb3Bz OwogCXZtYS0+dm1fcHJpdmF0ZV9kYXRhID0gdHRtX2JvX3JlZmVyZW5jZShi byk7CiAJdm1hLT52bV9mbGFncyB8PSBWTV9SRVNFUlZFRCB8IFZNX0lPIHwg Vk1fTUlYRURNQVAgfCBWTV9ET05URVhQQU5EOworCXZtYS0+dm1fcGFnZV9w cm90ID0gdm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKTsKIAlyZXR1 cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2ZiZGV2X21tYXApOwotLSAK MS43LjMuMgoKCkZyb20gNjZhYWUwZGFkZTM5NzQ4YmI3ZTA2OGM0NTE4YzYx NjAzOTRhZTNhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVy ZW15IEZpdHpoYXJkaW5nZSA8amVyZW15LmZpdHpoYXJkaW5nZUBjaXRyaXgu Y29tPgpEYXRlOiBUaHUsIDI1IEZlYiAyMDEwIDE2OjM4OjI5IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAwMy8yMV0gYWdwOiBVc2UgUEFHRV9LRVJORUxfSU9f Tk9DQUNIRSBmb3IgQUdQIG1hcHBpbmdzCgpXaGVuIG1hcHBpbmcgQUdQIG1l bW9yeSwgdGhlIG9mZnNldCBpcyBhIG1hY2hpbmUgYWRkcmVzcy4gIEluIFhl biB3ZQpuZWVkIHRvIG1ha2Ugc3VyZSBtYXBwaW5ncyBvZiBwaHlzaWNhbCBt YWNoaW5lIGFkZHJlc3NlcyBoYXZlIF9QQUdFX0lPCmluY2x1ZGVkIGluIHRo ZSBQVEUsIHNvIHVzZSBQQUdFX0tFUk5FTF9JT19OT0NBQ0hFIGZvciB0aGVz ZSBtYXBwaW5ncy4KClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGlu Z2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBhcmNo L3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmggfCAgICAyICstCiAxIGZp bGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0 LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKaW5kZXgg MDc2MDUyYy4uMzAzOGVmNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGd0YWJsZV82NC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L3BndGFibGVfNjQuaApAQCAtMTYwLDcgKzE2MCw3IEBAIGV4dGVybiB2b2lk IGNsZWFudXBfaGlnaG1hcCh2b2lkKTsKICNkZWZpbmUgcGd0YWJsZV9jYWNo ZV9pbml0KCkgICBkbyB7IH0gd2hpbGUgKDApCiAjZGVmaW5lIGNoZWNrX3Bn dF9jYWNoZSgpICAgICAgZG8geyB9IHdoaWxlICgwKQogCi0jZGVmaW5lIFBB R0VfQUdQICAgIFBBR0VfS0VSTkVMX05PQ0FDSEUKKyNkZWZpbmUgUEFHRV9B R1AgICAgUEFHRV9LRVJORUxfSU9fTk9DQUNIRQogI2RlZmluZSBIQVZFX1BB R0VfQUdQIDEKIAogLyogZnMvcHJvYy9rY29yZS5jICovCi0tIAoxLjcuMy4y CgoKRnJvbSA0Y2QzNTg2MGRmMTZkN2QzYmQ1NWNlNGQ0NTAwYmZlNTljNDZh ODQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgRml0 emhhcmRpbmdlIDxqZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+CkRh dGU6IFdlZCwgMjQgRmViIDIwMTAgMTE6MTA6NDUgLTA4MDAKU3ViamVjdDog W1BBVENIIDA0LzIxXSBhZ3A6IHVzZSBETUEgQVBJIHdoZW4gY29tcGlsZWQg Zm9yIFhlbiBhcyB3ZWxsCgpYZW4gZ3Vlc3RzIG5lZWQgdHJhbnNsYXRpb24g YmV0d2VlbiBwc2V1ZG8tcGh5c2ljYWwgYW5kIHJlYWwgbWFjaGluZQpwaHlz aWNhbCBhZGRyZXNzZXMgd2hlbiBhY2Nlc3NpbmcgZ3JhcGhpY3MgZGV2aWNl cywgc28gdXNlIHRoZSBETUEgQVBJCmluIHRoYXQgY2FzZSB0b28uCgpTaWdu ZWQtb2ZmLWJ5OiBKZXJlbXkgRml0emhhcmRpbmdlIDxqZXJlbXkuZml0emhh cmRpbmdlQGNpdHJpeC5jb20+Ci0tLQogZHJpdmVycy9jaGFyL2FncC9pbnRl bC1ndHQuYyB8ICAgIDYgKysrKystCiAxIGZpbGVzIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jIGIvZHJpdmVycy9jaGFyL2FncC9p bnRlbC1ndHQuYwppbmRleCA3NWUwYTM0Li5jZTYzZTVjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jCisrKyBiL2RyaXZlcnMv Y2hhci9hZ3AvaW50ZWwtZ3R0LmMKQEAgLTIwLDggKzIwLDEyIEBACiAgKiBh biBJbnRlbCBJT01NVS4gU28gbWFrZSB0aGUgY29ycmVjdCB1c2Ugb2YgdGhl IFBDSSBETUEgQVBJIGNvbnRpbmdlbnQKICAqIG9uIHRoZSBJbnRlbCBJT01N VSBzdXBwb3J0IChDT05GSUdfRE1BUikuCiAgKiBPbmx5IG5ld2VyIGNoaXBz ZXRzIG5lZWQgdG8gYm90aGVyIHdpdGggdGhpcywgb2YgY291cnNlLgorICoK KyAqIFhlbiBndWVzdHMgYWNjZXNzaW5nIGdyYXBoaWNzIGhhcmR3YXJlIGFs c28gbmVlZCBwcm9wZXIgdHJhbnNsYXRpb24KKyAqIGJldHdlZW4gcHNldWRv LXBoeXNpY2FsIGFkZHJlc3NlcyBhbmQgcmVhbCBtYWNoaW5lIGFkZHJlc3Nl cywgd2hpY2gKKyAqIGlzIGFsc28gYWNoaWV2ZWQgYnkgdXNpbmcgdGhlIERN QSBBUEkuCiAgKi8KLSNpZmRlZiBDT05GSUdfRE1BUgorI2lmIGRlZmluZWQo Q09ORklHX0RNQVIpIHx8IGRlZmluZWQoQ09ORklHX1hFTikKICNkZWZpbmUg VVNFX1BDSV9ETUFfQVBJIDEKICNlbHNlCiAjZGVmaW5lIFVTRV9QQ0lfRE1B X0FQSSAwCi0tIAoxLjcuMy4yCgoKRnJvbSAzMWI2NDNlYzA1YTY0NDcwNWQ3 NWQ2ZDA0NzkxNzcxMGI0MTQ0ODdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29t PgpEYXRlOiBUaHUsIDMwIFNlcCAyMDEwIDEyOjM3OjI2ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwNS8yMV0geGVuOiBpbXBsZW1lbnQgWEVOTUVNX21hY2hw aHlzX21hcHBpbmcKClRoaXMgaHlwZXJjYWxsIGFsbG93cyBYZW4gdG8gc3Bl Y2lmeSBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUKbWFjaGluZSB0 byBwaHlzaWNhbCBtYXBwaW5nLiBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCB3 aGVuIHJ1bm5pbmcgYSAzMgpiaXQgZG9tYWluIDAgb24gYSA2NCBiaXQgaHlw ZXJ2aXNvciB0byBzaHJpbmsgdGhlIGh5cGVydmlzb3IgaG9sZSB0bwpleGFj dGx5IHRoZSBzaXplIHJlcXVpcmVkLgoKWyBJbXBhY3Q6IGFkZCBYZW4gaHlw ZXJjYWxsIGRlZmluaXRpb25zIF0KClNpZ25lZC1vZmYtYnk6IElhbiBDYW1w YmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6 IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0 cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxz dGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KLS0tCiBhcmNoL3g4 Ni9pbmNsdWRlL2FzbS94ZW4vaW50ZXJmYWNlLmggICAgfCAgICA2ICsrKy0t LQogYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFjZV8zMi5oIHwg ICAgNSArKysrKwogYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFj ZV82NC5oIHwgICAxMyArLS0tLS0tLS0tLS0tCiBhcmNoL3g4Ni9pbmNsdWRl L2FzbS94ZW4vcGFnZS5oICAgICAgICAgfCAgICA3ICsrKystLS0KIGFyY2gv eDg2L3hlbi9lbmxpZ2h0ZW4uYyAgICAgICAgICAgICAgICB8ICAgIDcgKysr KysrKwogYXJjaC94ODYveGVuL21tdS5jICAgICAgICAgICAgICAgICAgICAg IHwgICAxNCArKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4vaW50ZXJmYWNl L21lbW9yeS5oICAgICAgICAgIHwgICAxMyArKysrKysrKysrKysrCiA3IGZp bGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9pbnRl cmZhY2UuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9pbnRlcmZhY2Uu aAppbmRleCBlODUwNmMxLi4xYzEwYzg4IDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS94ZW4vaW50ZXJmYWNlLmgKKysrIGIvYXJjaC94ODYv aW5jbHVkZS9hc20veGVuL2ludGVyZmFjZS5oCkBAIC02MSw5ICs2MSw5IEBA IERFRklORV9HVUVTVF9IQU5ETEUodm9pZCk7CiAjZGVmaW5lIEhZUEVSVklT T1JfVklSVF9TVEFSVCBta191bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9W SVJUX1NUQVJUKQogI2VuZGlmCiAKLSNpZm5kZWYgbWFjaGluZV90b19waHlz X21hcHBpbmcKLSNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKCh1 bnNpZ25lZCBsb25nICopSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQotI2VuZGlm CisjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICBta191bnNpZ25lZF9s b25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCisjZGVmaW5lIE1BQ0gyUEhZ U19WSVJUX0VORCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJ UlRfRU5EKQorI2RlZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNI MlBIWVNfVklSVF9FTkQtTUFDSDJQSFlTX1ZJUlRfU1RBUlQpPj5fX01BQ0gy UEhZU19TSElGVCkKIAogLyogTWF4aW11bSBudW1iZXIgb2YgdmlydHVhbCBD UFVzIGluIG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCiAjZGVmaW5lIE1B WF9WSVJUX0NQVVMgMzIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3hlbi9pbnRlcmZhY2VfMzIuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L3hlbi9pbnRlcmZhY2VfMzIuaAppbmRleCA0MmE3ZTAwLi44NDEzNjg4IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaW50ZXJmYWNl XzMyLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFj ZV8zMi5oCkBAIC0zMiw2ICszMiwxMSBAQAogLyogQW5kIHRoZSB0cmFwIHZl Y3RvciBpcy4uLiAqLwogI2RlZmluZSBUUkFQX0lOU1RSICJpbnQgJDB4ODIi CiAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVCAweEY1ODAwMDAw CisjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EICAgMHhGNjgwMDAwMAor CisjZGVmaW5lIF9fTUFDSDJQSFlTX1NISUZUICAgICAgMgorCiAvKgogICog VmlydHVhbCBhZGRyZXNzZXMgYmV5b25kIHRoaXMgYXJlIG5vdCBtb2RpZmlh YmxlIGJ5IGd1ZXN0IE9TZXMuIFRoZQogICogbWFjaGluZS0+cGh5c2ljYWwg bWFwcGluZyB0YWJsZSBzdGFydHMgYXQgdGhpcyBhZGRyZXNzLCByZWFkLW9u bHkuCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaW50 ZXJmYWNlXzY0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaW50ZXJm YWNlXzY0LmgKaW5kZXggMTAwZDI2Ni4uODM5YTQ4MSAxMDA2NDQKLS0tIGEv YXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFjZV82NC5oCisrKyBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9pbnRlcmZhY2VfNjQuaApAQCAt MzksMTggKzM5LDcgQEAKICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfRU5E ICAgMHhGRkZGODgwMDAwMDAwMDAwCiAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJ UlRfU1RBUlQgIDB4RkZGRjgwMDAwMDAwMDAwMAogI2RlZmluZSBfX01BQ0gy UEhZU19WSVJUX0VORCAgICAweEZGRkY4MDQwMDAwMDAwMDAKLQotI2lmbmRl ZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKLSNkZWZpbmUgSFlQRVJWSVNPUl9W SVJUX1NUQVJUIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJU09SX1ZJUlRf U1RBUlQpCi0jZGVmaW5lIEhZUEVSVklTT1JfVklSVF9FTkQgICBta191bnNp Z25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKLSNlbmRpZgotCi0j ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICBta191bnNpZ25lZF9sb25n KF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIE1BQ0gyUEhZU19W SVJUX0VORCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRf RU5EKQotI2RlZmluZSBNQUNIMlBIWVNfTlJfRU5UUklFUyAgKChNQUNIMlBI WVNfVklSVF9FTkQtTUFDSDJQSFlTX1ZJUlRfU1RBUlQpPj4zKQotI2lmbmRl ZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwotI2RlZmluZSBtYWNoaW5lX3Rv X3BoeXNfbWFwcGluZyAoKHVuc2lnbmVkIGxvbmcgKilIWVBFUlZJU09SX1ZJ UlRfU1RBUlQpCi0jZW5kaWYKKyNkZWZpbmUgX19NQUNIMlBIWVNfU0hJRlQg ICAgICAgMwogCiAvKgogICogaW50IEhZUEVSVklTT1Jfc2V0X3NlZ21lbnRf YmFzZSh1bnNpZ25lZCBpbnQgd2hpY2gsIHVuc2lnbmVkIGxvbmcgYmFzZSkK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9wYWdlLmgg Yi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vcGFnZS5oCmluZGV4IGJmNWY3 ZDMuLmQ1ZmIyZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNt L3hlbi9wYWdlLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL3Bh Z2UuaApAQCAtNSw2ICs1LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5o PgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGlu dXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KIAogI2luY2x1ZGUg PGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KQEAgLTM1 LDYgKzM2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgeHBhZGRyIHsKICNkZWZpbmUg TUFYX0RPTUFJTl9QQUdFUwkJCQkJCVwKICAgICAoKHVuc2lnbmVkIGxvbmcp KCh1NjQpQ09ORklHX1hFTl9NQVhfRE9NQUlOX01FTU9SWSAqIDEwMjQgKiAx MDI0ICogMTAyNCAvIFBBR0VfU0laRSkpCiAKK2V4dGVybiB1bnNpZ25lZCBs b25nICptYWNoaW5lX3RvX3BoeXNfbWFwcGluZzsKK2V4dGVybiB1bnNpZ25l ZCBpbnQgICBtYWNoaW5lX3RvX3BoeXNfb3JkZXI7CiAKIGV4dGVybiB1bnNp Z25lZCBsb25nIGdldF9waHlzX3RvX21hY2hpbmUodW5zaWduZWQgbG9uZyBw Zm4pOwogZXh0ZXJuIHZvaWQgc2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25l ZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pOwpAQCAtNjIsMTAgKzY1 LDggQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG1mbl90b19wZm4o dW5zaWduZWQgbG9uZyBtZm4pCiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRf YXV0b190cmFuc2xhdGVkX3BoeXNtYXApKQogCQlyZXR1cm4gbWZuOwogCi0j aWYgMAogCWlmICh1bmxpa2VseSgobWZuID4+IG1hY2hpbmVfdG9fcGh5c19v cmRlcikgIT0gMCkpCi0JCXJldHVybiBtYXhfbWFwbnI7Ci0jZW5kaWYKKwkJ cmV0dXJuIH4wOwogCiAJcGZuID0gMDsKIAkvKgpkaWZmIC0tZ2l0IGEvYXJj aC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRl bi5jCmluZGV4IDdkNDZjODQuLmFkZmMyZjQgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdo dGVuLmMKQEAgLTc0LDYgKzc0LDExIEBAIERFRklORV9QRVJfQ1BVKHN0cnVj dCB2Y3B1X2luZm8sIHhlbl92Y3B1X2luZm8pOwogZW51bSB4ZW5fZG9tYWlu X3R5cGUgeGVuX2RvbWFpbl90eXBlID0gWEVOX05BVElWRTsKIEVYUE9SVF9T WU1CT0xfR1BMKHhlbl9kb21haW5fdHlwZSk7CiAKK3Vuc2lnbmVkIGxvbmcg Km1hY2hpbmVfdG9fcGh5c19tYXBwaW5nID0gKHZvaWQgKilNQUNIMlBIWVNf VklSVF9TVEFSVDsKK0VYUE9SVF9TWU1CT0wobWFjaGluZV90b19waHlzX21h cHBpbmcpOwordW5zaWduZWQgaW50ICAgbWFjaGluZV90b19waHlzX29yZGVy OworRVhQT1JUX1NZTUJPTChtYWNoaW5lX3RvX3BoeXNfb3JkZXIpOworCiBz dHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CiBFWFBPUlRfU1lN Qk9MX0dQTCh4ZW5fc3RhcnRfaW5mbyk7CiAKQEAgLTEwOTgsNiArMTEwMyw4 IEBAIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgeGVuX3N0YXJ0X2tlcm5lbCh2 b2lkKQogCiAJeGVuX2RvbWFpbl90eXBlID0gWEVOX1BWX0RPTUFJTjsKIAor CXhlbl9zZXR1cF9tYWNocGh5c19tYXBwaW5nKCk7CisKIAkvKiBJbnN0YWxs IFhlbiBwYXJhdmlydCBvcHMgKi8KIAlwdl9pbmZvID0geGVuX2luZm87CiAJ cHZfaW5pdF9vcHMgPSB4ZW5faW5pdF9vcHM7CmRpZmYgLS1naXQgYS9hcmNo L3g4Ni94ZW4vbW11LmMgYi9hcmNoL3g4Ni94ZW4vbW11LmMKaW5kZXggNDIw ODZhYy4uOTYyNWYyYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL21tdS5j CisrKyBiL2FyY2gveDg2L3hlbi9tbXUuYwpAQCAtMTczNyw2ICsxNzM3LDIw IEBAIHN0YXRpYyBfX2luaXQgdm9pZCB4ZW5fbWFwX2lkZW50aXR5X2Vhcmx5 KHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgbWF4X3BmbikKIAlzZXRfcGFn ZV9wcm90KHBtZCwgUEFHRV9LRVJORUxfUk8pOwogfQogCit2b2lkIF9faW5p dCB4ZW5fc2V0dXBfbWFjaHBoeXNfbWFwcGluZyh2b2lkKQoreworCXN0cnVj dCB4ZW5fbWFjaHBoeXNfbWFwcGluZyBtYXBwaW5nOworCXVuc2lnbmVkIGxv bmcgbWFjaGluZV90b19waHlzX25yX2VudHM7CisKKwlpZiAoSFlQRVJWSVNP Ul9tZW1vcnlfb3AoWEVOTUVNX21hY2hwaHlzX21hcHBpbmcsICZtYXBwaW5n KSA9PSAwKSB7CisJCW1hY2hpbmVfdG9fcGh5c19tYXBwaW5nID0gKHVuc2ln bmVkIGxvbmcgKiltYXBwaW5nLnZfc3RhcnQ7CisJCW1hY2hpbmVfdG9fcGh5 c19ucl9lbnRzID0gbWFwcGluZy5tYXhfbWZuICsgMTsKKwl9IGVsc2Ugewor CQltYWNoaW5lX3RvX3BoeXNfbnJfZW50cyA9IE1BQ0gyUEhZU19OUl9FTlRS SUVTOworCX0KKwltYWNoaW5lX3RvX3BoeXNfb3JkZXIgPSBmbHMobWFjaGlu ZV90b19waHlzX25yX2VudHMgLSAxKTsKK30KKwogI2lmZGVmIENPTkZJR19Y ODZfNjQKIHN0YXRpYyB2b2lkIGNvbnZlcnRfcGZuX21mbih2b2lkICp2KQog ewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5o IGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oCmluZGV4IGQzOTM4 ZDMuLjEzNGQzM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFj ZS9tZW1vcnkuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5 LmgKQEAgLTE0MSw2ICsxNDEsMTkgQEAgc3RydWN0IHhlbl9tYWNocGh5c19t Zm5fbGlzdCB7CiBERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5fbWFj aHBoeXNfbWZuX2xpc3QpOwogCiAvKgorICogUmV0dXJucyB0aGUgbG9jYXRp b24gaW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlIG9mIHRoZSBtYWNoaW5lX3Rv X3BoeXMKKyAqIG1hcHBpbmcgdGFibGUuIEFyY2hpdGVjdHVyZXMgd2hpY2gg ZG8gbm90IGhhdmUgYSBtMnAgdGFibGUsIG9yIHdoaWNoIGRvIG5vdAorICog bWFwIGl0IGJ5IGRlZmF1bHQgaW50byBndWVzdCBhZGRyZXNzIHNwYWNlLCBk byBub3QgaW1wbGVtZW50IHRoaXMgY29tbWFuZC4KKyAqIGFyZyA9PSBhZGRy IG9mIHhlbl9tYWNocGh5c19tYXBwaW5nX3QuCisgKi8KKyNkZWZpbmUgWEVO TUVNX21hY2hwaHlzX21hcHBpbmcgICAgIDEyCitzdHJ1Y3QgeGVuX21hY2hw aHlzX21hcHBpbmcgeworICAgIHVuc2lnbmVkIGxvbmcgdl9zdGFydCwgdl9l bmQ7IC8qIFN0YXJ0IGFuZCBlbmQgdmlydHVhbCBhZGRyZXNzZXMuICAgKi8K KyAgICB1bnNpZ25lZCBsb25nIG1heF9tZm47ICAgICAgICAvKiBNYXhpbXVt IE1GTiB0aGF0IGNhbiBiZSBsb29rZWQgdXAuICovCit9OworREVGSU5FX0dV RVNUX0hBTkRMRV9TVFJVQ1QoeGVuX21hY2hwaHlzX21hcHBpbmdfdCk7CisK Ky8qCiAgKiBTZXRzIHRoZSBHUEZOIGF0IHdoaWNoIGEgcGFydGljdWxhciBw YWdlIGFwcGVhcnMgaW4gdGhlIHNwZWNpZmllZCBndWVzdCdzCiAgKiBwc2V1 ZG9waHlzaWNhbCBhZGRyZXNzIHNwYWNlLgogICogYXJnID09IGFkZHIgb2Yg eGVuX2FkZF90b19waHlzbWFwX3QuCi0tIAoxLjcuMy4yCgoKRnJvbSA0ZmZi NWRlMGYwMmJhZDJiMGViZTdhOWE2YTQ1YmM1ODU1YzE1MzY5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgRml0emhhcmRpbmdlIDxq ZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+CkRhdGU6IE1vbiwgOSBB dWcgMjAxMCAxNDozNTozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjFd IHB2b3BzOiBtYWtlIHB0ZV9mbGFncygpIGdvIHZpYSBwdm9wcwoKQXMgcGFy dCBvZiBQQVQgc3VwcG9ydCBpbiBYZW4gd2UgbmVlZCB0byBmaWRkbGUgd2l0 aCB0aGUgcGFnZSBmbGFncy4KRm9yIGNvbnNpc3RlbmN5LCB3ZSBuZWVkIHRv IG1ha2Ugc3VyZSB0aGUgY29udmVyc2lvbiBoYXBwZW5zIGJvdGggd2F5cwp3 aGVuIGNvbnZlcnRpbmcgZnJvbSBrZXJuZWw8LT5YZW4sIHNvIHB0ZV9mbGFn cygpIG11c3QgZ28gdmlhIHB2b3BzLgoKVW5mb3J0dW5hdGVseSB0aGlzIHVu ZGVybWluZXMgdGhlIG9yaWdpbmFsIHJhdGlvbmFsZSBmb3IgaW50cm9kdWNp bmcKcHRlX2ZsYWdzICh3aGljaCBhdm9pZHMgYSBwdm9wIGNhbGwgZm9yIGEg Y29tbW9uIG9wZXJhdGlvbiBpbiB0aGUKbW0gY29kZSkuLi4KClNpZ25lZC1v ZmYtYnk6IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGlu Z2VAY2l0cml4LmNvbT4KLS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3Rh YmxlLmggICAgICAgfCAgICA1ICsrKysrCiBhcmNoL3g4Ni9pbmNsdWRlL2Fz bS9wZ3RhYmxlX3R5cGVzLmggfCAgICA1IC0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKaW5kZXggNzE5OGJjZi4uY2U1Yjg0 NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZS5o CisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGUuaApAQCAtNzgs NiArNzgsMTEgQEAgZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgcGdkX2xpc3Q7 CiAKICNlbmRpZgkvKiBDT05GSUdfUEFSQVZJUlQgKi8KIAorc3RhdGljIGlu bGluZSBwdGV2YWxfdCBwdGVfZmxhZ3MocHRlX3QgcHRlKQoreworCXJldHVy biBwdGVfdmFsKHB0ZSkgJiBQVEVfRkxBR1NfTUFTSzsKK30KKwogLyoKICAq IFRoZSBmb2xsb3dpbmcgb25seSB3b3JrIGlmIHB0ZV9wcmVzZW50KCkgaXMg dHJ1ZS4KICAqIFVuZGVmaW5lZCBiZWhhdmlvdXIgaWYgbm90Li4KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaCBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaAppbmRleCBk MWY0YTc2Li5hODFiMGVkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9wZ3RhYmxlX3R5cGVzLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vcGd0YWJsZV90eXBlcy5oCkBAIC0yNjUsMTEgKzI2NSw2IEBAIHN0YXRp YyBpbmxpbmUgcHRldmFsX3QgbmF0aXZlX3B0ZV92YWwocHRlX3QgcHRlKQog CXJldHVybiBwdGUucHRlOwogfQogCi1zdGF0aWMgaW5saW5lIHB0ZXZhbF90 IHB0ZV9mbGFncyhwdGVfdCBwdGUpCi17Ci0JcmV0dXJuIG5hdGl2ZV9wdGVf dmFsKHB0ZSkgJiBQVEVfRkxBR1NfTUFTSzsKLX0KLQogI2RlZmluZSBwZ3By b3RfdmFsKHgpCSgoeCkucGdwcm90KQogI2RlZmluZSBfX3BncHJvdCh4KQko KHBncHJvdF90KSB7ICh4KSB9ICkKIAotLSAKMS43LjMuMgoKCkZyb20gMzEz ZTc0NDEyMTA1YzY3MGZmODkwMGVjODA5OWEzYTVkZjFmYTgzYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFzaWxpeSBLdWxpa292IDxzZWdv b29uQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyOCBPY3QgMjAxMCAxNTozOTow MiArMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIHhlbjogeGVuZnM6IHBy aXZjbWQ6IGNoZWNrIHB1dF91c2VyKCkgcmV0dXJuIGNvZGUKCnB1dF91c2Vy KCkgbWF5IGZhaWwuICBJbiB0aGlzIGNhc2UgcHJvcGFnYXRlIGVycm9yIGNv ZGUgZnJvbQpwcml2Y21kX2lvY3RsX21tYXBfYmF0Y2goKS4KClNpZ25lZC1v ZmYtYnk6IFZhc2lsaXkgS3VsaWtvdiA8c2Vnb29vbkBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6 aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBkcml2ZXJzL3hlbi94ZW5mcy9w cml2Y21kLmMgfCAgICA4ICsrLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3hlbi94ZW5mcy9wcml2Y21kLmMgYi9kcml2ZXJzL3hlbi94ZW5m cy9wcml2Y21kLmMKaW5kZXggZjgwYmU3Zi4uMmViMDRjOCAxMDA2NDQKLS0t IGEvZHJpdmVycy94ZW4veGVuZnMvcHJpdmNtZC5jCisrKyBiL2RyaXZlcnMv eGVuL3hlbmZzL3ByaXZjbWQuYwpAQCAtMjY2LDkgKzI2Niw3IEBAIHN0YXRp YyBpbnQgbW1hcF9yZXR1cm5fZXJyb3JzKHZvaWQgKmRhdGEsIHZvaWQgKnN0 YXRlKQogCXhlbl9wZm5fdCAqbWZucCA9IGRhdGE7CiAJc3RydWN0IG1tYXBf YmF0Y2hfc3RhdGUgKnN0ID0gc3RhdGU7CiAKLQlwdXRfdXNlcigqbWZucCwg c3QtPnVzZXIrKyk7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gcHV0X3VzZXIo Km1mbnAsIHN0LT51c2VyKyspOwogfQogCiBzdGF0aWMgc3RydWN0IHZtX29w ZXJhdGlvbnNfc3RydWN0IHByaXZjbWRfdm1fb3BzOwpAQCAtMzIzLDEwICsz MjEsOCBAQCBzdGF0aWMgbG9uZyBwcml2Y21kX2lvY3RsX21tYXBfYmF0Y2go dm9pZCBfX3VzZXIgKnVkYXRhKQogCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0p OwogCiAJaWYgKHN0YXRlLmVyciA+IDApIHsKLQkJcmV0ID0gMDsKLQogCQlz dGF0ZS51c2VyID0gbS5hcnI7Ci0JCXRyYXZlcnNlX3BhZ2VzKG0ubnVtLCBz aXplb2YoeGVuX3Bmbl90KSwKKwkJcmV0ID0gdHJhdmVyc2VfcGFnZXMobS5u dW0sIHNpemVvZih4ZW5fcGZuX3QpLAogCQkJICAgICAgICZwYWdlbGlzdCwK IAkJCSAgICAgICBtbWFwX3JldHVybl9lcnJvcnMsICZzdGF0ZSk7CiAJfQot LSAKMS43LjMuMgoKCkZyb20gYTJkNzcxYzAzNmViOGMwNDA2ODMwODljYTA0 YzM2ZGZiOTNhMGU2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KRGF0ZTog RnJpLCAyOSBPY3QgMjAxMCAxNjo1NjoxOSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDgvMjFdIHhlbjogY29ycmVjdCBzaXplIG9mIGxldmVsMl9rZXJuZWxf cGd0CgpzaXplb2YocG1kX3QgKikgaXMgNCBieXRlcyBvbiAzMi1iaXQgUEFF IGxlYWRpbmcgdG8gYW4gYWxsb2NhdGlvbiBvZgpvbmx5IDIwNDggYnl0ZXMu IFRoZSBjb3JyZWN0IHNpemUgaXMgc2l6ZW9mKHBtZF90KSBnaXZpbmcgdXMg YSBmdWxsCnBhZ2UgYWxsb2NhdGlvbi4KClNpZ25lZC1vZmYtYnk6IElhbiBD YW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkNjOiBKZXJlbXkg Rml0emhhcmRpbmdlIDxqZXJlbXlAZ29vcC5vcmc+ClNpZ25lZC1vZmYtYnk6 IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0 cml4LmNvbT4KLS0tCiBhcmNoL3g4Ni94ZW4vbW11LmMgfCAgICAyICstCiAx IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbW11LmMgYi9hcmNoL3g4 Ni94ZW4vbW11LmMKaW5kZXggYzIzN2I4MS4uMjFlZDhkNyAxMDA2NDQKLS0t IGEvYXJjaC94ODYveGVuL21tdS5jCisrKyBiL2FyY2gveDg2L3hlbi9tbXUu YwpAQCAtMjEyNiw3ICsyMTI2LDcgQEAgX19pbml0IHBnZF90ICp4ZW5fc2V0 dXBfa2VybmVsX3BhZ2V0YWJsZShwZ2RfdCAqcGdkLAogewogCXBtZF90ICpr ZXJuZWxfcG1kOwogCi0JbGV2ZWwyX2tlcm5lbF9wZ3QgPSBleHRlbmRfYnJr KHNpemVvZihwbWRfdCAqKSAqIFBUUlNfUEVSX1BNRCwgUEFHRV9TSVpFKTsK KwlsZXZlbDJfa2VybmVsX3BndCA9IGV4dGVuZF9icmsoc2l6ZW9mKHBtZF90 KSAqIFBUUlNfUEVSX1BNRCwgUEFHRV9TSVpFKTsKIAogCW1heF9wZm5fbWFw cGVkID0gUEZOX0RPV04oX19wYSh4ZW5fc3RhcnRfaW5mby0+cHRfYmFzZSkg KwogCQkJCSAgeGVuX3N0YXJ0X2luZm8tPm5yX3B0X2ZyYW1lcyAqIFBBR0Vf U0laRSArCi0tIAoxLjcuMy4yCgoKRnJvbSBjNjRlMzhlYTE3YTgxNzIxZGEw MzkzNTg0ZmQ4MDdmODQzNDA1MGZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKZXJlbXkgRml0emhhcmRpbmdlIDxqZXJlbXkuZml0emhhcmRp bmdlQGNpdHJpeC5jb20+CkRhdGU6IE1vbiwgMSBOb3YgMjAxMCAxNDozMjoy NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjFdIHhlbi9ibGtmcm9udDog bWFwIFJFUV9GTFVTSCBpbnRvIGEgZnVsbCBiYXJyaWVyCgpJbXBsZW1lbnQg YSBmbHVzaCBhcyBhIGZ1bGwgYmFycmllciwgc2luY2Ugd2UgaGF2ZSBub3Ro aW5nIHdlYWtlci4KClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGlu Z2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KQWNrZWQtYnk6 IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgotLS0KIGRyaXZlcnMv YmxvY2sveGVuLWJsa2Zyb250LmMgfCAgIDE5ICsrKysrLS0tLS0tLS0tLS0t LS0KIDEgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtm cm9udC5jIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwppbmRleCAw NmUyODEyLi4zYTMxOGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3hl bi1ibGtmcm9udC5jCisrKyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250 LmMKQEAgLTI0NSwxNCArMjQ1LDExIEBAIHN0YXRpYyBpbnQgYmxraWZfaW9j dGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLAog fQogCiAvKgotICogYmxraWZfcXVldWVfcmVxdWVzdAorICogR2VuZXJhdGUg YSBYZW4gYmxrZnJvbnQgSU8gcmVxdWVzdCBmcm9tIGEgYmxrIGxheWVyIHJl cXVlc3QuICBSZWFkcworICogYW5kIHdyaXRlcyBhcmUgaGFuZGxlZCBhcyBl eHBlY3RlZC4gIFNpbmNlIHdlIGxhY2sgYSBsb29zZSBmbHVzaAorICogcmVx dWVzdCwgd2UgbWFwIGZsdXNoZXMgaW50byBhIGZ1bGwgb3JkZXJlZCBiYXJy aWVyLgogICoKLSAqIHJlcXVlc3QgYmxvY2sgaW8KLSAqCi0gKiBpZDogZm9y IGd1ZXN0IHVzZSBvbmx5LgotICogb3BlcmF0aW9uOiBCTEtJRl9PUF97UkVB RCxXUklURSxQUk9CRX0KLSAqIGJ1ZmZlcjogYnVmZmVyIHRvIHJlYWQvd3Jp dGUgaW50by4gdGhpcyBzaG91bGQgYmUgYQotICogICB2aXJ0dWFsIGFkZHJl c3MgaW4gdGhlIGd1ZXN0IG9zLgorICogQHJlcTogYSByZXF1ZXN0IHN0cnVj dAogICovCiBzdGF0aWMgaW50IGJsa2lmX3F1ZXVlX3JlcXVlc3Qoc3RydWN0 IHJlcXVlc3QgKnJlcSkKIHsKQEAgLTI4OSw3ICsyODYsNyBAQCBzdGF0aWMg aW50IGJsa2lmX3F1ZXVlX3JlcXVlc3Qoc3RydWN0IHJlcXVlc3QgKnJlcSkK IAogCXJpbmdfcmVxLT5vcGVyYXRpb24gPSBycV9kYXRhX2RpcihyZXEpID8K IAkJQkxLSUZfT1BfV1JJVEUgOiBCTEtJRl9PUF9SRUFEOwotCWlmIChyZXEt PmNtZF9mbGFncyAmIFJFUV9IQVJEQkFSUklFUikKKwlpZiAocmVxLT5jbWRf ZmxhZ3MgJiBSRVFfRkxVU0gpCiAJCXJpbmdfcmVxLT5vcGVyYXRpb24gPSBC TEtJRl9PUF9XUklURV9CQVJSSUVSOwogCiAJcmluZ19yZXEtPm5yX3NlZ21l bnRzID0gYmxrX3JxX21hcF9zZyhyZXEtPnEsIHJlcSwgaW5mby0+c2cpOwpA QCAtMTA2OSwxNCArMTA2Niw4IEBAIHN0YXRpYyB2b2lkIGJsa2Zyb250X2Nv bm5lY3Qoc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCiAJICovCiAJaW5m by0+ZmVhdHVyZV9mbHVzaCA9IDA7CiAKLQkvKgotCSAqIFRoZSBkcml2ZXIg ZG9lc24ndCBwcm9wZXJseSBoYW5kbGVkIGVtcHR5IGZsdXNoZXMsIHNvCi0J ICogbGV0cyBkaXNhYmxlIGJhcnJpZXIgc3VwcG9ydCBmb3Igbm93LgotCSAq LwotI2lmIDAKIAlpZiAoIWVyciAmJiBiYXJyaWVyKQogCQlpbmZvLT5mZWF0 dXJlX2ZsdXNoID0gUkVRX0ZMVVNIOwotI2VuZGlmCiAKIAllcnIgPSB4bHZi ZF9hbGxvY19nZW5kaXNrKHNlY3RvcnMsIGluZm8sIGJpbmZvLCBzZWN0b3Jf c2l6ZSk7CiAJaWYgKGVycikgewotLSAKMS43LjMuMgoKCkZyb20gYTk0NWI5 ODAxYTliZmQ0YTk4YmNmZDlmNjY1NmI1MDI3YjI1NGUzZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyZW15IEZpdHpoYXJkaW5nZSA8amVy ZW15LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgpEYXRlOiBNb24sIDEgTm92 IDIwMTAgMTc6MDM6MTQgLTA0MDAKU3ViamVjdDogW1BBVENIIDEwLzIxXSB4 ZW4vYmxrZnJvbnQ6IGNoYW5nZSBibGtfc2hhZG93LnJlcXVlc3QgdG8gcHJv cGVyIHBvaW50ZXIKClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGlu Z2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBkcml2 ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jIHwgICAxNCArKysrKystLS0tLS0t LQogMSBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJv bnQuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKaW5kZXggM2Ez MThkOC4uMzFjOGE2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay94ZW4t YmxrZnJvbnQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5j CkBAIC02NSw3ICs2NSw3IEBAIGVudW0gYmxraWZfc3RhdGUgewogCiBzdHJ1 Y3QgYmxrX3NoYWRvdyB7CiAJc3RydWN0IGJsa2lmX3JlcXVlc3QgcmVxOwot CXVuc2lnbmVkIGxvbmcgcmVxdWVzdDsKKwlzdHJ1Y3QgcmVxdWVzdCAqcmVx dWVzdDsKIAl1bnNpZ25lZCBsb25nIGZyYW1lW0JMS0lGX01BWF9TRUdNRU5U U19QRVJfUkVRVUVTVF07CiB9OwogCkBAIC0xMzYsNyArMTM2LDcgQEAgc3Rh dGljIHZvaWQgYWRkX2lkX3RvX2ZyZWVsaXN0KHN0cnVjdCBibGtmcm9udF9p bmZvICppbmZvLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQpCiB7CiAJ aW5mby0+c2hhZG93W2lkXS5yZXEuaWQgID0gaW5mby0+c2hhZG93X2ZyZWU7 Ci0JaW5mby0+c2hhZG93W2lkXS5yZXF1ZXN0ID0gMDsKKwlpbmZvLT5zaGFk b3dbaWRdLnJlcXVlc3QgPSBOVUxMOwogCWluZm8tPnNoYWRvd19mcmVlID0g aWQ7CiB9CiAKQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW50IGJsa2lm X3F1ZXVlX3JlcXVlc3Qoc3RydWN0IHJlcXVlc3QgKnJlcSkKIAkvKiBGaWxs IG91dCBhIGNvbW11bmljYXRpb25zIHJpbmcgc3RydWN0dXJlLiAqLwogCXJp bmdfcmVxID0gUklOR19HRVRfUkVRVUVTVCgmaW5mby0+cmluZywgaW5mby0+ cmluZy5yZXFfcHJvZF9wdnQpOwogCWlkID0gZ2V0X2lkX2Zyb21fZnJlZWxp c3QoaW5mbyk7Ci0JaW5mby0+c2hhZG93W2lkXS5yZXF1ZXN0ID0gKHVuc2ln bmVkIGxvbmcpcmVxOworCWluZm8tPnNoYWRvd1tpZF0ucmVxdWVzdCA9IHJl cTsKIAogCXJpbmdfcmVxLT5pZCA9IGlkOwogCXJpbmdfcmVxLT5zZWN0b3Jf bnVtYmVyID0gKGJsa2lmX3NlY3Rvcl90KWJsa19ycV9wb3MocmVxKTsKQEAg LTYzMyw3ICs2MzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYmxraWZfaW50 ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAogCQlicmV0ID0gUklO R19HRVRfUkVTUE9OU0UoJmluZm8tPnJpbmcsIGkpOwogCQlpZCAgID0gYnJl dC0+aWQ7Ci0JCXJlcSAgPSAoc3RydWN0IHJlcXVlc3QgKilpbmZvLT5zaGFk b3dbaWRdLnJlcXVlc3Q7CisJCXJlcSAgPSBpbmZvLT5zaGFkb3dbaWRdLnJl cXVlc3Q7CiAKIAkJYmxraWZfY29tcGxldGlvbigmaW5mby0+c2hhZG93W2lk XSk7CiAKQEAgLTg5OCw3ICs4OTgsNyBAQCBzdGF0aWMgaW50IGJsa2lmX3Jl Y292ZXIoc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCiAJLyogU3RhZ2Ug MzogRmluZCBwZW5kaW5nIHJlcXVlc3RzIGFuZCByZXF1ZXVlIHRoZW0uICov CiAJZm9yIChpID0gMDsgaSA8IEJMS19SSU5HX1NJWkU7IGkrKykgewogCQkv KiBOb3QgaW4gdXNlPyAqLwotCQlpZiAoY29weVtpXS5yZXF1ZXN0ID09IDAp CisJCWlmICghY29weVtpXS5yZXF1ZXN0KQogCQkJY29udGludWU7CiAKIAkJ LyogR3JhYiBhIHJlcXVlc3Qgc2xvdCBhbmQgY29weSBzaGFkb3cgc3RhdGUg aW50byBpdC4gKi8KQEAgLTkxNSw5ICs5MTUsNyBAQCBzdGF0aWMgaW50IGJs a2lmX3JlY292ZXIoc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCiAJCQkJ cmVxLT5zZWdbal0uZ3JlZiwKIAkJCQlpbmZvLT54YmRldi0+b3RoZXJlbmRf aWQsCiAJCQkJcGZuX3RvX21mbihpbmZvLT5zaGFkb3dbcmVxLT5pZF0uZnJh bWVbal0pLAotCQkJCXJxX2RhdGFfZGlyKAotCQkJCQkoc3RydWN0IHJlcXVl c3QgKikKLQkJCQkJaW5mby0+c2hhZG93W3JlcS0+aWRdLnJlcXVlc3QpKTsK KwkJCQlycV9kYXRhX2RpcihpbmZvLT5zaGFkb3dbcmVxLT5pZF0ucmVxdWVz dCkpOwogCQlpbmZvLT5zaGFkb3dbcmVxLT5pZF0ucmVxID0gKnJlcTsKIAog CQlpbmZvLT5yaW5nLnJlcV9wcm9kX3B2dCsrOwotLSAKMS43LjMuMgoKCkZy b20gYmUyZjgzNzNjMTg4ZWQxZjVkMzYwMDNjOTkyOGU0ZDY5NTIxMzA4MCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyZW15IEZpdHpoYXJk aW5nZSA8amVyZW15LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgpEYXRlOiBU dWUsIDIgTm92IDIwMTAgMTA6Mzg6MzMgLTA0MDAKU3ViamVjdDogW1BBVENI IDExLzIxXSB4ZW4vYmxrZnJvbnQ6IEltcGxlbWVudCBGVUEgd2l0aCBCTEtJ Rl9PUF9XUklURV9CQVJSSUVSCgpUaGUgQkxLSUZfT1BfV1JJVEVfQkFSUklF UiBpcyBhIGZ1bGwgb3JkZXJlZCBiYXJyaWVyLCBzbyB3ZSBjYW4gdXNlIGl0 CnRvIGltcGxlbWVudCBGVUEgYXMgd2VsbCBhcyBhIHBsYWluIEZMVVNILgoK U2lnbmVkLW9mZi1ieTogSmVyZW15IEZpdHpoYXJkaW5nZSA8amVyZW15LmZp dHpoYXJkaW5nZUBjaXRyaXguY29tPgpBY2tlZC1ieTogQ2hyaXN0b3BoIEhl bGx3aWcgPGhjaEBsc3QuZGU+Ci0tLQogZHJpdmVycy9ibG9jay94ZW4tYmxr ZnJvbnQuYyB8ICAgMTQgKysrKysrKysrKysrLS0KIDEgZmlsZXMgY2hhbmdl ZCwgMTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jIGIvZHJpdmVycy9i bG9jay94ZW4tYmxrZnJvbnQuYwppbmRleCAzMWM4YTY0Li43NmI4NzRhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCisrKyBi L2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKQEAgLTI4Niw4ICsyODYs MTggQEAgc3RhdGljIGludCBibGtpZl9xdWV1ZV9yZXF1ZXN0KHN0cnVjdCBy ZXF1ZXN0ICpyZXEpCiAKIAlyaW5nX3JlcS0+b3BlcmF0aW9uID0gcnFfZGF0 YV9kaXIocmVxKSA/CiAJCUJMS0lGX09QX1dSSVRFIDogQkxLSUZfT1BfUkVB RDsKLQlpZiAocmVxLT5jbWRfZmxhZ3MgJiBSRVFfRkxVU0gpCisKKwlpZiAo cmVxLT5jbWRfZmxhZ3MgJiAoUkVRX0ZMVVNIIHwgUkVRX0ZVQSkpIHsKKwkJ LyoKKwkJICogSWRlYWxseSB3ZSBjb3VsZCBqdXN0IGRvIGFuIHVub3JkZXJl ZAorCQkgKiBmbHVzaC10by1kaXNrLCBidXQgYWxsIHdlIGhhdmUgaXMgYSBm dWxsIHdyaXRlCisJCSAqIGJhcnJpZXIgYXQgdGhlIG1vbWVudC4gIEhvd2V2 ZXIsIGEgYmFycmllciB3cml0ZSBpcworCQkgKiBhIHN1cGVyc2V0IG9mIEZV QSwgc28gd2UgY2FuIGltcGxlbWVudCBpdCB0aGUgc2FtZQorCQkgKiB3YXku ICAoSXQncyBhbHNvIGEgRkxVU0grRlVBLCBzaW5jZSBpdCBpcworCQkgKiBn dWFyYW50ZWVkIG9yZGVyZWQgV1JUIHByZXZpb3VzIHdyaXRlcy4pCisJCSAq LwogCQlyaW5nX3JlcS0+b3BlcmF0aW9uID0gQkxLSUZfT1BfV1JJVEVfQkFS UklFUjsKKwl9CiAKIAlyaW5nX3JlcS0+bnJfc2VnbWVudHMgPSBibGtfcnFf bWFwX3NnKHJlcS0+cSwgcmVxLCBpbmZvLT5zZyk7CiAJQlVHX09OKHJpbmdf cmVxLT5ucl9zZWdtZW50cyA+IEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVR VUVTVCk7CkBAIC0xMDY1LDcgKzEwNzUsNyBAQCBzdGF0aWMgdm9pZCBibGtm cm9udF9jb25uZWN0KHN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvKQogCWlu Zm8tPmZlYXR1cmVfZmx1c2ggPSAwOwogCiAJaWYgKCFlcnIgJiYgYmFycmll cikKLQkJaW5mby0+ZmVhdHVyZV9mbHVzaCA9IFJFUV9GTFVTSDsKKwkJaW5m by0+ZmVhdHVyZV9mbHVzaCA9IFJFUV9GTFVTSCB8IFJFUV9GVUE7CiAKIAll cnIgPSB4bHZiZF9hbGxvY19nZW5kaXNrKHNlY3RvcnMsIGluZm8sIGJpbmZv LCBzZWN0b3Jfc2l6ZSk7CiAJaWYgKGVycikgewotLSAKMS43LjMuMgoKCkZy b20gZGNiOGJhZWNlYWExYzYyOWJiZDA2ZjQ3MmNlYTAyM2FkMDhhMGMzMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyZW15IEZpdHpoYXJk aW5nZSA8amVyZW15LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgpEYXRlOiBU dWUsIDIgTm92IDIwMTAgMTE6NTU6NTggLTA0MDAKU3ViamVjdDogW1BBVENI IDEyLzIxXSB4ZW4vYmxrZnJvbnQ6IGNvcGUgd2l0aCBiYWNrZW5kIHRoYXQg ZmFpbCBlbXB0eSBCTEtJRl9PUF9XUklURV9CQVJSSUVSIHJlcXVlc3RzCgpT b21lKD8pIFhlbiBibG9jayBiYWNrZW5kcyBmYWlsIEJMS0lGX09QX1dSSVRF X0JBUlJJRVIgcmVxdWVzdHMsIHdoaWNoCkxpbnV4IHVzZXMgYXMgYSBjYWNo ZSBmbHVzaCBvcGVyYXRpb24uICBJbiB0aGF0IGNhc2UsIGRpc2FibGUgdXNl Cm9mIEZMVVNILgoKU2lnbmVkLW9mZi1ieTogSmVyZW15IEZpdHpoYXJkaW5n ZSA8amVyZW15LmZpdHpoYXJkaW5nZUBjaXRyaXguY29tPgpDYzogRGFuaWVs IFN0b2RkZW4gPGRhbmllbC5zdG9kZGVuQGNpdHJpeC5jb20+Ci0tLQogZHJp dmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyB8ICAgMTAgKysrKysrKysrKwog MSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250 LmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCmluZGV4IDc2Yjg3 NGEuLjRmOWUyMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJs a2Zyb250LmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpA QCAtNjU2LDYgKzY1NiwxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYmxraWZf aW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAkJCQlwcmludGso S0VSTl9XQVJOSU5HICJibGtmcm9udDogJXM6IHdyaXRlIGJhcnJpZXIgb3Ag ZmFpbGVkXG4iLAogCQkJCSAgICAgICBpbmZvLT5nZC0+ZGlza19uYW1lKTsK IAkJCQllcnJvciA9IC1FT1BOT1RTVVBQOworCQkJfQorCQkJaWYgKHVubGlr ZWx5KGJyZXQtPnN0YXR1cyA9PSBCTEtJRl9SU1BfRVJST1IgJiYKKwkJCQkg ICAgIGluZm8tPnNoYWRvd1tpZF0ucmVxLm5yX3NlZ21lbnRzID09IDApKSB7 CisJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYmxrZnJvbnQ6ICVzOiBlbXB0 eSB3cml0ZSBiYXJyaWVyIG9wIGZhaWxlZFxuIiwKKwkJCQkgICAgICAgaW5m by0+Z2QtPmRpc2tfbmFtZSk7CisJCQkJZXJyb3IgPSAtRU9QTk9UU1VQUDsK KwkJCX0KKwkJCWlmICh1bmxpa2VseShlcnJvcikpIHsKKwkJCQlpZiAoZXJy b3IgPT0gLUVPUE5PVFNVUFApCisJCQkJCWVycm9yID0gMDsKIAkJCQlpbmZv LT5mZWF0dXJlX2ZsdXNoID0gMDsKIAkJCQl4bHZiZF9mbHVzaChpbmZvKTsK IAkJCX0KLS0gCjEuNy4zLjIKCgpGcm9tIGFlZDhmZjQ1NmJkNzg0NzY4Mzc3 NmU1YzRkMGRkNGU0YWJjNTA4N2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGlu Z2VAY2l0cml4LmNvbT4KRGF0ZTogV2VkLCAxMCBOb3YgMjAxMCAxMjoyODo1 NyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjFdIHg4NjogZGVtYWNybyBz ZXRfaW9wbF9tYXNrKCkKClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFy ZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBh cmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCB8ICAgIDUgKysrKy0K IDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nl c3Nvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKaW5k ZXggY2FlOWMzYy4uMzJmNzViZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS9hc20vcHJvY2Vzc29yLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vcHJvY2Vzc29yLmgKQEAgLTU5MSw3ICs1OTEsMTAgQEAgc3RhdGljIGlu bGluZSB2b2lkIGxvYWRfc3AwKHN0cnVjdCB0c3Nfc3RydWN0ICp0c3MsCiAJ bmF0aXZlX2xvYWRfc3AwKHRzcywgdGhyZWFkKTsKIH0KIAotI2RlZmluZSBz ZXRfaW9wbF9tYXNrIG5hdGl2ZV9zZXRfaW9wbF9tYXNrCitzdGF0aWMgaW5s aW5lIHZvaWQgc2V0X2lvcGxfbWFzayh1bnNpZ25lZCBtYXNrKQoreworCW5h dGl2ZV9zZXRfaW9wbF9tYXNrKG1hc2spOworfQogI2VuZGlmIC8qIENPTkZJ R19QQVJBVklSVCAqLwogCiAvKgotLSAKMS43LjMuMgoKCkZyb20gNjQwNTI0 ZTAyOWY1YjVjYjkzNDYyYzdiY2NkZDkzMTQxZjUzYWU2NSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0b3BoZSBTYW91dCA8Y2h0ZXBo YW5AbGV0by5pbnRlcm4uc2FvdXQuZGU+CkRhdGU6IFNhdCwgMTcgSmFuIDIw MDkgMTc6MzA6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzIxXSB4ODYv cGFyYXZpcnQ6IHBhcmF2aXJ0dWFsaXplIElPIHBlcm1pc3Npb24gYml0bWFw CgpQYXJhdmlydHVhbGl6ZWQgeDg2IHN5c3RlbXMgZG9uJ3QgaGF2ZSBhbiBl eHBvc2VkIFRTUywgYXMgaXQgaXMgb25seQpkaXJlY3RseSB2aXNpYmxlIGlu IHJpbmcgMC4gIFRoZSBJTyBwZXJtaXNzaW9uIGJpdG1hcCBpcyBwYXJ0IG9m CnRoZSBUU1MsIHNvIHdpdGggb3V0IGEgVFNTLCBpdCBtdXN0IGJlIHBhcmF2 aXJ0dWFsaXplZCBzZXBhcmF0ZWx5LApsaWtlIHRoZSBpb3BsIG1hc2suCgpb IEltcGFjdDogbWFrZSBpb3Blcm0gYml0bWFwIHdvcmsgdW5kZXIgWGVuIF0K ClNpZ25lZC1vZmYtYnk6IENocmlzdG9waGUgU2FvdXQgPGNodGVwaGFuQGxl dG8uaW50ZXJuLnNhb3V0LmRlPgpTaWduZWQtb2ZmLWJ5OiBKZXJlbXkgRml0 emhhcmRpbmdlIDxqZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+Ci0t LQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCAgICAgICB8ICAg IDcgKysrKysrKwogYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlw ZXMuaCB8ICAgIDIgKysKIGFyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv ci5oICAgICAgfCAgICA5ICsrKysrKysrKwogYXJjaC94ODYva2VybmVsL2lv cG9ydC5jICAgICAgICAgICAgICB8ICAgMjkgKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0KIGFyY2gveDg2L2tlcm5lbC9wYXJhdmlydC5jICAgICAg ICAgICAgfCAgICAxICsKIGFyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgICAg ICAgICAgICAgfCAgIDI4ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDYgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy YXZpcnQuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgKaW5k ZXggMThlM2I4YS4uMTc2NGY0YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS9hc20vcGFyYXZpcnQuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9wYXJhdmlydC5oCkBAIC0zMzAsMTEgKzMzMCwxOCBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgd3JpdGVfaWR0X2VudHJ5KGdhdGVfZGVzYyAqZHQsIGludCBl bnRyeSwgY29uc3QgZ2F0ZV9kZXNjICpnKQogewogCVBWT1BfVkNBTEwzKHB2 X2NwdV9vcHMud3JpdGVfaWR0X2VudHJ5LCBkdCwgZW50cnksIGcpOwogfQor CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2lvcGxfbWFzayh1bnNpZ25lZCBt YXNrKQogewogCVBWT1BfVkNBTEwxKHB2X2NwdV9vcHMuc2V0X2lvcGxfbWFz aywgbWFzayk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRfaW9fYml0 bWFwKHN0cnVjdCB0aHJlYWRfc3RydWN0ICp0aHJlYWQsCisJCQkJIHVuc2ln bmVkIGxvbmcgYnl0ZXNfdXBkYXRlZCkKK3sKKwlQVk9QX1ZDQUxMMihwdl9j cHVfb3BzLnNldF9pb19iaXRtYXAsIHRocmVhZCwgYnl0ZXNfdXBkYXRlZCk7 Cit9CisKIC8qIFRoZSBwYXJhdmlydHVhbGl6ZWQgSS9PIGZ1bmN0aW9ucyAq Lwogc3RhdGljIGlubGluZSB2b2lkIHNsb3dfZG93bl9pbyh2b2lkKQogewpk aWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlw ZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgK aW5kZXggYjgyYmFjOS4uZGNiMGM0NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv aW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaAorKysgYi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oCkBAIC0xMzUsNiArMTM1LDgg QEAgc3RydWN0IHB2X2NwdV9vcHMgewogCXZvaWQgKCpsb2FkX3NwMCkoc3Ry dWN0IHRzc19zdHJ1Y3QgKnRzcywgc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQp OwogCiAJdm9pZCAoKnNldF9pb3BsX21hc2spKHVuc2lnbmVkIG1hc2spOwor CXZvaWQgKCpzZXRfaW9fYml0bWFwKShzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAq dGhyZWFkLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBieXRlc191cGRhdGVk KTsKIAogCXZvaWQgKCp3YmludmQpKHZvaWQpOwogCXZvaWQgKCppb19kZWxh eSkodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5o CmluZGV4IDMyZjc1YmUuLjljNTUyOGUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gveDg2L2luY2x1 ZGUvYXNtL3Byb2Nlc3Nvci5oCkBAIC01NTEsNiArNTUxLDkgQEAgc3RhdGlj IGlubGluZSB2b2lkIG5hdGl2ZV9zZXRfaW9wbF9tYXNrKHVuc2lnbmVkIG1h c2spCiAjZW5kaWYKIH0KIAorZXh0ZXJuIHZvaWQgbmF0aXZlX3NldF9pb19i aXRtYXAoc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnRocmVhZCwKKwkJCQkgdW5z aWduZWQgbG9uZyB1cGRhdGVkX2J5dGVzKTsKKwogc3RhdGljIGlubGluZSB2 b2lkCiBuYXRpdmVfbG9hZF9zcDAoc3RydWN0IHRzc19zdHJ1Y3QgKnRzcywg c3RydWN0IHRocmVhZF9zdHJ1Y3QgKnRocmVhZCkKIHsKQEAgLTU5NSw2ICs1 OTgsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9pb3BsX21hc2sodW5z aWduZWQgbWFzaykKIHsKIAluYXRpdmVfc2V0X2lvcGxfbWFzayhtYXNrKTsK IH0KKworc3RhdGljIGlubGluZSB2b2lkIHNldF9pb19iaXRtYXAoc3RydWN0 IHRocmVhZF9zdHJ1Y3QgKnRocmVhZCwKKwkJCQkgdW5zaWduZWQgbG9uZyB1 cGRhdGVkX2J5dGVzKQoreworCW5hdGl2ZV9zZXRfaW9fYml0bWFwKHRocmVh ZCwgdXBkYXRlZF9ieXRlcyk7Cit9CiAjZW5kaWYgLyogQ09ORklHX1BBUkFW SVJUICovCiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaW9w b3J0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaW9wb3J0LmMKaW5kZXggOGVlYzBl Yy4uOGVhZDFmMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lvcG9y dC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pb3BvcnQuYwpAQCAtMzAsMTMg KzMwLDI5IEBAIHN0YXRpYyB2b2lkIHNldF9iaXRtYXAodW5zaWduZWQgbG9u ZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgYmFzZSwKIAl9CiB9CiAKK3ZvaWQg bmF0aXZlX3NldF9pb19iaXRtYXAoc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQs CisJCQkgIHVuc2lnbmVkIGxvbmcgYnl0ZXNfdXBkYXRlZCkKK3sKKwlzdHJ1 Y3QgdHNzX3N0cnVjdCAqdHNzOworCisJaWYgKCFieXRlc191cGRhdGVkKQor CQlyZXR1cm47CisKKwl0c3MgPSAmX19nZXRfY3B1X3Zhcihpbml0X3Rzcyk7 CisKKwkvKiBVcGRhdGUgdGhlIFRTUzogKi8KKwlpZiAodC0+aW9fYml0bWFw X3B0cikKKwkJbWVtY3B5KHRzcy0+aW9fYml0bWFwLCB0LT5pb19iaXRtYXBf cHRyLCBieXRlc191cGRhdGVkKTsKKwllbHNlCisJCW1lbXNldCh0c3MtPmlv X2JpdG1hcCwgMHhmZiwgYnl0ZXNfdXBkYXRlZCk7Cit9CisKIC8qCiAgKiB0 aGlzIGNoYW5nZXMgdGhlIGlvIHBlcm1pc3Npb25zIGJpdG1hcCBpbiB0aGUg Y3VycmVudCB0YXNrLgogICovCiBhc21saW5rYWdlIGxvbmcgc3lzX2lvcGVy bSh1bnNpZ25lZCBsb25nIGZyb20sIHVuc2lnbmVkIGxvbmcgbnVtLCBpbnQg dHVybl9vbikKIHsKIAlzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdCA9ICZjdXJy ZW50LT50aHJlYWQ7Ci0Jc3RydWN0IHRzc19zdHJ1Y3QgKnRzczsKIAl1bnNp Z25lZCBpbnQgaSwgbWF4X2xvbmcsIGJ5dGVzLCBieXRlc191cGRhdGVkOwog CiAJaWYgKChmcm9tICsgbnVtIDw9IGZyb20pIHx8IChmcm9tICsgbnVtID4g SU9fQklUTUFQX0JJVFMpKQpAQCAtNjEsMTMgKzc3LDEzIEBAIGFzbWxpbmth Z2UgbG9uZyBzeXNfaW9wZXJtKHVuc2lnbmVkIGxvbmcgZnJvbSwgdW5zaWdu ZWQgbG9uZyBudW0sIGludCB0dXJuX29uKQogCX0KIAogCS8qCi0JICogZG8g aXQgaW4gdGhlIHBlci10aHJlYWQgY29weSBhbmQgaW4gdGhlIFRTUyAuLi4K KwkgKiBkbyBpdCBpbiB0aGUgcGVyLXRocmVhZCBjb3B5CiAJICoKLQkgKiBE aXNhYmxlIHByZWVtcHRpb24gdmlhIGdldF9jcHUoKSAtIHdlIG11c3Qgbm90 IHN3aXRjaCBhd2F5CisJICogRGlzYWJsZSBwcmVlbXB0aW9uIC0gd2UgbXVz dCBub3Qgc3dpdGNoIGF3YXkKIAkgKiBiZWNhdXNlIHRoZSAtPmlvX2JpdG1h cF9tYXggdmFsdWUgbXVzdCBtYXRjaCB0aGUgYml0bWFwCiAJICogY29udGVu dHM6CiAJICovCi0JdHNzID0gJnBlcl9jcHUoaW5pdF90c3MsIGdldF9jcHUo KSk7CisJcHJlZW1wdF9kaXNhYmxlKCk7CiAKIAlzZXRfYml0bWFwKHQtPmlv X2JpdG1hcF9wdHIsIGZyb20sIG51bSwgIXR1cm5fb24pOwogCkBAIC04NSwx MCArMTAxLDkgQEAgYXNtbGlua2FnZSBsb25nIHN5c19pb3Blcm0odW5zaWdu ZWQgbG9uZyBmcm9tLCB1bnNpZ25lZCBsb25nIG51bSwgaW50IHR1cm5fb24p CiAKIAl0LT5pb19iaXRtYXBfbWF4ID0gYnl0ZXM7CiAKLQkvKiBVcGRhdGUg dGhlIFRTUzogKi8KLQltZW1jcHkodHNzLT5pb19iaXRtYXAsIHQtPmlvX2Jp dG1hcF9wdHIsIGJ5dGVzX3VwZGF0ZWQpOworCXNldF9pb19iaXRtYXAodCwg Ynl0ZXNfdXBkYXRlZCk7CiAKLQlwdXRfY3B1KCk7CisJcHJlZW1wdF9lbmFi bGUoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQu YwppbmRleCBjNWIyNTAwLi5mZWJkODUxIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvcGFyYXZpcnQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFy YXZpcnQuYwpAQCAtMzc2LDYgKzM3Niw3IEBAIHN0cnVjdCBwdl9jcHVfb3Bz IHB2X2NwdV9vcHMgPSB7CiAJLnN3YXBncyA9IG5hdGl2ZV9zd2FwZ3MsCiAK IAkuc2V0X2lvcGxfbWFzayA9IG5hdGl2ZV9zZXRfaW9wbF9tYXNrLAorCS5z ZXRfaW9fYml0bWFwID0gbmF0aXZlX3NldF9pb19iaXRtYXAsCiAJLmlvX2Rl bGF5ID0gbmF0aXZlX2lvX2RlbGF5LAogCiAJLnN0YXJ0X2NvbnRleHRfc3dp dGNoID0gcGFyYXZpcnRfbm9wLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2Vy bmVsL3Byb2Nlc3MuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKaW5k ZXggNTdkMTg2OC4uYTQ4ZTgyYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2Vy bmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5j CkBAIC03NCwxNiArNzQsMTIgQEAgdm9pZCBleGl0X3RocmVhZCh2b2lkKQog CXVuc2lnbmVkIGxvbmcgKmJwID0gdC0+aW9fYml0bWFwX3B0cjsKIAogCWlm IChicCkgewotCQlzdHJ1Y3QgdHNzX3N0cnVjdCAqdHNzID0gJnBlcl9jcHUo aW5pdF90c3MsIGdldF9jcHUoKSk7Ci0KKwkJcHJlZW1wdF9kaXNhYmxlKCk7 CiAJCXQtPmlvX2JpdG1hcF9wdHIgPSBOVUxMOwogCQljbGVhcl90aHJlYWRf ZmxhZyhUSUZfSU9fQklUTUFQKTsKLQkJLyoKLQkJICogQ2FyZWZ1bCwgY2xl YXIgdGhpcyBpbiB0aGUgVFNTIHRvbzoKLQkJICovCi0JCW1lbXNldCh0c3Mt PmlvX2JpdG1hcCwgMHhmZiwgdC0+aW9fYml0bWFwX21heCk7CisJCXNldF9p b19iaXRtYXAodCwgdC0+aW9fYml0bWFwX21heCk7CiAJCXQtPmlvX2JpdG1h cF9tYXggPSAwOwotCQlwdXRfY3B1KCk7CisJCXByZWVtcHRfZW5hYmxlKCk7 CiAJCWtmcmVlKGJwKTsKIAl9CiB9CkBAIC0yMTQsMTkgKzIxMCwxMSBAQCB2 b2lkIF9fc3dpdGNoX3RvX3h0cmEoc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2 X3AsIHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dF9wLAogCQkJaGFyZF9lbmFi bGVfVFNDKCk7CiAJfQogCi0JaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKG5l eHRfcCwgVElGX0lPX0JJVE1BUCkpIHsKLQkJLyoKLQkJICogQ29weSB0aGUg cmVsZXZhbnQgcmFuZ2Ugb2YgdGhlIElPIGJpdG1hcC4KLQkJICogTm9ybWFs bHkgdGhpcyBpcyAxMjggYnl0ZXMgb3IgbGVzczoKLQkJICovCi0JCW1lbWNw eSh0c3MtPmlvX2JpdG1hcCwgbmV4dC0+aW9fYml0bWFwX3B0ciwKLQkJICAg ICAgIG1heChwcmV2LT5pb19iaXRtYXBfbWF4LCBuZXh0LT5pb19iaXRtYXBf bWF4KSk7Ci0JfSBlbHNlIGlmICh0ZXN0X3Rza190aHJlYWRfZmxhZyhwcmV2 X3AsIFRJRl9JT19CSVRNQVApKSB7Ci0JCS8qCi0JCSAqIENsZWFyIGFueSBw b3NzaWJsZSBsZWZ0b3ZlciBiaXRzOgotCQkgKi8KLQkJbWVtc2V0KHRzcy0+ aW9fYml0bWFwLCAweGZmLCBwcmV2LT5pb19iaXRtYXBfbWF4KTsKLQl9CisJ aWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKG5leHRfcCwgVElGX0lPX0JJVE1B UCkgfHwKKwkgICAgdGVzdF90c2tfdGhyZWFkX2ZsYWcocHJldl9wLCBUSUZf SU9fQklUTUFQKSkKKwkJc2V0X2lvX2JpdG1hcChuZXh0LAorCQkJICAgICAg bWF4KHByZXYtPmlvX2JpdG1hcF9tYXgsIG5leHQtPmlvX2JpdG1hcF9tYXgp KTsKKwogCXByb3BhZ2F0ZV91c2VyX3JldHVybl9ub3RpZnkocHJldl9wLCBu ZXh0X3ApOwogfQogCi0tIAoxLjcuMy4yCgoKRnJvbSA5NTA5NTI3MDFjZjll MjE4YzIyNjlkMTNiODUzOGYzYzA3Y2ZmNzYyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKZXJlbXkgRml0emhhcmRpbmdlIDxqZXJlbXkuZml0 emhhcmRpbmdlQGNpdHJpeC5jb20+CkRhdGU6IFRodSwgMTggSnVuIDIwMDkg MTU6MDQ6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIIDE1LzIxXSB4ZW46IGlt cGxlbWVudCBJTyBwZXJtaXNzaW9uIGJpdG1hcAoKQWRkIFhlbiBpbXBsZW1l bnRhdGlvbiBvZiBJTyBwZXJtaXNzaW9uIGJpdG1hcCBwdm9wLgoKWyBJbXBh Y3Q6IGFsbG93IGd1ZXN0cyB0byBzZXQgdXNlcm1vZGUgSU8gcGVybWlzc2lv biBiaXRtYXBzLiBdCgpTaWduZWQtb2ZmLWJ5OiBKZXJlbXkgRml0emhhcmRp bmdlIDxqZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+Ci0tLQogYXJj aC94ODYveGVuL2VubGlnaHRlbi5jIHwgICAxMyArKysrKysrKysrKysrCiAx IGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIv YXJjaC94ODYveGVuL2VubGlnaHRlbi5jCmluZGV4IDIzNWMwZjQuLjRhZDg4 ZmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysg Yi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKQEAgLTcwMCw2ICs3MDAsMTgg QEAgc3RhdGljIHZvaWQgeGVuX3NldF9pb3BsX21hc2sodW5zaWduZWQgbWFz aykKIAlIWVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9QX3NldF9pb3Bs LCAmc2V0X2lvcGwpOwogfQogCitzdGF0aWMgdm9pZCB4ZW5fc2V0X2lvX2Jp dG1hcChzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdGhyZWFkLAorCQkJICAgICAg dW5zaWduZWQgbG9uZyBieXRlc191cGRhdGVkKQoreworCXN0cnVjdCBwaHlz ZGV2X3NldF9pb2JpdG1hcCBzZXRfaW9iaXRtYXA7CisKKwlzZXRfeGVuX2d1 ZXN0X2hhbmRsZShzZXRfaW9iaXRtYXAuYml0bWFwLAorCQkJICAgICAoY2hh ciAqKXRocmVhZC0+aW9fYml0bWFwX3B0cik7CisJc2V0X2lvYml0bWFwLm5y X3BvcnRzID0gdGhyZWFkLT5pb19iaXRtYXBfcHRyID8gSU9fQklUTUFQX0JJ VFMgOiAwOworCVdBUk5fT04oSFlQRVJWSVNPUl9waHlzZGV2X29wKFBIWVNE RVZPUF9zZXRfaW9iaXRtYXAsCisJCQkJICAgICAgJnNldF9pb2JpdG1hcCkp OworfQorCiBzdGF0aWMgdm9pZCB4ZW5faW9fZGVsYXkodm9pZCkKIHsKIH0K QEAgLTk5Nyw2ICsxMDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwdl9j cHVfb3BzIHhlbl9jcHVfb3BzIF9faW5pdGRhdGEgPSB7CiAJLmxvYWRfc3Aw ID0geGVuX2xvYWRfc3AwLAogCiAJLnNldF9pb3BsX21hc2sgPSB4ZW5fc2V0 X2lvcGxfbWFzaywKKwkuc2V0X2lvX2JpdG1hcCA9IHhlbl9zZXRfaW9fYml0 bWFwLAogCS5pb19kZWxheSA9IHhlbl9pb19kZWxheSwKIAogCS8qIFhlbiB0 YWtlcyBjYXJlIG9mICVncyB3aGVuIHN3aXRjaGluZyB0byB1c2VybW9kZSBm b3IgdXMgKi8KLS0gCjEuNy4zLjIKCgpGcm9tIDY5MDM1OTFmMzE0Yjg5NDdk MGUzNjJiZGE3NzE1ZTkwZWI5ZGY3NWUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5j b20+CkRhdGU6IE1vbiwgMSBOb3YgMjAxMCAxNjozMDowOSArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggMTYvMjFdIHhlbjogZXZlbnRzOiBkbyBub3QgdW5tYXNr IGV2ZW50IGNoYW5uZWxzIG9uIHJlc3VtZQoKVGhlIElSUSBjb3JlIGNvZGUg d2lsbCB0YWtlIGNhcmUgb2YgZGlzYWJsaW5nIGFuZCByZWVuYWJsaW5nCmlu dGVycnVwdHMgb3ZlciBzdXNwZW5kIHJlc3VtZSBhdXRvbWF0aWNhbGx5LCB0 aGVyZWZvcmUgd2UgZG8gbm90IG5lZWQKdG8gZG8gdGhpcyBpbiB0aGUgWGVu IGV2ZW50IGNoYW5uZWwgY29kZS4KClRoZSBvbmx5IGV4Y2VwdGlvbiBpcyB0 aG9zZSBldmVudCBjaGFubmVscyBtYXJrZWQgSVJRRl9OT19TVVNQRU5ECndo aWNoIHRoZSBJUlEgY29yZSBpZ25vcmVzLiBXZSBtdXN0IHVubWFzayB0aGVz ZSBvdXJzZWx2ZXMsIHRha2luZwpjYXJlIHRvIG9iZXkgdGhlIGN1cnJlbnQg SVJRX0RJU0FCTEVEIHN0YXR1cy4gRmFpbHVyZSBjaGVjayBmb3IKSVJRX0RJ U0FCTEVEIGxlYWRzIHRvIGVuYWJsaW5nIHBvbGxlZCBvbmx5IGV2ZW50IGNo YW5uZWxzLCBzdWNoIGFzCnRoYXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdiBz cGlubG9ja3MsIHdoaWNoIG11c3QgbmV2ZXIgYmUgZW5hYmxlZDoKClsgICAy MS45NzA0MzJdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0t LQpbICAgMjEuOTcwNDMyXSBrZXJuZWwgQlVHIGF0IGFyY2gveDg2L3hlbi9z cGlubG9jay5jOjM0MyEKWyAgIDIxLjk3MDQzMl0gaW52YWxpZCBvcGNvZGU6 IDAwMDAgWyMxXSBTTVAKWyAgIDIxLjk3MDQzMl0gbGFzdCBzeXNmcyBmaWxl OiAvc3lzL2RldmljZXMvdmlydHVhbC9uZXQvbG8vb3BlcnN0YXRlClsgICAy MS45NzA0MzJdIE1vZHVsZXMgbGlua2VkIGluOgpbICAgMjEuOTcwNDMyXQpb ICAgMjEuOTcwNDMyXSBQaWQ6IDAsIGNvbW06IHN3YXBwZXIgTm90IHRhaW50 ZWQgKDIuNi4zMi4yNC14ODZfMzJwLXhlbi0wMTAzNC1nNzg3YzcyNyAjMzQp ClsgICAyMS45NzA0MzJdIEVJUDogMDA2MTpbPGMxMDJlMjA5Pl0gRUZMQUdT OiAwMDAxMDA0NiBDUFU6IDMKWyAgIDIxLjk3MDQzMl0gRUlQIGlzIGF0IGR1 bW15X2hhbmRsZXIrMHgzLzB4NwpbICAgMjEuOTcwNDMyXSBFQVg6IDAwMDAw MjFjIEVCWDogZGZjMTY4ODAgRUNYOiAwMDAwMDAxYSBFRFg6IDAwMDAwMDAw ClsgICAyMS45NzA0MzJdIEVTSTogZGZjMDJjMDAgRURJOiAwMDAwMDAwMSBF QlA6IGRmYzQ3ZTEwIEVTUDogZGZjNDdlMTAKWyAgIDIxLjk3MDQzMl0gIERT OiAwMDdiIEVTOiAwMDdiIEZTOiAwMGQ4IEdTOiAwMDAwIFNTOiAwMDY5Clsg ICAyMS45NzA0MzJdIFByb2Nlc3Mgc3dhcHBlciAocGlkOiAwLCB0aT1kZmM0 NjAwMCB0YXNrPWRmYzM5NDQwIHRhc2sudGk9ZGZjNDYwMDApClsgICAyMS45 NzA0MzJdIFN0YWNrOgpbICAgMjEuOTcwNDMyXSAgZGZjNDdlMzAgYzEwYTM5 ZjAgMDAwMDAyMWMgMDAwMDAwMDAgMDAwMDAwMDAgZGZjMTY4ODAgMDAwMDAy MWMgMDAwMDAwMDEKWyAgIDIxLjk3MDQzMl0gPDA+IGRmYzQ3ZTQwIGMxMGE0 ZjA4IDAwMDAwMjFjIDAwMDAwMDAwIGRmYzQ3ZTc4IGMxMjI0MGE3IGMxODM5 Mjg0IGMxODM5Mjg0ClsgICAyMS45NzA0MzJdIDwwPiAwMDAwMDIwMCAwMDAw MDAwMCAwMDAwMDAwMCBmNTcyMDAwMCBjMWYzZDAyOCBjMWYzZDAyYyAwMDAw MDE4MCBkZmM0N2U5MApbICAgMjEuOTcwNDMyXSBDYWxsIFRyYWNlOgpbICAg MjEuOTcwNDMyXSAgWzxjMTBhMzlmMD5dID8gaGFuZGxlX0lSUV9ldmVudCsw eDVmLzB4MTIyClsgICAyMS45NzA0MzJdICBbPGMxMGE0ZjA4Pl0gPyBoYW5k bGVfcGVyY3B1X2lycSsweDJmLzB4NTUKWyAgIDIxLjk3MDQzMl0gIFs8YzEy MjQwYTc+XSA/IF9feGVuX2V2dGNobl9kb191cGNhbGwrMHhkYi8weDE1Zgpb ICAgMjEuOTcwNDMyXSAgWzxjMTIyNDgxZT5dID8geGVuX2V2dGNobl9kb191 cGNhbGwrMHgyMC8weDMwClsgICAyMS45NzA0MzJdICBbPGMxMDMwZDQ3Pl0g PyB4ZW5fZG9fdXBjYWxsKzB4Ny8weGMKWyAgIDIxLjk3MDQzMl0gIFs8YzEw MjAwN2I+XSA/IGFwaWNfcmVnX3JlYWQrMHhkMy8weDIyZApbICAgMjEuOTcw NDMyXSAgWzxjMTAwMjIyNz5dID8gaHlwZXJjYWxsX3BhZ2UrMHgyMjcvMHgx MDA1ClsgICAyMS45NzA0MzJdICBbPGMxMDJkMzBiPl0gPyB4ZW5fZm9yY2Vf ZXZ0Y2huX2NhbGxiYWNrKzB4Zi8weDE0ClsgICAyMS45NzA0MzJdICBbPGMx MDJkYTdjPl0gPyBjaGVja19ldmVudHMrMHg4LzB4YwpbICAgMjEuOTcwNDMy XSAgWzxjMTAyZGEzYj5dID8geGVuX2lycV9lbmFibGVfZGlyZWN0X2VuZCsw eDAvMHgxClsgICAyMS45NzA0MzJdICBbPGMxMDVlNDg1Pl0gPyBmaW5pc2hf dGFza19zd2l0Y2grMHg2Mi8weGJhClsgICAyMS45NzA0MzJdICBbPGMxNGUz Zjg0Pl0gPyBzY2hlZHVsZSsweDgwOC8weDg5ZApbICAgMjEuOTcwNDMyXSAg WzxjMTA4NGRjNT5dID8gaHJ0aW1lcl9zdGFydF9leHBpcmVzKzB4MWEvMHgy MgpbICAgMjEuOTcwNDMyXSAgWzxjMTA4NTE1ND5dID8gdGlja19ub2h6X3Jl c3RhcnRfc2NoZWRfdGljaysweDE1YS8weDE2MgpbICAgMjEuOTcwNDMyXSAg WzxjMTAyZjQzYT5dID8gY3B1X2lkbGUrMHg2ZC8weDZmClsgICAyMS45NzA0 MzJdICBbPGMxNGRiMjllPl0gPyBjcHVfYnJpbmd1cF9hbmRfaWRsZSsweGQv MHhmClsgICAyMS45NzA0MzJdIENvZGU6IDVkIDBmIDk1IGMwIDBmIGI2IGMw IGMzIDU1IDY2IDgzIDc4IDAyIDAwIDg5IGU1IDVkIDBmIDk1IFwKYzAgMGYg YjYgYzAgYzMgNTUgYjIgMDEgODYgMTAgMzEgYzAgODQgZDIgODkgZTUgMGYg OTQgYzAgNWQgYzMgNTUgODkgZTUgPDBmPiAwYiBcCmViIGZlIDU1IDgwIDNk IDRjIGNlIDg0IGMxIDAwIDg5IGU1IDU3IDU2IDg5IGM2IDUzIDc0IDE1Clsg ICAyMS45NzA0MzJdIEVJUDogWzxjMTAyZTIwOT5dIGR1bW15X2hhbmRsZXIr MHgzLzB4NyBTUzpFU1AgMDA2OTpkZmM0N2UxMApbICAgMjEuOTcwNDMyXSAt LS1bIGVuZCB0cmFjZSBjMGI3MWY3ZTEyY2YzMDExIF0tLS0KClNpZ25lZC1v ZmYtYnk6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ ClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5m aXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBkcml2ZXJzL3hlbi9ldmVu dHMuYyB8ICAgMjUgKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxl cyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2V2ZW50cy5jIGIvZHJpdmVycy94 ZW4vZXZlbnRzLmMKaW5kZXggOTc2MTJmNS4uMzIxYTBjOCAxMDA2NDQKLS0t IGEvZHJpdmVycy94ZW4vZXZlbnRzLmMKKysrIGIvZHJpdmVycy94ZW4vZXZl bnRzLmMKQEAgLTEyOTksOSArMTI5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc3Rv cmVfY3B1X3ZpcnFzKHVuc2lnbmVkIGludCBjcHUpCiAJCWV2dGNobl90b19p cnFbZXZ0Y2huXSA9IGlycTsKIAkJaXJxX2luZm9baXJxXSA9IG1rX3ZpcnFf aW5mbyhldnRjaG4sIHZpcnEpOwogCQliaW5kX2V2dGNobl90b19jcHUoZXZ0 Y2huLCBjcHUpOwotCi0JCS8qIFJlYWR5IGZvciB1c2UuICovCi0JCXVubWFz a19ldnRjaG4oZXZ0Y2huKTsKIAl9CiB9CiAKQEAgLTEzMjcsMTAgKzEzMjQs NiBAQCBzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV9pcGlzKHVuc2lnbmVkIGlu dCBjcHUpCiAJCWV2dGNobl90b19pcnFbZXZ0Y2huXSA9IGlycTsKIAkJaXJx X2luZm9baXJxXSA9IG1rX2lwaV9pbmZvKGV2dGNobiwgaXBpKTsKIAkJYmlu ZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgY3B1KTsKLQotCQkvKiBSZWFkeSBm b3IgdXNlLiAqLwotCQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7Ci0KIAl9CiB9 CiAKQEAgLTEzOTAsNiArMTM4Myw3IEBAIHZvaWQgeGVuX3BvbGxfaXJxKGlu dCBpcnEpCiB2b2lkIHhlbl9pcnFfcmVzdW1lKHZvaWQpCiB7CiAJdW5zaWdu ZWQgaW50IGNwdSwgaXJxLCBldnRjaG47CisJc3RydWN0IGlycV9kZXNjICpk ZXNjOwogCiAJaW5pdF9ldnRjaG5fY3B1X2JpbmRpbmdzKCk7CiAKQEAgLTE0 MDgsNiArMTQwMiwyMyBAQCB2b2lkIHhlbl9pcnFfcmVzdW1lKHZvaWQpCiAJ CXJlc3RvcmVfY3B1X3ZpcnFzKGNwdSk7CiAJCXJlc3RvcmVfY3B1X2lwaXMo Y3B1KTsKIAl9CisKKwkvKgorCSAqIFVubWFzayBhbnkgSVJRRl9OT19TVVNQ RU5EIElSUXMgd2hpY2ggYXJlIGVuYWJsZWQuIFRoZXNlCisJICogYXJlIG5v dCBoYW5kbGVkIGJ5IHRoZSBJUlEgY29yZS4KKwkgKi8KKwlmb3JfZWFjaF9p cnFfZGVzYyhpcnEsIGRlc2MpIHsKKwkJaWYgKCFkZXNjLT5hY3Rpb24gfHwg IShkZXNjLT5hY3Rpb24tPmZsYWdzICYgSVJRRl9OT19TVVNQRU5EKSkKKwkJ CWNvbnRpbnVlOworCQlpZiAoZGVzYy0+c3RhdHVzICYgSVJRX0RJU0FCTEVE KQorCQkJY29udGludWU7CisKKwkJZXZ0Y2huID0gZXZ0Y2huX2Zyb21faXJx KGlycSk7CisJCWlmIChldnRjaG4gPT0gLTEpCisJCQljb250aW51ZTsKKwor CQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7CisJfQogfQogCiBzdGF0aWMgc3Ry dWN0IGlycV9jaGlwIHhlbl9keW5hbWljX2NoaXAgX19yZWFkX21vc3RseSA9 IHsKLS0gCjEuNy4zLjIKCgpGcm9tIDllYzIzYTdmNmQyNTM3ZmFmMTQzNjhl MDY2ZTMwN2MwNjgxMmM0Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkRh dGU6IFRodSwgMjggT2N0IDIwMTAgMTE6MzI6MjkgLTA3MDAKU3ViamVjdDog W1BBVENIIDE3LzIxXSB4ZW46IGRvIG5vdCByZWxlYXNlIGFueSBtZW1vcnkg dW5kZXIgMU0gaW4gZG9tYWluIDAKCldlIGFscmVhZHkgZGVsaWJlcmF0ZWx5 IHNldHVwIGEgMS0xIFAyTSBmb3IgdGhlIHJlZ2lvbiB1cCB0byAxTSBpbgpv cmRlciB0byBhbGxvdyBjb2RlIHdoaWNoIGFzc3VtZXMgdGhpcyByZWdpb24g aXMgYWxyZWFkeSBtYXBwZWQgdG8Kd29yayB3aXRob3V0IGhhdmluZyB0byBj b252ZXJ0IGV2ZXJ5dGhpbmcgdG8gaW9yZW1hcC4KCkRvbWFpbiAwIHNob3Vs ZCBub3QgcmV0dXJuIGFueSBhcHBhcmVudGx5IHVudXNlZCBtZW1vcnkgcmVn aW9ucwoocmVzZXJ2ZWQgb3Igb3RoZXJ3aXNlKSBpbiB0aGlzIHJlZ2lvbiB0 byBYZW4gc2luY2UgdGhlIGU4MjAgbWF5IG5vdAphY2N1cmF0ZWx5IHJlZmxl Y3Qgd2hhdCB0aGUgQklPUyBoYXMgc3Rhc2hlZCBpbiB0aGlzIHJlZ2lvbi4K ClNpZ25lZC1vZmYtYnk6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNp dHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGluZ2Ug PGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBhcmNoL3g4 Ni94ZW4vc2V0dXAuYyB8ICAgMTggKysrKysrKysrKystLS0tLS0tCiAxIGZp bGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL3NldHVwLmMgYi9hcmNoL3g4 Ni94ZW4vc2V0dXAuYwppbmRleCBiMWRiZGFhLi43NjljNGIwIDEwMDY0NAot LS0gYS9hcmNoL3g4Ni94ZW4vc2V0dXAuYworKysgYi9hcmNoL3g4Ni94ZW4v c2V0dXAuYwpAQCAtMTE4LDE2ICsxMTgsMTggQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgX19pbml0IHhlbl9yZXR1cm5fdW51c2VkX21lbW9yeSh1bnNpZ25l ZCBsb25nIG1heF9wZm4sCiAJCQkJCQkgICAgIGNvbnN0IHN0cnVjdCBlODIw bWFwICplODIwKQogewogCXBoeXNfYWRkcl90IG1heF9hZGRyID0gUEZOX1BI WVMobWF4X3Bmbik7Ci0JcGh5c19hZGRyX3QgbGFzdF9lbmQgPSAwOworCXBo eXNfYWRkcl90IGxhc3RfZW5kID0gSVNBX0VORF9BRERSRVNTOwogCXVuc2ln bmVkIGxvbmcgcmVsZWFzZWQgPSAwOwogCWludCBpOwogCisJLyogRnJlZSBh bnkgdW51c2VkIG1lbW9yeSBhYm92ZSB0aGUgbG93IDFNYnl0ZS4gKi8KIAlm b3IgKGkgPSAwOyBpIDwgZTgyMC0+bnJfbWFwICYmIGxhc3RfZW5kIDwgbWF4 X2FkZHI7IGkrKykgewogCQlwaHlzX2FkZHJfdCBlbmQgPSBlODIwLT5tYXBb aV0uYWRkcjsKIAkJZW5kID0gbWluKG1heF9hZGRyLCBlbmQpOwogCi0JCXJl bGVhc2VkICs9IHhlbl9yZWxlYXNlX2NodW5rKGxhc3RfZW5kLCBlbmQpOwot CQlsYXN0X2VuZCA9IGU4MjAtPm1hcFtpXS5hZGRyICsgZTgyMC0+bWFwW2ld LnNpemU7CisJCWlmIChsYXN0X2VuZCA8IGVuZCkKKwkJCXJlbGVhc2VkICs9 IHhlbl9yZWxlYXNlX2NodW5rKGxhc3RfZW5kLCBlbmQpOworCQlsYXN0X2Vu ZCA9IG1heChsYXN0X2VuZCwgZTgyMC0+bWFwW2ldLmFkZHIgKyBlODIwLT5t YXBbaV0uc2l6ZSk7CiAJfQogCiAJaWYgKGxhc3RfZW5kIDwgbWF4X2FkZHIp CkBAIC0xNjQsNiArMTY2LDcgQEAgY2hhciAqIF9faW5pdCB4ZW5fbWVtb3J5 X3NldHVwKHZvaWQpCiAJCVhFTk1FTV9tZW1vcnlfbWFwOwogCXJjID0gSFlQ RVJWSVNPUl9tZW1vcnlfb3Aob3AsICZtZW1tYXApOwogCWlmIChyYyA9PSAt RU5PU1lTKSB7CisJCUJVR19PTih4ZW5faW5pdGlhbF9kb21haW4oKSk7CiAJ CW1lbW1hcC5ucl9lbnRyaWVzID0gMTsKIAkJbWFwWzBdLmFkZHIgPSAwVUxM OwogCQltYXBbMF0uc2l6ZSA9IG1lbV9lbmQ7CkBAIC0yMDEsMTIgKzIwNCwx MyBAQCBjaGFyICogX19pbml0IHhlbl9tZW1vcnlfc2V0dXAodm9pZCkKIAl9 CiAKIAkvKgotCSAqIEV2ZW4gdGhvdWdoIHRoaXMgaXMgbm9ybWFsLCB1c2Fi bGUgbWVtb3J5IHVuZGVyIFhlbiwgcmVzZXJ2ZQotCSAqIElTQSBtZW1vcnkg YW55d2F5IGJlY2F1c2UgdG9vIG1hbnkgdGhpbmdzIHRoaW5rIHRoZXkgY2Fu IHBva2UKKwkgKiBJbiBkb21VLCB0aGUgSVNBIHJlZ2lvbiBpcyBub3JtYWws IHVzYWJsZSBtZW1vcnksIGJ1dCB3ZQorCSAqIHJlc2VydmUgSVNBIG1lbW9y eSBhbnl3YXkgYmVjYXVzZSB0b28gbWFueSB0aGluZ3MgcG9rZQogCSAqIGFi b3V0IGluIHRoZXJlLgogCSAqCi0JICogSW4gYSBkb20wIGtlcm5lbCwgdGhp cyByZWdpb24gaXMgaWRlbnRpdHkgbWFwcGVkIHdpdGggdGhlCi0JICogaGFy ZHdhcmUgSVNBIGFyZWEsIHNvIGl0IHJlYWxseSBpcyBvdXQgb2YgYm91bmRz LgorCSAqIEluIERvbTAsIHRoZSBob3N0IEU4MjAgaW5mb3JtYXRpb24gY2Fu IGxlYXZlIGdhcHMgaW4gdGhlCisJICogSVNBIHJhbmdlLCB3aGljaCB3b3Vs ZCBjYXVzZSB1cyB0byByZWxlYXNlIHRob3NlIHBhZ2VzLiAgVG8KKwkgKiBh dm9pZCB0aGlzLCB3ZSB1bmNvbmRpdGlvbmFsbHkgcmVzZXJ2ZSB0aGVtIGhl cmUuCiAJICovCiAJZTgyMF9hZGRfcmVnaW9uKElTQV9TVEFSVF9BRERSRVNT LCBJU0FfRU5EX0FERFJFU1MgLSBJU0FfU1RBUlRfQUREUkVTUywKIAkJCUU4 MjBfUkVTRVJWRUQpOwotLSAKMS43LjMuMgoKCkZyb20gZTA2MGU3YWY5ODE4 MjQ5NGI3NjRkMDAyZWJhN2ZhMDIyZmU5MWJkZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0 YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KRGF0ZTogVGh1LCAxMSBOb3YgMjAx MCAxMjozNzo0MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjFdIHhlbjog c2V0IHZtYSBmbGFnIFZNX1BGTk1BUCBpbiB0aGUgcHJpdmNtZCBtbWFwIGZp bGVfb3AKClNldCBWTV9QRk5NQVAgaW4gdGhlIHByaXZjbWQgbW1hcCBmaWxl X29wLCByYXRoZXIgdGhhbiBsYXRlciBpbgp4ZW5fcmVtYXBfZG9tYWluX21m bl9yYW5nZSB3aGVuIGl0IGlzIHRvbyBsYXRlIGJlY2F1c2UKdm1hX3dhbnRz X3dyaXRlbm90aWZ5IGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGFuZCB2bV9w YWdlX3Byb3QgaGFzCmFscmVhZHkgYmVlbiBtb2RpZmllZC4KClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5p QGV1LmNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFy ZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBh cmNoL3g4Ni94ZW4vbW11LmMgICAgICAgICAgfCAgICAzICsrLQogZHJpdmVy cy94ZW4veGVuZnMvcHJpdmNtZC5jIHwgICAgNSArKystLQogMiBmaWxlcyBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYveGVuL21tdS5jIGIvYXJjaC94ODYveGVuL21t dS5jCmluZGV4IGYwOGVhMDQuLjc5MmRlNDMgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L3hlbi9tbXUuYworKysgYi9hcmNoL3g4Ni94ZW4vbW11LmMKQEAgLTIy OTksNyArMjI5OSw4IEBAIGludCB4ZW5fcmVtYXBfZG9tYWluX21mbl9yYW5n ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAogCXByb3QgPSBfX3Bn cHJvdChwZ3Byb3RfdmFsKHByb3QpIHwgX1BBR0VfSU9NQVApOwogCi0Jdm1h LT52bV9mbGFncyB8PSBWTV9JTyB8IFZNX1JFU0VSVkVEIHwgVk1fUEZOTUFQ OworCUJVR19PTighKCh2bWEtPnZtX2ZsYWdzICYgKFZNX1BGTk1BUCB8IFZN X1JFU0VSVkVEIHwgVk1fSU8pKSA9PQorCQkJCShWTV9QRk5NQVAgfCBWTV9S RVNFUlZFRCB8IFZNX0lPKSkpOwogCiAJcm1kLm1mbiA9IG1mbjsKIAlybWQu cHJvdCA9IHByb3Q7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5mcy9w cml2Y21kLmMgYi9kcml2ZXJzL3hlbi94ZW5mcy9wcml2Y21kLmMKaW5kZXgg MmViMDRjOC4uODg0NzRkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4veGVu ZnMvcHJpdmNtZC5jCisrKyBiL2RyaXZlcnMveGVuL3hlbmZzL3ByaXZjbWQu YwpAQCAtMzgwLDggKzM4MCw5IEBAIHN0YXRpYyBpbnQgcHJpdmNtZF9tbWFw KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKIAlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRf cGh5c21hcCkpCiAJCXJldHVybiAtRU5PU1lTOwogCi0JLyogRE9OVENPUFkg aXMgZXNzZW50aWFsIGZvciBYZW4gYXMgY29weV9wYWdlX3JhbmdlIGlzIGJy b2tlbi4gKi8KLQl2bWEtPnZtX2ZsYWdzIHw9IFZNX1JFU0VSVkVEIHwgVk1f SU8gfCBWTV9ET05UQ09QWTsKKwkvKiBET05UQ09QWSBpcyBlc3NlbnRpYWwg Zm9yIFhlbiBiZWNhdXNlIGNvcHlfcGFnZV9yYW5nZSBkb2Vzbid0IGtub3cK KwkgKiBob3cgdG8gcmVjcmVhdGUgdGhlc2UgbWFwcGluZ3MgKi8KKwl2bWEt PnZtX2ZsYWdzIHw9IFZNX1JFU0VSVkVEIHwgVk1fSU8gfCBWTV9ET05UQ09Q WSB8IFZNX1BGTk1BUDsKIAl2bWEtPnZtX29wcyA9ICZwcml2Y21kX3ZtX29w czsKIAl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IE5VTEw7CiAKLS0gCjEuNy4z LjIKCgpGcm9tIGExODgzMDFmMGU3OGRhZWQwMTFkZGU1NjEzOTYzMGQ4ODI5 OWE5NTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElhbiBDYW1w YmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkRhdGU6IE1vbiwgOSBG ZWIgMjAwOSAxMjowNTo0OSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjFd IHhlbjogZGVmaW5lIGdudHRhYl9zZXRfbWFwX29wL3VubWFwX29wCgpJbXBh Y3Q6IGh5cGVyY2FsbCBkZWZpbml0aW9ucwoKVGhlc2UgZnVuY3Rpb25zIHBv cHVsYXRlIHRoZSBnbnR0YWIgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgYnkgdGhl CmdyYW50dGFiIG1hcCBhbmQgdW5tYXAgb3BzIGFuZCBhcmUgdXNlZCBpbiB0 aGUgYmFja2VuZCBkcml2ZXJzLgoKT3JpZ2luYWxseSB4ZW4tdW5zdGFibGUu aGcgOTYyNTpjM2JiNTFjNDQzYTcKClsgSW5jbHVkZSBTdGVmYW5vJ3MgZml4 IGZvciBwaHlzX2FkZHJfdCBdCgpTaWduZWQtb2ZmLWJ5OiBJYW4gQ2FtcGJl bGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRy aXguY29tPgpTaWduZWQtb2ZmLWJ5OiBKZXJlbXkgRml0emhhcmRpbmdlIDxq ZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+Ci0tLQogaW5jbHVkZS94 ZW4vZ3JhbnRfdGFibGUuaCB8ICAgMzkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiAxIGZpbGVzIGNoYW5nZWQsIDM4IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS94ZW4vZ3JhbnRfdGFibGUuaCBiL2luY2x1ZGUveGVuL2dyYW50X3RhYmxl LmgKaW5kZXggOWE3MzE3MC4uMTgyMWFhMSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS94ZW4vZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRlL3hlbi9ncmFudF90 YWJsZS5oCkBAIC0zNywxMCArMzcsMTYgQEAKICNpZm5kZWYgX19BU01fR05U VEFCX0hfXwogI2RlZmluZSBfX0FTTV9HTlRUQUJfSF9fCiAKLSNpbmNsdWRl IDxhc20veGVuL2h5cGVydmlzb3IuaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5o PgorCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KICNpbmNsdWRl IDx4ZW4vaW50ZXJmYWNlL2dyYW50X3RhYmxlLmg+CisKKyNpbmNsdWRlIDxh c20veGVuL2h5cGVydmlzb3IuaD4KICNpbmNsdWRlIDxhc20veGVuL2dyYW50 X3RhYmxlLmg+CiAKKyNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KKwogLyog TlJfR1JBTlRfRlJBTUVTIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv IHRoYXQgY29uZmlndXJlZCBpbiBYZW4gKi8KICNkZWZpbmUgTlJfR1JBTlRf RlJBTUVTIDQKIApAQCAtMTA3LDYgKzExMywzNyBAQCB2b2lkIGdudHRhYl9n cmFudF9mb3JlaWduX2FjY2Vzc19yZWYoZ3JhbnRfcmVmX3QgcmVmLCBkb21p ZF90IGRvbWlkLAogdm9pZCBnbnR0YWJfZ3JhbnRfZm9yZWlnbl90cmFuc2Zl cl9yZWYoZ3JhbnRfcmVmX3QsIGRvbWlkX3QgZG9taWQsCiAJCQkJICAgICAg IHVuc2lnbmVkIGxvbmcgcGZuKTsKIAorc3RhdGljIGlubGluZSB2b2lkCitn bnR0YWJfc2V0X21hcF9vcChzdHJ1Y3QgZ250dGFiX21hcF9ncmFudF9yZWYg Km1hcCwgcGh5c19hZGRyX3QgYWRkciwKKwkJICB1aW50MzJfdCBmbGFncywg Z3JhbnRfcmVmX3QgcmVmLCBkb21pZF90IGRvbWlkKQoreworCWlmIChmbGFn cyAmIEdOVE1BUF9jb250YWluc19wdGUpCisJCW1hcC0+aG9zdF9hZGRyID0g YWRkcjsKKwllbHNlIGlmICh4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJh bnNsYXRlZF9waHlzbWFwKSkKKwkJbWFwLT5ob3N0X2FkZHIgPSBfX3BhKGFk ZHIpOworCWVsc2UKKwkJbWFwLT5ob3N0X2FkZHIgPSBhZGRyOworCisJbWFw LT5mbGFncyA9IGZsYWdzOworCW1hcC0+cmVmID0gcmVmOworCW1hcC0+ZG9t ID0gZG9taWQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorZ250dGFiX3Nl dF91bm1hcF9vcChzdHJ1Y3QgZ250dGFiX3VubWFwX2dyYW50X3JlZiAqdW5t YXAsIHBoeXNfYWRkcl90IGFkZHIsCisJCSAgICB1aW50MzJfdCBmbGFncywg Z3JhbnRfaGFuZGxlX3QgaGFuZGxlKQoreworCWlmIChmbGFncyAmIEdOVE1B UF9jb250YWluc19wdGUpCisJCXVubWFwLT5ob3N0X2FkZHIgPSBhZGRyOwor CWVsc2UgaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVk X3BoeXNtYXApKQorCQl1bm1hcC0+aG9zdF9hZGRyID0gX19wYShhZGRyKTsK KwllbHNlCisJCXVubWFwLT5ob3N0X2FkZHIgPSBhZGRyOworCisJdW5tYXAt PmhhbmRsZSA9IGhhbmRsZTsKKwl1bm1hcC0+ZGV2X2J1c19hZGRyID0gMDsK K30KKwogaW50IGFyY2hfZ250dGFiX21hcF9zaGFyZWQodW5zaWduZWQgbG9u ZyAqZnJhbWVzLCB1bnNpZ25lZCBsb25nIG5yX2dmcmFtZXMsCiAJCQkgICB1 bnNpZ25lZCBsb25nIG1heF9ucl9nZnJhbWVzLAogCQkJICAgc3RydWN0IGdy YW50X2VudHJ5ICoqX19zaGFyZWQpOwotLSAKMS43LjMuMgoKCkZyb20gNTYz ODU1NjBkNmQ4ZmQ0Yzg5YzRmMzI4ZDNmZjBlY2M5YzQ0YzUyZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2VyZCBIb2ZmbWFubiA8a3JheGVs QHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMyBNYXIgMjAwOSAxMjoyNzo1NSAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjFdIHhlbi9nbnRkZXY6IGFsbG93 IHVzZXJtb2RlIHRvIG1hcCBncmFudGVkIHBhZ2VzCgpUaGUgZ250ZGV2IGRy aXZlciBhbGxvd3MgdXNlcm1vZGUgdG8gbWFwIGdyYW50ZWQgcGFnZXMgZnJv bSBvdGhlcgpkb21haW5zLiAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBp bXBsZW1lbnQgYSBYZW4gYmFja2VuZCBkcml2ZXIKaW4gdXNlciBtb2RlLgoK U2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5j b20+ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8U3RlZmFu by5TdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEpl cmVteSBGaXR6aGFyZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4 LmNvbT4KLS0tCiBkcml2ZXJzL3hlbi9LY29uZmlnICB8ICAgIDcgKwogZHJp dmVycy94ZW4vTWFrZWZpbGUgfCAgICA0ICsKIGRyaXZlcnMveGVuL2dudGRl di5jIHwgIDY0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4vZ250ZGV2LmggfCAgMTE5 ICsrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3NzYgaW5zZXJ0aW9ucygr KSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3hlbi9nbnRkZXYuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVu L2dudGRldi5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vS2NvbmZpZyBi L2RyaXZlcnMveGVuL0tjb25maWcKaW5kZXggNmU2MTgwYy4uMGM2ZDJhMSAx MDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vS2NvbmZpZworKysgYi9kcml2ZXJz L3hlbi9LY29uZmlnCkBAIC02Miw2ICs2MiwxMyBAQCBjb25maWcgWEVOX1NZ U19IWVBFUlZJU09SCiAJIHZpcnR1YWwgZW52aXJvbm1lbnQsIC9zeXMvaHlw ZXJ2aXNvciB3aWxsIHN0aWxsIGJlIHByZXNlbnQsCiAJIGJ1dCB3aWxsIGhh dmUgbm8geGVuIGNvbnRlbnRzLgogCitjb25maWcgWEVOX0dOVERFVgorCXRy aXN0YXRlICJ1c2Vyc3BhY2UgZ3JhbnQgYWNjZXNzIGRldmljZSBkcml2ZXIi CisJZGVwZW5kcyBvbiBYRU4KKwlzZWxlY3QgTU1VX05PVElGSUVSCisJaGVs cAorCSAgQWxsb3dzIHVzZXJzcGFjZSBwcm9jZXNzZXMgdXNlIGdyYW50cy4K KwkgIAogY29uZmlnIFhFTl9QTEFURk9STV9QQ0kKIAl0cmlzdGF0ZSAieGVu IHBsYXRmb3JtIHBjaSBkZXZpY2UgZHJpdmVyIgogCWRlcGVuZHMgb24gWEVO X1BWSFZNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9NYWtlZmlsZSBiL2Ry aXZlcnMveGVuL01ha2VmaWxlCmluZGV4IGViOGE3OGQuLjdlZDg0MTggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMveGVuL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv eGVuL01ha2VmaWxlCkBAIC05LDggKzksMTIgQEAgb2JqLSQoQ09ORklHX0hP VFBMVUdfQ1BVKQkrPSBjcHVfaG90cGx1Zy5vCiBvYmotJChDT05GSUdfWEVO X1hFTkNPTU0pCSs9IHhlbmNvbW0ubwogb2JqLSQoQ09ORklHX1hFTl9CQUxM T09OKQkrPSBiYWxsb29uLm8KIG9iai0kKENPTkZJR19YRU5fREVWX0VWVENI TikJKz0gZXZ0Y2huLm8KK29iai0kKENPTkZJR19YRU5fR05UREVWKQkrPSB4 ZW4tZ250ZGV2Lm8KIG9iai0kKENPTkZJR19YRU5GUykJCSs9IHhlbmZzLwog b2JqLSQoQ09ORklHX1hFTl9TWVNfSFlQRVJWSVNPUikJKz0gc3lzLWh5cGVy dmlzb3Iubwogb2JqLSQoQ09ORklHX1hFTl9QTEFURk9STV9QQ0kpCSs9IHBs YXRmb3JtLXBjaS5vCiBvYmotJChDT05GSUdfU1dJT1RMQl9YRU4pCSs9IHN3 aW90bGIteGVuLm8KIG9iai0kKENPTkZJR19YRU5fRE9NMCkJCSs9IHBjaS5v CisKK3hlbi1nbnRkZXYteQkJCQk6PSBnbnRkZXYubworCmRpZmYgLS1naXQg YS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2dudGRldi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ODk4ZDQK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAt MCwwICsxLDY0NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogZ250ZGV2LmMKKyAqCisgKiBEZXZpY2UgZm9yIGFjY2Vzc2lu ZyAoaW4gdXNlci1zcGFjZSkgcGFnZXMgdGhhdCBoYXZlIGJlZW4gZ3JhbnRl ZCBieSBvdGhlcgorICogZG9tYWlucy4KKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMDYtMjAwNywgRCBHIE11cnJheS4KKyAqICAgICAgICAgICAoYykgMjAw OSBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KKyAqCisgKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwg NTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTEx LTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K KyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9p bml0Lmg+CisjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1 ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNs dWRlIDxsaW51eC9tbWFuLmg+CisjaW5jbHVkZSA8bGludXgvbW11X25vdGlm aWVyLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxs aW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNp bmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KKworI2luY2x1ZGUgPHhlbi94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4v Z3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZ250ZGV2Lmg+CisjaW5j bHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CisjaW5jbHVkZSA8YXNtL3hl bi9oeXBlcmNhbGwuaD4KKyNpbmNsdWRlIDxhc20veGVuL3BhZ2UuaD4KKwor TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FVVEhPUigiRGVyZWsg Ry4gTXVycmF5IDxEZXJlay5NdXJyYXlAY2wuY2FtLmFjLnVrPiwgIgorCSAg ICAgICJHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4iKTsKK01P RFVMRV9ERVNDUklQVElPTigiVXNlci1zcGFjZSBncmFudGVkIHBhZ2UgYWNj ZXNzIGRyaXZlciIpOworCitzdGF0aWMgaW50IGRlYnVnID0gMDsKK21vZHVs ZV9wYXJhbShkZWJ1ZywgaW50LCAwNjQ0KTsKK3N0YXRpYyBpbnQgbGltaXQg PSAxMDI0OworbW9kdWxlX3BhcmFtKGxpbWl0LCBpbnQsIDA2NDQpOworCitz dHJ1Y3QgZ250ZGV2X3ByaXYgeworCXN0cnVjdCBsaXN0X2hlYWQgbWFwczsK Kwl1aW50MzJfdCB1c2VkOworCXVpbnQzMl90IGxpbWl0OworCXNwaW5sb2Nr X3QgbG9jazsKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwlzdHJ1Y3QgbW11 X25vdGlmaWVyIG1uOworfTsKKworc3RydWN0IGdyYW50X21hcCB7CisJc3Ry dWN0IGxpc3RfaGVhZCBuZXh0OworCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJp djsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlpbnQgaW5kZXg7 CisJaW50IGNvdW50OworCWludCBmbGFnczsKKwlpbnQgaXNfbWFwcGVkOwor CXN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfcmVmICpncmFudHM7CisJc3Ry dWN0IGdudHRhYl9tYXBfZ3JhbnRfcmVmICAgKm1hcF9vcHM7CisJc3RydWN0 IGdudHRhYl91bm1hcF9ncmFudF9yZWYgKnVubWFwX29wczsKK307CisKKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCitzdGF0aWMgdm9pZCBnbnRk ZXZfcHJpbnRfbWFwcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCisJCQkg ICAgICBjaGFyICp0ZXh0LCBpbnQgdGV4dF9pbmRleCkKK3sKKwlzdHJ1Y3Qg Z3JhbnRfbWFwICptYXA7CisKKwlwcmludGsoIiVzOiBtYXBzIGxpc3QgKHBy aXYgJXAsIHVzYWdlICVkLyVkKVxuIiwKKwkgICAgICAgX19GVU5DVElPTl9f LCBwcml2LCBwcml2LT51c2VkLCBwcml2LT5saW1pdCk7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtYXAsICZwcml2LT5tYXBzLCBuZXh0KQorCQlwcmludGso IiAgaW5kZXggJTJkLCBjb3VudCAlMmQgJXNcbiIsCisJCSAgICAgICBtYXAt PmluZGV4LCBtYXAtPmNvdW50LAorCQkgICAgICAgbWFwLT5pbmRleCA9PSB0 ZXh0X2luZGV4ICYmIHRleHQgPyB0ZXh0IDogIiIpOworfQorCitzdGF0aWMg c3RydWN0IGdyYW50X21hcCAqZ250ZGV2X2FsbG9jX21hcChzdHJ1Y3QgZ250 ZGV2X3ByaXYgKnByaXYsIGludCBjb3VudCkKK3sKKwlzdHJ1Y3QgZ3JhbnRf bWFwICphZGQ7CisKKwlhZGQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZ3Jh bnRfbWFwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKE5VTEwgPT0gYWRkKQorCQly ZXR1cm4gTlVMTDsKKworCWFkZC0+Z3JhbnRzICAgID0ga3phbGxvYyhzaXpl b2YoYWRkLT5ncmFudHNbMF0pICAgICogY291bnQsIEdGUF9LRVJORUwpOwor CWFkZC0+bWFwX29wcyAgID0ga3phbGxvYyhzaXplb2YoYWRkLT5tYXBfb3Bz WzBdKSAgICogY291bnQsIEdGUF9LRVJORUwpOworCWFkZC0+dW5tYXBfb3Bz ID0ga3phbGxvYyhzaXplb2YoYWRkLT51bm1hcF9vcHNbMF0pICogY291bnQs IEdGUF9LRVJORUwpOworCWlmIChOVUxMID09IGFkZC0+Z3JhbnRzICB8fAor CSAgICBOVUxMID09IGFkZC0+bWFwX29wcyB8fAorCSAgICBOVUxMID09IGFk ZC0+dW5tYXBfb3BzKQorCQlnb3RvIGVycjsKKworCWFkZC0+aW5kZXggPSAw OworCWFkZC0+Y291bnQgPSBjb3VudDsKKwlhZGQtPnByaXYgID0gcHJpdjsK KworCWlmIChhZGQtPmNvdW50ICsgcHJpdi0+dXNlZCA+IHByaXYtPmxpbWl0 KQorCQlnb3RvIGVycjsKKworCXJldHVybiBhZGQ7CisKK2VycjoKKwlrZnJl ZShhZGQtPmdyYW50cyk7CisJa2ZyZWUoYWRkLT5tYXBfb3BzKTsKKwlrZnJl ZShhZGQtPnVubWFwX29wcyk7CisJa2ZyZWUoYWRkKTsKKwlyZXR1cm4gTlVM TDsKK30KKworc3RhdGljIHZvaWQgZ250ZGV2X2FkZF9tYXAoc3RydWN0IGdu dGRldl9wcml2ICpwcml2LCBzdHJ1Y3QgZ3JhbnRfbWFwICphZGQpCit7CisJ c3RydWN0IGdyYW50X21hcCAqbWFwOworCisJbGlzdF9mb3JfZWFjaF9lbnRy eShtYXAsICZwcml2LT5tYXBzLCBuZXh0KSB7CisJCWlmIChhZGQtPmluZGV4 ICsgYWRkLT5jb3VudCA8IG1hcC0+aW5kZXgpIHsKKwkJCWxpc3RfYWRkX3Rh aWwoJmFkZC0+bmV4dCwgJm1hcC0+bmV4dCk7CisJCQlnb3RvIGRvbmU7CisJ CX0KKwkJYWRkLT5pbmRleCA9IG1hcC0+aW5kZXggKyBtYXAtPmNvdW50Owor CX0KKwlsaXN0X2FkZF90YWlsKCZhZGQtPm5leHQsICZwcml2LT5tYXBzKTsK KworZG9uZToKKwlwcml2LT51c2VkICs9IGFkZC0+Y291bnQ7CisJaWYgKGRl YnVnKQorCQlnbnRkZXZfcHJpbnRfbWFwcyhwcml2LCAiW25ld10iLCBhZGQt PmluZGV4KTsKK30KKworc3RhdGljIHN0cnVjdCBncmFudF9tYXAgKmdudGRl dl9maW5kX21hcF9pbmRleChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGlu dCBpbmRleCwKKwkJCQkJICAgICAgIGludCBjb3VudCkKK3sKKwlzdHJ1Y3Qg Z3JhbnRfbWFwICptYXA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwg JnByaXYtPm1hcHMsIG5leHQpIHsKKwkJaWYgKG1hcC0+aW5kZXggIT0gaW5k ZXgpCisJCQljb250aW51ZTsKKwkJaWYgKG1hcC0+Y291bnQgIT0gY291bnQp CisJCQljb250aW51ZTsKKwkJcmV0dXJuIG1hcDsKKwl9CisJcmV0dXJuIE5V TEw7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ3JhbnRfbWFwICpnbnRkZXZfZmlu ZF9tYXBfdmFkZHIoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAorCQkJCQkg ICAgICAgdW5zaWduZWQgbG9uZyB2YWRkcikKK3sKKwlzdHJ1Y3QgZ3JhbnRf bWFwICptYXA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYt Pm1hcHMsIG5leHQpIHsKKwkJaWYgKCFtYXAtPnZtYSkKKwkJCWNvbnRpbnVl OworCQlpZiAodmFkZHIgPCBtYXAtPnZtYS0+dm1fc3RhcnQpCisJCQljb250 aW51ZTsKKwkJaWYgKHZhZGRyID49IG1hcC0+dm1hLT52bV9lbmQpCisJCQlj b250aW51ZTsKKwkJcmV0dXJuIG1hcDsKKwl9CisJcmV0dXJuIE5VTEw7Cit9 CisKK3N0YXRpYyBpbnQgZ250ZGV2X2RlbF9tYXAoc3RydWN0IGdyYW50X21h cCAqbWFwKQoreworCWludCBpOworCisJaWYgKG1hcC0+dm1hKQorCQlyZXR1 cm4gLUVCVVNZOworCWZvciAoaSA9IDA7IGkgPCBtYXAtPmNvdW50OyBpKysp CisJCWlmIChtYXAtPnVubWFwX29wc1tpXS5oYW5kbGUpCisJCQlyZXR1cm4g LUVCVVNZOworCisJbWFwLT5wcml2LT51c2VkIC09IG1hcC0+Y291bnQ7CisJ bGlzdF9kZWwoJm1hcC0+bmV4dCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyB2b2lkIGdudGRldl9mcmVlX21hcChzdHJ1Y3QgZ3JhbnRfbWFwICptYXAp Cit7CisJaWYgKCFtYXApCisJCXJldHVybjsKKwlrZnJlZShtYXAtPmdyYW50 cyk7CisJa2ZyZWUobWFwLT5tYXBfb3BzKTsKKwlrZnJlZShtYXAtPnVubWFw X29wcyk7CisJa2ZyZWUobWFwKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCisKK3N0YXRpYyBpbnQgZmluZF9ncmFudF9wdGVzKHB0ZV90 ICpwdGUsIHBndGFibGVfdCB0b2tlbiwgdW5zaWduZWQgbG9uZyBhZGRyLCB2 b2lkICpkYXRhKQoreworCXN0cnVjdCBncmFudF9tYXAgKm1hcCA9IGRhdGE7 CisJdW5zaWduZWQgaW50IHBnbnIgPSAoYWRkciAtIG1hcC0+dm1hLT52bV9z dGFydCkgPj4gUEFHRV9TSElGVDsKKwl1NjQgcHRlX21hZGRyOworCisJQlVH X09OKHBnbnIgPj0gbWFwLT5jb3VudCk7CisJcHRlX21hZGRyICA9ICh1NjQp cGZuX3RvX21mbihwYWdlX3RvX3Bmbih0b2tlbikpIDw8IFBBR0VfU0hJRlQ7 CisJcHRlX21hZGRyICs9ICh1bnNpZ25lZCBsb25nKXB0ZSAmIH5QQUdFX01B U0s7CisJZ250dGFiX3NldF9tYXBfb3AoJm1hcC0+bWFwX29wc1twZ25yXSwg cHRlX21hZGRyLCBtYXAtPmZsYWdzLAorCQkJICBtYXAtPmdyYW50c1twZ25y XS5yZWYsCisJCQkgIG1hcC0+Z3JhbnRzW3BnbnJdLmRvbWlkKTsKKwlnbnR0 YWJfc2V0X3VubWFwX29wKCZtYXAtPnVubWFwX29wc1twZ25yXSwgcHRlX21h ZGRyLCBtYXAtPmZsYWdzLAorCQkJICAgIDAgLyogaGFuZGxlICovKTsKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtYXBfZ3JhbnRfcGFnZXMoc3Ry dWN0IGdyYW50X21hcCAqbWFwKQoreworCWludCBpLCBlcnIgPSAwOworCisJ aWYgKGRlYnVnKQorCQlwcmludGsoIiVzOiBtYXAgJWQrJWRcbiIsIF9fRlVO Q1RJT05fXywgbWFwLT5pbmRleCwgbWFwLT5jb3VudCk7CisJZXJyID0gSFlQ RVJWSVNPUl9ncmFudF90YWJsZV9vcChHTlRUQUJPUF9tYXBfZ3JhbnRfcmVm LAorCQkJCQltYXAtPm1hcF9vcHMsIG1hcC0+Y291bnQpOworCWlmIChXQVJO X09OKGVycikpCisJCXJldHVybiBlcnI7CisKKwlmb3IgKGkgPSAwOyBpIDwg bWFwLT5jb3VudDsgaSsrKSB7CisJCWlmIChtYXAtPm1hcF9vcHNbaV0uc3Rh dHVzKQorCQkJZXJyID0gLUVJTlZBTDsKKwkJbWFwLT51bm1hcF9vcHNbaV0u aGFuZGxlID0gbWFwLT5tYXBfb3BzW2ldLmhhbmRsZTsKKwl9CisJcmV0dXJu IGVycjsKK30KKworc3RhdGljIGludCB1bm1hcF9ncmFudF9wYWdlcyhzdHJ1 Y3QgZ3JhbnRfbWFwICptYXAsIGludCBvZmZzZXQsIGludCBwYWdlcykKK3sK KwlpbnQgaSwgZXJyID0gMDsKKworCWlmIChkZWJ1ZykKKwkJcHJpbnRrKCIl czogbWFwICVkKyVkIFslZCslZF1cbiIsIF9fRlVOQ1RJT05fXywKKwkJICAg ICAgIG1hcC0+aW5kZXgsIG1hcC0+Y291bnQsIG9mZnNldCwgcGFnZXMpOwor CWVyciA9IEhZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3AoR05UVEFCT1BfdW5t YXBfZ3JhbnRfcmVmLAorCQkJCQltYXAtPnVubWFwX29wcyArIG9mZnNldCwg cGFnZXMpOworCWlmIChXQVJOX09OKGVycikpCisJCXJldHVybiBlcnI7CisK Kwlmb3IgKGkgPSAwOyBpIDwgcGFnZXM7IGkrKykgeworCQlpZiAobWFwLT51 bm1hcF9vcHNbb2Zmc2V0K2ldLnN0YXR1cykKKwkJCWVyciA9IC1FSU5WQUw7 CisJCW1hcC0+dW5tYXBfb3BzW29mZnNldCtpXS5oYW5kbGUgPSAwOworCX0K KwlyZXR1cm4gZXJyOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Ki8KKworc3RhdGljIHZvaWQgZ250ZGV2X3ZtYV9jbG9zZShzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgZ3JhbnRfbWFwICptYXAg PSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKKworCWlmIChkZWJ1ZykKKwkJcHJp bnRrKCIlc1xuIiwgX19GVU5DVElPTl9fKTsKKwltYXAtPmlzX21hcHBlZCA9 IDA7CisJbWFwLT52bWEgPSBOVUxMOworCXZtYS0+dm1fcHJpdmF0ZV9kYXRh ID0gTlVMTDsKK30KKworc3RhdGljIGludCBnbnRkZXZfdm1hX2ZhdWx0KHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZt ZikKK3sKKwlpZiAoZGVidWcpCisJCXByaW50aygiJXM6IHZhZGRyICVwLCBw Z29mZiAlbGQgKHNob3VsZG4ndCBoYXBwZW4pXG4iLAorCQkgICAgICAgX19G VU5DVElPTl9fLCB2bWYtPnZpcnR1YWxfYWRkcmVzcywgdm1mLT5wZ29mZik7 CisJdm1mLT5mbGFncyA9IFZNX0ZBVUxUX0VSUk9SOworCXJldHVybiAwOwor fQorCitzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGdudGRl dl92bW9wcyA9IHsKKwkuY2xvc2UgPSBnbnRkZXZfdm1hX2Nsb3NlLAorCS5m YXVsdCA9IGdudGRldl92bWFfZmF1bHQsCit9OworCisvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KKworc3RhdGljIHZvaWQgbW5faW52bF9yYW5nZV9z dGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCQlzdHJ1Y3QgbW1f c3RydWN0ICptbSwKKwkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l ZCBsb25nIGVuZCkKK3sKKwlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBj b250YWluZXJfb2YobW4sIHN0cnVjdCBnbnRkZXZfcHJpdiwgbW4pOworCXN0 cnVjdCBncmFudF9tYXAgKm1hcDsKKwl1bnNpZ25lZCBsb25nIG1zdGFydCwg bWVuZDsKKwlpbnQgZXJyOworCisJc3Bpbl9sb2NrKCZwcml2LT5sb2NrKTsK KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYtPm1hcHMsIG5leHQp IHsKKwkJaWYgKCFtYXAtPnZtYSkKKwkJCWNvbnRpbnVlOworCQlpZiAoIW1h cC0+aXNfbWFwcGVkKQorCQkJY29udGludWU7CisJCWlmIChtYXAtPnZtYS0+ dm1fc3RhcnQgPj0gZW5kKQorCQkJY29udGludWU7CisJCWlmIChtYXAtPnZt YS0+dm1fZW5kIDw9IHN0YXJ0KQorCQkJY29udGludWU7CisJCW1zdGFydCA9 IG1heChzdGFydCwgbWFwLT52bWEtPnZtX3N0YXJ0KTsKKwkJbWVuZCAgID0g bWluKGVuZCwgICBtYXAtPnZtYS0+dm1fZW5kKTsKKwkJaWYgKGRlYnVnKQor CQkJcHJpbnRrKCIlczogbWFwICVkKyVkICglbHggJWx4KSwgcmFuZ2UgJWx4 ICVseCwgbXJhbmdlICVseCAlbHhcbiIsCisJCQkgICAgICAgX19GVU5DVElP Tl9fLCBtYXAtPmluZGV4LCBtYXAtPmNvdW50LAorCQkJICAgICAgIG1hcC0+ dm1hLT52bV9zdGFydCwgbWFwLT52bWEtPnZtX2VuZCwKKwkJCSAgICAgICBz dGFydCwgZW5kLCBtc3RhcnQsIG1lbmQpOworCQllcnIgPSB1bm1hcF9ncmFu dF9wYWdlcyhtYXAsCisJCQkJCShtc3RhcnQgLSBtYXAtPnZtYS0+dm1fc3Rh cnQpID4+IFBBR0VfU0hJRlQsCisJCQkJCShtZW5kIC0gbXN0YXJ0KSA+PiBQ QUdFX1NISUZUKTsKKwkJV0FSTl9PTihlcnIpOworCX0KKwlzcGluX3VubG9j aygmcHJpdi0+bG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIG1uX2ludmxfcGFn ZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCSBzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwKKwkJCSB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisJbW5f aW52bF9yYW5nZV9zdGFydChtbiwgbW0sIGFkZHJlc3MsIGFkZHJlc3MgKyBQ QUdFX1NJWkUpOworfQorCitzdGF0aWMgdm9pZCBtbl9yZWxlYXNlKHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAorCQkgICAgICAgc3RydWN0IG1tX3N0cnVj dCAqbW0pCit7CisJc3RydWN0IGdudGRldl9wcml2ICpwcml2ID0gY29udGFp bmVyX29mKG1uLCBzdHJ1Y3QgZ250ZGV2X3ByaXYsIG1uKTsKKwlzdHJ1Y3Qg Z3JhbnRfbWFwICptYXA7CisJaW50IGVycjsKKworCXNwaW5fbG9jaygmcHJp di0+bG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShtYXAsICZwcml2LT5t YXBzLCBuZXh0KSB7CisJCWlmICghbWFwLT52bWEpCisJCQljb250aW51ZTsK KwkJaWYgKGRlYnVnKQorCQkJcHJpbnRrKCIlczogbWFwICVkKyVkICglbHgg JWx4KVxuIiwKKwkJCSAgICAgICBfX0ZVTkNUSU9OX18sIG1hcC0+aW5kZXgs IG1hcC0+Y291bnQsCisJCQkgICAgICAgbWFwLT52bWEtPnZtX3N0YXJ0LCBt YXAtPnZtYS0+dm1fZW5kKTsKKwkJZXJyID0gdW5tYXBfZ3JhbnRfcGFnZXMo bWFwLCAwLCBtYXAtPmNvdW50KTsKKwkJV0FSTl9PTihlcnIpOworCX0KKwlz cGluX3VubG9jaygmcHJpdi0+bG9jayk7Cit9CisKK3N0cnVjdCBtbXVfbm90 aWZpZXJfb3BzIGdudGRldl9tbXVfb3BzID0geworCS5yZWxlYXNlICAgICAg ICAgICAgICAgID0gbW5fcmVsZWFzZSwKKwkuaW52YWxpZGF0ZV9wYWdlICAg ICAgICA9IG1uX2ludmxfcGFnZSwKKwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFy dCA9IG1uX2ludmxfcmFuZ2Vfc3RhcnQsCit9OworCisvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KKworc3RhdGljIGludCBnbnRkZXZfb3BlbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKK3sKKwlzdHJ1 Y3QgZ250ZGV2X3ByaXYgKnByaXY7CisKKwlwcml2ID0ga3phbGxvYyhzaXpl b2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVy biAtRU5PTUVNOworCisJSU5JVF9MSVNUX0hFQUQoJnByaXYtPm1hcHMpOwor CXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKKwlwcml2LT5saW1pdCA9 IGxpbWl0OworCisJcHJpdi0+bW0gPSBnZXRfdGFza19tbShjdXJyZW50KTsK KwlpZiAoIXByaXYtPm1tKSB7CisJCWtmcmVlKHByaXYpOworCQlyZXR1cm4g LUVOT01FTTsKKwl9CisJcHJpdi0+bW4ub3BzID0gJmdudGRldl9tbXVfb3Bz OworCW1tdV9ub3RpZmllcl9yZWdpc3RlcigmcHJpdi0+bW4sIHByaXYtPm1t KTsKKwltbXB1dChwcml2LT5tbSk7CisKKwlmbGlwLT5wcml2YXRlX2RhdGEg PSBwcml2OworCWlmIChkZWJ1ZykKKwkJcHJpbnRrKCIlczogcHJpdiAlcFxu IiwgX19GVU5DVElPTl9fLCBwcml2KTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IGdudGRldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUs IHN0cnVjdCBmaWxlICpmbGlwKQoreworCXN0cnVjdCBnbnRkZXZfcHJpdiAq cHJpdiA9IGZsaXAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZ3JhbnRfbWFw ICptYXA7CisJaW50IGVycjsKKworCWlmIChkZWJ1ZykKKwkJcHJpbnRrKCIl czogcHJpdiAlcFxuIiwgX19GVU5DVElPTl9fLCBwcml2KTsKKworCXNwaW5f bG9jaygmcHJpdi0+bG9jayk7CisJd2hpbGUgKCFsaXN0X2VtcHR5KCZwcml2 LT5tYXBzKSkgeworCQltYXAgPSBsaXN0X2VudHJ5KHByaXYtPm1hcHMubmV4 dCwgc3RydWN0IGdyYW50X21hcCwgbmV4dCk7CisJCWVyciA9IGdudGRldl9k ZWxfbWFwKG1hcCk7CisJCWlmIChXQVJOX09OKGVycikpCisJCQlnbnRkZXZf ZnJlZV9tYXAobWFwKTsKKworCX0KKwlzcGluX3VubG9jaygmcHJpdi0+bG9j ayk7CisKKwltbXVfbm90aWZpZXJfdW5yZWdpc3RlcigmcHJpdi0+bW4sIHBy aXYtPm1tKTsKKwlrZnJlZShwcml2KTsKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGxvbmcgZ250ZGV2X2lvY3RsX21hcF9ncmFudF9yZWYoc3RydWN0IGdu dGRldl9wcml2ICpwcml2LAorCQkJCSAgICAgICBzdHJ1Y3QgaW9jdGxfZ250 ZGV2X21hcF9ncmFudF9yZWYgX191c2VyICp1KQoreworCXN0cnVjdCBpb2N0 bF9nbnRkZXZfbWFwX2dyYW50X3JlZiBvcDsKKwlzdHJ1Y3QgZ3JhbnRfbWFw ICptYXA7CisJaW50IGVycjsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmb3As IHUsIHNpemVvZihvcCkpICE9IDApCisJCXJldHVybiAtRUZBVUxUOworCWlm IChkZWJ1ZykKKwkJcHJpbnRrKCIlczogcHJpdiAlcCwgYWRkICVkXG4iLCBf X0ZVTkNUSU9OX18sIHByaXYsCisJCSAgICAgICBvcC5jb3VudCk7CisJaWYg KHVubGlrZWx5KG9wLmNvdW50IDw9IDApKQorCQlyZXR1cm4gLUVJTlZBTDsK KwlpZiAodW5saWtlbHkob3AuY291bnQgPiBwcml2LT5saW1pdCkpCisJCXJl dHVybiAtRUlOVkFMOworCisJZXJyID0gLUVOT01FTTsKKwltYXAgPSBnbnRk ZXZfYWxsb2NfbWFwKHByaXYsIG9wLmNvdW50KTsKKwlpZiAoIW1hcCkKKwkJ cmV0dXJuIGVycjsKKwlpZiAoY29weV9mcm9tX3VzZXIobWFwLT5ncmFudHMs ICZ1LT5yZWZzLAorCQkJICAgc2l6ZW9mKG1hcC0+Z3JhbnRzWzBdKSAqIG9w LmNvdW50KSAhPSAwKSB7CisJCWdudGRldl9mcmVlX21hcChtYXApOworCQly ZXR1cm4gZXJyOworCX0KKworCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7CisJ Z250ZGV2X2FkZF9tYXAocHJpdiwgbWFwKTsKKwlvcC5pbmRleCA9IG1hcC0+ aW5kZXggPDwgUEFHRV9TSElGVDsKKwlzcGluX3VubG9jaygmcHJpdi0+bG9j ayk7CisKKwlpZiAoY29weV90b191c2VyKHUsICZvcCwgc2l6ZW9mKG9wKSkg IT0gMCkgeworCQlzcGluX2xvY2soJnByaXYtPmxvY2spOworCQlnbnRkZXZf ZGVsX21hcChtYXApOworCQlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7CisJ CWdudGRldl9mcmVlX21hcChtYXApOworCQlyZXR1cm4gZXJyOworCX0KKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGxvbmcgZ250ZGV2X2lvY3RsX3VubWFw X2dyYW50X3JlZihzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCisJCQkJCSBz dHJ1Y3QgaW9jdGxfZ250ZGV2X3VubWFwX2dyYW50X3JlZiBfX3VzZXIgKnUp Cit7CisJc3RydWN0IGlvY3RsX2dudGRldl91bm1hcF9ncmFudF9yZWYgb3A7 CisJc3RydWN0IGdyYW50X21hcCAqbWFwOworCWludCBlcnIgPSAtRUlOVkFM OworCisJaWYgKGNvcHlfZnJvbV91c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkg IT0gMCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJaWYgKGRlYnVnKQorCQlwcmlu dGsoIiVzOiBwcml2ICVwLCBkZWwgJWQrJWRcbiIsIF9fRlVOQ1RJT05fXywg cHJpdiwKKwkJICAgICAgIChpbnQpb3AuaW5kZXgsIChpbnQpb3AuY291bnQp OworCisJc3Bpbl9sb2NrKCZwcml2LT5sb2NrKTsKKwltYXAgPSBnbnRkZXZf ZmluZF9tYXBfaW5kZXgocHJpdiwgb3AuaW5kZXggPj4gUEFHRV9TSElGVCwg b3AuY291bnQpOworCWlmIChtYXApCisJCWVyciA9IGdudGRldl9kZWxfbWFw KG1hcCk7CisJc3Bpbl91bmxvY2soJnByaXYtPmxvY2spOworCWlmICghZXJy KQorCQlnbnRkZXZfZnJlZV9tYXAobWFwKTsKKwlyZXR1cm4gZXJyOworfQor CitzdGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfZ2V0X29mZnNldF9mb3JfdmFk ZHIoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAorCQkJCQkgICAgICBzdHJ1 Y3QgaW9jdGxfZ250ZGV2X2dldF9vZmZzZXRfZm9yX3ZhZGRyIF9fdXNlciAq dSkKK3sKKwlzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dldF9vZmZzZXRfZm9yX3Zh ZGRyIG9wOworCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKworCWlmIChjb3B5 X2Zyb21fdXNlcigmb3AsIHUsIHNpemVvZihvcCkpICE9IDApCisJCXJldHVy biAtRUZBVUxUOworCWlmIChkZWJ1ZykKKwkJcHJpbnRrKCIlczogcHJpdiAl cCwgb2Zmc2V0IGZvciB2YWRkciAlbHhcbiIsIF9fRlVOQ1RJT05fXywgcHJp diwKKwkJICAgICAgICh1bnNpZ25lZCBsb25nKW9wLnZhZGRyKTsKKworCXNw aW5fbG9jaygmcHJpdi0+bG9jayk7CisJbWFwID0gZ250ZGV2X2ZpbmRfbWFw X3ZhZGRyKHByaXYsIG9wLnZhZGRyKTsKKwlpZiAobWFwID09IE5VTEwgfHwK KwkgICAgbWFwLT52bWEtPnZtX3N0YXJ0ICE9IG9wLnZhZGRyKSB7CisJCXNw aW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCW9wLm9mZnNldCA9IG1hcC0+aW5kZXggPDwgUEFHRV9TSElGVDsKKwlv cC5jb3VudCA9IG1hcC0+Y291bnQ7CisJc3Bpbl91bmxvY2soJnByaXYtPmxv Y2spOworCisJaWYgKGNvcHlfdG9fdXNlcih1LCAmb3AsIHNpemVvZihvcCkp ICE9IDApCisJCXJldHVybiAtRUZBVUxUOworCXJldHVybiAwOworfQorCitz dGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfc2V0X21heF9ncmFudHMoc3RydWN0 IGdudGRldl9wcml2ICpwcml2LAorCQkJCQlzdHJ1Y3QgaW9jdGxfZ250ZGV2 X3NldF9tYXhfZ3JhbnRzIF9fdXNlciAqdSkKK3sKKwlzdHJ1Y3QgaW9jdGxf Z250ZGV2X3NldF9tYXhfZ3JhbnRzIG9wOworCisJaWYgKGNvcHlfZnJvbV91 c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0gMCkKKwkJcmV0dXJuIC1FRkFV TFQ7CisJaWYgKGRlYnVnKQorCQlwcmludGsoIiVzOiBwcml2ICVwLCBsaW1p dCAlZFxuIiwgX19GVU5DVElPTl9fLCBwcml2LCBvcC5jb3VudCk7CisJaWYg KG9wLmNvdW50ID4gbGltaXQpCisJCXJldHVybiAtRUlOVkFMOworCisJc3Bp bl9sb2NrKCZwcml2LT5sb2NrKTsKKwlwcml2LT5saW1pdCA9IG9wLmNvdW50 OworCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGxvbmcgZ250ZGV2X2lvY3RsKHN0cnVjdCBmaWxlICpmbGlw LAorCQkJIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQor eworCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiA9IGZsaXAtPnByaXZhdGVf ZGF0YTsKKwl2b2lkIF9fdXNlciAqcHRyID0gKHZvaWQgX191c2VyICopYXJn OworCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIElPQ1RMX0dOVERFVl9NQVBf R1JBTlRfUkVGOgorCQlyZXR1cm4gZ250ZGV2X2lvY3RsX21hcF9ncmFudF9y ZWYocHJpdiwgcHRyKTsKKworCWNhc2UgSU9DVExfR05UREVWX1VOTUFQX0dS QU5UX1JFRjoKKwkJcmV0dXJuIGdudGRldl9pb2N0bF91bm1hcF9ncmFudF9y ZWYocHJpdiwgcHRyKTsKKworCWNhc2UgSU9DVExfR05UREVWX0dFVF9PRkZT RVRfRk9SX1ZBRERSOgorCQlyZXR1cm4gZ250ZGV2X2lvY3RsX2dldF9vZmZz ZXRfZm9yX3ZhZGRyKHByaXYsIHB0cik7CisKKwljYXNlIElPQ1RMX0dOVERF Vl9TRVRfTUFYX0dSQU5UUzoKKwkJcmV0dXJuIGdudGRldl9pb2N0bF9zZXRf bWF4X2dyYW50cyhwcml2LCBwdHIpOworCisJZGVmYXVsdDoKKwkJaWYgKGRl YnVnKQorCQkJcHJpbnRrKCIlczogcHJpdiAlcCwgdW5rbm93biBjbWQgJXhc biIsCisJCQkgICAgICAgX19GVU5DVElPTl9fLCBwcml2LCBjbWQpOworCQly ZXR1cm4gLUVOT0lPQ1RMQ01EOworCX0KKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IGdudGRldl9tbWFwKHN0cnVjdCBmaWxlICpmbGlwLCBzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgZ250ZGV2X3By aXYgKnByaXYgPSBmbGlwLT5wcml2YXRlX2RhdGE7CisJaW50IGluZGV4ID0g dm1hLT52bV9wZ29mZjsKKwlpbnQgY291bnQgPSAodm1hLT52bV9lbmQgLSB2 bWEtPnZtX3N0YXJ0KSA+PiBQQUdFX1NISUZUOworCXN0cnVjdCBncmFudF9t YXAgKm1hcDsKKwlpbnQgZXJyID0gLUVJTlZBTDsKKworCWlmICgodm1hLT52 bV9mbGFncyAmIFZNX1dSSVRFKSAmJiAhKHZtYS0+dm1fZmxhZ3MgJiBWTV9T SEFSRUQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChkZWJ1ZykKKwkJ cHJpbnRrKCIlczogbWFwICVkKyVkIGF0ICVseCAocGdvZmYgJWx4KVxuIiwg X19GVU5DVElPTl9fLAorCQkgICAgICAgaW5kZXgsIGNvdW50LCB2bWEtPnZt X3N0YXJ0LCB2bWEtPnZtX3Bnb2ZmKTsKKworCXNwaW5fbG9jaygmcHJpdi0+ bG9jayk7CisJbWFwID0gZ250ZGV2X2ZpbmRfbWFwX2luZGV4KHByaXYsIGlu ZGV4LCBjb3VudCk7CisJaWYgKCFtYXApCisJCWdvdG8gdW5sb2NrX291dDsK KwlpZiAobWFwLT52bWEpCisJCWdvdG8gdW5sb2NrX291dDsKKwlpZiAocHJp di0+bW0gIT0gdm1hLT52bV9tbSkgeworCQlwcmludGsoIiVzOiBIdWg/IE90 aGVyIG1tP1xuIiwgX19GVU5DVElPTl9fKTsKKwkJZ290byB1bmxvY2tfb3V0 OworCX0KKworCXZtYS0+dm1fb3BzID0gJmdudGRldl92bW9wczsKKworCXZt YS0+dm1fZmxhZ3MgfD0gVk1fUkVTRVJWRUQ7CisJdm1hLT52bV9mbGFncyB8 PSBWTV9ET05UQ09QWTsKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX0RPTlRFWFBB TkQ7CisKKwl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IG1hcDsKKwltYXAtPnZt YSA9IHZtYTsKKworCW1hcC0+ZmxhZ3MgPSBHTlRNQVBfaG9zdF9tYXAgfCBH TlRNQVBfYXBwbGljYXRpb25fbWFwIHwgR05UTUFQX2NvbnRhaW5zX3B0ZTsK KwlpZiAoISh2bWEtPnZtX2ZsYWdzICYgVk1fV1JJVEUpKQorCQltYXAtPmZs YWdzIHw9IEdOVE1BUF9yZWFkb25seTsKKworCWVyciA9IGFwcGx5X3RvX3Bh Z2VfcmFuZ2Uodm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwKKwkJCQkgIHZt YS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydCwKKwkJCQkgIGZpbmRfZ3JhbnRf cHRlcywgbWFwKTsKKwlpZiAoZXJyKSB7CisJCWdvdG8gdW5sb2NrX291dDsK KwkJaWYgKGRlYnVnKQorCQkJcHJpbnRrKCIlczogZmluZF9ncmFudF9wdGVz KCkgZmFpbHVyZS5cbiIsIF9fRlVOQ1RJT05fXyk7CisJfQorCisJZXJyID0g bWFwX2dyYW50X3BhZ2VzKG1hcCk7CisJaWYgKGVycikgeworCQlnb3RvIHVu bG9ja19vdXQ7CisJCWlmIChkZWJ1ZykKKwkJCXByaW50aygiJXM6IG1hcF9n cmFudF9wYWdlcygpIGZhaWx1cmUuXG4iLCBfX0ZVTkNUSU9OX18pOworCX0K KwltYXAtPmlzX21hcHBlZCA9IDE7CisKK3VubG9ja19vdXQ6CisJc3Bpbl91 bmxvY2soJnByaXYtPmxvY2spOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGdudGRldl9mb3BzID0g eworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5vcGVuID0gZ250ZGV2X29w ZW4sCisJLnJlbGVhc2UgPSBnbnRkZXZfcmVsZWFzZSwKKwkubW1hcCA9IGdu dGRldl9tbWFwLAorCS51bmxvY2tlZF9pb2N0bCA9IGdudGRldl9pb2N0bAor fTsKKworc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIGdudGRldl9taXNjZGV2 ID0geworCS5taW5vciAgICAgICAgPSBNSVNDX0RZTkFNSUNfTUlOT1IsCisJ Lm5hbWUgICAgICAgICA9ICJ4ZW4vZ250ZGV2IiwKKwkuZm9wcyAgICAgICAg ID0gJmdudGRldl9mb3BzLAorfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICovCisKK3N0YXRpYyBpbnQgX19pbml0IGdudGRldl9pbml0KHZvaWQp Cit7CisJaW50IGVycjsKKworCWlmICgheGVuX2RvbWFpbigpKQorCQlyZXR1 cm4gLUVOT0RFVjsKKworCWVyciA9IG1pc2NfcmVnaXN0ZXIoJmdudGRldl9t aXNjZGV2KTsKKwlpZiAoZXJyICE9IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJS ICJDb3VsZCBub3QgcmVnaXN0ZXIgZ250ZGV2IGRldmljZVxuIik7CisJCXJl dHVybiBlcnI7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBf X2V4aXQgZ250ZGV2X2V4aXQodm9pZCkKK3sKKwltaXNjX2RlcmVnaXN0ZXIo JmdudGRldl9taXNjZGV2KTsKK30KKworbW9kdWxlX2luaXQoZ250ZGV2X2lu aXQpOworbW9kdWxlX2V4aXQoZ250ZGV2X2V4aXQpOworCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2du dGRldi5oIGIvaW5jbHVkZS94ZW4vZ250ZGV2LmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uOGJkMTQ2NwotLS0gL2Rldi9udWxsCisr KyBiL2luY2x1ZGUveGVuL2dudGRldi5oCkBAIC0wLDAgKzEsMTE5IEBACisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBnbnRkZXYu aAorICogCisgKiBJbnRlcmZhY2UgdG8gL2Rldi94ZW4vZ250ZGV2LgorICog CisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIEQgRyBNdXJyYXkKKyAqIAorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAy CisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgb3IsIHdoZW4gZGlzdHJpYnV0ZWQKKyAqIHNlcGFyYXRlbHkgZnJv bSB0aGUgTGludXgga2VybmVsIG9yIGluY29ycG9yYXRlZCBpbnRvIG90aGVy CisgKiBzb2Z0d2FyZSBwYWNrYWdlcywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGxpY2Vuc2U6CisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhIGNvcHkKKyAqIG9mIHRoaXMgc291cmNlIGZpbGUgKHRoZSAiU29mdHdh cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorICogcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwKKyAqIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLAorICogYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0bworICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICogCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisg KiAKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAq LworCisjaWZuZGVmIF9fTElOVVhfUFVCTElDX0dOVERFVl9IX18KKyNkZWZp bmUgX19MSU5VWF9QVUJMSUNfR05UREVWX0hfXworCitzdHJ1Y3QgaW9jdGxf Z250ZGV2X2dyYW50X3JlZiB7CisJLyogVGhlIGRvbWFpbiBJRCBvZiB0aGUg Z3JhbnQgdG8gYmUgbWFwcGVkLiAqLworCXVpbnQzMl90IGRvbWlkOworCS8q IFRoZSBncmFudCByZWZlcmVuY2Ugb2YgdGhlIGdyYW50IHRvIGJlIG1hcHBl ZC4gKi8KKwl1aW50MzJfdCByZWY7Cit9OworCisvKgorICogSW5zZXJ0cyB0 aGUgZ3JhbnQgcmVmZXJlbmNlcyBpbnRvIHRoZSBtYXBwaW5nIHRhYmxlIG9m IGFuIGluc3RhbmNlCisgKiBvZiBnbnRkZXYuIE4uQi4gVGhpcyBkb2VzIG5v dCBwZXJmb3JtIHRoZSBtYXBwaW5nLCB3aGljaCBpcyBkZWZlcnJlZAorICog dW50aWwgbW1hcCgpIGlzIGNhbGxlZCB3aXRoIEBpbmRleCBhcyB0aGUgb2Zm c2V0LgorICovCisjZGVmaW5lIElPQ1RMX0dOVERFVl9NQVBfR1JBTlRfUkVG IFwKK19JT0MoX0lPQ19OT05FLCAnRycsIDAsIHNpemVvZihzdHJ1Y3QgaW9j dGxfZ250ZGV2X21hcF9ncmFudF9yZWYpKQorc3RydWN0IGlvY3RsX2dudGRl dl9tYXBfZ3JhbnRfcmVmIHsKKwkvKiBJTiBwYXJhbWV0ZXJzICovCisJLyog VGhlIG51bWJlciBvZiBncmFudHMgdG8gYmUgbWFwcGVkLiAqLworCXVpbnQz Ml90IGNvdW50OworCXVpbnQzMl90IHBhZDsKKwkvKiBPVVQgcGFyYW1ldGVy cyAqLworCS8qIFRoZSBvZmZzZXQgdG8gYmUgdXNlZCBvbiBhIHN1YnNlcXVl bnQgY2FsbCB0byBtbWFwKCkuICovCisJdWludDY0X3QgaW5kZXg7CisJLyog VmFyaWFibGUgSU4gcGFyYW1ldGVyLiAqLworCS8qIEFycmF5IG9mIGdyYW50 IHJlZmVyZW5jZXMsIG9mIHNpemUgQGNvdW50LiAqLworCXN0cnVjdCBpb2N0 bF9nbnRkZXZfZ3JhbnRfcmVmIHJlZnNbMV07Cit9OworCisvKgorICogUmVt b3ZlcyB0aGUgZ3JhbnQgcmVmZXJlbmNlcyBmcm9tIHRoZSBtYXBwaW5nIHRh YmxlIG9mIGFuIGluc3RhbmNlIG9mCisgKiBvZiBnbnRkZXYuIE4uQi4gbXVu bWFwKCkgbXVzdCBiZSBjYWxsZWQgb24gdGhlIHJlbGV2YW50IHZpcnR1YWwg YWRkcmVzcyhlcykKKyAqIGJlZm9yZSB0aGlzIGlvY3RsIGlzIGNhbGxlZCwg b3IgYW4gZXJyb3Igd2lsbCByZXN1bHQuCisgKi8KKyNkZWZpbmUgSU9DVExf R05UREVWX1VOTUFQX0dSQU5UX1JFRiBcCitfSU9DKF9JT0NfTk9ORSwgJ0cn LCAxLCBzaXplb2Yoc3RydWN0IGlvY3RsX2dudGRldl91bm1hcF9ncmFudF9y ZWYpKSAgICAgICAKK3N0cnVjdCBpb2N0bF9nbnRkZXZfdW5tYXBfZ3JhbnRf cmVmIHsKKwkvKiBJTiBwYXJhbWV0ZXJzICovCisJLyogVGhlIG9mZnNldCB3 YXMgcmV0dXJuZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgbWFwIG9wZXJhdGlv bi4gKi8KKwl1aW50NjRfdCBpbmRleDsKKwkvKiBUaGUgbnVtYmVyIG9mIHBh Z2VzIHRvIGJlIHVubWFwcGVkLiAqLworCXVpbnQzMl90IGNvdW50OworCXVp bnQzMl90IHBhZDsKK307CisKKy8qCisgKiBSZXR1cm5zIHRoZSBvZmZzZXQg aW4gdGhlIGRyaXZlcidzIGFkZHJlc3Mgc3BhY2UgdGhhdCBjb3JyZXNwb25k cworICogdG8gQHZhZGRyLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0g YSBtdW5tYXAoKSwgZm9sbG93ZWQgYnkgYW4KKyAqIFVOTUFQX0dSQU5UX1JF RiBpb2N0bCwgd2hlcmUgbm8gc3RhdGUgYWJvdXQgdGhlIG9mZnNldCBpcyBy ZXRhaW5lZCBieQorICogdGhlIGNhbGxlci4gVGhlIG51bWJlciBvZiBwYWdl cyB0aGF0IHdlcmUgYWxsb2NhdGVkIGF0IHRoZSBzYW1lIHRpbWUgYXMKKyAq IEB2YWRkciBpcyByZXR1cm5lZCBpbiBAY291bnQuCisgKgorICogTi5CLiBX aGVyZSBtb3JlIHRoYW4gb25lIHBhZ2UgaGFzIGJlZW4gbWFwcGVkIGludG8g YSBjb250aWd1b3VzIHJhbmdlLCB0aGUKKyAqICAgICAgc3VwcGxpZWQgQHZh ZGRyIG11c3QgY29ycmVzcG9uZCB0byB0aGUgc3RhcnQgb2YgdGhlIHJhbmdl OyBvdGhlcndpc2UKKyAqICAgICAgYW4gZXJyb3Igd2lsbCByZXN1bHQuIEl0 IGlzIG9ubHkgcG9zc2libGUgdG8gbXVubWFwKCkgdGhlIGVudGlyZQorICog ICAgICBjb250aWd1b3VzbHktYWxsb2NhdGVkIHJhbmdlIGF0IG9uY2UsIGFu ZCBub3QgYW55IHN1YnJhbmdlIHRoZXJlb2YuCisgKi8KKyNkZWZpbmUgSU9D VExfR05UREVWX0dFVF9PRkZTRVRfRk9SX1ZBRERSIFwKK19JT0MoX0lPQ19O T05FLCAnRycsIDIsIHNpemVvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dldF9v ZmZzZXRfZm9yX3ZhZGRyKSkKK3N0cnVjdCBpb2N0bF9nbnRkZXZfZ2V0X29m ZnNldF9mb3JfdmFkZHIgeworCS8qIElOIHBhcmFtZXRlcnMgKi8KKwkvKiBU aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBmaXJzdCBtYXBwZWQgcGFnZSBp biBhIHJhbmdlLiAqLworCXVpbnQ2NF90IHZhZGRyOworCS8qIE9VVCBwYXJh bWV0ZXJzICovCisJLyogVGhlIG9mZnNldCB0aGF0IHdhcyB1c2VkIGluIHRo ZSBpbml0aWFsIG1tYXAoKSBvcGVyYXRpb24uICovCisJdWludDY0X3Qgb2Zm c2V0OworCS8qIFRoZSBudW1iZXIgb2YgcGFnZXMgbWFwcGVkIGluIHRoZSBW TSBhcmVhIHRoYXQgYmVnaW5zIGF0IEB2YWRkci4gKi8KKwl1aW50MzJfdCBj b3VudDsKKwl1aW50MzJfdCBwYWQ7Cit9OworCisvKgorICogU2V0cyB0aGUg bWF4aW11bSBudW1iZXIgb2YgZ3JhbnRzIHRoYXQgbWF5IG1hcHBlZCBhdCBv bmNlIGJ5IHRoaXMgZ250ZGV2CisgKiBpbnN0YW5jZS4KKyAqCisgKiBOLkIu IFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBpb2N0bCBp cyBwZXJmb3JtZWQgb24gdGhlIGRldmljZS4KKyAqLworI2RlZmluZSBJT0NU TF9HTlRERVZfU0VUX01BWF9HUkFOVFMgXAorX0lPQyhfSU9DX05PTkUsICdH JywgMywgc2l6ZW9mKHN0cnVjdCBpb2N0bF9nbnRkZXZfc2V0X21heF9ncmFu dHMpKQorc3RydWN0IGlvY3RsX2dudGRldl9zZXRfbWF4X2dyYW50cyB7CisJ LyogSU4gcGFyYW1ldGVyICovCisJLyogVGhlIG1heGltdW0gbnVtYmVyIG9m IGdyYW50cyB0aGF0IG1heSBiZSBtYXBwZWQgYXQgb25jZS4gKi8KKwl1aW50 MzJfdCBjb3VudDsKK307CisKKyNlbmRpZiAvKiBfX0xJTlVYX1BVQkxJQ19H TlRERVZfSF9fICovCi0tIAoxLjcuMy4yCgoKRnJvbSA4Yzc5YWFkM2JkOGEz NzliZDBiZDE0NDg5NWI1NTA5OGFjYTJjY2VhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKZXJlbXkgRml0emhhcmRpbmdlIDxqZXJlbXkuZml0 emhhcmRpbmdlQGNpdHJpeC5jb20+CkRhdGU6IFRodSwgMTEgTm92IDIwMTAg MTQ6Mzk6MTIgLTA4MDAKU3ViamVjdDogW1BBVENIIDIxLzIxXSB4ZW4vZ250 ZGV2OiBhZGQgVk1fUEZOTUFQIHRvIHZtYQoKVGhlc2UgcGFnZXMgYXJlIGZy b20gb3RoZXIgZG9tYWlucywgc28gZG9uJ3QgaGF2ZSBhbnkgbG9jYWwgUEZO LgpWTV9QRk5NQVAgaXMgdGhlIGNsb3Nlc3QgY29uY2VwdCBMaW51eCBoYXMg dG8gdGhpcy4KClNpZ25lZC1vZmYtYnk6IEplcmVteSBGaXR6aGFyZGluZ2Ug PGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KLS0tCiBkcml2ZXJz L3hlbi9nbnRkZXYuYyB8ICAgIDEgKwogMSBmaWxlcyBjaGFuZ2VkLCAxIGlu c2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy94ZW4vZ250ZGV2LmMgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwppbmRl eCA0NTg5OGQ0Li5jZjYxYzdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9n bnRkZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtNTc0LDYg KzU3NCw3IEBAIHN0YXRpYyBpbnQgZ250ZGV2X21tYXAoc3RydWN0IGZpbGUg KmZsaXAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCXZtYS0+dm1f ZmxhZ3MgfD0gVk1fUkVTRVJWRUQ7CiAJdm1hLT52bV9mbGFncyB8PSBWTV9E T05UQ09QWTsKIAl2bWEtPnZtX2ZsYWdzIHw9IFZNX0RPTlRFWFBBTkQ7CisJ dm1hLT52bV9mbGFncyB8PSBWTV9QRk5NQVA7CiAKIAl2bWEtPnZtX3ByaXZh dGVfZGF0YSA9IG1hcDsKIAltYXAtPnZtYSA9IHZtYTsKLS0gCjEuNy4zLjIK Cg== --0-985759422-1289935211=:36725 Content-Type: application/octet-stream; name="xen.pcifront.fixes.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="xen.pcifront.fixes.patch" RnJvbSAxNjg4YzNkNjAwMGIxMTgzYmNiNjA0YzhjODVmNzQyYTU3OTk5MGU1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb25yYWQgUnplc3p1 dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkRhdGU6IFN1biwg MzEgT2N0IDIwMTAgMTc6MDQ6MDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEv NV0gTUFJTlRBSU5FUlM6IFVwZGF0ZSBtYWlsaW5nIGxpc3QgbmFtZSBmb3Ig WGVuIHBpZWNlcy4KCldoaWxlIHRoZSAneGVuLWRldmVsQGxpc3RzLnhlbi5v cmcnIGlzIG1vcmUgYXB0LCBpdCBpcyBub3QgeWV0CnJlYWR5LiBSZXZlcnQg dGhlIG5hbWUgYmFjayB0byB0aGUgb2xkIGxpc3RzLnhlbnNvdXJjZS5jb20g Zm9yCnJpZ2h0IG5vdy4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0 ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KLS0tCiBNQUlOVEFJ TkVSUyB8ICAgIDIgKy0KIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJT IGIvTUFJTlRBSU5FUlMKaW5kZXggMDA5NDIyNC4uYWNmMTNmMiAxMDA2NDQK LS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTY2MTMs NyArNjYxMyw3IEBAIEY6CWRyaXZlcnMveGVuLypzd2lvdGxiKgogWEVOIEhZ UEVSVklTT1IgSU5URVJGQUNFCiBNOglKZXJlbXkgRml0emhhcmRpbmdlIDxq ZXJlbXkuZml0emhhcmRpbmdlQGNpdHJpeC5jb20+CiBNOglLb25yYWQgUnpl c3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci1MOgl4ZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZworTDoJeGVuLWRldmVsQGxpc3RzLnhlbnNv dXJjZS5jb20KIEw6CXZpcnR1YWxpemF0aW9uQGxpc3RzLm9zZGwub3JnCiBT OglTdXBwb3J0ZWQKIEY6CWFyY2gveDg2L3hlbi8KLS0gCjEuNy4zLjIKCgpG cm9tIDA3Y2YyYTY0YzJhZDM0MDhhMGUxMmFhNGNkNjA0MGIzMGMwOTM4MWQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppcmkgU2xhYnkgPGpz bGFieUBzdXNlLmN6PgpEYXRlOiBTYXQsIDYgTm92IDIwMTAgMTA6MDY6NDkg KzAxMDAKU3ViamVjdDogW1BBVENIIDIvNV0geGVuOiBmaXggbWVtb3J5IGxl YWsgaW4gWGVuIFBDSSBNU0kvTVNJLVggYWxsb2NhdG9yLgoKU3RhbnNlIGZv dW5kIHRoYXQgeGVuX3NldHVwX21zaV9pcnFzIGxlYWtzIG1lbW9yeSB3aGVu Cnhlbl9hbGxvY2F0ZV9waXJxIGZhaWxzLiBGcmVlIHRoZSBtZW1vcnkgaW4g dGhhdCBmYWlsIHBhdGguCgpTaWduZWQtb2ZmLWJ5OiBKaXJpIFNsYWJ5IDxq c2xhYnlAc3VzZS5jej4KU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogeGVuLWRldmVs QGxpc3RzLnhlbnNvdXJjZS5jb20KQ2M6IFRob21hcyBHbGVpeG5lciA8dGds eEBsaW51dHJvbml4LmRlPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhh dC5jb20+CkNjOiAiSC4gUGV0ZXIgQW52aW4iIDxocGFAenl0b3IuY29tPgpD YzogeDg2QGtlcm5lbC5vcmcKLS0tCiBhcmNoL3g4Ni9wY2kveGVuLmMgfCAg ICA4ICsrKysrLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kv eGVuLmMgYi9hcmNoL3g4Ni9wY2kveGVuLmMKaW5kZXggMTE3ZjViOC4uZDdi NTEwOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3hlbi5jCisrKyBiL2Fy Y2gveDg2L3BjaS94ZW4uYwpAQCAtMTQ3LDggKzE0NywxMCBAQCBzdGF0aWMg aW50IHhlbl9zZXR1cF9tc2lfaXJxcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBp bnQgbnZlYywgaW50IHR5cGUpCiAJCWlycSA9IHhlbl9hbGxvY2F0ZV9waXJx KHZbaV0sIDAsIC8qIG5vdCBzaGFyYWJsZSAqLwogCQkJKHR5cGUgPT0gUENJ X0NBUF9JRF9NU0lYKSA/CiAJCQkicGNpZnJvbnQtbXNpLXgiIDogInBjaWZy b250LW1zaSIpOwotCQlpZiAoaXJxIDwgMCkKLQkJCXJldHVybiAtMTsKKwkJ aWYgKGlycSA8IDApIHsKKwkJCXJldCA9IC0xOworCQkJZ290byBmcmVlOwor CQl9CiAKIAkJcmV0ID0gc2V0X2lycV9tc2koaXJxLCBtc2lkZXNjKTsKIAkJ aWYgKHJldCkKQEAgLTE2NCw3ICsxNjYsNyBAQCBlcnJvcjoKIAlpZiAocmV0 ID09IC1FTk9ERVYpCiAJCWRldl9lcnIoJmRldi0+ZGV2LCAiWGVuIFBDSSBm cm9udGVuZCBoYXMgbm90IHJlZ2lzdGVyZWQiIFwKIAkJCSIgTVNJL01TSS1Y IHN1cHBvcnQhXG4iKTsKLQorZnJlZToKIAlrZnJlZSh2KTsKIAlyZXR1cm4g cmV0OwogfQotLSAKMS43LjMuMgoKCkZyb20gYzhhYzM5MDJmYjdhOThjNDVl ZDU0ZDk4YWQ2ZjFjODE2OGY0NzAyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSmVzcGVyIEp1aGwgPGpqQGNoYW9zYml0cy5uZXQ+CkRhdGU6 IFNhdCwgMzAgT2N0IDIwMTAgMTQ6NTE6MzAgKzAyMDAKU3ViamVjdDogW1BB VENIIDMvNV0geGVuLXBjaWZyb250OiBSZW1vdmUgZHVwbGljYXRlIGluY2x1 c2lvbiBvZiBoZWFkZXJzLgoKSW4gZHJpdmVycy9wY2kveGVuLXBjaWZyb250 LmMgdGhlIHhlbi94ZW5idXMuaCBoZWFkZXIgaXMgaW5jbHVkZWQgdHdpY2Ug LQpvbmNlIGlzIGVub3VnaC4KClNpZ25lZC1vZmYtYnk6IEplc3BlciBKdWhs IDxqakBjaGFvc2JpdHMubmV0PgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnpl c3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci0tLQogZHJp dmVycy9wY2kveGVuLXBjaWZyb250LmMgfCAgICAxIC0KIDEgZmlsZXMgY2hh bmdlZCwgMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL3hlbi1wY2lmcm9udC5jIGIvZHJpdmVycy9w Y2kveGVuLXBjaWZyb250LmMKaW5kZXggYTg3YzQ5OC4uMDU3OTI3MyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMKKysrIGIvZHJp dmVycy9wY2kveGVuLXBjaWZyb250LmMKQEAgLTEzLDcgKzEzLDYgQEAKICNp bmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3Bj aS5oPgogI2luY2x1ZGUgPGxpbnV4L21zaS5oPgotI2luY2x1ZGUgPHhlbi94 ZW5idXMuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL3BjaWlmLmg+ CiAjaW5jbHVkZSA8YXNtL3hlbi9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9p bnRlcnJ1cHQuaD4KLS0gCjEuNy4zLjIKCgpGcm9tIDJhNjNkZDcyNzViMjI3 OGJkN2U5MjAzZjc0YjlhYTRmMDdlODJhN2EgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6PgpEYXRl OiBUaHUsIDQgTm92IDIwMTAgMTU6MzE6MzAgKzAxMDAKU3ViamVjdDogW1BB VENIIDQvNV0geGVuLXBjaWZyb250OiBmaXggUENJIHJlZmVyZW5jZSBsZWFr CgpTdGFuc2UgZm91bmQgdGhhdCB3aGVuIHBkZXYgaXMgZm91bmQgYW5kIGhh cyBubyBkcml2ZXIgYSByZWZlcmVuY2UgaXMKbGVha2VkIGluIHBjaWZyb250 X2NvbW1vbl9wcm9jZXNzLiBTbyBhZGQgcGNpX2Rldl9wdXQgdGhlcmUuIEZv ciB0aGUKcGRldiA9PSBOVUxMIGNhc2UsIHBjaV9kZXZfcHV0KE5VTEwpIGlz IGZpbmUuCgpbdjI6IFVwZGF0ZWQgdG8gbm90IGRlcmVmZXJlbmNlIHBjaWRl di0+ZGV2IHBlciBNaWx0b24ncyBvYnNlcnZhdGlvbl0KClNpZ25lZC1vZmYt Ynk6IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5 OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+CkNjOiBNaWx0b24gTWlsbGVyIDxtaWx0b25tQGJnYS5jb20+CkNjOiBK ZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KLS0tCiBk cml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYyB8ICAgIDUgKysrLS0KIDEgZmls ZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3hlbi1wY2lmcm9udC5jIGIvZHJp dmVycy9wY2kveGVuLXBjaWZyb250LmMKaW5kZXggMDU3OTI3My4uM2E1YTZm YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMKKysr IGIvZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMKQEAgLTU3NSw4ICs1NzUs OSBAQCBzdGF0aWMgcGNpX2Vyc19yZXN1bHRfdCBwY2lmcm9udF9jb21tb25f cHJvY2VzcyhpbnQgY21kLAogCiAJcGNpZGV2ID0gcGNpX2dldF9idXNfYW5k X3Nsb3QoYnVzLCBkZXZmbik7CiAJaWYgKCFwY2lkZXYgfHwgIXBjaWRldi0+ ZHJpdmVyKSB7Ci0JCWRldl9lcnIoJnBjaWRldi0+ZGV2LAotCQkJImRldmlj ZSBvciBkcml2ZXIgaXMgTlVMTFxuIik7CisJCWRldl9lcnIoJnBkZXYtPnhk ZXYtPmRldiwgImRldmljZSBvciBBRVIgZHJpdmVyIGlzIE5VTExcbiIpOwor CQlpZiAocGNpZGV2KQorCQkJcGNpX2Rldl9wdXQocGNpZGV2KTsKIAkJcmV0 dXJuIHJlc3VsdDsKIAl9CiAJcGRydiA9IHBjaWRldi0+ZHJpdmVyOwotLSAK MS43LjMuMgoKCkZyb20gYjc0ODMxZTY0MzdjMGNiYmQzMTBkYzU4NzU3OTM5 MGExNDZkYzdhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9l IFBlcmNoZXMgPGpvZUBwZXJjaGVzLmNvbT4KRGF0ZTogV2VkLCAxMCBOb3Yg MjAxMCAwOTo0Nzo1MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggNS81XSBNQUlO VEFJTkVSUzogTWFyayBYRU4gbGlzdHMgYXMgbW9kZXJhdGVkCgpTaWduZWQt b2ZmLWJ5OiBKb2UgUGVyY2hlcyA8am9lQHBlcmNoZXMuY29tPgpTaWduZWQt b2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9y YWNsZS5jb20+Ci0tLQogTUFJTlRBSU5FUlMgfCAgICA2ICsrKy0tLQogMSBm aWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRl eCBhY2YxM2YyLi42YTE2ZjIxIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUwor KysgYi9NQUlOVEFJTkVSUwpAQCAtNjU5OCwxNCArNjU5OCwxNCBAQCBGOglk cml2ZXJzL3BsYXRmb3JtL3g4NgogCiBYRU4gUENJIFNVQlNZU1RFTQogTToJ S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29t PgotTDoJeGVuLWRldmVsQGxpc3RzLnhlbnNvdXJjZS5jb20KK0w6CXhlbi1k ZXZlbEBsaXN0cy54ZW5zb3VyY2UuY29tIChtb2RlcmF0ZWQgZm9yIG5vbi1z dWJzY3JpYmVycykKIFM6CVN1cHBvcnRlZAogRjoJYXJjaC94ODYvcGNpLyp4 ZW4qCiBGOglkcml2ZXJzL3BjaS8qeGVuKgogCiBYRU4gU1dJT1RMQiBTVUJT WVNURU0KIE06CUtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KLUw6CXhlbi1kZXZlbEBsaXN0cy54ZW5zb3VyY2UuY29t CitMOgl4ZW4tZGV2ZWxAbGlzdHMueGVuc291cmNlLmNvbSAobW9kZXJhdGVk IGZvciBub24tc3Vic2NyaWJlcnMpCiBTOglTdXBwb3J0ZWQKIEY6CWFyY2gv eDg2L3hlbi8qc3dpb3RsYioKIEY6CWRyaXZlcnMveGVuLypzd2lvdGxiKgpA QCAtNjYxMyw3ICs2NjEzLDcgQEAgRjoJZHJpdmVycy94ZW4vKnN3aW90bGIq CiBYRU4gSFlQRVJWSVNPUiBJTlRFUkZBQ0UKIE06CUplcmVteSBGaXR6aGFy ZGluZ2UgPGplcmVteS5maXR6aGFyZGluZ2VAY2l0cml4LmNvbT4KIE06CUtv bnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K LUw6CXhlbi1kZXZlbEBsaXN0cy54ZW5zb3VyY2UuY29tCitMOgl4ZW4tZGV2 ZWxAbGlzdHMueGVuc291cmNlLmNvbSAobW9kZXJhdGVkIGZvciBub24tc3Vi c2NyaWJlcnMpCiBMOgl2aXJ0dWFsaXphdGlvbkBsaXN0cy5vc2RsLm9yZwog UzoJU3VwcG9ydGVkCiBGOglhcmNoL3g4Ni94ZW4vCi0tIAoxLjcuMy4yCgo= --0-985759422-1289935211=:36725 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --0-985759422-1289935211=:36725--