This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: failure notice


Messages have to be in ASCII format and under 100KB.

I think you tripped the no HTML rule.

--joel

On 6/27/2017 2:35 PM, Aditya Upadhyay wrote:
Hello All,

Is this the correct to send a patch ? I am attaching a single patch
for previously individual sent patches. I am requesting you to please
review the same and suggest me needed modification.

Thanks Gedare and Corinna  for helping me to understand the single
patch generation from several patches.

Regards,
Aditya Upadhyay

On Wed, Jun 28, 2017 at 1:02 AM,  <MAILER-DAEMON@sourceware.org> wrote:
Hi. This is the qmail-send program at sourceware.org.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<newlib@sourceware.org>:
Invalid mime type "text/html" detected in message text or
attachment.  Please send plain text messages only.
See http://sourceware.org/lists.html#sourceware-list-info for more information.
Contact newlib-owner@sourceware.org if you have questions about this. (#5.7.2)

--- Below this line is a copy of the message.

Return-Path: <aadit0402@gmail.com>
Received: (qmail 108984 invoked by uid 89); 27 Jun 2017 19:32:46 -0000
Authentication-Results: sourceware.org; auth=none
X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=3.9 required=5.0 tests=BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=Hx-languages-length:1674
X-Spam-Status: No, score=3.9 required=5.0 tests=BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org
X-Spam-Level: ***
X-HELO: mail-io0-f174.google.com
Received: from mail-io0-f174.google.com (HELO mail-io0-f174.google.com) (209.85.223.174)
  by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Jun 2017 19:32:45 +0000
Received: by mail-io0-f174.google.com with SMTP id z62so23678602ioi.3
         for <newlib@sourceware.org>; Tue, 27 Jun 2017 12:32:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
         d=gmail.com; s=20161025;
         h=mime-version:in-reply-to:references:from:date:message-id:subject:to;
         bh=mUJ4+KvyjRtm6UBXlN+dpwpTbT7ZyEznvXaQMTj/eWo=;
         b=V/aQFT5v5tUD3eHPoHqMhMaPBaQyM1r1rT0+bffRYSliiPA5pXyN7zu/LaW1Z4hOOe
          b+irsJfU1jJfF9PEmEzm5haqYmq/ZzNye/BCYmI211jLMUrLxggvSjr1GeUU6Zrkhmb1
          z4WQvgTE/nF8v2ikbCOzlbCH/qSYK86neTtcKsvjaEMbVo9wYvSANvp6dNAQVNNpd+qz
          WywQgGHG33xPLKXRJmp0KoyZ9e0X+6Lj9Vi4S0a5vdcHttqoj7W6iE7ApMPTEDbayla9
          CMCD32wIp2zXUfQl1KKQgboi/8Q8OsOsvR6H2tQVRHd+srdHkzlCyzknYaVheyGQFF1K
          Y0qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
         d=1e100.net; s=20161025;
         h=x-gm-message-state:mime-version:in-reply-to:references:from:date
          :message-id:subject:to;
         bh=mUJ4+KvyjRtm6UBXlN+dpwpTbT7ZyEznvXaQMTj/eWo=;
         b=KR6lb0mXbBlO8s8vg/v6ez+2J+Zm6vTZr7EqjdVGboBZqNDB0CFx19+KjHBylcqbXO
          oSmqjaAPcwB0XR7/WFGc1+E6rUQIZgzOb9NbQsuNX26lncPBkkQSBa0JeOmir2FuVrWi
          49ApzfDr0p62ci5s9Z+AQjQwlfagacP57rn0PLQGLY3rAvUJYfk9WW485leAbFn9Q9h7
          0sAMQkYeip6A76nkbf2uKYyK0mfgxroQQms3G7Z7j0Xtu9CYeWgSJ8ZyWBHQyAQj3ooC
          Bp/aXfYZHYR/500bbJB4ndkc4mlz5SclrGBxJ4lh9yhvHj+toEs8fCm28KfIL1Y0kpgA
          jeuA==
X-Gm-Message-State: AKS2vOyPLTnIWjx4MsQ53man9upWhR9/EHXrC3tuIVhUFMwd2xgSY+yj
         wqRcfHbVrLTLM1/lcS/nxl4gTD+aYw==
X-Received: by 10.107.170.80 with SMTP id t77mr8263100ioe.77.1498591963149;
  Tue, 27 Jun 2017 12:32:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.4.203 with HTTP; Tue, 27 Jun 2017 12:32:42 -0700 (PDT)
In-Reply-To: <20170626120421.GK6201@calimero.vinschen.de>
References: <CAMZxAxdTsVZ7nz4iQ3qw3WofaPVV4zh99W79cr9K4gkC4x8dWg@mail.gmail.com>
  <20170626120421.GK6201@calimero.vinschen.de>
From: Aditya Upadhyay <aadit0402@gmail.com>
Date: Wed, 28 Jun 2017 01:02:42 +0530
Message-ID: <CAMZxAxf6e8V7YE1sbauiSH+czesS-bkyrrmuD14XFzw1UGJS+w@mail.gmail.com>
Subject: Re: Adding some long double complex methods from NetBSD
To: newlib@sourceware.org, Gedare Bloom <gedare@rtems.org>
Content-Type: multipart/mixed; boundary="001a11415d58a0bfbb0552f6215b"

--001a11415d58a0bfbb0552f6215b
Content-Type: multipart/alternative; boundary="001a11415d58a0bfb50552f62159"

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

Hello All,

Is this the correct to send a patch ? I am attaching a single patch for
previously individual sent patches. I am requesting you to please review
the same and suggest me needed modification.

Thanks Gedare and Corinna  for helping me to understand the single patch
generation from several patches.

Regards,
Aditya Upadhyay

On Mon, Jun 26, 2017 at 5:34 PM, Corinna Vinschen <vinschen@redhat.com>
wrote:

On Jun 26 14:43, Aditya Upadhyay wrote:
Hello Developers,

I have ported some of the long double complex methods from NetBSD. I
am requesting you to please review the patch and suggest me needed
modification.

Uhm... patch *series*?  Clumping all patches together into a single
one wasn't quite what I meant :}


Corinna

--
Corinna Vinschen
Cygwin Maintainer
Red Hat


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

<div dir=3D"ltr"><div><div><div><div>Hello All,<br><br></div>Is this the co=
rrect to send a patch ? I am attaching a single patch for previously indivi=
dual sent patches. I am requesting you to please review the same and sugges=
t me needed modification.<br><br></div>Thanks Gedare and Corinna=C2=A0 for =
helping me to understand the single patch generation from several patches. =
<br><br></div>Regards,<br></div>Aditya Upadhyay<br></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Mon, Jun 26, 2017 at 5:34 PM, Co=
rinna Vinschen <span dir=3D"ltr">&lt;<a href=3D"mailto:vinschen@redhat.com"=
  target=3D"_blank">vinschen@redhat.com</a>&gt;</span> wrote:<br><blockquote=
  class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><span class=3D"">On Jun 26 14:43, Aditya Upadhyay wrote=
:<br>
&gt; Hello Developers,<br>
&gt;<br>
&gt; I have ported some of the long double complex methods from NetBSD. I<b=
r>
&gt; am requesting you to please review the patch and suggest me needed<br>
&gt; modification.<br>
<br>
</span>Uhm... patch *series*?=C2=A0 Clumping all patches together into a si=
ngle<br>
one wasn&#39;t quite what I meant :}<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
Corinna<br>
<br>
--<br>
Corinna Vinschen<br>
Cygwin Maintainer<br>
Red Hat<br>
</font></span></blockquote></div><br></div>

--001a11415d58a0bfb50552f62159--
--001a11415d58a0bfbb0552f6215b
Content-Type: application/octet-stream;
         name=Adding_long_double_complex_methods
Content-Disposition: attachment;
         filename=Adding_long_double_complex_methods
Content-Transfer-Encoding: base64
X-Attachment-Id: f_j4fyyghp1

ZGlmZiAtLWdpdCBhL25ld2xpYi9saWJtL2NvbXBsZXgvTWFrZWZpbGUuYW0gYi9uZXdsaWIvbGli
bS9jb21wbGV4L01ha2VmaWxlLmFtCmluZGV4IDQwMjA1M2YuLmRlMmZjYTkgMTAwNjQ0Ci0tLSBh
L25ld2xpYi9saWJtL2NvbXBsZXgvTWFrZWZpbGUuYW0KKysrIGIvbmV3bGliL2xpYm0vY29tcGxl
eC9NYWtlZmlsZS5hbQpAQCAtMTAsNyArMTAsOSBAQCBzcmMgPSBjYWJzLmMgY2Fjb3MuYyBjYWNv
c2guYyBjYXJnLmMgY2FzaW4uYyBjYXNpbmguYyBcCiAgICAgICBjcG93LmMgY3Byb2ouYyAgY3Jl
YWwuYyAgXAogICAgICAgY3Npbi5jIGNzaW5oLmMgY3NxcnQuYyBjdGFuLmMgY3RhbmguYwogCi1s
c3JjID0gY2Fic2wuYyBjcmVhbGwuYyBjaW1hZ2wuYyBjY29zaGwuYworbHNyYyA9IGNhYnNsLmMg
Y3JlYWxsLmMgY2ltYWdsLmMgY2Nvc2hsLmMgY2Fjb3NobC5jIFwgCisgICAgICAgY2xvZ2wuYyBj
c3FydGwuYyBjYXJnbC5jIGNwcm9qbC5jIGNleHBsLmMgY2VwaGVzX3N1YnJsLmNcCisgICAgICAg
Y2Fjb3NsLmMgY2Nvc2wuYwogCiBmc3JjID0JY2Fic2YuYyBjYXNpbmYuYyBjY29zZi5jIGNpbWFn
Zi5jIGNwcm9qZi5jICBcCiAgICAgICAgIGNzcXJ0Zi5jIGNhY29zZi5jIGNhc2luaGYuYyBjY29z
aGYuYyBjbG9nZi5jIGNsb2cxMGYuYyBcCkBAIC00Myw0ICs0NSw0IEBAIENIQVBURVJTID0gY29t
cGxleC50ZXgKIAogIyBBIHBhcnRpYWwgZGVwZW5kZW5jeSBsaXN0LgogCi0kKGxpYl9hX09CSkVD
VFMpOiAkKHNyY2RpcikvLi4vLi4vbGliYy9pbmNsdWRlL2NvbXBsZXguaCAkKHNyY2RpcikvY2Vw
aGVzX3N1YnIuaCAkKHNyY2RpcikvY2VwaGVzX3N1YnJmLmgKKyQobGliX2FfT0JKRUNUUyk6ICQo
c3JjZGlyKS8uLi8uLi9saWJjL2luY2x1ZGUvY29tcGxleC5oICQoc3JjZGlyKS9jZXBoZXNfc3Vi
ci5oICQoc3JjZGlyKS9jZXBoZXNfc3VicmYuaCAkKHNyY2RpcikvY2VwaGVzX3N1YnJsLmgKZGlm
ZiAtLWdpdCBhL25ld2xpYi9saWJtL2NvbXBsZXgvY2Fjb3NobC5jIGIvbmV3bGliL2xpYm0vY29t
cGxleC9jYWNvc2hsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU0ZTAw
NgotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY2Fjb3NobC5jCkBAIC0w
LDAgKzEsNDUgQEAKKy8qICROZXRCU0Q6IGNhY29zaGwuYyx2IDEuMSAyMDE0LzEwLzEwIDAwOjQ4
OjE4IGNocmlzdG9zIEV4cCAkICovCisKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDA3IFRoZSBO
ZXRCU0QgRm91bmRhdGlvbiwgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIHdyaXR0ZW4gYnkgU3RlcGhlbiBMLiBN
b3NoaWVyLgorICogSXQgaXMgcmVkaXN0cmlidXRlZCBieSB0aGUgTmV0QlNEIEZvdW5kYXRpb24g
YnkgcGVybWlzc2lvbiBvZiB0aGUgYXV0aG9yLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIE5FVEJTRCBGT1VOREFUSU9OLCBJTkMuIEFORCBDT05UUklC
VVRPUlMKKyAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAorICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgRk9VTkRBVElPTiBP
UiBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlIDxjb21wbGV4Lmg+CisKK2xvbmcgZG91YmxlIGNvbXBsZXgKK2NhY29zaGwobG9uZyBk
b3VibGUgY29tcGxleCB6KQoreworCWxvbmcgZG91YmxlIGNvbXBsZXggdzsKKworI2lmIDAgLyog
ZG9lcyBub3QgZ2l2ZSB0aGUgcHJpbmNpcGFsIHZhbHVlICovCisJdyA9IEkgKiBjYWNvc2woeik7
CisjZWxzZQorCXcgPSBjbG9nbCh6ICsgY3NxcnRsKHogKyAxKSAqIGNzcXJ0bCh6IC0gMSkpOwor
I2VuZGlmCisJcmV0dXJuIHc7Cit9CmRpZmYgLS1naXQgYS9uZXdsaWIvbGlibS9jb21wbGV4L2Nh
Y29zbC5jIGIvbmV3bGliL2xpYm0vY29tcGxleC9jYWNvc2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42YTA1YzhjCi0tLSAvZGV2L251bGwKKysrIGIvbmV3bGliL2xpYm0v
Y29tcGxleC9jYWNvc2wuYwpAQCAtMCwwICsxLDQ1IEBACisvKiAkTmV0QlNEOiBjYWNvc2wuYyx2
IDEuMSAyMDE0LzEwLzEwIDAwOjQ4OjE4IGNocmlzdG9zIEV4cCAkICovCisKKy8qLQorICogQ29w
eXJpZ2h0IChjKSAyMDA3IFRoZSBOZXRCU0QgRm91bmRhdGlvbiwgSW5jLgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIHdy
aXR0ZW4gYnkgU3RlcGhlbiBMLiBNb3NoaWVyLgorICogSXQgaXMgcmVkaXN0cmlidXRlZCBieSB0
aGUgTmV0QlNEIEZvdW5kYXRpb24gYnkgcGVybWlzc2lvbiBvZiB0aGUgYXV0aG9yLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE5FVEJTRCBGT1VOREFU
SU9OLCBJTkMuIEFORCBDT05UUklCVVRPUlMKKyAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAorICogVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgRk9VTkRBVElPTiBPUiBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxjb21wbGV4Lmg+CisjaW5jbHVkZSA8bWF0aC5o
PgorI2luY2x1ZGUgImNlcGhlc19zdWJybC5oIgorCitsb25nIGRvdWJsZSBjb21wbGV4CitjYWNv
c2wobG9uZyBkb3VibGUgY29tcGxleCB6KQoreworCWxvbmcgZG91YmxlIGNvbXBsZXggdzsKKwor
CXcgPSBjYXNpbmwoeik7CisJdyA9IChNX1BJXzJMIC0gY3JlYWxsKHcpKSAtIGNpbWFnbCh3KSAq
IEk7CisJcmV0dXJuIHc7Cit9CisKZGlmZiAtLWdpdCBhL25ld2xpYi9saWJtL2NvbXBsZXgvY2Fy
Z2wuYyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY2FyZ2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMjg4NWE0Ci0tLSAvZGV2L251bGwKKysrIGIvbmV3bGliL2xpYm0vY29t
cGxleC9jYXJnbC5jCkBAIC0wLDAgKzEsMTggQEAKKy8qICROZXRCU0Q6IGNhcmdsLmMsdiAxLjEg
MjAxNC8xMC8xMCAwMDo0ODoxOCBjaHJpc3RvcyBFeHAgJCAqLworCisvKgorICogUHVibGljIGRv
bWFpbi4KKyAqLworCisjaW5jbHVkZSA8Y29tcGxleC5oPgorI2luY2x1ZGUgPG1hdGguaD4KKwor
bG9uZyBkb3VibGUKK2NhcmdsKGxvbmcgZG91YmxlIGNvbXBsZXggeikKK3sgICAgIAorICAgICAg
ICNpZmRlZiBfTERCTF9FUV9EQkwKKyAgICAgICAgIHJldHVybiBjYXJnICh6KTsKKyAgICAgICAj
ZWxzZQorICAgICAgICAgcmV0dXJuIGF0YW4ybCAoaW1hZyAoeiksIHJlYWwgKHopKTsKKyAgICAg
ICAjZW5kaWYKK30KZGlmZiAtLWdpdCBhL25ld2xpYi9saWJtL2NvbXBsZXgvY2Nvc2wuYyBiL25l
d2xpYi9saWJtL2NvbXBsZXgvY2Nvc2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jMzEwZjQwCi0tLSAvZGV2L251bGwKKysrIGIvbmV3bGliL2xpYm0vY29tcGxleC9jY29z
bC5jCkBAIC0wLDAgKzEsNDUgQEAKKy8qICROZXRCU0Q6IGNjb3NsLmMsdiAxLjEgMjAxNC8xMC8x
MCAwMDo0ODoxOCBjaHJpc3RvcyBFeHAgJCAqLworCisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAw
NyBUaGUgTmV0QlNEIEZvdW5kYXRpb24sIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBzb2Z0d2FyZSB3cml0dGVuIGJ5IFN0ZXBo
ZW4gTC4gTW9zaGllci4KKyAqIEl0IGlzIHJlZGlzdHJpYnV0ZWQgYnkgdGhlIE5ldEJTRCBGb3Vu
ZGF0aW9uIGJ5IHBlcm1pc3Npb24gb2YgdGhlIGF1dGhvci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBORVRCU0QgRk9VTkRBVElPTiwgSU5DLiBBTkQg
Q09OVFJJQlVUT1JTCisgKiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZPVU5E
QVRJT04gT1IgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSA8Y29tcGxleC5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlICJj
ZXBoZXNfc3VicmwuaCIKKworbG9uZyBkb3VibGUgY29tcGxleAorY2Nvc2wobG9uZyBkb3VibGUg
Y29tcGxleCB6KQoreworCWxvbmcgZG91YmxlIGNvbXBsZXggdzsKKwlsb25nIGRvdWJsZSBjaCwg
c2g7CisKKwlfY2Noc2hsKGNpbWFnbCh6KSwgJmNoLCAmc2gpOworCXcgPSBjb3NsKGNyZWFsbCh6
KSkgKiBjaCAtIChzaW5sKGNyZWFsbCh6KSkgKiBzaCkgKiBJOworCXJldHVybiB3OworfQpkaWZm
IC0tZ2l0IGEvbmV3bGliL2xpYm0vY29tcGxleC9jZXBoZXNfc3VicmwuYyBiL25ld2xpYi9saWJt
L2NvbXBsZXgvY2VwaGVzX3N1YnJsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOGFmMTFkZgotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY2VwaGVz
X3N1YnJsLmMKQEAgLTAsMCArMSwxMjggQEAKKy8qICROZXRCU0Q6IGNlcGhlc19zdWJybC5jLHYg
MS4yIDIwMTQvMTAvMTAgMTQ6MDY6NDAgY2hyaXN0b3MgRXhwICQgKi8KKworLyotCisgKiBDb3B5
cmlnaHQgKGMpIDIwMDcgVGhlIE5ldEJTRCBGb3VuZGF0aW9uLCBJbmMuCisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgd3Jp
dHRlbiBieSBTdGVwaGVuIEwuIE1vc2hpZXIuCisgKiBJdCBpcyByZWRpc3RyaWJ1dGVkIGJ5IHRo
ZSBOZXRCU0QgRm91bmRhdGlvbiBieSBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgTkVUQlNEIEZPVU5EQVRJ
T04sIElOQy4gQU5EIENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBGT1VOREFUSU9OIE9SIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPGNvbXBsZXguaD4KKyNpbmNsdWRlIDxtYXRoLmg+
CisjaW5jbHVkZSAiY2VwaGVzX3N1YnJsLmgiCisKKy8qIGNhbGN1bGF0ZSBjb3NoIGFuZCBzaW5o
ICovCisKK3ZvaWQKK19jY2hzaGwobG9uZyBkb3VibGUgeCwgbG9uZyBkb3VibGUgKmMsIGxvbmcg
ZG91YmxlICpzKQoreworCWxvbmcgZG91YmxlIGUsIGVpOworCisJaWYgKGZhYnNsKHgpIDw9IDAu
NUwpIHsKKwkJKmMgPSBjb3NobCh4KTsKKwkJKnMgPSBzaW5obCh4KTsKKwl9IGVsc2UgeworCQll
ID0gZXhwbCh4KTsKKwkJZWkgPSAwLjVMIC8gZTsKKwkJZSA9IDAuNUwgKiBlOworCQkqcyA9IGUg
LSBlaTsKKwkJKmMgPSBlICsgZWk7CisJfQorfQorCisvKiBQcm9ncmFtIHRvIHN1YnRyYWN0IG5l
YXJlc3QgaW50ZWdlciBtdWx0aXBsZSBvZiBQSSAqLworCisvKiBleHRlbmRlZCBwcmVjaXNpb24g
dmFsdWUgb2YgUEk6ICovCitzdGF0aWMgY29uc3QgbG9uZyBkb3VibGUgRFAxID0gMy4xNDE1OTI2
NTM1ODk3OTMyMzgyOTU5Njg1MjQ5MDkwODUzMTc2MzEyNUw7CitzdGF0aWMgY29uc3QgbG9uZyBk
b3VibGUgRFAyID0gMS42NjY3NDg1ODM3MDQxNzU2NjU2NDAzNDI0ODI5MzAxOTk4NzAzMDA3ZS0x
OUw7CisjaWZuZGVmIF9fdmF4X18KK3N0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBEUDMgPSAxLjg4
MzA0MTA3NzY2MDc4NTExNjc0NTkwOTU0ODQ1NjAzNDk0MDI3NTNlLTM5TDsKKyNkZWZpbmUgTUFD
SEVQTCAxLjFlLTM4TAorI2Vsc2UKK3N0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBEUDMgPSAwTDsK
KyNkZWZpbmUgTUFDSEVQTCAxLjFlLTE5TAorI2VuZGlmCisKK2xvbmcgZG91YmxlCitfcmVkdXBp
bChsb25nIGRvdWJsZSB4KQoreworCWxvbmcgZG91YmxlIHQ7CisJbG9uZyBsb25nIGk7CisKKwl0
ID0geCAvIE1fUElMOworCWlmICh0ID49IDAuMEwpCisJCXQgKz0gMC41TDsKKwllbHNlCisJCXQg
LT0gMC41TDsKKworCWkgPSB0OwkvKiB0aGUgbXVsdGlwbGUgKi8KKwl0ID0gaTsKKwl0ID0gKCh4
IC0gdCAqIERQMSkgLSB0ICogRFAyKSAtIHQgKiBEUDM7CisJcmV0dXJuIHQ7Cit9CisKKy8qIFRh
eWxvciBzZXJpZXMgZXhwYW5zaW9uIGZvciBjb3NoKDJ5KSAtIGNvcygyeCkgKi8KKworbG9uZyBk
b3VibGUKK19jdGFuc2wobG9uZyBkb3VibGUgY29tcGxleCB6KQoreworCWxvbmcgZG91YmxlIGYs
IHgsIHgyLCB5LCB5Miwgcm4sIHQ7CisJbG9uZyBkb3VibGUgZDsKKworCXggPSBmYWJzbCgyLjBM
ICogY3JlYWxsKHopKTsKKwl5ID0gZmFic2woMi4wTCAqIGNpbWFnbCh6KSk7CisKKwl4ID0gX3Jl
ZHVwaWwoeCk7CisKKwl4ID0geCAqIHg7CisJeSA9IHkgKiB5OworCXgyID0gMS4wOworCXkyID0g
MS4wOworCWYgPSAxLjA7CisJcm4gPSAwLjA7CisJZCA9IDAuMDsKKwlkbyB7CisJCXJuICs9IDEu
MEw7CisJCWYgKj0gcm47CisJCXJuICs9IDEuMEw7CisJCWYgKj0gcm47CisJCXgyICo9IHg7CisJ
CXkyICo9IHk7CisJCXQgPSB5MiArIHgyOworCQl0IC89IGY7CisJCWQgKz0gdDsKKworCQlybiAr
PSAxLjBMOworCQlmICo9IHJuOworCQlybiArPSAxLjBMOworCQlmICo9IHJuOworCQl4MiAqPSB4
OworCQl5MiAqPSB5OworCQl0ID0geTIgLSB4MjsKKwkJdCAvPSBmOworCQlkICs9IHQ7CisJfSB3
aGlsZSAoZmFic2wodC9kKSA+IE1BQ0hFUEwpOworCXJldHVybiBkOworfQpkaWZmIC0tZ2l0IGEv
bmV3bGliL2xpYm0vY29tcGxleC9jZXBoZXNfc3VicmwuaCBiL25ld2xpYi9saWJtL2NvbXBsZXgv
Y2VwaGVzX3N1YnJsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM1NGIy
MwotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY2VwaGVzX3N1YnJsLmgK
QEAgLTAsMCArMSw5IEBACisvKiAkTmV0QlNEOiBjZXBoZXNfc3VicmwuaCx2IDEuMSAyMDE0LzEw
LzEwIDAwOjQ4OjE4IGNocmlzdG9zIEV4cCAkICovCisKK3ZvaWQgX2NjaHNobChsb25nIGRvdWJs
ZSwgbG9uZyBkb3VibGUgKiwgbG9uZyBkb3VibGUgKik7Citsb25nIGRvdWJsZSBfcmVkdXBpbChs
b25nIGRvdWJsZSk7Citsb25nIGRvdWJsZSBfY3RhbnNsKGxvbmcgZG91YmxlIGNvbXBsZXgpOwor
CisjZGVmaW5lCU1fUElMCTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAyODBlKzAw
TAorI2RlZmluZQlNX1BJXzJMCTEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkxNjM5NzUxNDBl
KzAwTAorCmRpZmYgLS1naXQgYS9uZXdsaWIvbGlibS9jb21wbGV4L2NleHBsLmMgYi9uZXdsaWIv
bGlibS9jb21wbGV4L2NleHBsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OGI1NjYzNAotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY2V4cGwuYwpA
QCAtMCwwICsxLDQ2IEBACisvKiAkTmV0QlNEOiBjZXhwbC5jLHYgMS4xIDIwMTQvMTAvMTAgMDA6
NDg6MTggY2hyaXN0b3MgRXhwICQgKi8KKworLyotCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgVGhl
IE5ldEJTRCBGb3VuZGF0aW9uLCBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgd3JpdHRlbiBieSBTdGVwaGVuIEwu
IE1vc2hpZXIuCisgKiBJdCBpcyByZWRpc3RyaWJ1dGVkIGJ5IHRoZSBOZXRCU0QgRm91bmRhdGlv
biBieSBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgTkVUQlNEIEZPVU5EQVRJT04sIElOQy4gQU5EIENPTlRS
SUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBGT1VOREFUSU9O
IE9SIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgPGNvbXBsZXguaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKK2xvbmcgZG91YmxlIGNv
bXBsZXgKK2NleHBsKGxvbmcgZG91YmxlIGNvbXBsZXggeikKK3sKKwlsb25nIGRvdWJsZSBjb21w
bGV4IHc7CisJbG9uZyBkb3VibGUgciwgeCwgeTsKKworCXggPSBjcmVhbGwoeik7CisJeSA9IGNp
bWFnbCh6KTsKKwlyID0gZXhwbCh4KTsKKwl3ID0gciAqIGNvc2woeSkgKyByICogc2lubCh5KSAq
IEk7CisJcmV0dXJuIHc7Cit9CmRpZmYgLS1naXQgYS9uZXdsaWIvbGlibS9jb21wbGV4L2Nsb2ds
LmMgYi9uZXdsaWIvbGlibS9jb21wbGV4L2Nsb2dsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzY0NGE0NAotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBs
ZXgvY2xvZ2wuYwpAQCAtMCwwICsxLDQ2IEBACisvKiAkTmV0QlNEOiBjbG9nbC5jLHYgMS4xIDIw
MTQvMTAvMTAgMDA6NDg6MTggY2hyaXN0b3MgRXhwICQgKi8KKworLyotCisgKiBDb3B5cmlnaHQg
KGMpIDIwMDcgVGhlIE5ldEJTRCBGb3VuZGF0aW9uLCBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgd3JpdHRlbiBi
eSBTdGVwaGVuIEwuIE1vc2hpZXIuCisgKiBJdCBpcyByZWRpc3RyaWJ1dGVkIGJ5IHRoZSBOZXRC
U0QgRm91bmRhdGlvbiBieSBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgTkVUQlNEIEZPVU5EQVRJT04sIElO
Qy4gQU5EIENPTlRSSUJVVE9SUworICogYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVECisgKiBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBGT1VOREFUSU9OIE9SIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgPGNvbXBsZXguaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKK2xv
bmcgZG91YmxlIGNvbXBsZXgKK2Nsb2dsKGxvbmcgZG91YmxlIGNvbXBsZXggeikKK3sKKwlsb25n
IGRvdWJsZSBjb21wbGV4IHc7CisJbG9uZyBkb3VibGUgcCwgcnI7CisKKwlyciA9IGNhYnNsKHop
OworCXAgPSBsb2dsKHJyKTsKKwlyciA9IGF0YW4ybChjaW1hZ2woeiksIGNyZWFsbCh6KSk7CisJ
dyA9IHAgKyByciAqIEk7CisJcmV0dXJuIHc7Cit9CmRpZmYgLS1naXQgYS9uZXdsaWIvbGlibS9j
b21wbGV4L2Nwcm9qbC5jIGIvbmV3bGliL2xpYm0vY29tcGxleC9jcHJvamwuYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzFjNzczCi0tLSAvZGV2L251bGwKKysrIGIvbmV3
bGliL2xpYm0vY29tcGxleC9jcHJvamwuYwpAQCAtMCwwICsxLDY0IEBACisvKgkkTmV0QlNEOiBj
cHJvamwuYyx2IDEuNyAyMDE0LzEwLzEwIDAwOjQ4OjE4IGNocmlzdG9zIEV4cCAkCSovCisKKy8q
LQorICogQ29weXJpZ2h0IChjKSAyMDEwIFRoZSBOZXRCU0QgRm91bmRhdGlvbiwgSW5jLgorICog
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBORVRCU0QgRk9VTkRBVElPTiwgSU5DLiBBTkQgQ09OVFJJQlVUT1JTCisg
KiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZPVU5EQVRJT04gT1IgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgPHN5
cy9jZGVmcy5oPgorX19SQ1NJRCgiJE5ldEJTRDogY3Byb2psLmMsdiAxLjcgMjAxNC8xMC8xMCAw
MDo0ODoxOCBjaHJpc3RvcyBFeHAgJCIpOworCisjaW5jbHVkZSA8Y29tcGxleC5oPgorI2luY2x1
ZGUgPG1hdGguaD4KKworI2luY2x1ZGUgIi4uL2NvbW1vbi9mZGxpYm0uaCIKKworLyoKKyAqIGNw
cm9qbChsb25nIGRvdWJsZSBjb21wbGV4IHopCisgKgorICogVGhlc2UgZnVuY3Rpb25zIHJldHVy
biB0aGUgdmFsdWUgb2YgdGhlIHByb2plY3Rpb24gKG5vdCBzdGVyZW9ncmFwaGljISkKKyAqIG9u
dG8gdGhlIFJpZW1hbm4gc3BoZXJlLgorICoKKyAqIHogcHJvamVjdHMgdG8geiwgZXhjZXB0IHRo
YXQgYWxsIGNvbXBsZXggaW5maW5pdGllcyAoZXZlbiB0aG9zZSB3aXRoIG9uZQorICogaW5maW5p
dGUgcGFydCBhbmQgb25lIE5hTiBwYXJ0KSBwcm9qZWN0IHRvIHBvc2l0aXZlIGluZmluaXR5IG9u
IHRoZSByZWFsIGF4aXMuCisgKiBJZiB6IGhhcyBhbiBpbmZpbml0ZSBwYXJ0LCB0aGVuIGNwcm9q
KHopIHNoYWxsIGJlIGVxdWl2YWxlbnQgdG86CisgKgorICogSU5GSU5JVFkgKyBJICogY29weXNp
Z24oMC4wLCBjaW1hZyh6KSkKKyAqLworbG9uZyBkb3VibGUgY29tcGxleAorY3Byb2psKGxvbmcg
ZG91YmxlIGNvbXBsZXggeikKK3sKKwlsb25nX2RvdWJsZV9jb21wbGV4IHcgPSB7IC56ID0geiB9
OworCisJLypDT05TVENPTkQqLworCWlmIChpc2luZihjcmVhbGwoeikpIHx8IGlzaW5mKGNpbWFn
bCh6KSkpIHsKKyNpZmRlZiBfX0lORklOSVRZCisJCVJFQUxfUEFSVCh3KSA9IEhVR0VfVkFMOwor
I2Vsc2UKKwkJUkVBTF9QQVJUKHcpID0gSU5GSU5JVFk7CisjZW5kaWYKKwkJSU1BR19QQVJUKHcp
ID0gY29weXNpZ25sKDAuMEwsIGNpbWFnbCh6KSk7CisJfQorCisJcmV0dXJuICh3LnopOworfQpk
aWZmIC0tZ2l0IGEvbmV3bGliL2xpYm0vY29tcGxleC9jc3FydGwuYyBiL25ld2xpYi9saWJtL2Nv
bXBsZXgvY3NxcnRsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEwYTEy
NgotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJtL2NvbXBsZXgvY3NxcnRsLmMKQEAgLTAs
MCArMSwxMTIgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDA3LTIwMDggRGF2aWQgU2NodWx0
eiA8ZGFzQEZyZWVCU0QuT1JHPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSA8c3lzL2NkZWZzLmg+CisjaWYgMAorX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL2xpYi9tc3Vu
L3NyYy9zX2NzcXJ0bC5jIDE4MTQwMiAyMDA4LTA4LTA4IDAwOjE1OjE2WiBkYXMgJCIpOworI2Vs
c2UKK19fUkNTSUQoIiROZXRCU0Q6IGNzcXJ0bC5jLHYgMS4yIDIwMTQvMTAvMTEgMDA6NDM6NTEg
Y2hyaXN0b3MgRXhwICQiKTsKKyNlbmRpZgorCisjaW5jbHVkZSA8Y29tcGxleC5oPgorI2luY2x1
ZGUgPGZsb2F0Lmg+CisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKy8q
CisgKiBnY2MgZG9lc24ndCBpbXBsZW1lbnQgY29tcGxleCBtdWx0aXBsaWNhdGlvbiBvciBkaXZp
c2lvbiBjb3JyZWN0bHksCisgKiBzbyB3ZSBuZWVkIHRvIGhhbmRsZSBpbmZpbml0aWVzIHNwZWNp
YWxseS4gV2UgdHVybiBvbiB0aGlzIHByYWdtYSB0bworICogbm90aWZ5IGNvbmZvcm1pbmcgYzk5
IGNvbXBpbGVycyB0aGF0IHRoZSBmYXN0LWJ1dC1pbmNvcnJlY3QgY29kZSB0aGF0CisgKiBnY2Mg
Z2VuZXJhdGVzIGlzIGFjY2VwdGFibGUsIHNpbmNlIHRoZSBzcGVjaWFsIGNhc2VzIGhhdmUgYWxy
ZWFkeSBiZWVuCisgKiBoYW5kbGVkLgorICovCisvLyAjcHJhZ21hCVNUREMgQ1hfTElNSVRFRF9S
QU5HRQlPTgorCisvKiBXZSByaXNrIHNwdXJpb3VzIG92ZXJmbG93IGZvciBjb21wb25lbnRzID49
IExEQkxfTUFYIC8gKDEgKyBzcXJ0KDIpKS4gKi8KKyNkZWZpbmUJVEhSRVNICShMREJMX01BWCAv
IDIuNDE0MjEzNTYyMzczMDk1MDQ4ODAxNjg4NzI0MjA5Njk4TCkKKworI2RlZmluZSBjcGFja2wo
ciwgaSkgKChyKSArIChpKSAqIEkpCisKK2xvbmcgZG91YmxlIGNvbXBsZXgKK2NzcXJ0bChsb25n
IGRvdWJsZSBjb21wbGV4IHopCit7CisJbG9uZyBkb3VibGUgY29tcGxleCByZXN1bHQ7CisJbG9u
ZyBkb3VibGUgYSwgYjsKKwlsb25nIGRvdWJsZSB0OworCWJvb2wgc2NhbGU7CisKKwlhID0gY3Jl
YWxsKHopOworCWIgPSBjaW1hZ2woeik7CisKKwkvKiBIYW5kbGUgc3BlY2lhbCBjYXNlcy4gKi8K
KwlpZiAoeiA9PSAwLjBMKQorCQlyZXR1cm4gKGNwYWNrbCgwLjBMLCBiKSk7CisJaWYgKGlzaW5m
KGIpKQorCQlyZXR1cm4gKGNwYWNrbChJTkZJTklUWSwgYikpOworCWlmIChpc25hbihhKSkgewor
CQl0ID0gKGIgLSBiKSAvIChiIC0gYik7CS8qIHJhaXNlIGludmFsaWQgaWYgYiBpcyBub3QgYSBO
YU4gKi8KKwkJcmV0dXJuIChjcGFja2woYSwgdCkpOwkvKiByZXR1cm4gTmFOICsgTmFOIGkgKi8K
Kwl9CisJaWYgKGlzaW5mKGEpKSB7CisJCS8qCisJCSAqIGNzcXJ0KGluZiArIE5hTiBpKSAgPSBp
bmYgKyAgTmFOIGkKKwkJICogY3NxcnQoaW5mICsgeSBpKSAgICA9IGluZiArICAwIGkKKwkJICog
Y3NxcnQoLWluZiArIE5hTiBpKSA9IE5hTiArLSBpbmYgaQorCQkgKiBjc3FydCgtaW5mICsgeSBp
KSAgID0gMCAgICsgIGluZiBpCisJCSAqLworCQlpZiAoc2lnbmJpdChhKSkKKwkJCXJldHVybiAo
Y3BhY2tsKGZhYnNsKGIgLSBiKSwgY29weXNpZ25sKGEsIGIpKSk7CisJCWVsc2UKKwkJCXJldHVy
biAoY3BhY2tsKGEsIGNvcHlzaWdubChiIC0gYiwgYikpKTsKKwl9CisJLyoKKwkgKiBUaGUgcmVt
YWluaW5nIHNwZWNpYWwgY2FzZSAoYiBpcyBOYU4pIGlzIGhhbmRsZWQganVzdCBmaW5lIGJ5CisJ
ICogdGhlIG5vcm1hbCBjb2RlIHBhdGggYmVsb3cuCisJICovCisKKwkvKiBTY2FsZSB0byBhdm9p
ZCBvdmVyZmxvdy4gKi8KKwlpZiAoZmFic2woYSkgPj0gVEhSRVNIIHx8IGZhYnNsKGIpID49IFRI
UkVTSCkgeworCQlhICo9IDAuMjVMOworCQliICo9IDAuMjVMOworCQlzY2FsZSA9IHRydWU7CisJ
fSBlbHNlIHsKKwkJc2NhbGUgPSBmYWxzZTsKKwl9CisKKwkvKiBBbGdvcml0aG0gMzEyLCBDQUNN
IHZvbCAxMCwgT2N0IDE5NjcuICovCisJaWYgKGEgPj0gMEwpIHsKKwkJdCA9IHNxcnRsKChhICsg
aHlwb3RsKGEsIGIpKSAqIDAuNUwpOworCQlyZXN1bHQgPSBjcGFja2wodCwgYiAvICgyLjBMICog
dCkpOworCX0gZWxzZSB7CisJCXQgPSBzcXJ0bCgoLWEgKyBoeXBvdGwoYSwgYikpICogMC41TCk7
CisJCXJlc3VsdCA9IGNwYWNrbChmYWJzbChiKSAvICgyLjBMICogdCksIGNvcHlzaWdubCh0LCBi
KSk7CisJfQorCisJLyogUmVzY2FsZS4gKi8KKwlpZiAoc2NhbGUpCisJCXJldHVybiAocmVzdWx0
ICogMi4wTCk7CisJZWxzZQorCQlyZXR1cm4gKHJlc3VsdCk7Cit9Cg==
--001a11415d58a0bfbb0552f6215b--

--
Joel Sherrill, Ph.D.
Check out RTEMS at https://www.rtems.org
Truly free real-time operating sysem


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]