From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#36193: 26.2; 'set-window-scroll-bars' setting doesn't take effect in emacsclient session Date: Wed, 17 Jul 2019 10:38:39 +0200 Message-ID: <26c7d41f-e54f-1cf4-9266-ecbd268f0888@gmx.at> References: <83lfy5zcqb.fsf@gnu.org> <095ad324-1ba2-253d-9d5d-bb576f722966@gmx.at> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2480800D72FE61815F77841B" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="220956"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36193@debbugs.gnu.org To: Andrea Greselin Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jul 17 10:39:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hnfT0-000vLf-1n for geb-bug-gnu-emacs@m.gmane.org; Wed, 17 Jul 2019 10:39:14 +0200 Original-Received: from localhost ([::1]:55094 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hnfSz-0007L8-0h for geb-bug-gnu-emacs@m.gmane.org; Wed, 17 Jul 2019 04:39:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48586) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hnfSs-0007Kx-Nd for bug-gnu-emacs@gnu.org; Wed, 17 Jul 2019 04:39:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hnfSo-0002KH-PF for bug-gnu-emacs@gnu.org; Wed, 17 Jul 2019 04:39:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42684) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hnfSo-0002Jy-Ds for bug-gnu-emacs@gnu.org; Wed, 17 Jul 2019 04:39:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hnfSo-0006Y6-7D for bug-gnu-emacs@gnu.org; Wed, 17 Jul 2019 04:39:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 17 Jul 2019 08:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36193 X-GNU-PR-Package: emacs Original-Received: via spool by 36193-submit@debbugs.gnu.org id=B36193.156335273525161 (code B ref 36193); Wed, 17 Jul 2019 08:39:02 +0000 Original-Received: (at 36193) by debbugs.gnu.org; 17 Jul 2019 08:38:55 +0000 Original-Received: from localhost ([127.0.0.1]:51505 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hnfSf-0006Xi-0Z for submit@debbugs.gnu.org; Wed, 17 Jul 2019 04:38:54 -0400 Original-Received: from mout.gmx.net ([212.227.17.22]:47265) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hnfSb-0006XU-9h for 36193@debbugs.gnu.org; Wed, 17 Jul 2019 04:38:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1563352720; bh=zp/Sf06sP9koU900Gl5TObLk8dL4nU8h2mUfB7HAwhM=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=a4blDWyi9VWZy3QLrgz0N9SBHktd953DkNwXT+ovx7Mo34w8vltzcry1fKDFefhRo E9Nr8hBmPTZ/zbswP+vXoILzlrMl1oZZyipJ/CjDjHv9e5yPj3v50MOku2uxUf7aY0 14fqgwzYgPQLJPxd4A6D6dPRNSRCC9KeU7qa7S6k= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([212.95.5.9]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LkCU2-1iJy0D35Io-00cCFz; Wed, 17 Jul 2019 10:38:39 +0200 In-Reply-To: Content-Language: de-DE X-Provags-ID: V03:K1:TgBSk6w50qhukntrK0cKcESLi8i9QutLSlQqRg0FyTQvUwYGlUT TerPrsjeejWbTzKOU7uFZhHFtjKwySdy2djTs2Tc2ptfpfx/fSnU2rdPe9CmqrrDtZK828w QrGpvRgSIYQeMoFaDlQJQi+z32XNS7hD77Nu1ajcayhhoTbQ5fnmc0XVxfynYPbzN52rokV 6oGaMnLP2OnVV8zMrVVAQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:zSwsALxJsR0=:NAjrszOKfjffXazmctbxqQ TZUBxhC8a7so5zSMfBHW00vkW1FZIktlMB81HkfCGtziKXncbiEJb5TRsOfOUonEpX0HZBLKu 8XBn+fbCryXGgVqSppEF+QG7QnwQuKpV7Hma7NgMTIuj5RzDhIjllCvg0d3wyyFG3avQlizvF oBUIXf1xnt0BYu7/3PxYP4H8dPTejuofXH88lGal5IEb18SriMOIPsaMoLRLKcVsMg7ioD1nX x6l5M0bnJsN2esYIyRp7+kntDbFVsfdAok+/rd343yvyvfFW3DxGGsQ7mvev6aSjtZYFtascM EJxCGgEgeqj8d5qCr374xpaFtJ+qs/zdE/PcuuvHOmMEakJ2IIZzLOICBvTiRAK6nQj9AdlMh DnJPOnbtRYV48SEKrg+ivh5sBykIlePjuBWTrjGrr8Y+HV/Q44rVGr/68PMstiOR+9ftqFIZI 0hTHJfTYbclKDzYAKMwRezGUwZ/dnwl0hYiWxrcLPFx09AMnnmT+au0uN1luj6DlL+/KZ+m+J WTqKZcskhlePYKLns2Tr/bmCFQ43IcZwSMVtceiqsxP9U2r9zVUuKJEbyADy1VxceEnIVg/Sy B2nZ/wJWv7icrd6PmjAM7RGf6C9cI/TTliQJdVxY58fspO4FqX5xl7tww2EXXeMTOsJlM7TBM i4E2wwzbzIv+Sd01Ta6MkPOsvVus6elFkVVHiSWPakFtZQxts/JYsgb+EZh1ODUv0xBb27gW/ efEx/+1Vkk+FOEbBaWIHvumUclxbzcEg6BgZfJDJimMpFC4ousTN6VdwseqkX46nmadJE4Ja X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:163223 Archived-At: This is a multi-part message in MIME format. --------------2480800D72FE61815F77841B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit > As a temporary workaround you can try to set the buffer local values > of 'scroll-bar-width' to zero in all buffers that might eventually > show up in the minibuffer window, for example, thusly > > (progn > (set-window-scroll-bars (minibuffer-window) 0 nil) > (with-current-buffer (get-buffer-create " *Echo Area 0*") > (setq scroll-bar-width 0)) > (with-current-buffer (get-buffer-create " *Echo Area 1*") > (setq scroll-bar-width 0)) > (with-current-buffer (get-buffer-create " *Minibuf-0*") > (setq scroll-bar-width 0)) > (with-current-buffer (get-buffer-create " *Minibuf-1*") > (setq scroll-bar-width 0))) > > This should work as long as you don't enable recursive minibuffers. Have you ever tried that workaround? I now attach a patch that should address this problem with the help of an additional argument PERSISTENT for 'set-window-scroll-bars' and 'set-window-fringes'. If set, the requested settings should survive subsequent invocations of 'set-window-buffer' for the window (in particular the minibuffer window) in question. If you build Emacs yourself, please try it. Thanks, martin --------------2480800D72FE61815F77841B Content-Type: text/plain; charset=UTF-8; name="scrollbar-fringes-persistent.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="scrollbar-fringes-persistent.diff" ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aSBiL2RvYy9saXNwcmVmL2Rp c3BsYXkudGV4aQppbmRleCBhMzg1NjlmNzI2Li42ZWI2ZjMzYWM3IDEwMDY0NAotLS0gYS9k b2MvbGlzcHJlZi9kaXNwbGF5LnRleGkKKysrIGIvZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhp CkBAIC0zOTU5LDcgKzM5NTksNyBAQCBGcmluZ2UgU2l6ZS9Qb3MKIGVhY2ggYWZmZWN0ZWQg d2luZG93LiAgWW91IGNhbiBhbHNvIHVzZSBAY29kZXtzZXQtd2luZG93LWZyaW5nZXN9IHRv CiBjb250cm9sIHRoZSBmcmluZ2UgZGlzcGxheSBpbiBpbmRpdmlkdWFsIHdpbmRvd3MuCiAK LUBkZWZ1biBzZXQtd2luZG93LWZyaW5nZXMgd2luZG93IGxlZnQgJm9wdGlvbmFsIHJpZ2h0 IG91dHNpZGUtbWFyZ2lucworQGRlZnVuIHNldC13aW5kb3ctZnJpbmdlcyB3aW5kb3cgbGVm dCAmb3B0aW9uYWwgcmlnaHQgb3V0c2lkZS1tYXJnaW5zIHBlcnNpc3RlbnQKIFRoaXMgZnVu Y3Rpb24gc2V0cyB0aGUgZnJpbmdlIHdpZHRocyBvZiB3aW5kb3cgQHZhcnt3aW5kb3d9Lgog SWYgQHZhcnt3aW5kb3d9IGlzIEBjb2Rle25pbH0sIHRoZSBzZWxlY3RlZCB3aW5kb3cgaXMg dXNlZC4KIApAQCAtMzk3NCwxNCArMzk3NCwxOCBAQCBGcmluZ2UgU2l6ZS9Qb3MKIAogVGhl IHZhbHVlcyBzcGVjaWZpZWQgaGVyZSBtYXkgYmUgbGF0ZXIgb3ZlcnJpZGRlbiBieSBpbnZv a2luZwogQGNvZGV7c2V0LXdpbmRvdy1idWZmZXJ9IChAcHhyZWZ7QnVmZmVycyBhbmQgV2lu ZG93c30pIG9uIEB2YXJ7d2luZG93fQotd2l0aCBpdHMgQHZhcntrZWVwLW1hcmdpbnN9IGFy Z3VtZW50IEBjb2Rle25pbH0gb3Igb21pdHRlZC4KK3dpdGggaXRzIEB2YXJ7a2VlcC1tYXJn aW5zfSBhcmd1bWVudCBAY29kZXtuaWx9IG9yIG9taXR0ZWQuICBIb3dldmVyLAoraWYgdGhl IG9wdGlvbmFsIGZpZnRoIGFyZ3VtZW50IEB2YXJ7cGVyc2lzdGVudH0gaXMgbm9uLUBjb2Rl e25pbH0gYW5kCit0aGUgb3RoZXIgYXJndW1lbnRzIGFyZSBwcm9jZXNzZWQgc3VjY2Vzc2Z1 bGx5LCB0aGUgdmFsdWVzIHNwZWNpZmllZAoraGVyZSB1bmNvbmRpdGlvbmFsbHkgc3Vydml2 ZSBzdWJzZXF1ZW50IGludm9jYXRpb25zIG9mCitAY29kZXtzZXQtd2luZG93LWJ1ZmZlcn0u CiBAZW5kIGRlZnVuCiAKIEBkZWZ1biB3aW5kb3ctZnJpbmdlcyAmb3B0aW9uYWwgd2luZG93 CiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZyaW5nZXMg b2YgYSB3aW5kb3cKIEB2YXJ7d2luZG93fS4gIElmIEB2YXJ7d2luZG93fSBpcyBvbWl0dGVk IG9yIEBjb2Rle25pbH0sIHRoZSBzZWxlY3RlZAogd2luZG93IGlzIHVzZWQuICBUaGUgdmFs dWUgaGFzIHRoZSBmb3JtIEBjb2RleyhAdmFye2xlZnQtd2lkdGh9Ci1AdmFye3JpZ2h0LXdp ZHRofSBAdmFye291dHNpZGUtbWFyZ2luc30pfS4KK0B2YXJ7cmlnaHQtd2lkdGh9IEB2YXJ7 b3V0c2lkZS1tYXJnaW5zfSBAdmFye3BlcnNpc3RlbnR9KX0uCiBAZW5kIGRlZnVuCiAKIApA QCAtNDM3NSw3ICs0Mzc5LDcgQEAgU2Nyb2xsIEJhcnMKIFlvdSBjYW4gb3ZlcnJpZGUgdGhl IGZyYW1lIHNwZWNpZmljIHNldHRpbmdzIGZvciBpbmRpdmlkdWFsIHdpbmRvd3MgYnkKIHVz aW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CiAKLUBkZWZ1biBzZXQtd2luZG93LXNjcm9s bC1iYXJzIHdpbmRvdyAmb3B0aW9uYWwgd2lkdGggdmVydGljYWwtdHlwZSBoZWlnaHQgaG9y aXpvbnRhbC10eXBlCitAZGVmdW4gc2V0LXdpbmRvdy1zY3JvbGwtYmFycyB3aW5kb3cgJm9w dGlvbmFsIHdpZHRoIHZlcnRpY2FsLXR5cGUgaGVpZ2h0IGhvcml6b250YWwtdHlwZSBwZXJz aXN0ZW50CiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIHdpZHRoIGFuZC9vciBoZWlnaHQgYW5k IHRoZSB0eXBlcyBvZiBzY3JvbGwgYmFycwogZm9yIHdpbmRvdyBAdmFye3dpbmRvd30uICBJ ZiBAdmFye3dpbmRvd30gaXMgQGNvZGV7bmlsfSwgdGhlIHNlbGVjdGVkCiB3aW5kb3cgaXMg dXNlZC4KQEAgLTQzODcsMTggKzQzOTEsMjYgQEAgU2Nyb2xsIEJhcnMKIEBjb2Rle3R9LCB3 aGljaCBtZWFucyB0byB1c2UgdGhlIGZyYW1lJ3MgZGVmYXVsdCwgYW5kIEBjb2Rle25pbH0g Zm9yIG5vCiB2ZXJ0aWNhbCBzY3JvbGwgYmFyLgogCi1AdmFye2hlaWdodH0gc3BlY2lmaWVz IHRoZSBoZWlnaHQgb2YgdGhlIGhvcml6b250YWwgc2Nyb2xsIGJhciBpbiBwaXhlbHMKLShA Y29kZXtuaWx9IG1lYW5zIHVzZSB0aGUgaGVpZ2h0IHNwZWNpZmllZCBmb3IgdGhlIGZyYW1l KS4KLUB2YXJ7aG9yaXpvbnRhbC10eXBlfSBzcGVjaWZpZXMgd2hldGhlciB0byBoYXZlIGEg aG9yaXpvbnRhbCBzY3JvbGwgYmFyLgotVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgQGNvZGV7 Ym90dG9tfSwgQGNvZGV7dH0sIHdoaWNoIG1lYW5zIHRvIHVzZSB0aGUKLWZyYW1lJ3MgZGVm YXVsdCwgYW5kIEBjb2Rle25pbH0gZm9yIG5vIGhvcml6b250YWwgc2Nyb2xsIGJhci4KK0B2 YXJ7aGVpZ2h0fSBzcGVjaWZpZXMgdGhlIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBzY3Jv bGwgYmFyIGluCitwaXhlbHMgKEBjb2Rle25pbH0gbWVhbnMgdXNlIHRoZSBoZWlnaHQgc3Bl Y2lmaWVkIGZvciB0aGUgZnJhbWUpLgorQHZhcntob3Jpem9udGFsLXR5cGV9IHNwZWNpZmll cyB3aGV0aGVyIHRvIGhhdmUgYSBob3Jpem9udGFsIHNjcm9sbAorYmFyLiAgVGhlIHBvc3Np YmxlIHZhbHVlcyBhcmUgQGNvZGV7Ym90dG9tfSwgQGNvZGV7dH0sIHdoaWNoIG1lYW5zIHRv Cit1c2UgdGhlIGZyYW1lJ3MgZGVmYXVsdCwgYW5kIEBjb2Rle25pbH0gZm9yIG5vIGhvcml6 b250YWwgc2Nyb2xsIGJhci4KK05vdGUgdGhhdCBmb3IgYSBtaW5pIHdpbmRvdyB0aGUgdmFs dWUgQGNvZGV7dH0gaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMKK0Bjb2Rle25pbH0sIG5hbWVs eSB0byBub3Qgc2hvdyBhIGhvcml6b250YWwgc2Nyb2xsIGJhci4gIFlvdSBoYXZlIHRvCitl eHBsaWNpdGx5IHNwZWNpZnkgQGNvZGV7Ym90dG9tfSBpbiBvcmRlciB0byBzaG93IGEgaG9y aXpvbnRhbCBzY3JvbGwKK2JhciBpbiBhIG1pbmkgd2luZG93LgogCiBJZiBAdmFye3dpbmRv d30gaXMgbm90IGxhcmdlIGVub3VnaCB0byBhY2NvbW1vZGF0ZSBhIHNjcm9sbCBiYXIgb2Yg dGhlCiBkZXNpcmVkIGRpbWVuc2lvbiwgdGhpcyBsZWF2ZXMgdGhlIGNvcnJlc3BvbmRpbmcg c2Nyb2xsIGJhciB1bmNoYW5nZWQuCiAKIFRoZSB2YWx1ZXMgc3BlY2lmaWVkIGhlcmUgbWF5 IGJlIGxhdGVyIG92ZXJyaWRkZW4gYnkgaW52b2tpbmcKIEBjb2Rle3NldC13aW5kb3ctYnVm ZmVyfSAoQHB4cmVme0J1ZmZlcnMgYW5kIFdpbmRvd3N9KSBvbiBAdmFye3dpbmRvd30KLXdp dGggaXRzIEB2YXJ7a2VlcC1tYXJnaW5zfSBhcmd1bWVudCBAY29kZXtuaWx9IG9yIG9taXR0 ZWQuCit3aXRoIGl0cyBAdmFye2tlZXAtbWFyZ2luc30gYXJndW1lbnQgQGNvZGV7bmlsfSBv ciBvbWl0dGVkLiAgSG93ZXZlciwKK2lmIHRoZSBvcHRpb25hbCBmaWZ0aCBhcmd1bWVudCBA dmFye3BlcnNpc3RlbnR9IGlzIG5vbi1AY29kZXtuaWx9IGFuZAordGhlIG90aGVyIGFyZ3Vt ZW50cyBhcmUgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseSwgdGhlIHZhbHVlcyBzcGVjaWZpZWQK K2hlcmUgdW5jb25kaXRpb25hbGx5IHN1cnZpdmUgc3Vic2VxdWVudCBpbnZvY2F0aW9ucyBv ZgorQGNvZGV7c2V0LXdpbmRvdy1idWZmZXJ9LgogQGVuZCBkZWZ1bgogCiBUaGUgZm9sbG93 aW5nIGZvdXIgZnVuY3Rpb25zIHRha2UgYXMgYXJndW1lbnQgYSBsaXZlIHdpbmRvdyB3aGlj aApAQCAtNDQwNyw3ICs0NDE5LDcgQEAgU2Nyb2xsIEJhcnMKIEBkZWZ1biB3aW5kb3ctc2Ny b2xsLWJhcnMgJm9wdGlvbmFsIHdpbmRvdwogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgbGlz dCBvZiB0aGUgZm9ybSBAY29kZXsoQHZhcnt3aWR0aH0KIEB2YXJ7Y29sdW1uc30gQHZhcnt2 ZXJ0aWNhbC10eXBlfSBAdmFye2hlaWdodH0gQHZhcntsaW5lc30KLUB2YXJ7aG9yaXpvbnRh bC10eXBlfSl9LgorQHZhcntob3Jpem9udGFsLXR5cGV9IEB2YXJ7cGVyc2lzdGVudH0pfS4K IAogVGhlIHZhbHVlIEB2YXJ7d2lkdGh9IGlzIHRoZSB2YWx1ZSB0aGF0IHdhcyBzcGVjaWZp ZWQgZm9yIHRoZSB3aWR0aCBvZgogdGhlIHZlcnRpY2FsIHNjcm9sbCBiYXIgKHdoaWNoIG1h eSBiZSBAY29kZXtuaWx9KTsgQHZhcntjb2x1bW5zfSBpcyB0aGUKQEAgLTQ0MTgsNiArNDQz MCwxMCBAQCBTY3JvbGwgQmFycwogdGhlIGhvcml6b250YWwgc2Nyb2xsIGJhciAod2hpY2gg bWF5IGJlIEBjb2Rle25pbH0pOyBAdmFye2xpbmVzfSBpcyB0aGUKIChwb3NzaWJseSByb3Vu ZGVkKSBudW1iZXIgb2YgbGluZXMgdGhhdCB0aGUgaG9yaXpvbnRhbGx5IHNjcm9sbCBiYXIK IGFjdHVhbGx5IG9jY3VwaWVzLgorCitUaGUgdmFsdWUgb2YgQHZhcntwZXJzaXN0ZW50fSBp cyB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciBAdmFye3dpbmRvd30KK3dpdGggdGhlIGxhc3Qg c3VjY2Vzc2Z1bCBpbnZvY2F0aW9uIG9mIEBjb2Rle3NldC13aW5kb3ctc2Nyb2xsLWJhcnN9 LAorQGNvZGV7bmlsfSBpZiB0aGVyZSBuZXZlciB3YXMgb25lLgogQGVuZCBkZWZ1bgogCiBA ZGVmdW4gd2luZG93LWN1cnJlbnQtc2Nyb2xsLWJhcnMgJm9wdGlvbmFsIHdpbmRvdwpAQCAt NDQzOCw3ICs0NDU0LDcgQEAgU2Nyb2xsIEJhcnMKIHNjcm9sbGJhci4KIEBlbmQgZGVmdW4K IAotSWYgeW91IGRvbid0IHNwZWNpZnkgdGhlc2UgdmFsdWVzIGZvciBhIHdpbmRvdyB3aXRo CitJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSB3aW5kb3cncyBzY3JvbGwgYmFyIHNldHRpbmdz IHZpYQogQGNvZGV7c2V0LXdpbmRvdy1zY3JvbGwtYmFyc30sIHRoZSBidWZmZXItbG9jYWwg dmFyaWFibGVzCiBAY29kZXt2ZXJ0aWNhbC1zY3JvbGwtYmFyfSwgQGNvZGV7aG9yaXpvbnRh bC1zY3JvbGwtYmFyfSwKIEBjb2Rle3Njcm9sbC1iYXItd2lkdGh9IGFuZCBAY29kZXtzY3Jv bGwtYmFyLWhlaWdodH0gaW4gdGhlIGJ1ZmZlciBiZWluZwpkaWZmIC0tZ2l0IGEvbGlzcC93 aW5kb3cuZWwgYi9saXNwL3dpbmRvdy5lbAppbmRleCA3MjZkMDIyZGZlLi5lYmQzYjExZTI3 IDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysgYi9saXNwL3dpbmRvdy5lbApAQCAt NDM0LDcgKzQzNCw4IEBAIHdpbmRvdy1taW4taGVpZ2h0CiAKIChkZWZ1biB3aW5kb3ctbWlu LXBpeGVsLWhlaWdodCAoJm9wdGlvbmFsIHdpbmRvdykKICAgIlJldHVybiB0aGUgbWluaW11 bSBwaXhlbCBoZWlnaHQgb2Ygd2luZG93IFdJTkRPVy4iCi0gICgqIChtYXggd2luZG93LW1p bi1oZWlnaHQgd2luZG93LXNhZmUtbWluLWhlaWdodCkKKyAgKCogKG1heCAoaWYgKHdpbmRv dy1taW5pYnVmZmVyLXAgd2luZG93KSAxIHdpbmRvdy1taW4taGVpZ2h0KQorICAgICAgICAg IHdpbmRvdy1zYWZlLW1pbi1oZWlnaHQpCiAgICAgIChmcmFtZS1jaGFyLXNpemUgd2luZG93 KSkpCiAKIDs7IFRoaXMgbXVzdCBnbyB0byBDLCBmaW5hbGx5IChvciBnZXQgcmVtb3ZlZCku CkBAIC0xNjAzLDggKzE2MDQsNiBAQCB3aW5kb3ctLW1pbi1zaXplLTEKIAkgIHZhbHVlKQog ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQogCShj b25kCi0JICgod2luZG93LW1pbmlidWZmZXItcCB3aW5kb3cpCi0JICAoaWYgcGl4ZWx3aXNl IChmcmFtZS1jaGFyLWhlaWdodCAod2luZG93LWZyYW1lIHdpbmRvdykpIDEpKQogCSAoKHdp bmRvdy1zaXplLWZpeGVkLXAgd2luZG93IGhvcml6b250YWwgaWdub3JlKQogCSAgOzsgVGhl IG1pbmltdW0gc2l6ZSBvZiBhIGZpeGVkIHNpemUgd2luZG93IGlzIGl0cyBzaXplLgogCSAg KHdpbmRvdy1zaXplIHdpbmRvdyBob3Jpem9udGFsIHBpeGVsd2lzZSkpCkBAIC0yNzM5LDMw ICsyNzM4LDMyIEBAIHdpbmRvdy0tcmVzaXplLXJlc2V0LTEKICAgKHdoZW4gKHdpbmRvdy1y aWdodCB3aW5kb3cpCiAgICAgKHdpbmRvdy0tcmVzaXplLXJlc2V0LTEgKHdpbmRvdy1yaWdo dCB3aW5kb3cpIGhvcml6b250YWwpKSkKIAorOzsgVGhlIGZvbGxvd2luZyBpcyB0aGUgaW50 ZXJuYWwgZnVuY3Rpb24gdXNlZCB3aGVuIHJlc2l6aW5nIG1pbmkKKzs7IHdpbmRvd3MgIm1h bnVhbGx5IiwgZm9yIGV4YW1wbGUsIHdoZW4gZHJhZ2dpbmcgYSBkaXZpZGVyIGJldHdlZW4K Kzs7IHJvb3QgYW5kIG1pbmkgd2luZG93LiAgVGhlIHJvdXRpbmVzIGZvciBhdXRvbWF0aWMg bWluaWJ1ZmZlciB3aW5kb3cKKzs7IHJlc2l6aW5nIGNhbGwgYHdpbmRvdy0tcmVzaXplLXJv b3Qtd2luZG93LXZlcnRpY2FsbHknIGluc3RlYWQuCiAoZGVmdW4gd2luZG93LS1yZXNpemUt bWluaS13aW5kb3cgKHdpbmRvdyBkZWx0YSkKLSAgIlJlc2l6ZSBtaW5pYnVmZmVyIHdpbmRv dyBXSU5ET1cgYnkgREVMVEEgcGl4ZWxzLgorICAiQ2hhbmdlIGhlaWdodCBvZiBtaW5pIHdp bmRvdyBXSU5ET1cgYnkgREVMVEEgcGl4ZWxzLgogSWYgV0lORE9XIGNhbm5vdCBiZSByZXNp emVkIGJ5IERFTFRBIHBpeGVscyBtYWtlIGl0IGFzIGxhcmdlIChvcgogYXMgc21hbGwpIGFz IHBvc3NpYmxlLCBidXQgZG9uJ3Qgc2lnbmFsIGFuIGVycm9yLiIKICAgKHdoZW4gKHdpbmRv dy1taW5pYnVmZmVyLXAgd2luZG93KQogICAgIChsZXQqICgoZnJhbWUgKHdpbmRvdy1mcmFt ZSB3aW5kb3cpKQogCSAgIChyb290IChmcmFtZS1yb290LXdpbmRvdyBmcmFtZSkpCiAJICAg KGhlaWdodCAod2luZG93LXBpeGVsLWhlaWdodCB3aW5kb3cpKQotCSAgIChtaW4tZGVsdGEK LQkgICAgKC0gKHdpbmRvdy1waXhlbC1oZWlnaHQgcm9vdCkKLQkgICAgICAgKHdpbmRvdy1t aW4tc2l6ZSByb290IG5pbCBuaWwgdCkpKSkKLSAgICAgIDs7IFNhbml0aXplIERFTFRBLgot ICAgICAgKGNvbmQKLSAgICAgICAoKDw9ICgrIGhlaWdodCBkZWx0YSkgMCkKLQkoc2V0cSBk ZWx0YSAoLSAoZnJhbWUtY2hhci1oZWlnaHQgZnJhbWUpIGhlaWdodCkpKQotICAgICAgICgo PiBkZWx0YSBtaW4tZGVsdGEpCi0JKHNldHEgZGVsdGEgbWluLWRlbHRhKSkpCisgICAgICAg ICAgIChtaW4taGVpZ2h0ICgrIChmcmFtZS1jaGFyLWhlaWdodCBmcmFtZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKC0gKHdpbmRvdy1waXhlbC1oZWlnaHQgd2luZG93KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LWJvZHktaGVpZ2h0IHdpbmRvdyB0 KSkpKQorICAgICAgICAgICAobWF4LWRlbHRhICgtICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHJv b3QpCisJICAgICAgICAgICAgICAgICAod2luZG93LW1pbi1zaXplIHJvb3QgbmlsIG5pbCB0 KSkpKQorICAgICAgOzsgRG9uJ3QgbWFrZSBtaW5pIHdpbmRvdyB0b28gc21hbGwuCisgICAg ICAod2hlbiAoPCAoKyBoZWlnaHQgZGVsdGEpIG1pbi1oZWlnaHQpCisJKHNldHEgZGVsdGEg KC0gbWluLWhlaWdodCBoZWlnaHQpKSkKKyAgICAgIDs7IERvbid0IG1ha2Ugcm9vdCB3aW5k b3cgdG9vIHNtYWxsLgorICAgICAgKHdoZW4gKD4gZGVsdGEgbWF4LWRlbHRhKQorCShzZXRx IGRlbHRhIG1heC1kZWx0YSkpCiAKICAgICAgICh1bmxlc3MgKHplcm9wIGRlbHRhKQotCTs7 IFJlc2l6ZSBub3cuCiAJKHdpbmRvdy0tcmVzaXplLXJlc2V0IGZyYW1lKQotCTs7IElkZWFs bHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcmVzaXplIGp1c3QgdGhlIGxhc3QgY2hpbGQgb2Yg cm9vdAotCTs7IGhlcmUuICBTZWUgdGhlIGNvbW1lbnQgaW4gYHJlc2l6ZS1yb290LXdpbmRv dy12ZXJ0aWNhbGx5JyBmb3IKLQk7OyB3aHkgd2UgZG8gbm90IGRvIHRoYXQuCiAJKHdpbmRv dy0tcmVzaXplLXRoaXMtd2luZG93IHJvb3QgKC0gZGVsdGEpIG5pbCBuaWwgdCkKIAkoc2V0 LXdpbmRvdy1uZXctcGl4ZWwgd2luZG93ICgrIGhlaWdodCBkZWx0YSkpCiAJOzsgVGhlIGZv bGxvd2luZyByb3V0aW5lIGNhdGNoZXMgdGhlIGNhc2Ugd2hlcmUgd2Ugd2FudCB0byByZXNp emUKQEAgLTU4ODEsNyArNTg4Miw3IEBAIHdpbmRvdy0tc3RhdGUtcHV0LTIKIAkJKGxldCAo KHNjcm9sbC1iYXJzIChjZHIgKGFzc3EgJ3Njcm9sbC1iYXJzIHN0YXRlKSkpKQogCQkgIChz ZXQtd2luZG93LXNjcm9sbC1iYXJzCiAJCSAgIHdpbmRvdyAoY2FyIHNjcm9sbC1iYXJzKSAo bnRoIDIgc2Nyb2xsLWJhcnMpCi0JCSAgIChudGggMyBzY3JvbGwtYmFycykgKG50aCA1IHNj cm9sbC1iYXJzKSkpCisJCSAgIChudGggMyBzY3JvbGwtYmFycykgKG50aCA1IHNjcm9sbC1i YXJzKSAobnRoIDYgc2Nyb2xsLWJhcnMpKSkKIAkJKHNldC13aW5kb3ctdnNjcm9sbCB3aW5k b3cgKGNkciAoYXNzcSAndnNjcm9sbCBzdGF0ZSkpKQogCQk7OyBBZGp1c3QgdmVydGljYWxs eS4KIAkJKGlmIChvciAobWVtcSB3aW5kb3ctc2l6ZS1maXhlZCAnKHQgaGVpZ2h0KSkKQEAg LTg0ODQsNyArODQ4NSw3IEBAIGZpdC1mcmFtZS10by1idWZmZXIKICAgICAgICAgICAgIChp ZiBwYXJlbnQKICAgICAgICAgICAgICAgICAoZnJhbWUtbmF0aXZlLWhlaWdodCBwYXJlbnQp CiAgICAgICAgICAgICAgICgtIChudGggMyBnZW9tZXRyeSkgKG50aCAxIGdlb21ldHJ5KSkp KQotICAgICAgICAgICA7OyBGUkFNRSdTIHBhcmVudCBvciB3b3JrYXJlYSBzaXplcy4gIFVz ZWQgd2hlbiBubyBtYXJnaW5zCisgICAgICAgICAgIDs7IEZSQU1FJ3MgcGFyZW50IG9yIHdv cmthcmVhIHNpemVzLiAgVXNlZCB3aGVuIG5vIG1hcmdpbnMKICAgICAgICAgICAgOzsgYXJl IHNwZWNpZmllZC4KICAgICAgICAgICAgKHBhcmVudC1vci13b3JrYXJlYQogICAgICAgICAg ICAgKGlmIHBhcmVudApkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmMgYi9zcmMvZnJhbWUuYwpp bmRleCA2MzYzYTg3MzY4Li5kOTRkZTQxN2U0IDEwMDY0NAotLS0gYS9zcmMvZnJhbWUuYwor KysgYi9zcmMvZnJhbWUuYwpAQCAtNzEyLDcgKzcxMiw3IEBAIGFkanVzdF9mcmFtZV9zaXpl IChzdHJ1Y3QgZnJhbWUgKmYsIGludCBuZXdfd2lkdGgsIGludCBuZXdfaGVpZ2h0LCBpbnQg aW5oaWJpdCwKIAogICBpZiAobmV3X3dpbmRvd3Nfd2lkdGggIT0gb2xkX3dpbmRvd3Nfd2lk dGgpCiAgICAgewotICAgICAgcmVzaXplX2ZyYW1lX3dpbmRvd3MgKGYsIG5ld193aW5kb3dz X3dpZHRoLCAxLCAxKTsKKyAgICAgIHJlc2l6ZV9mcmFtZV93aW5kb3dzIChmLCBuZXdfd2lu ZG93c193aWR0aCwgdHJ1ZSk7CiAKICAgICAgIC8qIE1TRE9TIGZyYW1lcyBjYW5ub3QgUFJF VEVORCwgYXMgdGhleSBjaGFuZ2UgZnJhbWUgc2l6ZSBieQogCSBtYW5pcHVsYXRpbmcgdmlk ZW8gaGFyZHdhcmUuICAqLwpAQCAtNzM3LDcgKzczNyw3IEBAIGFkanVzdF9mcmFtZV9zaXpl IChzdHJ1Y3QgZnJhbWUgKmYsIGludCBuZXdfd2lkdGgsIGludCBuZXdfaGVpZ2h0LCBpbnQg aW5oaWJpdCwKIAkgbGVmdCBlZGdlcy4gICovCiAgICAgICB8fCBXSU5ET1dfVE9QX1BJWEVM X0VER0UgKHIpICE9IEZSQU1FX1RPUF9NQVJHSU5fSEVJR0hUIChmKSkKICAgICB7Ci0gICAg ICByZXNpemVfZnJhbWVfd2luZG93cyAoZiwgbmV3X3dpbmRvd3NfaGVpZ2h0LCAwLCAxKTsK KyAgICAgIHJlc2l6ZV9mcmFtZV93aW5kb3dzIChmLCBuZXdfd2luZG93c19oZWlnaHQsIGZh bHNlKTsKIAogICAgICAgLyogTVNET1MgZnJhbWVzIGNhbm5vdCBQUkVURU5ELCBhcyB0aGV5 IGNoYW5nZSBmcmFtZSBzaXplIGJ5CiAJIG1hbmlwdWxhdGluZyB2aWRlbyBoYXJkd2FyZS4g ICovCkBAIC05MzEsMTUgKzkzMSwxMSBAQCBtYWtlX2ZyYW1lIChib29sIG1pbmlfcCkKICAg fQogCiAgIGlmIChtaW5pX3ApCi0gICAgewotICAgICAgc2V0X3dpbmRvd19idWZmZXIgKG1p bmlfd2luZG93LAotCQkJIChOSUxQIChWbWluaWJ1ZmZlcl9saXN0KQotCQkJICA/IGdldF9t aW5pYnVmZmVyICgwKQotCQkJICA6IEZjYXIgKFZtaW5pYnVmZmVyX2xpc3QpKSwKLQkJCSAw LCAwKTsKLSAgICAgIC8qIE5vIGhvcml6b250YWwgc2Nyb2xsIGJhcnMgaW4gbWluaWJ1ZmZl cnMuICAqLwotICAgICAgd3NldF9ob3Jpem9udGFsX3Njcm9sbF9iYXIgKG13LCBRbmlsKTsK LSAgICB9CisgICAgc2V0X3dpbmRvd19idWZmZXIgKG1pbmlfd2luZG93LAorCQkgICAgICAg KE5JTFAgKFZtaW5pYnVmZmVyX2xpc3QpCisJCQk/IGdldF9taW5pYnVmZmVyICgwKQorCQkJ OiBGY2FyIChWbWluaWJ1ZmZlcl9saXN0KSksCisJCSAgICAgICAwLCAwKTsKIAogICBmc2V0 X3Jvb3Rfd2luZG93IChmLCByb290X3dpbmRvdyk7CiAgIGZzZXRfc2VsZWN0ZWRfd2luZG93 IChmLCByb290X3dpbmRvdyk7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmMgYi9zcmMvd2lu ZG93LmMKaW5kZXggMWIyMDUzNjcyNy4uOWEwYTlhMTE1YyAxMDA2NDQKLS0tIGEvc3JjL3dp bmRvdy5jCisrKyBiL3NyYy93aW5kb3cuYwpAQCAtNTksMTIgKzU5LDEzIEBAIHN0YXRpYyB2 b2lkIHNlbGVjdF93aW5kb3dfMSAoTGlzcF9PYmplY3QsIGJvb2wpOwogc3RhdGljIHZvaWQg cnVuX3dpbmRvd19jb25maWd1cmF0aW9uX2NoYW5nZV9ob29rIChzdHJ1Y3QgZnJhbWUgKik7 CiAKIHN0YXRpYyBzdHJ1Y3Qgd2luZG93ICpzZXRfd2luZG93X2ZyaW5nZXMgKHN0cnVjdCB3 aW5kb3cgKiwgTGlzcF9PYmplY3QsCi0JCQkJCSAgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0 KTsKKwkJCQkJICBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsCisJCQkJCSAgTGlzcF9PYmpl Y3QpOwogc3RhdGljIHN0cnVjdCB3aW5kb3cgKnNldF93aW5kb3dfbWFyZ2lucyAoc3RydWN0 IHdpbmRvdyAqLCBMaXNwX09iamVjdCwKIAkJCQkJICBMaXNwX09iamVjdCk7CiBzdGF0aWMg c3RydWN0IHdpbmRvdyAqc2V0X3dpbmRvd19zY3JvbGxfYmFycyAoc3RydWN0IHdpbmRvdyAq LCBMaXNwX09iamVjdCwKIAkJCQkJICAgICAgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LAot CQkJCQkgICAgICBMaXNwX09iamVjdCk7CisJCQkJCSAgICAgIExpc3BfT2JqZWN0LCBMaXNw X09iamVjdCk7CiBzdGF0aWMgdm9pZCBhcHBseV93aW5kb3dfYWRqdXN0bWVudCAoc3RydWN0 IHdpbmRvdyAqKTsKIAogLyogVGhpcyBpcyB0aGUgd2luZG93IGluIHdoaWNoIHRoZSB0ZXJt aW5hbCdzIGN1cnNvciBzaG91bGQKQEAgLTM5ODMsMTQgKzM5ODQsMTggQEAgc2V0X3dpbmRv d19idWZmZXIgKExpc3BfT2JqZWN0IHdpbmRvdywgTGlzcF9PYmplY3QgYnVmZmVyLAogCiAg IGlmICgha2VlcF9tYXJnaW5zX3ApCiAgICAgewotICAgICAgLyogU2V0IGxlZnQgYW5kIHJp Z2h0IG1hcmdpbmFsIGFyZWEgd2lkdGggZXRjLiBmcm9tIGJ1ZmZlci4gICovCi0gICAgICBz ZXRfd2luZG93X2ZyaW5nZXMgKHcsIEJWQVIgKGIsIGxlZnRfZnJpbmdlX3dpZHRoKSwKLQkJ CSAgQlZBUiAoYiwgcmlnaHRfZnJpbmdlX3dpZHRoKSwKLQkJCSAgQlZBUiAoYiwgZnJpbmdl c19vdXRzaWRlX21hcmdpbnMpKTsKLSAgICAgIHNldF93aW5kb3dfc2Nyb2xsX2JhcnMgKHcs IEJWQVIgKGIsIHNjcm9sbF9iYXJfd2lkdGgpLAotCQkJICAgICAgQlZBUiAoYiwgdmVydGlj YWxfc2Nyb2xsX2Jhcl90eXBlKSwKLQkJCSAgICAgIEJWQVIgKGIsIHNjcm9sbF9iYXJfaGVp Z2h0KSwKLQkJCSAgICAgIEJWQVIgKGIsIGhvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlKSk7 CisgICAgICAvKiBTZXQgZnJpbmdlcyBhbmQgc2Nyb2xsIGJhcnMgZnJvbSBidWZmZXIgdW5s ZXNzIHRoZXkgaGF2ZSBiZWVuCisJIGRlY2xhcmVkIGFzIHBlcnNpc3RlbnQuICAqLworICAg ICAgaWYgKCF3LT5mcmluZ2VzX3BlcnNpc3RlbnQpCisJc2V0X3dpbmRvd19mcmluZ2VzICh3 LCBCVkFSIChiLCBsZWZ0X2ZyaW5nZV93aWR0aCksCisJCQkgICAgQlZBUiAoYiwgcmlnaHRf ZnJpbmdlX3dpZHRoKSwKKwkJCSAgICBCVkFSIChiLCBmcmluZ2VzX291dHNpZGVfbWFyZ2lu cyksIFFuaWwpOworICAgICAgaWYgKCF3LT5zY3JvbGxfYmFyc19wZXJzaXN0ZW50KQorCXNl dF93aW5kb3dfc2Nyb2xsX2JhcnMgKHcsIEJWQVIgKGIsIHNjcm9sbF9iYXJfd2lkdGgpLAor CQkJCUJWQVIgKGIsIHZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZSksCisJCQkJQlZBUiAoYiwg c2Nyb2xsX2Jhcl9oZWlnaHQpLAorCQkJCUJWQVIgKGIsIGhvcml6b250YWxfc2Nyb2xsX2Jh cl90eXBlKSwgUW5pbCk7CisgICAgICAvKiBTZXQgbGVmdCBhbmQgcmlnaHQgbWFyZ2luYWwg YXJlYSB3aWR0aCBmcm9tIGJ1ZmZlci4gICovCiAgICAgICBzZXRfd2luZG93X21hcmdpbnMg KHcsIEJWQVIgKGIsIGxlZnRfbWFyZ2luX2NvbHMpLAogCQkJICBCVkFSIChiLCByaWdodF9t YXJnaW5fY29scykpOwogICAgICAgYXBwbHlfd2luZG93X2FkanVzdG1lbnQgKHcpOwpAQCAt NDY2MSw3OCArNDY2Niw0OSBAQCB2YWx1ZXMuICAqLykKIH0KIAogCi0vKiBSZXNpemUgZnJh bWUgRidzIHdpbmRvd3Mgd2hlbiBGJ3Mgd2lkdGggb3IgaGVpZ2h0IGlzIHNldCB0byBTSVpF LgotICAgSWYgSE9SRkxBRyBpcyB6ZXJvLCBGJ3Mgd2lkdGggd2FzIHNldCB0byBTSVpFLCBv dGhlcndpc2UgaXRzIGhlaWdodAotICAgd2FzIHNldC4gIFNJWkUgaXMgaW50ZXJwcmV0ZWQg aW4gRidzIGNhbm9uaWNhbCBjaGFyYWN0ZXIgdW5pdHMKLSAgIChhLmsuYS4gImNvbHVtbnMi IG9yICJsaW5lcyIpLCB1bmxlc3MgUElYRUxXSVNFIGlzIG5vbi16ZXJvLCB3aGljaAotICAg bWVhbnMgdG8gaW50ZXJwcmV0IFNJWkUgaW4gcGl4ZWwgdW5pdHMuICAqLworLyoqCitSZXNp emUgZnJhbWUgRidzIHdpbmRvd3Mgd2hlbiBGJ3MgaW5uZXIgaGVpZ2h0IChpbm5lciB3aWR0 aCBpZiBIT1JGTEFHCitpcyB0cnVlKSBoYXMgYmVlbiBzZXQgdG8gU0laRSBwaXhlbHMuICAq Lwogdm9pZAotcmVzaXplX2ZyYW1lX3dpbmRvd3MgKHN0cnVjdCBmcmFtZSAqZiwgaW50IHNp emUsIGJvb2wgaG9yZmxhZywgYm9vbCBwaXhlbHdpc2UpCityZXNpemVfZnJhbWVfd2luZG93 cyAoc3RydWN0IGZyYW1lICpmLCBpbnQgc2l6ZSwgYm9vbCBob3JmbGFnKQogewogICBMaXNw X09iamVjdCByb290ID0gZi0+cm9vdF93aW5kb3c7CiAgIHN0cnVjdCB3aW5kb3cgKnIgPSBY V0lORE9XIChyb290KTsKLSAgTGlzcF9PYmplY3QgbWluaSA9IGYtPm1pbmlidWZmZXJfd2lu ZG93OwotICBzdHJ1Y3Qgd2luZG93ICptOwotICAvKiBvbGRfc2l6ZSBpcyB0aGUgb2xkIHNp emUgb2YgdGhlIGZyYW1lJ3Mgcm9vdCB3aW5kb3cuICAqLwotICBpbnQgb2xkX3NpemUgPSBo b3JmbGFnID8gci0+dG90YWxfY29scyA6IHItPnRvdGFsX2xpbmVzOwogICBpbnQgb2xkX3Bp eGVsX3NpemUgPSBob3JmbGFnID8gci0+cGl4ZWxfd2lkdGggOiByLT5waXhlbF9oZWlnaHQ7 Ci0gIC8qIG5ld19zaXplIGlzIHRoZSBuZXcgc2l6ZSBvZiB0aGUgZnJhbWUncyByb290IHdp bmRvdy4gICovCiAgIGludCBuZXdfc2l6ZSwgbmV3X3BpeGVsX3NpemU7CiAgIGludCB1bml0 ID0gaG9yZmxhZyA/IEZSQU1FX0NPTFVNTl9XSURUSCAoZikgOiBGUkFNRV9MSU5FX0hFSUdI VCAoZik7CisgIExpc3BfT2JqZWN0IG1pbmkgPSBmLT5taW5pYnVmZmVyX3dpbmRvdzsKKyAg c3RydWN0IHdpbmRvdyAqbSA9IFdJTkRPV1AgKG1pbmkpID8gWFdJTkRPVyAobWluaSkgOiBO VUxMOworICBpbnQgbWluaV9oZWlnaHQgPSAoKEZSQU1FX0hBU19NSU5JQlVGX1AgKGYpICYm ICFGUkFNRV9NSU5JQlVGX09OTFlfUCAoZikpCisJCSAgICAgPyB1bml0ICsgbS0+cGl4ZWxf aGVpZ2h0IC0gd2luZG93X2JvZHlfaGVpZ2h0IChtLCB0cnVlKQorCQkgICAgIDogMCk7CiAK LSAgLyogRG9uJ3QgbGV0IHRoZSBzaXplIGRyb3AgYmVsb3cgb25lIHVuaXQuICBUaGlzIGlz IG1vcmUgY29tZm9ydGluZwotICAgICB3aGVuIHdlIGFyZSBjYWxsZWQgZnJvbSAqX3NldF90 b29sX2Jhcl9saW5lcyBzaW5jZSB0aGUgbGF0dGVyIG1heQotICAgICBoYXZlIGltcGxpY2l0 bHkgZ2l2ZW4gdXMgYSB6ZXJvIG9yIG5lZ2F0aXZlIGhlaWdodC4gICovCi0gIGlmIChwaXhl bHdpc2UpCi0gICAgewotICAgICAgLyogTm90ZTogVGhpcyBkb2VzIG5vdCBpbmNsdWRlIHRo ZSBzaXplIGZvciBpbnRlcm5hbCBib3JkZXJzCi0JIHNpbmNlIHRoZXNlIGFyZSBub3QgcGFy dCBvZiB0aGUgZnJhbWUncyB0ZXh0IGFyZWEuICAqLwotICAgICAgbmV3X3BpeGVsX3NpemUg PSBtYXggKGhvcmZsYWcKLQkJCSAgICA/IHNpemUKLQkJCSAgICA6IChzaXplCi0JCQkgICAg ICAgLSAoKEZSQU1FX0hBU19NSU5JQlVGX1AgKGYpCi0JCQkJICAgJiYgIUZSQU1FX01JTklC VUZfT05MWV9QIChmKSkKLQkJCQkgID8gRlJBTUVfTElORV9IRUlHSFQgKGYpIDogMCkpLAot CQkJICAgIHVuaXQpOwotICAgICAgbmV3X3NpemUgPSBuZXdfcGl4ZWxfc2l6ZSAvIHVuaXQ7 Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgICAgbmV3X3NpemUgPSBtYXggKHNpemUgLSAo IWhvcmZsYWcKLQkJCSAgICAgICYmIEZSQU1FX0hBU19NSU5JQlVGX1AgKGYpCi0JCQkgICAg ICAmJiAhRlJBTUVfTUlOSUJVRl9PTkxZX1AgKGYpKSwKLQkJICAgICAgMSk7Ci0gICAgICBu ZXdfcGl4ZWxfc2l6ZSA9IG5ld19zaXplICogdW5pdDsKLSAgICB9CisgIG5ld19waXhlbF9z aXplID0gbWF4IChob3JmbGFnID8gc2l6ZSA6IHNpemUgLSBtaW5pX2hlaWdodCwgdW5pdCk7 CisgIG5ld19zaXplID0gbmV3X3BpeGVsX3NpemUgLyB1bml0OwogCiAgIGlmIChuZXdfcGl4 ZWxfc2l6ZSA9PSBvbGRfcGl4ZWxfc2l6ZQogICAgICAgJiYgKGhvcmZsYWcgfHwgci0+cGl4 ZWxfdG9wID09IEZSQU1FX1RPUF9NQVJHSU5fSEVJR0hUIChmKSkpCiAgICAgOwogICBlbHNl IGlmIChXSU5ET1dfTEVBRl9QIChyKSkKLSAgICAvKiBGb3IgYSBsZWFmIHJvb3Qgd2luZG93 IGp1c3Qgc2V0IHRoZSBzaXplLiAgKi8KLSAgICBpZiAoaG9yZmxhZykKLSAgICAgIHsKLQli b29sIGNoYW5nZWQgPSByLT5waXhlbF93aWR0aCAhPSBuZXdfcGl4ZWxfc2l6ZTsKLQotCXIt PnRvdGFsX2NvbHMgPSBuZXdfc2l6ZTsKLQlyLT5waXhlbF93aWR0aCA9IG5ld19waXhlbF9z aXplOwotCi0JaWYgKGNoYW5nZWQgJiYgIVdJTkRPV19QU0VVRE9fUCAocikpCi0JICBGUkFN RV9XSU5ET1dfQ0hBTkdFIChmKSA9IHRydWU7Ci0gICAgICB9Ci0gICAgZWxzZQotICAgICAg ewotCWJvb2wgY2hhbmdlZCA9IHItPnBpeGVsX2hlaWdodCAhPSBuZXdfcGl4ZWxfc2l6ZTsK LQotCXItPnRvcF9saW5lID0gRlJBTUVfVE9QX01BUkdJTiAoZik7Ci0Jci0+cGl4ZWxfdG9w ID0gRlJBTUVfVE9QX01BUkdJTl9IRUlHSFQgKGYpOworICAgIHsKKyAgICAgIC8qIEZvciBh IGxlYWYgcm9vdCB3aW5kb3cganVzdCBzZXQgdGhlIHNpemUuICAqLworICAgICAgaWYgKGhv cmZsYWcpCisJeworCSAgci0+dG90YWxfY29scyA9IG5ld19zaXplOworCSAgci0+cGl4ZWxf d2lkdGggPSBuZXdfcGl4ZWxfc2l6ZTsKKwl9CisgICAgICBlbHNlCisJeworCSAgci0+dG9w X2xpbmUgPSBGUkFNRV9UT1BfTUFSR0lOIChmKTsKKwkgIHItPnBpeGVsX3RvcCA9IEZSQU1F X1RPUF9NQVJHSU5fSEVJR0hUIChmKTsKIAotCXItPnRvdGFsX2xpbmVzID0gbmV3X3NpemU7 Ci0Jci0+cGl4ZWxfaGVpZ2h0ID0gbmV3X3BpeGVsX3NpemU7CisJICByLT50b3RhbF9saW5l cyA9IG5ld19zaXplOworCSAgci0+cGl4ZWxfaGVpZ2h0ID0gbmV3X3BpeGVsX3NpemU7CisJ fQogCi0JaWYgKGNoYW5nZWQgJiYgIVdJTkRPV19QU0VVRE9fUCAocikpCi0JICBGUkFNRV9X SU5ET1dfQ0hBTkdFIChmKSA9IHRydWU7Ci0gICAgICB9CisgICAgICBGUkFNRV9XSU5ET1df Q0hBTkdFIChmKQorCT0gIVdJTkRPV19QU0VVRE9fUCAocikgJiYgbmV3X3BpeGVsX3NpemUg IT0gb2xkX3BpeGVsX3NpemU7CisgICAgfQogICBlbHNlCiAgICAgewogICAgICAgTGlzcF9P YmplY3QgZGVsdGE7CkBAIC00NzQzLDE0ICs0NzE5LDEwIEBAIHJlc2l6ZV9mcmFtZV93aW5k b3dzIChzdHJ1Y3QgZnJhbWUgKmYsIGludCBzaXplLCBib29sIGhvcmZsYWcsIGJvb2wgcGl4 ZWx3aXNlKQogCSAgci0+cGl4ZWxfdG9wID0gRlJBTUVfVE9QX01BUkdJTl9IRUlHSFQgKGYp OwogCX0KIAotICAgICAgaWYgKHBpeGVsd2lzZSkKLQlYU0VUSU5UIChkZWx0YSwgbmV3X3Bp eGVsX3NpemUgLSBvbGRfcGl4ZWxfc2l6ZSk7Ci0gICAgICBlbHNlCi0JWFNFVElOVCAoZGVs dGEsIG5ld19zaXplIC0gb2xkX3NpemUpOworICAgICAgWFNFVElOVCAoZGVsdGEsIG5ld19w aXhlbF9zaXplIC0gb2xkX3BpeGVsX3NpemUpOwogCiAgICAgICAvKiBUcnkgYSAibm9ybWFs IiByZXNpemUgZmlyc3QuICAqLwotICAgICAgcmVzaXplX3Jvb3Rfd2luZG93IChyb290LCBk ZWx0YSwgaG9yZmxhZyA/IFF0IDogUW5pbCwgUW5pbCwKLQkJCSAgcGl4ZWx3aXNlID8gUXQg OiBRbmlsKTsKKyAgICAgIHJlc2l6ZV9yb290X3dpbmRvdyAocm9vdCwgZGVsdGEsIGhvcmZs YWcgPyBRdCA6IFFuaWwsIFFuaWwsIFF0KTsKICAgICAgIGlmICh3aW5kb3dfcmVzaXplX2No ZWNrIChyLCBob3JmbGFnKQogCSAgJiYgbmV3X3BpeGVsX3NpemUgPT0gWEZJWE5VTSAoci0+ bmV3X3BpeGVsKSkKIAl7CkBAIC00NzYwLDggKzQ3MzIsNyBAQCByZXNpemVfZnJhbWVfd2lu ZG93cyAoc3RydWN0IGZyYW1lICpmLCBpbnQgc2l6ZSwgYm9vbCBob3JmbGFnLCBib29sIHBp eGVsd2lzZSkKICAgICAgIGVsc2UKIAl7CiAJICAvKiBUcnkgd2l0aCAicmVhc29uYWJsZSIg bWluaW11bSBzaXplcyBuZXh0LiAgKi8KLQkgIHJlc2l6ZV9yb290X3dpbmRvdyAocm9vdCwg ZGVsdGEsIGhvcmZsYWcgPyBRdCA6IFFuaWwsIFF0LAotCQkJICAgICAgcGl4ZWx3aXNlID8g UXQgOiBRbmlsKTsKKwkgIHJlc2l6ZV9yb290X3dpbmRvdyAocm9vdCwgZGVsdGEsIGhvcmZs YWcgPyBRdCA6IFFuaWwsIFF0LCBRdCk7CiAJICBpZiAod2luZG93X3Jlc2l6ZV9jaGVjayAo ciwgaG9yZmxhZykKIAkgICAgICAmJiBuZXdfcGl4ZWxfc2l6ZSA9PSBYRklYTlVNIChyLT5u ZXdfcGl4ZWwpKQogCSAgICB7CkBAIC00NzgxLDkgKzQ3NTIsOCBAQCByZXNpemVfZnJhbWVf d2luZG93cyAoc3RydWN0IGZyYW1lICpmLCBpbnQgc2l6ZSwgYm9vbCBob3JmbGFnLCBib29s IHBpeGVsd2lzZSkKIAl9CiAgICAgICBlbHNlCiAJewotCSAgLyogQXJlIHdlIHN1cmUgd2Ug YWx3YXlzIHdhbnQgMSBsaW5lIGhlcmU/ICAqLwotCSAgbS0+dG90YWxfbGluZXMgPSAxOwot CSAgbS0+cGl4ZWxfaGVpZ2h0ID0gRlJBTUVfTElORV9IRUlHSFQgKGYpOworCSAgbS0+dG90 YWxfbGluZXMgPSBtaW5pX2hlaWdodCAvIHVuaXQ7CisJICBtLT5waXhlbF9oZWlnaHQgPSBt aW5pX2hlaWdodDsKIAkgIG0tPnRvcF9saW5lID0gci0+dG9wX2xpbmUgKyByLT50b3RhbF9s aW5lczsKIAkgIG0tPnBpeGVsX3RvcCA9IHItPnBpeGVsX3RvcCArIHItPnBpeGVsX2hlaWdo dDsKIAl9CkBAIC01MjExLDE3ICs1MTgxLDExIEBAIHZvaWQKIGdyb3dfbWluaV93aW5kb3cg KHN0cnVjdCB3aW5kb3cgKncsIGludCBkZWx0YSkKIHsKICAgc3RydWN0IGZyYW1lICpmID0g WEZSQU1FICh3LT5mcmFtZSk7Ci0gIGludCBvbGRfaGVpZ2h0ID0gV0lORE9XX1BJWEVMX0hF SUdIVCAodyk7Ci0gIGludCBtaW5faGVpZ2h0ID0gRlJBTUVfTElORV9IRUlHSFQgKGYpOwor ICBpbnQgb2xkX2hlaWdodCA9IHdpbmRvd19ib2R5X2hlaWdodCAodywgdHJ1ZSk7CiAKICAg ZWFzc2VydCAoTUlOSV9XSU5ET1dfUCAodykpOwogCi0gIGlmIChvbGRfaGVpZ2h0ICsgZGVs dGEgPCBtaW5faGVpZ2h0KQotICAgIC8qIE5ldmVyIHNocmluayBtaW5pLXdpbmRvdyB0byBs ZXNzIHRoYW4gaXRzIG1pbmltdW0KLSAgICAgICBoZWlnaHQuICAqLwotICAgIGRlbHRhID0g b2xkX2hlaWdodCA+IG1pbl9oZWlnaHQgPyBtaW5faGVpZ2h0IC0gb2xkX2hlaWdodCA6IDA7 Ci0KLSAgaWYgKGRlbHRhICE9IDApCisgIGlmICgoZGVsdGEgIT0gMCkgJiYgKG9sZF9oZWln aHQgKyBkZWx0YSA+PSBGUkFNRV9MSU5FX0hFSUdIVCAoZikpKQogICAgIHsKICAgICAgIExp c3BfT2JqZWN0IHJvb3QgPSBGUkFNRV9ST09UX1dJTkRPVyAoZik7CiAgICAgICBzdHJ1Y3Qg d2luZG93ICpyID0gWFdJTkRPVyAocm9vdCk7CkBAIC01MjQ2LDcgKzUyMTAsNyBAQCB2b2lk CiBzaHJpbmtfbWluaV93aW5kb3cgKHN0cnVjdCB3aW5kb3cgKncpCiB7CiAgIHN0cnVjdCBm cmFtZSAqZiA9IFhGUkFNRSAody0+ZnJhbWUpOwotICBpbnQgZGVsdGEgPSBXSU5ET1dfUElY RUxfSEVJR0hUICh3KSAtIEZSQU1FX0xJTkVfSEVJR0hUIChmKTsKKyAgaW50IGRlbHRhID0g d2luZG93X2JvZHlfaGVpZ2h0ICh3LCB0cnVlKSAtIEZSQU1FX0xJTkVfSEVJR0hUIChmKTsK IAogICBlYXNzZXJ0IChNSU5JX1dJTkRPV19QICh3KSk7CiAKQEAgLTUyNjMsNiArNTIyNywx MSBAQCBzaHJpbmtfbWluaV93aW5kb3cgKHN0cnVjdCB3aW5kb3cgKncpCiAgICAgICBpZiAo RklYTlVNUCAoZ3JvdykgJiYgd2luZG93X3Jlc2l6ZV9jaGVjayAociwgZmFsc2UpKQogCXJl c2l6ZV9taW5pX3dpbmRvd19hcHBseSAodywgLVhGSVhOVU0gKGdyb3cpKTsKICAgICB9Cisg IGVsc2UgaWYgKGRlbHRhIDwgMCkKKyAgICAvKiBkZWx0YSBjYW4gYmUgbGVzcyB0aGFuIHpl cm8gYWZ0ZXIgYWRkaW5nIGhvcml6b250YWwgc2Nyb2xsCisgICAgICAgYmFyLiAgKi8KKyAg ICBncm93X21pbmlfd2luZG93ICh3LCAtZGVsdGEpOworCiB9CiAKIERFRlVOICgicmVzaXpl LW1pbmktd2luZG93LWludGVybmFsIiwgRnJlc2l6ZV9taW5pX3dpbmRvd19pbnRlcm5hbCwK QEAgLTY3NDAsOSArNjcwOSwxMSBAQCBzdHJ1Y3Qgc2F2ZWRfd2luZG93CiAgIExpc3BfT2Jq ZWN0IHN0YXJ0X2F0X2xpbmVfYmVnOwogICBMaXNwX09iamVjdCBkaXNwbGF5X3RhYmxlOwog ICBMaXNwX09iamVjdCBsZWZ0X21hcmdpbl9jb2xzLCByaWdodF9tYXJnaW5fY29sczsKLSAg TGlzcF9PYmplY3QgbGVmdF9mcmluZ2Vfd2lkdGgsIHJpZ2h0X2ZyaW5nZV93aWR0aCwgZnJp bmdlc19vdXRzaWRlX21hcmdpbnM7Ci0gIExpc3BfT2JqZWN0IHNjcm9sbF9iYXJfd2lkdGgs IHZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZSwgZGVkaWNhdGVkOworICBMaXNwX09iamVjdCBs ZWZ0X2ZyaW5nZV93aWR0aCwgcmlnaHRfZnJpbmdlX3dpZHRoOworICBMaXNwX09iamVjdCBm cmluZ2VzX291dHNpZGVfbWFyZ2lucywgZnJpbmdlc19wZXJzaXN0ZW50OworICBMaXNwX09i amVjdCBzY3JvbGxfYmFyX3dpZHRoLCB2ZXJ0aWNhbF9zY3JvbGxfYmFyX3R5cGU7CiAgIExp c3BfT2JqZWN0IHNjcm9sbF9iYXJfaGVpZ2h0LCBob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlw ZTsKKyAgTGlzcF9PYmplY3Qgc2Nyb2xsX2JhcnNfcGVyc2lzdGVudCwgZGVkaWNhdGVkOwog ICBMaXNwX09iamVjdCBjb21iaW5hdGlvbl9saW1pdCwgd2luZG93X3BhcmFtZXRlcnM7CiB9 OwogCkBAIC02OTU3LDggKzY5MjgsMTAgQEAgdGhlIHJldHVybiB2YWx1ZSBpcyBuaWwuICBP dGhlcndpc2UgdGhlIHZhbHVlIGlzIHQuICAqLykKIAkgIHctPmxlZnRfZnJpbmdlX3dpZHRo ID0gWEZJWE5VTSAocC0+bGVmdF9mcmluZ2Vfd2lkdGgpOwogCSAgdy0+cmlnaHRfZnJpbmdl X3dpZHRoID0gWEZJWE5VTSAocC0+cmlnaHRfZnJpbmdlX3dpZHRoKTsKIAkgIHctPmZyaW5n ZXNfb3V0c2lkZV9tYXJnaW5zID0gIU5JTFAgKHAtPmZyaW5nZXNfb3V0c2lkZV9tYXJnaW5z KTsKKwkgIHctPmZyaW5nZXNfcGVyc2lzdGVudCA9ICFOSUxQIChwLT5mcmluZ2VzX3BlcnNp c3RlbnQpOwogCSAgdy0+c2Nyb2xsX2Jhcl93aWR0aCA9IFhGSVhOVU0gKHAtPnNjcm9sbF9i YXJfd2lkdGgpOwogCSAgdy0+c2Nyb2xsX2Jhcl9oZWlnaHQgPSBYRklYTlVNIChwLT5zY3Jv bGxfYmFyX2hlaWdodCk7CisJICB3LT5zY3JvbGxfYmFyc19wZXJzaXN0ZW50ID0gIU5JTFAg KHAtPnNjcm9sbF9iYXJzX3BlcnNpc3RlbnQpOwogCSAgd3NldF92ZXJ0aWNhbF9zY3JvbGxf YmFyX3R5cGUgKHcsIHAtPnZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZSk7CiAJICB3c2V0X2hv cml6b250YWxfc2Nyb2xsX2Jhcl90eXBlICh3LCBwLT5ob3Jpem9udGFsX3Njcm9sbF9iYXJf dHlwZSk7CiAJICB3c2V0X2RlZGljYXRlZCAodywgcC0+ZGVkaWNhdGVkKTsKQEAgLTcyNzks OCArNzI1MiwxMCBAQCBzYXZlX3dpbmRvd19zYXZlIChMaXNwX09iamVjdCB3aW5kb3csIHN0 cnVjdCBMaXNwX1ZlY3RvciAqdmVjdG9yLCBwdHJkaWZmX3QgaSkKICAgICAgIHAtPmxlZnRf ZnJpbmdlX3dpZHRoID0gbWFrZV9maXhudW0gKHctPmxlZnRfZnJpbmdlX3dpZHRoKTsKICAg ICAgIHAtPnJpZ2h0X2ZyaW5nZV93aWR0aCA9IG1ha2VfZml4bnVtICh3LT5yaWdodF9mcmlu Z2Vfd2lkdGgpOwogICAgICAgcC0+ZnJpbmdlc19vdXRzaWRlX21hcmdpbnMgPSB3LT5mcmlu Z2VzX291dHNpZGVfbWFyZ2lucyA/IFF0IDogUW5pbDsKKyAgICAgIHAtPmZyaW5nZXNfcGVy c2lzdGVudCA9IHctPmZyaW5nZXNfcGVyc2lzdGVudCA/IFF0IDogUW5pbDsKICAgICAgIHAt PnNjcm9sbF9iYXJfd2lkdGggPSBtYWtlX2ZpeG51bSAody0+c2Nyb2xsX2Jhcl93aWR0aCk7 CiAgICAgICBwLT5zY3JvbGxfYmFyX2hlaWdodCA9IG1ha2VfZml4bnVtICh3LT5zY3JvbGxf YmFyX2hlaWdodCk7CisgICAgICBwLT5zY3JvbGxfYmFyc19wZXJzaXN0ZW50ID0gdy0+c2Ny b2xsX2JhcnNfcGVyc2lzdGVudCA/IFF0IDogUW5pbDsKICAgICAgIHAtPnZlcnRpY2FsX3Nj cm9sbF9iYXJfdHlwZSA9IHctPnZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZTsKICAgICAgIHAt Pmhvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlID0gdy0+aG9yaXpvbnRhbF9zY3JvbGxfYmFy X3R5cGU7CiAgICAgICBwLT5kZWRpY2F0ZWQgPSB3LT5kZWRpY2F0ZWQ7CkBAIC03NTE2LDQ5 ICs3NDkxLDcxIEBAIGFzIG5pbC4gICovKQogICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBzdGF0 aWMgc3RydWN0IHdpbmRvdyAqCi1zZXRfd2luZG93X2ZyaW5nZXMgKHN0cnVjdCB3aW5kb3cg KncsIExpc3BfT2JqZWN0IGxlZnRfd2lkdGgsCi0JCSAgICBMaXNwX09iamVjdCByaWdodF93 aWR0aCwgTGlzcF9PYmplY3Qgb3V0c2lkZV9tYXJnaW5zKQorc2V0X3dpbmRvd19mcmluZ2Vz IChzdHJ1Y3Qgd2luZG93ICp3LAorCQkgICAgTGlzcF9PYmplY3QgbGVmdF93aWR0aCwgTGlz cF9PYmplY3QgcmlnaHRfd2lkdGgsCisJCSAgICBMaXNwX09iamVjdCBvdXRzaWRlX21hcmdp bnMsIExpc3BfT2JqZWN0IHBlcnNpc3RlbnQpCiB7Ci0gIGJvb2wgb3V0c2lkZSA9ICFOSUxQ IChvdXRzaWRlX21hcmdpbnMpOwotICBpbnQgbGVmdCA9IGV4dHJhY3RfZGltZW5zaW9uIChs ZWZ0X3dpZHRoKTsKLSAgaW50IHJpZ2h0ID0gZXh0cmFjdF9kaW1lbnNpb24gKHJpZ2h0X3dp ZHRoKTsKLQotICAvKiBEbyBub3RoaW5nIG9uIGEgdHR5IG9yIGlmIG5vdGhpbmcgdG8gYWN0 dWFsbHkgY2hhbmdlLiAgKi8KLSAgaWYgKEZSQU1FX1dJTkRPV19QIChXSU5ET1dfWEZSQU1F ICh3KSkKLSAgICAgICYmICh3LT5sZWZ0X2ZyaW5nZV93aWR0aCAhPSBsZWZ0Ci0JICB8fCB3 LT5yaWdodF9mcmluZ2Vfd2lkdGggIT0gcmlnaHQKLQkgIHx8IHctPmZyaW5nZXNfb3V0c2lk ZV9tYXJnaW5zICE9IG91dHNpZGUpKQorICAvKiBEbyBub3RoaW5nIG9uIGEgdHR5LiAgKi8K KyAgaWYgKCFGUkFNRV9XSU5ET1dfUCAoV0lORE9XX1hGUkFNRSAodykpKQorICAgIHJldHVy biBOVUxMOworICBlbHNlCiAgICAgewotICAgICAgaWYgKGxlZnQgPiAwIHx8IHJpZ2h0ID4g MCkKKyAgICAgIHN0cnVjdCBmcmFtZSAqZiA9IFhGUkFNRSAoV0lORE9XX0ZSQU1FICh3KSk7 CisgICAgICBpbnQgb2xkX2xlZnQgPSBXSU5ET1dfTEVGVF9GUklOR0VfV0lEVEggKHcpOwor ICAgICAgaW50IG9sZF9yaWdodCA9IFdJTkRPV19SSUdIVF9GUklOR0VfV0lEVEggKHcpOwor ICAgICAgaW50IG5ld19sZWZ0ID0gZXh0cmFjdF9kaW1lbnNpb24gKGxlZnRfd2lkdGgpOwor ICAgICAgaW50IG5ld19yaWdodCA9IGV4dHJhY3RfZGltZW5zaW9uIChyaWdodF93aWR0aCk7 CisgICAgICBib29sIG91dHNpZGUgPSAhTklMUCAob3V0c2lkZV9tYXJnaW5zKTsKKyAgICAg IGJvb2wgY2hhbmdlZCA9IGZhbHNlOworICAgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKKwor ICAgICAgLyogQ2hlY2sgZGltZW5zaW9ucyBvZiBuZXcgZnJpbmdlcy4gIE1ha2UgY2hhbmdl cyBvbmx5IGlmIHRoZXkKKwkgZml0IHRoZSB3aW5kb3cncyBkaW1lbnNpb25zLiAgKi8KKyAg ICAgIGlmICgoV0lORE9XX1BJWEVMX1dJRFRIICh3KQorCSAgIC0gV0lORE9XX01BUkdJTlNf V0lEVEggKHcpCisJICAgLSBXSU5ET1dfU0NST0xMX0JBUl9BUkVBX1dJRFRIICh3KQorCSAg IC0gV0lORE9XX1JJR0hUX0RJVklERVJfV0lEVEggKHcpCisJICAgLSAobmV3X2xlZnQgPT0g LTEgPyBGUkFNRV9MRUZUX0ZSSU5HRV9XSURUSCAoZikgOiBuZXdfbGVmdCkKKwkgICAtIChu ZXdfcmlnaHQgPT0gLTEgPyBGUkFNRV9SSUdIVF9GUklOR0VfV0lEVEggKGYpIDogbmV3X3Jp Z2h0KSkKKwkgID49IE1JTl9TQUZFX1dJTkRPV19QSVhFTF9XSURUSCAodykpCisJeworCSAg dy0+bGVmdF9mcmluZ2Vfd2lkdGggPSBuZXdfbGVmdDsKKwkgIHctPnJpZ2h0X2ZyaW5nZV93 aWR0aCA9IG5ld19yaWdodDsKKwkgIGNoYW5nZWQgPSBuZXdfbGVmdCAhPSBvbGRfbGVmdCB8 fCBuZXdfcmlnaHQgIT0gb2xkX3JpZ2h0OworCX0KKyAgICAgIGVsc2UKKwlmYWlsZWQgPSB0 cnVlOworCisgICAgICAvKiBQbGFjaW5nIGZyaW5nZXMgb3VzaWRlIG1hcmdpbnMuICAqLwor ICAgICAgaWYgKG91dHNpZGUgIT0gdy0+ZnJpbmdlc19vdXRzaWRlX21hcmdpbnMpCiAJewot CSAgLyogRG9uJ3QgY2hhbmdlIGFueXRoaW5nIGlmIG5ldyBmcmluZ2VzIGRvbid0IGZpdC4g ICovCi0JICBpZiAoKFdJTkRPV19QSVhFTF9XSURUSCAodykKLQkgICAgICAgLSBXSU5ET1df TUFSR0lOU19XSURUSCAodykKLQkgICAgICAgLSBXSU5ET1dfU0NST0xMX0JBUl9BUkVBX1dJ RFRIICh3KQotCSAgICAgICAtIG1heCAobGVmdCwgMCkgLSBtYXggKHJpZ2h0LCAwKSkKLQkg ICAgICA8IE1JTl9TQUZFX1dJTkRPV19QSVhFTF9XSURUSCAodykpCi0JICAgIHJldHVybiBO VUxMOworCSAgdy0+ZnJpbmdlc19vdXRzaWRlX21hcmdpbnMgPSBvdXRzaWRlOworCSAgY2hh bmdlZCA9IHRydWU7CiAJfQogCi0gICAgICB3LT5sZWZ0X2ZyaW5nZV93aWR0aCA9IGxlZnQ7 Ci0gICAgICB3LT5yaWdodF9mcmluZ2Vfd2lkdGggPSByaWdodDsKLSAgICAgIHctPmZyaW5n ZXNfb3V0c2lkZV9tYXJnaW5zID0gb3V0c2lkZTsKKyAgICAgIC8qIE1ha2Ugc2V0dGluZ3Mg cGVyc2lzdGVudCB1bmxlc3Mgd2UgZmFpbGVkIHRvIGFwcGx5IHNvbWUKKwkgY2hhbmdlcy4g ICovCisgICAgICBpZiAoIWZhaWxlZCkKKwl3LT5mcmluZ2VzX3BlcnNpc3RlbnQgPSAhTklM UCAocGVyc2lzdGVudCk7CiAKICAgICAgIC8qIFRoaXMgaXMgbmVlZGVkIHRvIHRyaWdnZXIg aW1tZWRpYXRlIHJlZGlzcGxheSBvZiB0aGUgd2luZG93CiAJIHdoZW4gaXRzIGZyaW5nZXMg YXJlIGNoYW5nZWQsIGJlY2F1c2UgZnJpbmdlcyBhcmUgcmVkcmF3bgogCSBvbmx5IGlmIHVw ZGF0ZV93aW5kb3cgaXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHRyaWdnZXIgdGhhdCBldmVuCiAJ IGlmIHRoZSB3aW5kb3cncyBnbHlwaCBtYXRyaWNlcyBkaWQgbm90IGNoYW5nZSBhdCBhbGwu ICAqLwotICAgICAgd2luZG93c19vcl9idWZmZXJzX2NoYW5nZWQgPSAzNTsKLSAgICAgIHJl dHVybiB3OworICAgICAgaWYgKGNoYW5nZWQpCisJeworCSAgd2luZG93c19vcl9idWZmZXJz X2NoYW5nZWQgPSAzNTsKKwkgIHJldHVybiB3OworCX0KKyAgICAgIGVsc2UKKwlyZXR1cm4g TlVMTDsKICAgICB9Ci0gIGVsc2UKLSAgICByZXR1cm4gTlVMTDsKIH0KIAogREVGVU4gKCJz ZXQtd2luZG93LWZyaW5nZXMiLCBGc2V0X3dpbmRvd19mcmluZ2VzLCBTc2V0X3dpbmRvd19m cmluZ2VzLAotICAgICAgIDIsIDQsIDAsCi0gICAgICAgZG9jOiAvKiBTZXQgdGhlIGZyaW5n ZSB3aWR0aHMgb2Ygd2luZG93IFdJTkRPVy4KLVdJTkRPVyBtdXN0IGJlIGEgbGl2ZSB3aW5k b3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBvbmUuCisgICAgICAgMiwgNSwgMCwK KyAgICAgICBkb2M6IC8qIFNldCBmcmluZ2VzIG9mIHNwZWNpZmllZCBXSU5ET1cuCitXSU5E T1cgbXVzdCBzcGVjaWZ5IGEgbGl2ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxl Y3RlZCBvbmUuCiAKIFNlY29uZCBhcmcgTEVGVC1XSURUSCBzcGVjaWZpZXMgdGhlIG51bWJl ciBvZiBwaXhlbHMgdG8gcmVzZXJ2ZSBmb3IKIHRoZSBsZWZ0IGZyaW5nZS4gIE9wdGlvbmFs IHRoaXJkIGFyZyBSSUdIVC1XSURUSCBzcGVjaWZpZXMgdGhlIHJpZ2h0CkBAIC03NTcwLDMy ICs3NTY3LDQwIEBAIElmIG9wdGlvbmFsIGZvdXJ0aCBhcmcgT1VUU0lERS1NQVJHSU5TIGlz IG5vbi1uaWwsIGRyYXcgdGhlIGZyaW5nZXMKIG91dHNpZGUgb2YgdGhlIGRpc3BsYXkgbWFy Z2lucy4gIEJ5IGRlZmF1bHQsIGZyaW5nZXMgYXJlIGRyYXduIGJldHdlZW4KIGRpc3BsYXkg bWFyZ2luYWwgYXJlYXMgYW5kIHRoZSB0ZXh0IGFyZWEuCiAKK09wdGlvbmFsIGZpZnRoIGFy Z3VtZW50IFBFUlNJU1RFTlQgbm9uLW5pbCBtZWFucyB0aGF0IGZyaW5nZSBzZXR0aW5ncwor Zm9yIFdJTkRPVyBhcmUgcGVyc2lzdGVudCwgaS5lLiwgcmVtYWluIHVuY2hhbmdlZCB3aGVu IGFub3RoZXIgYnVmZmVyCitpcyBzaG93biBpbiBXSU5ET1cuICBQRVJTSVNURU5UIG5pbCBt ZWFucyB0aGF0IGZyaW5nZXMgYXJlIHJlc2V0IGZyb20KK2J1ZmZlciBsb2NhbCB2YWx1ZXMg d2hlbiAnc2V0LXdpbmRvdy1idWZmZXInIGlzIGNhbGxlZCBvbiBXSU5ET1cgd2l0aAordGhl IGFyZ3VtZW50IEtFRVAtTUFSR0lOUyBuaWwuCisKIExlYXZlIGZyaW5nZXMgdW5jaGFuZ2Vk IGlmIFdJTkRPVyBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvIGFjY29tbW9kYXRlCiBmcmluZ2Vz IG9mIHRoZSBkZXNpcmVkIHdpZHRoLiAgUmV0dXJuIHQgaWYgYW55IGZyaW5nZSB3YXMgYWN0 dWFsbHkKIGNoYW5nZWQgYW5kIG5pbCBvdGhlcndpc2UuICAqLykKLSAgKExpc3BfT2JqZWN0 IHdpbmRvdywgTGlzcF9PYmplY3QgbGVmdF93aWR0aCwKLSAgIExpc3BfT2JqZWN0IHJpZ2h0 X3dpZHRoLCBMaXNwX09iamVjdCBvdXRzaWRlX21hcmdpbnMpCisgIChMaXNwX09iamVjdCB3 aW5kb3csIExpc3BfT2JqZWN0IGxlZnRfd2lkdGgsIExpc3BfT2JqZWN0IHJpZ2h0X3dpZHRo LAorICAgTGlzcF9PYmplY3Qgb3V0c2lkZV9tYXJnaW5zLCBMaXNwX09iamVjdCBwZXJzaXN0 ZW50KQogewogICBzdHJ1Y3Qgd2luZG93ICp3Ci0gICAgPSBzZXRfd2luZG93X2ZyaW5nZXMg KGRlY29kZV9saXZlX3dpbmRvdyAod2luZG93KSwKLQkJCSAgbGVmdF93aWR0aCwgcmlnaHRf d2lkdGgsIG91dHNpZGVfbWFyZ2lucyk7CisgICAgPSBzZXRfd2luZG93X2ZyaW5nZXMgKGRl Y29kZV9saXZlX3dpbmRvdyAod2luZG93KSwgbGVmdF93aWR0aCwKKwkJCSAgcmlnaHRfd2lk dGgsIG91dHNpZGVfbWFyZ2lucywgcGVyc2lzdGVudCk7CiAgIHJldHVybiB3ID8gKGFwcGx5 X3dpbmRvd19hZGp1c3RtZW50ICh3KSwgUXQpIDogUW5pbDsKIH0KIAogCiBERUZVTiAoIndp bmRvdy1mcmluZ2VzIiwgRndpbmRvd19mcmluZ2VzLCBTd2luZG93X2ZyaW5nZXMsCiAgICAg ICAgMCwgMSwgMCwKLSAgICAgICBkb2M6IC8qIEdldCB3aWR0aCBvZiBmcmluZ2VzIG9mIHdp bmRvdyBXSU5ET1cuCisgICAgICAgZG9jOiAvKiBSZXR1cm4gZnJpbmdlIHNldHRpbmdzIGZv ciBzcGVjaWZpZWQgV0lORE9XLgogV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQg ZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIAotVmFsdWUgaXMgYSBsaXN0IG9mIHRo ZSBmb3JtIChMRUZULVdJRFRIIFJJR0hULVdJRFRIIE9VVFNJREUtTUFSR0lOUykuICAqLykK K1ZhbHVlIGlzIGEgbGlzdCBvZiB0aGUgZm9ybSAoTEVGVC1XSURUSCBSSUdIVC1XSURUSCBP VVRTSURFLU1BUkdJTlMKK1BFUlNJU1RFTlQpLCBzZWUgYHNldC13aW5kb3ctZnJpbmdlcycu ICAqLykKICAgKExpc3BfT2JqZWN0IHdpbmRvdykKIHsKICAgc3RydWN0IHdpbmRvdyAqdyA9 IGRlY29kZV9saXZlX3dpbmRvdyAod2luZG93KTsKIAotICByZXR1cm4gbGlzdDMgKG1ha2Vf Zml4bnVtIChXSU5ET1dfTEVGVF9GUklOR0VfV0lEVEggKHcpKSwKKyAgcmV0dXJuIGxpc3Q0 IChtYWtlX2ZpeG51bSAoV0lORE9XX0xFRlRfRlJJTkdFX1dJRFRIICh3KSksCiAJCW1ha2Vf Zml4bnVtIChXSU5ET1dfUklHSFRfRlJJTkdFX1dJRFRIICh3KSksCi0JCVdJTkRPV19IQVNf RlJJTkdFU19PVVRTSURFX01BUkdJTlMgKHcpID8gUXQgOiBRbmlsKTsKKwkJV0lORE9XX0hB U19GUklOR0VTX09VVFNJREVfTUFSR0lOUyAodykgPyBRdCA6IFFuaWwsCisJCXctPmZyaW5n ZXNfcGVyc2lzdGVudCA/IFF0IDogUW5pbCk7CiB9CiAKIApAQCAtNzYwNywxMDUgKzc2MTIs MTI3IEBAIFZhbHVlIGlzIGEgbGlzdCBvZiB0aGUgZm9ybSAoTEVGVC1XSURUSCBSSUdIVC1X SURUSCBPVVRTSURFLU1BUkdJTlMpLiAgKi8pCiBzdGF0aWMgc3RydWN0IHdpbmRvdyAqCiBz ZXRfd2luZG93X3Njcm9sbF9iYXJzIChzdHJ1Y3Qgd2luZG93ICp3LCBMaXNwX09iamVjdCB3 aWR0aCwKIAkJCUxpc3BfT2JqZWN0IHZlcnRpY2FsX3R5cGUsIExpc3BfT2JqZWN0IGhlaWdo dCwKLQkJCUxpc3BfT2JqZWN0IGhvcml6b250YWxfdHlwZSkKKwkJCUxpc3BfT2JqZWN0IGhv cml6b250YWxfdHlwZSwgTGlzcF9PYmplY3QgcGVyc2lzdGVudCkKIHsKLSAgaW50IGl3aWR0 aCA9IGV4dHJhY3RfZGltZW5zaW9uICh3aWR0aCk7Ci0gIGJvb2wgY2hhbmdlZCA9IGZhbHNl OwotCi0gIGlmIChpd2lkdGggPT0gMCkKLSAgICB2ZXJ0aWNhbF90eXBlID0gUW5pbDsKLQot ICBpZiAoIShOSUxQICh2ZXJ0aWNhbF90eXBlKQotCXx8IEVRICh2ZXJ0aWNhbF90eXBlLCBR bGVmdCkKLQl8fCBFUSAodmVydGljYWxfdHlwZSwgUXJpZ2h0KQotCXx8IEVRICh2ZXJ0aWNh bF90eXBlLCBRdCkpKQotICAgIGVycm9yICgiSW52YWxpZCB0eXBlIG9mIHZlcnRpY2FsIHNj cm9sbCBiYXIiKTsKLQotICBpZiAody0+c2Nyb2xsX2Jhcl93aWR0aCAhPSBpd2lkdGgKLSAg ICAgIHx8ICFFUSAody0+dmVydGljYWxfc2Nyb2xsX2Jhcl90eXBlLCB2ZXJ0aWNhbF90eXBl KSkKKyAgLyogRG8gbm90aGluZyBvbiBhIHR0eS4gICovCisgIGlmICghRlJBTUVfV0lORE9X X1AgKFdJTkRPV19YRlJBTUUgKHcpKSkKKyAgICByZXR1cm4gTlVMTDsKKyAgZWxzZQogICAg IHsKLSAgICAgIC8qIERvbid0IGNoYW5nZSBhbnl0aGluZyBpZiBuZXcgc2Nyb2xsIGJhciB3 b24ndCBmaXQuICAqLworICAgICAgc3RydWN0IGZyYW1lICpmID0gWEZSQU1FIChXSU5ET1df RlJBTUUgKHcpKTsKKyAgICAgIGludCBuZXdfd2lkdGggPSBleHRyYWN0X2RpbWVuc2lvbiAo d2lkdGgpOworICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgICBib29sIGZhaWxl ZCA9IGZhbHNlOworCisgICAgICBpZiAobmV3X3dpZHRoID09IDApCisJdmVydGljYWxfdHlw ZSA9IFFuaWw7CisgICAgICBlbHNlIGlmICghKE5JTFAgKHZlcnRpY2FsX3R5cGUpCisJCSB8 fCBFUSAodmVydGljYWxfdHlwZSwgUWxlZnQpCisJCSB8fCBFUSAodmVydGljYWxfdHlwZSwg UXJpZ2h0KQorCQkgfHwgRVEgKHZlcnRpY2FsX3R5cGUsIFF0KSkpCisJZXJyb3IgKCJJbnZh bGlkIHR5cGUgb2YgdmVydGljYWwgc2Nyb2xsIGJhciIpOworCisgICAgICAvKiBDaGVjayBk aW1lbnNpb24gb2YgbmV3IHNjcm9sbCBiYXIuICBNYWtlIGNoYW5nZXMgb25seSBpZiBpdAor CSBmaXQgdGhlIHdpbmRvdydzIGRpbWVuc2lvbnMuICAqLwogICAgICAgaWYgKChXSU5ET1df UElYRUxfV0lEVEggKHcpCiAJICAgLSBXSU5ET1dfTUFSR0lOU19XSURUSCAodykKIAkgICAt IFdJTkRPV19GUklOR0VTX1dJRFRIICh3KQotCSAgIC0gbWF4IChpd2lkdGgsIDApKQorCSAg IC0gV0lORE9XX1JJR0hUX0RJVklERVJfV0lEVEggKHcpCisJICAgLSAobmV3X3dpZHRoID09 IC0xID8gRlJBTUVfU0NST0xMX0JBUl9BUkVBX1dJRFRIIChmKSA6IG5ld193aWR0aCkpCiAJ ICA+PSBNSU5fU0FGRV9XSU5ET1dfUElYRUxfV0lEVEggKHcpKQogCXsKLQkgIHctPnNjcm9s bF9iYXJfd2lkdGggPSBpd2lkdGg7CisJICBjaGFuZ2VkID0gKCFFUSAodmVydGljYWxfdHlw ZSwgdy0+dmVydGljYWxfc2Nyb2xsX2Jhcl90eXBlKQorCQkgICAgIHx8IG5ld193aWR0aCAh PSBXSU5ET1dfU0NST0xMX0JBUl9BUkVBX1dJRFRIICh3KSk7CiAJICB3c2V0X3ZlcnRpY2Fs X3Njcm9sbF9iYXJfdHlwZSAodywgdmVydGljYWxfdHlwZSk7Ci0JICBjaGFuZ2VkID0gdHJ1 ZTsKKwkgIHctPnNjcm9sbF9iYXJfd2lkdGggPSBuZXdfd2lkdGg7CiAJfQotICAgIH0KKyAg ICAgIGVsc2UKKwlmYWlsZWQgPSB0cnVlOwogCiAjaWYgVVNFX0hPUklaT05UQUxfU0NST0xM X0JBUlMKLSAgewotICAgIGludCBpaGVpZ2h0ID0gZXh0cmFjdF9kaW1lbnNpb24gKGhlaWdo dCk7CisgICAgICBpbnQgbmV3X2hlaWdodCA9IGV4dHJhY3RfZGltZW5zaW9uIChoZWlnaHQp OwogCi0gICAgaWYgKE1JTklfV0lORE9XX1AgKHcpIHx8IGloZWlnaHQgPT0gMCkKLSAgICAg IGhvcml6b250YWxfdHlwZSA9IFFuaWw7CisgICAgICBpZiAoKE1JTklfV0lORE9XX1AgKHcp ICYmICFFUSAoaG9yaXpvbnRhbF90eXBlLCBRYm90dG9tKSkKKwkgIHx8IG5ld19oZWlnaHQg PT0gMCkKKwlob3Jpem9udGFsX3R5cGUgPSBRbmlsOwogCi0gICAgaWYgKCEoTklMUCAoaG9y aXpvbnRhbF90eXBlKQotCSAgfHwgRVEgKGhvcml6b250YWxfdHlwZSwgUWJvdHRvbSkKLQkg IHx8IEVRIChob3Jpem9udGFsX3R5cGUsIFF0KSkpCi0gICAgICBlcnJvciAoIkludmFsaWQg dHlwZSBvZiBob3Jpem9udGFsIHNjcm9sbCBiYXIiKTsKKyAgICAgIGlmICghKE5JTFAgKGhv cml6b250YWxfdHlwZSkKKwkgICAgfHwgRVEgKGhvcml6b250YWxfdHlwZSwgUWJvdHRvbSkK KwkgICAgfHwgRVEgKGhvcml6b250YWxfdHlwZSwgUXQpKSkKKwllcnJvciAoIkludmFsaWQg dHlwZSBvZiBob3Jpem9udGFsIHNjcm9sbCBiYXIiKTsKIAotICAgIGlmICh3LT5zY3JvbGxf YmFyX2hlaWdodCAhPSBpaGVpZ2h0Ci0JfHwgIUVRICh3LT5ob3Jpem9udGFsX3Njcm9sbF9i YXJfdHlwZSwgaG9yaXpvbnRhbF90eXBlKSkKLSAgICAgIHsKLQkvKiBEb24ndCBjaGFuZ2Ug YW55dGhpbmcgaWYgbmV3IHNjcm9sbCBiYXIgd29uJ3QgZml0LiAgKi8KLQlpZiAoKFdJTkRP V19QSVhFTF9IRUlHSFQgKHcpCi0JICAgICAtIFdJTkRPV19IRUFERVJfTElORV9IRUlHSFQg KHcpCi0JICAgICAtIFdJTkRPV19NT0RFX0xJTkVfSEVJR0hUICh3KQotCSAgICAgLSBtYXgg KGloZWlnaHQsIDApKQotCSAgICA+PSBNSU5fU0FGRV9XSU5ET1dfUElYRUxfSEVJR0hUICh3 KSkKLQkgIHsKLQkgICAgdy0+c2Nyb2xsX2Jhcl9oZWlnaHQgPSBpaGVpZ2h0OwotCSAgICB3 c2V0X2hvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlICh3LCBob3Jpem9udGFsX3R5cGUpOwot CSAgICBjaGFuZ2VkID0gdHJ1ZTsKLQkgIH0KLSAgICAgIH0KLSAgfQorICAgICAgLyogRG9u J3QgY2hhbmdlIGFueXRoaW5nIGlmIG5ldyBzY3JvbGwgYmFyIHdvbid0IGZpdC4gICovCisg ICAgICBpZiAoKFdJTkRPV19QSVhFTF9IRUlHSFQgKHcpCisJICAgLSBXSU5ET1dfSEVBREVS X0xJTkVfSEVJR0hUICh3KQorCSAgIC0gV0lORE9XX01PREVfTElORV9IRUlHSFQgKHcpCisJ ICAgLSAobmV3X2hlaWdodCA9PSAtMSA/IEZSQU1FX1NDUk9MTF9CQVJfQVJFQV9IRUlHSFQg KGYpIDogbmV3X2hlaWdodCkpCisJICA+PSBNSU5fU0FGRV9XSU5ET1dfUElYRUxfSEVJR0hU ICh3KSkKKwl7CisJICBjaGFuZ2VkID0gKGNoYW5nZWQKKwkJICAgICB8fCAhRVEgKGhvcml6 b250YWxfdHlwZSwgdy0+aG9yaXpvbnRhbF9zY3JvbGxfYmFyX3R5cGUpCisJCSAgICAgfHwg bmV3X2hlaWdodCAhPSBXSU5ET1dfU0NST0xMX0JBUl9BUkVBX0hFSUdIVCAodykpOworCSAg d3NldF9ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlwZSAodywgaG9yaXpvbnRhbF90eXBlKTsK KwkgIHctPnNjcm9sbF9iYXJfaGVpZ2h0ID0gbmV3X2hlaWdodDsKKwl9CisgICAgICBlbHNl CisJZmFpbGVkID0gdHJ1ZTsKICNlbHNlCi0gIHdzZXRfaG9yaXpvbnRhbF9zY3JvbGxfYmFy X3R5cGUgKHcsIFFuaWwpOworICAgICAgd3NldF9ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlw ZSAodywgUW5pbCk7CiAjZW5kaWYKIAotICAvKiBUaGlzIGlzIG5lZWRlZCB0byB0cmlnZ2Vy IGltbWVkaWF0ZSByZWRpc3BsYXkgb2YgdGhlIHdpbmRvdyB3aGVuCi0gICAgIHNjcm9sbCBi YXJzIGFyZSBjaGFuZ2VkLCBiZWNhdXNlIHNjcm9sbCBiYXJzIGFyZSByZWRpc3BsYXllZCBv bmx5Ci0gICAgIGlmIG1vcmUgdGhhbiBhIHNpbmdsZSB3aW5kb3cgbmVlZHMgdG8gYmUgY29u c2lkZXJlZCwgc2VlCi0gICAgIHJlZGlzcGxheV9pbnRlcm5hbC4gICovCi0gIGlmIChjaGFu Z2VkKQotICAgIHdpbmRvd3Nfb3JfYnVmZmVyc19jaGFuZ2VkID0gMzE7Ci0gIHJldHVybiBj aGFuZ2VkID8gdyA6IE5VTEw7CisgICAgICAvKiBNYWtlIHNldHRpbmdzIHBlcnNpc3RlbnQg dW5sZXNzIHdlIGZhaWxlZCB0byBhcHBseSBzb21lCisJIGNoYW5nZXMuICAqLworICAgICAg aWYgKCFmYWlsZWQpCisJdy0+c2Nyb2xsX2JhcnNfcGVyc2lzdGVudCA9ICFOSUxQIChwZXJz aXN0ZW50KTsKKworICAgICAgLyogVGhpcyBpcyBuZWVkZWQgdG8gdHJpZ2dlciBpbW1lZGlh dGUgcmVkaXNwbGF5IG9mIHRoZSB3aW5kb3cgd2hlbgorCSBzY3JvbGwgYmFycyBhcmUgY2hh bmdlZCwgYmVjYXVzZSBzY3JvbGwgYmFycyBhcmUgcmVkaXNwbGF5ZWQgb25seQorCSBpZiBt b3JlIHRoYW4gYSBzaW5nbGUgd2luZG93IG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQsIHNlZQor CSByZWRpc3BsYXlfaW50ZXJuYWwuICAqLworICAgICAgaWYgKGNoYW5nZWQpCisJd2luZG93 c19vcl9idWZmZXJzX2NoYW5nZWQgPSAzMTsKKworICAgICAgcmV0dXJuIGNoYW5nZWQgPyB3 IDogTlVMTDsKKyAgICB9CiB9CiAKIERFRlVOICgic2V0LXdpbmRvdy1zY3JvbGwtYmFycyIs IEZzZXRfd2luZG93X3Njcm9sbF9iYXJzLAotICAgICAgIFNzZXRfd2luZG93X3Njcm9sbF9i YXJzLCAxLCA1LCAwLAotICAgICAgIGRvYzogLyogU2V0IHdpZHRoIGFuZCB0eXBlIG9mIHNj cm9sbCBiYXJzIG9mIHdpbmRvdyBXSU5ET1cuCi1XSU5ET1cgbXVzdCBiZSBhIGxpdmUgd2lu ZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25lLgorICAgICAgIFNzZXRfd2lu ZG93X3Njcm9sbF9iYXJzLCAxLCA2LCAwLAorICAgICAgIGRvYzogLyogU2V0IHdpZHRoIGFu ZCB0eXBlIG9mIHNjcm9sbCBiYXJzIG9mIHNwZWNpZmllZCBXSU5ET1cuCitXSU5ET1cgbXVz dCBzcGVjaWZ5IGEgbGl2ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBv bmUuCiAKLVNlY29uZCBwYXJhbWV0ZXIgV0lEVEggc3BlY2lmaWVzIHRoZSBwaXhlbCB3aWR0 aCBmb3IgdGhlIHZlcnRpY2FsIHNjcm9sbAorU2Vjb25kIGFyZ3VtZW50IFdJRFRIIHNwZWNp ZmllcyB0aGUgcGl4ZWwgd2lkdGggZm9yIHRoZSB2ZXJ0aWNhbCBzY3JvbGwKIGJhci4gIElm IFdJRFRIIGlzIG5pbCwgdXNlIHRoZSBzY3JvbGwgYmFyIHdpZHRoIG9mIFdJTkRPVydzIGZy YW1lLgotVGhpcmQgcGFyYW1ldGVyIFZFUlRJQ0FMLVRZUEUgc3BlY2lmaWVzIHRoZSB0eXBl IG9mIHRoZSB2ZXJ0aWNhbCBzY3JvbGwKK1RoaXJkIGFyZ3VtZW50IFZFUlRJQ0FMLVRZUEUg c3BlY2lmaWVzIHRoZSB0eXBlIG9mIHRoZSB2ZXJ0aWNhbCBzY3JvbGwKIGJhcjogbGVmdCwg cmlnaHQsIG5pbCBvciB0IHdoZXJlIG5pbCBtZWFucyB0byBub3QgZGlzcGxheSBhIHZlcnRp Y2FsCiBzY3JvbGwgYmFyIG9uIFdJTkRPVyBhbmQgdCBtZWFucyB0byB1c2UgV0lORE9XIGZy YW1lJ3MgdmVydGljYWwgc2Nyb2xsCiBiYXIgdHlwZS4KIAotRm91cnRoIHBhcmFtZXRlciBI RUlHSFQgc3BlY2lmaWVzIHRoZSBwaXhlbCBoZWlnaHQgZm9yIHRoZSBob3Jpem9udGFsCitG b3VydGggYXJndW1lbnQgSEVJR0hUIHNwZWNpZmllcyB0aGUgcGl4ZWwgaGVpZ2h0IGZvciB0 aGUgaG9yaXpvbnRhbAogc2Nyb2xsIGJhci4gIElmIEhFSUdIVCBpcyBuaWwsIHVzZSB0aGUg c2Nyb2xsIGJhciBoZWlnaHQgb2YgV0lORE9XJ3MKLWZyYW1lLiAgRmlmdGggcGFyYW1ldGVy IEhPUklaT05UQUwtVFlQRSBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgdGhlCi1ob3Jpem9udGFs IHNjcm9sbCBiYXI6IGJvdHRvbSwgbmlsLCBvciB0IHdoZXJlIG5pbCBtZWFucyB0byBub3Qg ZGlzcGxheQotYSBob3Jpem9udGFsIHNjcm9sbCBiYXIgb24gV0lORE9XIGFuZCB0IG1lYW5z IHRvIHVzZSBXSU5ET1cgZnJhbWUncwotaG9yaXpvbnRhbCBzY3JvbGwgYmFyIHR5cGUuCitm cmFtZS4gIEZpZnRoIGFyZ3VtZW50IEhPUklaT05UQUwtVFlQRSBzcGVjaWZpZXMgdGhlIHR5 cGUgb2YgdGhlCitob3Jpem9udGFsIHNjcm9sbCBiYXI6IGJvdHRvbSwgbmlsLCBvciB0IHdo ZXJlIG5pbCBtZWFucyB0byBub3QKK2Rpc3BsYXkgYSBob3Jpem9udGFsIHNjcm9sbCBiYXIg b24gV0lORE9XIGFuZCB0IG1lYW5zIHRvIHVzZSBXSU5ET1cKK2ZyYW1lJ3MgaG9yaXpvbnRh bCBzY3JvbGwgYmFyIHR5cGUuICBJZiBXSU5ET1cgaXMgYSBtaW5pIHdpbmRvdywgdAorZWZm ZWN0aXZlbHkgYmVoYXZlcyBsaWtlIG5pbC4gIEhPUklaT05UQUwtVFlQRSBtdXN0IGVxdWFs IGJvdHRvbSBpbgorb3JkZXIgdG8gc2hvdyBhIHNjcm9sbCBiYXIgZm9yIG1pbmkgd2luZG93 cy4KKworT3B0aW9uYWwgc2l4dGggYXJndW1lbnQgUEVSU0lTVEVOVCBub24tbmlsIG1lYW5z IHRoYXQgc2Nyb2xsIGJhcgorc2V0dGluZ3MgZm9yIFdJTkRPVyBhcmUgcGVyc2lzdGVudCwg aS5lLiwgcmVtYWluIHVuY2hhbmdlZCB3aGVuCithbm90aGVyIGJ1ZmZlciBpcyBzaG93biBp biBXSU5ET1cuICBQRVJTSVNURU5UIG5pbCBtZWFucyB0aGF0IHNjcm9sbAorYmFycyBhcmUg cmVzZXQgZnJvbSBidWZmZXIgbG9jYWwgdmFsdWVzIHdoZW4gJ3NldC13aW5kb3ctYnVmZmVy JyBpcworY2FsbGVkIG9uIFdJTkRPVyB3aXRoIHRoZSBhcmd1bWVudCBLRUVQLU1BUkdJTlMg bmlsLgogCiBJZiBXSU5ET1cgaXMgbm90IGxhcmdlIGVub3VnaCB0byBhY2NvbW1vZGF0ZSBh IHNjcm9sbCBiYXIgb2YgdGhlCiBkZXNpcmVkIGRpbWVuc2lvbiwgbGVhdmUgdGhlIGNvcnJl c3BvbmRpbmcgc2Nyb2xsIGJhciB1bmNoYW5nZWQuCiBSZXR1cm4gdCBpZiBzY3JvbGwgYmFy cyB3ZXJlIGFjdHVhbGx5IGNoYW5nZWQgYW5kIG5pbCBvdGhlcndpc2UuICAqLykKICAgKExp c3BfT2JqZWN0IHdpbmRvdywgTGlzcF9PYmplY3Qgd2lkdGgsIExpc3BfT2JqZWN0IHZlcnRp Y2FsX3R5cGUsCi0gICBMaXNwX09iamVjdCBoZWlnaHQsIExpc3BfT2JqZWN0IGhvcml6b250 YWxfdHlwZSkKKyAgIExpc3BfT2JqZWN0IGhlaWdodCwgTGlzcF9PYmplY3QgaG9yaXpvbnRh bF90eXBlLCBMaXNwX09iamVjdCBwZXJzaXN0ZW50KQogewogICBzdHJ1Y3Qgd2luZG93ICp3 CiAgICAgPSBzZXRfd2luZG93X3Njcm9sbF9iYXJzIChkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyksCi0JCQkgICAgICB3aWR0aCwgdmVydGljYWxfdHlwZSwgaGVpZ2h0LCBob3Jpem9u dGFsX3R5cGUpOworCQkJICAgICAgd2lkdGgsIHZlcnRpY2FsX3R5cGUsIGhlaWdodCwKKwkJ CSAgICAgIGhvcml6b250YWxfdHlwZSwgcGVyc2lzdGVudCk7CiAgIHJldHVybiB3ID8gKGFw cGx5X3dpbmRvd19hZGp1c3RtZW50ICh3KSwgUXQpIDogUW5pbDsKIH0KIApAQCAtNzcxNiw5 ICs3NzQzLDkgQEAgREVGVU4gKCJ3aW5kb3ctc2Nyb2xsLWJhcnMiLCBGd2luZG93X3Njcm9s bF9iYXJzLCBTd2luZG93X3Njcm9sbF9iYXJzLAogV0lORE9XIG11c3QgYmUgYSBsaXZlIHdp bmRvdyBhbmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIAogVmFsdWUgaXMgYSBs aXN0IG9mIHRoZSBmb3JtIChXSURUSCBDT0xVTU5TIFZFUlRJQ0FMLVRZUEUgSEVJR0hUIExJ TkVTCi1IT1JJWk9OVEFMLVRZUEUpLiAgSWYgV0lEVEggb3IgSEVJR0hUIGlzIG5pbCBvciBW RVJUSUNBTC1UWVBFIG9yCi1IT1JJWk9OVEFMLVRZUEUgaXMgdCwgdGhlIHdpbmRvdyBpcyB1 c2luZyB0aGUgZnJhbWUncyBjb3JyZXNwb25kaW5nCi12YWx1ZS4gICovKQorSE9SSVpPTlRB TC1UWVBFIFBFUlNJU1RFTlQpLCBzZWUgYHNldC13aW5kb3ctc2Nyb2xsLWJhcnMnLiAgSWYg V0lEVEgKK29yIEhFSUdIVCBpcyBuaWwgb3IgVkVSVElDQUwtVFlQRSBvciBIT1JJWk9OVEFM LVRZUEUgaXMgdCwgV0lORE9XIGlzCit1c2luZyB0aGUgZnJhbWUncyBjb3JyZXNwb25kaW5n IHZhbHVlLiAgKi8pCiAgIChMaXNwX09iamVjdCB3aW5kb3cpCiB7CiAgIHN0cnVjdCB3aW5k b3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CkBAIC03NzI2LDEzICs3NzUz LDE0IEBAIHZhbHVlLiAgKi8pCiAgIHJldHVybiBGY29ucyAoKCh3LT5zY3JvbGxfYmFyX3dp ZHRoID49IDApCiAJCSA/IG1ha2VfZml4bnVtICh3LT5zY3JvbGxfYmFyX3dpZHRoKQogCQkg OiBRbmlsKSwKLQkJbGlzdDUgKG1ha2VfZml4bnVtIChXSU5ET1dfU0NST0xMX0JBUl9DT0xT ICh3KSksCi0JCSAgICAgICB3LT52ZXJ0aWNhbF9zY3JvbGxfYmFyX3R5cGUsCi0JCSAgICAg ICAoKHctPnNjcm9sbF9iYXJfaGVpZ2h0ID49IDApCi0JCQk/IG1ha2VfZml4bnVtICh3LT5z Y3JvbGxfYmFyX2hlaWdodCkKLQkJCTogUW5pbCksCi0JCSAgICAgICBtYWtlX2ZpeG51bSAo V0lORE9XX1NDUk9MTF9CQVJfTElORVMgKHcpKSwKLQkJICAgICAgIHctPmhvcml6b250YWxf c2Nyb2xsX2Jhcl90eXBlKSk7CisJCUZjb25zIChtYWtlX2ZpeG51bSAoV0lORE9XX1NDUk9M TF9CQVJfQ09MUyAodykpLAorCQkgICAgICAgbGlzdDUgKHctPnZlcnRpY2FsX3Njcm9sbF9i YXJfdHlwZSwKKwkJCSAgICAgICgody0+c2Nyb2xsX2Jhcl9oZWlnaHQgPj0gMCkKKwkJCSAg ICAgICA/IG1ha2VfZml4bnVtICh3LT5zY3JvbGxfYmFyX2hlaWdodCkKKwkJCSAgICAgICA6 IFFuaWwpLAorCQkJICAgICAgbWFrZV9maXhudW0gKFdJTkRPV19TQ1JPTExfQkFSX0xJTkVT ICh3KSksCisJCQkgICAgICB3LT5ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlwZSwKKwkJCSAg ICAgIHctPnNjcm9sbF9iYXJzX3BlcnNpc3RlbnQgPyBRdCA6IFFuaWwpKSk7CiB9CiAMCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKQEAgLTc5MjcsMTAgKzc5NTUsMTIgQEAgY29tcGFyZV93aW5k b3dfY29uZmlndXJhdGlvbnMgKExpc3BfT2JqZWN0IGNvbmZpZ3VyYXRpb24xLAogCSAgfHwg IUVRIChzdzEtPmxlZnRfZnJpbmdlX3dpZHRoLCBzdzItPmxlZnRfZnJpbmdlX3dpZHRoKQog CSAgfHwgIUVRIChzdzEtPnJpZ2h0X2ZyaW5nZV93aWR0aCwgc3cyLT5yaWdodF9mcmluZ2Vf d2lkdGgpCiAJICB8fCAhRVEgKHN3MS0+ZnJpbmdlc19vdXRzaWRlX21hcmdpbnMsIHN3Mi0+ ZnJpbmdlc19vdXRzaWRlX21hcmdpbnMpCisJICB8fCAhRVEgKHN3MS0+ZnJpbmdlc19wZXJz aXN0ZW50LCBzdzItPmZyaW5nZXNfcGVyc2lzdGVudCkKIAkgIHx8ICFFUSAoc3cxLT5zY3Jv bGxfYmFyX3dpZHRoLCBzdzItPnNjcm9sbF9iYXJfd2lkdGgpCiAJICB8fCAhRVEgKHN3MS0+ c2Nyb2xsX2Jhcl9oZWlnaHQsIHN3Mi0+c2Nyb2xsX2Jhcl9oZWlnaHQpCiAJICB8fCAhRVEg KHN3MS0+dmVydGljYWxfc2Nyb2xsX2Jhcl90eXBlLCBzdzItPnZlcnRpY2FsX3Njcm9sbF9i YXJfdHlwZSkKLQkgIHx8ICFFUSAoc3cxLT5ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlwZSwg c3cyLT5ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlwZSkpCisJICB8fCAhRVEgKHN3MS0+aG9y aXpvbnRhbF9zY3JvbGxfYmFyX3R5cGUsIHN3Mi0+aG9yaXpvbnRhbF9zY3JvbGxfYmFyX3R5 cGUpCisJICB8fCAhRVEgKHN3MS0+c2Nyb2xsX2JhcnNfcGVyc2lzdGVudCwgc3cyLT5zY3Jv bGxfYmFyc19wZXJzaXN0ZW50KSkKIAlyZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1n aXQgYS9zcmMvd2luZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggNmIwZjBlNWQwNy4uZGZi YzYzODUzMSAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApA QCAtNDIyLDYgKzQyMiwxNCBAQCBzdHJ1Y3Qgd2luZG93CiAgICAgICAgT3RoZXJ3aXNlIGRy YXcgdGhlbSBiZXR3ZWVuIG1hcmdpbiBhcmVhcyBhbmQgdGV4dC4gICovCiAgICAgYm9vbF9i ZiBmcmluZ2VzX291dHNpZGVfbWFyZ2lucyA6IDE7CiAKKyAgICAvKiBUcnVlIGlmIHRoaXMg d2luZG93J3MgZnJpbmdlIHNwZWNpZmljYXRpb25zIGFyZSBwZXJzaXN0ZW50LAorICAgICAg IGkuZS4sIGFsd2F5cyBzdXJ2aXZlIEZzZXRfd2luZG93X2J1ZmZlci4gICovCisgICAgYm9v bF9iZiBmcmluZ2VzX3BlcnNpc3RlbnQgOiAxOworCisgICAgLyogVHJ1ZSBpZiB0aGlzIHdp bmRvdydzIGNyb2xsIGJhciBzcGVjaWZpY2F0aW9ucyBhcmUgcGVyc2lzdGVudCwKKyAgICAg ICBpLmUuLCBhbHdheXMgc3Vydml2ZSBGc2V0X3dpbmRvd19idWZmZXIuICAqLworICAgIGJv b2xfYmYgc2Nyb2xsX2JhcnNfcGVyc2lzdGVudCA6IDE7CisKICAgICAvKiBUcnVlIGlmIHdp bmRvd19lbmRfcG9zIGFuZCB3aW5kb3dfZW5kX3Zwb3MgYXJlIHRydWx5IHZhbGlkLgogICAg ICAgIFRoaXMgaXMgZmFsc2UgaWYgbm9udHJpdmlhbCByZWRpc3BsYXkgaXMgcHJlZW1wdGVk IHNpbmNlIGluIHRoYXQgY2FzZQogICAgICAgIHRoZSBmcmFtZSBpbWFnZSB0aGF0IHdpbmRv d19lbmRfcG9zIGRpZCBub3QgZ2V0IG9udG8gdGhlIGZyYW1lLiAgKi8KQEAgLTg2MCw3ICs4 NjgsOSBAQCB3c2V0X25leHRfYnVmZmVycyAoc3RydWN0IHdpbmRvdyAqdywgTGlzcF9PYmpl Y3QgdmFsKQogICAgVy4gIEhvcml6b250YWwgc2Nyb2xsYmFycyBleGlzdCBmb3IgdG9vbGtp dCB2ZXJzaW9ucyBvbmx5LiAgKi8KICNpZiBVU0VfSE9SSVpPTlRBTF9TQ1JPTExfQkFSUwog I2RlZmluZSBXSU5ET1dfSEFTX0hPUklaT05UQUxfU0NST0xMX0JBUihXKQkJCVwKLSAgKChX SU5ET1dfUFNFVURPX1AgKFcpIHx8IE1JTklfTk9OX09OTFlfV0lORE9XX1AgKFcpKQkJXAor ICAoKFdJTkRPV19QU0VVRE9fUCAoVykJCQkJCQlcCisgICAgfHwgKE1JTklfV0lORE9XX1Ag KFcpCQkJCQlcCisJJiYgIUVRIChXLT5ob3Jpem9udGFsX3Njcm9sbF9iYXJfdHlwZSwgUWJv dHRvbSkpKQlcCiAgICA/IGZhbHNlCQkJCQkJCVwKICAgIDogRVEgKFctPmhvcml6b250YWxf c2Nyb2xsX2Jhcl90eXBlLCBRdCkJCQlcCiAgICA/IEZSQU1FX0hBU19IT1JJWk9OVEFMX1ND Uk9MTF9CQVJTIChXSU5ET1dfWEZSQU1FIChXKSkJXApAQCAtMTA1OSw3ICsxMDY5LDcgQEAg ZXh0ZXJuIExpc3BfT2JqZWN0IG1pbmlidWZfc2VsZWN0ZWRfd2luZG93OwogZXh0ZXJuIExp c3BfT2JqZWN0IG1ha2Vfd2luZG93ICh2b2lkKTsKIGV4dGVybiBMaXNwX09iamVjdCB3aW5k b3dfZnJvbV9jb29yZGluYXRlcyAoc3RydWN0IGZyYW1lICosIGludCwgaW50LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHdpbmRvd19wYXJ0 ICosIGJvb2wpOwotZXh0ZXJuIHZvaWQgcmVzaXplX2ZyYW1lX3dpbmRvd3MgKHN0cnVjdCBm cmFtZSAqLCBpbnQsIGJvb2wsIGJvb2wpOworZXh0ZXJuIHZvaWQgcmVzaXplX2ZyYW1lX3dp bmRvd3MgKHN0cnVjdCBmcmFtZSAqLCBpbnQsIGJvb2wpOwogZXh0ZXJuIHZvaWQgcmVzdG9y ZV93aW5kb3dfY29uZmlndXJhdGlvbiAoTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZvaWQgZGVs ZXRlX2FsbF9jaGlsZF93aW5kb3dzIChMaXNwX09iamVjdCk7CiBleHRlcm4gdm9pZCBncm93 X21pbmlfd2luZG93IChzdHJ1Y3Qgd2luZG93ICosIGludCk7CmRpZmYgLS1naXQgYS9zcmMv eGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IDUwZjY0NDNmNmIuLjFiYjVmNWUwZjIgMTAw NjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0xMTM2OCw3ICsx MTM2OCw3IEBAIGJvb2wKIHJlc2l6ZV9taW5pX3dpbmRvdyAoc3RydWN0IHdpbmRvdyAqdywg Ym9vbCBleGFjdF9wKQogewogICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKHctPmZyYW1l KTsKLSAgaW50IG9sZF9oZWlnaHQgPSBXSU5ET1dfUElYRUxfSEVJR0hUICh3KTsKKyAgaW50 IG9sZF9oZWlnaHQgPSBXSU5ET1dfQk9YX1RFWFRfSEVJR0hUICh3KTsKIAogICBlYXNzZXJ0 IChNSU5JX1dJTkRPV19QICh3KSk7CiAKQEAgLTExNDAwLDcgKzExNDAwLDYgQEAgcmVzaXpl X21pbmlfd2luZG93IChzdHJ1Y3Qgd2luZG93ICp3LCBib29sIGV4YWN0X3ApCiAgIGVsc2UK ICAgICB7CiAgICAgICBzdHJ1Y3QgaXQgaXQ7Ci0gICAgICBpbnQgb2xkX2hlaWdodCA9IFdJ TkRPV19QSVhFTF9IRUlHSFQgKHcpOwogICAgICAgaW50IHVuaXQgPSBGUkFNRV9MSU5FX0hF SUdIVCAoZik7CiAgICAgICBpbnQgaGVpZ2h0LCBtYXhfaGVpZ2h0OwogICAgICAgc3RydWN0 IHRleHRfcG9zIHN0YXJ0OwpAQCAtMTE0NzAsNyArMTE0NjksNyBAQCByZXNpemVfbWluaV93 aW5kb3cgKHN0cnVjdCB3aW5kb3cgKncsIGJvb2wgZXhhY3RfcCkKIAlzZXRfYnVmZmVyX2lu dGVybmFsIChvbGRfY3VycmVudF9idWZmZXIpOwogICAgIH0KIAotICByZXR1cm4gV0lORE9X X1BJWEVMX0hFSUdIVCAodykgIT0gb2xkX2hlaWdodDsKKyAgcmV0dXJuIFdJTkRPV19CT1hf VEVYVF9IRUlHSFQgKHcpICE9IG9sZF9oZWlnaHQ7CiB9CiAKIApAQCAtMTY2NzksOSArMTY2 NzgsNyBAQCBzZXRfaG9yaXpvbnRhbF9zY3JvbGxfYmFyIChzdHJ1Y3Qgd2luZG93ICp3KQog ewogICBpbnQgc3RhcnQsIGVuZCwgd2hvbGUsIHBvcnRpb247CiAKLSAgaWYgKCFNSU5JX1dJ TkRPV19QICh3KQotICAgICAgfHwgKHcgPT0gWFdJTkRPVyAobWluaWJ1Zl93aW5kb3cpCi0J ICAmJiBOSUxQIChlY2hvX2FyZWFfYnVmZmVyWzBdKSkpCisgIGlmICghTUlOSV9XSU5ET1df UCAodykgfHwgRVEgKHctPmhvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlLCBRYm90dG9tKSkK ICAgICB7CiAgICAgICBzdHJ1Y3QgYnVmZmVyICpiID0gWEJVRkZFUiAody0+Y29udGVudHMp OwogICAgICAgc3RydWN0IGJ1ZmZlciAqb2xkX2J1ZmZlciA9IE5VTEw7Cgo= --------------2480800D72FE61815F77841B--